add button for agended in maintenance service form

This commit is contained in:
sinergia 2023-04-04 12:42:55 -05:00
parent e363262f49
commit dae8317b24
8 changed files with 157 additions and 80 deletions

View File

@ -3,6 +3,11 @@
from trytond.model import ModelSQL, ModelView, fields
from trytond.wizard import (
Button, StateAction, StateTransition, StateView, Wizard)
from trytond.pool import Pool
from trytond.exceptions import UserError
import datetime
from datetime import timedelta
class AgendedInitial(ModelView):
@ -27,6 +32,13 @@ class AssingAgended(Wizard):
assing_agended = StateAction('optical_equipment.act_maintenance_service_form')
def default_start(self, fields):
if len(self.records) > 0:
default = {'maintenance_service': self.records[0].id}
else:
default = {'maintenance_service': None}
return default
def do_assing_agended(self, action):
pool = Pool()
@ -77,6 +89,13 @@ class ReAssingAgended(Wizard):
assing_agended = StateAction('optical_equipment.act_maintenance_service_form')
def default_start(self, fields):
if len(self.records) > 0:
default = {'maintenance_service': self.records[0].id}
else:
default = {'maintenance_service': None}
return default
def do_assing_agended(self, action):
pool = Pool()
Diary = pool.get('optical_equipment_maintenance.diary')

View File

@ -134,6 +134,10 @@ msgctxt "field:product.template,uncertainy_pattern:"
msgid "Uncertainy Pattern"
msgstr "Incertidumbre Patrón"
msgctxt "field:product.template,use_pattern:"
msgid "Use Pattern"
msgstr "Patrón Utilizado"
msgctxt "field:product.template,k_pattern:"
msgid "K Pattern"
msgstr "Patrón K"
@ -1142,6 +1146,14 @@ msgctxt "selection:optical_equipment.maintenance,state:"
msgid "Finished"
msgstr "Finalizado"
msgctxt "model:ir.model.button,string:assing_agended_button"
msgid "Assing Agended"
msgstr "Agendar"
msgctxt "model:ir.model.button,string:reassing_agended_button"
msgid "Reassing Agended"
msgstr "Reagendar"
msgctxt "model:ir.model.button,string:maintenance_service_draft_button"
msgid "Draft"
msgstr "Borrador"

View File

@ -111,6 +111,8 @@ class MaintenanceService(Workflow, ModelSQL, ModelView):
('in_progress', 'finished'),
})
cls._buttons.update({
'reassing_agended': {'invisible': Eval('state') != 'failed'},
'assing_agended': {'invisible': Eval('state') != 'draft'},
'in_progress': {'invisible': Eval('state').in_(['draft', 'in_progress', 'finished'])},
'finished': {'invisible': Eval('state').in_(['draft', 'agended', 'finished'])}
})
@ -234,7 +236,19 @@ class MaintenanceService(Workflow, ModelSQL, ModelView):
else:
raise UserError(gettext('optical_equipment.msg_not_sequence_equipment'))
@classmethod
@ModelView.button_action(
'optical_equipment.act_assing_agended')
def assing_agended(cls, maintenances):
pass
@classmethod
@ModelView.button_action(
'optical_equipment.act_reassing_agended')
def reassing_agended(cls, maintenances):
pass
@classmethod
@ModelView.button
@Workflow.transition('in_progress')

View File

