7.0 KiB
Raport runda 6, punctul 6, partea VFP
GATA — text editat, write-back facut si verificat
Implementare completa a partii VFP din punctul 6 (explicatia TVA in dialogul de modificare a
articolului din frm_facturi), conform docs\brief_r6_punct6_vfp.md, punctele M1-M5, plus
doua corectii cerute de team-lead la review (TabIndex complet, Destroy inchide ambele
cursoare). Scris pe binar cu succes; verificarile de mai jos confirma sincronizarea text/binar.
Inventar modificari (numerotare finala, dupa write-back)
Fisier: D:\ROA\ROAFACTURARE\COMUN\clase\ofacturare_comun.vc2 (+ ofacturare_comun.vcx/.vct).
- M1 —
frm_facturi.do_modifica_explicatie(:4642): la:4650-4651, douaAddProperty(poRec, 'data_act', crsfacturi.data_act)/AddProperty(poRec, 'id_part', Nvl(crsfacturi.id_part, 0)), intrepoRec.explicatie = NVL(...)siIf poRec.sters = 0. - M2 — clasa
frm_modifica_articol_factura(:5132-5369):- Layout:
Height370->431 (:5155);_shape3.Top323->384 (:5192);cbo_saft.Top329->390 (:5234);lbSaft.Top332->393 (:5284). OBJECTDATAZOrder (:5140-5143): 4 linii noi —_shape4,lbExplTva,cbo_expl_tva,lbExplTvaInfo.- Proprietate noua
nidjtvaales:*p: nidjtvaalesin*<DefinedPropArrayMethod>(:5147, intre*p: nidsi*p: ntip_selectie), valoare initialanidjtvaales = 0in*<PropValue>(:5158). - Obiecte noi (ADD OBJECT):
_shape4(:5197),cbo_expl_tva(:5207,ControlSourcegol,RowSourcepopulat inInit),lbExplTva(:5257, captionExplicaţie TVA, diacritic cp12500xFE),lbExplTvaInfo(:5266).
- Layout:
- M3 —
frm_modifica_articol_factura.Init(:5313-5353): la final (dupa bloculciteste_lungcampexplart), popularecbo_expl_tvadinvjtva_coloanefiltrat pe cota TVA a liniei, cu cele 3 ramuri din brief (cota necunoscuta la:5331-5336; gasit la:5342-5345; negasit la:5346-5350). - M4 —
cbo_expl_tva.InteractiveChange(:5355-5367, metoda noua — override de eveniment de baza, nu necesita*m:): seteazaThisform.nidjtvaales,poRec.id_jtva_coloana, si sub gardagl406recalculeazapoRec.taxcodeprinGetTaxCodeIdPart. - M5 —
inainte_de_do_termin(:5298-5311): parametrul 5 (lcParamJtva,:5301-5302) construit literal (nu bind),nullcandThisform.nidjtvaalesn-a fost atins. - In plus fata de M1-M5, cerut/corectat la review:
PROCEDURE Destroy(:5288-5296) — inchidecrsExplTvaCbo(RowSource-ul combo-ului) sicrsExplTvaArt(cursorul intermediar dinInit) daca raman deschise, apoiDoDefault()(:5295) — lantul de curatenie mostenit dinfrm_termin_renunt(_frm_child.vcx) nu e taiat; acelasi tipar (cleanup local +DODEFAULT()) e deja folosit in fisier lafrm_modifica_factura.Destroy(:5720-5722).TabIndex, ordine completa:Ed_tx_simplu1=1,cbo_expl_tva=2 (nou),cbo_saft=2->3,BUT_TERMIN1=3->4,But_renunt1=4->5,Lb_titlu_alb_b121=5->6,lbSaft=6->7,lbExplTva=8 (nou);lbExplTvaInforamane faraTabIndex(Visible = .F.).
Ordinea fizica finala a metodelor in clasa: Destroy, inainte_de_do_termin, Init,
cbo_expl_tva.InteractiveChange — confirmata din textul regenerat de FoxBin2Prg la fidelity-check
(nu presupusa).
Write-back — confirmat
txt2vcx.ps1 -TextFile COMUN\clase\ofacturare_comun.vc2 -ProjectRoot D:\ROA\ROAFACTURARE -CacheRoot D:\ROA\ROAFACTURARE -AllowComun:
- Prima rulare (pe textul M1-M5, inainte de corectiile de TabIndex/
Destroy): ESEC pe ordine — exact avertismentul din brief ("FoxBin2Prg nu pastreaza ordinea textuala pentru ADD OBJECT multiple"). Am adoptat ca sursa blocul claseifrm_modifica_articol_facturadin<staging>\verify\ofacturare_comun.vc2(ordinea canonica ADD OBJECT:_shape3, _shape4, cbo_expl_tva, cbo_saft, Ed_tx_simplu1, lbExplTva, lbExplTvaInfo, lbSaft), fara sa ating nicio alta clasa din fisier. - Rularea finala (dupa corectiile de TabIndex +
Destroy, cu semnalWRITE-BACK ACUMde la team-lead, lock-ul lui Marius eliberat): OK —1/1 fisier(e) scrise cu succes, fara alt esec de fidelitate.
Dovada de sincronizare text/binar (nu mtime — reconversie separata + diff):
vcx2txt.ps1 -Source ofacturare_comun.vcx -Force intr-un cache temporar separat, apoi
diff cu textul din arbore -> 0 linii diferenta.
Verificari encoding (inainte / dupa, pe tot parcursul)
- Octeti > 0x7F: 12 inainte de orice editare -> 13 dupa toate editarile si dupa
write-back (neschimbat de la corectiile de TabIndex/
Destroy— nu ating diacritice). Singurul octet nou e0xFE(diacriticulțdin caption-ullbExplTva,Explicaţie TVA); zero aparitii deEF BF BD(fara corupere UTF-8). - Octetul diacritic verificat explicit (cerut de team-lead):
lbExplTva.Caption(:5258) are octetul0xFEexact in aceeasi pozitie semantica caLb_titlu_alb_b121.Caption(:5170,"Modific\xE3 explica\xFEie articol") din aceeasi clasa — acelasi octet0xFE=țcp1250 in ambele, confirmat byte-cu-byte (od -c) pe fisierul final, dupa write-back. - LF izolate (
0x0Afara0x0Dinainte): 0, atat inainte cat si dupa toate editarile si dupa write-back. Fisierul final are 7540 de linii, toate CRLF.
Scop
git status in D:\ROA\ROAFACTURARE\COMUN (repo propriu al lui COMUN, unde .vc2 e versionat
si .vcx/.vct sunt gitignored prin design — git check-ignore confirma *.VCX/*.VCT in
.gitignore): doar clase/ofacturare_comun.vc2 modificat (117 insertii, 11 stergeri),
niciun alt fisier. Niciun PL/SQL, niciun omodificari.vc2, niciun grid de articole, niciun
Text1.ReadOnly atins — conform interdictiilor.
Ce n-a fost facut si de ce
Nimic din scopul brief-ului a ramas nefacut. Singura abatere fata de fluxul standard a fost timpul de asteptare intre editarea textului si write-back, cauzat de un lock legitim (sesiunea VFP activa a lui Marius pe acelasi binar) — nu de o problema de implementare; write-back-ul s-a facut abia dupa ce team-lead a confirmat eliberarea lock-ului si a dat semnalul explicit.
Nu s-a comis nimic si nu s-a rulat nicio sincronizare
Nu s-a rulat git_sync.ps1, roa_sync.bat, svn update/commit, git commit/push. Nu s-a pornit
VFP, nu s-a deschis IDE-ul. Commit-ul ramane la latitudinea sesiunii principale, dupa aprobare.
Fisiere atinse in aceasta sesiune
D:\ROA\ROAFACTURARE\COMUN\clase\ofacturare_comun.vc2— editat, write-back facut, verificat (0 linii diferenta la reconversie).D:\ROA\ROAFACTURARE\COMUN\clase\ofacturare_comun.vcx/.vct— regenerate prin write-back, verificate byte-identic cu textul din arbore (via reconversie separata).D:\ROA\ROAFACTURARE\COMUN\clase\ofacturare_comun.vc2.pre_r6p6.bak,ofacturare_comun.vc2.pre_r6p6_fix2.bak— backup-uri locale (baseline-uri intermediare), netracked de git, de sters la curatenie (COMUN\utile\curatenie.ps1).D:\ROA\ROAFACTURARE\docs\raport_r6_punct6_vfp.md— acest raport.- Niciun proces deschis, nicio tranzactie Oracle deschisa, niciun date de test consumate.