Files
roafacturare/docs/cercetare/rec_s9_documentatie.md
Marius Mutu b5a7108f34 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
2026-08-11 22:31:42 +03:00

5.4 KiB

S9 — documentatia fluxului de editare a facturii, adaugata in flux-modificare-stergere-nota-jurnal.md

Fisier editat: D:\ROA\ROAGEST\COMUN\docs\flux-modificare-stergere-nota-jurnal.md. Diff salvat: diff aplicat (sters). Nimic comis (nici git, nici SVN) - COMUN e dublu-versionat SVN+git, git stash acolo e interzis; nu s-a folosit.

Ce s-a adaugat si unde

Doua sectiuni noi, dupa ## Atentie: nu e valabil la fel pentru stergerea simpla si inainte de ## Implicatii practice:

  1. ## Ramura noua: editare factura de vanzare (VANZARI/VANZARI_DETALII) - conditia de activare, cele doua puncte de intrare cu garzile lor, secventa de scriere in tranzactia manuala, contractul lui ScrieArticoleFacturaEditate, procedura Oracle de recalcul, view-ul sursa, si comportamentul gridului de articole (editabilitate per linie, stergere logica, validari la inchidere).
  2. Doua bullet-uri noi in ## Implicatii practice, in continuarea listei existente.

Din ce fisiere vine fiecare afirmatie

  • Cele doua puncte de intrare si garzile lor: COMUN\clase\ofacturare_comun.vc2:3715-3872 (do_editare_factura - garzi la :3742-3768, incarcare articole la :3793, agatare la :3828-3830) si COMUN\clase\comun.vc2:2222-2567 (do_modifica - luna curenta :2265-2268, pregatire articole :2435-2437, agatare :2491-2493). Verificat explicit ca EsteInEFactura si ReferinteDocumenteNota nu apar in comun.vc2 (grep pe fisier, zero rezultate) - de-aia afirmatia ca garda eFactura/referinte exista doar pe punctul din ROAFACTURARE.
  • Inregistrarea ofacturare_editare.prg in toate trei aplicatiile: grep confirmat separat in ROAFACTURARE\Programe\roafacturare.prg:214, ROACONT\Programe\roacont.prg:212, ROAGEST\Programe\roagest.prg:260 - toate cu SET PROCEDURE TO ofacturare_editare.prg ADDITIVE.
  • Helperele: COMUN\programe\ofacturare_editare.prg citit integral. EsteInEFactura (:16-25), PregatesteArticoleFacturaEditare (:332-348), IncarcaVanzareDinNota/IncarcaArticoleFactura (:161-324), ScrieArticoleFacturaEditate (:468-555, cei 4 pasi citati din corpul functiei).
  • Formularul: COMUN\clase\omodificari.vc2 - Load (:14645-14682), Show (:14731-14814, in special :14769-14794 pentru decizia PageCount), validarile din inainte_de_do_termin (:14282-14387), gridul grdArticoleFactura (definitia coloanelor :12320-..., caption PAGE3 :8707), handlerele When/Valid pe cCantitateArt/cPretArt/ cPretAchizitieArt/cPretCuTvaArt (:16519-16566) si cmdStergeArticol.Click (:16508-16517).
  • Oracle: D:\ROA\DATABASE\SCRIPTURI_CLAR\2026\08\ff_2026_08_09_01_COMUN_PACK_FACTURARE.sql (recalculeaza_totaluri_vanzari, :16023-16228, citit integral - coloanele scrise, agregarea pe linii proprii si pe seturi, coloanele de incasare neatinse) si ...\ff_2026_08_09_02_COMUN_VVANZARI_ARTICOLE.sql (view-ul, citit integral).

Ce am lasat deliberat afara

  • Totalurile de control / verdictul ACT-RUL (ActualizeazaBaraTotaluri, ActualizeazaVerdictActRul, omodificari.vc2:12966-13105) - exista in cod si e parte din S4b, dar e o functionalitate de afisare/avertizare, nu parte a fluxului de stergere-scriere-realiniere pe care il documenteaza fisierul tinta. L-am scos ca sa nu ingreunez sectiunea cu un subiect distinct (planul cere explicit doar "ramura de facturi" pe fluxul de modificare/stergere).
  • Actiunea de sincronizare cu enumerarea liniilor vechi->noi - nu exista inca in cod (S4b partial, per handoff intermediar (sters)), n-am documentat ceva nelivrat.
  • Eticheta text "linie din set" - handoff-ul S5 o mentioneaza, dar in cod (grep pe omodificari.vc2) nu exista un literal cu acest text; marcajul e doar vizual, prin DynamicForeColor (culoare distincta). Am scris "culoare distincta", nu "eticheta", ca sa nu inventez un text care nu exista.
  • Drepturile (tokenul "3", lactiv3) - documentul tinta nu discuta permisiuni pentru niciun flux existent (nici stergerea, nici modificarea simpla), asa ca am pastrat consistenta si n-am adaugat-o nici pentru factura.
  • nom_lucrari/gest_inventar/atasamente_vanzari din finalizeaza_modificare_nota - deja documentate mai sus in fisier (sectiunea "Unde"), n-am repetat.

Intrebari deschise

  1. Asimetria de garzi intre cele doua puncte de intrare e by design sau gap de acoperit? do_editare_factura (ROAFACTURARE) verifica eFactura si referinte de incasari/plati; do_modifica (Registrul Jurnal, comun tuturor notelor) nu le verifica deloc - doar restrictia generica de luna curenta. Codul confirma asta explicit (am citit ambele metode integral), dar nu pot spune din documentatie daca e o omisiune ramasa din S1 sau o decizie asumata (planul spune doar ca "garzile trebuie sa fie in formular sau in codul comun", fara sa specifice care cale trebuia sa le primeasca). Am documentat faptul, nu l-am calificat drept bug.
  2. Eticheta "linie din set" mentionata in handoff intermediar (sters) (decizia 39) nu exista ca text in cod la verificare - posibil ramasa doar la nivel de intentie sau inlocuita de marcajul de culoare in implementarea finala. N-am putut confirma din git log/istoric fara sa ies din scop; las-o ca discrepanta cunoscuta intre document de decizie si livrare.

Nu am atins niciun fisier de cod (.prg/.vc2/.sc2/.sql) si niciun alt fisier de documentatie in afara celui cerut.