Reuse invoice_cache when recreating sale.

This commit refs #21563
This commit is contained in:
Sergio Morillo 2022-01-07 15:34:37 +01:00
parent c3584412cd
commit 660bcfa4b0
3 changed files with 22 additions and 4 deletions

View File

@ -9,3 +9,7 @@ def register():
load.LoadOrder,
load.Sale,
module='carrier_load_done2running', type_='model')
Pool.register(
load.LoadOrderProcessing2Confirmed,
module='carrier_load_done2running', type_='model',
depends=['sale_processing2confirmed'])

19
load.py
View File

@ -10,6 +10,7 @@ from trytond.i18n import gettext
class LoadOrder(metaclass=PoolMeta):
__name__ = 'carrier.load.order'
_sale_values_to_copy = {'number'}
@classmethod
def __setup__(cls):
@ -24,14 +25,15 @@ class LoadOrder(metaclass=PoolMeta):
})
def _get_load_sale(self, Sale):
number = None
values = {}
if self.sale and self.sale.state == 'cancelled' and \
self.sale.origin.__name__ == 'carrier.load.order':
number = self.sale.number
for value in self._sale_values_to_copy:
values[value] = getattr(self.sale, value, None)
Sale.delete([self.sale])
sale = super()._get_load_sale(Sale)
if number:
sale.number = number
for name, value in values.items():
setattr(sale, name, value)
return sale
def _get_shipment_out(self, sale):
@ -138,3 +140,12 @@ class Sale(metaclass=PoolMeta):
if not record.quoted:
record.quoted = True
record.save()
class LoadOrderProcessing2Confirmed(metaclass=PoolMeta):
__name__ = 'carrier.load.order'
@classmethod
def __setup__(cls):
super().__setup__()
cls._sale_values_to_copy.add('invoice_cache')

View File

@ -6,6 +6,9 @@ depends:
res
stock_move_done2cancel
extras_depend:
sale_processing2confirmed
xml:
load.xml
message.xml