Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • d47c4b8953aed5ef41d8fa454fa93ec6231c2faf
  • 16.0 par défaut protégée
  • 18.0
3 résultats

acc_operation.py

Blame
  • scop_membership_period_wizard.py 2,07 Kio
    # © 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
    from odoo.exceptions import ValidationError
    
    
    class ScopMembershipPeriodWizard(models.TransientModel):
        _name = "scop.membership.period.wizard"
        _description = "Création d'une nouvelle période d'adhésion"
    
        # Default functions
        @api.model
        def _default_partner_id(self):
            return self.env.context.get("active_id")
    
        @api.model
        def _default_number(self):
            partner_id = self.env["res.partner"].browse(self.env.context.get("active_id"))
            number = partner_id.member_number if partner_id.member_number else ""
            return number
    
        partner_id = fields.Integer("Partner", default=_default_partner_id)
        type_id = fields.Many2one(
            "scop.membership.type",
            string="Type d'adhésion",
            ondelete="restrict",
            required=True,
        )
        start = fields.Date("Début d’adhésion", required=True, default=fields.Date.today())
        number = fields.Char("No adhérent", required=True, default=_default_number)
        note = fields.Text("Commentaires")
    
        def create_period(self):
            for period in self:
                # Raise validation error if previous period exists
                if self.env["scop.membership.period"].search(
                    [
                        ("partner_id", "=", period.partner_id),
                        ("end", "=", False),
                        ("type_id", "=", period.type_id.id),
                    ],
                    limit=1,
                ):
                    raise ValidationError(
                        _("Une période d'adhésion existe déjà pour ce type")
                    )
                else:
                    self.env["scop.membership.period"].create(
                        {
                            "partner_id": period.partner_id,
                            "type_id": period.type_id.id,
                            "start": period.start,
                            "number": period.number,
                            "note": period.note,
                        }
                    )