Docs: flux write-back ca mod standard (docs/CLAUDE.md), articole negestionabile in flux-achizitie-import.md; proiect VFP atins de build/testare
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,20 +1,27 @@
|
||||
# Mod de lucru Claude ↔ Marius pe ROAGEST
|
||||
|
||||
## Propuneri de modificare pentru cod VFP binar (.vcx/.scx)
|
||||
## Modificare cod VFP binar (.vcx/.scx) — flux write-back pe text
|
||||
|
||||
Clasele/formele sunt binare și se editează doar în VFP IDE, deci fluxul e:
|
||||
Din 07.2026 Claude aplică singur modificările pe `.vcx`/`.scx` prin fluxul text→bin
|
||||
(`txt2vcx.ps1`, detalii în CLAUDE.md rădăcină și `docs/flux-editare-vfp-text.md`):
|
||||
|
||||
1. Claude investighează (pe cache-ul text `_textcache_roagest`) și scrie un fișier de propunere
|
||||
`docs/propuneri_<subiect>.md` cu **cod complet, gata de copiat** în IDE, cu referințe
|
||||
`fișier:linie` din cache și pași de testare.
|
||||
2. Marius aplică modificările în VFP IDE și rulează `vcx2txt.ps1` (comanda din CLAUDE.md rădăcină)
|
||||
pentru refresh-ul cache-ului text.
|
||||
3. Claude verifică pe cache-ul reîmprospătat ce s-a aplicat (diff față de propunere, cazuri ratate).
|
||||
4. După implementare + changelog, fișierul de propunere se șterge sau se arhivează; insight-urile
|
||||
durabile descoperite pe parcurs se mută în notițe `docs/flux-*.md` / `docs/pachet-*.md`.
|
||||
1. Claude investighează pe cache-ul text (`D:\ROA\_vfp_textcache\roagest`), propune modificarea
|
||||
și **așteaptă acordul lui Marius pe abordare** înainte să editeze.
|
||||
2. Refresh cache (`vcx2txt.ps1`), editare `.vc2`/`.sc2` **byte-safe** (PowerShell, encoding 1252,
|
||||
conținut nou doar ASCII — nu Edit tool pe .vc2), apoi write-back cu `txt2vcx.ps1`
|
||||
(fidelity-check obligatoriu; țintele din `COMUN\` cer `-AllowComun` + aprobare explicită,
|
||||
și VFP IDE / roagest.exe complet închise — procesele reziduale țin lock pe binar).
|
||||
3. Diff lizibil pentru review: text vechi regenerat din HEAD git (`vcx2txt.ps1 -Source`)
|
||||
vs. cache-ul editat, `git diff --no-index` → fișier `.patch`. **Commit doar după ce Marius
|
||||
confirmă pe diff și testează în IDE.** Editările de volum se deleagă la subagenți Sonnet
|
||||
în background; sesiunea principală orchestrează și verifică.
|
||||
4. După implementare: changelog, ștergerea fișierului de propunere/patch-ului, iar insight-urile
|
||||
durabile se mută în notițe `docs/flux-*.md` / `docs/pachet-*.md`.
|
||||
|
||||
Când Marius a început deja o implementare, Claude compară codul lui cu originalul și listează
|
||||
explicit diferențele/cazurile netratate (nu rescrie orbește).
|
||||
Excepții rămase pe VFP IDE: `.mnx` (GENMENU) și `.frx` (fragile la round-trip) — pentru ele
|
||||
rămâne valabil fluxul vechi cu fișier de propunere `docs/propuneri_<subiect>.md` aplicat de
|
||||
Marius în IDE. Când Marius a început deja o implementare, Claude compară codul lui cu originalul
|
||||
și listează explicit diferențele/cazurile netratate (nu rescrie orbește).
|
||||
|
||||
## Acces direct la baza de date Oracle
|
||||
|
||||
|
||||
@@ -36,6 +36,15 @@ Lanțul complet (descoperit la sesizarea „achiziție import", 07.2026):
|
||||
**`PACK_CONTAFIN`** (`SCRIE_IN_ACT`, `SCRIE_IN_RUL`, `SCRIE_IN_STOC`, …). `SCRIE_IN_RUL` inserează
|
||||
în `RUL` **exact** conținutul `RUL_TEMP` (nu derivă din ACT) — orice filtrare de rulaje se face în
|
||||
clientul VFP. Sursa pachetului: `COMUN\docs\PACK_CONTAFIN.pck` (vezi `COMUN\docs\oracle_export.md`).
|
||||
- **Articole negestionabile** (`nom_articole.in_stoc = 0`): modelul canonic e în clasa **`nir`**
|
||||
(NIR-ul obișnuit, același `ointroduceri.vcx`), mecanism din 2009 — articolul intră normal în grilă
|
||||
și participă la calcule, iar în `inainte_de_do_termin`, chiar înainte de scriere, se face
|
||||
`Delete From rul_temp Where in_stoc = 0` (valoarea rămâne doar pe nota contabilă, nu ajunge în
|
||||
`RUL`/`STOC`). Din v2.11.6 `import_nir` e aliniat la același model, cu un cursor temporar
|
||||
(`crsNegest`) care readaugă rândurile șterse în grilă dacă `oscrie_in_fisiere` eșuează.
|
||||
Cursorul `rul_temp` are coloana `in_stoc` pentru că e creat din view-ul `vrul` (`where 1=2`);
|
||||
la `do_adauga` coloana se umple prin `GATHER NAME loArt` din cursorul catalogului, la
|
||||
`do_modiparam` (XLS) explicit din selectul pe `nom_articole`.
|
||||
- **Explicație TVA**: dropdown istoric `Grid1.cExplicatieTva.Combo1` (RowSource `jtva_coloane2`);
|
||||
modelul alternativ cu formular de căutare = `frm_modific2024.do_modifica_explicatie_tva`
|
||||
(`omodificari.vcx`) → `caut_explicatie_tva()` (`ocautare.prg:1934`, view `vjtva_coloane`,
|
||||
|
||||
BIN
roagest.PJT
BIN
roagest.PJT
Binary file not shown.
BIN
roagest.pjx
BIN
roagest.pjx
Binary file not shown.
Reference in New Issue
Block a user