KFE-Viewer: Web-Viewer für die ZVEH-Kalkulationshilfe
Python-Server ohne Abhängigkeiten, der die dBase/FoxPro-Dateien des originalen KFE-Viewers (KFE.DBF, VORTEXT, GRUPPEN, Parameter, Muster-LVs) direkt einliest, plus Single-Page-Frontend mit Live-Suche, Facettenfiltern, einstellbarer Kalkulation (Lohnsätze, Materialzuschlag, DEL-Notiz), Detailansicht und Merkliste mit CSV-Export. Docker-Image enthält nur die App; die lizenzpflichtigen KFE-Daten werden zur Laufzeit nach /data gemountet und sind nicht Teil des Repos. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
commit
a19558fc6c
10 changed files with 1404 additions and 0 deletions
76
README.md
Normal file
76
README.md
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
# KFE Viewer
|
||||
|
||||
Leichtgewichtiger Web-Viewer für die ZVEH-Kalkulationshilfe (KFE). Liest die
|
||||
dBase/FoxPro-Dateien des originalen KFE-Viewers direkt ein – keine Konvertierung,
|
||||
keine Abhängigkeiten außer Python ≥ 3.8.
|
||||
|
||||
## Daten
|
||||
|
||||
Die KFE-Daten sind **nicht** in diesem Repository enthalten. Sie sind lizenzpflichtig
|
||||
(Herausgeber ZVEH, Vertrieb META Handelsgesellschaft). Benötigt wird das Datenverzeichnis des
|
||||
originalen KFE-Viewers, auf der KFE-CD unter `0_software/KFE_ViewerCD3/Daten`. Darin liegen
|
||||
u. a. `KFE.DBF`/`.FPT`, `VORTEXT.DBF`/`.FPT`, `GRUPPEN.DBF`, `STDPARAM.DAT`, `LOHNSTD.DBF` und `Projekt/*.prj`.
|
||||
|
||||
Am einfachsten kopierst du den Inhalt nach `./data` (per `.gitignore` ausgeschlossen) oder gibst den Pfad mit `--data` an.
|
||||
|
||||
## Start
|
||||
|
||||
```bash
|
||||
python server.py
|
||||
```
|
||||
|
||||
Öffnet automatisch http://127.0.0.1:8765. Unter Windows geht auch ein Doppelklick auf `start.bat`.
|
||||
|
||||
| Option | Bedeutung |
|
||||
|---|---|
|
||||
| `--data PFAD` | Verzeichnis mit `KFE.DBF`. Standard: `./data`, alternativ `../2020-05-12-NEU/0_software/KFE_ViewerCD3/Daten` |
|
||||
| `--port 8765` | Port |
|
||||
| `--host 0.0.0.0` | im LAN erreichbar machen |
|
||||
| `--no-browser` | Browser nicht automatisch öffnen |
|
||||
| `--static kfe.html` | eine einzelne HTML-Datei mit eingebetteten Daten erzeugen (ohne Server nutzbar, ca. 5 MB) |
|
||||
|
||||
Alle Optionen lassen sich auch per Umgebungsvariable setzen: `KFE_DATA`, `KFE_HOST`, `KFE_PORT`, `KFE_NO_BROWSER=1`.
|
||||
|
||||
## Docker
|
||||
|
||||
Das Image enthält nur die App (ca. 80 MB, Basis `python:3.13-alpine`, läuft als Nicht-root-Benutzer).
|
||||
Die Daten werden schreibgeschützt nach `/data` gemountet.
|
||||
|
||||
```bash
|
||||
cp .env.example .env # KFE_DATA_DIR auf das Datenverzeichnis setzen (Standard: ./data)
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
Danach erreichbar unter http://127.0.0.1:8765. Weitere Befehle: `docker compose logs`, `docker compose down`.
|
||||
Für Zugriff aus dem LAN in `compose.yaml` den Port auf `"8765:8765"` ändern.
|
||||
|
||||
Ohne Compose:
|
||||
|
||||
```bash
|
||||
docker build -t kfe-viewer .
|
||||
docker run -d -p 127.0.0.1:8765:8765 -v /pfad/zu/Daten:/data:ro --name kfe-viewer kfe-viewer
|
||||
```
|
||||
|
||||
## Funktionen
|
||||
|
||||
- **Live-Suche** über Positionsnummer, Matchcode, Kurztext, Zusatztext und optional den Langtext (Vortext)
|
||||
- mehrere Begriffe = UND, `-wort` schließt aus, `"genaue phrase"`
|
||||
- `04.03` sucht nach Positionsnummer-Präfix
|
||||
- Umlaute/Komma egal: `schutzkontakt` findet „Schutzkontakt“, `3x1.5` findet „3x1,5“
|
||||
- **Filter** mit Trefferzahlen: Kapitel → Gruppe, Einheit, Lohngruppe, Rohstoff (Cu/Al), Änderungsjahr, Bauzeit- und Preisbereich
|
||||
- **Kalkulation live**: Stundensätze je Lohngruppe (Satz 1/2 oder eigene), Materialzuschlag, Bauzeitfaktor,
|
||||
aktuelle DEL-Notiz für Kupfer/Aluminium (Rohstoff-Mehr-/Minderpreis), netto/brutto
|
||||
- **Detailansicht** mit Langtext, Kalkulationsaufschlüsselung, den vier KFE-Kalkulationssätzen, Rohstoffdaten
|
||||
- **Merkliste** mit Mengen, Summen (Lohn/Material/netto/brutto/Bauzeit) und CSV-Export; die 60 Muster-LVs
|
||||
(`Daten/Projekt/*.prj`) lassen sich direkt übernehmen
|
||||
- URL enthält Suche und Filter (Lesezeichen/teilen), Tastatur: `/` Suche, `↑`/`↓` Auswahl, `Enter` Details, `+` merken, `Esc` schließen
|
||||
- Hell/Dunkel-Modus, mobil nutzbar
|
||||
|
||||
## Preisformel
|
||||
|
||||
```
|
||||
EP = Bauzeit[min] × Bauzeitfaktor × Stundensatz(LG) / 60 + (Material + Rohstoffzuschlag) × (1 + Zuschlag %)
|
||||
Rohstoffzuschlag = (DEL − Basis) / 100 × Cu-Zahl[kg/km] / 1000
|
||||
```
|
||||
|
||||
Mit den Standardwerten (43,75 €/h, 20 %, Cu 550) stimmen die Preise mit dem GAEB-Export der KFE überein.
|
||||
Loading…
Add table
Add a link
Reference in a new issue