Files
provisionsmanager95/README.md
T

97 lines
4.6 KiB
Markdown
Raw Permalink 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.
# 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. `11111102`)
- Vodafone → Spalte **Vo-Nr** (z. B. `80000002`, `EU000001`) **oder**
„Vodafone (Name in GROSSBUCHSTABEN)“: alle Vodafone-Positionen, deren Kundenname komplett
großgeschrieben ist (so erfasst unser Unterhändler seine Kunden). Diese Regel kann nur ein
Händler haben und hat Vorrang vor der Vo-Nr.
Ein Händler kann mehrere Kennungen haben, auch bei beiden Anbietern.
Einzelne Fehltreffer: Positionen markieren → Rechtsklick ▸ **Händler zuweisen…**
(feste Zuweisung, Vorrang vor allem anderen; zurück mit „Automatisch zuordnen“).
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 die **erste Seite** („All“) gelesen – die weiteren Blä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`.