Files
roafacturare/docs/cercetare/rec_s8_inventar.md
Marius Mutu d9f5ca4226 docs: planurile, proiectarile si rapoartele de lucru intra in versionare
Folderul docs\ era pana acum in afara oricarui control de versiuni - nici git,
nici SVN - desi contine planurile pe puncte, proiectarile si rapoartele de
cercetare pe care se sprijina modificarile din cod. O stergere acolo era
definitiva.

Fisierele intermediare (handoff-uri intre sesiuni, diff-uri deja aplicate) au
fost sterse inainte, nu versionate: ce era durabil in ele a intrat in antetele
fisierelor de test la care se refereau.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SN8snvkk94KuhWwoXUUey3
2026-08-11 22:17:17 +03:00

8.7 KiB

S8 — Inventar pe tipuri de sursa. Rezultat

Cerinta din plan (docs\plan_06_editare_factura.md:282-291): test pe fluxul real, cate un caz din fiecare tip de sursa (lista de preturi, comanda, contract, aviz), fiecare rulat de doua ori (o data din ROAFACTURARE, o data din registrul jurnal ROACONT), plus un al treilea caz obligatoriu — un document care nu e factura, deschis din jurnal (deja acoperit, testul de garda ofacturare_editare.prg scos din SET PROCEDURE -> PageCount = 2).

Faza de fata e inventar, READ-ONLY: doar SELECT si un apel de functie PL/SQL (pack_documente.ReferinteDocumenteNota, functie de citire, fara INSERT/UPDATE/COMMIT). Zero scriere, zero editare de documente, zero modificare de cod.

Verdict

Matricea completa NU e realizabila azi. Doar tipul lista de preturi are documente eligibile in luna curenta (august 2026) — 3 documente, din care 2 sunt deja indisponibile (consumate/baza de regresie in lucrari anterioare). Ramane un singur candidat neatins: id_vanzare=1048.

Celelalte trei tipuri — comanda, contract, aviz — au zero documente in luna curenta. Nu e o limitare de cod sau de garda: nu exista niciun document de acel tip datat in august 2026, in toata MARIUSM_AUTO. Cea mai recenta factura pe comanda e din 26.03.2026, pe contract din 30.06.2026, iar pe aviz (tip=4, "FACT. DIN AVIZ") din 30.11.2023. Nu se fabrica date.

1. Cum se determina „tipul de sursa" — dovada pe cod

VANZARI.TIP — mapat explicit in COMUN\clase\ofacturare.vc2, atat in configurarea UI a formularului de facturare (frm_facturare_articole.Init, Do Case pe poDate.tip, :15122-15153) cat si in constantele denumite din do_copiaza (:3628-3681):

Tip sursa (cerut de S8) VANZARI.TIP Eticheta din cod Sursa
lista de preturi 1, 5, 7, 10 POLITICA PRETURI (lei / invoice / credit note / factura valuta) ofacturare.vc2:15122-15123, :3629-3632
contract 2, 6 CONTRACT / CONTRACT - VALUTA ofacturare.vc2:15129-15130, :3638, :3658
comanda 3 COMANDA ofacturare.vc2:15144-15145, :3639
aviz 4 FACT. DIN AVIZ (factura emisa pe baza unui aviz anterior) ofacturare.vc2:15151-15152, :3640

Se mapeaza curat pe un singur camp (VANZARI.TIP), fara ambiguitate. Precizari:

  • Tipurile 21/22/23/24/25/26/28/29/41 etc. sunt avize propriu-zise sau transferuri (documente separate, nu facturi cu sursa aviz) — nu intra in matrice, pentru ca S8 cere editarea unei facturi, nu a unui aviz.
  • tip=-12 (facturi din ROAAUTO, devize auto) e alt caz, deja documentat separat in docs\cercetare\roaauto_facturi.md — nu face parte din cele patru tipuri cerute de plan.
  • Contractul (2,6) are azi acces liber la lista de preturi in dialogul de adaugare articole (docs\cercetare\retur_si_lista_preturi.md, sectiunea B), dar asta nu schimba clasificarea sursei — clasificarea e pe VANZARI.TIP, nu pe ce se poate adauga ulterior.

2. Cate documente exista, per filtru — cifre pe MARIUSM_AUTO

Garda de editare cumulata (varianta strictă, frm_facturi.do_editare_factura, ofacturare_comun.vc2:3715-3872): sters=0, eproforma<>1, luna curenta (data_act in august 2026), fara linii din seturi (id_vanzare_set nenul pe nicio linie activa), fara referinte (pack_documente.ReferinteDocumenteNota), netrimisa in eFactura (anaf_efactura.id_fact).

Pas / filtru lista de preturi contract comanda aviz
1. sters=0, tip in grup, luna curenta (08.2026) 3 0 0 0
2. + eproforma<>1 3 (neschimbat) 0 0 0
3. + fara linii din seturi 3 (neschimbat) 0 0 0
4. + fara referinte incasari/plati 3 (neschimbat) 0 0 0
5. + netrimis in eFactura (eligibil final) 3 0 0 0

Niciun filtru nu a eliminat vreun document din grupul „lista de preturi" — cele 3 existente treceau deja toate gardele. Pentru celelalte trei tipuri, blocajul e la pasul 1: nu exista document in luna curenta, deci pasii 2-5 sunt irelevanti (cifra ramane 0, nu se pierde nimic pe drum).

