Files
roafacturare/docs/cercetare/rec_s9_documentatie.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

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: D:\ROA\ROAFACTURARE\docs\diff_s9_flux_nota_jurnal.patch. 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 docs\handoff_punct6_dupa_s5.md), 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_s5.md (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.