fix: Se refactoriza _get_shipment_sale

This commit is contained in:
sinergia 2023-11-13 10:36:39 -05:00
parent 2c535e8723
commit e79d6d8c8d
2 changed files with 23 additions and 29 deletions

42
sale.py
View File

@ -105,18 +105,14 @@ class Sale(metaclass=PoolMeta):
return [(None, '')] + [(m, get_name(m)) for m in models] return [(None, '')] + [(m, get_name(m)) for m in models]
def _get_shipment_sale(self, Shipment, key): def _get_shipment_sale(self, Shipment, key):
values = { Shipment = super(Sale, self)._get_shipment_sale(Shipment, key)
'customer': self.shipment_party or self.party, Shipment.sale_type = self.sale_type
'delivery_address': self.shipment_address, Shipment.service_maintenance_initial = \
'company': self.company, True if self.sale_type != 'equipments' else False
'sale_type': self.sale_type,
'service_maintenance_initial': True if self.sale_type != 'equipments' else False,
}
values.update(dict(key))
return Shipment(**values) return Shipment
@classmethod @ classmethod
def set_quote_number(cls, sales): def set_quote_number(cls, sales):
''' '''
Fill the number field with the sale sequence Fill the number field with the sale sequence
@ -135,7 +131,7 @@ class Sale(metaclass=PoolMeta):
else: else:
raise UserError(gettext('optical_equipment.msg_not_sequence_quote')) raise UserError(gettext('optical_equipment.msg_not_sequence_quote'))
@classmethod @ classmethod
def copy(cls, sales, default=None): def copy(cls, sales, default=None):
if default is None: if default is None:
default = {} default = {}
@ -152,15 +148,15 @@ class Sale(metaclass=PoolMeta):
return super(Sale, cls).copy(sales, default=default) return super(Sale, cls).copy(sales, default=default)
@classmethod @ classmethod
@ModelView.button_action( @ ModelView.button_action(
'optical_equipment.wizard_print_balance_sale_party') 'optical_equipment.wizard_print_balance_sale_party')
def report(cls, sales): def report(cls, sales):
pass pass
@classmethod @ classmethod
@ModelView.button @ ModelView.button
@Workflow.transition('quotation') @ Workflow.transition('quotation')
def quote(cls, sales): def quote(cls, sales):
pool = Pool() pool = Pool()
AdvancePaymentCondition = pool.get('sale.advance_payment.condition') AdvancePaymentCondition = pool.get('sale.advance_payment.condition')
@ -172,11 +168,11 @@ class Sale(metaclass=PoolMeta):
sale.set_advance_payment_term() sale.set_advance_payment_term()
cls.save(sales) cls.save(sales)
@classmethod @ classmethod
@ModelView.button_action( @ ModelView.button_action(
'optical_equipment.wizard_confirm_sale_date') 'optical_equipment.wizard_confirm_sale_date')
@Workflow.transition('confirmed') @ Workflow.transition('confirmed')
@set_employee('confirmed_by') @ set_employee('confirmed_by')
def confirm(cls, sales): def confirm(cls, sales):
pool = Pool() pool = Pool()
Configuration = pool.get('sale.configuration') Configuration = pool.get('sale.configuration')
@ -207,9 +203,9 @@ class Sale(metaclass=PoolMeta):
sale.save() sale.save()
cls.set_number(sales) cls.set_number(sales)
with Transaction().set_context( with transaction.set_context(
queue_name='sale', queue_scheduled_at=config.sale_process_after,
queue_scheduled_at=config.sale_process_after): queue_batch=context.get('queue_batch', True)):
cls.__queue__.process(sales) cls.__queue__.process(sales)

View File

@ -2,19 +2,17 @@
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of <!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. --> this repository contains the full copyright notices and license terms. -->
<data> <data>
<xpath expr="//label[@name='payment_term']" position="replace"></xpath>
<xpath expr="//field[@name='payment_term']" position="replace"></xpath>
<xpath expr="//field[@name='warehouse']" position="after"> <xpath expr="//field[@name='warehouse']" position="after">
<label name="payment_term_description"/> <label name="payment_term_description"/>
<field name="payment_term_description" colspan="5"/> <field name="payment_term_description" colspan="5"/>
<newline/> <newline/>
</xpath> </xpath>
<xpath expr="//label[@name='payment_term']" position="replace"></xpath>
<xpath expr="//field[@name='payment_term']" position="replace"></xpath>
<xpath expr="//label[@name='number']" position="before">
<label name="quote_number"/>
<field name="quote_number"/>
</xpath>
<xpath expr="//field[@name='reference']" position="after"> <xpath expr="//field[@name='reference']" position="after">
<newline/> <newline/>
<label name="quote_number"/>
<field name="quote_number"/>
<label name="sale_type"/> <label name="sale_type"/>
<field name="sale_type"/> <field name="sale_type"/>
<label name="maintenance_type"/> <label name="maintenance_type"/>