diff --git a/maintenance.py b/maintenance.py
index af19563..0917763 100644
--- a/maintenance.py
+++ b/maintenance.py
@@ -69,7 +69,32 @@ class MaintenanceService(Workflow, ModelSQL, ModelView):
], "State", required=True, readonly=True, sort=True)
rec_name = fields.Function(fields.Char('rec_name'), 'get_rec_name')
-
+ temperature_min = fields.Float("Temp Min", states={
+ 'readonly': If(Eval('state') == 'finished', True),
+ 'required': If(Eval('state') == 'in_progress', True)})
+ temperature_max = fields.Float("Temp Max", states={
+ 'readonly': If(Eval('state') == 'finished', True),
+ 'required': If(Eval('state') == 'in_progress', True)})
+ temperature_uom = fields.Many2One('product.uom', 'Temperature UOM',
+ domain=[('category', '=', Id('optical_equipment', "uom_cat_temperature"))],
+ states={'invisible': If(Eval('temperature_min') == None, True),
+ 'readonly' : (Eval('state') == 'finished'),
+ 'required': If(Eval('state') == 'in_progress', True)},
+ depends=['itemperature_min']
+ )
+ moisture_min = fields.Float("Moisture Min", states={
+ 'readonly': If(Eval('state') == 'finished', True),
+ 'required': If(Eval('state') == 'in_progress', True)})
+ moisture_max = fields.Float("Moisture Max", states={
+ 'readonly': If(Eval('state') == 'finished', True),
+ 'required': If(Eval('state') == 'in_progress', True)})
+ moisture_uom = fields.Many2One('product.uom', "Moisture UOM",
+ domain=[('category', '=', Id('optical_equipment', 'uom_cat_relative_humedity'))],
+ states={'invisible' : If(Eval('moisture_min') == None, True),
+ 'readonly': Eval('state') == 'finished',
+ 'required': If(Eval('state') == 'in_progress', True)},
+ depends=['moisture_min'])
+
@fields.depends('maintenance_type', 'code')
def get_rec_name(self, name):
if self.maintenance_type and self.code:
@@ -107,7 +132,21 @@ class MaintenanceService(Workflow, ModelSQL, ModelView):
@classmethod
def default_state(self):
return 'draft'
-
+
+ @fields.depends('temperature_min', 'temperature_uom')
+ def on_change_temperature_min(self):
+ if self.temperature_min:
+ pool = Pool()
+ Measurements = pool.get('product.uom')
+ self.temperature_uom = Measurements.search(['name', '=', 'Celsius'])[0].id
+
+
+ @fields.depends('moisture_min', 'moisture_uom')
+ def on_change_moisture_min(self):
+ pool = Pool()
+ Measurements = pool.get('product.uom')
+ self.moisture_uom = Measurements.search(['name', '=', 'Relative Humedity'])[0].id
+
@classmethod
def _get_origin(cls):
'Return list of Model names for origin Reference'
@@ -236,7 +275,7 @@ class Maintenance(Workflow, ModelSQL, ModelView):
states={'invisible' : If(Eval('moisture_min') == None, True),
'readonly': Eval('state') == 'finished'},
depends=['moisture_min']
- )
+ )
graph_calibration = fields.Binary('Graphs')
@@ -250,8 +289,7 @@ class Maintenance(Workflow, ModelSQL, ModelView):
cls._buttons.update({
'in_progress': {'invisible': Eval('state').in_(['draft', 'in_progress', 'finished'])},
'finished': {'invisible': (Eval('state').in_(['finished'])) |
- ((Eval('maintenance_type') == 'corrective') & (Eval('maintenance_lines') == ())) |
- (Eval('calibration_total') == ())},
+ ((Eval('maintenance_type') == 'corrective') & (Eval('maintenance_lines') == ()))},
'calibrate': {'invisible': (Eval('lines_calibration') == ()) | (Eval('state').in_(['finished'])),
'depends': ['state'],}
})
@@ -331,9 +369,9 @@ class Maintenance(Workflow, ModelSQL, ModelView):
next_maintenance = None
if self.service_maintenance.estimated_agended:
if self.propietary.client_type == "ips":
- next_maintenance = self.service_maintenance.estimated_agended + timedelta(days=365)
- else:
next_maintenance = self.service_maintenance.estimated_agended + timedelta(days=182)
+ else:
+ next_maintenance = self.service_maintenance.estimated_agended + timedelta(days=365)
return next_maintenance
def get_standard_deviation(samples):
@@ -467,8 +505,26 @@ class Maintenance(Workflow, ModelSQL, ModelView):
@fields.depends('service_maintenance')
def on_change_service_maintenance(self):
- self.propietary = self.service_maintenance.propietary
- self.propietary_address = self.service_maintenance.propietary_address
+ if self.service_maintenance:
+ self.propietary = self.service_maintenance.propietary
+ self.propietary_address = self.service_maintenance.propietary_address
+ service = self.service_maintenance
+ self.temperature_min = service.temperature_min
+ self.temperature_max = service.temperature_max
+ self.temperature_uom = service.temperature_uom
+ self.moisture_min = service.moisture_min
+ self.moisture_max = service.moisture_max
+ self.moisture_uom = service.moisture_uom
+ else:
+ self.propietary = None
+ self.propietary_address = None
+ self.temperature_min = None
+ self.temperature_max = None
+ self.temperature_uom = None
+ self.moisture_min = None
+ self.moisture_max = None
+ self.moisture_uom = None
+
@fields.depends('equipment', 'patterns_equipments')
def on_change_equipment(self):
@@ -488,7 +544,7 @@ class Maintenance(Workflow, ModelSQL, ModelView):
@Workflow.transition('finished')
def finished(cls, maintenances):
for maintenance in maintenances:
- if maintenance.calibration_total == ():
+ if maintenance.equipment.product.calibration and maintenance.calibration_total == ():
raise UserError("No puede finalizar este mantenimiento sin una calibración")
else:
maintenance.state = 'finished'
@@ -891,9 +947,9 @@ class CreateContractInitial(ModelView, ModelSQL):
if self.party:
self.invoice_address = self.party.address_get(type='invoice')
if self.party.client_type == "ips":
- self.end_date = Date.today() + timedelta(days=365)
- else:
self.end_date = Date.today() + timedelta(days=182)
+ else:
+ self.end_date = Date.today() + timedelta(days=365)
class CreateContract(Wizard):
diff --git a/maintenance.xml b/maintenance.xml
index d514ec5..466357e 100644
--- a/maintenance.xml
+++ b/maintenance.xml
@@ -236,18 +236,6 @@
optical_equipment.maintenance,-1
-
- Capacitation
- optical_equipment_maintenance.service
- optical_equipment_maintenance.service
- optical_equipment/report/Capacitation.fodt
-
-
-
- form_print
- optical_equipment_maintenance.service,-1
-
-
Maintenance Service
optical_equipment.maintenance
@@ -261,15 +249,15 @@
- Maintenance Service
- optical_equipment.maintenance
- optical_equipment.maintenance
+ Time Line Maintenance Service
+ optical_equipment_maintenance.service
+ optical_equipment_maintenance.service
optical_equipment/report/Maintenance_Timeline.fodt
form_print
- optical_equipment.maintenance,-1
+ optical_equipment_maintenance.service,-1