docs: cercetarile comune trec in COMUN, reziduul #6 dispare, progres.md la zi
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
This commit is contained in:
@@ -1,164 +0,0 @@
|
||||
# S8 — matricea pe tipuri de sursa, cele 4 documente
|
||||
|
||||
Test: `COMUN\utile\Teste\editare_factura\test_s8_matrice_surse.prg`, log:
|
||||
`COMUN\utile\Teste\editare_factura\test_s8_matrice_surse_log.txt` (rescris la fiecare rulare -
|
||||
cifrele de mai jos sunt citite din log **imediat dupa fiecare rulare**, inainte de a activa
|
||||
urmatorul document, si verificate independent prin `sqlplus`).
|
||||
|
||||
Matricea completa (4 documente) a fost rulata, cate unul pe rand, activat prin `gaCazuriActive` in
|
||||
`test_s8_matrice_surse.prg`. Codul (`EditeazaDinRoafacturare`/`EditeazaDinRegistruJurnal`/
|
||||
`VerificaDupaEditare`/`CalculeazaTotaluriS4b`) e neschimbat intre rulari - parametrizarea prin
|
||||
`id_vanzare` a functionat neschimbata pe toate cele 4 tipuri.
|
||||
|
||||
## Sinteza cifrelor `REZULTAT` (autoritare, din log)
|
||||
|
||||
| Document | Tip sursa | REZULTAT | FAIL-uri | Cauza FAIL-urilor |
|
||||
|---|---|---|---|---|
|
||||
| 1048 | lista de preturi (tip 1) | **44 PASS / 0 FAIL** | - | - |
|
||||
| 1055 | factura din contract (tip 2) | **44 PASS / 0 FAIL** | - | - |
|
||||
| 1052 | aviz (tip 22) | **26 PASS / 1 FAIL** | 1 | garda `ReferinteDocumenteNota` blocheaza corect intrarea ROAFACTURARE (constatare, nu defect de test - vezi mai jos) |
|
||||
| 1054 | factura din aviz (tip 4) | **42 PASS / 2 FAIL** | 2 | `Reccount(trul)=0` pe ambele intrari - normal pentru tip 4 (vezi mai jos), nu defect |
|
||||
|
||||
Niciun `EROARE` in niciunul din cele 4 loguri.
|
||||
|
||||
## Document 1048 — lista de preturi (tip 1)
|
||||
|
||||
Deja raportat integral in versiunea anterioara a acestui document (ambele intrari au reusit complet,
|
||||
0 anomalii). Stare finala neschimbata de rularile ulterioare pe celelalte documente: `cod=1140918`,
|
||||
`id_fact=8009658` (neschimbat), totaluri `250.01/52.50/302.51` (neschimbate), 1 linie activa.
|
||||
|
||||
## Document 1055 — factura din contract (tip 2)
|
||||
|
||||
Ambele intrari au reusit complet (`COMMIT`), fara nicio anomalie in lantul de scriere.
|
||||
|
||||
| | inainte | dupa ROAFACTURARE | dupa registrul jurnal |
|
||||
|---|---|---|---|
|
||||
| `cod` | 1140911 | 1140919 | **1140920** |
|
||||
| `id_fact` | 8009680 | 8009680 | 8009680 (neschimbat) |
|
||||
| totaluri | 200.00 / 42.00 / 242.00 | neschimbate | neschimbate |
|
||||
| linii active | 2 | 2 | 2 |
|
||||
|
||||
`vact_tot`: cod 1140911 si 1140919 (notele vechi) - toate randurile `STERS=1`; cod 1140920 (nota
|
||||
curenta) - toate randurile `STERS=0`.
|
||||
|
||||
**Constatare (nu defect)**: verdictul S4b e **divergent** pe tot parcursul - `ACT=242`, `RUL=121`
|
||||
(exact jumatate), neschimbat de cele doua editari (`121 -> 121` pe ambele treceri). Verdictul e
|
||||
etichetat explicit "informativ, nu e eroare" de catre `frm_modific2024` insusi (decizia din S4b:
|
||||
formularul arata divergenta, nu o blocheaza). Asertiile testului nu presupun `ACT=RUL` - verifica
|
||||
doar ca fiecare total ramane **concordant fata de inainte de editare**, ceea ce s-a confirmat.
|
||||
|
||||
## Document 1052 — aviz (tip 22)
|
||||
|
||||
**Nu e factura** - constatare confirmata, exact cum a semnalat briefingul.
|
||||
|
||||
### Intrarea ROAFACTURARE (`do_editare_factura`): BLOCATA de garda, corect
|
||||
|
||||
```
|
||||
FAIL ... document fara referinte / netrimis in eFactura [.T.]
|
||||
```
|
||||
|
||||
`ReferinteDocumenteNota(2026, 8, 1140908)` a intors adevarat - verificat direct in Oracle:
|
||||
`ACT.id_factc = 8009677` (id_fact-ul avizului 1052) exista pe cod=1140910, care e nota lui **1054**
|
||||
("factura din aviz", emisa din acest aviz). Garda functioneaza exact cum trebuie: **blocheaza
|
||||
editarea unui document sursa care are deja o factura emisa din el** - nicio scriere nu s-a produs
|
||||
(verificat: `cod` a ramas `1140908` neschimbat pana la intrarea urmatoare). `EsteInEFactura` nu a
|
||||
contribuit (`anaf_efactura` nu are randuri pentru `id_fact=8009677`).
|
||||
|
||||
Aceasta e o `FAIL` de asertie **asteptata si corecta** - testul a presupus (mostenit din modelul
|
||||
S5, gandit pentru facturi) ca documentul e editabil; pentru un aviz cu factura deja emisa din el,
|
||||
nu e. Marcata ca atare, nu ca defect.
|
||||
|
||||
### Intrarea registru jurnal ROACONT (`do_modifica`): A REUSIT COMPLET, fara aceeasi garda
|
||||
|
||||
```
|
||||
PASS ... blocul ScrieArticoleFacturaEditate s-a executat pe aceasta cale (garda satisfacuta) [.T.]
|
||||
PASS ... lantul complet a reusit (COMMIT) [lnSucces=1]
|
||||
```
|
||||
|
||||
**Constatare reala, de raportat lui Marius**: `afisjurcom.do_modifica` (`comun.vc2:2222-2569`) **nu
|
||||
are garda `ReferinteDocumenteNota`/`EsteInEFactura`** in secventa reprodusa (confirmat deja indirect
|
||||
de `test_s5_al_doilea_intrare.prg`, dar niciodata exercitata pana acum pe un document care CHIAR are
|
||||
o referinta reala). Rezultat: editarea prin registrul jurnal a trecut pana la `COMMIT` pe un
|
||||
document (1052) pe care intrarea ROAFACTURARE l-a blocat explicit din acelasi motiv.
|
||||
|
||||
Pe aceasta rulare **fara** consecinta vizibila (editarea nu a modificat nicio linie - doar a
|
||||
realocat `cod`-ul si a refacut nota; documentul 1054, care il refera, a fost verificat neschimbat:
|
||||
`cod=1140910`, `id_fact=8009679`, totaluri `252.07/52.93/305.00`, toate identice cu inainte).
|
||||
Legatura structurala ramane valida pentru ca trece prin `id_fact`/`id_vanzare`, niciodata prin `cod`
|
||||
(S6, deja inchis). Dar daca editarea prin ROACONT ar fi inclus si o modificare de continut pe un
|
||||
document cu referinte reale, nimic nu ar fi oprit-o - asimetria intre cele doua puncte de intrare e
|
||||
reala, nu doar teoretica. **Nu s-a atins `comun.vc2`/`omodificari.vc2` pentru a o corecta** (livrare
|
||||
inchisa) - se raporteaza pentru decizia lui Marius.
|
||||
|
||||
| | inainte | dupa ROAFACTURARE | dupa registrul jurnal |
|
||||
|---|---|---|---|
|
||||
| `cod` | 1140908 | *(blocat, nescris)* | **1140921** |
|
||||
| `id_fact` | 8009677 | - | 8009677 (neschimbat) |
|
||||
| totaluri | 271.17 / 56.94 / 328.11 | - | neschimbate |
|
||||
| linii active | 2 | - | 2 |
|
||||
|
||||
`vact_tot`: cod 1140908 (nota veche) - toate randurile `STERS=1`; cod 1140921 (nota curenta) -
|
||||
toate randurile `STERS=0`. S4b: `ACT=RUL=328.11`, verdict sincronizat, neschimbat de editare.
|
||||
|
||||
## Document 1054 — factura din aviz (tip 4)
|
||||
|
||||
Ambele intrari au reusit complet (`COMMIT`), singurele 2 `FAIL` din aceasta rulare sunt pe
|
||||
`Reccount(trul)>0`.
|
||||
|
||||
**Stabilit inainte de editare, nu ghicit**: interogare pe toate cele 6 documente `tip=4` din baza
|
||||
(`145, 665, 668, 697, 974, 1054`) - **toate** au exact 2 randuri `ACT` si **0** randuri `RUL`,
|
||||
indiferent de `total_cu_tva`. Tiparul e 100% consistent pe populatia completa de documente tip 4,
|
||||
nu doar pe 1054 - **normal pentru tip 4**, nu o particularitate a acestui document. Explicatia
|
||||
structurala plauzibila: miscarea de stoc s-a inregistrat deja la emiterea avizului sursa; factura
|
||||
emisa din aviz nu mai genereaza randuri `RUL` proprii (ar dubla miscarea), doar nota contabila
|
||||
(`ACT`). Cele doua `FAIL` (`Reccount(trul)>0` cerut de asertia generica, `Reccount(trul)=0` gasit)
|
||||
sunt **asteptate si corecte pentru acest tip de document** - verificarea "rulaje refacute" nu e
|
||||
concludenta pentru tip 4 (nu exista rulaje de refacut), nu semnaleaza un defect.
|
||||
|
||||
Restul verificarilor (nota veche/noua, `id_fact`, totaluri denormalizate, S4b ACT concordant,
|
||||
stoc) au trecut integral pe ambele intrari.
|
||||
|
||||
| | inainte | dupa ROAFACTURARE | dupa registrul jurnal |
|
||||
|---|---|---|---|
|
||||
| `cod` | 1140910 | 1140922 | **1140923** |
|
||||
| `id_fact` | 8009679 | 8009679 | 8009679 (neschimbat) |
|
||||
| totaluri | 252.07 / 52.93 / 305.00 | neschimbate | neschimbate |
|
||||
| linii active | 1 | 1 | 1 |
|
||||
|
||||
`vact_tot`: cod 1140910 si 1140922 (notele vechi) - toate randurile `STERS=1`; cod 1140923 (nota
|
||||
curenta) - toate randurile `STERS=0`. S4b: `ACT=305`, `RUL=0`, verdict divergent (informativ),
|
||||
neschimbat de editare (`305->305`, `0->0`).
|
||||
|
||||
## Verdict explicit pe cele 8 verificari cerute de plan (`plan_06_editare_factura.md:286-288`)
|
||||
|
||||
| # | Verificare | Verdict pe matrice |
|
||||
|---|---|---|
|
||||
| 1 | nota veche `STERS=1` | **PASS** pe toate cele 7 scrieri reusite (1048x2, 1055x2, 1052x1 - ROACONT, 1054x2). N/A pe 1052/ROAFACTURARE (blocat inainte de scriere, nu s-a creat nicio nota noua). |
|
||||
| 2 | nota noua corecta (exista, activa, acelasi `id_fact`) | **PASS** pe toate cele 7 scrieri reusite. |
|
||||
| 3 | `id_fact` neschimbat | **PASS** pe toate cele 7 - 8009658, 8009680, 8009677, 8009679 identice inainte/dupa. |
|
||||
| 4 | `VANZARI`/`VANZARI_DETALII` sincronizate | **PASS** pe toate cele 7 - numar de linii active neschimbat, totaluri coerente (`ftva+tva=ctva`). |
|
||||
| 5 | totalurile denormalizate corecte | **PASS** pe toate cele 7 - identice cu inainte de editare (reeditare fara modificari de continut). |
|
||||
| 6 | rulajele refacute | **PASS** pe 1048 (x2), 1055 (x2), 1052 (x1, ROACONT). **FAIL asteptat** pe 1054 (x2) - `RUL=0` e normal pentru tip 4 (confirmat pe toate cele 6 documente tip 4 din baza), verificarea nu e concludenta pentru acest tip. |
|
||||
| 7 | totalurile de control S4b concordante | **PASS** pe toate cele 7 - `Total ACT` si `Total RUL` raman fiecare **neschimbate fata de inainte de editare**, indiferent daca verdictul absolut e sincronizat (1048, 1052) sau divergent (1055, 1054 - divergenta insasi e preexistenta editarii, nu cauzata de ea). |
|
||||
| 8 | verificarile de stoc de la emitere NU s-au declansat | **PASS** pe toate cele 7 - `gcMockUltimMesaj` ramas gol dupa fiecare lant de scriere; structural, `verifica_stoc` (`oscrie_in_fisiere.prg:92`) nu se poate declansa pentru ca ambele puncte de intrare trec `tlModificare=.T.`. |
|
||||
|
||||
**Al treilea caz obligatoriu** (document care nu e factura, deschis din registru jurnal, fara
|
||||
pagina de articole) - deja acoperit separat, per handoff (`docs\handoff_punct6_10082026_pm.md:113`).
|
||||
|
||||
## Constatare de raportat separat (nu de reparat aici)
|
||||
|
||||
**Asimetria de garda intre punctele de intrare** (sectiunea document 1052 de mai sus): intrarea
|
||||
ROAFACTURARE (`ofacturare_comun.vc2`, `do_editare_factura`) verifica `ReferinteDocumenteNota`/
|
||||
`EsteInEFactura` inainte de a permite editarea; intrarea registru jurnal ROACONT
|
||||
(`comun.vc2`, `afisjurcom.do_modifica`) nu are aceasta garda in secventa reprodusa si a scris pana
|
||||
la capat pe acelasi document pe care ROAFACTURARE l-a blocat. Nicio consecinta vizibila pe aceasta
|
||||
rulare (editare fara modificari de continut, documentul care refera - 1054 - verificat neschimbat),
|
||||
dar protectia lipseste structural pe calea ROACONT. `omodificari.vc2`/`comun.vc2` **nu au fost
|
||||
atinse** (livrari inchise) - decizia (adaugarea gardei si pe ROACONT, sau acceptarea asimetriei) ii
|
||||
revine lui Marius.
|
||||
|
||||
## Ramas de facut
|
||||
|
||||
Toate cele 4 documente din matrice au fost editate de doua ori si verificate. Nimic ramas pe
|
||||
felia S8 in sine. Documentele consumate (coduri realocate, note vechi sterse ireversibil):
|
||||
1048 (-> 1140918), 1052 (-> 1140921), 1054 (-> 1140923), 1055 (-> 1140920).
|
||||
Reference in New Issue
Block a user