Newer
Older
# © 2019 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import api, fields, models
class ScopDecesWizard(models.TransientModel):
_name = 'scop.deces.wizard'
_description = "Décés"
# Default functions
@api.model
def _default_partner_id(self):
return self.env.context.get('active_id')
@api.model
def _default_last_period_id(self):
return self.env['scop.period'].search(
[('partner_id', '=', self.env.context.get('active_id'))],
order='create_date desc',
limit=1)
# Fields common
partner_id = fields.Integer('Partner', default=_default_partner_id)
# Fields previous period
last_period_id = fields.One2many(
comodel_name='scop.period',
inverse_name='partner_id',
string="Dernière période",
default=_default_last_period_id)
end = fields.Date(
'Fin de validité', required=True, default=fields.Date.today())
end_reason = fields.Selection(
[('juri', "Modification de la forme juridique"),
('form', "Changement de forme coopérative"),
('acti', "Changement d'activité (NAF)"),
('adr', "Changement d'adresse"),
('nom', "Changement de dénomination sociale"),
('autr', "Autres")],
string='Motif',
default='autr')
dissolution_reason_id = fields.Many2one(
'res.partner.dissolution.reason',
string="Motif Décés",
on_delete='restrict',
required=True)
comments = fields.Text('Commentaires')
@api.multi
def deces_action(self):
# Close previous period
last_period_id = self.env['scop.period'].browse(
self.last_period_id.id)
last_period_id.write({
'end': self.end,
'end_reason': self.end_reason,
'comments': self.comments,
})
# Update partner
partner = self.env['res.partner'].browse(self.partner_id)
partner.write({
'dissolution_date': self.end,
'dissolution_reason_id': self.dissolution_reason_id.id