- Added new "Bonus-Bericht" button to both Dienstplan_Portable.html and webapp
- Creates a printable HTML report with:
- Header with "Bonuszahlungen" title
- Month and payout date information
- Table showing duties per weekday with amounts per employee
- Individual explanatory notes for each employee
- Print/PDF save button
- Format matches user's requested output style from issue #20
Co-authored-by: Kenearos <86194771+Kenearos@users.noreply.github.com>
- Add CSV export button to Dienstplan_Portable.html
- Add CSV export button to webapp (index.html, app.js, styles.css)
- Export includes all duties and monthly summary with calculations
- Use semicolon separator for German Excel compatibility
- Add UTF-8 BOM for proper character encoding
- Add proper CSV escaping for names with special characters
- Add helpful tip explaining CSV compatibility with Excel/LibreOffice/Google Sheets
Co-authored-by: Kenearos <86194771+Kenearos@users.noreply.github.com>
- Gesamter Bonus (WT + WE) wird nur gezahlt, wenn >= 2,0 WE-Tage erreicht
- Unter Schwelle: Auszahlung = 0€ (weder WT noch WE)
- Abzug mit Freitag-Priorität implementiert
- Testfälle und Dokumentation aktualisiert
Betrifft:
- webapp/calculator.js: Korrekte Berechnung mit Freitag-Priorität
- src/calculate.py: WT-Auszahlung nur bei Schwelle
- SPECIFICATION.md: Regeln, Testfälle und Changelog aktualisiert
Implements a complete web application for calculating bonus payments
for weekend and holiday duty shifts according to NRW rules.
Features:
- Employee management (add/remove multiple employees)
- Monthly duty scheduling (full and half shifts)
- Automatic NRW holiday detection (2025-2030)
- Bonus calculation with configurable rules
- LocalStorage for data persistence
- Export/Import functionality (JSON)
- Responsive design for desktop and mobile
- No external dependencies
Calculation Rules:
- Qualifying days: Friday, Saturday, Sunday, public holidays, day before holiday
- Minimum threshold: 2.0 qualifying days required
- Deduction: 1.0 qualifying day after threshold reached
- Rates: Normal days 250€, qualifying days 450€
- Half shifts: 50% of respective rate
- No bonus payment if threshold not reached
Technical Stack:
- Vanilla JavaScript (no frameworks)
- HTML5 & CSS3
- LocalStorage API
- Modern, gradient-based UI design
Files:
- webapp/index.html - Main HTML interface
- webapp/styles.css - Responsive styling
- webapp/app.js - Main application logic and UI handling
- webapp/calculator.js - Bonus calculation engine
- webapp/holidays.js - NRW public holidays provider
- webapp/storage.js - LocalStorage data management
- webapp/README.md - Comprehensive documentation
Updated main README.md to include web app in available versions.