Files
roafacturare/docs/handoff_anaf_factura.md
2026-09-30 22:26:09 +03:00

11 KiB

HANDOFF - verificare automata ANAF pe factura

30.09 seara, la cererea lui Marius: STERSE din docs/ planul, progresul, autoplan_anaf/, investigatia, diagnosticul si toate rapoartele (raport_*.md) citate mai jos. Au ramas doar acest fisier si prompt_integrare_13_anaf.md. Starea reala = git log pe anaf-factura in COMUN (ca8e7ca..558ccda) + mesajele de commit. Singurul pas ramas: aducerea pe main prin SVN + roa_sync, FARA branch (Marius: "nu vreau niciun branch"). Lista si pasii: docs/svn_commit_anaf.md. Probele de test: Marius a decis stergerea - sterse de pe disc 30.09 (apar D in git pe branch, dispar cu el).

Actualizat 29.09.2026, la ~257k context in sesiunea orchestratoare (prag Regula zero). STARE, nu instructiune noua.

Stare

  • Plan APROBAT: docs/plan_anaf_factura.md - corectiile din fazele CEO/Design/Eng + "APROBAT" + "Rezultat proba D1" au prioritate fata de textul initial al stories.
  • Progres: docs/progres_anaf_factura.md (sursa de stare pe stories). Probe: docs/autoplan_anaf/3_test_plan.md. Tabel stari/tooltip-uri: docs/autoplan_anaf/2_design.md (iconitele: vezi "Rezultat proba D1" din plan, care inlocuieste exclamare_*.bmp/terminat_* din tabelul Design).
  • Branch anaf-factura in D:\roa\ROAFACTURARE\COMUN:
    • 5e7b11d S0 - filtru istoric la/dupa data ceruta + ocautare.prg:224 transmite sursa. Raport docs/raport_s0_anaf.md.
    • 6acd1ea S1a - ANAF_StarePartener(..., tlIstoricIntai) (pozitia 8) + lRadiatANAF/dRadiereANAF doar live + dataRadiere in obiectul single-CUI. Raport docs/raport_s1a_anaf.md (11 PASS; partener_anaf UI nerulat).
    • 65a063b S1b - logica indicatorului in oAntetFacturare (+ lVerificaLaActivare, CodFiscalClient accepta id negativ). Raport docs/raport_s1b_anaf.md (82 PASS; T-S1-6 Oracle indisponibil nerulat).
    • 5cf1010 S2 - declansatori (vc2 + write-back vcx/vct verificat prin reconversie). Raport docs/raport_s2_anaf.md (43 PASS). Copierea NU s-a atins: cod_fiscal se completeaza in MarcheazaVerificareLaActivare din Init. DE INTREBAT Marius: anularea dialogului de cautare client pe factura pune indicatorul pe NEUTRU desi clientul ramane afisat (ramura Else existenta goleste deja soldul).
    • 08353ef S3 - buton manual la data facturii + "alt client". Raport docs/raport_s3_anaf.md (32 PASS). DE CONFIRMAT Marius: filtrul pe CUI se pune doar cand exista >=2 parteneri cu acel CUI.
  • Proba D1 facuta: docs/raport_s1_d1.md; .ico accepta transparenta, BMP opac.
  • ROAFACTURARE radacina: pe main, nimic comis; docs/ sunt documente de lucru (nu se comit pe main).

