Odoo18-Base/addons/account_tax_python/static/src/helpers/account_tax.js
2025-01-06 10:57:38 +07:00

33 lines
1.2 KiB
JavaScript

import { patch } from "@web/core/utils/patch";
import { accountTaxHelpers } from "@account/helpers/account_tax";
import { evaluateExpr } from "@web/core/py_js/py";
// -------------------------------------------------------------------------
// HELPERS IN BOTH PYTHON/JAVASCRIPT (account_tax.js / account_tax.py)
// -------------------------------------------------------------------------
patch(accountTaxHelpers, {
/**
* [!] Mirror of the same method in account_tax.py.
* PLZ KEEP BOTH METHODS CONSISTENT WITH EACH OTHERS.
*/
eval_tax_amount_formula(tax, raw_base, evaluation_context) {
const formula_context = {
price_unit: evaluation_context.price_unit,
quantity: evaluation_context.quantity,
product: evaluation_context.product,
base: raw_base,
};
return evaluateExpr(tax.formula_decoded_info.js_formula, formula_context);
},
/** override **/
eval_tax_amount_fixed_amount(tax, batch, raw_base, evaluation_context) {
if (tax.amount_type === "code") {
return this.eval_tax_amount_formula(tax, raw_base, evaluation_context);
}
return super.eval_tax_amount_fixed_amount(...arguments);
},
});