diff --git a/locale/es.po b/locale/es.po
index 45540a6..e878ae0 100644
--- a/locale/es.po
+++ b/locale/es.po
@@ -674,3 +674,439 @@ msgstr "Técnico"
msgctxt "field:optical_equipment_maintenance.service,state:"
msgid "State"
msgstr "Estado"
+
+msgctxt "field:party.party,client_type:"
+msgid "Client type"
+msgstr "Tipo de Cliente"
+
+msgctxt "field:party.party,client_type:"
+msgid "Client type"
+msgstr "Tipo de Cliente"
+
+msgctxt "field:product.template,software_required:"
+msgid "Software Required"
+msgstr "Software Requerido"
+
+msgctxt "view:product.product:"
+msgid "Calibration"
+msgstr "Calibración"
+
+msgctxt "view:product.product:"
+msgid "Measurements of Equipment"
+msgstr "Medidas del Equipo"
+
+msgctxt "view:product.product:"
+msgid "Enviromental Working Conditions"
+msgstr "Condiciones Ambientales de Trabajo"
+
+msgctxt "view:product.product:"
+msgid "Electrical Conditions"
+msgstr "Condiciones Electricas"
+
+msgctxt "field:product.product,equipment:"
+msgid "It is equipment"
+msgstr "Es equipo"
+
+msgctxt "field:product.product,electrical_equipment:"
+msgid "Electrical Equipment"
+msgstr "Equipo Eléctrico"
+
+msgctxt "field:product.product,maintenance_activity:"
+msgid "Maintenance Activity"
+msgstr "Actividad de Mantenimiento"
+
+msgctxt "field:product.product,replacement:"
+msgid "Replacement"
+msgstr "Repuesto"
+
+msgctxt "field:product.product,equipment_type:"
+msgid "Equipment type"
+msgstr "Tipo de Equipo"
+
+msgctxt "field:product.product,risk:"
+msgid "Type risk"
+msgstr "Tipo de riesgo"
+
+msgctxt "field:product.product,use:"
+msgid "Use"
+msgstr "Uso"
+
+msgctxt "field:product.product,biomedical_class:"
+msgid "Biomedical Class"
+msgstr "Clase Biomedica"
+
+msgctxt "field:product.product,main_tecnology:"
+msgid "Main tecnology"
+msgstr "Tecnología principal"
+
+msgctxt "field:product.product,calibration:"
+msgid "Apply calibration"
+msgstr "Aplica calibración"
+
+msgctxt "field:product.product,observation:"
+msgid "Observation"
+msgstr "Observación"
+
+msgctxt "field:product.product,mark_category:"
+msgid "Mark"
+msgstr "Marca"
+
+msgctxt "field:product.product,model_category:"
+msgid "Model"
+msgstr "Modelo"
+
+msgctxt "field:product.product,reference_category:"
+msgid "Reference"
+msgstr "Referencia"
+
+msgctxt "field:product.product,origin_country:"
+msgid "Origin Country"
+msgstr "País de origen"
+
+msgctxt "field:product.product,temperature_min:"
+msgid "Temp Min"
+msgstr "Temp Min"
+
+msgctxt "field:product.product,temperature_max:"
+msgid "Temp Max"
+msgstr "Temp Max"
+
+msgctxt "field:product.product,moisture_min:"
+msgid "Moisture Min"
+msgstr "Humedad Min"
+
+msgctxt "field:product.product,moisture_max:"
+msgid "Moisture Max"
+msgstr "Humedad Max"
+
+msgctxt "field:product.product,frequency:"
+msgid "Frequency"
+msgstr "Frecuencia"
+
+msgctxt "field:product.product,voltageAC:"
+msgid "Voltage AC"
+msgstr "Voltaje AC"
+
+msgctxt "field:product.product,voltageDC:"
+msgid "Voltage DC"
+msgstr "Voltaje DC"
+
+msgctxt "field:product.product,useful_life:"
+msgid "Useful life"
+msgstr "Vida útil"
+
+msgctxt "field:product.product,warranty:"
+msgid "Warranty"
+msgstr "Garantía"
+
+msgctxt "field:product.product,uncertainy_pattern:"
+msgid "Uncertainy Pattern"
+msgstr "Incertidumbre Patrón"
+
+msgctxt "field:product.product,k_pattern:"
+msgid "K Pattern"
+msgstr "Patrón K"
+
+msgctxt "field:product.product,resolution_type:"
+msgid "Resolution Type"
+msgstr "Tipo de Resolución"
+
+msgctxt "field:product.product,d_resolution:"
+msgid "Resolution d"
+msgstr "Resolución (d)"
+
+msgctxt "field:product.product,analog_resolution:"
+msgid "Analog resolution"
+msgstr "Resolución Analoga"
+
+msgctxt "field:product.product,a_factor_resolution:"
+msgid "(a) Resolution"
+msgstr "Factor a"
+
+msgctxt "field:product.product,software_required:"
+msgid "Software Required"
+msgstr "Software Requerido"
+
+msgctxt "field:optical_equipment.configuration,maintenance_sequence:"
+msgid "Maintenance Sequence"
+msgstr "Secuencia de Mantenimientos"
+
+msgctxt "field:optical_equipment.configuration,agended_sequence:"
+msgid "Agended Sequence"
+msgstr "Secuencia de Agendas"
+
+msgctxt "field:optical_equipment.configuration,contract_sequence:"
+msgid "Contract Sequence"
+msgstr "Secuencia de Contratos"
+
+msgctxt "view:optical_equipment_maintenance.diary:"
+msgid "Dates"
+msgstr "Fechas"
+
+msgctxt "model:ir.action,name:act_reassing_agended"
+msgid "ReAssing Agended"
+msgstr "Reagendar"
+
+msgctxt "model:ir.action,name:act_assing_agended"
+msgid "Assing Agended"
+msgstr "Asignar Agenda"
+
+msgctxt "field:optical_equipment_maintenance.agended,maintenance_service:"
+msgid "Maintenaince Service"
+msgstr "Servicio de Mantenimiento"
+
+msgctxt "field:optical_equipment_maintenance.agended,estimated_agended:"
+msgid "Date Maintenance"
+msgstr "Fecha de Mantenimiento"
+
+msgctxt "field:optical_equipment_maintenance.agended,technical:"
+msgid "Technical"
+msgstr "Técnico"
+
+msgctxt "field:optical_equipment_maintenance.reagended,maintenance_service:"
+msgid "Maintenaince Service"
+msgstr "Servicio de Mantenimiento"
+
+msgctxt "field:optical_equipment_maintenance.reagended,estimated_agended:"
+msgid "Date Maintenance"
+msgstr "Fecha de Mantenimiento"
+
+msgctxt "field:optical_equipment_maintenance.reagended,technical:"
+msgid "Technical"
+msgstr "Técnico"
+
+msgctxt "view:optical_equipment_maintenance.service:"
+msgid "Lines Of Mantenaince"
+msgstr "Líneas de Mantenimiento"
+
+msgctxt "view:optical_equipment_maintenance.service:"
+msgid "Agendes"
+msgstr "Agendas"
+
+msgctxt "view:optical_equipment_maintenance.service:"
+msgid "Other Info"
+msgstr "Otra Información"
+
+msgctxt "selection:optical_equipment_maintenance.service,state:"
+msgid "Draft"
+msgstr "Borrador"
+
+msgctxt "selection:optical_equipment_maintenance.service,state:"
+msgid "Agended"
+msgstr "Agendado"
+
+msgctxt "selection:optical_equipment_maintenance.service,state:"
+msgid "In Progress"
+msgstr "En Proceso"
+
+msgctxt "selection:optical_equipment_maintenance.service,state:"
+msgid "Failed"
+msgstr "Fallido"
+
+msgctxt "selection:optical_equipment_maintenance.service,state:"
+msgid "Finished"
+msgstr "Finalizado"
+
+msgctxt "selection:optical_equipment_maintenance.service,state_agended:"
+msgid "No agenda"
+msgstr "Sin Agenda"
+
+msgctxt "selection:optical_equipment_maintenance.service,state_agended:"
+msgid "Agended"
+msgstr "Agendado"
+
+msgctxt "selection:optical_equipment_maintenance.service,state_agended:"
+msgid "In progress"
+msgstr "En proceso"
+
+msgctxt "selection:optical_equipment_maintenance.service,state_agended:"
+msgid "Finish"
+msgstr "Finalizado"
+
+msgctxt "selection:optical_equipment_maintenance.service,state_agended:"
+msgid "Failed"
+msgstr "Fallido"
+
+msgctxt "field:optical_equipment.maintenance,service_maintenance:"
+msgid "Maintenance Service"
+msgstr "Servicio de Mantenimiento"
+
+msgctxt "field:optical_equipment.maintenance,code:"
+msgid "Code"
+msgstr "Código"
+
+msgctxt "field:optical_equipment.maintenance,maintenance_type:"
+msgid "Maintenance Type"
+msgstr "Tipo de Mantenimiento"
+
+msgctxt "field:optical_equipment.maintenance,state:"
+msgid "State"
+msgstr "Estado"
+
+msgctxt "field:optical_equipment.maintenance,company:"
+msgid "Company"
+msgstr "Compañia"
+
+msgctxt "field:optical_equipment.maintenance,propietary:"
+msgid "Propietary"
+msgstr "Propietario"
+
+msgctxt "field:optical_equipment.maintenance,propietary_address:"
+msgid "Propietary Address"
+msgstr "Dirección del Propietario"
+
+msgctxt "field:optical_equipment.maintenance,equipment:"
+msgid "Equipment"
+msgstr "Equipo"
+
+msgctxt "field:optical_equipment.maintenance,maintenance_activity:"
+msgid "Maintenance Activitys"
+msgstr "Actividades de Mantenimiento"
+
+msgctxt "field:optical_equipment.maintenance,patterns_equipments:"
+msgid "K Pattern"
+msgstr "Patron K"
+
+msgctxt "field:optical_equipment.maintenance,lines_calibration:"
+msgid "Lines of Calibration"
+msgstr "Líneas de Calibración"
+
+msgctxt "field:optical_equipment.maintenance,calibration_total:"
+msgid "Calibration Total"
+msgstr "Resultado Calibración"
+
+msgctxt "field:optical_equipment.maintenance,maintenance_lines:"
+msgid "Lines"
+msgstr "Líneas"
+
+msgctxt "view:optical_equipment.maintenance:"
+msgid "Preventive"
+msgstr "Preventivo"
+
+msgctxt "view:optical_equipment.maintenance:"
+msgid "Corrective"
+msgstr "Correctivo"
+
+msgctxt "view:optical_equipment.maintenance:"
+msgid "Calibration"
+msgstr "Calibración"
+
+msgctxt "selection:optical_equipment.maintenance,state:"
+msgid "Draft"
+msgstr "Borrador"
+
+msgctxt "selection:optical_equipment.maintenance,state:"
+msgid "Finished"
+msgstr "Finalizado"
+
+msgctxt "model:ir.model.button,string:maintenance_service_draft_button"
+msgid "Draft"
+msgstr "Borrador"
+
+msgctxt "model:ir.model.button,string:maintenance_service_in_progress_button"
+msgid "In progress"
+msgstr "En Proceso"
+
+msgctxt "model:ir.model.button,string:maintenance_service_finished_button"
+msgid "Finished"
+msgstr "Finalizado"
+
+msgctxt "model:ir.model.button,string:maintenance_finished_button"
+msgid "Finished"
+msgstr "Finalizado"
+
+msgctxt "model:ir.model.button,string:maintenance_calibrate_button"
+msgid "Calibrate"
+msgstr "Calibrar"
+
+msgctxt "field:optical_equipment.maintenance.calibration_sample,maintenance:"
+msgid "Maintenance"
+msgstr "Mantenimiento"
+
+msgctxt "field:optical_equipment.maintenance.calibration_sample,number_sample:"
+msgid "Sample #"
+msgstr "Muestra #"
+
+msgctxt "field:optical_equipment.maintenance.calibration_sample,value_patterns:"
+msgid "Value Pattern"
+msgstr "Patrón de valor"
+
+msgctxt "field:optical_equipment.maintenance.calibration_sample,value_equipment:"
+msgid "Value in Equipment"
+msgstr "Valor del Equipo"
+
+msgctxt "field:optical_equipment.maintenance.calibration_sample,mistake:"
+msgid "Mistake"
+msgstr "Error"
+
+msgctxt "field:optical_equipment.maintenance.calibration_sample,mistake_rate:"
+msgid "% Mistake"
+msgstr "% de Error"
+
+msgctxt "field:optical_equipment.maintenance.calibration,maintenance:"
+msgid "Maintenance"
+msgstr "Mantenimiento"
+
+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"
+
+msgctxt "field:optical_equipment.maintenance.calibration,uncertain_pattern:"
+msgid "Uncertain Pattern"
+msgstr "Patrón incierto"
+
+msgctxt "field:optical_equipment.maintenance.calibration,k_c_calibration:"
+msgid "K Crt Calibration"
+msgstr "Calibración K Crt"
+
+msgctxt "field:optical_equipment.maintenance.calibration,uncertain_U_b1:"
+msgid "U_b1"
+msgstr "Incierto b1"
+
+msgctxt "field:optical_equipment.maintenance.calibration,d_resolution:"
+msgid "d_resolution"
+msgstr "D Resolución"
+
+msgctxt "field:optical_equipment.maintenance.calibration,uncertain_U_b2_dig:"
+msgid "U_b2"
+msgstr "Incierto b2 dig"
+
+msgctxt "field:optical_equipment.maintenance.calibration,uncertain_U_b2_ana:"
+msgid "U_b2"
+msgstr "Incierto b2 ana"
+
+msgctxt "field:optical_equipment.maintenance.calibration,uncertain_combinated:"
+msgid "U_combinated"
+msgstr "Incierto Combinado"
+
+msgctxt "field:optical_equipment.maintenance.calibration,uncertain_eff:"
+msgid "U eff"
+msgstr "Incierto eff"
+
+msgctxt "field:optical_equipment.maintenance.calibration,t_student:"
+msgid "T Student"
+msgstr "T Alumno"
+
+msgctxt "field:optical_equipment.maintenance.calibration,uncertain_expanded:"
+msgid "Uexpand"
+msgstr "Expandir"
+
+msgctxt "field:optical_equipment.maintenance.calibration,state:"
+msgid "State"
+msgstr "Estado"
+
+msgctxt "model:ir.action.act_window.domain,name:act_maintenance_form_domain_draft"
+msgid "Draft"
+msgstr "Borrador"
+
+msgctxt "model:ir.action.act_window.domain,name:act_maintenance_form_domain_finished"
+msgid "Finished"
+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
diff --git a/maintenance.py b/maintenance.py
index 0ab93de..d713f4b 100644
--- a/maintenance.py
+++ b/maintenance.py
@@ -61,6 +61,7 @@ class MaintenanceService(Workflow, ModelSQL, ModelView):
('finished', "Finished")
], "State", required=True, readonly=True, sort=True)
+
@classmethod
def __setup__(cls):
super(MaintenanceService, cls).__setup__()
@@ -501,6 +502,7 @@ class AgendedInitial(ModelView):
required=True, domain=[('state', '=', 'draft')])
estimated_agended = fields.DateTime("Date Maintenance", required=True)
technical = fields.Many2One('company.employee', "Technical", required=True)
+
class AssingAgended(Wizard):
'Assing Agended'
@@ -597,15 +599,72 @@ class MaintenanceLine(ModelSQL, ModelView):
'Maintenance Line'
__name__ = 'optical_equipment.maintenance.line'
- product = fields.Many2One('product.product', 'Product',
- ondelete='RESTRICT',domain=[
- If(Eval('sale_state').in_(['draft']),
- ('maintenance_activity', '=', True),
- ()),
- ],)
- maintenance = fields.Many2One('optical_equipment.maintenance', 'Maintenance', ondelete='CASCADE', select=True)
- maintenance_activity = fields.Many2One('product.product', 'Maintenance activity')
+ line_replace = fields.Boolean("Replace", states={'readonly': If(Eval('line_maintenance_activity') == True, True)})
+ line_maintenance_activity = fields.Boolean("Maintenance Activity", states={'readonly': If(Eval('line_replace') == True, True)})
+ maintenance = fields.Many2One('optical_equipment.maintenance', 'Maintenance', ondelete='CASCADE', select=True)
+ replacement = fields.Many2One('product.product', 'Replacement', ondelete='RESTRICT',
+ domain=[('replacement', '=', True)],
+ states={'invisible': (If(Eval('line_maintenance_activity') == True, True)) | (If(Eval('line_replace') == False, True)),
+ 'required': If(Eval('line_replace') == True, True)},
+ depends=['line_replace'])
+ maintenance_activity = fields.Many2One('product.product', 'Maintenance activity',
+ domain=[('maintenance_activity', '=', True)],
+ states={'invisible': If(Eval('line_replace') == True, True) | (If(Eval('line_maintenance_activity') == False, True)),
+ 'required': If(Eval('line_maintenance_actitvity') == True, True)},
+ depends=['line_maintenance_activity'])
+ quantity = fields.Float("Quantity", digits='unit')
+ actual_quantity = fields.Float(
+ "Actual Quantity", digits='unit', readonly=True,
+ states={
+ 'invisible': Eval('type') != 'line',
+ })
+ unit = fields.Many2One('product.uom', 'Unit', ondelete='RESTRICT',
+ states={
+ 'readonly': Eval('_parent_maintenance.state') != 'draft',
+ },domain=[If(Bool(Eval('product_uom_category')),
+ ('category', '=', Eval('product_uom_category')),
+ ('category', '!=', -1)),
+ ])
+ product_uom_category = fields.Function(fields.Many2One('product.uom.category', 'Product Uom Category'),
+ 'on_change_with_product_uom_category')
+ company = fields.Function(fields.Many2One('company.company', "Company"),'on_change_with_company')
+
+ @fields.depends('maintenance', '_parent_maintenance.company')
+ def on_change_with_company(self, name=None):
+ if self.maintenance and self.maintenance.company:
+ return self.maintenance.company.id
+
+ @fields.depends('line_replace', 'replacement')
+ def on_change_line_replace(self, name=None):
+ if self.line_replace == False:
+ self.replacement = None
+
+ @fields.depends('line_maintenance_activity', 'maintenance_activity')
+ def on_change_line_maintenance_activity(self, name=None):
+ if self.line_maintenance_activity == False:
+ self.maintenance_activity = None
+
+ @fields.depends('replacement', 'maintenance', 'unit', 'maintenance')
+ def on_change_replacement(self):
+ if not self.replacement:
+ self.unit = None
+ return
+
+ if not self.unit or self.unit.category != category:
+ self.unit = self.replacement.sale_uom
+
+ @fields.depends('maintenance_activity',
+ 'quantity', 'unit')
+ def on_change_maintenance_activity(self):
+ if not self.maintenance_activity:
+ self.quantity = None
+ self.unit = None
+ return
+
+ 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'
diff --git a/view/contract_form.xml b/view/contract_form.xml
index 6efb21d..1fbc1e7 100644
--- a/view/contract_form.xml
+++ b/view/contract_form.xml
@@ -39,6 +39,5 @@ this repository contains the full copyright notices and license terms. -->
- -->
diff --git a/view/maintenance_form.xml b/view/maintenance_form.xml
index 58f523a..3a9376c 100644
--- a/view/maintenance_form.xml
+++ b/view/maintenance_form.xml
@@ -34,8 +34,6 @@
-
-