diff --git a/clase/ointroduceri.VCT b/clase/ointroduceri.VCT index 80e3eff..7b76cf3 100644 Binary files a/clase/ointroduceri.VCT and b/clase/ointroduceri.VCT differ diff --git a/clase/ointroduceri.vcx b/clase/ointroduceri.vcx index da7d1a2..1259366 100644 Binary files a/clase/ointroduceri.vcx and b/clase/ointroduceri.vcx differ diff --git a/docs/flux-editare-vfp-text.md b/docs/flux-editare-vfp-text.md new file mode 100644 index 0000000..091058a --- /dev/null +++ b/docs/flux-editare-vfp-text.md @@ -0,0 +1,33 @@ +# Flux editare .vcx/.scx pe text (comun proiectelor VFP) + +Cache-ul text per proiect (`vcx2txt.ps1`) e sursa de editare; write-back in binar cu +`txt2vcx.ps1`, fara VFP IDE. Detalii complete: `D:\ROA\UTIL\foxbin2prg\CLAUDE.md`. +Parametrii per proiect (pjx, CacheRoot, exe): in `docs\` proiectului. + +## Pasii unei runde + +0. Refresh cache (obligatoriu dupa orice sesiune IDE — staleness pe mtime): + `vcx2txt.ps1 -Project -ProjectRoot -CacheRoot -Types vcx,scx` +1. Baseline: `Copy-Item .vc2 .vc2.pre_runda.bak` (in cache; la runde succesive + necomise, diff-ul fata de HEAD ar amesteca rundele). +2. Editare byte-safe: PowerShell `[IO.File]::ReadAllText/WriteAllText(..., GetEncoding(1252))`; + NU tool-ul Edit/Write (UTF-8 strica diacriticele). Continut nou ASCII, TAB-uri ca in jur, + fara reflow (format position-sensitive, proprietati alfabetizate). Valabil si pentru `.prg`. +3. Patch review: `git diff --no-index > docs/diff_runda_.patch` + (exit 1 = normal). Commit doar dupa confirmare pe patch + test in IDE. +4. Preconditie write-back: niciun proces vfp9/ (tin lock pe binar); nu se omoara. +5. Write-back: `txt2vcx.ps1 -TextFile -ProjectRoot -CacheRoot ` + (+ `-AllowComun` cu aprobare explicita pentru tinte COMUN — afecteaza toate aplicatiile ROA). + Succes = fidelity-check trecut: binar cu mtime nou; `vcx2txt.ps1` ulterior il vede la zi. +6. Backup-urile `.pre_runda*.bak` si patch-urile se sterg la curatenia de dupa commit. + +## Capcane + +- `.mnx`/`.frx` raman read-only (GENMENU in IDE / round-trip fragil). +- Linii complet goale in metode pica fidelity doar pe whitespace; fix: preia `verify\*.vc2` + din staging peste cache si reia write-back-ul. +- Metoda noua de clasa cere `*m: nume` in `*`; fara ea, prima salvare + din IDE o arunca tacut, iar refresh-ul urmator absoarbe pierderea in cache (si in .bak-uri). + Override-urile de metode de baza (Init, Show, hook-uri) nu au nevoie de `*m:`. +- Subagentii delegati primesc regulile 2-5 in prompt si raporteaza unicitatea sirurilor + inlocuite + rezultatul fidelity-check-ului. diff --git a/programe/ointroduceri.prg b/programe/ointroduceri.prg index 27d8ec3..52f5d91 100644 --- a/programe/ointroduceri.prg +++ b/programe/ointroduceri.prg @@ -1464,7 +1464,6 @@ Procedure achizitie_import If Used('introdc') Use In introdc Endif -SET STEP ON lcSql = [select id_note, explicatie as explicatia, scd, ascd, scc, ascc, cu_tva, id_set, ordine, in_valuta, id_jtva_coloana, ptva, explicatie_tva, tipjurnal,taxcode,paymentcode from vnote_contabile ] + ; [where id_set = ?pnIdSet] lcCursor = [cnote_contabile] @@ -1555,12 +1554,19 @@ SET STEP ON 00000000000000.0000 As suma, 00000000000000.0000 As SUMA_val, 00000000000000 As id_partd, 00000000000000 As id_partc, Space(100) As partd, Space(100) As partc, ; 00000000000000 As id_fact, 00000000000000 As id_factd, 00000000000000 As id_factc, 00000000000000 As pereched, 00000000000000 As perechec, ; 00000000000000 As nract, Space(10) As serie_Act,Space(50) As explicatia4, Space(50) As explicatia5, .T. As participa_valuta, ; - poAct.id_valuta As id_valuta, poAct.Curs As Curs, poAct.dataact as dataact, poAct.fdoc as fdoc, poAct.id_fdoc as id_fdoc, 0 as se_scrie, poAct.tva_incasare as tva_incasare ; + poAct.id_valuta As id_valuta, poAct.Curs As Curs, poAct.nume_val As nume_val, poAct.dataact as dataact, poAct.fdoc as fdoc, poAct.id_fdoc as id_fdoc, 0 as se_scrie, poAct.tva_incasare as tva_incasare, ; + 16777215 As doc_color, Space(10) As doc_label ; FROM cnote_contabile N ; WHERE N.id_set = poAct.id_set ; INTO Cursor introdc Readwrite Order By ordine *!* 22.05.2008 ^ + *!* Directia A (11.07.2026): introdc porneste GOL; perechea-sablon (primele 2 linii, + *!* baza + TVA) se pastreaza in introdc_sablon ca sursa de clonare pentru "Adauga factura". + Select * From introdc Where Recno('introdc') <= 2 Into Cursor introdc_sablon Readwrite + Select introdc + Zap + Use In (SELECT('cnote_contabile')) If !Used('saft_taxtable') @@ -1594,8 +1600,8 @@ SET STEP ON ORDER By 1 gnZvama = 0 - gnButon = 1 + SELECT introdc obj = Createobject('IMPORT_nota', tlIntern) obj.oact = poAct obj.Show() @@ -1608,6 +1614,7 @@ SET STEP ON ENDIF Use In (SELECT('introdc')) + Use In (SELECT('introdc_sablon')) Use In (SELECT('cote_tva')) Use In (SELECT('actactan')) Use In (SELECT('rul_temp'))