fix(employee-payroll-register): base "cəlb edilən gəlirdən" columns on ƏH
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) <noreply@anthropic.com>
This commit is contained in:
parent
671b2195fe
commit
8389e8502a
|
|
@ -185,7 +185,6 @@ def execute(filters=None):
|
||||||
rate = flt(ss.exchange_rate) if currency == company_currency else 1.0
|
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))
|
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))
|
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:
|
for d in DEDUCTION_TYPES:
|
||||||
slug = frappe.scrub(d)
|
slug = frappe.scrub(d)
|
||||||
spec = ded_specs.get(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_eh_" + slug] += eval_deduction(spec, eh_amount, 0, ss)
|
||||||
row[prefix + "ded_mk_" + slug] += eval_deduction(spec, 0, mk_amount, ss) - baseline
|
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)
|
exempt_field = CONTRIBUTION_EXEMPT_FIELD.get(d)
|
||||||
if exempt_field:
|
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 + "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 + "total_deduction"] += flt(ss.total_deduction) * rate
|
||||||
row[prefix + "net_pay"] += flt(ss.net_pay) * rate
|
row[prefix + "net_pay"] += flt(ss.net_pay) * rate
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue