Files
comun/docs/flux-editare-vfp-text.md
Marius Mutu 72e820c939 Achizitie import: facturi prin dialog "Adauga factura", valuta/curs per document
- ointroduceri.prg: introdc porneste gol (perechea-sablon ramane in introdc_sablon);
  coloana nume_val adaugata in cursor.
- import_adauga_factura (dialog nou in ointroduceri.vcx): antet factura, suma/valuta/curs
  (propus), explicatie TVA, radio furnizor/DVI/fara cu memorie DVI, validari; debifarea
  "Suma in valuta in contabilitate" ascunde valuta+cursul si trimite curs 0/fara valuta;
  bifele TabStop=.F.
- import_nota: culori per document + coloana Doc; coloane reordonate, cele avansate
  permanent vizibile (checkbox "Coloane avansate" eliminat); coloane noi Valuta si Curs,
  editabile (cautare valuta, propagare pe randul TVA pereche, recalcul sume lei la
  schimbarea cursului); buton "Urmator" + indicator de pas.
- inainte_de_do_termin: id_valuta/curs/nume_val per rand in actactan - fiecare factura
  ajunge in registrul jurnal cu valuta si cursul ei, nu ale facturii principale.
- docs/flux-editare-vfp-text.md: fluxul comun de editare text->bin per runda.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 13:13:19 +03:00

2.1 KiB

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

  1. Refresh cache (obligatoriu dupa orice sesiune IDE — staleness pe mtime): vcx2txt.ps1 -Project <pjx> -ProjectRoot <root> -CacheRoot <cache> -Types vcx,scx
  2. Baseline: Copy-Item <f>.vc2 <f>.vc2.pre_runda<N>.bak (in cache; la runde succesive necomise, diff-ul fata de HEAD ar amesteca rundele).
  3. 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.
  4. Patch review: git diff --no-index <bak> <editat> > docs/diff_runda<N>_<subiect>.patch (exit 1 = normal). Commit doar dupa confirmare pe patch + test in IDE.
  5. Preconditie write-back: niciun proces vfp9/ (tin lock pe binar); nu se omoara.
  6. Write-back: txt2vcx.ps1 -TextFile <vc2> -ProjectRoot <root> -CacheRoot <cache> (+ -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.
  7. 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 *<DefinedPropArrayMethod>; 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.