Curatenie ceruta dupa inchiderea lui #6. Folderul cercetare\ NU se putea sterge in bloc: plan_13 se sprijina pe el cu 85 de trimiteri, deci e baza de dovezi a planului aflat in lucru. Impartirea: - 14 cercetari trans-proiect trec in COMUN\docs\cercetare\ - valuta si curs, TVA/VANZARI, consumatorii VANZARI din toata suita, integrarile #10/#11/#12, watchdog VFP, proiectarea Oracle a lui S5, view-ul VVANZARI_ARTICOLE. Nu sunt ale ROAFACTURARE, iar #10/#11/#12 se reiau chiar din ele. - 20 de rapoarte de executie ale lui #6, nereferite de nimic viu, sterse. - 91 raman, neatinse. Trimiterile catre handoff-urile si diff-urile intermediare deja desfiintate au fost curatate peste tot (39 de fisiere): 50 catre handoff-uri, 37 catre diff-uri aplicate, plus caile celor mutate in COMUN. Zero trimiteri rupte ramase. progres.md preia rolul de predare: ce ramane din #6 (cele sase documente parazite, cele doua esecuri reale din S8 pe factura din aviz), cifrele de test citite din log, si cele doua capcane de mediu platite - .FXP vechi executat in locul .prg-ului, si GETFONT() care atarna un formular instantiat fara goApp. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SN8snvkk94KuhWwoXUUey3
5.3 KiB
S4 runda 1 (PAGE3, doar afisare) — raport de inchidere, 08.08.2026
Runda 1 din S4 (plan_06_s4_proiectare.md) e inchisa. Diff-ul de review:
diff aplicat (sters). Istoricul complet al sesiunii de implementare/depanare:
docs\cercetare\handoff_s4_runda1.md, handoff intermediar (sters),
handoff intermediar (sters).
Ce s-a implementat
COMUN\programe\ofacturare_editare.prg, doua functii noi la coada fisierului:IncarcaVanzareNota(tnCod, tnNract, tcSerieAct, tdDataAct)— gaseste randul dinVANZARIcorespunzator notei curente (filtru compuscod+nract+serie_act+data_act, necesar pentru caVANZARI.CODnu e unic — veziprogres.md), cursortvanz.IncarcaArticoleFactura(tnIdVanzare)— liniile active (sters=0) dinVANZARI_DETALII, cu denumire articol/gestiune/valuta pentru afisare, cursortvd.
COMUN\clase\omodificari.vc2(frm_modific2024):pgfArticole.PageCount = 3,PAGE3.Caption = "Articole factura".- Grid nou
pgfArticole.PAGE3.grdArticoleFactura— 13 coloane,RecordSource="tvd", strict readonly (grid + fiecareText1). - Proprietati noi pe clasa:
lAreArticoleVanzari,nIdVanzare,nTipVanzare. Load(): placeholderCREATE CURSOR tvd (...)— evita dialogul nativ "Open" peRecordSourceinexistent la constructia grid-ului.Show(): bloc nou care cheamaIncarcaVanzareNota/IncarcaArticoleFacturasi comutapgfArticole.PageCountintre 2 si 3 dupalAreArticoleVanzari.
Write-back facut, text si binar sincronizate, fidelity-check OK.
Ce s-a testat, si cu ce rezultat
Suita COMUN\utile\Teste\editare_factura\test_page3_articole.prg, headless sub
COMUN\utile\Teste\watchdog_vfp.ps1 -AutoDismiss, conexiune reala MARIUSM_AUTO. Rulare finala
(dupa curatarea instrumentatiei de depanare): exit code 0, 0 dialoguri, toate cazurile PASS
(test_page3_articole_log.txt):
| Caz | Verifica | Rezultat |
|---|---|---|
cod=1140888 (factura, tip=1) |
IncarcaVanzareNota/IncarcaArticoleFactura direct: id_vanzare=1050, tip=1, 4 linii |
PASS |
cod=1140885 (tip=-12, cu rand VANZARI) |
idem: id_vanzare=1047, tip=-12 (detectia merge pe orice tip, nu doar facturi) |
PASS |
cod=1125486 (nota fara rand VANZARI) |
0 randuri gasite (caz negativ) | PASS |
cod=1139934 (4 randuri VANZARI cu acelasi cod) |
filtrul compus gaseste exact id_vanzare=882 pe nract=375/SSS, 0 randuri pe nract=13 (fara corespondent) |
PASS |
cod=1140888, frm_modific2024 instantiat (Createobject+Show, ca in do_editare_factura) |
PageCount=3, lAreArticoleVanzari=.T., nIdVanzare=1050 |
PASS |
cod=1125486, idem |
PageCount=2, lAreArticoleVanzari=.F. |
PASS |
Testul nu atinge Oracle in scriere — doar SELECT-uri prin goExecutor.
Ce NU e acoperit (ramane pentru runde ulterioare)
- Editarea in memorie a liniilor din grid — runda 2 din S4; grid-ul e strict readonly in
aceasta runda, prin design (B.2 din plan, marcaje
_modificat/sters/id_vanzare_det=0, nu e inceput). - Inchiderea prin
do_renunt()— netestata, la fel ca in rundele S1-S3 (mediul minimal de test areControlCount=0pe formularul principalfrm_facturi, deci butoanele native nu sunt disponibile pentru a conduce fluxul complet prin UI). - Fluxul UI complet prin "Terminat" — netestat;
verifica_pagecount_forminstantiazafrm_modific2024direct (Createobject+Show), la fel cado_editare_factura, dar nu conduce formularul pana la inchidere. Validarea dininainte_de_do_terminnu e exercitata de aceasta suita. - Garda referinte pe
do_editare_facturaramane netestata izolat (fara candidat pozitiv in datele de test) — mostenit din rundele anterioare, nu specific rundei 1 din S4.
Blocaje rezolvate in aceasta sesiune (istoric, nu de reluat)
Trei blocaje separate au impiedicat verificarea live inainte de aceasta runda de inchidere, toate
documentate pe larg in handoff intermediar (sters) si COMUN\docs\testare-ui-vfp.md:
DO ... WITH gnAn, gnLunapasa prin referinta si umbrea variabilele in procedurile apelate, provocand dialogul nativ "View Parameter" pe un?gnAndin SQL passthrough — remediat cu pasare prin valoare (DO ... WITH (gnAn), (gnLuna)).- Harnessul de test (
test_init_env_auto.prg) incarca implicit clasaomodificaridin copia de lucru ROACONT, nu din fisierul editat — remediat cuRELEASE CLASSLIB+SET CLASSLIB TOpe calea completa a fisierului sub test. - Proprietatile custom noi (
lAreArticoleVanzari,nIdVanzare,nTipVanzare) lipseau din*<DefinedPropArrayMethod>(intrarile*p:) — regula era documentata doar pentru metode (*m:); aplicata acum si aici, inCOMUN\docs\flux-editare-vfp-text.md.
Curatare facuta la inchidere
- Scoase liniile de log
[BISECT]si[DIAG](ClassLibrary/PEMSTATUS) dintest_page3_articole.prg— erau instrumentatie de depanare, fara rol in suita finala. Corectiile de fond (parantezele pe(gnAn)/(gnLuna), bloculRELEASE CLASSLIB/SET CLASSLIB TO) au ramas, cu comentariile lor. - Sters
test_baseline_isolation.prg(+.FXP+ log) — era temporar prin design; concluzia lui ("binarul original nu are blocajul") s-a dovedit nula, testa copia ROACONT a clasei, nu fisierul editat (vezi capcana #2 de mai sus). - Suita rulata din nou dupa curatare — PASS pe toate cazurile (tabelul de mai sus).