Odoo18-Base/addons/project_purchase/models/purchase_order_line.py
2025-01-06 10:57:38 +07:00

26 lines
981 B
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, models
class PurchaseOrderLine(models.Model):
_inherit = 'purchase.order.line'
@api.depends('product_id', 'order_id.partner_id', 'order_id.project_id')
def _compute_analytic_distribution(self):
super()._compute_analytic_distribution()
ProjectProject = self.env['project.project']
for line in self:
if line.display_type or line.analytic_distribution:
continue
project_id = line._context.get('project_id')
project = ProjectProject.browse(project_id) if project_id else line.order_id.project_id
if project:
line.analytic_distribution = project._get_analytic_distribution()
@api.model_create_multi
def create(self, vals_list):
lines = super().create(vals_list)
lines._recompute_recordset(fnames=['analytic_distribution'])
return lines