Se limpia la casa

This commit is contained in:
sinergia 2023-09-11 10:16:25 -05:00
parent 659f08cbf6
commit b7dd21f7a6

View File

@ -5,7 +5,7 @@ from trytond.model import (
from trytond.wizard import ( from trytond.wizard import (
Button, StateAction, StateTransition, StateView, Wizard) Button, StateAction, StateTransition, StateView, Wizard)
from trytond.modules.company import CompanyReport from trytond.modules.company import CompanyReport
from trytond.transaction import Transaction from trytond.transaction import Transaction
from trytond.pyson import Bool, Eval, If, Id, Equal from trytond.pyson import Bool, Eval, If, Id, Equal
from trytond.pool import Pool from trytond.pool import Pool
from trytond.modules.currency.fields import Monetary from trytond.modules.currency.fields import Monetary
@ -31,32 +31,38 @@ class MaintenanceService(Workflow, ModelSQL, ModelView):
_rec_name = 'rec_name' _rec_name = 'rec_name'
_order_name = 'code' _order_name = 'code'
_states = {'readonly': If(Eval('state') != 'draft', True)} _states = {'readonly': If(Eval('state') != 'draft', True)}
code = fields.Char("Code", readonly=True, select=True) code = fields.Char("Code", readonly=True, select=True)
reference = fields.Char("Reference", select=True, reference = fields.Char("Reference", select=True,
help="The identification of an external origin.") help="The identification of an external origin.")
description = fields.Char("Description",states=_states) description = fields.Char("Description", states=_states)
sale_date = fields.Char("Sale Date") sale_date = fields.Char("Sale Date")
contract_origin = fields.Reference("Contract Base", selection='get_origin_contract', select=True, contract_origin = fields.Reference(
states={'readonly': If(Eval('state') == 'finished', True)}) "Contract Base", selection='get_origin_contract', select=True,
sale_origin = fields.Reference("Sale Origin", selection='get_origin', select=True, states={'readonly': If(Eval('state') == 'finished', True)})
states={'readonly': True}) sale_origin = fields.Reference(
"Sale Origin", selection='get_origin', select=True,
states={'readonly': True})
company = fields.Many2One('company.company', "Company", readonly=True) company = fields.Many2One('company.company', "Company", readonly=True)
maintenance_type = fields.Selection([('initial','Initial'), maintenance_type = fields.Selection([('initial', 'Initial'),
('preventive', 'Preventive'), ('preventive', 'Preventive'),
('corrective', 'Corrective') ('corrective', 'Corrective')
], "Maintenance Type", states=_states) ], "Maintenance Type", states=_states)
propietary = fields.Many2One('party.party', "Propietary", required=True, states=_states) propietary = fields.Many2One('party.party', "Propietary", required=True,
propietary_address = fields.Many2One('party.address', "Propietary Address", required=True, states=_states)
domain=[('party', '=', Eval('propietary'))], propietary_address = fields.Many2One(
states=_states) 'party.address', "Propietary Address", required=True,
lines = fields.One2Many('optical_equipment.maintenance', 'service_maintenance', "Lines") domain=[('party', '=', Eval('propietary'))],
states=_states)
lines = fields.One2Many(
'optical_equipment.maintenance', 'service_maintenance', "Lines")
estimated_agended = fields.DateTime("Date Maintenance", readonly=True) estimated_agended = fields.DateTime("Date Maintenance", readonly=True)
current_agended = fields.Many2One('optical_equipment_maintenance.diary', "Current Agended", current_agended = fields.Many2One(
states=_states) 'optical_equipment_maintenance.diary', "Current Agended",
history_agended = fields.Many2Many('optical_equipment_maintenance.service-maintenance.diary', 'maintenance_service', 'agended', "History Agended", readonly=True) states=_states)
history_agended = fields.Many2Many(
'optical_equipment_maintenance.service-maintenance.diary', 'maintenance_service', 'agended', "History Agended", readonly=True)
state_agended = fields.Selection([('no_agenda', "No agenda"), state_agended = fields.Selection([('no_agenda', "No agenda"),
('agended', "Agended"), ('agended', "Agended"),
('in_progress', "In progress"), ('in_progress', "In progress"),
@ -79,7 +85,7 @@ class MaintenanceService(Workflow, ModelSQL, ModelView):
temperature_uom = fields.Many2One('product.uom', 'Temperature UOM', temperature_uom = fields.Many2One('product.uom', 'Temperature UOM',
domain=[('category', '=', Id('optical_equipment', "uom_cat_temperature"))], domain=[('category', '=', Id('optical_equipment', "uom_cat_temperature"))],
states={'invisible': If(Eval('temperature_min') == None, True), states={'invisible': If(Eval('temperature_min') == None, True),
'readonly' : (Eval('state') == 'finished'), 'readonly': (Eval('state') == 'finished'),
'required': If(Eval('state') == 'in_progress', True)},) 'required': If(Eval('state') == 'in_progress', True)},)
moisture_min = fields.Float("Moisture Min", states={ moisture_min = fields.Float("Moisture Min", states={
'readonly': If(Eval('state') == 'finished', True), 'readonly': If(Eval('state') == 'finished', True),
@ -88,10 +94,10 @@ class MaintenanceService(Workflow, ModelSQL, ModelView):
'readonly': If(Eval('state') == 'finished', True), 'readonly': If(Eval('state') == 'finished', True),
'required': If(Eval('state') == 'in_progress', True)}) 'required': If(Eval('state') == 'in_progress', True)})
moisture_uom = fields.Many2One('product.uom', "Moisture UOM", moisture_uom = fields.Many2One('product.uom', "Moisture UOM",
domain=[('category', '=', Id('optical_equipment', 'uom_cat_relative_humedity'))], domain=[('category', '=', Id('optical_equipment', 'uom_cat_relative_humedity'))],
states={'invisible' : If(Eval('moisture_min') == None, True), states={'invisible' : If(Eval('moisture_min') == None, True),
'readonly': Eval('state') == 'finished', 'readonly': Eval('state') == 'finished',
'required': If(Eval('state') == 'in_progress', True)},) 'required': If(Eval('state') == 'in_progress', True)},)
@fields.depends('maintenance_type', 'code') @fields.depends('maintenance_type', 'code')
def get_rec_name(self, name): def get_rec_name(self, name):
@ -215,7 +221,6 @@ class MaintenanceService(Workflow, ModelSQL, ModelView):
return [Contract.__name__] return [Contract.__name__]
@classmethod @classmethod
def get_origin_contract(cls): def get_origin_contract(cls):
Model = Pool().get('ir.model') Model = Pool().get('ir.model')
@ -239,7 +244,6 @@ class MaintenanceService(Workflow, ModelSQL, ModelView):
else: else:
raise UserError(gettext('optical_equipment.msg_not_sequence_equipment')) raise UserError(gettext('optical_equipment.msg_not_sequence_equipment'))
@classmethod @classmethod
@ModelView.button_action( @ModelView.button_action(
'optical_equipment.act_assing_agended') 'optical_equipment.act_assing_agended')
@ -260,7 +264,6 @@ class MaintenanceService(Workflow, ModelSQL, ModelView):
maintenance.current_agended.state = 'in_progress' maintenance.current_agended.state = 'in_progress'
maintenance.current_agended.save() maintenance.current_agended.save()
@classmethod @classmethod
@ModelView.button @ModelView.button
@Workflow.transition('finished') @Workflow.transition('finished')
@ -270,21 +273,20 @@ class MaintenanceService(Workflow, ModelSQL, ModelView):
maintenance.current_agended.save() maintenance.current_agended.save()
class MaintenanceServiceLine(Workflow, ModelSQL, ModelView): class MaintenanceServiceLine(Workflow, ModelSQL, ModelView):
'Equipment Maintenance Line' 'Equipment Maintenance Line'
__name__ = 'optical_equipment.maintenance' __name__ = 'optical_equipment.maintenance'
#_rec_name = 'rec_name' # _rec_name = 'rec_name'
_states={'required': True, _states = {'required': True,
'readonly': Eval('state').in_(['finished'])} 'readonly': Eval('state').in_(['finished'])}
service_maintenance = fields.Many2One('optical_equipment_maintenance.service', "Maintenance Service", service_maintenance = fields.Many2One('optical_equipment_maintenance.service', "Maintenance Service",
ondelete='CASCADE', select=True, ondelete='CASCADE', select=True,
domain=[('state', 'in', ['draft','in_progress', 'finished']), domain=[('state', 'in', ['draft', 'in_progress', 'finished']),
('propietary', '=', Eval('propietary'))], ('propietary', '=', Eval('propietary'))],
states=_states) states=_states)
code = fields.Char( code = fields.Char(
"Code", select=True,states={'readonly': True }) "Code", select=True, states={'readonly': True})
maintenance_type = fields.Selection([('initial', 'Initial'), maintenance_type = fields.Selection([('initial', 'Initial'),
('preventive', 'Preventive'), ('preventive', 'Preventive'),
('corrective', 'Corrective')], "Maintenance Type", states=_states) ('corrective', 'Corrective')], "Maintenance Type", states=_states)
@ -343,7 +345,6 @@ class MaintenanceServiceLine(Workflow, ModelSQL, ModelView):
# name = str(self.maintenance_type) + '@' + str(self.code) # name = str(self.maintenance_type) + '@' + str(self.code)
# else: # else:
# name = str(self.maintenance_type) + '@' + 'Borrador' # name = str(self.maintenance_type) + '@' + 'Borrador'
# return name # return name
@classmethod @classmethod
@ -400,8 +401,7 @@ class MaintenanceServiceLine(Workflow, ModelSQL, ModelView):
if self.temperature_min: if self.temperature_min:
pool = Pool() pool = Pool()
Measurements = pool.get('product.uom') Measurements = pool.get('product.uom')
self.temperature_uom = Measurements.search(['name', '=', 'Celsius'])[0].id self.temperature_uom = Measurements.search(['name', '=', 'Celsius'])[0].id
@fields.depends('moisture_min', 'moisture_uom') @fields.depends('moisture_min', 'moisture_uom')
def on_change_moisture_min(self): def on_change_moisture_min(self):
@ -409,7 +409,6 @@ class MaintenanceServiceLine(Workflow, ModelSQL, ModelView):
Measurements = pool.get('product.uom') Measurements = pool.get('product.uom')
self.moisture_uom = Measurements.search(['name', '=', 'Relative Humedity'])[0].id self.moisture_uom = Measurements.search(['name', '=', 'Relative Humedity'])[0].id
@fields.depends('service_maintenance') @fields.depends('service_maintenance')
def on_change_service_maintenance(self): def on_change_service_maintenance(self):
if self.service_maintenance: if self.service_maintenance:
@ -470,7 +469,7 @@ class MaintenanceServiceLine(Workflow, ModelSQL, ModelView):
sum_samples = sum(samples) sum_samples = sum(samples)
n_samples = len(samples) n_samples = len(samples)
mean = sum_samples / n_samples mean = sum_samples / n_samples
dev_std_square = sum((l-mean)**2 for l in samples) / (n_samples -1) dev_std_square = sum((l-mean)**2 for l in samples) / (n_samples - 1)
dev_std = mt.sqrt(dev_std_square) dev_std = mt.sqrt(dev_std_square)
return dev_std return dev_std