Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • 13f2c47f7251dcc5f87fd36e2ec19653b11b51ca
  • 12.0 par défaut protégée
  • 14-RV-20250512
  • 14-rv-20250312
  • 12-RV-Statut-facturation-idf
  • 12-RV-Ajout-champs
  • 12.0-lm-00
7 résultats

scop_compulsory_fields_suivi_wizard.py

Blame
  • 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"}