[IMP] project_working_time_task_portal : add non billable hours for subtasks
Some checks failed
pre-commit / pre-commit (pull_request) Failing after 1m28s
Some checks failed
pre-commit / pre-commit (pull_request) Failing after 1m28s
This commit is contained in:
@@ -9,7 +9,6 @@ class Task(models.Model):
|
||||
compute="_compute_billable_effective_hours",
|
||||
string="Billable Effective Hours",
|
||||
store=True,
|
||||
compute_sudo=True,
|
||||
)
|
||||
|
||||
non_billable_effective_hours = fields.Float(
|
||||
@@ -36,7 +35,13 @@ class Task(models.Model):
|
||||
compute="_compute_subtask_billable_effective_hours",
|
||||
string="Subtask Billable Effective Hours",
|
||||
store=True,
|
||||
compute_sudo=True,
|
||||
recursive=True,
|
||||
)
|
||||
|
||||
subtask_non_billable_effective_hours = fields.Float(
|
||||
compute="_compute_subtask_non_billable_effective_hours",
|
||||
string="Subtask Non Billable Effective Hours",
|
||||
store=True,
|
||||
recursive=True,
|
||||
)
|
||||
|
||||
@@ -47,10 +52,10 @@ class Task(models.Model):
|
||||
filtered_timesheets = task.timesheet_ids.filtered(lambda t: not t.exclude_from_sale_order)
|
||||
task.billable_effective_hours = sum(filtered_timesheets.mapped('unit_amount'))
|
||||
return
|
||||
|
||||
|
||||
timesheet_read_group = self.env['account.analytic.line'].read_group(
|
||||
[('task_id', 'in', self.ids), ('exclude_from_sale_order', '=', False)], # We exclude the lines (timesheet) which are excluded from billing
|
||||
['unit_amount', 'task_id'],
|
||||
['unit_amount', 'task_id'],
|
||||
['task_id']
|
||||
)
|
||||
|
||||
@@ -68,12 +73,16 @@ class Task(models.Model):
|
||||
for task in self:
|
||||
task.billable_remaining_hours = task.planned_hours - task.billable_effective_hours - task.subtask_billable_effective_hours
|
||||
|
||||
|
||||
@api.depends('child_ids.billable_effective_hours', 'child_ids.subtask_billable_effective_hours')
|
||||
def _compute_subtask_billable_effective_hours(self):
|
||||
for task in self:
|
||||
task.subtask_billable_effective_hours = sum(child_task.billable_effective_hours + child_task.subtask_billable_effective_hours for child_task in task.child_ids)
|
||||
|
||||
@api.depends('child_ids.non_billable_effective_hours', 'child_ids.subtask_non_billable_effective_hours')
|
||||
def _compute_subtask_non_billable_effective_hours(self):
|
||||
for task in self:
|
||||
task.subtask_non_billable_effective_hours = sum(child_task.non_billable_effective_hours + child_task.subtask_non_billable_effective_hours for child_task in task.child_ids)
|
||||
|
||||
@api.depends('billable_effective_hours', 'subtask_billable_effective_hours', 'planned_hours')
|
||||
def _compute_billable_progress_hours(self):
|
||||
for task in self:
|
||||
@@ -84,4 +93,4 @@ class Task(models.Model):
|
||||
else:
|
||||
task.billable_progress = round(100.0 * task_total_hours / task.planned_hours, 2)
|
||||
else:
|
||||
task.billable_progress = 0.0
|
||||
task.billable_progress = 0.0
|
||||
|
||||
Reference in New Issue
Block a user