Skip to content
Extraits de code Groupes Projets
scop_questionnaire.py 3,14 ko
Newer Older
  • Learn to ignore specific revisions
  • Juliana's avatar
    Juliana 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 models, fields, api
    
    Juliana's avatar
    Juliana a validé
    
    
    
    class ScopQuestionnaire(models.Model):
        _name = "scop.questionnaire"
    
    Juliana's avatar
    Juliana a validé
        _description = "Questionnaire"
    
    Juliana's avatar
    Juliana a validé
    
        partner_id = fields.Many2one(
            comodel_name='res.partner',
            string='Organisme',
            domain=[('is_company', '=', True)],
    
        id_riga = fields.Integer("ID RIGA")
    
        year = fields.Char("Année", index=True)
    
        type_id = fields.Many2one(
            'scop.questionnaire.type',
            string="Type de questionnaire",
            ondelete='restrict', index=True)
    
        effective_date = fields.Date("Date d'effet du questionnaire")
    
        staff_count = fields.Integer("Effectif (EF)")
    
        staff_shareholder_count = fields.Integer("Eff. Sociétaires (ES)")
    
        staff_average = fields.Integer("Eff. Moyen (EM)")
    
    
        # ------------------------------------------------------
        # Override ORM
        # ------------------------------------------------------
        # Création d'un ligne d'effectif
        @api.model_create_multi
        def create(self, vals_list):
            questionnaire = super(ScopQuestionnaire, self).create(vals_list)
    
            quest_type = self.env.ref('cgscop_partner.questionnaire_type_1')
    
            if questionnaire.effective_date:
                staff_values = {
                    'partner_id': questionnaire.partner_id.id,
                    'user_id': self.env.uid,
    
                    'type_entry': 'questionnaire' if questionnaire.type_id != quest_type else 'questionnaire_inscription',
    
                    'effective_date': questionnaire.effective_date,
                    'staff_count': questionnaire.staff_count,
                    'staff_shareholder_count': questionnaire.staff_shareholder_count,
                    'staff_average': questionnaire.staff_average,
                    'questionnaire_id': questionnaire.id,
                }
                self.env['scop.partner.staff'].create(staff_values)
            return questionnaire
    
        # Mise à jour du questionnaire lors de la modification
        @api.multi
        def write(self, vals):
            questionnaire = super(ScopQuestionnaire, self).write(vals)
    
            quest_type = self.env.ref('cgscop_partner.questionnaire_type_1')
    
            staff = self.env['scop.partner.staff'].search([
                ('questionnaire_id', '=', self.id)])
            if staff:
                if self.effective_date:
                    staff_values = {
                        'partner_id': self.partner_id.id,
                        'user_id': self.env.uid,
    
                        'type_entry': 'questionnaire' if questionnaire.type_id != quest_type else 'questionnaire_inscription',
    
                        'effective_date': self.effective_date,
                        'staff_count': self.staff_count,
                        'staff_shareholder_count': self.staff_shareholder_count,
                        'staff_average': self.staff_average,
                    }
                    staff.write(staff_values)
            return questionnaire
    
    
    
    class ScopQuestionnaireType(models.Model):
        _name = "scop.questionnaire.type"
        _description = "Type de Questionnaire"
    
        name = fields.Char('Type de Questionnaire')