File: hr_expense.py

package info (click to toggle)
odoo 18.0.0%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 878,716 kB
  • sloc: javascript: 927,937; python: 685,670; xml: 388,524; sh: 1,033; sql: 415; makefile: 26
file content (24 lines) | stat: -rw-r--r-- 1,015 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from odoo import api, models


class HrExpense(models.Model):
    _inherit = 'hr.expense'

    def _compute_analytic_distribution(self):
        project_id = self.env.context.get('project_id')
        if not project_id:
            super()._compute_analytic_distribution()
        else:
            analytic_distribution = self.env['project.project'].browse(project_id)._get_analytic_distribution()
            for expense in self:
                expense.analytic_distribution = expense.analytic_distribution or analytic_distribution

    @api.model_create_multi
    def create(self, vals_list):
        project_id = self.env.context.get('project_id')
        if project_id:
            analytic_distribution = self.env['project.project'].browse(project_id)._get_analytic_distribution()
            if analytic_distribution:
                for vals in vals_list:
                    vals['analytic_distribution'] = vals.get('analytic_distribution', analytic_distribution)
        return super().create(vals_list)