Changelog 2.11.7 (achizitie import: dialog Adauga factura, culori per document, valuta/curs per document editabile); docs: flux editare VFP mutat in COMUN/docs, curatenie drafturi/patch-uri
- changelog 2.11.7: nota porneste goala + dialog "Adauga factura", coloane reordonate/avansate vizibile, Valuta+Curs per document editabile in grila, buton "Urmator" + indicator de pas. - docs: flux-editare-vfp-text.md redus la parametrii ROAGEST (fluxul comun in COMUN/docs); README/CLAUDE.md actualizate; sterse draft_M*/diff_*.patch si propuneri_ergonomie_import.md (implementat; M5 - totaluri per document - mutat in todo.txt, restul in istoricul git). - todo.txt: punct nou M5; scos punctul obsolet cu persistenta bifei "Coloane avansate" (bifa a fost eliminata). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -45,7 +45,7 @@ For `.vcx`/`.scx`, code edits no longer require the VFP IDE — the flow is now:
|
|||||||
3. Review the diff on the text file like any other source change.
|
3. Review the diff on the text file like any other source change.
|
||||||
4. Write back with `txt2vcx.ps1` (`D:\ROA\UTIL\foxbin2prg\txt2vcx.ps1 -TextFile <path\to\file.vc2> -ProjectRoot 'D:\ROA\ROAGEST' -CacheRoot 'D:\ROA\_vfp_textcache\roagest'`) — it regenerates and recompiles the binary in a staging folder, fidelity-checks it against the edited text, then copies it into the project only if that check passes.
|
4. Write back with `txt2vcx.ps1` (`D:\ROA\UTIL\foxbin2prg\txt2vcx.ps1 -TextFile <path\to\file.vc2> -ProjectRoot 'D:\ROA\ROAGEST' -CacheRoot 'D:\ROA\_vfp_textcache\roagest'`) — it regenerates and recompiles the binary in a staging folder, fidelity-checks it against the edited text, then copies it into the project only if that check passes.
|
||||||
|
|
||||||
`.mnx`/`.frx` stay **read-only** in this flow (menus still need GENMENU in the IDE; reports are too fragile to round-trip) — edit those in the VFP IDE as before. Targets under `COMUN\` need `-AllowComun` plus explicit approval, since a change there affects every ROA app. See `D:\ROA\UTIL\foxbin2prg\CLAUDE.md` for full details and `docs/flux-editare-vfp-text.md` for the ROAGEST-specific notes.
|
`.mnx`/`.frx` stay **read-only** in this flow (menus still need GENMENU in the IDE; reports are too fragile to round-trip) — edit those in the VFP IDE as before. Targets under `COMUN\` need `-AllowComun` plus explicit approval, since a change there affects every ROA app. See `D:\ROA\UTIL\foxbin2prg\CLAUDE.md` for full details, `COMUN\docs\flux-editare-vfp-text.md` for the shared per-round workflow (baseline backups, review patches, fidelity check), and `docs/flux-editare-vfp-text.md` for the ROAGEST-specific parameters.
|
||||||
|
|
||||||
## The COMUN shared framework
|
## The COMUN shared framework
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,16 @@
|
|||||||
<!--
|
<!--
|
||||||
|
15/07/2026
|
||||||
|
ROAGEST - 2.11.7
|
||||||
|
|
||||||
|
:nou:
|
||||||
|
Marfa > Achizitie import. Nota contabila porneste goala, iar facturile (principala, transport/taxe, DVI) se adauga prin formularul "Adauga factura": conturile si explicatia TVA propuse din sablon, curs propus, memorie DVI, validari; randurile raman editabile in grila.
|
||||||
|
Randurile notei sunt colorate pe documente (coloana "Doc"), coloanele au fost reordonate, iar cele rar folosite sunt afisate la sfarsitul grilei.
|
||||||
|
Valuta si cursul se inregistreaza per document: o factura in alta valuta decat cea principala ajunge in registrul jurnal cu valuta si cursul ei. Coloane noi "Valuta" si "Curs" in grila, editabile, cu oferta de recalculare a sumelor in lei la schimbarea cursului.
|
||||||
|
|
||||||
|
:modificare:
|
||||||
|
Marfa > Achizitie import. Butonul "Termin" al notei a devenit "Urmator" (fluxul continua cu articolele si verificarea); indicator de pas "1.Nota > 2.Articole > 3.Verificare".
|
||||||
|
-->
|
||||||
|
<!--
|
||||||
09/07/2026
|
09/07/2026
|
||||||
ROAGEST - 2.11.6
|
ROAGEST - 2.11.6
|
||||||
|
|
||||||
|
|||||||
@@ -2,20 +2,16 @@
|
|||||||
|
|
||||||
## Modificare cod VFP binar (.vcx/.scx) — flux write-back pe text
|
## Modificare cod VFP binar (.vcx/.scx) — flux write-back pe text
|
||||||
|
|
||||||
Din 07.2026 Claude aplică singur modificările pe `.vcx`/`.scx` prin fluxul text→bin
|
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`):
|
Pașii per rundă (refresh cache, baseline `.pre_runda<N>.bak`, editare byte-safe CP1252,
|
||||||
|
patch de review, write-back cu fidelity-check) + capcanele: **`COMUN\docs\flux-editare-vfp-text.md`**;
|
||||||
|
parametrii ROAGEST: `docs/flux-editare-vfp-text.md`.
|
||||||
|
|
||||||
1. Claude investighează pe cache-ul text (`D:\ROA\_vfp_textcache\roagest`), propune modificarea
|
1. Claude investighează pe cache-ul text, propune modificarea și **așteaptă acordul lui Marius
|
||||||
și **așteaptă acordul lui Marius pe abordare** înainte să editeze.
|
pe abordare** înainte să editeze.
|
||||||
2. Refresh cache (`vcx2txt.ps1`), editare `.vc2`/`.sc2` **byte-safe** (PowerShell, encoding 1252,
|
2. **Commit doar după ce Marius confirmă pe diff și testează în IDE.** Editările de volum se
|
||||||
conținut nou doar ASCII — nu Edit tool pe .vc2), apoi write-back cu `txt2vcx.ps1`
|
deleagă la subagenți Sonnet în background; sesiunea principală orchestrează și verifică.
|
||||||
(fidelity-check obligatoriu; țintele din `COMUN\` cer `-AllowComun` + aprobare explicită,
|
3. După implementare: changelog, ștergerea fișierului de propunere/patch-ului, iar insight-urile
|
||||||
ș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`.
|
durabile se mută în notițe `docs/flux-*.md` / `docs/pachet-*.md`.
|
||||||
|
|
||||||
Excepții rămase pe VFP IDE: `.mnx` (GENMENU) și `.frx` (fragile la round-trip) — pentru ele
|
Excepții rămase pe VFP IDE: `.mnx` (GENMENU) și `.frx` (fragile la round-trip) — pentru ele
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ Notite concise despre structura interna a proiectului (fluxuri, pachete, tabele)
|
|||||||
|
|
||||||
- [CLAUDE.md](CLAUDE.md) — modul de lucru Claude ↔ Marius (propuneri de cod pentru VFP IDE, acces Oracle direct).
|
- [CLAUDE.md](CLAUDE.md) — modul de lucru Claude ↔ Marius (propuneri de cod pentru VFP IDE, acces Oracle direct).
|
||||||
- [flux-achizitie-import.md](flux-achizitie-import.md) — lantul achizitie import: gestiuni.vcx → achizitie_import → import_nota → import_nir → PACK_CONTAFIN; capcane (ptva bruta vs proc_tva, import_nota_original mort, 4427/401).
|
- [flux-achizitie-import.md](flux-achizitie-import.md) — lantul achizitie import: gestiuni.vcx → achizitie_import → import_nota → import_nir → PACK_CONTAFIN; capcane (ptva bruta vs proc_tva, import_nota_original mort, 4427/401).
|
||||||
- [flux-editare-vfp-text.md](flux-editare-vfp-text.md) — editare directa pe cache-ul text (.vc2/.sc2) cu write-back prin txt2vcx.ps1, in loc de VFP IDE; limite (.mnx/.frx read-only, COMUN cu aprobare, staleness dupa sesiuni IDE).
|
- [flux-editare-vfp-text.md](flux-editare-vfp-text.md) — parametri ROAGEST pentru editarea pe cache text; fluxul comun (pasi per runda, capcane) e in `COMUN\docs\flux-editare-vfp-text.md`.
|
||||||
- [propuneri_achizitie_import.md](propuneri_achizitie_import.md) — *temporar*: modificarile propuse (cu cod) pentru sesizarea achizitie import; se sterge dupa implementare.
|
- [testare-vfp-mcp.md](testare-vfp-mcp.md) — testare vizuala automata: lansare `vfp9.exe DO roagest.prg` (fara rebuild) + interactiune prin `windows-mcp`; capcana focus furat de terminal.
|
||||||
- `local/` — notite neversionate (credentiale Oracle etc., in .gitignore).
|
- `local/` — notite neversionate (credentiale Oracle etc., in .gitignore).
|
||||||
|
|
||||||
Vezi si `COMUN\docs\oracle_export.md` (export surse PL/SQL, PACK_CONTAFIN.pck).
|
Vezi si `COMUN\docs\oracle_export.md` (export surse PL/SQL, PACK_CONTAFIN.pck).
|
||||||
|
|||||||
@@ -53,3 +53,48 @@ Lanțul complet (descoperit la sesizarea „achiziție import", 07.2026):
|
|||||||
de TVA se face prin SEEK în cursorul `cJtvaCol4427`.
|
de TVA se face prin SEEK în cursorul `cJtvaCol4427`.
|
||||||
|
|
||||||
Căutarea generică: `cauta_alfa()` (`COMUN\programe\cauta_alfa.prg`) → forma `cauta_alfa_form_plus`.
|
Căutarea generică: `cauta_alfa()` (`COMUN\programe\cauta_alfa.prg`) → forma `cauta_alfa_form_plus`.
|
||||||
|
|
||||||
|
## Structura reală a șablonului `vnote_contabile` (verificat 11.07.2026)
|
||||||
|
|
||||||
|
Cursorul `introdc` NU pornește cu „2 linii" — se încarcă cu **toate** perechile-șablon din
|
||||||
|
`vnote_contabile` pentru `id_set`. Numărul de linii pe baza de dev (`MARIUSM_AUTO`):
|
||||||
|
**208 = 10 linii, 209 = 10, 220 = 10, 221 = 6**. Cele 10 linii ale setului de import (208) =
|
||||||
|
**5 perechi pre-alocate (bază+TVA) = 5 sloturi de document**:
|
||||||
|
|
||||||
|
| Pereche (ordine) | SCD/SCC bază | SCD/SCC TVA | Ce e |
|
||||||
|
|---|---|---|---|
|
||||||
|
| 1 (1-2) | 3028/401 | 4426/4427 | marfă CE 21% + TVA |
|
||||||
|
| 2 (3-4) | 3028/401 | 4426/4427 | slot repetat (gol) |
|
||||||
|
| 3 (5-6) | 3028/401 | 4426/4427 | slot repetat (gol) |
|
||||||
|
| 4 (7-8) | 3028/446 | 4426/446 | vamă/DVI (pe dev) |
|
||||||
|
| 5 (9-10) | 3028/446 | 4426/446 | slot repetat (gol) |
|
||||||
|
|
||||||
|
Model CONT2000: în loc să adaugi rânduri, ai **sloturi goale pre-alocate** pe care le completezi.
|
||||||
|
Factura principală = perechea 1 (2 linii); restul sunt sloturi pentru facturi suplimentare (3 marfă)
|
||||||
|
+ DVI (2). Un „document" = o pereche cu date.
|
||||||
|
|
||||||
|
**Corecție importantă (Marius, verificat pe bază reală de producție):** conturile 446 din setul 208
|
||||||
|
de pe dev **NU sunt reprezentative**. În realitate și DVI-ul vamă folosește **4426 = 401** (nu 446).
|
||||||
|
`vnote_contabile` e **configurabil per firmă**, deci șablonul variază — nu hardcoda conturile, ci
|
||||||
|
clonează perechea-șablon reală a setului. Practic: **un singur pattern de conturi** (bază 3028/401 +
|
||||||
|
TVA 4426/4427 sau 4426/401) acoperă și marfă, și DVI (DVI diferă doar prin partener/unde e plătit
|
||||||
|
TVA, nu prin conturi).
|
||||||
|
|
||||||
|
## DECIZIE 11.07.2026 — pivot la „Direcția A" (rescriere flux introducere)
|
||||||
|
|
||||||
|
Marius a decis să se **abandoneze modelul cu 10 sloturi pre-alocate**. Noul model (de implementat
|
||||||
|
într-o sesiune viitoare, e scop **M2**, mai mare decât runda 1 M1/M3/M6):
|
||||||
|
|
||||||
|
1. **`achizitie_import`**: `introdc` pornește **gol** (0 rânduri de document); se păstrează perechea-
|
||||||
|
șablon (bază+TVA, cu conturile reale din `vnote_contabile` ale setului) ca **sursă de clonare**.
|
||||||
|
Nu se mai încarcă cele 10 sloturi.
|
||||||
|
2. **Buton „Adaugă factură" + dialog (M2)**: clonează perechea-șablon, o completează cu datele
|
||||||
|
facturii, o adaugă în `introdc`. Se folosește **și pentru factura principală**, și pentru DVI
|
||||||
|
(radio-ul furnizor/DVI/fără schimbă doar partenerul/unde e plătit TVA, nu conturile).
|
||||||
|
3. **M1 (culori)**: rămâne cum e — fiecare factură adăugată = o pereche = un document = o culoare
|
||||||
|
(F1, F2, …), incremental, cheie `serie+nr+id_fdoc`. Codul M1 deja aplicat merge neschimbat pe
|
||||||
|
acest model.
|
||||||
|
|
||||||
|
Avertismente: atinge `COMUN` (blast radius: 22 `.pjx` referă `ointroduceri`) și **schimbă
|
||||||
|
comportamentul pentru toți userii de import** (nu mai văd sloturi pre-completate) — testare atentă,
|
||||||
|
dare în funcțiune deliberată.
|
||||||
|
|||||||
@@ -1,47 +1,13 @@
|
|||||||
# Flux editare directă pe text pentru `.vcx`/`.scx`
|
# Editare .vcx/.scx pe text — parametri ROAGEST
|
||||||
|
|
||||||
Pe lângă căutare (`vcx2txt.ps1`), cache-ul text din `D:\ROA\_vfp_textcache\roagest\` poate fi acum
|
Fluxul comun (pasi, capcane): `COMUN\docs\flux-editare-vfp-text.md`. Specific ROAGEST:
|
||||||
și **sursă de editare** pentru `.vcx`/`.scx`, scriind înapoi în binar cu `txt2vcx.ps1` — fără trecere
|
|
||||||
prin VFP IDE. Detalii complete (guard-uri, ordinea pașilor, teste) în
|
|
||||||
`D:\ROA\UTIL\foxbin2prg\CLAUDE.md`; aici doar partea relevantă pentru ROAGEST.
|
|
||||||
|
|
||||||
## Pașii
|
- `vcx2txt.ps1/txt2vcx.ps1 -Project 'D:\ROA\ROAGEST\roagest.pjx' -ProjectRoot 'D:\ROA\ROAGEST'
|
||||||
|
-CacheRoot 'D:\ROA\_vfp_textcache\roagest'`
|
||||||
1. Refresh cache (obligatoriu dacă a rulat vreo sesiune de IDE de la ultimul refresh — altfel
|
- procese de verificat inainte de write-back: `vfp9`, `roagest`
|
||||||
verificarea de staleness din `txt2vcx.ps1` refuză scrierea):
|
- patch-uri de review: `docs/diff_runda<N>_<subiect>.patch`
|
||||||
|
- capcana `*m:` patita aici pe `import_adauga_factura.recalc_tva` (07.2026)
|
||||||
```powershell
|
- de ce nu se foloseste *Project > Build*: recompileaza toate `.vcx`/`.vct` din proiect (nu doar
|
||||||
& 'D:\ROA\UTIL\foxbin2prg\vcx2txt.ps1' -Project 'D:\ROA\ROAGEST\roagest.pjx' -ProjectRoot 'D:\ROA\ROAGEST' -CacheRoot 'D:\ROA\_vfp_textcache\roagest' -Types vcx,scx,frx,mnx
|
`.fxp`-urile, ignorate oricum de git/svn) — antetul (timestamp compilare) si posibil p-code-ul
|
||||||
```
|
intern se rescriu si la librarii neatinse efectiv, aparand fals ca "modificate" in diff; de aici
|
||||||
|
fluxul text->bin punctual pe binarul vizat (07.2026)
|
||||||
2. Editează `.vc2`/`.sc2` direct în `D:\ROA\_vfp_textcache\roagest\`. Formatul e
|
|
||||||
**position-sensitive** (nu reformata/reflow liniile) și proprietățile sunt **alfabetizate** (o
|
|
||||||
proprietate nouă se inserează la locul ei alfabetic, nu la sfârșit).
|
|
||||||
3. Revizuiește diff-ul pe fișierul text ca pe orice altă modificare de cod.
|
|
||||||
4. Scrie înapoi în proiect:
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
& 'D:\ROA\UTIL\foxbin2prg\txt2vcx.ps1' -TextFile 'D:\ROA\_vfp_textcache\roagest\Clase\oavize.vc2' -ProjectRoot 'D:\ROA\ROAGEST' -CacheRoot 'D:\ROA\_vfp_textcache\roagest'
|
|
||||||
```
|
|
||||||
|
|
||||||
Regenerează și compilează binarul într-un folder de staging, verifică fidelitatea (roundtrip
|
|
||||||
text→bin→text byte-identic) și abia apoi copiază `.vct`+`.vcx` (sau `.sct`+`.scx`) peste
|
|
||||||
binarele din proiect. Dacă orice pas eșuează, proiectul și cache-ul rămân neatinse.
|
|
||||||
|
|
||||||
## Limite
|
|
||||||
|
|
||||||
- `.mnx`/`.frx` rămân **doar pentru citire** — meniurile tot au nevoie de GENMENU în IDE ca să
|
|
||||||
regenereze `.mpr`, iar formatul `.frx` e prea fragil pentru round-trip. Editează-le în VFP IDE ca
|
|
||||||
până acum.
|
|
||||||
- Ținte sub `COMUN\` necesită `-AllowComun` **și** aprobare explicită — o modificare acolo afectează
|
|
||||||
toate aplicațiile ROA, nu doar ROAGEST.
|
|
||||||
- **După orice sesiune de IDE** rulează `vcx2txt.ps1` înainte de a edita text — staleness-ul se
|
|
||||||
verifică pe baza `mtime`, iar o sesiune de IDE (chiar și una care doar a deschis o clasă) poate
|
|
||||||
lăsa cache-ul în urmă față de binar.
|
|
||||||
- Fără backup-uri `.bak` lângă binarele din proiect — git e mecanismul de restore; scriptul ține o
|
|
||||||
copie de siguranță doar în folderul temp al rulării.
|
|
||||||
- **Liniile goale din interiorul metodelor nu sunt goale** în formatul `.vc2` — foxbin2prg le
|
|
||||||
regenerează cu indentarea curentă (ex. două TAB-uri într-un `PROCEDURE` de clasă). Dacă editarea
|
|
||||||
introduce linii complet goale, fidelity check-ul pică doar pe whitespace; fix: preia fișierul
|
|
||||||
`verify\*.vc2` din staging-ul păstrat la eșec (e forma canonică, semantic identică) peste cache
|
|
||||||
și reia write-back-ul.
|
|
||||||
|
|||||||
37
docs/testare-vfp-mcp.md
Normal file
37
docs/testare-vfp-mcp.md
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
# Testare automata ROAGEST prin VFP IDE + MCP (windows-mcp)
|
||||||
|
|
||||||
|
Pentru verificare vizuala dupa modificari pe `.vc2`/`.sc2`, nu se porneste `roagest.exe`
|
||||||
|
(ar cere rebuild complet — vezi `flux-editare-vfp-text.md`), ci se lanseaza `vfp9.exe`
|
||||||
|
interpretat peste `Programe\roagest.prg`:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
Start-Process -FilePath "C:\Program Files (x86)\Microsoft Visual FoxPro 9\vfp9.exe" `
|
||||||
|
-ArgumentList '-c"D:\ROA\ROAGEST\config.fpw"','D:\ROA\ROAGEST\Programe\roagest.prg' `
|
||||||
|
-WorkingDirectory "D:\ROA\ROAGEST"
|
||||||
|
```
|
||||||
|
|
||||||
|
- Gate-ul de pornire (`gcNumeProgram = 'ROAGEST'` in `roagest.prg`) verifica
|
||||||
|
`JUSTSTEM(SYS(16,0))` — numele programului de la nivelul 0 al stivei, nu numele
|
||||||
|
procesului `.exe`. Rulat interpretat, `SYS(16,0)` = `roagest.prg`, deci gate-ul trece.
|
||||||
|
- Fereastra rezultata are titlul `ROA - Gestiuni` (setat din `NUMEPROGRAM`).
|
||||||
|
|
||||||
|
## Capcana: focus furat de terminal
|
||||||
|
|
||||||
|
Daca sesiunea Claude Code afiseaza output in timp ce comanda de lansare ruleaza,
|
||||||
|
fereastra terminalului/IDE-ului ramane in prim-plan si VFP porneste in fundal —
|
||||||
|
`Screenshot`/`Snapshot` din `windows-mcp` pot raporta "No windows found" desi procesul
|
||||||
|
si fereastra exista (verificabil cu `Get-Process vfp9 | Select MainWindowTitle`).
|
||||||
|
|
||||||
|
Fix: inainte de screenshot, adu explicit fereastra in prim-plan dupa titlu:
|
||||||
|
|
||||||
|
```
|
||||||
|
mcp__windows-mcp__App mode=switch name="ROA - Gestiuni"
|
||||||
|
```
|
||||||
|
|
||||||
|
apoi `Screenshot`. Nu te baza pe enumerarea implicita de ferestre a `windows-mcp` cand
|
||||||
|
ai lansat procesul chiar in runda curenta de comenzi.
|
||||||
|
|
||||||
|
## Curatare dupa test
|
||||||
|
|
||||||
|
Proces de omorat la final: `mcp__windows-mcp__Process mode=kill pid=<pid>` (gasit prin
|
||||||
|
`mode=list name=vfp9` sau `Get-Process vfp9`).
|
||||||
7
todo.txt
7
todo.txt
@@ -29,4 +29,9 @@ INVENTAR MAGAZIN NOU
|
|||||||
raport de gestiune - documentele importate intr-un inventar emise dupa inceperea inventarului sa apara inaintea inventarului
|
raport de gestiune - documentele importate intr-un inventar emise dupa inceperea inventarului sa apara inaintea inventarului
|
||||||
|
|
||||||
faza 2 write-back VFP: .mnx (cu pas GENMENU documentat) si .frx dupa ce testul de fidelitate le dovedeste stabile - excluse azi din txt2vcx.ps1
|
faza 2 write-back VFP: .mnx (cu pas GENMENU documentat) si .frx dupa ce testul de fidelitate le dovedeste stabile - excluse azi din txt2vcx.ps1
|
||||||
migrare text-as-source-of-truth in git (FoxBin2Prg workflow upstream) - de rediscutat cand SVN se retrage pentru COMUN
|
migrare text-as-source-of-truth in git (FoxBin2Prg workflow upstream) - de rediscutat cand SVN se retrage pentru COMUN
|
||||||
|
--- amanate din review /autoplan ergonomie import (10.07.2026) ---
|
||||||
|
dialog "Adauga factura": mod editare ("Modifica factura..." - dublu-click pe pereche, dialog precompletat) - dupa feedback de la utilizatori
|
||||||
|
linia de totaluri per document sub grila import_nota (M5 din propuneri_ergonomie_import.md - vezi istoricul git; semafor echilibru lei<->valuta si TVA=baza x cota)
|
||||||
|
preluare automata antet factura din e-Factura/XLS in dialogul de import (do_adauga_factura(toDlg) e deja populabil programatic)
|
||||||
|
persistenta draft la crash intre nota si articole (re-intrarea e tratata; draft-ul e alt proiect)
|
||||||
|
|||||||
Reference in New Issue
Block a user