Provisions-Manager 95: Import, Händler-DB, Auszahlungsregeln, Excel-Export, Win95-Oberfläche, Wine-Build
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
commit
322d2ed1c3
25 files changed
+3366
No files matched your search
@@ -0,0 +1,91 @@
|
||||
# Provisions-Manager 95
|
||||
|
||||
Windows-Programm der Handy-Insel Miesbach: liest die monatlichen Provisionsabrechnungen
|
||||
von **freenet** (CSV/Excel) und **Vodafone/Euronics** (Excel) ein, ordnet die Positionen den
|
||||
Unterhändlern zu, erlaubt freie Anpassung der Auszahlung und exportiert je Händler eine
|
||||
fertige Excel-Abrechnung. Optik: Windows 95.
|
||||
|
||||
## Bedienung in Kürze
|
||||
|
||||
1. **Händler anlegen** (`Strg+H`): Name, Standard-Auszahlung in % und die *Kennungen*:
|
||||
- freenet → Spalte **Unterhaendler** (z. B. `27518902`)
|
||||
- Vodafone → Spalte **Vo-Nr** (z. B. `80211721`, `EU133301`)
|
||||
Ein Händler kann mehrere Kennungen haben, auch bei beiden Anbietern.
|
||||
2. **Neue Abrechnung** (`Strg+N`), z. B. „Oktober 2026“.
|
||||
3. **Import** (`Strg+I`): beliebig viele Dateien auf einmal, z. B. alle freenet-Wochenlisten
|
||||
eines Monats plus die Vodafone-Datei. Das Format wird an der Kopfzeile erkannt.
|
||||
Doppelt importierte Dateien werden erkannt. Unbekannte Kennungen erscheinen unter
|
||||
„(Nicht zugeordnet)“ und lassen sich direkt einem Händler zuordnen.
|
||||
4. **Prüfen und anpassen**: links Händler wählen, rechts sind die Positionen nach
|
||||
Provisionsart gruppiert.
|
||||
- Gruppe markieren → **Prozent…** (`F4`): Auszahlung für die ganze Provisionsart; auf Wunsch
|
||||
als feste Regel für diesen Händler gespeichert (gilt dann für künftige Importe).
|
||||
- Doppelklick / `F2` auf eine Position: Betrag frei überschreiben
|
||||
(`Enter` speichern, `↓`/`Tab` nächste Zeile, `Esc` abbrechen). Blau = von Hand geändert.
|
||||
- Rechtsklick: u. a. „Auszahlung 0 €“.
|
||||
5. **Export** (`Strg+E`): je Händler (und je Anbieter) eine `.xlsx` im Format der Vorlage:
|
||||
|
||||
| A | B | C | D | E | F | G | H | I | J | K | L | M | N |
|
||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||
| Zeitraum | Provisionsart | Unterhändler-/VO-Nr | Datum | Rufnummer | IMEI | Gerät | Vorname | Name | Tarif | **Auszahlung** | Netz | Dienst | Aktionscode |
|
||||
|
||||
Sortierung: Zeitraum → Provisionsart → Datum, darunter eine Summenzeile.
|
||||
Kopfzeile optional zuschaltbar.
|
||||
|
||||
Alles wird sofort in der Datenbank gespeichert (`%APPDATA%\Provisionsmanager95\provisionen.db`).
|
||||
Speicherort änderbar unter *Datei ▸ Einstellungen*, Datensicherung über *Datei ▸ Datensicherung*.
|
||||
|
||||
### Zuordnung der Vodafone-Spalten
|
||||
|
||||
| Export | Vodafone/Euronics |
|
||||
|---|---|
|
||||
| Zeitraum | Abrechnungslauf (`VF2609`, `VF2609P8`, …) |
|
||||
| Provisionsart | Artikelbezeichnung |
|
||||
| Unterhändler | Vo-Nr |
|
||||
| Datum | Anschaltdatum |
|
||||
| Name | Kunde |
|
||||
| Tarif | Tarif |
|
||||
| Netz | VF / otelo / Cable (aus der Artikelbezeichnung) |
|
||||
| Dienst | TarifKey02 |
|
||||
| Aktionscode | Text |
|
||||
|
||||
Bei Vodafone wird nur das Blatt **All** gelesen (die Einzelblätter je Abrechnungslauf würden
|
||||
sonst doppelt zählen).
|
||||
|
||||
## Entwicklung
|
||||
|
||||
```bash
|
||||
python -m venv .venv && . .venv/bin/activate # Windows: .venv\Scripts\activate
|
||||
pip install -r requirements-dev.txt
|
||||
pytest # Tests (nur erfundene Testdaten)
|
||||
python -m provtool # Programm starten (benötigt Tkinter)
|
||||
```
|
||||
|
||||
Aufbau:
|
||||
|
||||
| Datei | Inhalt |
|
||||
|---|---|
|
||||
| `provtool/importer.py` | Formaterkennung und Einlesen (CSV, xlsx, xls) |
|
||||
| `provtool/db.py` | SQLite: Händler, Kennungen, Regeln, Abrechnungen, Positionen |
|
||||
| `provtool/export.py` | Excel-Export im Zielformat |
|
||||
| `provtool/money.py` | Beträge (intern immer in Cent) |
|
||||
| `provtool/gui/` | Oberfläche (Tkinter im Win95-Stil) |
|
||||
|
||||
**Datenschutz:** Echte Abrechnungen enthalten Kundendaten und gehören nicht ins Repository
|
||||
(`.gitignore` schließt `*.csv`, `*.xlsx` im Hauptordner und `beispieldaten/` aus).
|
||||
|
||||
## Windows-Build
|
||||
|
||||
Gitea Actions (`.gitea/workflows/windows-build.yml`) baut die `.exe` im Container
|
||||
`tobix/pywine:3.12` (Windows-Python unter Wine) mit PyInstaller:
|
||||
|
||||
- jeder Push: Tests unter Windows-Python + `Provisionsmanager95.exe` als Artefakt
|
||||
- Tag `vX.Y.Z` (passend zu `provtool/__init__.py`): zusätzlich ein Gitea-Release mit `.exe` und `.zip`
|
||||
|
||||
Lokal geht dasselbe mit Docker:
|
||||
|
||||
```bash
|
||||
docker run --rm --entrypoint bash -v "$PWD":/src -w /src tobix/pywine:3.12 ./build/build_windows.sh
|
||||
```
|
||||
|
||||
Neue Version: `__version__` in `provtool/__init__.py` erhöhen, committen, `git tag v1.0.1 && git push --tags`.
|
||||
Reference in new issue
Block a user