#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:
2026-08-10 01:37:12 +03:00
parent b9eba29ebe
commit 1c42ae0af4
13 changed files with 3408 additions and 60 deletions

View File

@@ -2488,6 +2488,9 @@ DEFINE CLASS afisjurcom AS _frmbase OF "_frm_base.vcx"
ALLTRIM(Str(lnCod)) + [,] + Alltrim(Str(lnIdFact)) + [,] + Alltrim(Str(lnIdfactd)) + [,?gnIdUtil); end;]
lnSucces = Iif(goExecutor.oExecuta(lcSql),1,-1)
Endif
If lnSucces > 0 And "OFACTURARE_EDITARE" $ Upper(Set("Procedure")) And Used('tvanz') And Reccount('tvanz') = 1
lnSucces = Iif(ScrieArticoleFacturaEditate(tvanz.id_vanzare), 1, -1)
Endif
*!* IF lnSucces > 0 AND llGestInvantar && nota de inventariere : update dataOra_validat cu dataora modificarii notei contabile
*!* lcSql = [update ] + gcs + [.gest_inventar set dataora_validat = pack_contafin.GET_DATAORA() where dataora_validat = ?pdDataOra and an = ?pnAn and luna = ?pnLuna]
*!* lnSucces = goExecutor.oExecute(lcSql)

View File

@@ -3825,6 +3825,9 @@ DEFINE CLASS frm_facturi AS _frmbase OF "_frm_base.vcx"
Alltrim(Str(lnCod)) + [,] + Alltrim(Str(lnIdFact)) + [,] + Alltrim(Str(lnIdFactD)) + [,?gnIdUtil); end;]
lnSucces = Iif(goExecutor.oExecuta(lcSql),1,-1)
Endif
If lnSucces > 0 And "OFACTURARE_EDITARE" $ Upper(Set("Procedure")) And Used('tvanz') And Reccount('tvanz') = 1
lnSucces = Iif(ScrieArticoleFacturaEditate(tvanz.id_vanzare), 1, -1)
Endif
If Thisform.do_inchide_tranzactie(Iif(lnSucces<0,2,1))
If lnSucces > 0
Thisform.do_cauta()

View File

