Initial commit: Odoo 18.0-20251222 extra-addons
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
# © 2016 Chafique DELLI @ Akretion
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from odoo import models
|
||||
from odoo.tools import float_compare
|
||||
|
||||
|
||||
class AccountMoveLine(models.Model):
|
||||
_inherit = "account.move.line"
|
||||
|
||||
def _get_supplierinfo(self):
|
||||
"""Given an invoice line, return the supplierinfo that matches
|
||||
with product and supplier, if exist"""
|
||||
self.ensure_one()
|
||||
supplierinfos = self.product_id.seller_ids.filtered(
|
||||
lambda seller: seller.partner_id == self.move_id.supplier_partner_id
|
||||
)
|
||||
return supplierinfos and supplierinfos[0] or False
|
||||
|
||||
def _is_matching_supplierinfo(self, supplierinfo):
|
||||
"""Return True if the partner information matches with line information"""
|
||||
self.ensure_one()
|
||||
res = (
|
||||
not self.product_uom_id or self.product_uom_id == supplierinfo.product_uom
|
||||
) and not float_compare(
|
||||
self.price_unit,
|
||||
supplierinfo.price,
|
||||
precision_rounding=self.move_id.currency_id.rounding,
|
||||
)
|
||||
precision = self.env["decimal.precision"].precision_get("Discount")
|
||||
return res and not float_compare(
|
||||
self.discount, supplierinfo.discount, precision_digits=precision
|
||||
)
|
||||
|
||||
def _prepare_supplier_wizard_line(self, supplierinfo):
|
||||
"""Prepare the value that will proposed to user in the wizard
|
||||
to update supplierinfo"""
|
||||
self.ensure_one()
|
||||
return {
|
||||
"product_id": self.product_id.id,
|
||||
"supplierinfo_id": supplierinfo and supplierinfo.id or False,
|
||||
"current_price": supplierinfo and supplierinfo.price or False,
|
||||
"new_price": self.price_unit,
|
||||
"current_uom_id": supplierinfo and supplierinfo.product_uom.id or False,
|
||||
"new_uom_id": self.product_uom_id.id or self.product_id.uom_po_id.id,
|
||||
"current_min_quantity": supplierinfo and supplierinfo.min_qty or False,
|
||||
"new_min_quantity": supplierinfo and supplierinfo.min_qty or False,
|
||||
"current_discount": supplierinfo and supplierinfo.discount,
|
||||
"new_discount": self.discount,
|
||||
}
|
||||
Reference in New Issue
Block a user