diff --git a/__init__.py b/__init__.py
index b27c41f..2264d7e 100644
--- a/__init__.py
+++ b/__init__.py
@@ -14,6 +14,8 @@ def register():
purchase.Line,
equipment.OpticalEquipment,
equipment.EquipmentMaintenance,
+ equipment.EquipmentParty,
+ equipment.ChangePropietary,
configuration_equipment.Configuration,
maintenance.Calibration,
maintenance.CreateContractInitial,
@@ -38,4 +40,5 @@ def register():
maintenance.AssingAgended,
maintenance.ReAssingAgended,
maintenance.CreateContract,
+ equipment.NewPropietary,
module='optical_equipment', type_='wizard')
diff --git a/equipment.py b/equipment.py
index 6199579..204d1f9 100644
--- a/equipment.py
+++ b/equipment.py
@@ -9,6 +9,9 @@ from trytond.transaction import Transaction
from trytond.i18n import gettext
from trytond.exceptions import UserError
from trytond.model.exceptions import AccessError
+from trytond.wizard import (
+ Button, StateAction, StateTransition, StateView, Wizard)
+
_MAINTENANCE_FREQUENCY = [("none", ''),
@@ -50,6 +53,7 @@ class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView):
domain=[('party', '=', Eval('propietary'))],
states=_states
)
+ propietarys = fields.Many2Many('optical_equipment.equipment-party.party', 'equipment', 'party', "Propietarys")
product = fields.Many2One('product.product', "Product",
domain=[('equipment', '=', True)],
states=_states,
@@ -91,12 +95,12 @@ class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView):
depends=_depends)
health_register = fields.Char("Health Register", size=None,
states=_states,)
- contract_history = fields.Many2Many('optical_equipment.contract-optical_equipment.equipment', 'equipment','Contracts', "Contracts", states={'readonly': True})
+ contract_history = fields.Many2Many('optical_equipment.contract-optical_equipment.equipment', 'equipment','contract', "Contracts", states={'readonly': True})
#subscription_history = fields.Many2Many('sale.subscription-optical_equipment.equipment',
# 'equipment','subscription', "Subscriptions",
# states={'readonly': True})
- contract_history = fields.Many2Many('optical_equipment.contract-optical_equipment.equipment',
- 'equipment', 'contract')
+ #contract_history = fields.Many2Many('optical_equipment.contract-optical_equipment.equipment',
+ # 'equipment', 'contract')
maintenance_history = fields.Function(
fields.Many2Many('optical_equipment.maintenance-optical_equipment.equipment',
@@ -314,3 +318,48 @@ class EquipmentContract(ModelSQL, ModelView):
equipment = fields.Many2One('optical_equipment.equipment', 'Equipment', select=True)
contract = fields.Many2One('optical_equipment.contract', 'Contract', select=True)
+
+class EquipmentParty(ModelSQL, ModelView):
+ 'Optical Equipment - Party'
+ __name__ = 'optical_equipment.equipment-party.party'
+
+ equipment = fields.Many2One('optical_equipment.equipment', "Equipment", select=True)
+ party = fields.Many2One('party.party', "Party", select=True)
+
+
+class ChangePropietary(ModelView):
+ 'Change of Propietary Equipment'
+ __name__ = 'optical_equipment.change_propietary.form'
+
+ equipment = fields.Many2One('optical_equipment.equipment', "Equipment")
+ new_propietary = fields.Many2One('party.party', "New Propietary")
+ new_address = fields.Many2One('party.address', "New Address", required=True,
+ domain=[('party', '=', Eval('new_propietary'))],)
+ change_date = fields.Date("Change Date", readonly=True)
+
+ @classmethod
+ def default_change_date(cls):
+ pool = Pool()
+ Date = pool.get('ir.date')
+ return Date.today()
+
+
+class NewPropietary(Wizard):
+ 'Change Propietary'
+ __name__ = 'optical_equipment.change_propietary'
+
+ start = StateView('optical_equipment.change_propietary.form',
+ 'optical_equipment.change_propietary_view_form',[
+ Button('Cancel', 'end', 'tryton-cancel'),
+ Button('Create', 'change_propietary', 'tryton-ok', default=True),
+ ])
+ change_propietary = StateAction('optical_equipment.act_optical_equipment_form')
+
+ def do_change_propietary(self, action):
+ equipment = self.start.equipment
+ new_propietary = self.start.new_propietary
+ new_address = self.start.new_address
+
+ equipment.propietary = new_propietary
+ equipment.propietary_address = new_address
+ equipment.save()
diff --git a/equipment.xml b/equipment.xml
index ae20e91..2d02b6a 100644
--- a/equipment.xml
+++ b/equipment.xml
@@ -197,5 +197,20 @@
optical_equipment.equipment,-1
+
+ optical_equipment.change_propietary.form
+ form
+ change_propietary_form
+
+
+ Change Propietary
+ optical_equipment.change_propietary
+ optical_equipment.equipment
+
+
+ form_action
+ optical_equipment.equipment,-1
+
+
diff --git a/locale/es.po b/locale/es.po
index e878ae0..620aa0e 100644
--- a/locale/es.po
+++ b/locale/es.po
@@ -150,6 +150,10 @@ msgctxt "field:product.template,a_factor_resolution:"
msgid "(a) Resolution"
msgstr "Factor a"
+msgctxt "field:product.template,k_pattern_list:"
+msgid "List of patterns K"
+msgstr "Lista de patrones K"
+
msgctxt "field:optical_equipment.configuration,equipment_sequence:"
msgid "Equipment Sequence"
msgstr "Secuencia de Equipos"
@@ -279,8 +283,12 @@ msgid "Purchase Origin"
msgstr "Origen de la Compra"
msgctxt "view:optical_equipment.equipment:"
-msgid "Subscriptions"
-msgstr "Subscripciones"
+msgid "Contracts"
+msgstr "Contratos"
+
+msgctxt "view:optical_equipment.equipment:"
+msgid "Propietarys"
+msgstr "Propietarios"
msgctxt "view:optical_equipment.equipment:"
msgid "Maintenances"
@@ -342,6 +350,10 @@ msgctxt "model:ir.sequence,name:sequence_equipment"
msgid "Equipment"
msgstr "Equipos"
+msgctxt "field:purchase.purchase,equipment_create:"
+msgid "Equipments Creates"
+msgstr "Equipos Creados"
+
msgctxt "field:purchase.line,product_equipment:"
msgid "Product Equipment"
msgstr "Es Equipo"
@@ -423,10 +435,22 @@ msgctxt "field:optical_equipment.contract,contract:"
msgid "Contract"
msgstr "Contracto Inicial"
+msgctxt "field:optical_equipment.contract,maintenance_services:"
+msgid "Prorogues"
+msgstr "Prorrogas"
+
+msgctxt "field:optical_equipment.contract,price_contract:"
+msgid "Price Contract"
+msgstr "Valor del Contrato"
+
msgctxt "field:optical_equipment.contract,prorogues:"
msgid "Prorrogation"
msgstr "Prorrogaciones"
+msgctxt "view:optical_equipment.contract:"
+msgid "Validity"
+msgstr "Validez"
+
msgctxt "view:optical_equipment.contract:"
msgid "Contracts and Prorogues"
msgstr "Contratos y Prorrogas"
@@ -487,6 +511,10 @@ msgctxt "model:ir.action.act_window.domain,name:act_contract_form_domain_running
msgid "Running"
msgstr "En Ejecución"
+msgctxt "model:ir.action.act_window.domain,name:act_contract_form_domain_closed"
+msgid "Closed"
+msgstr "Cerrados"
+
msgctxt "model:ir.action.act_window.domain,name:act_contract_form_domain_all"
msgid "All"
msgstr "Todo"
@@ -615,6 +643,18 @@ msgctxt "field:optical_equipment_maintenance.service,code:"
msgid "Code"
msgstr "Código"
+msgctxt "selection:optical_equipment.maintenance,maintenance_type:"
+msgid "Preventive"
+msgstr "Preventivo"
+
+msgctxt "selection:optical_equipment.maintenance,maintenance_type:"
+msgid "Corrective"
+msgstr "Correctivo"
+
+msgctxt "field:optical_equipment.maintenance,description_activity:"
+msgid "Activity"
+msgstr "Descripción del Mantenimiento"
+
msgctxt "field:optical_equipment_maintenance.service,reference:"
msgid "Reference"
msgstr "Referencia"
@@ -661,7 +701,7 @@ msgstr "Fecha de Mantenimiento"
msgctxt "field:optical_equipment_maintenance.service,history_agended:"
msgid "History Agended"
-msgstr "Agenda Historica"
+msgstr "Historico Agendas"
msgctxt "field:optical_equipment_maintenance.service,state_agended:"
msgid "State Agenda"
@@ -1029,11 +1069,11 @@ msgstr "Muestra #"
msgctxt "field:optical_equipment.maintenance.calibration_sample,value_patterns:"
msgid "Value Pattern"
-msgstr "Patrón de valor"
+msgstr "Valor del Patrón"
msgctxt "field:optical_equipment.maintenance.calibration_sample,value_equipment:"
msgid "Value in Equipment"
-msgstr "Valor del Equipo"
+msgstr "Valor en Equipo"
msgctxt "field:optical_equipment.maintenance.calibration_sample,mistake:"
msgid "Mistake"
@@ -1047,25 +1087,29 @@ msgctxt "field:optical_equipment.maintenance.calibration,maintenance:"
msgid "Maintenance"
msgstr "Mantenimiento"
+msgctxt "field:optical_equipment.maintenance.calibration,diopter:"
+msgid "Diopter"
+msgstr "Dioptría"
+
msgctxt "field:optical_equipment.maintenance.calibration,dev_std:"
msgid "Standart Desviation"
msgstr "Desviación Estándar"
msgctxt "field:optical_equipment.maintenance.calibration,uncertain_type_A:"
msgid "Uncertain Type A"
-msgstr "Incierto Tipo A"
+msgstr "Incertidumbre Tipo A"
msgctxt "field:optical_equipment.maintenance.calibration,uncertain_pattern:"
msgid "Uncertain Pattern"
-msgstr "Patrón incierto"
+msgstr "Patrón de Incertidumbre"
msgctxt "field:optical_equipment.maintenance.calibration,k_c_calibration:"
msgid "K Crt Calibration"
-msgstr "Calibración K Crt"
+msgstr "K Crt Calibración"
msgctxt "field:optical_equipment.maintenance.calibration,uncertain_U_b1:"
msgid "U_b1"
-msgstr "Incierto b1"
+msgstr "Incertidumbre b1"
msgctxt "field:optical_equipment.maintenance.calibration,d_resolution:"
msgid "d_resolution"
@@ -1073,27 +1117,27 @@ msgstr "D Resolución"
msgctxt "field:optical_equipment.maintenance.calibration,uncertain_U_b2_dig:"
msgid "U_b2"
-msgstr "Incierto b2 dig"
+msgstr "Incertidumbre b2 dig"
msgctxt "field:optical_equipment.maintenance.calibration,uncertain_U_b2_ana:"
msgid "U_b2"
-msgstr "Incierto b2 ana"
+msgstr "Incertidumbre b2 ana"
msgctxt "field:optical_equipment.maintenance.calibration,uncertain_combinated:"
msgid "U_combinated"
-msgstr "Incierto Combinado"
+msgstr "Incertidumbre Combinada"
msgctxt "field:optical_equipment.maintenance.calibration,uncertain_eff:"
msgid "U eff"
-msgstr "Incierto eff"
+msgstr "Incertidumbre eff"
msgctxt "field:optical_equipment.maintenance.calibration,t_student:"
msgid "T Student"
-msgstr "T Alumno"
+msgstr "Distribución T Student"
msgctxt "field:optical_equipment.maintenance.calibration,uncertain_expanded:"
msgid "Uexpand"
-msgstr "Expandir"
+msgstr "Incertidumbre Expandida"
msgctxt "field:optical_equipment.maintenance.calibration,state:"
msgid "State"
@@ -1109,4 +1153,84 @@ msgstr "Finalizado"
msgctxt "model:ir.action.act_window.domain,name:act_maintenance_form_domain_all"
msgid "All"
-msgstr "Todo"
\ No newline at end of file
+msgstr "Todo"
+
+msgctxt "model:ir.sequence,name:sequence_contract"
+msgid "Contract"
+msgstr "Contratos"
+
+msgctxt "model:ir.sequence,name:sequence_agended"
+msgid "Agended"
+msgstr "Agendas"
+
+msgctxt "model:ir.sequence,name:sequence_maintenances"
+msgid "Maintenance"
+msgstr "Mantenimientos"
+
+msgctxt "field:sale.sale,sale_type:"
+msgid "Sale Type"
+msgstr "Tipo de Venta"
+
+msgctxt "field:sale.sale,maintenance_type:"
+msgid "Maintenance Type"
+msgstr "Tipo de Mantenimiento"
+
+msgctxt "field:sale.sale,contract_ref:"
+msgid "Contract Base"
+msgstr "Contrato Base"
+
+msgctxt "field:sale.sale,agended:"
+msgid "Scheduling"
+msgstr "Agendado"
+
+msgctxt "selection:sale.sale,sale_type:"
+msgid "Maintenance"
+msgstr "Mantenimiento"
+
+msgctxt "selection:sale.sale,sale_type:"
+msgid "Equipments"
+msgstr "Equipos"
+
+msgctxt "selection:sale.sale,sale_type:"
+msgid "replaces"
+msgstr "Repuestos"
+
+msgctxt "selection:sale.sale,sale_type:"
+msgid "replaces"
+msgstr "Repuestos"
+
+msgctxt "selection:sale.sale,maintenance_type:"
+msgid "Preventive"
+msgstr "Preventivo"
+
+msgctxt "selection:sale.sale,maintenance_type:"
+msgid "Corrective"
+msgstr "Correctivo"
+
+msgctxt "field:optical_equipment_create.contract,company:"
+msgid "Company"
+msgstr "Empresa"
+
+msgctxt "field:optical_equipment_create.contract,party:"
+msgid "Party"
+msgstr "Tercero"
+
+msgctxt "field:optical_equipment_create.contract,invoice_address:"
+msgid "Invoice Address"
+msgstr "Dirección de Facturación"
+
+msgctxt "field:optical_equipment_create.contract,contact:"
+msgid "Contact"
+msgstr "Contacto"
+
+msgctxt "field:optical_equipment_create.contract,start_date:"
+msgid "Start Date"
+msgstr "Fecha de Inicio"
+
+msgctxt "field:optical_equipment_create.contract,end_date:"
+msgid "End Date"
+msgstr "Fecha Final"
+
+msgctxt "field:stock.move,equipment:"
+msgid "Equipment"
+msgstr "Equipo"
diff --git a/maintenance.py b/maintenance.py
index 3aafa09..d3acfd7 100644
--- a/maintenance.py
+++ b/maintenance.py
@@ -457,7 +457,7 @@ class Maintenance(Workflow, ModelSQL, ModelView):
uncertain_eff=uncertain_eff,
t_student=t_student,
uncertain_expanded=uncertain_expanded,
- state='Aprobado' if uncertain_expanded < a_resolution else 'Rechazado'
+ state='Aprobado' if uncertain_expanded <= a_resolution else 'Rechazado'
)
maintenance.calibration_total += (calibrationLineTotal,)
maintenance.save()
@@ -477,7 +477,7 @@ class Maintenance(Workflow, ModelSQL, ModelView):
uncertain_eff=uncertain_eff,
t_student=t_student,
uncertain_expanded=uncertain_expanded,
- state='Aprobado' if uncertain_expanded < d_resolution else 'Rechazado'
+ state='Aprobado' if uncertain_expanded <= d_resolution else 'Rechazado'
)
maintenance.calibration_total += (calibrationLineTotal,)
maintenance.save()
diff --git a/move.py b/move.py
index e4b8364..727cff0 100644
--- a/move.py
+++ b/move.py
@@ -16,7 +16,8 @@ class Move(metaclass=PoolMeta):
domain=[('state', '=', 'registred'),
('product','=', Eval('product'))
],
- states={'invisible': If(~Eval('product_equipment'), True),},
+ states={'invisible': If(~Eval('product_equipment'), True),
+ 'readonly': (Eval('state').in_(['cancelled', 'done'])),},
depends=['product_equipment'])
equipment_serial = fields.Function(fields.Char('Serial',
diff --git a/view/optical_equipment_form.xml b/view/optical_equipment_form.xml
index 00fc480..7a7b7f5 100644
--- a/view/optical_equipment_form.xml
+++ b/view/optical_equipment_form.xml
@@ -58,6 +58,9 @@
+
+
+