#13: formular de facturare unificat - etapa curenta
Squash al branch-ului de lucru plan13-s2. Clase: ofacturare (nucleul formularului unificat), ofacturare_comun, ferestre_cere_date, ocomenzi, caut_ora (lista de preturi in combo-urile de cautare), omodificari. Programe: ofacturare impartit - ofacturare_antet, ofacturare_rutare_scriere si ogrid_latimi sunt fisiere noi; oproceduri_facturare primeste discountul pe linie si cota standard de TVA cand articolul nu are cota pe politica. Documentatie: capcana SQLExec no_data_found, conventia de encoding, depanarea testelor VFP si regulile de lucru - conflictele cu modificarile venite din alte proiecte sunt rezolvate pastrand ambele parti. Loguri de rulare a testelor scoase din versionare; testele raman. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PkyjGyrV2S7932om4kfSiK
This commit is contained in:
@@ -717,7 +717,9 @@ DEFINE CLASS ct_clb_cautare AS _container OF "_baza.vcx"
|
||||
*<DefinedPropArrayMethod>
|
||||
*m: do_activeaza
|
||||
*m: do_apeleaza
|
||||
*m: do_blocheaza_real
|
||||
*m: do_dezactiveaza
|
||||
*m: do_reactiveaza_real
|
||||
*m: do_schimba_explicatia && Schimba caption-ul de la label1.
|
||||
*p: cconditie && Conditia pentru care se apeleaza procedura din cprocedura.
|
||||
*p: clista_parametri && Lista parametri pentru procedura din cparametri ( separati prin virgula ).
|
||||
@@ -797,6 +799,12 @@ DEFINE CLASS ct_clb_cautare AS _container OF "_baza.vcx"
|
||||
This.clb_tx_cautare.text_simplu1.Refresh()
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE do_blocheaza_real
|
||||
This.do_dezactiveaza()
|
||||
This.clb_tx_cautare.text_simplu1.ReadOnly = .T.
|
||||
This.clb_tx_cautare.text_simplu1.TabStop = .F.
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE do_dezactiveaza
|
||||
This.lactiv = .F.
|
||||
This.img_cautare.Visible = .F.
|
||||
@@ -805,6 +813,12 @@ DEFINE CLASS ct_clb_cautare AS _container OF "_baza.vcx"
|
||||
This.clb_tx_cautare.text_simplu1.Refresh()
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE do_reactiveaza_real
|
||||
This.do_activeaza()
|
||||
This.clb_tx_cautare.text_simplu1.ReadOnly = .F.
|
||||
This.clb_tx_cautare.text_simplu1.TabStop = .T.
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE do_schimba_explicatia && Schimba caption-ul de la label1.
|
||||
Lparameters tcExplicatie
|
||||
This.clb_tx_cautare.lb_SIMPLU1.Caption = Alltrim(tcExplicatie)
|
||||
|
||||
@@ -2725,6 +2725,7 @@ DEFINE CLASS frm_alte_date AS _frmbase OF "_frm_base.vcx"
|
||||
Thisform.clb_incasat.Refresh()
|
||||
|
||||
thisform.chkPOS.Value = 0
|
||||
thisform.chkPOS.Valid()
|
||||
thisform.chkDetaliat.Value = 0
|
||||
thisform.chkPOS.Visible = .F.
|
||||
thisform.chkDetaliat.Visible = .F.
|
||||
@@ -2782,6 +2783,7 @@ DEFINE CLASS frm_alte_date AS _frmbase OF "_frm_base.vcx"
|
||||
Thisform.clb_incasat.Refresh()
|
||||
Thisform.clb_serie_chit.genereazaNumar()
|
||||
thisform.chkPOS.Value = 0
|
||||
thisform.chkPOS.Valid()
|
||||
thisform.chkPOS.Visible = .F.
|
||||
thisform.chkDetaliat.Value = 0
|
||||
thisform.chkDetaliat.Visible = .F.
|
||||
@@ -2811,6 +2813,7 @@ DEFINE CLASS frm_alte_date AS _frmbase OF "_frm_base.vcx"
|
||||
Thisform.clb_incasat.Refresh()
|
||||
|
||||
thisform.chkPOS.Value = 0
|
||||
thisform.chkPOS.Valid()
|
||||
thisform.chkPOS.Visible = .T.
|
||||
thisform.chkDetaliat.Value = 0
|
||||
thisform.chkDetaliat.Visible = .T.
|
||||
@@ -2838,7 +2841,6 @@ DEFINE CLASS frm_alte_date AS _frmbase OF "_frm_base.vcx"
|
||||
Thisform.lb_simplu1.Visible=.T.
|
||||
Thisform.cmdModificaBon.Visible=.T. && modifica nr bon fiscal
|
||||
Thisform.clb_nrchit.text_simplu1.ReadOnly = .T.
|
||||
thisform.cb_casa._lbbase1.Caption = 'Banca POS'
|
||||
Thisform.nnrbon = 0
|
||||
poDate.nr_incasare = 0
|
||||
Thisform.do_aloca_nr_pos([CLICK])
|
||||
@@ -2848,6 +2850,7 @@ DEFINE CLASS frm_alte_date AS _frmbase OF "_frm_base.vcx"
|
||||
Thisform.clb_incasat.Refresh()
|
||||
|
||||
thisform.chkPOS.Value = 1
|
||||
thisform.chkPOS.Valid()
|
||||
thisform.chkPOS.Visible = .F.
|
||||
thisform.chkDetaliat.Value = 0
|
||||
thisform.chkDetaliat.Visible = .F.
|
||||
@@ -3024,6 +3027,7 @@ DEFINE CLASS frm_alte_date AS _frmbase OF "_frm_base.vcx"
|
||||
If Type('poGeneratorNumere') = 'O'
|
||||
poGeneratorNumere.dezaloca_numar(16)
|
||||
poGeneratorNumere.dezaloca_numar(3)
|
||||
poGeneratorNumere.dezaloca_numar(26)
|
||||
|
||||
Thisform.nnrbon = 0
|
||||
poDate.nr_incasare = 0
|
||||
@@ -3108,7 +3112,7 @@ DEFINE CLASS frm_alte_date AS _frmbase OF "_frm_base.vcx"
|
||||
*!* modificare ROAFACTURARE v 2.0.67
|
||||
If poDate.eProforma = 0
|
||||
*!* modificare ROAFACTURARE v 2.0.67 ^
|
||||
If Empty(Nvl(poDate.id_delegat,0)) And Empty(Nvl(poDate.id_masina,0))
|
||||
If !poDate.lEditare And Empty(Nvl(poDate.id_delegat,0)) And Empty(Nvl(poDate.id_masina,0)) && la editare, nu suprascrie delegatul/masina documentului cu ultimul folosit
|
||||
poDate.id_delegat = 0
|
||||
poDate.id_masina = 0
|
||||
|
||||
@@ -3146,7 +3150,7 @@ DEFINE CLASS frm_alte_date AS _frmbase OF "_frm_base.vcx"
|
||||
Thisform.AutoCenter = .T.
|
||||
Thisform.Refresh()
|
||||
|
||||
If poDate.incasat <> 0
|
||||
If !poDate.lEditare And poDate.incasat <> 0
|
||||
Thisform.opt_incasat.Value = 2
|
||||
Endif
|
||||
|
||||
@@ -3162,7 +3166,7 @@ DEFINE CLASS frm_alte_date AS _frmbase OF "_frm_base.vcx"
|
||||
Else
|
||||
Thisform.cb_casa._cBBASE1.RowSource = [v_nom_casa.nume,id_part]
|
||||
Thisform.cb_casa._cBBASE1.RowSourceType = 6
|
||||
If !Empty(gnid_part_casa)
|
||||
If !poDate.lEditare And !Empty(gnid_part_casa)
|
||||
Select v_nom_casa
|
||||
Locate For id_part = gnid_part_casa
|
||||
If Found()
|
||||
@@ -3174,13 +3178,13 @@ DEFINE CLASS frm_alte_date AS _frmbase OF "_frm_base.vcx"
|
||||
Endif
|
||||
*!* modificare 01.08 ^
|
||||
*!* modificare ROAFACTURARE v 2.0.46
|
||||
If This.opt_incasat.Value = 2
|
||||
If !poDate.lEditare And This.opt_incasat.Value = 2
|
||||
poDate.incasat = poDate.totalctva
|
||||
Endif
|
||||
*!* modificare ROAFACTURARE v 2.0.46 ^
|
||||
*!* modificare ROAFACTURARE v 2.0.67
|
||||
*!* modificare ROACONTRACTE v 2.0.38
|
||||
IF poDate.tip = 2 AND poDate.afisare_scadenta = 0 AND AT([Scadenta la ],poDate.text_aditional) = 0
|
||||
IF !poDate.lEditare AND poDate.tip = 2 AND poDate.afisare_scadenta = 0 AND AT([Scadenta la ],poDate.text_aditional) = 0
|
||||
poDate.text_aditional = [Scadenta la ] + ALLTRIM(STR(poDate.datascad - poDate.dataact)) + [ zile.] + poDate.text_aditional
|
||||
ENDIF
|
||||
*!* modificare ROACONTRACTE v 2.0.38 ^
|
||||
|
||||
@@ -1578,12 +1578,12 @@ DEFINE CLASS ct_comenzi AS _ctfrmbase OF "_ct_base.vcx"
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE do_factura
|
||||
LOCAL lnRec
|
||||
LOCAL lnRec, loComanda
|
||||
SELECT crsComenzi
|
||||
SCATTER NAME goComanda MEMO
|
||||
SCATTER NAME loComanda MEMO
|
||||
lnRec = RECNO()
|
||||
|
||||
DO facturare_comenzi IN oproceduri_facturare.prg
|
||||
DO facturare_comenzi WITH loComanda IN oproceduri_facturare.prg
|
||||
|
||||
this.do_cauta()
|
||||
|
||||
|
||||
4289
clase/ofacturare.vc2
4289
clase/ofacturare.vc2
File diff suppressed because it is too large
Load Diff
@@ -1262,6 +1262,10 @@ DEFINE CLASS frm_facturi AS _frmbase OF "_frm_base.vcx"
|
||||
*< OBJECTDATA: ObjPath="grid_facturi.cInstitutiePublica._checkbox1" UniqueID="" Timestamp="" />
|
||||
*< OBJECTDATA: ObjPath="grid_facturi.cCodFiscal.Header1" UniqueID="" Timestamp="" />
|
||||
*< OBJECTDATA: ObjPath="grid_facturi.cCodFiscal.Text1" UniqueID="" Timestamp="" />
|
||||
*< OBJECTDATA: ObjPath="grid_facturi.cUtilm.Header1" UniqueID="" Timestamp="" />
|
||||
*< OBJECTDATA: ObjPath="grid_facturi.cUtilm.Text1" UniqueID="" Timestamp="" />
|
||||
*< OBJECTDATA: ObjPath="grid_facturi.cDataoram.Header1" UniqueID="" Timestamp="" />
|
||||
*< OBJECTDATA: ObjPath="grid_facturi.cDataoram.Text1" UniqueID="" Timestamp="" />
|
||||
*< OBJECTDATA: ObjPath="grid_detalii" UniqueID="" Timestamp="" />
|
||||
*< OBJECTDATA: ObjPath="grid_detalii.cNume_lista_preturi.Header1" UniqueID="" Timestamp="" />
|
||||
*< OBJECTDATA: ObjPath="grid_detalii.cNume_lista_preturi.Text1" UniqueID="" Timestamp="" />
|
||||
@@ -1337,6 +1341,7 @@ DEFINE CLASS frm_facturi AS _frmbase OF "_frm_base.vcx"
|
||||
|
||||
*<DefinedPropArrayMethod>
|
||||
*m: do_editare_factura
|
||||
*m: do_editare_unificata
|
||||
*m: do_listare_cc
|
||||
*m: do_listare_centr
|
||||
*m: do_listare_document
|
||||
@@ -2225,7 +2230,7 @@ DEFINE CLASS frm_facturi AS _frmbase OF "_frm_base.vcx"
|
||||
|
||||
ADD OBJECT 'grid_facturi' AS _grdrow WITH ;
|
||||
Anchor = 15, ;
|
||||
ColumnCount = 44, ;
|
||||
ColumnCount = 46, ;
|
||||
DeleteMark = .F., ;
|
||||
FontSize = 10, ;
|
||||
HeaderHeight = 36, ;
|
||||
@@ -2543,7 +2548,21 @@ DEFINE CLASS frm_facturi AS _frmbase OF "_frm_base.vcx"
|
||||
Column44.FontSize = 10, ;
|
||||
Column44.Name = "cCodFiscal", ;
|
||||
Column44.ReadOnly = .T., ;
|
||||
Column44.Width = 103
|
||||
Column44.Width = 103, ;
|
||||
Column45.ColumnOrder = 45, ;
|
||||
Column45.ControlSource = "utilm", ;
|
||||
Column45.FontName = "Arial", ;
|
||||
Column45.FontSize = 10, ;
|
||||
Column45.Name = "cUtilm", ;
|
||||
Column45.ReadOnly = .T., ;
|
||||
Column45.Width = 107, ;
|
||||
Column46.ColumnOrder = 46, ;
|
||||
Column46.ControlSource = "dataoram", ;
|
||||
Column46.FontName = "Arial", ;
|
||||
Column46.FontSize = 10, ;
|
||||
Column46.Name = "cDataoram", ;
|
||||
Column46.ReadOnly = .T., ;
|
||||
Column46.Width = 99
|
||||
*< END OBJECT: ClassLib="_grd_base.vcx" BaseClass="grid" />
|
||||
|
||||
ADD OBJECT 'grid_facturi.cAdresaFacturare.Header1' AS header WITH ;
|
||||
@@ -2759,6 +2778,26 @@ DEFINE CLASS frm_facturi AS _frmbase OF "_frm_base.vcx"
|
||||
SelectedBackColor = 0,0,255
|
||||
*< END OBJECT: BaseClass="textbox" />
|
||||
|
||||
ADD OBJECT 'grid_facturi.cDataoram.Header1' AS header WITH ;
|
||||
Alignment = 2, ;
|
||||
Caption = "Dataora modificarii", ;
|
||||
FontName = "Arial", ;
|
||||
FontSize = 10, ;
|
||||
Name = "Header1"
|
||||
*< END OBJECT: BaseClass="header" />
|
||||
|
||||
ADD OBJECT 'grid_facturi.cDataoram.Text1' AS textbox WITH ;
|
||||
BackColor = 255,255,255, ;
|
||||
BorderStyle = 0, ;
|
||||
FontName = "Arial", ;
|
||||
FontSize = 10, ;
|
||||
ForeColor = 0,0,0, ;
|
||||
Margin = 0, ;
|
||||
Name = "Text1", ;
|
||||
ReadOnly = .T., ;
|
||||
SelectedBackColor = 0,0,255
|
||||
*< END OBJECT: BaseClass="textbox" />
|
||||
|
||||
ADD OBJECT 'grid_facturi.cDataoras.Header1' AS header WITH ;
|
||||
Alignment = 2, ;
|
||||
Caption = "Dataora stergerii", ;
|
||||
@@ -3381,6 +3420,26 @@ DEFINE CLASS frm_facturi AS _frmbase OF "_frm_base.vcx"
|
||||
SelectedBackColor = 0,0,255
|
||||
*< END OBJECT: BaseClass="textbox" />
|
||||
|
||||
ADD OBJECT 'grid_facturi.cUtilm.Header1' AS header WITH ;
|
||||
Alignment = 2, ;
|
||||
Caption = "Operator modificare", ;
|
||||
FontName = "Arial", ;
|
||||
FontSize = 10, ;
|
||||
Name = "Header1"
|
||||
*< END OBJECT: BaseClass="header" />
|
||||
|
||||
ADD OBJECT 'grid_facturi.cUtilm.Text1' AS textbox WITH ;
|
||||
BackColor = 255,255,255, ;
|
||||
BorderStyle = 0, ;
|
||||
FontName = "Arial", ;
|
||||
FontSize = 10, ;
|
||||
ForeColor = 0,0,0, ;
|
||||
Margin = 0, ;
|
||||
Name = "Text1", ;
|
||||
ReadOnly = .T., ;
|
||||
SelectedBackColor = 0,0,255
|
||||
*< END OBJECT: BaseClass="textbox" />
|
||||
|
||||
ADD OBJECT 'grid_facturi.cUtils.Header1' AS header WITH ;
|
||||
Alignment = 2, ;
|
||||
Caption = "Operator stergere", ;
|
||||
@@ -3679,11 +3738,26 @@ DEFINE CLASS frm_facturi AS _frmbase OF "_frm_base.vcx"
|
||||
#DEFINE T41 41 && 'RETUR TRANSFER'
|
||||
#DEFINE T_6 -6 && 'RETUR TRANSFER DIN GESTIUNE VALORICA'
|
||||
|
||||
LOCAL loFactura
|
||||
LOCAL loFactura, lcSql, lnFacturi
|
||||
|
||||
IF !This.IsCopy(crsFacturi.tip)
|
||||
RETURN
|
||||
ENDIF
|
||||
* proforma deja facturata: se avertizeaza, nu se blocheaza
|
||||
IF Nvl(crsFacturi.eproforma,0) = 1
|
||||
lcSql = [SELECT COUNT(*) AS nr FROM vanzari_coresp WHERE sters = 0 AND tip = 4 ] + ;
|
||||
[AND id_vanzare_aviz = ] + Alltrim(Str(crsFacturi.id_vanzare,20,0))
|
||||
IF goExecutor.oExecute(lcSql,[crsprofact]) >= 0 AND Used('crsprofact')
|
||||
lnFacturi = crsprofact.nr
|
||||
Use In (Select('crsprofact'))
|
||||
IF lnFacturi > 0
|
||||
IF amessagebox("Din aceasta proforma s-au emis deja " + Alltrim(Str(lnFacturi)) + ;
|
||||
" facturi. Doriti sa continuati?",4+32,"Confirmare") <> 6
|
||||
RETURN
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
* Copiez orice document, dar il tratez ca pe un caz simplu (factura din lista de preturi, aviz din lista de preturi, transfer simplu)
|
||||
* De exemplu, factura din contract sau din comanda, nu are sens sa fie copiata, dar o tratez ca pe o factura din lista de preturi
|
||||
@@ -3871,6 +3945,96 @@ DEFINE CLASS frm_facturi AS _frmbase OF "_frm_base.vcx"
|
||||
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE do_editare_unificata
|
||||
If !This.lactiv3
|
||||
Return
|
||||
Endif
|
||||
|
||||
If Reccount('crsfacturi') = 0
|
||||
amessagebox("Nu exista inregistrari pentru editare!",0+48,"Atentie")
|
||||
Return
|
||||
Endif
|
||||
|
||||
If glLunaInchisa
|
||||
Return
|
||||
Endif
|
||||
|
||||
Local lnSters, llEProforma, lnTipDoc, loForm, pnDiscountRon, pnDiscountValuta
|
||||
Private pnAn, pnLuna, lnCod, lnIdFact, lnIdVanzare, poDate, poSnapshotEditare
|
||||
Store 0 To pnAn, pnLuna, lnCod, lnIdFact, lnIdVanzare
|
||||
Select crsfacturi
|
||||
lnIdVanzare = id_vanzare
|
||||
lnCod = cod
|
||||
pnAn = Year(data_act)
|
||||
pnLuna = Month(data_act)
|
||||
lnSters = sters
|
||||
lnIdFact = id_fact
|
||||
llEProforma = (eproforma = 1)
|
||||
lnTipDoc = tip
|
||||
|
||||
If lnSters = 1
|
||||
amessagebox("Acest document este deja sters!",0+48,"Atentie")
|
||||
Return
|
||||
Endif
|
||||
|
||||
If llEProforma
|
||||
amessagebox("Proformele nu pot fi editate pe aceasta cale!",0+48,"Atentie")
|
||||
Return
|
||||
Endif
|
||||
|
||||
If Inlist(lnTipDoc, 44, 45, 46, 51)
|
||||
amessagebox("Documentele acestui modul nu pot fi editate pe aceasta cale!",0+48,"Atentie")
|
||||
Return
|
||||
Endif
|
||||
|
||||
If (pnAn * 12) + pnLuna <> (gnAn * 12) + gnLuna
|
||||
amessagebox('Nu puteti edita decat inregistrari din luna curenta!',0,'Atentie!')
|
||||
Return
|
||||
Endif
|
||||
|
||||
If ReferinteDocumenteNota(pnAn, pnLuna, lnCod) && odocumente.prg
|
||||
amessagebox("Documentul are referinte (incasari/plati). Nu poate fi editat.", 0+48,"Editare")
|
||||
Return
|
||||
Endif
|
||||
|
||||
If EsteInEFactura(lnIdFact) && ofacturare_editare.prg
|
||||
amessagebox("Documentul a fost trimis in eFactura. Nu poate fi editat.", 0+48,"Editare")
|
||||
Return
|
||||
Endif
|
||||
|
||||
If DocumentAreUrmasi(lnIdVanzare) && ofacturare_editare.prg
|
||||
amessagebox("Documentul are facturi sau avize emise pe lantul lui. Nu poate fi editat.", 0+48,"Editare")
|
||||
Return
|
||||
Endif
|
||||
|
||||
poDate = IncarcaAntetFacturaEditare(lnIdVanzare, @pnDiscountRon, @pnDiscountValuta) && ofacturare_editare.prg
|
||||
If Vartype(poDate) <> 'O'
|
||||
Return
|
||||
Endif
|
||||
|
||||
IncarcaLiniiFacturaEditare(poDate, lnIdVanzare) && ofacturare_editare.prg
|
||||
|
||||
update_jtva_coloane([JV], [jtva_coloane_temp]) && updateserver.prg
|
||||
update_saft_taxtable() && updateserver.prg
|
||||
If Used('jtva_coloane')
|
||||
Use In jtva_coloane
|
||||
Endif
|
||||
If poDate.tva_incasare = 0
|
||||
Select * From jtva_coloane_temp Where Isnull(id_jtva_ex) And !'RORTC'$Upper(coloana_jv) Into Cursor jtva_coloane
|
||||
Else
|
||||
Select * From jtva_coloane_temp Where Isnull(id_jtva_neex) And !'RORTC'$Upper(coloana_jv) Into Cursor jtva_coloane
|
||||
Endif
|
||||
|
||||
loForm = Createobject('frm_facturare_articole2')
|
||||
loForm.ndiscfactron = pnDiscountRon
|
||||
loForm.ndiscfactval = pnDiscountValuta
|
||||
loForm.do_calculeaza_totaluri()
|
||||
*!* S8b: instantaneul se ia AICI - primul punct unde discountul e deja corect si formularul
|
||||
*!* inca nu a fost aratat; ramane in viata cat formularul e deschis (Show() e modal)
|
||||
poSnapshotEditare = CreeazaSnapshotEditare(poDate, loForm.ndiscfactron, loForm.ndiscfactval, lnIdVanzare, lnIdFact, lnCod, pnAn, pnLuna)
|
||||
loForm.Show()
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE do_listare
|
||||
*!* 26.11.2019
|
||||
*!* marius.mutu
|
||||
@@ -4929,12 +5093,14 @@ DEFINE CLASS frm_facturi AS _frmbase OF "_frm_base.vcx"
|
||||
|
||||
PROCEDURE inainte_de_do_modifica
|
||||
Local lnOptiune
|
||||
lnOptiune = xmenu('Modificare \<date factura;Editare \<factura (note, rulaje, articole)')
|
||||
lnOptiune = xmenu('Modificare \<date factura;Editare \<factura (note, rulaje, articole);Editare \<unificata (articole)')
|
||||
Do Case
|
||||
Case lnOptiune = 1
|
||||
This.do_modifica()
|
||||
Case lnOptiune = 2
|
||||
This.do_editare_factura()
|
||||
Case lnOptiune = 3
|
||||
This.do_editare_unificata()
|
||||
Endcase
|
||||
ENDPROC
|
||||
|
||||
|
||||
@@ -14447,7 +14447,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
|
||||
SELECT (m.lnAreaTvd)
|
||||
RETURN .F.
|
||||
ENDIF
|
||||
IF Nvl(id_vanzare_det,0) = 0 AND Nvl(id_articol,0) = 0
|
||||
IF Nvl(id_ctr,0) = 0 AND 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
|
||||
|
||||
Reference in New Issue
Block a user