diff --git a/docs/handoff_etapa2_convertor.md b/docs/handoff_etapa2_convertor.md index a5b1e4f..d771891 100644 --- a/docs/handoff_etapa2_convertor.md +++ b/docs/handoff_etapa2_convertor.md @@ -83,8 +83,12 @@ In ordinea in care le-as face: 2. **Al doilea import real, capat-la-capat**, pe o firma noua: `extrage.py` -> corectii in `corectii_.xlsx` -> `genereaza.py` -> import in ROACONT. Asta exerseaza pasul de mapare pe date pe care nu le-a vazut nimeni si e primul test adevarat al lui `.TOATE`/`.RESTUL`. -3. **Pasul 5b (cautarea pe ANAF)** devine inutil pe drumul FDB, unde codul fiscal e real. - Verifica pe date reale si, daca se confirma, scoate-l din flux pentru sursa Firebird. +3. ~~**Pasul 5b (cautarea pe ANAF)** devine inutil pe drumul FDB~~ - **verificat 21.09.2026, + nu se confirma.** SAGA permite parteneri fara `COD_FISCAL`; `citire_fdb.py:224` cade atunci + pe contul analitic, adica exact codul provizoriu pe care 5b il repara. Pe firma de joaca + ROMFAST (`401.00001`) n-are CUI, TRANSPORT are `1879855`. Pasul ramane, doar se + micsoreaza: se cauta numai partenerii cu `cod_fiscal == cont_analitic`. Detaliile in + `docs/plan_solduri2roa.md`, etapa 5b; asertiune in `tests/test_citire_fdb.py`. 4. Marunt, cand se nimereste: portul **4296** nu e trecut in tabelul din `D:\ROA\ROACONT\COMUN\docs\opencode_agenti_orchestrare.md` (COMUN cere aprobare inainte de commit). diff --git a/docs/plan_solduri2roa.md b/docs/plan_solduri2roa.md index 2b9216e..c11ee10 100644 --- a/docs/plan_solduri2roa.md +++ b/docs/plan_solduri2roa.md @@ -59,6 +59,14 @@ Pasul e obligatoriu, nu optional: partenerii intra in xlsx cu cod fiscal provizo se ruleaza manual dupa import). 5. Partenerii negasiti raman cu codul provizoriu si se raporteaza explicit. +**Pe sursa Firebird pasul ramane, nu dispare** (verificat 21.09.2026 pe firma de joaca). +SAGA permite furnizori/clienti fara `COD_FISCAL`, iar `citire_fdb.citeste_parteneri` cade +atunci pe contul analitic - acelasi cod provizoriu ca pe drumul PDF. Pe firma de joaca +ROMFAST (`401.00001`) nu are CUI, TRANSPORT (`401.00002`) are `1879855`: 1 din 2. Ce se +schimba fata de PDF e doar volumul: se cauta numai partenerii cu +`cod_fiscal == cont_analitic`, restul vin cu CUI real din baza. Asertiunea din +`tests/test_citire_fdb.py::test_parteneri_si_facturi` pica daca asta se schimba. + ## Etapa 6 - git `git init`, commit, push pe `gitea.romfast.ro:romfast/solduri2roa.git` (push-to-create). Se comit: scripturile, `docs\`, CSV-urile si xlsx-urile generate. PDF-urile: da (sunt sursa, 30 KB). diff --git a/tests/test_citire_fdb.py b/tests/test_citire_fdb.py index 3884a09..b11562c 100644 --- a/tests/test_citire_fdb.py +++ b/tests/test_citire_fdb.py @@ -119,6 +119,14 @@ class TestCitireFdb(unittest.TestCase): self.assertTrue(r["cont_analitic"]) self.assertTrue(r["cod_fiscal"], "cod fiscal gol pentru %s" % r["cont_analitic"]) + # Codul fiscal lipsa in SAGA cade pe contul analitic (citire_fdb.py). Pe firma + # de joaca ROMFAST (401.00001) nu are COD_FISCAL, TRANSPORT (401.00002) are CUI + # real. Asta dovedeste ca drumul FDB NU scuteste de etapa 5b (cautarea ANAF). + provizorii = {r["cont_analitic"] for r in parteneri + if r["cod_fiscal"] == r["cont_analitic"]} + self.assertEqual(provizorii, {"401.00001"}, + "s-a schimbat setul de parteneri fara CUI real") + facturi = citire_fdb.citeste_facturi(self.baza, AN, LUNA) for r in facturi: self.assertTrue(r["cont_analitic"])