addons-cm/account_invoice_triple_discount_readonly/README.md

2.1 KiB

Account Invoice Triple Discount Readonly

Description

This module fixes a bug in account_invoice_triple_discount when combined with purchase_triple_discount.

Original Problem

In purchase orders, when configuring a discount in the discount2 or discount3 columns, upon saving:

  • All discounts were accumulated in the discount1 column
  • The discount2 and discount3 fields were reset to zero

This occurred because the original mixin's write method always reset discount2 and discount3 to 0 when the computed discount field was included in the write (which happens when any discount is modified).

Solution

The module overrides the write method of triple.discount.mixin to:

  1. Detect if discount1, discount2 or discount3 are being explicitly modified
  2. If there are explicit discounts, ignore the computed discount field
  3. If only the discount field comes, maintain legacy behavior (map to discount1 and reset the rest)

Additionally, it makes the discount field (total discount) readonly in:

  • Partner form view (res.partner)
  • Supplier info in product form (product.supplierinfo)
  • Base mixin (triple.discount.mixin)

This forces users to work only with the discount1, discount2 and discount3 columns, avoiding confusion.

Installation

  1. Make sure account_invoice_triple_discount and purchase_triple_discount are installed
  2. Update the module list
  3. Install account_invoice_triple_discount_readonly

Usage

After installation:

  • The total discount field will be readonly and automatically calculated
  • Users must use discount1, discount2, and discount3 fields to set discounts
  • When saving, the individual discount values will be preserved correctly

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported.

Credits

Contributors

  • Coop Makers

Maintainers

This module is maintained by the OCA.

Compatibility

  • Odoo 16.0
  • account_invoice_triple_discount
  • purchase_triple_discount