Ce urmeaza

  1. S1b GATA (65a063b). Text initial: in COMUN\programe\ofacturare_antet.prg (clasa oAntetFacturare): VerificaANAFAutomat(toForm, tlIstoricIntai), ClasificaRezultat (separata, testabila fara UI), AplicaIndicatorANAF (tolerant la lipsa But_verifica1; seteaza cpictureup+cpicturedown+Picture+BackColor+ToolTipText+StatusBarText, taiere 255), LaSchimbareData, CodFiscalClient; proprietati pe oAntet: lInVerificare, cCheieVerificata, steag activare, cache local negasit, instanta anaf_verif_cautare pentru TextAnaf. Data goala -> NEUTRU; gestiune dupa poDate.tip IN (23,25,41); lEditare -> NEUTRU; nivel ANAF 0 -> NEUTRU. Proba headless pe toate starile (mock ANAF_VerificaCuiSingle primul in SET PROCEDURE).
  2. S2 GATA (5cf1010). Text initial: declansatori, write-back pe COMUN\clase\ofacturare.vc2 (skill roa-vfp-text-edit, -ProjectRoot explicit, un singur scriitor): Activate existent :18235-18241 (dupa aseaza_totaluri), marcaj in Init :21575-21582, Clb_dataact :21940 si Clb_dataireg :21962 -> oAntet.LaSchimbareData; do_cauta_client factura (dupa :217), aviz-partener (:150-152, completeaza cod_fiscal), ramura client sters -> NEUTRU; copiere ofacturare_comun.prg:440-441 completeaza cod_fiscal.
  3. S3 GATA (08353ef). Text initial: do_verifica (ofacturare_antet.prg:746-760) transmite poDate.dataact; indicator din rezultatul butonului (fallback goCacheANAF_Sesiune.Remove cu CUI normalizat); Da/Nu "Alegeti alt client?" implicit Nu, filtru cFiltruOrig pe CUI numeric, fara filtru daca nu exista partener.
  4. S4 GATA-PARTIAL (22aa977 probe; raport docs/raport_s4_anaf.md: UI 35/35 pe ambele formulare, partener_anaf 75/2 FAIL vechi). Changelog 2.11.20 in changelog_roafacturare.txt NECOMIS (radacina e pe main -> SVN la Marius). Datorii manuale: raport sect. 7; prioritar defect 1 (Activate ruleaza in Init via SetFocus -> HTTP inainte de desenare). Prompt pentru #13: docs/prompt_integrare_13_anaf.md. Branch nepushat. Istoric: INTRERUPT la resume (fara raport; au ramas necomise probele test_s4_indicator_ui.prg/.ps1, probe_s4_stack.*, mock_s4_stack.prg; changelog neatins). Marius testeaza manual 29.09. Text initial: proba UI vfp_ui_harness.ps1 (+ ROACONT/ROAGEST), captura designer, changelog; manual ramas = datorie deschisa.

