6.4 #101
19
agended.py
19
agended.py
@ -3,6 +3,11 @@
|
|||||||
from trytond.model import ModelSQL, ModelView, fields
|
from trytond.model import ModelSQL, ModelView, fields
|
||||||
from trytond.wizard import (
|
from trytond.wizard import (
|
||||||
Button, StateAction, StateTransition, StateView, Wizard)
|
Button, StateAction, StateTransition, StateView, Wizard)
|
||||||
|
from trytond.pool import Pool
|
||||||
|
from trytond.exceptions import UserError
|
||||||
|
|
||||||
|
import datetime
|
||||||
|
from datetime import timedelta
|
||||||
|
|
||||||
|
|
||||||
class AgendedInitial(ModelView):
|
class AgendedInitial(ModelView):
|
||||||
@ -27,6 +32,13 @@ class AssingAgended(Wizard):
|
|||||||
|
|
||||||
assing_agended = StateAction('optical_equipment.act_maintenance_service_form')
|
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):
|
def do_assing_agended(self, action):
|
||||||
pool = Pool()
|
pool = Pool()
|
||||||
@ -77,6 +89,13 @@ class ReAssingAgended(Wizard):
|
|||||||
|
|
||||||
assing_agended = StateAction('optical_equipment.act_maintenance_service_form')
|
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):
|
def do_assing_agended(self, action):
|
||||||
pool = Pool()
|
pool = Pool()
|
||||||
Diary = pool.get('optical_equipment_maintenance.diary')
|
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"
|
msgid "Uncertainy Pattern"
|
||||||
msgstr "Incertidumbre Patrón"
|
msgstr "Incertidumbre Patrón"
|
||||||
|
|
||||||
|
msgctxt "field:product.template,use_pattern:"
|
||||||
|
msgid "Use Pattern"
|
||||||
|
msgstr "Patrón Utilizado"
|
||||||
|
|
||||||
msgctxt "field:product.template,k_pattern:"
|
msgctxt "field:product.template,k_pattern:"
|
||||||
msgid "K Pattern"
|
msgid "K Pattern"
|
||||||
msgstr "Patrón K"
|
msgstr "Patrón K"
|
||||||
@ -1142,6 +1146,14 @@ msgctxt "selection:optical_equipment.maintenance,state:"
|
|||||||
msgid "Finished"
|
msgid "Finished"
|
||||||
msgstr "Finalizado"
|
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"
|
msgctxt "model:ir.model.button,string:maintenance_service_draft_button"
|
||||||
msgid "Draft"
|
msgid "Draft"
|
||||||
msgstr "Borrador"
|
msgstr "Borrador"
|
||||||
|
@ -111,6 +111,8 @@ class MaintenanceService(Workflow, ModelSQL, ModelView):
|
|||||||
('in_progress', 'finished'),
|
('in_progress', 'finished'),
|
||||||
})
|
})
|
||||||
cls._buttons.update({
|
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'])},
|
'in_progress': {'invisible': Eval('state').in_(['draft', 'in_progress', 'finished'])},
|
||||||
'finished': {'invisible': Eval('state').in_(['draft', 'agended', 'finished'])}
|
'finished': {'invisible': Eval('state').in_(['draft', 'agended', 'finished'])}
|
||||||
})
|
})
|
||||||
@ -234,7 +236,19 @@ 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
|
||||||
|
@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
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('in_progress')
|
@Workflow.transition('in_progress')
|
||||||
|
136
maintenance.xml
136
maintenance.xml
@ -28,6 +28,57 @@
|
|||||||
<field name="view" ref="maintenance_service_view_form"/>
|
<field name="view" ref="maintenance_service_view_form"/>
|
||||||
<field name="act_window" ref="act_maintenance_service_form"/>
|
<field name="act_window" ref="act_maintenance_service_form"/>
|
||||||
</record>
|
</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">
|
<record model="ir.action.act_window" id="act_maintenance_form">
|
||||||
<field name="name">Maintenance Lines</field>
|
<field name="name">Maintenance Lines</field>
|
||||||
<field name="res_model">optical_equipment.maintenance</field>
|
<field name="res_model">optical_equipment.maintenance</field>
|
||||||
@ -97,7 +148,27 @@
|
|||||||
<field name="sequence" eval="9999"/>
|
<field name="sequence" eval="9999"/>
|
||||||
<field name="domain"></field>
|
<field name="domain"></field>
|
||||||
<field name="act_window" ref="act_maintenance_form"/>
|
<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">
|
<record model="ir.model.button" id="maintenance_service_draft_button">
|
||||||
<field name="name">draft</field>
|
<field name="name">draft</field>
|
||||||
<field name="string">Draft</field>
|
<field name="string">Draft</field>
|
||||||
@ -128,68 +199,6 @@
|
|||||||
<field name="string">Calibrate</field>
|
<field name="string">Calibrate</field>
|
||||||
<field name="model" search="[('model', '=', 'optical_equipment.maintenance')]"/>
|
<field name="model" search="[('model', '=', 'optical_equipment.maintenance')]"/>
|
||||||
</record>
|
</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">
|
<record model="ir.action.report" id="report_maintenance_service">
|
||||||
<field name="name">Maintenance Service</field>
|
<field name="name">Maintenance Service</field>
|
||||||
<field name="model">optical_equipment.maintenance</field>
|
<field name="model">optical_equipment.maintenance</field>
|
||||||
@ -224,6 +233,7 @@
|
|||||||
<field name="model">optical_equipment_maintenance.service,-1</field>
|
<field name="model">optical_equipment_maintenance.service,-1</field>
|
||||||
<field name="action" ref="equipment_change_propietary_maintenance"/>
|
<field name="action" ref="equipment_change_propietary_maintenance"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<menuitem parent="menu_equipment"
|
<menuitem parent="menu_equipment"
|
||||||
action="act_maintenance_service_form"
|
action="act_maintenance_service_form"
|
||||||
sequence="20"
|
sequence="20"
|
||||||
|
5
move.py
5
move.py
@ -103,7 +103,7 @@ class ShipmentOut(metaclass=PoolMeta):
|
|||||||
equipment.shipment_destination = shipment
|
equipment.shipment_destination = shipment
|
||||||
equipment.sale_destination = shipment.outgoing_moves[count].origin
|
equipment.sale_destination = shipment.outgoing_moves[count].origin
|
||||||
equipment.propietarys += (shipment.customer,)
|
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
|
count+=1
|
||||||
equipment.save()
|
equipment.save()
|
||||||
else:
|
else:
|
||||||
@ -140,9 +140,10 @@ class ShipmentOut(metaclass=PoolMeta):
|
|||||||
# unit_price=0,
|
# unit_price=0,
|
||||||
# sale=sale_origin)
|
# sale=sale_origin)
|
||||||
# saleLine.save()
|
# saleLine.save()
|
||||||
|
#raise UserError(str((shipment.get_origins(name))))
|
||||||
maintenanceService = MaintenanceService(
|
maintenanceService = MaintenanceService(
|
||||||
sale_date=shipment.outgoing_moves[0].origin.sale.sale_date,
|
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',
|
maintenance_type='initial',
|
||||||
propietary=shipment.customer.id,
|
propietary=shipment.customer.id,
|
||||||
propietary_address=shipment.delivery_address.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")
|
warranty = fields.Integer("Warranty")
|
||||||
|
|
||||||
#### calibration parameters
|
#### calibration parameters
|
||||||
use_pattern = fields.Selection([
|
use_pattern = fields.Many2One('optical_equipment.use_pattern', "Use Pattern", ondelete='RESTRICT',
|
||||||
('', ""),
|
|
||||||
('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',
|
|
||||||
states={'required': Eval('calibration', True)})
|
states={'required': Eval('calibration', True)})
|
||||||
measuring_range = fields.Selection([
|
measuring_range = fields.Selection([
|
||||||
('dioptria', "Dioptria"),
|
('dioptria', "Dioptria"),
|
||||||
@ -166,6 +159,15 @@ class Template(metaclass=PoolMeta):
|
|||||||
states={'invisible': If(Eval('resolution_type') != 'analoga', True)},)
|
states={'invisible': If(Eval('resolution_type') != 'analoga', True)},)
|
||||||
Usubi = fields.Integer("Usub i",states={'required': Eval('calibration', False)},)
|
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
|
@classmethod
|
||||||
def view_attributes(cls):
|
def view_attributes(cls):
|
||||||
return super(Template, cls).view_attributes() + [
|
return super(Template, cls).view_attributes() + [
|
||||||
|
@ -34,13 +34,16 @@
|
|||||||
<label name="moisture_uom"/>
|
<label name="moisture_uom"/>
|
||||||
<field name="moisture_uom"/>
|
<field name="moisture_uom"/>
|
||||||
<notebook colspan="6">
|
<notebook colspan="6">
|
||||||
<page string="General" id="general">
|
<page string="General" id="general" col="2">
|
||||||
<label name="state_agended"/>
|
|
||||||
<field name="state_agended"/>
|
|
||||||
<label name="technical"/>
|
<label name="technical"/>
|
||||||
<field name="technical"/>
|
<field name="technical"/>
|
||||||
|
<newline/>
|
||||||
<label name="estimated_agended"/>
|
<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>
|
||||||
<page string="Lines Of Mantenaince" id="lines_maintenance">
|
<page string="Lines Of Mantenaince" id="lines_maintenance">
|
||||||
<field name="lines"/>
|
<field name="lines"/>
|
||||||
@ -62,7 +65,9 @@
|
|||||||
<label name="state"/>
|
<label name="state"/>
|
||||||
<field name="state"/>
|
<field name="state"/>
|
||||||
<group id="button">
|
<group id="button">
|
||||||
<button name="in_progress"/>
|
<button name="reassing_agended" string="Reassing Agended"/>
|
||||||
<button name="finished"/>
|
<button name="assing_agended" string="Assing Agended"/>
|
||||||
|
<button name="in_progress"/>
|
||||||
|
<button name="finished"/>
|
||||||
</group>
|
</group>
|
||||||
</form>
|
</form>
|
||||||
|
@ -96,6 +96,20 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
<label name="Usubi"/>
|
<label name="Usubi"/>
|
||||||
<field name="Usubi"/>
|
<field name="Usubi"/>
|
||||||
</page>
|
</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>
|
||||||
<xpath expr="/form/notebook/page[@id='measurements']/label[@name='length']" position="before">
|
<xpath expr="/form/notebook/page[@id='measurements']/label[@name='length']" position="before">
|
||||||
<newline/>
|
<newline/>
|
||||||
|
Loading…
Reference in New Issue
Block a user