This repository has been archived on 2026-06-28. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
Dienstplan/README.md
Claude 520e3b62e0
Add web-based duty schedule bonus calculator
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.
2025-11-18 20:00:13 +00:00

112 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Dienstplan Generator (NRW - Variante 2)
Projekt zum automatischen Erstellen von Dienstplänen mit Vergütungsberechnung nach NRW-Regeln (Variante 2 "streng").
## Verfügbare Versionen
### Web-App (Browser) 🆕
**Empfohlen für die meisten Benutzer!**
Moderne Web-Anwendung zur Bonusberechnung für Wochenend- und Feiertagsdienste.
- ✅ Läuft direkt im Browser (keine Installation)
- ✅ Mitarbeiterverwaltung
- ✅ Monatliche Dienstplanung
- ✅ Automatische Bonusberechnung
- ✅ Export/Import-Funktion
Siehe [webapp/README.md](webapp/README.md) für Details.
### Python/Excel Version (Desktop)
Python-basierter Generator für Excel-Dienstpläne.
### Android App (Mobile)
Native Android-App für mobiles Dienstplan-Management. Siehe [android-app/README.md](android-app/README.md) für Details.
## Features (Python/Excel Version)
- ✅ Automatische Erkennung von Wochenenden (FrSo), Feiertagen und Vortagen
- ✅ Vergütungslogik: WT 250€, WE 450€ (nur ab Schwelle ≥ 2,0 WE-Einheiten)
- ✅ Abzug 1,0 WE-Einheit (Freitag-Priorität) nach Erreichen der Schwelle
- ✅ Vorbefüllte Monatsvorlagen mit allen Datumswerten
- ✅ Excel-kompatibel (ohne Office 365 Funktionen)
## Installation
1. Virtuelle Umgebung erstellen:
```powershell
python -m venv .venv
```
2. Umgebung aktivieren:
```powershell
.\.venv\Scripts\Activate.ps1
```
3. Abhängigkeiten installieren:
```powershell
pip install -r requirements.txt
```
## Verwendung
### Monat erstellen
```powershell
python src/fill_plan_dates.py 2025 11 # November 2025
python src/fill_plan_dates.py 2025 12 # Dezember 2025
```
Die Datei landet in `output/Dienstplan_YYYY_MM_NRW.xlsx`.
### Daten eintragen
1. Öffne die generierte Datei
2. Gehe zum Blatt "Plan"
3. Trage in Spalte B die Mitarbeiter-Namen ein
4. Trage in Spalte C den Anteil ein (1 = voll, 0.5 = halb)
5. Gehe zum Blatt "Auswertung" und trage in Spalte A alle Mitarbeiter ein
**Fertig!** Alle Berechnungen erfolgen automatisch.
## Projektstruktur
```text
.
├── webapp/ # Web-App (Browser) 🆕
│ ├── index.html # Haupt-HTML-Datei
│ ├── styles.css # Styling
│ ├── app.js # App-Logik & UI
│ ├── calculator.js # Bonusberechnung
│ ├── holidays.js # NRW-Feiertagsdaten
│ ├── storage.js # LocalStorage-Verwaltung
│ └── README.md # Web-App Dokumentation
├── src/ # Python source code
│ ├── build_template.py # Erstellt die Basis-Vorlage
│ ├── fill_plan_dates.py # Füllt Monate mit Datumszeilen
│ └── read_excel.py # Liest xlsx-Dateien aus
├── android-app/ # Android mobile app
│ ├── app/ # Android app source code
│ ├── build.gradle.kts # Build configuration
│ └── README.md # Android app documentation
├── output/ # Generierte Monatspläne
├── templates/ # Basis-Vorlage
├── requirements.txt # Python-Abhängigkeiten (openpyxl)
├── SPECIFICATION.md # Vollständige Regeln & Formeln
└── README.md # Diese Datei
```
## Regeln (Variante 2 - streng)
- **WE-Tag**: Fr/Sa/So + Feiertag + Vortag Feiertag
- **WT-Tag**: Alle anderen Tage (250 € pro Einheit)
- **WE-Vergütung**: Nur wenn Monatssumme ≥ 2,0 WE-Einheiten → 450 €/Einheit, dann Abzug 1,0 (zuerst von Freitag)
- **Unter Schwelle**: WE-Dienste = 0 € (nicht als WT vergütet)
Details siehe `SPECIFICATION.md`.
## Lizenz
MIT