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
from odoo.exceptions import ValidationError
class ScopMembershipPeriodWizard(models.TransientModel):

Benjamin - Le Filament
a validé
_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):

Benjamin - Le Filament
a validé
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

Benjamin - Le Filament
a validé
partner_id = fields.Integer("Partner", default=_default_partner_id)

Benjamin - Le Filament
a validé
"scop.membership.type",

Benjamin - Le Filament
a validé
ondelete="restrict",
required=True,
)
start = fields.Date("Début d’adhésion", required=True, default=lambda self: fields.Date.today())
number = fields.Char("No adhérent", required=True, default=_default_number)

Benjamin - Le Filament
a validé
note = fields.Text("Commentaires")
def create_period(self):
for period in self:
# Raise validation error if previous period exists

Benjamin - Le Filament
a validé
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")
)

Benjamin - Le Filament
a validé
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,
}
)