Files
account-financial-tools/account_move_line_sale_info/models/account_move.py

56 lines
1.6 KiB
Python

# Copyright 2020 ForgeFlow S.L.
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo import fields, models
class AccountMove(models.Model):
_inherit = "account.move"
def _prepare_interim_account_line_vals(self, line, move, debit_interim_account):
res = super()._prepare_interim_account_line_vals(
line, move, debit_interim_account
)
sale_line_id = line.sale_line_ids
if sale_line_id and len(sale_line_id) == 1:
res["sale_line_id"] = sale_line_id.id
return res
def _prepare_expense_account_line_vals(self, line, move, debit_interim_account):
res = super()._prepare_expense_account_line_vals(
line, move, debit_interim_account
)
sale_line_id = line.sale_line_ids
if sale_line_id and len(sale_line_id) == 1:
res["sale_line_id"] = sale_line_id.id
return res
class AccountMoveLine(models.Model):
_inherit = "account.move.line"
sale_line_id = fields.Many2one(
comodel_name="sale.order.line",
string="Sale Order Line",
ondelete="set null",
index=True,
copy=False,
)
sale_order_id = fields.Many2one(
comodel_name="sale.order",
related="sale_line_id.order_id",
string="Sales Order",
ondelete="set null",
store=True,
index=True,
copy=False,
)
def _copy_data_extend_business_fields(self, values):
# Same way Odoo standard does for purchase_line_id field
super(AccountMoveLine, self)._copy_data_extend_business_fields(values)
values["sale_line_id"] = self.sale_line_id.id