diff --git a/maintenance.py b/maintenance.py index adb0ebf..fa96653 100644 --- a/maintenance.py +++ b/maintenance.py @@ -490,7 +490,8 @@ class MaintenanceServiceLine(Workflow, ModelSQL, ModelView): 'invisible': (Eval('lines_calibration', [0])) | ( Eval('state').in_(['finished'])), 'depends': ['state'], }, - 'finished': {}, + 'finished': {'invisible': (Eval('state').in_(['finished'])) | + ((Eval('maintenance_type') == 'corrective') & (Eval('maintenance_lines') == ()))}, }) @classmethod diff --git a/maintenance.xml b/maintenance.xml index 6e3d545..886c8f3 100644 --- a/maintenance.xml +++ b/maintenance.xml @@ -108,11 +108,10 @@ optical_equipment.change_propietary_maintenance.form form change_propietary_maintenance_form - + optical_equipment.maintenance-optical_equipment.equipment form - maintenance_equipment_form diff --git a/sale.py b/sale.py index b17efa4..ca69290 100644 --- a/sale.py +++ b/sale.py @@ -12,6 +12,7 @@ from trytond.wizard import ( Button, StateAction, StateView, Wizard) from trytond.i18n import gettext from trytond.modules.sale.exceptions import PartyLocationError +from datetime import datetime class Sale(metaclass=PoolMeta): @@ -85,6 +86,14 @@ class Sale(metaclass=PoolMeta): ('processing', 'draft') )) + @classmethod + def default_agended(self): + return False + + @classmethod + def default_sale_date(cls): + return datetime.today().date() + @fields.depends('lines', 'sale_type', 'agended') def on_chage_sale_type(self): self.lines = [] @@ -93,9 +102,6 @@ class Sale(metaclass=PoolMeta): elif self.sale_type == "maintenance": self.invoice_method = 'order' - @classmethod - def default_agended(self): - return False @classmethod def _get_origin_contract(cls): @@ -141,32 +147,21 @@ class Sale(metaclass=PoolMeta): raise UserError( gettext('optical_equipment.msg_not_sequence_quote')) - @ classmethod + @classmethod def copy(cls, sales, default=None): - if default is None: - default = {} - else: - default = default.copy() - - default.setdefault('number', None) - default.setdefault('invoice_state', 'none') - default.setdefault('invoices_ignored', None) - default.setdefault('moves', None) - default.setdefault('shipment_state', 'none') - default.setdefault('quoted_by') - default.setdefault('confirmed_by') - + default, = super(Sale, cls).copy(sales, default=default) + default.setdefault('sale_date') return super(Sale, cls).copy(sales, default=default) - @ classmethod - @ ModelView.button_action( + @classmethod + @ModelView.button_action( 'optical_equipment.wizard_print_balance_sale_party') def report(cls, sales): pass - @ classmethod - @ ModelView.button - @ Workflow.transition('quotation') + @classmethod + @ModelView.button + @Workflow.transition('quotation') def quote(cls, sales): for sale in sales: sale.check_for_quotation()