Newer
Older
# Copyright 2020-2022 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
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,
"eligible": porteur_project.eligible,
res.update({"participant_ids": participant_ids})
cout_id = self.env["adefpat.project.cout"].search(
[
("project_id", "=", default_project_id.id),
("partner_id", "!=", False),
],
limit=1,
)
res.update({"formateur_id": cout_id.partner_id.id})
default=lambda self: self.env.uid,
index=True,
("active", "=", True),
("is_company", "=", False),
("is_consultant_form", "=", True),
"|",
("reference", "=", "reference"),
("reference", "=", "prereference"),
],
)
duree_jr = fields.Selection(
[
("demi_journee", "Demi journée"),
("journee", "Journée"),
duree_hr = fields.Float("Durée (int)", compute="_compute_duree_hr", store=True)
"res.partner.porteur.project", "task_id", string="Participants"
)
cout_seance = fields.Float("Coût de la séance", compute="_compute_cout_seance")
date_account = fields.Date("Date de la facture")
@api.multi
def _compute_duree_hr(self):
for task in self:
if task.duree_jr == "demi_journee":
task.duree_hr = 0.5
@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),
],
limit=1,
)
task.cout_seance = formateur_proj.cout_jour * task.duree_hr