Odoo18-Base/addons/sale_project/models/account_move.py
2025-03-10 10:52:11 +07:00

19 lines
891 B
Python

# -*- coding: utf-8 -*-
from odoo import models
class AccountMoveLine(models.Model):
_inherit = 'account.move.line'
def _compute_analytic_distribution(self):
# when a project creates an aml, it adds an analytic account to it. the following filter is to save this
# analytic account from being overridden by analytic default rules and lack thereof
project_amls = self.filtered(lambda aml: aml.analytic_distribution and any(aml.sale_line_ids.project_id))
super(AccountMoveLine, self - project_amls)._compute_analytic_distribution()
project_id = self.env.context.get('project_id')
if project_id:
analytic_account = self.env['project.project'].browse(project_id).analytic_account_id
for line in project_amls:
line.analytic_distribution = line.analytic_distribution or {analytic_account.id: 100}