#6 editare factura emisa: S5 - scrierea sumelor editate in Oracle
La salvarea unei facturi deja emise, modificarile facute liniilor de articole se scriu acum real in VANZARI_DETALII, in aceeasi tranzactie cu restul salvarii, si totalurile documentului se recalculeaza din liniile efectiv salvate. - ofacturare_editare.prg: helper nou ScrieArticoleFacturaEditate. Idiomul e "marcheaza tot sters, invie ce ramane", nu delta, pentru ca actualizeaza_vanzari face UPDATE ... SET STERS = 0 pe tot documentul, fara garda; o scriere delta ar lasa liniile sterse sa reinvie la fiecare salvare. Cursor gol = no-op, ca o eroare la incarcare sa nu goleasca factura. - comun.vc2, ofacturare_comun.vc2: agatarea apelului dupa finalizeaza_modificare_nota si inainte de inchiderea tranzactiei, in ambele puncte de intrare. - omodificari.vc2: coloana Pret achizitie in grid, editabila doar pe liniile noi; liniile de set devin needitabile, cu marcaj; cinci validari la salvare. - teste: cinci suite noi (validari, grid UI, scriere reala, discount/valuta, rollback, al doilea punct de intrare) si asteptari actualizate in test_page3_articole. - docs: oracle_export.md - exportul all_source cere linesize 32767, altfel rupe liniile lungi prin mijlocul identificatorilor; scripturi-migrare-db.md - UpdateVersiune adauga singur extensia .sql. Cere scripturile ff_2026_08_09_01 (PACK_FACTURARE) si ff_2026_08_09_02 (VVANZARI_ARTICOLE). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SN8snvkk94KuhWwoXUUey3
This commit is contained in:
@@ -355,11 +355,15 @@ PROCEDURE verifica_editare_grid
|
||||
loForm.Show()
|
||||
|
||||
loGrid = loForm.pgfArticole.Page3.grdArticoleFactura
|
||||
llStructuraOk = (loGrid.ColumnCount == 14) AND ;
|
||||
(Type('tvd.lmodificat') == 'L') AND (Type('tvd.valoare') == 'N')
|
||||
*!* S5: coloana noua Column7=pret_achizitie (dupa Column6=pret), Column8..15 = restul, deplasate cu 1;
|
||||
*!* pret_achizitie e editabila la nivel de coloana (gating-ul e mutat in When, per rand - decizia S5.C)
|
||||
llStructuraOk = (loGrid.ColumnCount == 15) AND ;
|
||||
(Type('tvd.lmodificat') == 'L') AND (Type('tvd.valoare') == 'N') AND ;
|
||||
(Type('tvd.pret_achizitie') == 'N') AND (Type('tvd.id_vanzare_set') == 'N')
|
||||
llReadOnlyOk = (loGrid.Column5.ReadOnly == .F.) AND (loGrid.Column6.ReadOnly == .F.) AND ;
|
||||
(loGrid.Column7.ReadOnly == .F.) AND (Pemstatus(loGrid.Column7, '_checkbox1', 5)) AND ;
|
||||
(loGrid.Column1.ReadOnly == .T.) AND (loGrid.Column14.ReadOnly == .T.)
|
||||
(loGrid.Column7.ReadOnly == .F.) AND (loGrid.Column8.ReadOnly == .F.) AND ;
|
||||
(Pemstatus(loGrid.Column8, '_checkbox1', 5)) AND ;
|
||||
(loGrid.Column1.ReadOnly == .T.) AND (loGrid.Column15.ReadOnly == .T.)
|
||||
|
||||
IF Reccount('tvd') > 0
|
||||
Go Top In tvd
|
||||
@@ -379,8 +383,8 @@ PROCEDURE verifica_editare_grid
|
||||
ENDIF
|
||||
|
||||
STRTOFILE('--- S4 runda 3A, editare grid, cod=' + TRANSFORM(tnCod) + ' ---' + CHR(13) + CHR(10) + ;
|
||||
' structura grid/cursor (ColumnCount=14, lmodificat L, valoare N) = ' + IIF(llStructuraOk, 'PASS', 'FAIL') + CHR(13) + CHR(10) + ;
|
||||
' ReadOnly (cantitate/pret/pret_cu_tva editabile, checkbox pe pret_cu_tva, restul readonly) = ' + IIF(llReadOnlyOk, 'PASS', 'FAIL') + CHR(13) + CHR(10) + ;
|
||||
' structura grid/cursor (ColumnCount=15, lmodificat L, valoare N, pret_achizitie N, id_vanzare_set N) = ' + IIF(llStructuraOk, 'PASS', 'FAIL') + CHR(13) + CHR(10) + ;
|
||||
' ReadOnly (cantitate/pret/pret_achizitie editabile, checkbox pe pret_cu_tva, restul readonly) = ' + IIF(llReadOnlyOk, 'PASS', 'FAIL') + CHR(13) + CHR(10) + ;
|
||||
' stare initiala (lmodificat=.F., valoare calculata corect) = ' + IIF(llInitOk, 'PASS', 'FAIL') + CHR(13) + CHR(10) + ;
|
||||
' dupa editare cantitate (lmodificat=.T., valoare recalculata) = ' + IIF(llDupaEditareOk, 'PASS', 'FAIL') + CHR(13) + CHR(10), tcLog, 1)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user