@ -28,6 +28,57 @@
<field name="view" ref="maintenance_service_view_form"/>
<field name="act_window" ref="act_maintenance_service_form"/>
</record>
<record model="ir.action.act_window.domain" id="act_maintenance_service_form_domain_draft">
<field name="name">Draft</field>
<field name="sequence" eval="10"/>
<field name="domain"
eval="[('state', '=', 'draft')]"
pyson="1"/>
<field name="count" eval="True"/>
<field name="act_window" ref="act_maintenance_service_form"/>
</record>
<record model="ir.action.act_window.domain" id="act_maintenance_service_form_domain_agended">
<field name="name">Agended</field>
<field name="sequence" eval="20"/>
<field name="domain"
eval="[('state', '=', 'agended')]"
pyson="1"/>
<field name="count" eval="True"/>
<field name="act_window" ref="act_maintenance_service_form"/>
</record>
<record model="ir.action.act_window.domain" id="act_maintenance_service_form_domain_in_progress">
<field name="name">In progress</field>
<field name="sequence" eval="30"/>
<field name="domain"
eval="[('state', '=', 'in_progress')]"
pyson="1"/>
<field name="count" eval="True"/>
<field name="act_window" ref="act_maintenance_service_form"/>
</record>
<record model="ir.action.act_window.domain" id="act_maintenance_service_form_domain_failed">
<field name="name">Failed</field>
<field name="sequence" eval="30"/>
<field name="domain"
eval="[('state', '=', 'failed')]"
pyson="1"/>
<field name="count" eval="True"/>
<field name="act_window" ref="act_maintenance_service_form"/>
</record>
<record model="ir.action.act_window.domain" id="act_maintenance_service_form_domain_finished">
<field name="name">Finished</field>
<field name="sequence" eval="40"/>
<field name="domain"
eval="[('state', '=', 'finished')]"
pyson="1"/>
<field name="count" eval="True"/>
<field name="act_window" ref="act_maintenance_service_form"/>
</record>
<record model="ir.action.act_window.domain" id="act_maintenance_service_form_domain_all">
<field name="name">All</field>
<field name="sequence" eval="9999"/>
<field name="domain"></field>
<field name="act_window" ref="act_maintenance_service_form"/>
</record>
<record model="ir.action.act_window" id="act_maintenance_form">
<field name="name">Maintenance Lines</field>
<field name="res_model">optical_equipment.maintenance</field>
@ -97,7 +148,27 @@
<field name="sequence" eval="9999"/>
<field name="domain"></field>
<field name="act_window" ref="act_maintenance_form"/>
</record>
</record>
<record model="ir.ui.view" id="maintenance_line_view_form">
<field name="model">optical_equipment.maintenance.line</field>
<field name="type">form</field>
<field name="name">maintenance_line_form</field>
</record>
<record model="ir.ui.view" id="maintenance_line_view_tree">
<field name="model">optical_equipment.maintenance.line</field>
<field name="type">tree</field>
<field name="name">maintenance_line_tree</field>
</record>
<record model="ir.model.button" id="assing_agended_button">
<field name="name">assing_agended</field>
<field name="string">Assing Agended</field>
<field name="model" search="[('model', '=', 'optical_equipment_maintenance.service')]"/>
</record>
<record model="ir.model.button" id="reassing_agended_button">
<field name="name">reassing_agended</field>
<field name="string">Reassing Agended</field>
<field name="model" search="[('model', '=', 'optical_equipment_maintenance.service')]"/>
</record>
<record model="ir.model.button" id="maintenance_service_draft_button">
<field name="name">draft</field>
<field name="string">Draft</field>
@ -128,68 +199,6 @@
<field name="string">Calibrate</field>
<field name="model" search="[('model', '=', 'optical_equipment.maintenance')]"/>
</record>
<record model="ir.action.act_window.domain" id="act_maintenance_service_form_domain_draft">
<field name="name">Draft</field>
<field name="sequence" eval="10"/>
<field name="domain"
eval="[('state', '=', 'draft')]"
pyson="1"/>
<field name="count" eval="True"/>
<field name="act_window" ref="act_maintenance_service_form"/>
</record>
<record model="ir.action.act_window.domain" id="act_maintenance_service_form_domain_agended">
<field name="name">Agended</field>
<field name="sequence" eval="20"/>
<field name="domain"
eval="[('state', '=', 'agended')]"
pyson="1"/>
<field name="count" eval="True"/>
<field name="act_window" ref="act_maintenance_service_form"/>
</record>
<record model="ir.action.act_window.domain" id="act_maintenance_service_form_domain_in_progress">
<field name="name">In progress</field>
<field name="sequence" eval="30"/>
<field name="domain"
eval="[('state', '=', 'in_progress')]"
pyson="1"/>
<field name="count" eval="True"/>
<field name="act_window" ref="act_maintenance_service_form"/>
</record>
<record model="ir.action.act_window.domain" id="act_maintenance_service_form_domain_failed">
<field name="name">Failed</field>
<field name="sequence" eval="30"/>
<field name="domain"
eval="[('state', '=', 'failed')]"
pyson="1"/>
<field name="count" eval="True"/>
<field name="act_window" ref="act_maintenance_service_form"/>
</record>
<record model="ir.action.act_window.domain" id="act_maintenance_service_form_domain_finished">
<field name="name">Finished</field>
<field name="sequence" eval="40"/>
<field name="domain"
eval="[('state', '=', 'finished')]"
pyson="1"/>
<field name="count" eval="True"/>
<field name="act_window" ref="act_maintenance_service_form"/>
</record>
<record model="ir.action.act_window.domain" id="act_maintenance_service_form_domain_all">
<field name="name">All</field>
<field name="sequence" eval="9999"/>
<field name="domain"></field>
<field name="act_window" ref="act_maintenance_service_form"/>
</record>
<record model="ir.ui.view" id="maintenance_line_view_form">
<field name="model">optical_equipment.maintenance.line</field>
<field name="type">form</field>
<field name="name">maintenance_line_form</field>
</record>
<record model="ir.ui.view" id="maintenance_line_view_tree">
<field name="model">optical_equipment.maintenance.line</field>
<field name="type">tree</field>
<field name="name">maintenance_line_tree</field>
</record>
<record model="ir.action.report" id="report_maintenance_service">
<field name="name">Maintenance Service</field>
<field name="model">optical_equipment.maintenance</field>
@ -224,6 +233,7 @@
<field name="model">optical_equipment_maintenance.service,-1</field>
<field name="action" ref="equipment_change_propietary_maintenance"/>
</record>
<menuitem parent="menu_equipment"
action="act_maintenance_service_form"
sequence="20"

