#6 editare factura emisa: articolele nu se mai editeaza pe facturi trimise in eFactura
Cand documentul e deja trimis in eFactura, pagina de articole ramane vizibila, dar needitabila: cantitate, pret, pret achizitie, flagul pret cu TVA, discountul de antet, plus adaugarea si stergerea de linii. Alegerea e "vizibil, dar blocat", nu "pagina ascunsa" - contabilul trebuie sa vada ce contine factura trimisa. - omodificari.vc2: flag lArticoleReadOnly calculat in frm_modific2024.Show, impins peste .When-urile de celula, peste Enabled si peste garda din Click-ul butoanelor, si peste txtDiscountArt.ReadOnly. Eticheta lblArticoleReadOnly explica motivul. - ofacturare_editare.prg: id_fact adus pe tvanz, in IncarcaVanzareNota si in CreeazaCursorTvanzGol. EsteInEFactura interogheaza anaf_efactura dupa id_fact, nu dupa id_vanzare - fara asta garda nu s-ar fi declansat niciodata pe date reale. - teste: test_efactura_readonly (headless, garda in ambele sensuri), test_ui_efactura_readonly (formular vizibil - coloanele gridului nu se materializeaza sub -A -T), test_s7_rotunjire, si test_s8_matrice_surse pentru matricea S8 pe tipuri de sursa. S8 rulat pe cate un document din fiecare tip de sursa (lista de preturi, contract, aviz, factura din aviz), fiecare editat din ambele puncte de intrare: notele vechi raman STERS=1, id_fact nu se schimba, totalurile si liniile raman coerente. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SN8snvkk94KuhWwoXUUey3
This commit is contained in:
@@ -6674,6 +6674,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
|
||||
*< OBJECTDATA: ObjPath="pgfArticole.PAGE3.lblTotalRulArt" UniqueID="" Timestamp="" />
|
||||
*< OBJECTDATA: ObjPath="pgfArticole.PAGE3.txtTotalRulArt" UniqueID="" Timestamp="" />
|
||||
*< OBJECTDATA: ObjPath="pgfArticole.PAGE3.lblVerdictArt" UniqueID="" Timestamp="" />
|
||||
*< OBJECTDATA: ObjPath="pgfArticole.PAGE3.lblArticoleReadOnly" UniqueID="" Timestamp="" />
|
||||
*< OBJECTDATA: ObjPath="pgfArticole.PAGE2.grdRulajeObinv.cvaloarevcTVA.cvaloarevcTVA" UniqueID="" Timestamp="" />
|
||||
*< OBJECTDATA: ObjPath="pgfArticole.PAGE2.grdRulajeObinv.cvaloarevcTVA.Text1" UniqueID="" Timestamp="" />
|
||||
*< OBJECTDATA: ObjPath="Grid1" UniqueID="" Timestamp="" />
|
||||
@@ -6823,6 +6824,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
|
||||
*p: cpaymentcode
|
||||
*p: fel_compensare
|
||||
*p: larearticolevanzari
|
||||
*p: larticolereadonly
|
||||
*p: lavertizatexigibilizare
|
||||
*p: leditare
|
||||
*p: lmodificare
|
||||
@@ -6862,6 +6864,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
|
||||
FontCharSet = 238
|
||||
Height = 530
|
||||
larearticolevanzari = .F.
|
||||
larticolereadonly = .F.
|
||||
lavertizatexigibilizare = .F.
|
||||
leditare = .F.
|
||||
lmodificare = .F.
|
||||
@@ -12770,6 +12773,20 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
|
||||
SelectedBackColor = 100,185,255
|
||||
*< END OBJECT: BaseClass="textbox" />
|
||||
|
||||
ADD OBJECT 'pgfArticole.PAGE3.lblArticoleReadOnly' AS _label WITH ;
|
||||
AutoSize = .F., ;
|
||||
Caption = "Articole needitabile - factura trimisa in eFactura", ;
|
||||
FontBold = .T., ;
|
||||
ForeColor = 180,120,0, ;
|
||||
Height = 17, ;
|
||||
Left = 360, ;
|
||||
Name = "lblArticoleReadOnly", ;
|
||||
Top = 4, ;
|
||||
Visible = .F., ;
|
||||
Width = 390, ;
|
||||
ZOrderSet = 15
|
||||
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
|
||||
|
||||
ADD OBJECT 'pgfArticole.PAGE3.lblDiscountArt' AS _label WITH ;
|
||||
AutoSize = .F., ;
|
||||
Caption = "Discount:", ;
|
||||
@@ -14771,12 +14788,14 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
|
||||
This.lAreArticoleVanzari = .F.
|
||||
This.nIdVanzare = 0
|
||||
This.nTipVanzare = 0
|
||||
This.lArticoleReadOnly = .F.
|
||||
IF "OFACTURARE_EDITARE" $ Upper(Set("Procedure")) AND Reccount('tact') > 0
|
||||
IncarcaVanzareDinNota('tact')
|
||||
IF Reccount('tvanz') = 1
|
||||
This.lAreArticoleVanzari = .T.
|
||||
This.nIdVanzare = tvanz.id_vanzare
|
||||
This.nTipVanzare = tvanz.tip
|
||||
This.lArticoleReadOnly = EsteInEFactura(Nvl(tvanz.id_fact,0))
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
@@ -14788,6 +14807,11 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
|
||||
ENDIF
|
||||
This.pgfArticole.PageCount = 3
|
||||
This.pgfArticole.PAGE3.grdArticoleFactura.Refresh()
|
||||
*!* factura trimisa in eFactura: articolele raman vizibile, doar editarea lor se opreste
|
||||
This.pgfArticole.PAGE3.cmdAdaugaArticol.Enabled = !This.lArticoleReadOnly
|
||||
This.pgfArticole.PAGE3.cmdStergeArticol.Enabled = !This.lArticoleReadOnly
|
||||
This.pgfArticole.PAGE3.txtDiscountArt.ReadOnly = This.lArticoleReadOnly
|
||||
This.pgfArticole.PAGE3.lblArticoleReadOnly.Visible = This.lArticoleReadOnly
|
||||
This.ActualizeazaBaraTotaluri()
|
||||
ELSE
|
||||
This.pgfArticole.PageCount = 2
|
||||
@@ -16468,7 +16492,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
|
||||
*!* daca documentul e in valuta (tvanz.in_valuta=1), poArticol.tip_valuta/Curs/multiplicator/
|
||||
*!* nume_val/id_valuta se populeaza cu valorile documentului, ca dialogul sa lucreze in valuta
|
||||
LOCAL loArticolAles, lnIdArticol, llInValutaDoc, lnCursDoc, lnMultDoc, lcNumeValDoc, lnIdValutaDoc
|
||||
IF !Used('tvd') OR !This.lAreArticoleVanzari
|
||||
IF !Used('tvd') OR !This.lAreArticoleVanzari OR Thisform.lArticoleReadOnly
|
||||
RETURN
|
||||
ENDIF
|
||||
loArticolAles = caut_articol()
|
||||
@@ -16507,7 +16531,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
|
||||
|
||||
PROCEDURE pgfArticole.PAGE3.cmdStergeArticol.Click
|
||||
*!* comuta flagul sters pe linia curenta din tvd - stergerea e logica, ramane vizibila (grizata) pana la salvare
|
||||
IF !Used('tvd') OR Reccount('tvd') = 0
|
||||
IF !Used('tvd') OR Reccount('tvd') = 0 OR Thisform.lArticoleReadOnly
|
||||
RETURN
|
||||
ENDIF
|
||||
SELECT tvd
|
||||
@@ -16524,14 +16548,14 @@ 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
|
||||
IF Thisform.lArticoleReadOnly OR 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
|
||||
IF Thisform.lArticoleReadOnly OR Nvl(tvd.id_vanzare_set,0) <> 0 OR Nvl(tvd.id_vanzare_det,0) <> 0
|
||||
RETURN .F.
|
||||
ENDIF
|
||||
Thisform.oldvalue = This.Value
|
||||
@@ -16545,7 +16569,7 @@ 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
|
||||
IF Thisform.lArticoleReadOnly OR Nvl(tvd.id_vanzare_set,0) <> 0
|
||||
RETURN .F.
|
||||
ENDIF
|
||||
Thisform.oldvalue = This.Value
|
||||
@@ -16562,7 +16586,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE pgfArticole.PAGE3.grdArticoleFactura.cPretCuTvaArt._checkbox1.When
|
||||
RETURN Nvl(tvd.id_vanzare_set,0) = 0
|
||||
RETURN !Thisform.lArticoleReadOnly AND Nvl(tvd.id_vanzare_set,0) = 0
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE pgfArticole.PAGE3.txtDiscountArt.Valid
|
||||
|
||||
Reference in New Issue
Block a user