Istoric, ca sa se vada ca nu e o problema de cautare: comanda are 38 de facturi nesterse in total (cea mai recenta 26.03.2026), contract 23 (cea mai recenta 30.06.2026), aviz doar 5 in tot istoricul (cea mai recenta 30.11.2023) — tipul aviz (facturare directa dintr-un aviz emis, fara trecere prin lista de preturi/comanda/contract) e practic neutilizat de câţiva ani, nu doar in luna curenta.

Al doilea punct de intrare (ROACONT/afisjurcom.do_modifica, comun.vc2:2222-2572): garda e mai laxa — verifica doar luna curenta si id_set in afara intervalului [30000,30009] (rezervat ROAPRODUCTIE); nu verifica eproforma, referinte sau eFactura (vezi handoff_punct6_dupa_s5.md, confirmat din nou pe cod la aceasta cercetare). Verificat pe cei 3 candidati lista de preturi: id_set=25010 pentru toti trei (an=2026, luna=8) — in afara intervalului interzis, deci toti trei trec si garda ROACONT. Cum niciun filtru specific ROAFACTURARE (eproforma/referinte/eFactura) n-a eliminat vreun document din cele 3, garda mai laxa a jurnalului nu aduce candidati suplimentari pentru lista de preturi — si, evident, nu poate aduce candidati pentru comanda/contract/aviz, unde blocajul e lipsa documentului insusi (ambele puncte de intrare cer luna curenta).

3. Lista concreta de candidati propusi

Tip sursa id_vanzare cod id_fact Stare De ce
lista de preturi 1048 1140894 8009658 neatins, eligibil 1 linie activa, fara valuta (in_valuta=0), discount=0, client RAJA (id_part=463) — document simplu, curat, tip=1
lista de preturi 1049 1140906 (curent) 8009659 eligibil pe cod, dar deja consumat documentul de test S5/S7 — cod realocat de 8 ori, folosit intentionat ca baza de continuitate; nu se reia pentru S8 fara sa se stie ca istoricul lui e deja incarcat
lista de preturi 1050 1140895 8009660 eligibil pe cod, dar interzis explicit „baza suitelor de regresie — nu se atinge" (handoff_punct6_dupa_s5.md)
contract — — — zero niciun document tip in (2,6) in august 2026 (cel mai recent 30.06.2026)
comanda — — — zero niciun document tip=3 in august 2026 (cel mai recent 26.03.2026)
aviz — — — zero niciun document tip=4 in august 2026 (cel mai recent 30.11.2023)

Singurul candidat utilizabil pentru matrice, azi: id_vanzare=1048 (lista de preturi). Pentru comanda/contract/aviz nu exista alternativa in luna curenta — orice executie ar cere fie asteptarea pana quando apare un document nou de acel tip in perioada curenta, fie o decizie explicita de a relaxa criteriul „luna curenta" (schimbare de scop, nu de agent).

4. Ce ar consuma executia matricei (daca se aproba)

  • Un singur cod disponibil de consumat: id_vanzare=1048, cod=1140894. Fiecare trecere prin fluxul de editare realoca cod ireversibil (pattern confirmat empiric in S5/S7: 8 realocari pe id_vanzare=1049). Testarea „de doua ori" (ROAFACTURARE + ROACONT) ar realoca cod-ul cel putin de doua ori pe acest document.
  • Comanda/contract/aviz: executie imposibila azi, indiferent de aprobare — nu exista document de consumat. Singura cale de a acoperi aceste trei tipuri e sa apara documente noi in productie in luna curenta, sau o decizie separata de relaxare a scopului (nu s-a luat).
  • Al treilea caz obligatoriu (document care nu e factura, din jurnal) — deja acoperit, zero consum suplimentar.
  • Nimic din inventarul de fata nu a consumat date: read-only, zero INSERT/UPDATE/COMMIT.

Ce NU acopera cercetarea

  • glLunaInchisa (garda VFP „luna contabila inchisa") nu e verificabila din Oracle — presupusa deschisa (mediul de test curent), neverificata direct.
  • Nu s-a cautat in alte luni/ani pentru un eventual document comanda/contract/aviz care sa fi ramas needitat din alt motiv — cerinta explicita a fost „luna curenta", conform gardei reale de editare.
  • Coloana VANZARI.ID_VANZARE_SET nu exista direct pe VANZARI — verificarea „fara linii din seturi" s-a facut pe VANZARI_DETALII.ID_VANZARE_SET (linii active), consistent cu decizia 39 (handoff_s5.md).

Date de test — NIMIC consumat

Interogari SELECT + un apel de functie PL/SQL de citire (pack_documente.ReferinteDocumenteNota). Zero INSERT/UPDATE/DELETE/COMMIT. id_vanzare=1049 si 1050 — neatinse, doar citite. id_vanzare=1048 — doar citit, nu editat; ramane candidatul propus pentru executia viitoare.

Fisiere atinse

Niciunul de productie. Scripturi .sql de interogare, in scratchpad (nu in docs\, nu in SCRIPTURI_CLAR) — pur exploratorii, nu fac parte din livrare.