Cercetarile si propunerile rundelor 4-6 pe editarea facturii emise. Starea rundei 6 si ce s-a stabilit intra in progres.md. Nou: docs/conventii_mediu_oracle.md - pe dev/test se lucreaza numai cu ROA_CENTRAL si schemele CONTAFIN_ORACLE si MARIUSM_AUTO; schema ACN nu se foloseste. Scripturile de pachet sunt necalificate, deci schema tinta o decide sirul de conectare, nu fisierul. roafacturare.pj2 regenerat de git_sync. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013gYCNE26G1G7UoGu2ju7aS
6.4 KiB
Cercetare pe date: cantitate < 0 / cantitate = 0 pe articole de vânzări (validarea de la omodificari.vc2:14386)
Schema verificată: MARIUSM_AUTO@ROA_CENTRAL (schema de dezvoltare, folosită și pentru rulări de
teste automate — vezi caveat la final). Toate interogările: SET TRANSACTION READ ONLY, încheiate
cu ROLLBACK (confirmat: „Rollback complete." la fiecare rulare, zero scrieri).
Sursă date: view-ul vvanzari_articole (JOIN VANZARI_DETALII+articol, expune deja denumire,
pret_achizitie), filtrat sters = 0 (= liniile active), înjumătățit cu VANZARI pe id_vanzare
pentru tip/cod/data_act. Nu trag concluzii de produs — doar cifre și exemple, cerute punct cu punct.
1. Câte linii, pe VANZARI.TIP
cantitate < 0 (linii active, sparte pe tip):
| TIP | linii | documente | etichetă (dacă am confirmat-o în cod) |
|---|---|---|---|
| -13 | 1 | 1 | necunoscută — vezi caveat |
| -12 | 9 | 8 | necunoscută — vezi caveat |
| -8 | 1 | 1 | necunoscută — vezi caveat |
| -7 | 1 | 1 | necunoscută — vezi caveat |
| -6 | 25 | 24 | necunoscută — vezi caveat |
| -4 | 1 | 1 | necunoscută — vezi caveat |
| -2 | 1 | 1 | necunoscută — vezi caveat |
| -1 | 3 | 2 | necunoscută — vezi caveat |
| 1 | 3 | 2 | lista de preturi (confirmat de team-lead) |
| 3 | 10 | 4 | necunoscută — nu am verificat-o în cod |
| 8 | 2 | 1 | necunoscută — nu am verificat-o în cod |
| 24 | 1 | 1 | necunoscută — nu am verificat-o în cod |
| 41 | 4 | 4 | necunoscută — nu am verificat-o în cod |
| 51 | 3 | 1 | ROAACNPRO / import (menționat în omodificari.vc2:13125-13127, cercetarea rec_s8_rulaje_tip4.md) |
Total: 65 linii active cu cantitate < 0, pe 52 documente distincte.
cantitate = 0 (linii active, sparte pe tip):
| TIP | linii | documente | etichetă |
|---|---|---|---|
| -6 | 2 | 2 | necunoscută — vezi caveat |
| 2 | 1 | 1 | contract (confirmat de team-lead) |
| 22 | 5 | 5 | aviz (confirmat în cod, oproceduri_facturare.prg etc.) |
Total: 8 linii active cu cantitate = 0, pe 8 documente distincte.
Tabelele de mai sus conțin TIP = -6, nu TIP = 6 — sunt valori distincte, nu le-am confundat.
CORECTIE a sesiunii principale, 12.08.2026 — afirmatia „doar
TIP = 4trece prin validarea de la:14386" era GRESITA si a fost stearsa de aici si din §6. Contaminare din misiunea anterioara a aceluiasi agent, care era chiar despre tip 4.Pagina de articole nu e conditionata de tip.
omodificari.vc2:14842:IF "OFACTURARE_EDITARE" $ Upper(Set("Procedure")) AND Reccount('tact') > 0, apoiIF Reccount('tvanz') = 1->lAreArticoleVanzari = .T..nTipVanzaree doar retinut (:14841), niciodata folosit ca poarta. Deci orice document cu rand inVANZARIprimestetvdsi trece prin:14386.Dovedit si empiric de matricea S8 (
rec_s8_matrice.md): asertia „tvd incarcat cu liniile active reale" a trecut pe1048(tip 1),1055(tip 2),1052(tip 22) si1054(tip 4).Consecinta: absenta lui
TIP = 4din tabele nu e o veste buna si nu arata ca validarea n-a respins nimic real. Cele 52 de documente cucantitate < 0sunt exact populatia pe care validarea o blocheaza. Tipurile-6si41sunt retur-transfer (docs\progres.md, sectiunea #8/S8), adica fix cazul semnalat de Marius.
2. Exemple concrete (3 + 3, cele mai recente după data_act)
cantitate < 0:
| id_vanzare | tip | cod | data_act | denumire | cantitate | pret | id_articol | pret_achizitie |
|---|---|---|---|---|---|---|---|---|
| 1035 | 3 | 1140727 | 26-MAR-26 | DISCOUNT | -3 | 4.8 | 4294507213 | 0 |
| 1035 | 3 | 1140727 | 26-MAR-26 | DISCOUNT | -1 | 3.15 | 4294507213 | 0 |
| 1035 | 3 | 1140727 | 26-MAR-26 | DISCOUNT | -3 | 3.3 | 4294507213 | 0 |
cantitate = 0:
| id_vanzare | tip | cod | data_act | denumire | cantitate | pret | id_articol | pret_achizitie |
|---|---|---|---|---|---|---|---|---|
| 1051 | 22 | 1140907 | 10-AUG-26 | SERVICII PER BUC | 0 | 0 | 4294507490 | 0 |
| 1057 | 2 | 1140913 | 10-AUG-26 | SERVICII PER BUC | 0 | 0 | 4294507490 | 0 |
| 1056 | 22 | 1140912 | 10-AUG-26 | SERVICII PER BUC | 0 | 0 | 4294507490 | 0 |
(Toate cele 3 exemple de cantitate=0 provin sunt pe id_articol completat, pret = 0.)
3. Recență
| categorie | MAX(data_act) |
linii în ultimele 12 luni |
|---|---|---|
cantitate < 0 |
26-MAR-26 | 10 din 65 |
cantitate = 0 |
10-AUG-26 | 6 din 8 |
4. pret = 0 pe linii active
19 linii, pe 17 documente distincte, MAX(data_act) = 10-AUG-26. Toate cele 19 au id_articol
completat (linii_cu_articol = 19 din 19 — deci nu sunt rânduri-rest fără articol).
5. pret IS NULL pe linii active
0 linii. Confirmă structural ce ați bănuit: VANZARI_DETALII.PRET e NOT NULL (verificat cu
DESC vanzari_detalii — coloana PRET NUMBER(22,6) NOT NULL), deci interogarea pe pret IS NULL
nu putea da altceva decât 0.
6. cantitate < 0 pe documente cu pagină de articole (validarea :14386)
Agentul a raportat aici ca „doar TIP = 4 trece prin validare" si ca TIP = 4 lipsind din date ar
insemna ca validarea n-a respins nimic real. Ambele sunt gresite — vezi caseta de corectie din §1.
Raspunsul corect, stabilit de sesiunea principala din cod: pagina de articole nu are filtru pe
tip (omodificari.vc2:14842), deci toate cele 52 de documente cu cantitate < 0 si cele 8 cu
cantitate = 0 trec prin :14386 la editare, si toate ar fi respinse.
Caveat pe date
- Schema e cea de dezvoltare (
MARIUSM_AUTO), folosită și pentru rulările automate de teste (vezidocs/cercetare/rec_s8_rulaje_tip4.md— acelașiid_vanzarea fost editat de un test). Recența (10-AUG-26= practic azi) poate reflecta rulări de test, nu neapărat uz curent real. - Valorile negative de
TIP(-1, -2, -4, -6, -7, -8, -12, -13) nu corespund niciunui tip de document cunoscut din codul citit până acum —VANZARI.TIPeNUMBER(2) NOT NULL, dar coloana nu are o constrângere de semn în schema Oracle, deci acceptă tehnic valori negative. N-am cercetat originea lor (ar necesita căutare suplimentară în cod, în afara scopului acestei misiuni) — le raportez ca atare, fără să presupun că sunt date de test sau eroare.
Fișiere atinse
Niciunul (misiune read-only). Interogări Oracle read-only pe MARIUSM_AUTO@ROA_CENTRAL, cu
ROLLBACK la final pe toate scripturile.