2.17.0¶
Released: TBD
Highlights¶
- Two payroll reports for Panama compliance: Payroll Register (per-paycheck) and Payroll Tax Liability (per-concept CSS / Seguro Educativo / ISR breakdown).
- No schema migration — read from calculated
payroll_items.
Added¶
- Payroll reports —
payrollRegister(dateFilter, generateCsv)lists one row per employee paycheck (bypay_date) with hours, gross, bonuses, total deductions, net, and employer cost;payrollTaxLiability(dateFilter)totals gross and breaks the deductions / employer-contribution JSONB maps out per concept. See Payroll Reports. - Report parity tracker — Peachtree Report Parity now at 47 of 84 done (Payroll section 6/12); the register also serves the Current/Quarterly/Yearly Earnings reports (same report, wider date range).
Changed¶
- None (all additive).
Fixed¶
- None.
Migrations¶
- None. Reports aggregate existing
payroll_items/payroll_runs/payroll_periods/employees; no alembic revision and no newPath/Resource.
Frontend impact¶
- Two new read-only queries under
Path.REPORTS: payrollRegister(dateFilter, generateCsv?)→GenericReportPageofPayrollRegisterLine; sumnetfor net payroll,totalDeductionsfor withholdings,employerCostfor employer burden.payrollTaxLiability(dateFilter)→PayrollTaxLiabilityReportwithdeductionLines/employerContributionLines(per-concept totals) andtotalGross(taxable base).- New GraphQL types:
PayrollRegisterLine,PayrollTaxLiabilityReport,PayrollTaxConceptLine.
Versioning notes¶
- Bumped with
uv run python scripts/bump_version.py 2.17.0 --changelog-stub. Additive schema only — no deploy-order constraint. Fifth release in the Peachtree-parity series.