From 56f9eb92a0495b8af76c650006f1665e1a46eff4 Mon Sep 17 00:00:00 2001 From: raskolnikov Date: Wed, 11 Jan 2023 20:16:01 -0500 Subject: [PATCH] add change propietary in maintenance service --- __init__.py | 3 +++ equipment.py | 1 + maintenance.py | 50 +++++++++++++++++++++++++++++++++++++++++++++++++ maintenance.xml | 15 +++++++++++++++ sale.py | 3 +++ 5 files changed, 72 insertions(+) diff --git a/__init__.py b/__init__.py index f73f9dd..01c0ca9 100644 --- a/__init__.py +++ b/__init__.py @@ -28,6 +28,7 @@ def register(): maintenance.AgendedInitial, maintenance.ReAgended, maintenance.ServiceMaintenanceAgended, + maintenance.ChangePropietaryMaintenance, move.Move, move.ShipmentOut, move.ShipmentInternal, @@ -41,5 +42,7 @@ def register(): maintenance.AssingAgended, maintenance.ReAssingAgended, maintenance.CreateContract, + maintenance.NewPropietaryMaintenance, equipment.NewPropietary, + module='optical_equipment', type_='wizard') diff --git a/equipment.py b/equipment.py index a1132eb..66b2520 100644 --- a/equipment.py +++ b/equipment.py @@ -379,5 +379,6 @@ class ChangeEquipment(ModelSQL): 'Change Equipment' __name__ = 'optical_equipment.equipment-change_propietary.form' + maintenance_service = fields.Many2One('optical_equipment_maintenance.service', "Maintenance Service") equipment = fields.Many2One('optical_equipment.equipment', 'Equipment') change = fields.Many2One('optical_equipment.change_propietary.form', 'Change') diff --git a/maintenance.py b/maintenance.py index 995f29d..413bb41 100644 --- a/maintenance.py +++ b/maintenance.py @@ -1080,3 +1080,53 @@ class CreateContract(Wizard): price_contract=maintenance_service.sale_origin.sale.total_amount ) contract.save() + +class ChangePropietaryMaintenance(ModelView): + 'Change of Propietary Equipment' + __name__ = 'optical_equipment.change_propietary_maintenance.form' + + old_propietary = fields.Many2One('party.party', 'Old Propietary', + states={'required': True}) + maintenance_service = fields.Many2Many('optical_equipment_maintenance.service', None, None, "Maintenance Service", + domain=[('propietary', '=', Eval('old_propietary'))], + depends=['old_propietary']) + new_propietary = fields.Many2One('party.party', "New Propietary", + states={'required': True}) + new_address = fields.Many2One('party.address', "New Address", required=True, + domain=[('party', '=', Eval('new_propietary'))], + states={'required': True}) + 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 NewPropietaryMaintenance(Wizard): + 'Change Propietary' + __name__ = 'optical_equipment.change_propietary_maintenance' + + start = StateView('optical_equipment.change_propietary_maintenance.form', + 'optical_equipment.change_propietary_maintenance_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): + old_propietary = self.start.old_propietary + services = self.start.maintenance_service + new_propietary = self.start.new_propietary + new_address = self.start.new_address + + for service in services: + service.propietary = new_propietary + service.propietary_address = new_address + service.save() + for maintenance in service.lines: + maintenance.propietary = new_propietary + maintenance.propietary_address = new_address + maintenance.save() + diff --git a/maintenance.xml b/maintenance.xml index 087e5c1..7888bb2 100644 --- a/maintenance.xml +++ b/maintenance.xml @@ -18,6 +18,11 @@ form maintenance_form + + optical_equipment.change_propietary_maintenance.form + form + change_propietary_maintenance_form + Services Maintenance optical_equipment_maintenance.service @@ -265,6 +270,16 @@ optical_equipment_maintenance.service,-1 + + Change Propietary Maintenance + optical_equipment.change_propietary_maintenance + optical_equipment_maintenance.service + + + form_action + optical_equipment_maintenance.service,-1 + +