Sélectionner une révision Git
scop_compulsory_fields_suivi_wizard.py
Bifurcation depuis
Le Filament / Confédération Générale des SCOP / cgscop_adhesion
Le projet source a une visibilité limitée.
scop_compulsory_fields_suivi_wizard.py 4,52 Kio
# © 2021 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import _, fields, models
from odoo.exceptions import UserError
class ScopCompulsoryFieldsSuiviWizard(models.TransientModel):
_name = "scop.compulsory.fields.suivi.wizard"
_description = "Wizard: Confirmer les champs obligatoires pour passage en suivi "
partner_id = fields.Many2one(
comodel_name="res.partner", string="Coop", required=True
)
ur_id = fields.Many2one(related="partner_id.ur_id", readonly=False)
email = fields.Char(related="partner_id.email", readonly=False)
is_scop = fields.Boolean(compute="_compute_is_scop")
creation_origin_id = fields.Many2one(
related="partner_id.creation_origin_id", readonly=False
)
date_1st_sign = fields.Date(related="partner_id.date_1st_sign", readonly=False)
social_object = fields.Text(related="partner_id.social_object", readonly=False)
activity_desc = fields.Text(related="partner_id.activity_desc", readonly=False)
capital = fields.Integer(related="partner_id.capital", readonly=False)
first_closeout = fields.Date(related="partner_id.first_closeout", readonly=False)
closeout_month = fields.Selection(
related="partner_id.closeout_month", readonly=False
)
is_registration_in_progress = fields.Boolean(
related="partner_id.is_registration_in_progress", readonly=False
)
naf_id = fields.Many2one(related="partner_id.naf_id", readonly=False)
registration_date = fields.Date(
related="partner_id.registration_date", readonly=False
)
siret = fields.Char(related="partner_id.siret", readonly=False)
with_adhesion = fields.Boolean("Avec adhésion")
list_logs = fields.Text("Liste des erreurs")
# ------------------------------------------------------
# Compute
# ------------------------------------------------------
def _compute_is_scop(self):
form_id = self.partner_id.cooperative_form_id
if form_id in form_id._get_lm_form():
self.is_scop = True
else:
self.is_scop = False
# ------------------------------------------------------
# Actions / Buttons
# ------------------------------------------------------
def confirm(self):
"""
Passe la coop en statut "4_suivi"
"""
self.partner_id.sudo().write({"project_status": "4_suivi", "list_logs": False})
form_id = self.partner_id.cooperative_form_id
if self.with_adhesion:
self.partner_id.write({"membership_status": "adhesion"})
if form_id in form_id._get_lm_form() or self.with_adhesion:
# Create extranet access
self.partner_id.write({"extranet_service_access": True})
if not self.partner_id.director_ids:
raise UserError(
_("Il est nécessaire de renseigner les mandataires pour valider")
)
for director in self.partner_id.director_ids:
director.update(
{
"extranet_access": True,
"extranet_update_company": True,
"category_id": [
(
4,
self.env.ref(
"__export__.res_partner_category_6_a5b5dca7"
).id,
0,
),
],
}
)
if form_id in form_id._get_lm_form():
# Create LM
lm_id = (
self.env["scop.liste.ministere"]
.sudo()
.search(
[
("partner_id", "=", self.partner_id.id),
("type_lm", "=", "subscribe"),
("year", "=", self.date_1st_sign.year),
]
)
)
if not lm_id:
self.env["scop.liste.ministere"].sudo().create_folder(
self.partner_id, self.date_1st_sign.year, "subscribe"
)
# Set DDETS
self.partner_id.affectation_contact_ministere()
return {"type": "ir.actions.act_window_close"}
def save_data(self):
"""
Sauvegarder les données même avec erreurs
"""
return {"type": "ir.actions.act_window_close"}