Files
gomag-vending/docs/diagnostic-prod-partener-gresit.md
Marius Mutu 136c4e9986 fix(retry): pass ANAF kwargs on retry/resync so VAT-payer partner is matched
retry_service called import_single_order without cod_fiscal_override /
anaf_strict / denumire_override, so re-imports searched the partner by the raw
GoMag CUI in dual mode and could match the non-payer twin (bare CUI) of a
payer (RO CUI). Add anaf_import_kwargs mirroring the sync flow, plus test and
agent docs for prod partner diagnostics.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L3v311J3SfjroTebzR96ng
2026-09-29 11:01:09 +03:00

26 lines
2.8 KiB
Markdown

# Diagnostic prod: comanda pe partener gresit (agenti)
## Acces prod (read-only)
- `ssh -p 22122 -i ~/.ssh/id_ed25519 romfast@79.119.86.134` — user `romfast` (NU `gomag`; `gomag@` cere parola). Sursa: profil Tunnelier `D:\vm303-profile\vending.tlp`.
- Script: `ssh ... "C:\gomag-vending\venv\Scripts\python.exe -" < script.py` (stdin). Scriptul incepe cu `sys.stdout.reconfigure(encoding='utf-8')`.
- Oracle: `dotenv_values(r"C:\gomag-vending\api\.env")`, `TNS_ADMIN` din env, `oracledb.init_oracle_client(lib_dir=INSTANTCLIENTPATH)`, user/dsn din `.env`.
- SQLite: `file:C:/gomag-vending/api/data/import.db?mode=ro` (uri=True). `api/data/import.db` local = vechi, inutil.
- Loguri: `C:\gomag-vending\logs\service_stderr-*.log` (au ore); `service_stdout.log` = access log HTTP, FARA ore.
- Capcane locale: `/tmp` din Bash != `/tmp` din Python Windows; `venv/` din repo e Linux -> pytest cu venv temporar (`pip install -r api/requirements.txt pytest pytest-asyncio`); `tests/e2e`,`tests/qa` cer Playwright (`--ignore` la unit).
## Schema Oracle (verificat)
- `comenzi.comanda_externa` = numar comanda GoMag; fara `id_adresa_*`. Reimport/resync = comanda noua (`id_comanda` nou), veche `sters=1`.
- `vanzari`: `serie_act`, `numar_act`, `data_act`, `id_part`, `id_comanda`, `sters` (nu `nr_act`).
- 54 tabele cu `ID_PART`; cu date pt un partener: `VANZARI, IREG_PARTENERI, BALANTA_PARTENERI, JV2007, ADRESE_PARTENERI, CORESP_TIP_PART, COMENZI, NOM_PARTENERI`. Verificare mutare partener = numarare pe toate (`user_tab_columns` JOIN `user_tables`).
- Registru TVA / jurnal: tabelele nu sunt identificate; nu s-au verificat.
## Cauza gasita (2026-09, CTC BEN PROD, CUI 40874913)
- Doi parteneri: 24174 `RO40874913` (platitor) si 2567 `40874913` (fara RO). Comenzi 505768386, 517596384.
- `retry_service._download_and_reimport` (butoane retry/resync/batch retry) apela `import_single_order` FARA `cod_fiscal_override/anaf_strict/denumire_override` -> cautare duala pe CUI brut GoMag -> gemenul fara RO.
- Fix: `retry_service.anaf_import_kwargs(order)` (oglindeste `sync_service` ~L904-965), test `api/tests/test_retry_anaf_kwargs.py`. Orice apelant nou al `import_single_order` trebuie sa il foloseasca.
- Mesajul log `Retry successful` e emis si de `resync` (`POST /api/orders/{n}/resync`); NU inseamna eroare/retry automat. Nu exista retry automat.
## Reguli
- `orders.cod_fiscal_roa/denumire_roa` (SQLite) vin din override ANAF, nu din Oracle; `partner_mismatch=0` NU dovedeste partenerul corect. Adevar = `comenzi.id_part` / `vanzari.id_part`.
- Corectia partenerului pe factura emisa (comanda, vanzari, registru jurnal, registru TVA) o face utilizatorul in ROA. Agentii NU muta `id_part` pe documente contabile; doar verifica. Scop cerut aici: doar factura/comanda din luna respectiva, nu istoricul (2567 pastreaza 18 vanzari 2020-2026).