shift_template_registration_line.py 1.71 KB
# -*- coding: utf-8 -*-

from openerp import api, models
import logging

_logger = logging.getLogger(__name__)

class ShiftTemplateRegistrationLine(models.Model):
    _inherit = 'shift.template.registration.line'

    @api.model
    def create(self, vals):
        super_res = super(ShiftTemplateRegistrationLine, self.with_context(
            dict(self.env.context, **{'creation_in_progress': True}))).create(vals)
        #_logger.info("valeurs recues pour create shift.template.registration.line = %s", str(vals))

        if 'partner_id' in vals and 'shift_ticket_id' in vals:
            conf = self.env['ir.config_parameter']
            suspension_limit = int(conf.get_param("lacagette_membership.points_limit_to_get_suspended"))
            unsubscribe_limit = int(conf.get_param("lacagette_membership.points_limit_to_get_unsubscribed"))
            member = self.env['res.partner'].search([('id', '=', vals['partner_id'])])
            shift_ticket = self.env['shift.ticket'].search([('id', '=', vals['shift_ticket_id'])])
            if member and shift_ticket:
                member = member[0]
                shift_ticket = shift_ticket[0]
                if shift_ticket.name == "ABCD":
                    points = member.final_standard_point
                else:
                    points = member.final_ftop_point
                if points <= suspension_limit or points <= unsubscribe_limit:
                    coop_state = 'suspended'
                    if points <= unsubscribe_limit:
                        coop_state = 'unsubscribed'
                    member.update({'cooperative_state': coop_state})
                    _logger.info("new cooperative_state = %s for %s", coop_state, str(member.id))
        return super_res