add purchase_order_supplierinfo_update_triple_discount

This commit is contained in:
Luis 2026-04-02 13:02:18 +02:00
parent f586c99df9
commit 91971ae56b
9 changed files with 275 additions and 0 deletions

View file

@ -0,0 +1,2 @@
from . import purchase_order_line
from . import res_config_settings

View file

@ -0,0 +1,43 @@
from odoo import models
from odoo.tools.misc import str2bool
class PurchaseOrderLine(models.Model):
_inherit = "purchase.order.line"
_SUPPLIERINFO_DISCOUNT_CONFIG = {
"discount1": (
"purchase_order_supplierinfo_update_triple_discount"
".update_supplierinfo_discount1"
),
"discount2": (
"purchase_order_supplierinfo_update_triple_discount"
".update_supplierinfo_discount2"
),
"discount3": (
"purchase_order_supplierinfo_update_triple_discount"
".update_supplierinfo_discount3"
),
}
def _update_supplierinfo(self, seller):
"""Extend supplierinfo update to optionally sync each discount field."""
self.ensure_one()
super()._update_supplierinfo(seller)
if not seller:
return
config = self.env["ir.config_parameter"].sudo()
values = {}
for field_name, parameter_name in self._SUPPLIERINFO_DISCOUNT_CONFIG.items():
if field_name not in self._fields or field_name not in seller._fields:
continue
should_update = str2bool(
config.get_param(parameter_name, default=False),
default=False,
)
if should_update:
values[field_name] = self[field_name]
if values:
seller.sudo().write(values)

View file

@ -0,0 +1,32 @@
from odoo import fields, models
class ResConfigSettings(models.TransientModel):
_inherit = "res.config.settings"
update_supplierinfo_discount1 = fields.Boolean(
string="Update Supplierinfo Discount 1",
config_parameter=(
"purchase_order_supplierinfo_update_triple_discount"
".update_supplierinfo_discount1"
),
help="If enabled, confirming a purchase order will update discount1.",
)
update_supplierinfo_discount2 = fields.Boolean(
string="Update Supplierinfo Discount 2",
config_parameter=(
"purchase_order_supplierinfo_update_triple_discount"
".update_supplierinfo_discount2"
),
help="If enabled, confirming a purchase order will update discount2.",
)
update_supplierinfo_discount3 = fields.Boolean(
string="Update Supplierinfo Discount 3",
config_parameter=(
"purchase_order_supplierinfo_update_triple_discount"
".update_supplierinfo_discount3"
),
help="If enabled, confirming a purchase order will update discount3.",
)