@@ -6641,6 +6641,8 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
*< OBJECTDATA: ObjPath="pgfArticole.PAGE3.grdArticoleFactura.cCantitateArt.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="pgfArticole.PAGE3.grdArticoleFactura.cPretArt.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="pgfArticole.PAGE3.grdArticoleFactura.cPretArt.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="pgfArticole.PAGE3.grdArticoleFactura.cPretAchizitieArt.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="pgfArticole.PAGE3.grdArticoleFactura.cPretAchizitieArt.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="pgfArticole.PAGE3.grdArticoleFactura.cPretCuTvaArt.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="pgfArticole.PAGE3.grdArticoleFactura.cPretCuTvaArt._checkbox1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="pgfArticole.PAGE3.grdArticoleFactura.cProcTvavArt.Header1" UniqueID="" Timestamp="" />
@@ -12317,7 +12319,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
ADD OBJECT 'pgfArticole.PAGE3.grdArticoleFactura' AS _grdrow WITH ;
Anchor = 15, ;
ColumnCount = 14, ;
ColumnCount = 15, ;
DeleteMark = .F., ;
FontSize = 10, ;
GridLineColor = 128,128,128, ;
@@ -12336,35 +12338,35 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
Width = 759, ;
ZOrderSet = 1, ;
Column1.ControlSource = "tvd.denumire", ;
Column1.DynamicForeColor = "IIF(tvd.sters=1,RGB(150,150,150),RGB(0,0,0))", ;
Column1.DynamicForeColor = "IIF(tvd.sters=1,RGB(150,150,150),IIF(NVL(tvd.id_vanzare_set,0)<>0,RGB(0,70,153),RGB(0,0,0)))", ;
Column1.FontName = "Arial", ;
Column1.FontSize = 10, ;
Column1.Name = "cDenumireArt", ;
Column1.ReadOnly = .T., ;
Column1.Width = 170, ;
Column2.ControlSource = "tvd.codmat", ;
Column2.DynamicForeColor = "IIF(tvd.sters=1,RGB(150,150,150),RGB(0,0,0))", ;
Column2.DynamicForeColor = "IIF(tvd.sters=1,RGB(150,150,150),IIF(NVL(tvd.id_vanzare_set,0)<>0,RGB(0,70,153),RGB(0,0,0)))", ;
Column2.FontName = "Arial", ;
Column2.FontSize = 10, ;
Column2.Name = "cCodmatArt", ;
Column2.ReadOnly = .T., ;
Column2.Width = 90, ;
Column3.ControlSource = "tvd.serie", ;
Column3.DynamicForeColor = "IIF(tvd.sters=1,RGB(150,150,150),RGB(0,0,0))", ;
Column3.DynamicForeColor = "IIF(tvd.sters=1,RGB(150,150,150),IIF(NVL(tvd.id_vanzare_set,0)<>0,RGB(0,70,153),RGB(0,0,0)))", ;
Column3.FontName = "Arial", ;
Column3.FontSize = 10, ;
Column3.Name = "cSerieArt", ;
Column3.ReadOnly = .T., ;
Column3.Width = 70, ;
Column4.ControlSource = "tvd.lot", ;
Column4.DynamicForeColor = "IIF(tvd.sters=1,RGB(150,150,150),RGB(0,0,0))", ;
Column4.DynamicForeColor = "IIF(tvd.sters=1,RGB(150,150,150),IIF(NVL(tvd.id_vanzare_set,0)<>0,RGB(0,70,153),RGB(0,0,0)))", ;
Column4.FontName = "Arial", ;
Column4.FontSize = 10, ;
Column4.Name = "cLotArt", ;
Column4.ReadOnly = .T., ;
Column4.Width = 60, ;
Column5.ControlSource = "tvd.cantitate", ;
Column5.DynamicForeColor = "IIF(tvd.sters=1,RGB(150,150,150),RGB(0,0,0))", ;
Column5.DynamicForeColor = "IIF(tvd.sters=1,RGB(150,150,150),IIF(NVL(tvd.id_vanzare_set,0)<>0,RGB(0,70,153),RGB(0,0,0)))", ;
Column5.FontName = "Arial", ;
Column5.FontSize = 10, ;
Column5.Format = "R", ;
@@ -12373,7 +12375,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
Column5.ReadOnly = .F., ;
Column5.Width = 70, ;
Column6.ControlSource = "tvd.pret", ;
Column6.DynamicForeColor = "IIF(tvd.sters=1,RGB(150,150,150),RGB(0,0,0))", ;
Column6.DynamicForeColor = "IIF(tvd.sters=1,RGB(150,150,150),IIF(NVL(tvd.id_vanzare_set,0)<>0,RGB(0,70,153),RGB(0,0,0)))", ;
Column6.FontName = "Arial", ;
Column6.FontSize = 10, ;
Column6.Format = "R", ;
@@ -12381,69 +12383,78 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
Column6.Name = "cPretArt", ;
Column6.ReadOnly = .F., ;
Column6.Width = 70, ;
Column7.ControlSource = "tvd.pret_cu_tva", ;
Column7.DynamicForeColor = "IIF(tvd.sters=1,RGB(150,150,150),RGB(0,0,0))", ;
Column7.ControlSource = "tvd.pret_achizitie", ;
Column7.DynamicForeColor = "IIF(tvd.sters=1,RGB(150,150,150),IIF(NVL(tvd.id_vanzare_set,0)<>0,RGB(0,70,153),RGB(0,0,0)))", ;
Column7.FontName = "Arial", ;
Column7.FontSize = 10, ;
Column7.Name = "cPretCuTvaArt", ;
Column7.Format = "R", ;
Column7.InputMask = (get_mask(12,gnPPRET)), ;
Column7.Name = "cPretAchizitieArt", ;
Column7.ReadOnly = .F., ;
Column7.Sparse = .F., ;
Column7.Width = 80, ;
Column8.ControlSource = "tvd.proc_tvav", ;
Column8.DynamicForeColor = "IIF(tvd.sters=1,RGB(150,150,150),RGB(0,0,0))", ;
Column7.Width = 90, ;
Column8.ControlSource = "tvd.pret_cu_tva", ;
Column8.DynamicForeColor = "IIF(tvd.sters=1,RGB(150,150,150),IIF(NVL(tvd.id_vanzare_set,0)<>0,RGB(0,70,153),RGB(0,0,0)))", ;
Column8.FontName = "Arial", ;
Column8.FontSize = 10, ;
Column8.Format = "R", ;
Column8.InputMask = "9.99", ;
Column8.Name = "cProcTvavArt", ;
Column8.ReadOnly = .T., ;
Column8.Width = 55, ;
Column9.ControlSource = "tvd.discount_unitar", ;
Column9.DynamicForeColor = "IIF(tvd.sters=1,RGB(150,150,150),RGB(0,0,0))", ;
Column8.Name = "cPretCuTvaArt", ;
Column8.ReadOnly = .F., ;
Column8.Sparse = .F., ;
Column8.Width = 80, ;
Column9.ControlSource = "tvd.proc_tvav", ;
Column9.DynamicForeColor = "IIF(tvd.sters=1,RGB(150,150,150),IIF(NVL(tvd.id_vanzare_set,0)<>0,RGB(0,70,153),RGB(0,0,0)))", ;
Column9.FontName = "Arial", ;
Column9.FontSize = 10, ;
Column9.Format = "R", ;
Column9.InputMask = (get_mask(12,gnPPRET)), ;
Column9.Name = "cDiscountUnitarArt", ;
Column9.InputMask = "9.99", ;
Column9.Name = "cProcTvavArt", ;
Column9.ReadOnly = .T., ;
Column9.Width = 90, ;
Column10.ControlSource = "tvd.nume_gestiune", ;
Column10.DynamicForeColor = "IIF(tvd.sters=1,RGB(150,150,150),RGB(0,0,0))", ;
Column9.Width = 55, ;
Column10.ControlSource = "tvd.discount_unitar", ;
Column10.DynamicForeColor = "IIF(tvd.sters=1,RGB(150,150,150),IIF(NVL(tvd.id_vanzare_set,0)<>0,RGB(0,70,153),RGB(0,0,0)))", ;
Column10.FontName = "Arial", ;
Column10.FontSize = 10, ;
Column10.Name = "cGestiuneArt", ;
Column10.Format = "R", ;
Column10.InputMask = (get_mask(12,gnPPRET)), ;
Column10.Name = "cDiscountUnitarArt", ;
Column10.ReadOnly = .T., ;
Column10.Width = 90, ;
Column11.ControlSource = "tvd.nume_val", ;
Column11.DynamicForeColor = "IIF(tvd.sters=1,RGB(150,150,150),RGB(0,0,0))", ;
Column11.ControlSource = "tvd.nume_gestiune", ;
Column11.DynamicForeColor = "IIF(tvd.sters=1,RGB(150,150,150),IIF(NVL(tvd.id_vanzare_set,0)<>0,RGB(0,70,153),RGB(0,0,0)))", ;
Column11.FontName = "Arial", ;
Column11.FontSize = 10, ;
Column11.Name = "cValutaArt", ;
Column11.Name = "cGestiuneArt", ;
Column11.ReadOnly = .T., ;
Column11.Width = 60, ;
Column12.ControlSource = "tvd.explicatie", ;
Column12.DynamicForeColor = "IIF(tvd.sters=1,RGB(150,150,150),RGB(0,0,0))", ;
Column11.Width = 90, ;
Column12.ControlSource = "tvd.nume_val", ;
Column12.DynamicForeColor = "IIF(tvd.sters=1,RGB(150,150,150),IIF(NVL(tvd.id_vanzare_set,0)<>0,RGB(0,70,153),RGB(0,0,0)))", ;
Column12.FontName = "Arial", ;
Column12.FontSize = 10, ;
Column12.Name = "cExplicatieArt", ;
Column12.Name = "cValutaArt", ;
Column12.ReadOnly = .T., ;
Column12.Width = 150, ;
Column13.ControlSource = "tvd.taxcode", ;
Column13.DynamicForeColor = "IIF(tvd.sters=1,RGB(150,150,150),RGB(0,0,0))", ;
Column12.Width = 60, ;
Column13.ControlSource = "tvd.explicatie", ;
Column13.DynamicForeColor = "IIF(tvd.sters=1,RGB(150,150,150),IIF(NVL(tvd.id_vanzare_set,0)<>0,RGB(0,70,153),RGB(0,0,0)))", ;
Column13.FontName = "Arial", ;
Column13.FontSize = 10, ;
Column13.Name = "cTaxcodeArt", ;
Column13.Name = "cExplicatieArt", ;
Column13.ReadOnly = .T., ;
Column13.Width = 60, ;
Column14.ControlSource = "tvd.valoare", ;
Column14.DynamicForeColor = "IIF(tvd.sters=1,RGB(150,150,150),RGB(0,0,0))", ;
Column13.Width = 150, ;
Column14.ControlSource = "tvd.taxcode", ;
Column14.DynamicForeColor = "IIF(tvd.sters=1,RGB(150,150,150),IIF(NVL(tvd.id_vanzare_set,0)<>0,RGB(0,70,153),RGB(0,0,0)))", ;
Column14.FontName = "Arial", ;
Column14.FontSize = 10, ;
Column14.Format = "R", ;
Column14.InputMask = (get_mask(14,gnPa)), ;
Column14.Name = "cValoareArt", ;
Column14.Name = "cTaxcodeArt", ;
Column14.ReadOnly = .T., ;
Column14.Width = 90
Column14.Width = 60, ;
Column15.ControlSource = "tvd.valoare", ;
Column15.DynamicForeColor = "IIF(tvd.sters=1,RGB(150,150,150),IIF(NVL(tvd.id_vanzare_set,0)<>0,RGB(0,70,153),RGB(0,0,0)))", ;
Column15.FontName = "Arial", ;
Column15.FontSize = 10, ;
Column15.Format = "R", ;
Column15.InputMask = (get_mask(14,gnPa)), ;
Column15.Name = "cValoareArt", ;
Column15.ReadOnly = .T., ;
Column15.Width = 90
*< END OBJECT: ClassLib="_grd_base.vcx" BaseClass="grid" />
ADD OBJECT 'pgfArticole.PAGE3.grdArticoleFactura.cCantitateArt.Header1' AS header WITH ;
@@ -12593,6 +12604,27 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
SelectedBackColor = 100,185,255
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'pgfArticole.PAGE3.grdArticoleFactura.cPretAchizitieArt.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Pret achizitie", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1", ;
WordWrap = .T.
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'pgfArticole.PAGE3.grdArticoleFactura.cPretAchizitieArt.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .F., ;
SelectedBackColor = 100,185,255
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'pgfArticole.PAGE3.grdArticoleFactura.cPretArt.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Pret", ;
@@ -13116,7 +13148,8 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
id_jtva_coloana WITH toArticol.id_jtva_coloana, serie WITH toArticol.serie, ;
explicatie WITH toArticol.explicatie, taxcode WITH toArticol.taxcode, lot WITH toArticol.lot, ;
sters WITH 0, denumire WITH toArticol.denumire, codmat WITH toArticol.codmat, ;
nume_gestiune WITH '', nume_val WITH Iif(Used('tvanz') And Reccount('tvanz') > 0, Nvl(tvanz.nume_val,''), toArticol.nume_val), lmodificat WITH .T.
nume_gestiune WITH '', nume_val WITH Iif(Used('tvanz') And Reccount('tvanz') > 0, Nvl(tvanz.nume_val,''), toArticol.nume_val), ;
pret_achizitie WITH Nvl(toArticol.pret_achizitie,0), lmodificat WITH .T.
Thisform.calculeaza_valori_articol()
ENDPROC
@@ -14293,6 +14326,64 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
Endif
ENDIF
*!* modificare v 2.4.4 ^
IF "OFACTURARE_EDITARE" $ Upper(Set("Procedure")) AND Used('tvd')
LOCAL lnAreaTvd, lnRecnoTvd, lnLiniiActive
lnAreaTvd = Select()
lnRecnoTvd = Recno('tvd')
lnLiniiActive = 0
SELECT tvd
SCAN FOR Nvl(sters,0) <> 1
lnLiniiActive = m.lnLiniiActive + 1
IF Nvl(cantitate,0) <= 0
AMESSAGEBOX("Linia '" + Alltrim(Nvl(denumire,'')) + "' are cantitatea 0 sau negativa.",0+16,"Eroare")
IF Between(m.lnRecnoTvd,1,Reccount('tvd'))
GO (m.lnRecnoTvd) IN tvd
ENDIF
SELECT (m.lnAreaTvd)
RETURN .F.
ENDIF
IF Isnull(pret)
AMESSAGEBOX("Linia '" + Alltrim(Nvl(denumire,'')) + "' nu are pret completat.",0+16,"Eroare")
IF Between(m.lnRecnoTvd,1,Reccount('tvd'))
GO (m.lnRecnoTvd) IN tvd
ENDIF
SELECT (m.lnAreaTvd)
RETURN .F.
ENDIF
IF Nvl(id_articol,0) = 0
AMESSAGEBOX("Linia '" + Alltrim(Nvl(denumire,'')) + "' nu are articol asociat.",0+16,"Eroare")
IF Between(m.lnRecnoTvd,1,Reccount('tvd'))
GO (m.lnRecnoTvd) IN tvd
ENDIF
SELECT (m.lnAreaTvd)
RETURN .F.
ENDIF
IF Nvl(id_vanzare_det,0) = 0 AND Nvl(pret_achizitie,0) = 0
IF amessagebox("Linia '" + Alltrim(Nvl(denumire,'')) + "' are pretul de achizitie 0." + CRLF + ;
"Doriti sa continuati?",4+32,"Pret de achizitie") <> 6
IF Between(m.lnRecnoTvd,1,Reccount('tvd'))
GO (m.lnRecnoTvd) IN tvd
ENDIF
SELECT (m.lnAreaTvd)
RETURN .F.
ENDIF
ENDIF
ENDSCAN
IF m.lnLiniiActive = 0 AND Used('tvanz') AND Reccount('tvanz') = 1
IF amessagebox("Toate liniile facturii au fost sterse." + CRLF + ;
"Doriti sa continuati?",4+32,"Factura fara linii") <> 6
IF Between(m.lnRecnoTvd,1,Reccount('tvd'))
GO (m.lnRecnoTvd) IN tvd
ENDIF
SELECT (m.lnAreaTvd)
RETURN .F.
ENDIF
ENDIF
IF Between(m.lnRecnoTvd,1,Reccount('tvd'))
GO (m.lnRecnoTvd) IN tvd
ENDIF
SELECT (m.lnAreaTvd)
ENDIF
RETURN m.llRet
@@ -14568,7 +14659,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
IF Used('tvd')
Use In tvd
ENDIF
CREATE CURSOR tvd (id_vanzare I NULL, id_vanzare_det I NULL, id_articol I NULL, cantitate N(12,3) NULL, pret N(14,4) NULL, pret_cu_tva N(14,4) NULL, proc_tvav N(6,4) NULL, discount_unitar N(14,4) NULL, id_gestiune I NULL, cont C(20) NULL, id_valuta I NULL, id_jtva_coloana I NULL, serie C(20) NULL, explicatie C(60) NULL, taxcode I NULL, lot C(20) NULL, sters I NULL, denumire C(100) NULL, codmat C(30) NULL, nume_gestiune C(60) NULL, nume_val C(20) NULL, lmodificat L, valoare N(14,2), in_stoc I NULL)
CREATE CURSOR tvd (id_vanzare I NULL, id_vanzare_det I NULL, id_articol I NULL, cantitate N(12,3) NULL, pret N(14,4) NULL, pret_cu_tva N(14,4) NULL, proc_tvav N(6,4) NULL, discount_unitar N(14,4) NULL, id_gestiune I NULL, cont C(20) NULL, id_valuta I NULL, id_jtva_coloana I NULL, serie C(20) NULL, explicatie C(60) NULL, taxcode I NULL, lot C(20) NULL, sters I NULL, id_vanzare_set I NULL, pret_achizitie N(14,4) NULL, denumire C(100) NULL, codmat C(30) NULL, nume_gestiune C(60) NULL, nume_val C(20) NULL, lmodificat L, valoare N(14,2), in_stoc I NULL)
ENDIF
*!* cursorul tvanz - placeholder gol, ca bara de totaluri (ControlSource pe tvanz.discount) sa se lege la construire
@@ -16433,6 +16524,16 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
ENDPROC
PROCEDURE pgfArticole.PAGE3.grdArticoleFactura.cCantitateArt.Text1.When
IF Nvl(tvd.id_vanzare_set,0) <> 0
RETURN .F.
ENDIF
Thisform.oldvalue = This.Value
ENDPROC
PROCEDURE pgfArticole.PAGE3.grdArticoleFactura.cPretAchizitieArt.Text1.When
IF Nvl(tvd.id_vanzare_set,0) <> 0 OR Nvl(tvd.id_vanzare_det,0) <> 0
RETURN .F.
ENDIF
Thisform.oldvalue = This.Value
ENDPROC
@@ -16444,6 +16545,9 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
ENDPROC
PROCEDURE pgfArticole.PAGE3.grdArticoleFactura.cPretArt.Text1.When
IF Nvl(tvd.id_vanzare_set,0) <> 0
RETURN .F.
ENDIF
Thisform.oldvalue = This.Value
ENDPROC
@@ -16457,6 +16561,10 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
This.Parent.Parent.Refresh()
ENDPROC
PROCEDURE pgfArticole.PAGE3.grdArticoleFactura.cPretCuTvaArt._checkbox1.When
RETURN Nvl(tvd.id_vanzare_set,0) = 0
ENDPROC
PROCEDURE pgfArticole.PAGE3.txtDiscountArt.Valid
Thisform.ActualizeazaBaraTotaluri()
ENDPROC