From b7dd21f7a6a07bbcaa1408bbf7c1a405e56cc001 Mon Sep 17 00:00:00 2001 From: sinergia Date: Mon, 11 Sep 2023 10:16:25 -0500 Subject: [PATCH] Se limpia la casa --- maintenance.py | 119 ++++++++++++++++++++++++------------------------- 1 file changed, 59 insertions(+), 60 deletions(-) diff --git a/maintenance.py b/maintenance.py index 70182bc..81a27bd 100644 --- a/maintenance.py +++ b/maintenance.py @@ -5,7 +5,7 @@ from trytond.model import ( from trytond.wizard import ( Button, StateAction, StateTransition, StateView, Wizard) 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.pool import Pool from trytond.modules.currency.fields import Monetary @@ -19,10 +19,10 @@ import matplotlib.pyplot as plt import numpy as np import math as mt -from io import BytesIO +from io import BytesIO from trytond.exceptions import UserError -_digits = (16, 2) +_digits = (16, 2) class MaintenanceService(Workflow, ModelSQL, ModelView): @@ -31,32 +31,38 @@ class MaintenanceService(Workflow, ModelSQL, ModelView): _rec_name = 'rec_name' _order_name = 'code' - _states = {'readonly': If(Eval('state') != 'draft', True)} - + code = fields.Char("Code", readonly=True, select=True) reference = fields.Char("Reference", select=True, - help="The identification of an external origin.") - description = fields.Char("Description",states=_states) + help="The identification of an external origin.") + description = fields.Char("Description", states=_states) sale_date = fields.Char("Sale Date") - contract_origin = fields.Reference("Contract Base", selection='get_origin_contract', select=True, - states={'readonly': If(Eval('state') == 'finished', True)}) - sale_origin = fields.Reference("Sale Origin", selection='get_origin', select=True, - states={'readonly': True}) + contract_origin = fields.Reference( + "Contract Base", selection='get_origin_contract', select=True, + states={'readonly': If(Eval('state') == 'finished', True)}) + sale_origin = fields.Reference( + "Sale Origin", selection='get_origin', select=True, + states={'readonly': True}) company = fields.Many2One('company.company', "Company", readonly=True) - maintenance_type = fields.Selection([('initial','Initial'), + maintenance_type = fields.Selection([('initial', 'Initial'), ('preventive', 'Preventive'), ('corrective', 'Corrective') ], "Maintenance Type", states=_states) - propietary = fields.Many2One('party.party', "Propietary", required=True, states=_states) - propietary_address = fields.Many2One('party.address', "Propietary Address", required=True, - domain=[('party', '=', Eval('propietary'))], - states=_states) - lines = fields.One2Many('optical_equipment.maintenance', 'service_maintenance', "Lines") + propietary = fields.Many2One('party.party', "Propietary", required=True, + states=_states) + propietary_address = fields.Many2One( + 'party.address', "Propietary Address", required=True, + domain=[('party', '=', Eval('propietary'))], + states=_states) + lines = fields.One2Many( + 'optical_equipment.maintenance', 'service_maintenance', "Lines") estimated_agended = fields.DateTime("Date Maintenance", readonly=True) - current_agended = fields.Many2One('optical_equipment_maintenance.diary', "Current Agended", - states=_states) - history_agended = fields.Many2Many('optical_equipment_maintenance.service-maintenance.diary', 'maintenance_service', 'agended', "History Agended", readonly=True) + current_agended = fields.Many2One( + 'optical_equipment_maintenance.diary', "Current Agended", + 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"), ('agended', "Agended"), ('in_progress', "In progress"), @@ -79,7 +85,7 @@ class MaintenanceService(Workflow, ModelSQL, ModelView): 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'), + 'readonly': (Eval('state') == 'finished'), 'required': If(Eval('state') == 'in_progress', True)},) moisture_min = fields.Float("Moisture Min", states={ 'readonly': If(Eval('state') == 'finished', True), @@ -88,18 +94,18 @@ class MaintenanceService(Workflow, ModelSQL, ModelView): '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)},) - + 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)},) + @fields.depends('maintenance_type', 'code') def get_rec_name(self, name): if self.maintenance_type and self.code: name = str(self.maintenance_type) + '@' + str(self.code) else: name = str(self.maintenance_type) + '@' + 'Borrador' - + return name @classmethod @@ -123,7 +129,7 @@ class MaintenanceService(Workflow, ModelSQL, ModelView): @staticmethod def default_company(): return Transaction().context.get('company') - + @staticmethod def default_temperature_min(): pool = Pool() @@ -141,7 +147,7 @@ class MaintenanceService(Workflow, ModelSQL, ModelView): temperature_max = config.temperature_max return temperature_max - + @staticmethod def default_moisture_min(): pool = Pool() @@ -159,7 +165,7 @@ class MaintenanceService(Workflow, ModelSQL, ModelView): temperature_uom = config.temperature_uom.id return temperature_uom - + @staticmethod def default_moisture_uom(): pool = Pool() @@ -168,7 +174,7 @@ class MaintenanceService(Workflow, ModelSQL, ModelView): moisture_uom = config.moisture_uom.id return moisture_uom - + @staticmethod def default_moisture_max(): pool = Pool() @@ -177,7 +183,7 @@ class MaintenanceService(Workflow, ModelSQL, ModelView): moisture_max = config.moisture_max return moisture_max - + @classmethod def default_maintenance_type(self): return 'preventive' @@ -198,7 +204,7 @@ class MaintenanceService(Workflow, ModelSQL, ModelView): SaleLine = pool.get('sale.line') return [Sale.__name__, SaleLine.__name__] - + @classmethod def get_origin(cls): Model = Pool().get('ir.model') @@ -215,7 +221,6 @@ class MaintenanceService(Workflow, ModelSQL, ModelView): return [Contract.__name__] - @classmethod def get_origin_contract(cls): Model = Pool().get('ir.model') @@ -238,7 +243,6 @@ class MaintenanceService(Workflow, ModelSQL, ModelView): raise UserError(str('Validation Error')) else: raise UserError(gettext('optical_equipment.msg_not_sequence_equipment')) - @classmethod @ModelView.button_action( @@ -260,7 +264,6 @@ class MaintenanceService(Workflow, ModelSQL, ModelView): maintenance.current_agended.state = 'in_progress' maintenance.current_agended.save() - @classmethod @ModelView.button @Workflow.transition('finished') @@ -270,21 +273,20 @@ class MaintenanceService(Workflow, ModelSQL, ModelView): maintenance.current_agended.save() - class MaintenanceServiceLine(Workflow, ModelSQL, ModelView): 'Equipment Maintenance Line' __name__ = 'optical_equipment.maintenance' - #_rec_name = 'rec_name' - _states={'required': True, - 'readonly': Eval('state').in_(['finished'])} + # _rec_name = 'rec_name' + _states = {'required': True, + 'readonly': Eval('state').in_(['finished'])} service_maintenance = fields.Many2One('optical_equipment_maintenance.service', "Maintenance Service", ondelete='CASCADE', select=True, - domain=[('state', 'in', ['draft','in_progress', 'finished']), + domain=[('state', 'in', ['draft', 'in_progress', 'finished']), ('propietary', '=', Eval('propietary'))], states=_states) code = fields.Char( - "Code", select=True,states={'readonly': True }) + "Code", select=True, states={'readonly': True}) maintenance_type = fields.Selection([('initial', 'Initial'), ('preventive', 'Preventive'), ('corrective', 'Corrective')], "Maintenance Type", states=_states) @@ -343,13 +345,12 @@ class MaintenanceServiceLine(Workflow, ModelSQL, ModelView): # name = str(self.maintenance_type) + '@' + str(self.code) # else: # name = str(self.maintenance_type) + '@' + 'Borrador' - # return name @classmethod def __setup__(cls): super(MaintenanceServiceLine, cls).__setup__() - cls._transitions.update({ + cls._transitions.update({ ('draft', 'finished') }) cls._buttons.update({ @@ -382,7 +383,7 @@ class MaintenanceServiceLine(Workflow, ModelSQL, ModelView): @staticmethod def default_company(): return Transaction().context.get('company') - + @classmethod def default_state(cls): return 'draft' @@ -400,16 +401,14 @@ class MaintenanceServiceLine(Workflow, ModelSQL, ModelView): if self.temperature_min: pool = Pool() 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') def on_change_moisture_min(self): pool = Pool() Measurements = pool.get('product.uom') self.moisture_uom = Measurements.search(['name', '=', 'Relative Humedity'])[0].id - @fields.depends('service_maintenance') def on_change_service_maintenance(self): if self.service_maintenance: @@ -424,20 +423,20 @@ class MaintenanceServiceLine(Workflow, ModelSQL, ModelView): self.moisture_uom = service.moisture_uom else: self.propietary = None - self.propietary_address = 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 + self.moisture_uom = None @fields.depends('equipment', 'patterns_equipments') def on_change_equipment(self): if self.equipment: self.patterns_equipments = self.equipment.product.k_pattern self.equipment_calibrate = self.equipment.product.calibration - self.initial_operation = self.equipment.product.initial_operation + self.initial_operation = self.equipment.product.initial_operation self.check_equipment = self.equipment.product.check_equipment self.check_electric_system = self.equipment.product.check_electric_system self.clean_int_ext = self.equipment.product.clean_int_ext @@ -452,7 +451,7 @@ class MaintenanceServiceLine(Workflow, ModelSQL, ModelView): self.clean_int_ext = False self.clean_eyes = False self.check_calibration = False - + def get_next_maintenance(self, action): next_maintenance = None if self.service_maintenance.estimated_agended: @@ -470,7 +469,7 @@ class MaintenanceServiceLine(Workflow, ModelSQL, ModelView): sum_samples = sum(samples) n_samples = len(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) return dev_std @@ -495,7 +494,7 @@ class MaintenanceServiceLine(Workflow, ModelSQL, ModelView): def get_k_certificated_calibration(self): k_certificated_calibration = 2 - + return k_certicated_calibration def get_uncertain_U_b1(self): @@ -731,7 +730,7 @@ class MaintenanceServiceLine(Workflow, ModelSQL, ModelView): maintenance.graph_calibration = image maintenance.save() - + class MaintenanceLine(ModelSQL, ModelView): 'Maintenance Line' __name__ = 'optical_equipment.maintenance.line' @@ -787,7 +786,7 @@ class MaintenanceLine(ModelSQL, ModelView): if not self.replacement: self.unit = None return - + if not self.unit or self.unit.category != category: self.unit = self.replacement.sale_uom @@ -802,8 +801,8 @@ class MaintenanceLine(ModelSQL, ModelView): self.quantity = 1 if not self.unit or self.unit.category != category: self.unit = self.maintenance_activity.sale_uom - - + + class MaintenanceActivity(ModelView, ModelSQL): 'Maintenance Activitys' __name__ = 'optical_equipment_maintenance.activity' @@ -846,7 +845,7 @@ class NewPropietaryMaintenance(Wizard): Button('Create', 'change_propietary', 'tryton-ok', default=True), ]) change_propietary = StateAction('optical_equipment.act_optical_equipment_form') - + def do_change_propietary(self, action): old_propietary = self.start.old_propietary services = self.start.maintenance_service @@ -861,7 +860,7 @@ class NewPropietaryMaintenance(Wizard): maintenance.propietary = new_propietary maintenance.propietary_address = new_address maintenance.save() - + class MaintenanceServiceReport(CompanyReport): __name__ = 'optical_equipment_maintenance.service'