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")

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=fields.Date.today())

Benjamin - Le Filament
a validé
start_stat = fields.Date(
"Début d’adhésion stat.", required=True, default=fields.Date.today()
)
number = fields.Char("No adhérent", required=True)

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,
"start_stat": period.start_stat,
"number": period.number,
"note": period.note,
}
)

Benjamin - Le Filament
a validé
@api.onchange("start")
def onchange_start(self):
for rec in self:
if rec.start:

Benjamin - Le Filament
a validé
rec.start_stat = rec.start