Criptomart/red-supermercados-coop#17 add account_invoice_triple_discount_readonly: fix write discount2 and dicount3 columns. Make discount (total) readonly
This commit is contained in:
parent
7df39dbda8
commit
5c213a3d6a
9 changed files with 215 additions and 0 deletions
61
account_invoice_triple_discount_readonly/README.md
Normal file
61
account_invoice_triple_discount_readonly/README.md
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
# 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](https://github.com/OCA/account-invoicing/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
|
||||
Loading…
Add table
Add a link
Reference in a new issue