improve(fees): detailed per-month breakdown in payment reminder
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions

Instead of "9 mies. × 200 zł", shows line-by-line breakdown:
- marzec: 50 zł (składka 200 zł, wpłacono 150 zł)
- kwiecień: 200 zł
- maj: 200 zł
...

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Maciej Pienczyn 2026-03-20 08:36:27 +01:00
parent 8d4c4333cf
commit ce92155836

View File

@ -971,6 +971,17 @@ def admin_fees_reminder_preview():
month_range = f"{MONTHS_PL_NAMES[unpaid[0].fee_month]} - {MONTHS_PL_NAMES[unpaid[-1].fee_month]}" if len(unpaid) > 1 else MONTHS_PL_NAMES[unpaid[0].fee_month]
monthly_rate = int(unpaid[0].amount)
# Build detailed breakdown
breakdown_lines = []
for f in unpaid:
owed = float(f.amount) - float(f.amount_paid or 0)
month_name = MONTHS_PL_NAMES[f.fee_month]
if float(f.amount_paid or 0) > 0:
breakdown_lines.append(f'{month_name}: {int(owed)} zł (składka {int(f.amount)} zł, wpłacono {int(f.amount_paid)} zł)')
else:
breakdown_lines.append(f'{month_name}: {int(owed)}')
breakdown_html = '<br>'.join(breakdown_lines)
from database import UserCompany, User
manager = db.query(UserCompany).filter(UserCompany.company_id == company_id).first()
manager_user_id = manager.user_id if manager else None
@ -988,8 +999,8 @@ def admin_fees_reminder_preview():
message = (
f'<p>Szanowni Państwo,</p>'
f'<p>Uprzejmie przypominamy o zaległej składce członkowskiej w Izbie Gospodarczej Norda Biznes.</p>'
f'<p><strong>Kwota do zapłaty: {int(total_due)} zł</strong><br>'
f'Okres: {month_range} {year} ({len(unpaid)} mies. × {monthly_rate} zł)</p>'
f'<p><strong>Kwota do zapłaty: {int(total_due)} zł</strong></p>'
f'<p>Rozpiska:<br>{breakdown_html}</p>'
f'<p><strong>Dane do przelewu:</strong><br>'
f'Odbiorca: Norda Biznes Regionalna Izba Przedsiębiorców<br>'
f'Bank: Kaszubski Bank Spółdzielczy w Wejherowie<br>'