Skip to content
Extraits de code Groupes Projets
scop_membership_period_wizard.py 2,02 ko
Newer Older
  • Learn to ignore specific revisions
  • Rémi - Le Filament's avatar
    Rémi - Le Filament a validé
    # © 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')
    
        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())
    
        start_stat = fields.Date('Début d’adhésion stat.', required=True,
            default=fields.Date.today())
    
    Rémi - Le Filament's avatar
    Rémi - Le Filament a validé
        number = fields.Char("No adhérent", required=True)
        note = fields.Text('Commentaires')
    
        @api.multi
        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,
    
                        'start_stat' : period.start_stat,
    
    Rémi - Le Filament's avatar
    Rémi - Le Filament a validé
                        'number': period.number,
                        'note': period.note
                        })
    
    
        @api.multi  
        @api.onchange('start')
        def onchange_start(self):
            for rec in self:
                if rec.start:
                    rec.start_stat=rec.start