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