chore(legacy): muta proiectul Visual FoxPro in legacy-vfp/

Codul VFP original (ROAAUTO) era doar de testare/proba si nu se mai dezvolta.
Mutat in legacy-vfp/ (sursa .prg, proiect .pjx/.PJT, date .DBF/.CDX/.FPT,
test-comenzi.xml). Actualizat caile DBF default in tools/import_dbf.py si
referinta din tests/test_import_dbf.py. Adaugat legacy-vfp/README.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude Agent
2026-06-17 06:51:21 +00:00
parent 854db66abc
commit 5a8787bbc4
17 changed files with 35 additions and 4 deletions

31
legacy-vfp/README.md Normal file
View File

@@ -0,0 +1,31 @@
# legacy-vfp/ — arhiva Visual FoxPro (ROAAUTO)
Proiectul **Visual FoxPro** original (clasa `RarAutoPass`, ROAAUTO) care declara
prestatiile la RAR AUTOPASS. A fost folosit doar pentru testare si proba pe endpoint-ul
de test RAR; **nu se mai dezvolta** — gateway-ul Python din `../app/` il inlocuieste.
Pastrat ca **sursa de adevar de contract** pentru portarea web si ca sursa pentru migrarea
DBF.
## Continut
| Fisier | Rol | Portat in |
|--------|-----|-----------|
| `rar_autopass.prg` | clasa `RarAutoPass`: login+JWT, nomenclator, postPrezentare, cancel | `app/rar_client.py` |
| `rar-forms.prg` | UI + timer auto-process | logica -> worker |
| `export_comenzi.prg` | citeste comenzi/operatii, construieste payload | client subtire `POST /v1/prezentari` |
| `rar_advanced.prg` | export Excel (oglinda treapta 2) | referinta import xlsx/csv |
| `rar_automate.prg`, `nfjsonread.prg` | automatizare / parse JSON | referinta |
| `rar_autopass.pjx` / `.PJT` | fisierele de proiect VFP | — |
| `mapare_prestatii.DBF` (+ `.CDX`/`.FPT`) | cod_op_service -> codPrestatie | `operations_mapping` (via `tools/import_dbf.py`) |
| `prestatii_rar.DBF` (+ `.CDX`) | nomenclator {codPrestatie, numePrestatie} | `nomenclator_rar` (via `tools/import_dbf.py`) |
| `test-comenzi.xml` | comenzi de test (proba) | — |
## Migrare DBF -> SQLite
Datele din DBF se importa cu `tools/import_dbf.py` (caile default pointeaza deja aici):
```bash
python3 -m tools.import_dbf # dry-run + raport
python3 -m tools.import_dbf --commit # scrie in SQLite
```

View File

@@ -77,7 +77,7 @@ def env(monkeypatch):
def test_read_nomenclator_real_dbf():
from tools.import_dbf import read_nomenclator
rep = read_nomenclator(ROOT / "prestatii_rar.DBF")
rep = read_nomenclator(ROOT / "legacy-vfp" / "prestatii_rar.DBF")
assert len(rep["rows"]) == 20
codes = {r["cod_prestatie"] for r in rep["rows"]}
assert "OE-1" in codes and "R-ODO" in codes

View File

@@ -30,9 +30,9 @@ from app.config import ROOT
from app.db import get_connection, init_db
from app.mapping import DEFAULT_ACCOUNT_ID
# DBF-urile vin din arhiva ROAAUTO din radacina repo-ului.
MAPARE_DBF = ROOT / "mapare_prestatii.DBF"
PREST_DBF = ROOT / "prestatii_rar.DBF"
# DBF-urile vin din arhiva ROAAUTO (legacy VFP), mutata in legacy-vfp/.
MAPARE_DBF = ROOT / "legacy-vfp" / "mapare_prestatii.DBF"
PREST_DBF = ROOT / "legacy-vfp" / "prestatii_rar.DBF"
# Language driver al DBF-urilor = 0x03 (Windows ANSI / cp1252). Diacriticele
# scrise ca literal '?' sunt in sursa, nu un artefact de encoding.