Newer
Older
# © 2019 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
class ScopQuestionnaire(models.Model):
_name = "scop.questionnaire"

Benjamin - Le Filament
a validé
_rec_name = 'year'
partner_id = fields.Many2one(
comodel_name='res.partner',
string='Organisme',
domain=[('is_company', '=', True)],
ondelete='cascade', index=True)
id_riga = fields.Integer("ID RIGA")
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)")

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

Benjamin - Le Filament
a validé
quest_type = self.env.ref('cgscop_partner.questionnaire_type_1')

Benjamin - Le Filament
a validé
if questionnaire.effective_date:
staff_values = {
'partner_id': questionnaire.partner_id.id,
'user_id': self.env.uid,

Benjamin - Le Filament
a validé
'type_entry': 'questionnaire' if questionnaire.type_id != quest_type else 'questionnaire_inscription',

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

Benjamin - Le Filament
a validé
quest_type = self.env.ref('cgscop_partner.questionnaire_type_1')

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

Benjamin - Le Filament
a validé
'type_entry': 'questionnaire' if questionnaire.type_id != quest_type else 'questionnaire_inscription',

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