Skip to content

Comments

Add retention support (e.g. IRPF) — v1.7.3#267

Merged
edouard merged 1 commit intomainfrom
retention
Feb 16, 2026
Merged

Add retention support (e.g. IRPF) — v1.7.3#267
edouard merged 1 commit intomainfrom
retention

Conversation

@edouard
Copy link
Contributor

@edouard edouard commented Feb 16, 2026

Add retention_rate and retention_description to invoices, allowing post-tax deductions calculated as a percentage of the subtotal.

Example: 500€ + 21% VAT (105€) - 19% IRPF (95€) = 510€ total.

  • Add retention_rate (BigDecimal) and retention_description to Invoice
  • Add retention calculation method to Invoiceable
  • Update total to subtract retention: subtotal + tax + shipping - retention
  • Display retention as a negative line in PDF between shipping and total
  • Add i18n keys for all 6 locales (en, es, fr, de, nl, zh-CN)
  • Add retention_rate column to migration template
  • Add specs covering retention calculation and combined totals
  • Bump version to 1.7.3

Add `retention_rate` and `retention_description` to invoices, allowing
post-tax deductions calculated as a percentage of the subtotal.

Example: 500€ + 21% VAT (105€) - 19% IRPF (95€) = 510€ total.

- Add `retention_rate` (BigDecimal) and `retention_description` to Invoice
- Add `retention` calculation method to Invoiceable
- Update `total` to subtract retention: subtotal + tax + shipping - retention
- Display retention as a negative line in PDF between shipping and total
- Add i18n keys for all 6 locales (en, es, fr, de, nl, zh-CN)
- Add `retention_rate` column to migration template
- Add specs covering retention calculation and combined totals
- Bump version to 1.7.3
@edouard edouard merged commit 889d540 into main Feb 16, 2026
5 checks passed
@edouard edouard deleted the retention branch February 16, 2026 08:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant