You need to sign in or sign up before continuing.
Newer
Older
# Copyright 2020 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import fields, models, api
def default_get(self, fields):
res = super(ProjectTask, self).default_get(fields)
if 'default_project_id' in self.env.context:
default_project_id = self.env['project.project'].browse(self.env.context['default_project_id'])
if default_project_id.exists().porteurs_projets_ids:
participant_ids = []
for porteur_project in default_project_id.porteurs_projets_ids:
vals = {
'porteur_id': porteur_project.porteur_id.id,
'lastname': porteur_project.lastname,
'firstname': porteur_project.firstname,
'commune': porteur_project.commune,
'mobile': porteur_project.mobile,
'fixe': porteur_project.fixe,
'email': porteur_project.email,
}
participant_ids.append((0, 0, vals))
res.update({'participant_ids': participant_ids})
user_id = fields.Many2one(
'res.users',
string='CFD',
default=lambda self: self.env.uid,
index=True,
track_visibility='always')
formateur_id = fields.Many2one(
'res.partner',
string='Formateur',
domain=[
('active', '=', True),
('is_company', '=', False),
('is_consultant_form', '=', True),
'|', ('reference', '=', 'reference'),
('reference', '=', 'prereference')],
on_delete='restrict')
('demi_journee', "Demi journée"),
('journee', "Journée"),
],
"Durée (en jours)")
duree_hr = fields.Float(
"Durée en heures",
compute='_compute_duree_hr',
store=True
)
participant_ids = fields.One2many(
'res.partner.porteur.project',
'task_id',
cout_seance = fields.Float("Coût de la séance", compute='_compute_cout_seance')
@api.depends('duree_jr')
@api.multi
def _compute_duree_hr(self):
for task in self:
if task.duree_jr == 'journee':
task.duree_hr = 1
if task.duree_jr == 'demi_journee':
task.duree_hr = 0.5\
@api.depends('formateur_id', 'duree_hr')
@api.multi
def _compute_cout_seance(self):
for task in self:
if task.formateur_id:
formateur_proj = self.env['adefpat.project.cout'].search([
('project_id', '=', task.project_id.id),
('partner_id', '=', task.formateur_id.id)
])
if formateur_proj:
task.cout_seance = formateur_proj.cout_jour * task.duree_hr