2
0
account-financial-tools/account_move_line_sale_info/models/account_move.py

50 lines
1.5 KiB
Python
Raw Normal View History

2020-05-15 15:12:20 +02:00
# 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 _stock_account_prepare_anglo_saxon_out_lines_vals(self):
res = super()._stock_account_prepare_anglo_saxon_out_lines_vals()
for i, vals in enumerate(res):
if (
not vals.get("move_id", False)
or not vals.get("product_id", False)
or not vals.get("quantity", False)
):
continue
am = self.env["account.move"].browse(vals["move_id"])
sale_line_id = am.invoice_line_ids.filtered(
lambda il: il.product_id.id == vals["product_id"]
and il.quantity == vals["quantity"]
).mapped("sale_line_id")
if sale_line_id and len(sale_line_id) == 1:
res[i]["sale_line_id"] = sale_line_id.id
return res
2020-05-15 15:12:20 +02:00
class AccountMoveLine(models.Model):
2020-07-29 17:26:15 +02:00
_inherit = "account.move.line"
2020-05-15 15:12:20 +02:00
sale_line_id = fields.Many2one(
2020-07-29 17:26:15 +02:00
comodel_name="sale.order.line",
string="Sale Order Line",
ondelete="set null",
index=True,
copy=False,
2020-05-15 15:12:20 +02:00
)
sale_order_id = fields.Many2one(
2020-07-29 17:26:15 +02:00
comodel_name="sale.order",
related="sale_line_id.order_id",
string="Sales Order",
ondelete="set null",
store=True,
index=True,
copy=False,
2020-05-15 15:12:20 +02:00
)