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
+
+