Decizie Marius 29.09 (dupa testul manual)

  • Factura din tab-ul Comenzi deschide dialogul mic "FACTURARE" (probabil frm_date_factura), fara declansatori -> nimic vizibil. Se lucreaza S2b pe acest dialog (diagnostic: docs/diag_anaf_indicator.md).

  • frm_facturare_articole2 e lucrat de sesiunea planului #13 pe alt calculator: svn revert facut pe ofacturare.vcx/.vct (binarul NU mai contine S2). Textul S2 ramane comis in git pe anaf-factura (5cf1010). La final: prompt pentru sesiunea #13 ca sa integreze cele 10 linii S2 in frm_facturare_articole2.

  • Marius: S2b se face DIRECT cu write-back pe ofacturare.vcx (ramane modificat); promptul final pentru #13 mentioneaza S2 + S2b.

  • 79fb578 S2b - dialog vechi frm_date_factura (raport docs/raport_s2b_anaf.md, 20 PASS + regresie). Write-back facut: binarul contine acum S2 + S2b, text=binar. "View Parameter poDate.id_client" = bug de harness (PRIVATE), nu productie.

  • Mesaj User-Agent (lipit de Marius) IGNORAT - Marius a confirmat ca era pentru sesiunea ROACONT.

  • (depasit dupa S2b) ATENTIE: text .vc2 (cu S2) != binar (fara S2) acum. NU rula git_sync.ps1 pe ROAFACTURARE pe branch-ul anaf-factura - ar sterge S2 din text.

  • 5f64bc7 decizii Marius 30.09: anularea cautarii pastreaza indicatorul (garda in ReseteazaIndicator, fara .vc2); filtrul CUI >=2 parteneri ramane. Regresie S1b 82, S2 44, S2b 21, S3 32 - toate PASS.

  • bc10cf6 + d08adb2 (30.09, feedback Marius "urat"): fara BackColor, doar iconite din setul butonului (terminat_verde / exclamare / help_* 23x21 / original), text txtCodFiscal colorat (DisabledForeColor; OK RGB(0,110,0), ATENTIE RGB(192,64,0)). Raport docs/raport_stil_indicator_anaf.md. Toate probele PASS. Fara .vc2 -> promptul #13 ramane valabil (range pana la d08adb2).

  • 1f70a0b (30.09): iconita "!!" originala recolorata pe stare - COMUN\grafice\verificare{1,2}_{verde,portocaliu,gri}.bmp NOI (necesita svn add). Raport docs/raport_iconite_anaf.md. Regresia PASS. Promptul #13: range pana la 1f70a0b.

  • 7ff8450 (30.09): cod romanesc invalid (ANAF_ValidareCod, ocautare.prg:329) -> ATENTIE rosu; ATENTIE rosu peste tot (verificare_rosu.bmp nou); verde/gri refacute pentru contrast. Raport docs/raport_cod_invalid_anaf.md. Toate PASS.

  • CONFIRMAT 30.09 (in lucru, agent schema-anaf, raport docs/raport_schema_anaf.md): schema de mai jos + CNP invalid rosu + iconite putin mai deschise (contrast ~10-11) + butonul NU mai pune nicio intrebare (intrebarea "alt client" din S3 eliminata; linia PuneFiltruCui din frm_date_factura.do_cauta_client .vc2 ramane no-op, de scos la integrare #13). Schema: TEXTUL = verdict (verde OK / rosu problema / normal), ICONITA = sursa (colorata ca textul cand ANAF a raspuns sau istoricul e valabil; GRI cand ANAF n-a putut fi interogat; albastru original = nimic de verificat). Istoric mai vechi decat factura + ANAF cazut: problema -> text rosu + iconita gri; OK -> text normal + iconita gri. Portocaliu nefolosit (fisierele pot fi sterse).

  • 68c6f07 schema finala (text=verdict, iconita=sursa, CNP invalid rosu, contrast ~10.5) + 558ccda butonul nu mai pune nicio intrebare. Regresie: S1b 104, S2 44, S2b 20, S3 30, S4 50+42 PASS. Changelog 2.11.20 rescris pe schema finala (necomis, radacina = SVN). Prompt #13 actualizat (range ..558ccda + curatenie PuneFiltruCui/tcCui in frm_date_factura).

  • RAMAS LA MARIUS: test manual schema; proba fereastra goala la deschidere (client fara istoric); push anaf-factura; SVN: ofacturare.vcx/.vct, changelog, 8 .bmp noi COMUN\grafice\verificare{1,2}_{verde,rosu,gri,portocaliu}.bmp (portocaliu nefolosit - poate fi sters).

  • 30.09 seara: changelog 2.11.20 scurtat (necomis). Prompt #13 dat lui Marius (inline, fara diff; varianta cu diff in docs/prompt_integrare_13_anaf.md). Curatenie facuta: sterse logurile/FXP/screenshots/uisync din COMUN\utile\Teste\anaf_factura, probe_s4_stack*/mock_s4_stack, patch-urile, scripturile .py de iconite, handoff-urile intermediare, ofacturare.vc2.pre_runda_s2.bak. Pastrate: plan, progres, acest handoff, prompt #13, rapoartele, iconite_anaf_marite.png. Alte .bak/.FXP din COMUN (alte lucrari) NEATINSE.

  • DECIZIE MARIUS 30.09: NU push pe anaf-factura; modificarile trebuie sa ajunga pe main. NEFACUT. Regula (skill roa-git-svn-commit): pe main din COMUN scrie DOAR roa_sync; drumul e svn commit tintit al fisierelor branch-ului (din COMUN, SVN = sursa de adevar) -> roa_sync aduce pe git main. De urmat skill-ul intr-o sesiune proaspata; lista fisierelor: git -C COMUN diff --stat ca8e7ca 558ccda + binarele ofacturare.vcx/.vct + .bmp noi (svn add). Promptul #13 trebuie ajustat: nu mai cere branch-ul, ci main dupa sync.

Neterminat / de curatat

  • COMUN\utile\Teste\anaf_factura\sonda_d1_backcolor_buton.prg necomis (+ log, .fxp, screenshots, uisync ignorate/necomise): decide la S4 daca scriptul intra in commit; .fxp/png/log nu.
  • partener_anaf (teste UI) nerulate dupa S1a - de rulat in S4 (dialogul de cautare arata acum si radiatul).
  • Nicio tranzactie deschisa, niciun proces vfp9 propriu viu, date de test Oracle curatate (CUI 8000596 si familia 80000xx dupa rapoarte).

Stabilit, nu se reia

  • Tot codul facturii e in COMUN (cross-project); commit-uri pe anaf-factura in COMUN\, niciodata pe main din COMUN. Mandat: executie continua, commit dupa fiecare story, fara push/SVN/merge.
  • T1=A (activ peste tot), T3=B (radiat doar live), T2/T4-T10 recomandate; T8 inchis de D1 (EXCLAM.ICO).
  • Subagenti: Sonnet, prompt cu interdictii la inceput, livrabil pe disc + "GATA". opencode (opencode-go/deepseek-v4.1-flash) doar pentru voci de revizie; crapa fara limite de grep.

Interzis

  • git pull/git stash in COMUN; push; svn commit; editare .prg/.vc2 cu Edit/sed (cp1250) - script Python binar; doi scriitori pe acelasi fisier; proba vfp9 in paralel cu write-back.