From 8389e8502afdec2820359a124169e1bf0fd18eda Mon Sep 17 00:00:00 2001 From: Ali <010109ali@gmail.com> Date: Mon, 11 May 2026 16:48:39 +0000 Subject: [PATCH] =?UTF-8?q?fix(employee-payroll-register):=20base=20"c?= =?UTF-8?q?=C9=99lb=20edil=C9=99n=20g=C9=99lird=C9=99n"=20columns=20on=20?= =?UTF-8?q?=C6=8FH?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bookkeeper clarified the contribution net-of-exemption columns should be computed from Əsas əmək haqqı minus the exemption amount, not from gross_pay. With no exemption the column equals the existing (ƏH) column. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../employee_payroll_register.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/taxes_az/taxes_az/report/employee_payroll_register/employee_payroll_register.py b/taxes_az/taxes_az/report/employee_payroll_register/employee_payroll_register.py index d3081c3..727effb 100644 --- a/taxes_az/taxes_az/report/employee_payroll_register/employee_payroll_register.py +++ b/taxes_az/taxes_az/report/employee_payroll_register/employee_payroll_register.py @@ -185,7 +185,6 @@ def execute(filters=None): rate = flt(ss.exchange_rate) if currency == company_currency else 1.0 eh_amount = flt(ss_earning_map.get(ss.name, {}).get(EH_COMPONENT, 0)) mk_amount = flt(ss_earning_map.get(ss.name, {}).get(MK_COMPONENT, 0)) - gross_rated = flt(ss.gross_pay) * rate for d in DEDUCTION_TYPES: slug = frappe.scrub(d) spec = ded_specs.get(d) @@ -193,13 +192,14 @@ def execute(filters=None): row[prefix + "ded_eh_" + slug] += eval_deduction(spec, eh_amount, 0, ss) row[prefix + "ded_mk_" + slug] += eval_deduction(spec, 0, mk_amount, ss) - baseline - # Contribution recomputed on gross net of its own "cəlb olunmayan" amount. + # Contribution recomputed on Əsas əmək haqqı net of its own + # "cəlb olunmayan gəlir" amount. exempt_field = CONTRIBUTION_EXEMPT_FIELD.get(d) if exempt_field: - base_net = max(gross_rated - flt(ss.get(exempt_field) or 0) * rate, 0.0) + base_net = max(eh_amount - flt(ss.get(exempt_field) or 0) * rate, 0.0) row[prefix + "ded_cg_" + slug] += eval_deduction(spec, base_net, 0, ss) - baseline - row[prefix + "gross_pay"] += gross_rated + row[prefix + "gross_pay"] += flt(ss.gross_pay) * rate row[prefix + "total_deduction"] += flt(ss.total_deduction) * rate row[prefix + "net_pay"] += flt(ss.net_pay) * rate