add button for agended in maintenance service form
This commit is contained in:
parent
e363262f49
commit
dae8317b24
19
agended.py
19
agended.py
@ -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')
|
||||
|
12
locale/es.po
12
locale/es.po
@ -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"
|
||||
|
@ -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')
|
||||
|
136
maintenance.xml
136
maintenance.xml
@ -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"
|
||||
|
5
move.py
5
move.py
@ -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,
|
||||
|
18
product.py
18
product.py
@ -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() + [
|
||||
|
@ -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>
|
||||
|
@ -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/>
|
||||
|
Loading…
Reference in New Issue
Block a user