View File

@ -103,7 +103,7 @@ class ShipmentOut(metaclass=PoolMeta):
equipment.shipment_destination = shipment
equipment.sale_destination = shipment.outgoing_moves[count].origin
equipment.propietarys += (shipment.customer,)
equipment.maintenance_frequency = "6" if shipment.customer.client_type == "ips" else "12"
equipment.maintenance_frequency = "6" if shipment.customer.customer_type == "ips" else "12"
count+=1
equipment.save()
else:
@ -140,9 +140,10 @@ class ShipmentOut(metaclass=PoolMeta):
# unit_price=0,
# sale=sale_origin)
# saleLine.save()
#raise UserError(str((shipment.get_origins(name))))
maintenanceService = MaintenanceService(
sale_date=shipment.outgoing_moves[0].origin.sale.sale_date,
sale_origin=shipment.sales[0],
sale_origin=shipment.outgoing_moves[0].origin.sale,
maintenance_type='initial',
propietary=shipment.customer.id,
propietary_address=shipment.delivery_address.id,

View File

@ -135,14 +135,7 @@ class Template(metaclass=PoolMeta):
warranty = fields.Integer("Warranty")
#### calibration parameters
use_pattern = fields.Selection([
('', ""),
('ojo_esquematico', "Ojo esquematico"),
('lente_prueba', "Lente de Prueba"),
('pesas_calibration', "Pesas de Calibración"),
('esferas_calibration', "Esferas de Calibración")], "Patrón Utilizado", states={'required': Eval('calibration', True)})
new_use_pattern = fields.Many2One('optical_equipment.use_pattern', "Use Pattern", ondelete='RESTRICT',
use_pattern = fields.Many2One('optical_equipment.use_pattern', "Use Pattern", ondelete='RESTRICT',
states={'required': Eval('calibration', True)})
measuring_range = fields.Selection([
('dioptria', "Dioptria"),
@ -166,6 +159,15 @@ class Template(metaclass=PoolMeta):
states={'invisible': If(Eval('resolution_type') != 'analoga', True)},)
Usubi = fields.Integer("Usub i",states={'required': Eval('calibration', False)},)
#maintenance activities
initial_operation = fields.Boolean("Verificación inicial de funcionamiento")
check_equipment = fields.Boolean("Revisión del Equipo")
check_electric_system = fields.Boolean("Revisión del sistema electríco")
clean_int_ext = fields.Boolean("Limpieza interior y exterior")
clean_eyes = fields.Boolean("Limpieza de lentes y espejos")
optical = fields.Boolean("Optical")
check_calibration = fields.Boolean("Verificar Calibración")
@classmethod
def view_attributes(cls):
return super(Template, cls).view_attributes() + [

View File

@ -34,13 +34,16 @@
<label name="moisture_uom"/>
<field name="moisture_uom"/>
<notebook colspan="6">
<page string="General" id="general">
<label name="state_agended"/>
<field name="state_agended"/>
<page string="General" id="general" col="2">
<label name="technical"/>
<field name="technical"/>
<newline/>
<label name="estimated_agended"/>
<field name="estimated_agended"/>
<field name="estimated_agended" widget="date"/>
<label name="estimated_agended" string="Hora"/>
<field name="estimated_agended" widget="time"/>
<label name="state_agended"/>
<field name="state_agended"/>
</page>
<page string="Lines Of Mantenaince" id="lines_maintenance">
<field name="lines"/>
@ -62,7 +65,9 @@
<label name="state"/>
<field name="state"/>
<group id="button">
<button name="in_progress"/>
<button name="finished"/>
<button name="reassing_agended" string="Reassing Agended"/>
<button name="assing_agended" string="Assing Agended"/>
<button name="in_progress"/>
<button name="finished"/>
</group>
</form>

View File

@ -96,6 +96,20 @@ this repository contains the full copyright notices and license terms. -->
<label name="Usubi"/>
<field name="Usubi"/>
</page>
<page string="Maintenance Activities" id="maintenance_activities">
<label name="initial_operation"/>
<field name="initial_operation"/>
<label name="check_equipment"/>
<field name="check_equipment"/>
<label name="check_electric_system"/>
<field name="check_electric_system"/>
<label name="clean_int_ext"/>
<field name="clean_int_ext"/>
<label name="clean_eyes"/>
<field name="clean_eyes"/>
<label name="check_calibration"/>
<field name="check_calibration"/>
</page>
</xpath>
<xpath expr="/form/notebook/page[@id='measurements']/label[@name='length']" position="before">
<newline/>