diff --git a/views/res_partner_cooperative.xml b/views/res_partner_cooperative.xml
index 44c223847c867dee5773590d35693f75f2c8b221..ec0b31de598b09416cb3ad3869068a7d72f0d96b 100644
--- a/views/res_partner_cooperative.xml
+++ b/views/res_partner_cooperative.xml
@@ -74,7 +74,7 @@
<form string="Cooperatives">
<header>
<button string="Nouvelle période" type="action" name="%(cgscop_partner.scop_period_wizard_create_action)d" class="oe_highlight" attrs="{'invisible': ['|', ('write_date', '=', False), ('project_status', '!=', '5_suivi')]}"/>
- <button string="Décés/Mise en sommeil" type="action" name="%(cgscop_partner.scop_deces_wizard_create_action)d" class="oe_highlight" attrs="{'invisible': [('project_status', '!=', '5_suivi')]}"/>
+ <button string="Décés/Mise en sommeil" type="action" name="%(cgscop_partner.scop_deces_wizard_create_action)d" class="oe_highlight" attrs="{'invisible': ['|', ('write_date', '=', False), ('project_status', '!=', '5_suivi')]}"/>
<field name="project_status" widget="statusbar" clickable="True" statusbar_visible="1_information,2_pre-diagnostic,3_accompagnement,4_adhesion,5_suivi"/>
</header>
<sheet>
diff --git a/wizard/scop_deces_wizard.py b/wizard/scop_deces_wizard.py
index a738c8ac7763dc6797af213e7bbd962b041c0302..f82b085c5d999aa00dd4988cc37d0013115cbeab 100644
--- a/wizard/scop_deces_wizard.py
+++ b/wizard/scop_deces_wizard.py
@@ -2,6 +2,7 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import api, fields, models
+from odoo.exceptions import ValidationError
class ScopDecesWizard(models.TransientModel):
@@ -16,30 +17,17 @@ class ScopDecesWizard(models.TransientModel):
@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)
+ [('partner_id', '=', self.env.context.get('active_id')),
+ ('end_reason', '=', False)],
+ limit=1).id
# 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)
+ last_period_id = fields.Integer(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",
@@ -51,16 +39,20 @@ class ScopDecesWizard(models.TransientModel):
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
- })
+ self.last_period_id)
+ if last_period_id:
+ last_period_id.write({
+ 'end': self.end,
+ 'end_reason': 'autr',
+ '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
+ })
+ else:
+ raise ValidationError(
+ "Il n'existe pas de période à fermer.")
diff --git a/wizard/scop_deces_wizard.xml b/wizard/scop_deces_wizard.xml
index 3e3527620917259bab0d8904f1184c51b0a9b7f6..3c287ec549ebdb5d4a25bc2bb51815f2bdd7aa4a 100644
--- a/wizard/scop_deces_wizard.xml
+++ b/wizard/scop_deces_wizard.xml
@@ -10,7 +10,6 @@
<field name="end"/>
<field name="dissolution_reason_id"/>
<field name="comments"/>
- <field name="end_reason" invisible="1"/>
</group>
<footer>
<button class="btn btn-sm btn-primary" name="deces_action" string="Créer" type="object" confirm="Êtes-vous sûr de vouloir clôturer la dernière période ?"/>