bemade-addons/bemade_sethy_configuration/wizard/transfer_property_wizard.py
Benoît Vézina 2081f149ee sethy final
2024-03-21 13:16:15 -04:00

44 lines
No EOL
1.7 KiB
Python

from odoo import models, fields, api
from datetime import timedelta
class TransferPropertyWizard(models.TransientModel):
_name = 'transfer.property.wizard'
_description = 'Transfer Property Wizard'
property_id = fields.Many2one(
comodel_name='res.partner',
string='Property',
domain=[('is_property', '=', True)],
required=True
)
new_owner_id = fields.Many2many(
comodel_name='res.partner',
string='New Owner',
required=True,
domain=[('is_property', '=', False)],
)
transfer_date = fields.Date(
string='Transfer Date',
required=True,
default=fields.Date.today()
)
def action_transfer_property(self):
if self.property_id.relation_property_ids.filtered("active"):
for old_owner_relation in self.property_id.relation_property_ids.filtered("active"):
if old_owner_relation.date_start and old_owner_relation.date_start >= self.transfer_date:
old_owner_relation.unlink()
else:
old_owner_relation.write({'date_end': self.transfer_date - timedelta(days=1)})
old_owner_relation.this_partner_id._compute_owner()
for new_owner in self.new_owner_id:
self.env['res.partner.relation.all'].create({
'this_partner_id': new_owner.id,
'other_partner_id': self.property_id.id,
'type_id': self.env.ref('bemade_sethy_configuration.partner_relation_property').id,
'date_start': self.transfer_date,
})
new_owner._compute_owner()
return {'type': 'ir.actions.act_window_close'}