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()