When creating an Advance Payment, a confirmation modal now appears
showing all selected workers, individual amounts, total, and a warning
that payslips will be sent to Spark Receipt. Non-advance adjustments
submit normally without the extra step.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add Advance Payment type to payroll adjustments. Admins can give
workers partial advances against earned wages — each advance creates
a payslip sent to Spark immediately, while the remaining balance stays
on the dashboard. Multiple advances allowed. Final payment deducts
all advances automatically.
Also refactored type-grouping logic into ADDITIVE_TYPES/DEDUCTIVE_TYPES
constants (was duplicated 15 times across views).
Includes migration 0016 (choices-only, run: python manage.py migrate)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add ability for admins to edit or delete unpaid payroll adjustments
directly from the payroll dashboard. Clickable adjustment badges open
edit/delete modals with type-specific handling (LOAN cascades, OVERTIME
un-pricing). No model changes or migrations needed.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Dashboard: Outstanding Payments, Paid This Month, Active Loans cards
- Dashboard: This Week summary, Recent Activity, Quick Actions, Manage Resources
- Dashboard: Active/Inactive/All filter for resources
- Payroll: Preview payslip modal (no DB/email side effects)
- Payroll: Multi-select workers in adjustment modal
- History: Team column + direct team FK on WorkLog
- History: Shift+click multi-date selection on calendar
- Permissions: Replaced PIN system with Django groups (Admin, Work Logger)
- Permissions: Renamed Supervisor to Work Logger throughout
- Nav: Hide financial links (Payroll) from non-admin users
- Admin: Enhanced Django admin with group management
- New migrations: 0011 (remove pin/is_admin), 0012 (add team to WorkLog)
- New management command: setup_groups
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>