1315 lines
47 KiB
Plaintext
1315 lines
47 KiB
Plaintext
*!* 21.08.2026
|
|
*!* marius.mutu
|
|
*!* oAntetFacturare - logica de antet a formularului unificat frm_facturare_articole2, portata din frm_date_factura /
|
|
*!* frm_date_aviz (ofacturare.vcx): cautarile (do_cauta_*), do_verifica, validarea antetului (valideaza_antet) si regulile
|
|
*!* schimbarii felului de document (alege_tipdoc, schimba_tipdoc); formularul vine ca parametru toForm, ramura
|
|
*!* factura/aviz se alege pe poDate.nIdTipDoc = poDate.nIdTipDocAvizExpeditie.
|
|
|
|
*!* 28.08.2026
|
|
*!* marius.mutu
|
|
*!* controalele grupului de contabilitate (Ct_clb_venchelt, Ct_clb_sectie, Ct_clb_lucrare, Ct_clb_responsabil,
|
|
*!* Ct_clb_gestiune_init, Ed_tx_simplu1) au trecut in containerul ct_contabilitate al formularului, deci
|
|
*!* referintele lor din acest fisier sunt prefixate cu containerul, inclusiv in expresiile Type().
|
|
|
|
*!* 29.09.2026
|
|
*!* marius.mutu
|
|
*!* verificare automata ANAF a clientului de pe factura: VerificaANAFAutomat clasifica verdictul (ClasificaRezultat) si il arata pe
|
|
*!* butonul But_verifica1 (AplicaIndicatorANAF: OK / ATENTIE / NECUNOSCUT / NEUTRU): textul casetei txtCodFiscal da verdictul (verde OK, rosu ATENTIE, original
|
|
*!* altfel), iconita "!!" da sursa (verde/rosu = ANAF sau istoric valabil pentru data facturii, gri = ANAF indisponibil si verdict doar din istoric mai vechi sau fara istoric,
|
|
*!* albastra originala = nimic de verificat); cod fiscal romanesc invalid (nenumeric, lungime in afara 2..10, cifra de control gresita) sau CNP invalid = ATENTIE fara apel ANAF;
|
|
*!* istoric mai vechi decat factura cu discordanta = ATENTIE cu iconita gri; la deschidere
|
|
*!* se citeste intai istoricul, la schimbarea clientului si a datei se interogheaza ANAF; butonul manual verifica la data
|
|
*!* facturii si actualizeaza indicatorul din rezultatul lui, fara alte intrebari.
|
|
*!* Acelasi indicator si aceiasi declansatori pe dialogul frm_date_factura (lFormVechi);
|
|
*!* cautarea inchisa fara alegere pastreaza indicatorul cat timp clientul ramane afisat (NEUTRU doar fara client).
|
|
|
|
Define Class oAntetFacturare As Custom
|
|
|
|
lInVerificare = .F.
|
|
lVerificaLaActivare = .F.
|
|
cCheieVerificata = ''
|
|
cStare = 'NEUTRU'
|
|
cTooltip = 'Verificare'
|
|
oNegasit = .Null.
|
|
oTextAnaf = .Null.
|
|
lFormVechi = .F.
|
|
|
|
Function EsteAviz
|
|
Return poDate.nIdTipDoc = poDate.nIdTipDocAvizExpeditie
|
|
Endfunc
|
|
|
|
Procedure do_cauta_altele
|
|
Lparameters toForm
|
|
Local llAviz
|
|
llAviz = This.EsteAviz()
|
|
If m.llAviz
|
|
Do Case
|
|
Case Inlist(toForm.nid_tip,23,41)
|
|
toForm.do_cauta_gestiune_dest()
|
|
Case Inlist(toForm.nid_tip,21,25,28,42,47) && modificare v 2.0.93 : am adaugat 47
|
|
toForm.do_cauta_comanda()
|
|
Case toForm.nid_tip = 26
|
|
toForm.do_cauta_contract()
|
|
Case toForm.nid_tip = 24 && aviz retur
|
|
toForm.do_cauta_avize()
|
|
Endcase
|
|
Else
|
|
Do Case
|
|
Case toForm.nid_tip=2
|
|
toForm.do_cauta_contract()
|
|
Case toForm.nid_tip=3
|
|
toForm.do_cauta_comanda()
|
|
Case toForm.nid_tip=4
|
|
toForm.do_cauta_avize()
|
|
*!* modificare v 2.0.46
|
|
Case toForm.nid_tip=7
|
|
toForm.do_cauta_factura()
|
|
*!* modificare v 2.0.46 ^
|
|
*!* modificare v 2.0.56
|
|
Case Inlist(toForm.nid_tip,8,9)
|
|
toForm.do_cauta_facturi()
|
|
*!* modificare v 2.0.56 ^
|
|
*!* modificare v 2.0.87
|
|
Case toForm.nid_tip = 45
|
|
toForm.do_cauta_locatii()
|
|
*!* modificare v 2.0.87 ^
|
|
Endcase
|
|
Endif
|
|
Endproc
|
|
|
|
Procedure do_cauta_avize
|
|
Lparameters toForm
|
|
Local lcXMLAvize
|
|
If Empty(Nvl(poDate.id_client,0))
|
|
amessagebox("Nu ati ales clientul!",0+48,"Atentie")
|
|
toForm.ct_clb_nume_client.SetFocus()
|
|
Else
|
|
lcXMLAvize = caut_avize(poDate.id_client) && oproceduri_facturare.prg
|
|
If !Empty(lcXMLAvize)
|
|
Xmltocursor(lcXMLAvize, "crsAvizeTemp")
|
|
*!* modificare v 2.0.44
|
|
Select id_vanzare,id_comanda,;
|
|
Padl(Iif(!Empty(Nvl(serie_act,[])),Alltrim(serie_act)+[ ],[])+Alltrim(Str(numar_act,20)),50,[ ]) As numar_act ;
|
|
From crsAvizeTemp Into Cursor crsAvizeTemp
|
|
*!* modificare v 2.0.44 ^
|
|
lcIdVanzare = cursor2lista("crsAvizeTemp", "id_vanzare", ",")
|
|
lcNumar_Act = cursor2lista("crsAvizeTemp", "numar_act", ",")
|
|
|
|
poDate.listaid = lcIdVanzare
|
|
poDate.descriere = lcNumar_Act
|
|
AddProperty(poDate,"id_comanda_aviz",0)
|
|
Select crsAvizeTemp
|
|
Locate For Not Empty(ID_COMANDA)
|
|
If Found()
|
|
poDate.id_comanda_aviz=ID_COMANDA
|
|
Endif
|
|
Use In crsAvizeTemp
|
|
|
|
toForm.ct_clb_altele.Refresh()
|
|
If Type('toForm.ct_contabilitate.ct_clb_gestiune_init.visible')<>'U' && modificare v 2.0.41
|
|
toForm.ct_contabilitate.ct_clb_gestiune_init.SetFocus()
|
|
Else
|
|
toForm.but_TERMIN1.SetFocus()
|
|
Endif
|
|
Endif
|
|
Endif
|
|
Endproc
|
|
|
|
Procedure do_cauta_client
|
|
Lparameters toForm
|
|
Local llAviz
|
|
llAviz = This.EsteAviz()
|
|
If m.llAviz
|
|
Local loCauta
|
|
Do Case
|
|
Case poDate.tip = 23
|
|
loCauta = caut_gestiune_sursa([2,4,5,6,7]) && modificare v 2.0.71 : am adaugat 2
|
|
If !Isnull(loCauta) And !Empty(loCauta.id_gestiune)
|
|
poDate.id_client = loCauta.id_gestiune
|
|
poDate.nume_client = loCauta.nume_gestiune
|
|
|
|
poDate.listaid = []
|
|
poDate.descriere = []
|
|
Endif
|
|
*!* modificare v 2.0.16
|
|
Case poDate.tip = 41
|
|
loCauta = caut_gestiune_sursa([2,4,5,6,7])
|
|
If !Isnull(loCauta) And !Empty(loCauta.id_gestiune)
|
|
poDate.id_client = loCauta.id_gestiune
|
|
poDate.nume_client = loCauta.nume_gestiune
|
|
|
|
poDate.listaid = []
|
|
poDate.descriere = []
|
|
Endif
|
|
*!* modificare v 2.0.16 ^
|
|
Case poDate.tip = 25
|
|
loCauta = caut_gestiune_dest()
|
|
If !Isnull(loCauta) And !Empty(Nvl(loCauta.id_gestiune,0))
|
|
poDate.id_client = loCauta.id_gestiune
|
|
poDate.nume_client = loCauta.nume_gestiune
|
|
|
|
poDateGestiuneDest.id_gestiune = loCauta.id_gestiune
|
|
poDateGestiuneDest.id_tipgest = loCauta.id_tipgest
|
|
poDateGestiuneDest.Cont = Nvl(loCauta.Cont,[XXXX])
|
|
poDateGestiuneDest.acont = Nvl(loCauta.acont,[XXXX])
|
|
|
|
lcSql = [begin ] + gcS + [.pack_facturare.cauta_date_comanda_gest(?poDate.id_client,?gnIdSucursala,] + ;
|
|
[?poDate.dataact,?@poDate.listaid,?@poDate.descriere); end;]
|
|
lnSucces = goExecutor.oExecute(lcSql)
|
|
If lnSucces < 0
|
|
amessagebox(goExecutor.oPrelucrareEroare(),0+16,"Eroare")
|
|
poDate.listaid = []
|
|
poDate.descriere = []
|
|
Endif
|
|
|
|
Endif
|
|
Otherwise
|
|
&& modificare v 2.0.93 : am adaugat 47
|
|
loHash = GetHash([cTitlu=>Clienti??cCont=>]+Iif(INLIST(poDate.tip,42,47),[357],Iif(Inlist(poDate.tip,28,29),[461],Alltrim(gcCont411)))+[??lAdaugCorespondente=>1??lVerificaANAF=>1])
|
|
loHash.SetValue('dDataDoc', Iif(Type('poDate.dataact') = 'D', poDate.dataact, {}))
|
|
loCauta = CautPartenerContabilitate(loHash)
|
|
If !Empty(Nvl(loCauta.id_part,0)) And !Empty(loCauta.denumire)
|
|
poDate.id_client = loCauta.id_part
|
|
poDate.nume_client = loCauta.denumire
|
|
poDate.cod_fiscal = Nvl(loCauta.cod_fiscal, '')
|
|
|
|
If Inlist(poDate.tip,21,28,42,47) && modificare v 2.0.93 : am adaugat 47
|
|
lcSql = [begin ] + gcS + [.pack_facturare.cauta_date_comanda(?poDate.id_client,?gnIdSucursala,] + ;
|
|
[?poDate.dataact,?@poDate.listaid,?@poDate.descriere); end;]
|
|
lnSucces = goExecutor.oExecute(lcSql)
|
|
If lnSucces < 0
|
|
amessagebox(goExecutor.oPrelucrareEroare(),0+16,"Eroare")
|
|
poDate.listaid = []
|
|
poDate.descriere = []
|
|
Endif
|
|
Else
|
|
poDate.listaid = []
|
|
poDate.descriere = []
|
|
Endif
|
|
|
|
Endif
|
|
Endcase
|
|
|
|
*!* modificare v 2.0.70
|
|
If Type('toForm.ct_clb_altele.visible')<>'U'
|
|
toForm.ct_clb_altele.Refresh()
|
|
Endif
|
|
*!* modificare v 2.0.70 ^
|
|
toForm.ct_clb_nume_client.Refresh()
|
|
toForm.ct_contabilitate.ct_clb_lucrare.SetFocus()
|
|
This.VerificaANAFAutomat(m.toForm, .F.)
|
|
Else
|
|
Local loCauta
|
|
loHash = GetHash([cTitlu=>Clienti??cCont=>4111??lAdaugCorespondente=>1??lVerificaANAF=>1])
|
|
loHash.SetValue('dDataDoc', Iif(Type('poDate.dataact') = 'D', poDate.dataact, {}))
|
|
loCauta = CautPartenerContabilitate(loHash)
|
|
If !Empty(Nvl(loCauta.id_part,0)) And !Empty(loCauta.denumire)
|
|
If loCauta.id_part <> poDate.id_client
|
|
poDate.listaid = []
|
|
poDate.descriere = []
|
|
poDate.text_aditional = []
|
|
Endif
|
|
poDate.id_client = loCauta.id_part
|
|
poDate.nume_client = loCauta.denumire
|
|
poDate.cod_fiscal = loCauta.cod_fiscal
|
|
|
|
If poDate.tip = 3
|
|
lcSql = [begin ] + gcS + [.pack_facturare.cauta_date_comanda(?poDate.id_client,?gnIdSucursala,] + ;
|
|
[?poDate.dataact,?@poDate.listaid,?@poDate.descriere); end;]
|
|
lnSucces = goExecutor.oExecute(lcSql)
|
|
If lnSucces < 0
|
|
amessagebox(goExecutor.oPrelucrareEroare(),0+16,"Eroare")
|
|
poDate.listaid = []
|
|
poDate.descriere = []
|
|
poDate.text_aditional = []
|
|
Endif
|
|
Endif
|
|
|
|
*!* If Type('toForm.ct_clb_altele.visible')<>'U'
|
|
*!* toForm.ct_clb_altele.Refresh()
|
|
*!* Endif
|
|
|
|
* Soldul curent
|
|
loSoldClient = GetSoldClient(poDate.id_client)
|
|
toForm.nSoldLei = loSoldClient.sold_lei
|
|
toForm.nSoldValuta = loSoldClient.sold_valuta
|
|
toForm.txtSoldLei.Refresh()
|
|
|
|
toForm.txtCodFiscal.Refresh()
|
|
|
|
toForm.ct_clb_nume_client.Refresh()
|
|
toForm.ct_contabilitate.ct_clb_lucrare.SetFocus()
|
|
|
|
toForm.ct_clb_nume_client.clb_TX_CAUTARE.text_SIMPLU1.ToolTipText = 'Id client: ' + TRANSFORM(poDate.id_client)
|
|
This.VerificaANAFAutomat(m.toForm, .F.)
|
|
Else
|
|
poDate.listaid = []
|
|
poDate.descriere = []
|
|
poDate.text_aditional = []
|
|
|
|
toForm.ct_clb_nume_client.clb_TX_CAUTARE.text_SIMPLU1.ToolTipText = ''
|
|
|
|
toForm.nSoldLei = 0
|
|
toForm.nSoldValuta = 0
|
|
toForm.txtSoldLei.Refresh()
|
|
This.ReseteazaIndicator(m.toForm)
|
|
Endif
|
|
*!* modificare v 2.0.70
|
|
If Type('toForm.ct_clb_altele.visible')<>'U'
|
|
toForm.ct_clb_altele.Refresh()
|
|
ENDIF
|
|
*!* modificare v 2.0.70 ^
|
|
Endif
|
|
Endproc
|
|
|
|
Procedure do_cauta_comanda
|
|
Lparameters toForm
|
|
Local llAviz
|
|
llAviz = This.EsteAviz()
|
|
If m.llAviz
|
|
Local loCauta
|
|
If Empty(Nvl(poDate.id_client,0))
|
|
amessagebox("Nu ati ales " + Iif(poDate.tip = 25,[gestiunea destinatie],[clientul]) + " !",0+48,"Atentie")
|
|
toForm.ct_clb_nume_client.SetFocus()
|
|
Else
|
|
If poDate.tip = 25
|
|
loCauta = caut_comanda_gestiune(poDate.id_client)
|
|
Else
|
|
loCauta = caut_comanda_client(poDate.id_client)
|
|
Endif
|
|
If !Isnull(loCauta) And !Empty(Nvl(loCauta.id_comanda,0))
|
|
poDate.listaid = loCauta.id_comanda
|
|
poDate.descriere = ALLTRIM(loCauta.nr_comanda)
|
|
toForm.ct_clb_altele.Refresh()
|
|
If Type('toForm.ct_contabilitate.ct_clb_gestiune_init.visible')<>'U' && modificare v 2.0.41
|
|
toForm.ct_contabilitate.ct_clb_gestiune_init.SetFocus()
|
|
Else
|
|
toForm.buT_TERMIN1.SetFocus()
|
|
Endif
|
|
Endif
|
|
Endif
|
|
Else
|
|
* 12.03.2021
|
|
* folosesc caut_comanda_clienti in loc de caut_comanda_client,
|
|
* ca sa pot folosi un client diferit fata de comanda (ex: pers. fizica in loc de pers. juridica)
|
|
Local loCauta
|
|
If Empty(Nvl(poDate.id_client,0))
|
|
amessagebox("Nu ati ales clientul!",0+48,"Atentie")
|
|
toForm.ct_clb_nume_client.SetFocus()
|
|
Else
|
|
* loCauta = caut_comanda_client(poDate.id_client)
|
|
loCauta = caut_comanda_clienti(poDate.id_client)
|
|
If !Isnull(loCauta) And !Empty(loCauta.id_comanda)
|
|
IF poDate.id_client <> loCauta.id_part
|
|
AMESSAGEBOX('Comanda ' + ALLTRIM(TRANSFORM(loCauta.nr_comanda)) + ' (Client: ' + ALLTRIM(loCauta.nume) + ' Id: ' + ALLTRIM(TRANSFORM(loCauta.id_part)) + ')' + ;
|
|
' nu apartine clientului ales (' + ALLTRIM(poDate.nume_client) + ' Id: ' + ALLTRIM(TRANSFORM(poDate.id_client)) + ')',0+48,_sCREEN.Caption)
|
|
ENDIF
|
|
poDate.listaid = loCauta.id_comanda
|
|
poDate.descriere = loCauta.nr_comanda
|
|
|
|
toForm.ct_clb_altele.Refresh()
|
|
If Type('toForm.ct_contabilitate.ct_clb_gestiune_init.visible')<>'U' && modificare v 2.0.41
|
|
toForm.ct_contabilitate.ct_clb_gestiune_init.SetFocus()
|
|
Else
|
|
toForm.but_TERMIN1.SetFocus()
|
|
Endif
|
|
Endif
|
|
Endif
|
|
Endif
|
|
Endproc
|
|
|
|
Procedure do_cauta_contract
|
|
Lparameters toForm
|
|
Local llAviz
|
|
llAviz = This.EsteAviz()
|
|
If m.llAviz
|
|
Local loCauta
|
|
If Empty(Nvl(poDate.id_client,0))
|
|
amessagebox("Nu ati ales clientul!",0+48,"Atentie")
|
|
toForm.ct_clb_nume_client.SetFocus()
|
|
Else
|
|
*!* modificare v 2.0.67
|
|
*!* loCauta = caut_contract_facturare(poDate.id_client)
|
|
*!* If !Isnull(loCauta) And !Empty(Nvl(loCauta.id_ctr,0))
|
|
*!* poDate.listaid = loCauta.id_ctr
|
|
*!* poDate.descriere = loCauta.contract
|
|
*!* *!* If Inlist(loCauta.opt_facturare,3,4) And !Empty(loCauta.scadenta_incasare)
|
|
*!* *!* poDate.datascad = poDate.dataact + loCauta.scadenta_incasare
|
|
*!* *!* toForm.clb_data_scadenta.Refresh()
|
|
*!* *!* *!* Else
|
|
*!* *!* *!* poDate.datascad = Iif(gnScadentaAutomata=0,Gomonth(poDate.dataact,1),poDate.dataact+gnZileScadentaFact)
|
|
*!* *!* Endif
|
|
*!* toForm.ct_clb_altele.Refresh()
|
|
*!* *!* modificare v 2.0.41
|
|
*!* If Inlist(loCauta.opt_facturare,3,4)
|
|
*!* If Type('toForm.ct_contabilitate.ct_clb_gestiune_init.visible')<>'U'
|
|
*!* toForm.ct_contabilitate.ct_clb_gestiune_init.Visible = .T.
|
|
*!* toForm.ct_contabilitate.ct_clb_gestiune_init.SetFocus()
|
|
*!* Else
|
|
*!* toForm.but_termin1.SetFocus()
|
|
*!* Endif
|
|
*!* Else
|
|
*!* poDate.id_gestiune_init = Null
|
|
*!* toForm.cgestiune_init = []
|
|
*!* *!* If Type('toForm.ct_contabilitate.ct_clb_gestiune_init.visible')<>'U'
|
|
*!* *!* toForm.ct_contabilitate.ct_clb_gestiune_init.Refresh()
|
|
*!* *!* toForm.ct_contabilitate.ct_clb_gestiune_init.Visible = .F.
|
|
*!* *!* Endif
|
|
*!* *!* toForm.but_termin1.SetFocus()
|
|
*!* amessagebox("Acest contract este in rate si nu se poate emite aviz pentru el!",48,"Atentie")
|
|
*!* Endif
|
|
*!* *!* modificare v 2.0.41 ^
|
|
*!* *!* toForm.buT_TERMIN1.SetFocus()
|
|
*!* Endif
|
|
lcXMLContracte = caut_contract_facturare(poDate.id_client,[3,4])
|
|
If !Empty(lcXMLContracte) And gnButon = 1
|
|
Xmltocursor(lcXMLContracte, "crsCtrTemp")
|
|
poDate.listaid = cursor2lista("crsCtrTemp", "id_ctr", ",")
|
|
poDate.descriere = cursor2lista("crsCtrTemp", "contract", ",")
|
|
toForm.ct_clb_altele.Refresh()
|
|
If Type('toForm.ct_contabilitate.ct_clb_gestiune_init.visible')<>'U'
|
|
toForm.ct_contabilitate.ct_clb_gestiune_init.Visible = .T.
|
|
toForm.ct_contabilitate.ct_clb_gestiune_init.SetFocus()
|
|
Else
|
|
toForm.but_termin1.SetFocus()
|
|
Endif
|
|
*!* Use In crsCtrTemp
|
|
Endif
|
|
*!* modificare v 2.0.67 ^
|
|
Endif
|
|
Else
|
|
Local loCauta,lcXMLContracte
|
|
If Empty(Nvl(poDate.id_client,0))
|
|
amessagebox("Nu ati ales clientul!",0+48,"Atentie")
|
|
toForm.ct_clb_nume_client.SetFocus()
|
|
Else
|
|
*!* modificare v 2.0.67
|
|
*!* loCauta = caut_contract_facturare(poDate.id_client)
|
|
*!* If !Isnull(loCauta) And !Empty(loCauta.id_ctr)
|
|
*!* poDate.listaid = loCauta.id_ctr
|
|
*!* poDate.descriere = loCauta.contract
|
|
*!* toForm.ct_clb_altele.Refresh()
|
|
*!* If Inlist(loCauta.opt_facturare,3,4)
|
|
*!* If !Empty(loCauta.scadenta_incasare)
|
|
*!* poDate.datascad = poDate.dataact + loCauta.scadenta_incasare
|
|
*!* toForm.clb_data_scadenta.Refresh()
|
|
*!* Endif
|
|
*!* *!* modificare v 2.0.41
|
|
*!* If Type('toForm.ct_contabilitate.ct_clb_gestiune_init.visible')<>'U'
|
|
*!* toForm.ct_contabilitate.ct_clb_gestiune_init.Visible = .T.
|
|
*!* toForm.ct_contabilitate.ct_clb_gestiune_init.SetFocus()
|
|
*!* Else
|
|
*!* toForm.but_termin1.SetFocus()
|
|
*!* Endif
|
|
*!* *!* modificare v 2.0.41 ^
|
|
*!* Else
|
|
*!* *!* poDate.datascad = Iif(gnScadentaAutomata=0,Gomonth(poDate.dataact,1),poDate.dataact+gnZileScadentaFact)
|
|
*!* *!* modificare v 2.0.41
|
|
*!* poDate.id_gestiune_init = Null
|
|
*!* toForm.cgestiune_init = []
|
|
*!* If Type('toForm.ct_contabilitate.ct_clb_gestiune_init.visible')<>'U'
|
|
*!* toForm.ct_contabilitate.ct_clb_gestiune_init.Refresh()
|
|
*!* toForm.ct_contabilitate.ct_clb_gestiune_init.Visible = .F.
|
|
*!* Endif
|
|
*!* toForm.but_termin1.SetFocus()
|
|
*!* Endif
|
|
*!* *!* modificare v 2.0.41 ^
|
|
lcXMLContracte = caut_contract_facturare(poDate.id_client)
|
|
If !Empty(lcXMLContracte) And gnButon = 1
|
|
Xmltocursor(lcXMLContracte, "crsCtrTemp")
|
|
poDate.listaid = cursor2lista("crsCtrTemp", "id_ctr", ",")
|
|
poDate.descriere = cursor2lista("crsCtrTemp", "contract", ",")
|
|
toForm.ct_clb_altele.Refresh()
|
|
Select crsCtrTemp
|
|
Calculate Min(scadenta_incasare),MAX(afisare_scadenta) For Inlist(opt_facturare,3,4,0) To lnScadentaIncasare,lnAfisareScadenta
|
|
If lnScadentaIncasare <> 0
|
|
poDate.datascad = poDate.dataact + lnScadentaIncasare
|
|
toForm.clb_data_scadenta.Refresh()
|
|
Endif
|
|
poDate.afisare_scadenta = lnAfisareScadenta && modificare ROACONTRACTE v 2.0.38
|
|
If Type('toForm.ct_contabilitate.ct_clb_gestiune_init.visible')<>'U'
|
|
toForm.ct_contabilitate.ct_clb_gestiune_init.Visible = .T.
|
|
toForm.ct_contabilitate.ct_clb_gestiune_init.SetFocus()
|
|
Else
|
|
toForm.but_termin1.SetFocus()
|
|
Endif
|
|
*!* Use In crsCtrTemp
|
|
*!* modificare v 2.0.67 ^
|
|
Endif
|
|
Endif
|
|
Endif
|
|
Endproc
|
|
|
|
Procedure do_cauta_factura
|
|
Lparameters toForm
|
|
*!* modificare v 2.0.46
|
|
Local loCauta
|
|
If Empty(Nvl(poDate.id_client,0))
|
|
amessagebox("Nu ati ales clientul!",0+48,"Atentie")
|
|
toForm.ct_clb_nume_client.SetFocus()
|
|
Else
|
|
loCauta = caut_facturi_client(poDate.id_client)
|
|
If !Isnull(loCauta) And !Empty(loCauta.id_fact)
|
|
poDate.descriere = Alltrim(Alltrim(Nvl(loCauta.serie_act,[]))+[ ]+Alltrim(Str(loCauta.nract,14,0)))
|
|
poDate.text_aditional = [INVOICE ] + poDate.descriere
|
|
toForm.ct_clb_altele.Refresh()
|
|
toForm.buT_TERMIN1.SetFocus()
|
|
Endif
|
|
EndIf
|
|
*!* modificare v 2.0.46 ^
|
|
Endproc
|
|
|
|
Procedure do_cauta_facturi
|
|
Lparameters toForm
|
|
*!* modificare v 2.0.56
|
|
Local loCauta
|
|
Do Case
|
|
Case Empty(Nvl(poDate.id_client,0))
|
|
amessagebox("Nu ati ales clientul!",0+48,"Atentie")
|
|
toForm.ct_clb_nume_client.SetFocus()
|
|
Case Empty(Nvl(poDate.id_valuta,0)) And poDate.tip = 9
|
|
amessagebox("Nu ati ales valuta!",0+48,"Atentie")
|
|
toForm.ct_clb_valuta.SetFocus()
|
|
OTHERWISE
|
|
* 03.07.2020, marius
|
|
* Nu stiu de ce se alegea o singura factura la retur.
|
|
* Era si codul pentru mai multe facturi retur, dar era comentat
|
|
|
|
*!* loCauta = caut_facturi_multiple_client(poDate.id_client,poDate.in_valuta,poDate.id_valuta)
|
|
*!* If gnButon = 1 and !Empty(Nvl(loCauta.id_vanzare,0))
|
|
*!* poDate.listaid = Alltrim(Str(loCauta.id_vanzare))
|
|
*!* poDate.descriere = Alltrim(Iif(!Empty(Nvl(loCauta.serie_act,[])),Alltrim(loCauta.serie_act)+[ ],[])+Alltrim(Str(loCauta.numar_act,20,0)))
|
|
|
|
* pentru mai multe facturi :
|
|
lcXMLFacturi = caut_facturi_multiple_client(poDate.id_client,poDate.in_valuta,poDate.id_valuta,.T.)
|
|
If !Empty(lcXMLFacturi) and gnButon = 1
|
|
Xmltocursor(lcXMLFacturi, "crsFacturiTemp")
|
|
Select id_vanzare,;
|
|
Padl(Iif(!Empty(Nvl(serie_act,[])),Alltrim(serie_act)+[ ],[])+Alltrim(Str(numar_act,20,0)),50,[ ]) As numar_act ;
|
|
From crsFacturiTemp Into Cursor crsFacturiTemp
|
|
poDate.listaid = cursor2lista("crsFacturiTemp", "id_vanzare", ",")
|
|
poDate.descriere = cursor2lista("crsFacturiTemp", "numar_act", ",")
|
|
USE IN (SELECT('crsFacturiTemp'))
|
|
|
|
poDate.text_aditional = Iif(poDate.tip=8,[RETUR FACTURA ],[REFUND INVOICE FOR ]) + poDate.descriere
|
|
|
|
toForm.ct_clb_altele.Refresh()
|
|
toForm.buT_TERMIN1.SetFocus()
|
|
Endif
|
|
Endcase
|
|
*!* modificare v 2.0.56 ^
|
|
Endproc
|
|
|
|
Procedure do_cauta_fdoc
|
|
Lparameters toForm
|
|
Local loCauta
|
|
loCauta = caut_fdoc()
|
|
If !Isnull(loCauta) And !Empty(loCauta.fel_document)
|
|
poDate.id_fdoc = loCauta.id_fdoc
|
|
poDate.fdoc = loCauta.fel_document
|
|
|
|
toForm.clb_fdoc.Refresh()
|
|
toForm.clb_dataact.SetFocus()
|
|
Endif
|
|
Endproc
|
|
|
|
Procedure do_cauta_gestiune_dest
|
|
Lparameters toForm
|
|
Local loCauta
|
|
If Empty(NVL(poDate.id_client,0))
|
|
amessagebox("Nu ati ales gestiunea " + Iif(poDate.tip = 41,"de la care se face returul!","sursa!") ,0+48,"Atentie")
|
|
toForm.ct_clb_nume_client.SetFocus()
|
|
Else
|
|
If poDate.tip = 41
|
|
loCauta = caut_gestiune_dest(poDate.id_client,[2,4,5,6,7]) && modificare v 2.0.71 : am adaugat 2
|
|
Else
|
|
loCauta = caut_gestiune_dest(poDate.id_client)
|
|
Endif
|
|
If !Isnull(loCauta) And !Empty(NVL(loCauta.id_gestiune,0))
|
|
poDate.listaid = loCauta.id_gestiune
|
|
poDate.descriere = loCauta.nume_gestiune
|
|
|
|
poDateGestiuneDest.id_gestiune = loCauta.id_gestiune
|
|
poDateGestiuneDest.id_tipgest = loCauta.id_tipgest
|
|
poDateGestiuneDest.Cont = Nvl(loCauta.Cont,[XXXX])
|
|
poDateGestiuneDest.acont = Nvl(loCauta.acont,[XXXX])
|
|
|
|
toForm.ct_clb_altele.Refresh()
|
|
toForm.ct_clb_politici_preturi.SetFocus()
|
|
Endif
|
|
Endif
|
|
Endproc
|
|
|
|
Procedure do_cauta_gestiune_init
|
|
Lparameters toForm
|
|
Local llAviz
|
|
llAviz = This.EsteAviz()
|
|
loCauta = caut_gestiune(0,gnIdUtil)
|
|
If !Isnull(loCauta) And !Empty(loCauta.id_gestiune)
|
|
poDate.id_gestiune_init = loCauta.id_gestiune
|
|
toForm.cgestiune_init = loCauta.nume_gestiune
|
|
Else
|
|
poDate.id_gestiune_init = Null
|
|
toForm.cgestiune_init = []
|
|
Endif
|
|
toForm.ct_contabilitate.ct_clb_gestiune_init.Refresh()
|
|
If m.llAviz
|
|
toForm.buT_TERMIN1.SetFocus()
|
|
Else
|
|
*!* modificare ROACONTRACTE v 2.0.42
|
|
*!* toForm.buT_TERMIN1.SetFocus()
|
|
toForm.ct_contabilitate.ed_tx_simplu1._edbase1.SetFocus()
|
|
*!* modificare ROACONTRACTE v 2.0.42 ^
|
|
Endif
|
|
Endproc
|
|
|
|
Procedure do_cauta_locatii
|
|
Lparameters toForm
|
|
Local loCauta
|
|
loCauta = caut_locatie_restaurant()
|
|
If !Isnull(loCauta) And !Empty(loCauta.id_rest_locatie)
|
|
poDate.listaid = loCauta.id_rest_locatie
|
|
poDate.descriere = loCauta.locatie
|
|
toForm.ct_clb_altele.Refresh()
|
|
toForm.but_TERMIN1.SetFocus()
|
|
Endif
|
|
Endproc
|
|
|
|
Procedure do_cauta_lucrare
|
|
Lparameters toForm
|
|
Local llAviz
|
|
llAviz = This.EsteAviz()
|
|
Local loCauta
|
|
LOCAL llToateIreg, llNou, lcFiltruOriginal
|
|
llToateIreg = .F.
|
|
llNou = .T.
|
|
lcFiltruOriginal = ''
|
|
|
|
loCauta = caut_lucrare(m.llToateIreg, m.llNou, m.lcFiltruOriginal)
|
|
If m.llAviz
|
|
|
|
If !Empty(Nvl(loCauta.id_lucrare,0))
|
|
poDate.id_lucrare = loCauta.id_lucrare
|
|
poDate.nrord = loCauta.nrord
|
|
Else
|
|
poDate.id_lucrare = Null
|
|
poDate.nrord = []
|
|
Endif
|
|
toForm.ct_contabilitate.ct_clb_lucrare.Refresh()
|
|
Else
|
|
*!* modificare v 2.0.46
|
|
*!* If !Empty(Nvl(loCauta.id_lucrare,0))
|
|
*!* poDate.id_lucrare = loCauta.id_lucrare
|
|
*!* poDate.nrord = loCauta.nrord
|
|
|
|
*!* toForm.ct_contabilitate.ct_clb_lucrare.Refresh()
|
|
*!* Endif
|
|
If gnButon = 1
|
|
poDate.id_lucrare = loCauta.id_lucrare
|
|
poDate.nrord = loCauta.nrord
|
|
Else
|
|
poDate.id_lucrare = Null
|
|
poDate.nrord = []
|
|
Endif
|
|
*!* modificare v 2.0.46 ^
|
|
Endif
|
|
toForm.ct_contabilitate.ct_clb_sectie.SetFocus()
|
|
Endproc
|
|
|
|
Procedure do_cauta_politica
|
|
Lparameters toForm
|
|
Local loCauta
|
|
loCauta = caut_politici_curente_util()
|
|
If !Isnull(loCauta) And !Empty(Nvl(loCauta.id_pol,0))
|
|
poDate.id_pol = loCauta.id_pol
|
|
poDate.nume_politica = loCauta.nume
|
|
|
|
toForm.ct_clb_politici_preturi.SetFocus()
|
|
If Type('toForm.ct_contabilitate.ct_clb_gestiune_init.visible')<>'U' && modificare v 2.0.41
|
|
toForm.ct_contabilitate.ct_clb_gestiune_init.SetFocus()
|
|
Else
|
|
toForm.buT_TERMIN1.SetFocus()
|
|
Endif
|
|
Endif
|
|
Endproc
|
|
|
|
Procedure do_cauta_responsabil
|
|
Lparameters toForm
|
|
Local loCauta
|
|
loCauta = CautPartenerContabilitate(GetHash([cTitlu=>Responsabili??cTipuriParteneri=>]+Alltrim(Str(gnIdTipResponsabili))+[??lAdaugCorespondente=>1]))
|
|
If !Empty(Nvl(loCauta.id_part,0)) And !Empty(loCauta.denumire)
|
|
poDate.id_responsabil = loCauta.id_part
|
|
poDate.responsabil = loCauta.denumire
|
|
Else
|
|
poDate.id_responsabil = Null
|
|
poDate.responsabil = []
|
|
Endif
|
|
toForm.ct_contabilitate.ct_clb_responsabil.Refresh()
|
|
Do Case
|
|
Case Type('toForm.ct_clb_altele.visible')<>'U'
|
|
toForm.ct_clb_altele.SetFocus()
|
|
Case Type('toForm.ct_contabilitate.ct_clb_gestiune_init.visible')<>'U' && modificare v 2.0.41
|
|
toForm.ct_contabilitate.ct_clb_gestiune_init.SetFocus()
|
|
Otherwise
|
|
toForm.buT_TERMIN1.SetFocus()
|
|
Endcase
|
|
Endproc
|
|
|
|
Procedure do_cauta_sectie
|
|
Lparameters toForm
|
|
Local llAviz
|
|
llAviz = This.EsteAviz()
|
|
Local loCauta
|
|
LOCAL lnPornire, llDesktop, llToateIreg, llNou, lcFiltruOriginal
|
|
lnPornire = 0
|
|
llDesktop = .F.
|
|
llToateIreg = .F.
|
|
llNou = .T.
|
|
lcFiltruOriginal = ''
|
|
|
|
loCauta = caut_sectie(lnPornire, llDesktop, m.llToateIreg, m.llNou, m.lcFiltruOriginal)
|
|
If m.llAviz
|
|
If !Empty(Nvl(loCauta.id_sectie,0))
|
|
poDate.id_sectie = loCauta.id_sectie
|
|
poDate.sectie = loCauta.sectie
|
|
Else
|
|
poDate.id_sectie = Null
|
|
poDate.sectie = []
|
|
Endif
|
|
toForm.ct_contabilitate.ct_clb_sectie.Refresh()
|
|
Else
|
|
*!* modificare v 2.0.46
|
|
*!* If !Empty(Nvl(loCauta.id_sectie,0))
|
|
*!* poDate.id_sectie = loCauta.id_sectie
|
|
*!* poDate.sectie = loCauta.sectie
|
|
*!* toForm.ct_contabilitate.ct_clb_sectie.Refresh()
|
|
*!* Endif
|
|
If gnButon = 1
|
|
poDate.id_sectie = loCauta.id_sectie
|
|
poDate.sectie = loCauta.sectie
|
|
Else
|
|
poDate.id_sectie = Null
|
|
poDate.sectie = []
|
|
Endif
|
|
toForm.ct_contabilitate.ct_clb_sectie.Refresh()
|
|
*!* modificare v 2.0.46 ^
|
|
Endif
|
|
Do Case
|
|
*!* modificare v 2.0.46
|
|
Case Type('toForm.ct_contabilitate.ct_clb_venchelt.visible')<>'U'
|
|
toForm.ct_contabilitate.ct_clb_venchelt.SetFocus()
|
|
*!* modificare v 2.0.46 ^
|
|
Case Type('toForm.ct_contabilitate.ct_clb_responsabil.visible')<>'U'
|
|
toForm.ct_contabilitate.ct_clb_responsabil.SetFocus()
|
|
Case Type('toForm.ct_clb_altele.visible')<>'U'
|
|
If m.llAviz
|
|
toForm.ct_clb_altele.Refresh()
|
|
Endif
|
|
toForm.ct_clb_altele.SetFocus()
|
|
Case Type('toForm.ct_contabilitate.ct_clb_gestiune_init.visible')<>'U' && modificare v 2.0.41
|
|
toForm.ct_contabilitate.ct_clb_gestiune_init.SetFocus()
|
|
Otherwise
|
|
toForm.buT_TERMIN1.SetFocus()
|
|
Endcase
|
|
Endproc
|
|
|
|
Procedure do_cauta_valuta
|
|
Lparameters toForm
|
|
Local loCauta
|
|
loCauta = caut_valuta(1,.F.,.T.)
|
|
If !Isnull(loCauta) And !Empty(loCauta.id_valuta)
|
|
poDate.id_valuta = loCauta.id_valuta
|
|
poDate.nume_valuta = loCauta.nume_val
|
|
|
|
toForm.ct_clb_valuta.Refresh()
|
|
If Type('toForm.clb_zi_curs.visible')<>'U'
|
|
toForm.clb_zi_curs.SetFocus()
|
|
Else
|
|
toForm.clb_serie_act1.SetFocus()
|
|
Endif
|
|
Endif
|
|
Endproc
|
|
|
|
Procedure do_cauta_venchelt
|
|
Lparameters toForm
|
|
Local llAviz
|
|
llAviz = This.EsteAviz()
|
|
Local loCauta
|
|
LOCAL lnPornire, llDesktop, lnTip, lnId, llToateIreg, llNou, lcFiltruOriginal
|
|
lnPornire = 0
|
|
llDesktop = .F.
|
|
lnTip = 2 && venituri
|
|
lnId = 0
|
|
llToateIreg = .F.
|
|
llNou = .T.
|
|
lcFiltruOriginal = ''
|
|
loCauta = caut_venchelt(m.lnPornire, m.llDesktop, m.lnTip, m.lnId, m.llToateIreg, m.llNou, m.lcFiltruOriginal)
|
|
|
|
If gnButon = 1
|
|
poDate.id_venchelt = loCauta.id_venchelt
|
|
poDate.venchelt = loCauta.explicatie
|
|
Else
|
|
poDate.id_venchelt = Null
|
|
poDate.venchelt = []
|
|
Endif
|
|
toForm.ct_contabilitate.ct_clb_venchelt.Refresh()
|
|
Do Case
|
|
Case Type('toForm.ct_contabilitate.ct_clb_responsabil.visible')<>'U'
|
|
toForm.ct_contabilitate.ct_clb_responsabil.SetFocus()
|
|
Case Type('toForm.ct_clb_altele.visible')<>'U'
|
|
If m.llAviz
|
|
toForm.ct_clb_altele.Refresh()
|
|
Endif
|
|
toForm.ct_clb_altele.SetFocus()
|
|
Case Type('toForm.ct_contabilitate.ct_clb_gestiune_init.visible')<>'U'
|
|
toForm.ct_contabilitate.ct_clb_gestiune_init.SetFocus()
|
|
Otherwise
|
|
toForm.buT_TERMIN1.SetFocus()
|
|
Endcase
|
|
Endproc
|
|
|
|
Procedure do_verifica
|
|
Lparameters toForm
|
|
Local loDate As "empty"
|
|
Local lnOptiune, lnRaspuns, loPartener
|
|
|
|
lnOptiune = 1
|
|
loPartener = Null
|
|
loDate = Createobject("empty")
|
|
|
|
AddProperty(loDate, "denumire", poDate.nume_client)
|
|
AddProperty(loDate, "cod_fiscal", poDate.cod_fiscal)
|
|
AddProperty(loDate, "data", ANAF_CaData(Iif(Type('poDate.dataact') $ 'DT', poDate.dataact, {})))
|
|
AddProperty(loDate, "tip_verificare", "ANAF_SERVICIU_WEB")
|
|
|
|
lnRaspuns = VerificaCodFiscal(loDate, @lnOptiune, @loPartener)
|
|
This.AplicaRezultatButon(m.toForm, m.loPartener)
|
|
Endproc
|
|
|
|
Procedure valideaza_antet
|
|
Lparameters toForm
|
|
Local plReturn,lcFacturi_dublate, llCopiere, llAviz
|
|
Store .T. To plReturn
|
|
llAviz = This.EsteAviz()
|
|
llCopiere = toForm.lCopiere && copiere factura/aviz
|
|
|
|
Do Case
|
|
Case Empty(poDate.dataireg)
|
|
amessagebox("Nu ati completat data inregistrarii!",48,"Atentie")
|
|
toForm.clb_dataireg.SetFocus()
|
|
plReturn = .F.
|
|
Case Empty(poDate.dataact)
|
|
amessagebox("Nu ati completat data documentului!",48,"Atentie")
|
|
toForm.clb_dataact.SetFocus()
|
|
plReturn = .F.
|
|
Case !m.llAviz And Empty(poDate.datascad)
|
|
amessagebox("Nu ati completat data scadenta!",48,"Atentie")
|
|
toForm.clb_data_scadenta.SetFocus()
|
|
plReturn = .F.
|
|
Case Isnull(poDate.id_fdoc) Or Empty(poDate.id_fdoc)
|
|
amessagebox("Nu ati ales felul documentului!",48,"Atentie")
|
|
toForm.clb_fdoc.SetFocus()
|
|
plReturn = .F.
|
|
*!* modificare v 2.0.56
|
|
Case !m.llAviz And poDate.in_valuta = 1 And Empty(Nvl(poDate.zi_curs,{})) And Type('toForm.clb_zi_curs.visible')<>'U'
|
|
*!* Case poDate.in_valuta = 1 And Empty(Nvl(poDate.zi_curs,{}))
|
|
*!* modificare v 2.0.56 ^
|
|
amessagebox("Nu ati completat ziua cursului valutar!",48,"Atentie")
|
|
toForm.clb_zi_curs.SetFocus()
|
|
plReturn = .F.
|
|
Case !m.llAviz And poDate.in_valuta = 1 And Empty(Nvl(poDate.id_valuta,0))
|
|
amessagebox("Nu ati completat valuta!",48,"Atentie")
|
|
toForm.ct_clb_valuta.SetFocus()
|
|
plReturn = .F.
|
|
Case Empty(poDate.nract)
|
|
amessagebox("Nu ati completat numarul documentului!",48,"Atentie")
|
|
toForm.clb_nract.SetFocus()
|
|
plReturn = .F.
|
|
Case !Between(poDate.dataireg,Date(gnAn,gnLuna,1),Gomonth(Date(gnAn,gnLuna,1),1)-1)
|
|
amessagebox("Data inregistrarii trebuie sa fie din luna "+Alltrim(Str(gnLuna))+"/"+Alltrim(Str(gnAn))+" !",48,"Atentie")
|
|
toForm.clb_dataireg.SetFocus()
|
|
plReturn = .F.
|
|
Case !m.llAviz And poDate.datascad<poDate.dataact
|
|
amessagebox("Data scadenta trebuie sa fie mai mare sau egala cu data documentului!",48,"Atentie")
|
|
toForm.clb_data_scadenta.SetFocus()
|
|
plReturn = .F.
|
|
Case poDate.dataact>poDate.dataireg
|
|
amessagebox("Data documentului trebuie sa fie mai mica sau egala cu data inregistrarii!",48,"Atentie")
|
|
toForm.clb_dataact.SetFocus()
|
|
plReturn = .F.
|
|
Case !m.llAviz And (Empty(poDate.id_client) Or Isnull(poDate.id_client)) && aviz: fara validare client
|
|
amessagebox("Nu ati ales clientul!",48,"Atentie")
|
|
toForm.ct_clb_nume_client.SetFocus()
|
|
plReturn = .F.
|
|
Case !m.llAviz And Empty(Nvl(poDate.descriere,[])) And poDate.tip = 7
|
|
amessagebox("Nu ati ales factura!",48,"Atentie")
|
|
toForm.ct_clb_altele.SetFocus()
|
|
plReturn = .F.
|
|
Case !m.llAviz And Empty(Nvl(poDate.descriere,[])) And m.llCopiere
|
|
amessagebox("Nu ati ales factura de copiat!",48,"Atentie")
|
|
toForm.ct_clb_altele.SetFocus()
|
|
plReturn = .F.
|
|
Case m.llAviz And Empty(Nvl(poDate.descriere,[])) And m.llCopiere
|
|
amessagebox("Nu ati ales avizul de copiat!",48,"Atentie")
|
|
toForm.ct_clb_altele.SetFocus()
|
|
plReturn = .F.
|
|
*!* modificare v 2.0.56
|
|
Case !m.llAviz And Empty(Nvl(poDate.descriere,[])) And Inlist(poDate.tip,8,9)
|
|
amessagebox("Nu ati ales factura/facturile pentru care se face returul!",48,"Atentie")
|
|
toForm.ct_clb_altele.SetFocus()
|
|
plReturn = .F.
|
|
*!* modificare v 2.0.56 ^
|
|
Case !m.llAviz And Empty(Nvl(poDate.listaid,[])) And !Inlist(poDate.tip,1,5,7,8,9,10,48,49) && modificare : am adaugat 10 ( v 2.0.56 ), 48 ( v 2.0.93 ), 49 ( v 2.0.95 )
|
|
Do Case
|
|
Case Inlist(poDate.tip, 2, 6, 52)
|
|
lcMesaj = [Nu ati ales contractul!]
|
|
Case poDate.tip = 3
|
|
lcMesaj = [Nu ati ales comanda!]
|
|
Case poDate.tip = 4
|
|
lcMesaj = [Nu ati ales avizul!]
|
|
Case poDate.tip = 45 && modificare v 2.0.87
|
|
lcMesaj = [Nu ati ales locatia!]
|
|
Endcase
|
|
amessagebox(lcMesaj,48,"Atentie")
|
|
toForm.ct_clb_altele.SetFocus()
|
|
plReturn = .F.
|
|
Case m.llAviz And Empty(Nvl(poDate.listaid,[])) And Inlist(poDate.tip,21,23,25,26,28,41,42,47) && modificare v 2.0.93 : am adaugat 47
|
|
Do Case
|
|
Case INLIST(poDate.tip,21,25,28,42,47) && modificare v 2.0.93 : am adaugat 47
|
|
lcMesaj = [Nu ati ales comanda!]
|
|
Case poDate.tip = 23
|
|
lcMesaj = [Nu ati ales gestiunea destinatie!]
|
|
*!* modificare v 2.0.16
|
|
Case poDate.tip = 41
|
|
lcMesaj = [Nu ati ales gestiunea catre care se face returul!]
|
|
*!* modificare v 2.0.16 ^
|
|
Case poDate.tip = 26
|
|
lcMesaj = [Nu ati ales contractul!]
|
|
Endcase
|
|
amessagebox(lcMesaj,48,"Atentie")
|
|
toForm.ct_clb_altele.SetFocus()
|
|
plReturn = .F.
|
|
Case m.llAviz And Empty(Nvl(poDate.id_pol,0)) And InList(poDate.tip,23,41)
|
|
amessagebox("Nu ati ales politica de preturi!",48,"Atentie")
|
|
toForm.ct_clb_politici_preturi.SetFocus()
|
|
plReturn = .F.
|
|
Otherwise
|
|
*!* modificare v 2.0.46
|
|
*!* plReturn = .T.
|
|
lcFacturi_dublate = facturi_duplicate(Iif(m.llAviz,'418','4111'), 0, poDate.serie_act, poDate.nract, [])
|
|
If !Empty(lcFacturi_dublate)
|
|
lnRaspuns = amessagebox(lcFacturi_dublate + Chr(13)+"Doriti sa continuati?",4+32,Iif(m.llAviz,"Avize dublate","Facturi dublate"))
|
|
plReturn = (m.lnRaspuns = 6)
|
|
Endif
|
|
*!* modificare v 2.0.46 ^
|
|
|
|
* Daca FACTURA si clientul se numeste "CLIENT"[I DIVERSI]
|
|
* Atentionez ca ar trebui sa se aleaga "BON FISCAL" in loc de "FACTURA"
|
|
IF poDate.nIdTipDoc = poDate.nIdTipDocFactura AND 'CLIENT'$UPPER(NVL(poDate.nume_client,''))
|
|
lnRaspuns = amessagebox('Ati ales clientul ' + ALLTRIM(poDate.nume_client) + ' si Tip document = FACTURA in loc de BON FISCAL' + Chr(13)+"Doriti sa continuati?",4+32,"Bon Fiscal")
|
|
plReturn = (m.lnRaspuns = 6)
|
|
ENDIF
|
|
Endcase
|
|
Return plReturn
|
|
Endproc
|
|
|
|
Function alege_tipdoc
|
|
Lparameters tcTipDoc
|
|
LOCAL lnIdTipDoc, lcTipDoc
|
|
lcTipDoc = UPPER(m.tcTipDoc)
|
|
|
|
lnIdTipDoc = IIF(m.lcTipDoc = 'FACTURA', poDate.nIdTipDocFactura, ;
|
|
IIF(m.lcTipDoc = 'PROFORMA', poDate.nIdTipDocProforma, ;
|
|
IIF(m.lcTipDoc = 'BON FISCAL', poDate.nIdTipDocBonFiscal, ;
|
|
IIF(m.lcTipDoc = 'AVIZ', poDate.nIdTipDocAvizExpeditie, poDate.nIdTipDocFactura))))
|
|
|
|
*!* poDate.nIdTipDocFactura = 5
|
|
*!* poDate.nIdTipDocProforma = 23
|
|
*!* poDate.nIdTipDocBonFiscal = 3
|
|
*!* poDate.nIdTipDocAvizExpeditie = 6
|
|
|
|
*!* poDate.eProforma = IIF(m.lnIdTipDoc = poDate.nIdTipDocProforma, 1, 0)
|
|
*!* poDate.eBonFiscal = IIF(m.lnIdTipDoc = poDate.nIdTipDocBonFiscal, 1, 0)
|
|
poDate.initializeaza_setari_document(IIF(m.lnIdTipDoc = poDate.nIdTipDocBonFiscal, -101, IIF(m.lnIdTipDoc = poDate.nIdTipDocProforma, -102, poDate.Tip)))
|
|
Return m.lnIdTipDoc
|
|
Endfunc
|
|
|
|
Function schimba_tipdoc
|
|
Lparameters tnIdTipDoc
|
|
IF poDate.nIdTipDoc = m.tnIdTipDoc
|
|
RETURN .F.
|
|
ENDIF
|
|
|
|
poDate.nract = 0
|
|
poDate.serie_act = ""
|
|
|
|
poGeneratorNumere.dezaloca_numar(poDate.nIdTipDoc)
|
|
poDate.nIdTipDoc = m.tnIdTipDoc && se initializeaza automat si .eBonFiscal, .eProforma
|
|
poDate.rezultat_serii = poGeneratorNumere.creeaza_cursor_serii(poDate.nIdTipDoc) && 1 = CU SERIE, 2 = FARA SERIE CU PLAJE, 3 = CU SERIE SI PLAJE
|
|
Return .T.
|
|
Endfunc
|
|
|
|
Procedure VerificaANAFAutomat
|
|
Lparameters toForm, tlIstoricIntai
|
|
Local lcCod, ldData, lcMotiv, lcCheie, loRez, loEx
|
|
If This.lInVerificare
|
|
Return
|
|
Endif
|
|
This.lVerificaLaActivare = .F.
|
|
This.lInVerificare = .T.
|
|
Try
|
|
lcCod = This.CodFiscalClient()
|
|
ldData = ANAF_CaData(Iif(Type('poDate.dataact') $ 'DT', poDate.dataact, {}))
|
|
lcMotiv = This.MotivNeutru(m.lcCod, m.ldData)
|
|
lcCheie = Upper(Chrtran(m.lcCod, ' ', '')) + '_' + Dtos(m.ldData)
|
|
Do Case
|
|
Case !Empty(m.lcMotiv)
|
|
This.cCheieVerificata = ''
|
|
This.AplicaIndicatorANAF(m.toForm, 'NEUTRU', m.lcMotiv)
|
|
Case This.CodInvalid(m.lcCod)
|
|
This.cCheieVerificata = ''
|
|
This.AplicaIndicatorANAF(m.toForm, 'ATENTIE', 'Cod fiscal invalid: ' + m.lcCod)
|
|
Case m.lcCheie == This.cCheieVerificata
|
|
&& indicatorul e deja la zi pentru cod si data
|
|
Otherwise
|
|
This.cCheieVerificata = ''
|
|
loRez = This.CalculeazaStare(m.toForm, m.lcCod, m.ldData, m.lcCheie, m.tlIstoricIntai)
|
|
This.AplicaIndicatorANAF(m.toForm, loRez.cStare, loRez.cTooltip, loRez.lGri)
|
|
This.cCheieVerificata = Iif(loRez.cStare == 'NEUTRU', '', m.lcCheie)
|
|
Endcase
|
|
Catch To loEx
|
|
This.cCheieVerificata = ''
|
|
This.AplicaIndicatorANAF(m.toForm, 'NEUTRU', 'Verificare ANAF esuata - apasati pentru verificare manuala')
|
|
This.Logheaza('eroare: ' + loEx.Message + ' linia ' + Transform(loEx.LineNo))
|
|
Finally
|
|
This.lInVerificare = .F.
|
|
This.SeteazaCursor(m.toForm, 0)
|
|
Endtry
|
|
Endproc
|
|
|
|
Procedure LaSchimbareData
|
|
Lparameters toForm
|
|
If !This.lVerificaLaActivare
|
|
This.VerificaANAFAutomat(m.toForm, .F.)
|
|
Endif
|
|
Endproc
|
|
|
|
Procedure ReseteazaIndicator
|
|
Lparameters toForm
|
|
If Type('poDate.id_client') = 'N' And !Empty(Nvl(poDate.id_client, 0))
|
|
Return
|
|
Endif
|
|
This.cCheieVerificata = ''
|
|
This.AplicaIndicatorANAF(m.toForm, 'NEUTRU', 'Verificare')
|
|
Endproc
|
|
|
|
Procedure MarcheazaVerificareLaActivare
|
|
If Type('poDate.tip') = 'N' And !Inlist(poDate.tip, 23, 25, 41) And Type('poDate.cod_fiscal') $ 'CX'
|
|
poDate.cod_fiscal = This.CodFiscalClient()
|
|
Endif
|
|
This.lVerificaLaActivare = .T.
|
|
Endproc
|
|
|
|
Function AplicaRezultatButon
|
|
Lparameters toForm, toPartener
|
|
Local lcCod, ldData, lcCheie, lcCheieSes, loStare, loRez, lcRO
|
|
lcCod = This.CodFiscalClient()
|
|
ldData = ANAF_CaData(Iif(Type('poDate.dataact') $ 'DT', poDate.dataact, {}))
|
|
If !Empty(This.MotivNeutru(m.lcCod, m.ldData)) Or Vartype(m.toPartener) <> 'O' Or !Pemstatus(m.toPartener, 'platitortvamfin', 5) Or !Empty(Nvl(toPartener.eroare, ''))
|
|
Return ''
|
|
Endif
|
|
lcCheie = Upper(Chrtran(m.lcCod, ' ', '')) + '_' + Dtos(m.ldData)
|
|
If Empty(Alltrim(Nvl(toPartener.firma, '')))
|
|
lcCheieSes = 'C' + NormalizeazaCUI(m.lcCod) + '_' + Dtos(m.ldData)
|
|
If Type('goCacheANAF_Sesiune') = 'O' And goCacheANAF_Sesiune.GetKey(m.lcCheieSes) > 0
|
|
goCacheANAF_Sesiune.Remove(m.lcCheieSes)
|
|
Endif
|
|
This.cCheieVerificata = ''
|
|
This.VerificaANAFAutomat(m.toForm, .F.)
|
|
Return This.cStare
|
|
Endif
|
|
lcRO = Left(Upper(Alltrim(m.lcCod)), 2) == 'RO'
|
|
loStare = Createobject('Empty')
|
|
Addproperty(loStare, 'cCui', NormalizeazaCUI(m.lcCod))
|
|
Addproperty(loStare, 'lAreRO', m.lcRO)
|
|
Addproperty(loStare, 'lPlatitorANAF', toPartener.platitortvamfin)
|
|
Addproperty(loStare, 'lInactivANAF', toPartener.inactiv)
|
|
Addproperty(loStare, 'cDenumireANAF', Alltrim(toPartener.firma))
|
|
Addproperty(loStare, 'lRadiatANAF', .F.)
|
|
Addproperty(loStare, 'dRadiereANAF', {})
|
|
Addproperty(loStare, 'lDiscordanta', (toPartener.platitortvamfin <> m.lcRO) Or toPartener.inactiv)
|
|
Addproperty(loStare, 'dInceputScpTVA', Nvl(toPartener.data_inceput_scptva, {}))
|
|
Addproperty(loStare, 'dSfarsitScpTVA', Nvl(toPartener.data_sfarsit_scptva, {}))
|
|
Addproperty(loStare, 'dAnulareScpTVA', Nvl(toPartener.data_anul_imp_scptva, {}))
|
|
Addproperty(loStare, 'cMesajScpTVA', Alltrim(Nvl(toPartener.stare, '')))
|
|
Addproperty(loStare, 'lTvaIncasareANAF', Nvl(toPartener.tvaincasare, .F.))
|
|
Addproperty(loStare, 'dInceputTvaInc', Nvl(toPartener.data_inceput_tvainc, {}))
|
|
Addproperty(loStare, 'dSfarsitTvaInc', Nvl(toPartener.data_sfarsit_tvainc, {}))
|
|
Addproperty(loStare, 'dData', m.ldData)
|
|
Addproperty(loStare, 'cSursa', Iif(Empty(Alltrim(Nvl(toPartener.sursa, ''))), 'ANAF', Alltrim(toPartener.sursa)))
|
|
Addproperty(loStare, 'dDataSursa', Nvl(toPartener.data_sursa, {}))
|
|
loRez = This.ClasificaRezultat(m.loStare, .F., '', m.lcCod, m.ldData)
|
|
This.AplicaIndicatorANAF(m.toForm, loRez.cStare, loRez.cTooltip, loRez.lGri)
|
|
This.cCheieVerificata = m.lcCheie
|
|
Return loRez.cStare
|
|
Endfunc
|
|
|
|
Procedure PuneFiltruCui
|
|
Lparameters toHash, tcCui
|
|
Local lcFiltru, lnNr
|
|
If Empty(m.tcCui) Or !Empty(Chrtran(m.tcCui, '0123456789', ''))
|
|
Return
|
|
Endif
|
|
lcFiltru = "LTRIM(UPPER(B.COD_FISCAL), 'RO ') = '" + m.tcCui + "'"
|
|
lnNr = 0
|
|
goExecutor.oSelect2Value('select count(*) from nom_parteneri b where b.sters = 0 and b.inactiv = 0 and ' + m.lcFiltru, @lnNr)
|
|
If Nvl(m.lnNr, 0) > 1
|
|
toHash.SetValue('cFiltruOrig', m.lcFiltru)
|
|
Endif
|
|
Endproc
|
|
|
|
Function CalculeazaStare
|
|
Lparameters toForm, tcCod, tdData, tcCheie, tlIstoricIntai
|
|
Local loStare, llNecesita, llNegasit, lcClasa, loRez, lnT0
|
|
If Isnull(This.oNegasit)
|
|
This.oNegasit = Createobject('Collection')
|
|
Endif
|
|
If This.oNegasit.GetKey(m.tcCheie) > 0
|
|
Return This.oNegasit.Item(m.tcCheie)
|
|
Endif
|
|
This.AplicaIndicatorANAF(m.toForm, 'NEUTRU', 'Se verifica la ANAF...')
|
|
This.SeteazaCursor(m.toForm, 11)
|
|
lnT0 = Seconds()
|
|
Store .F. To llNecesita, llNegasit
|
|
lcClasa = ''
|
|
loStare = ANAF_StarePartener(m.tcCod, m.tdData, .F., @llNecesita, @llNegasit, @lcClasa, 0, m.tlIstoricIntai)
|
|
loRez = This.ClasificaRezultat(m.loStare, m.llNegasit, m.lcClasa, m.tcCod, m.tdData)
|
|
If m.llNegasit
|
|
This.oNegasit.Add(m.loRez, m.tcCheie)
|
|
Endif
|
|
This.Logheaza('stare=' + loRez.cStare + ' cod=' + m.tcCod + ' data=' + Dtoc(m.tdData) + ;
|
|
' sursa=' + Iif(Isnull(m.loStare), '-', loStare.cSursa) + ' data_sursa=' + Iif(Isnull(m.loStare), '-', Dtoc(loStare.dDataSursa)) + ;
|
|
' ms=' + Transform(Int((Seconds() - m.lnT0) * 1000)))
|
|
Return m.loRez
|
|
Endfunc
|
|
|
|
Function ClasificaRezultat
|
|
Lparameters toStare, tlNegasit, tcClasaEsec, tcCod, tdData
|
|
Local lcStare, lcTip, llGri, loRez
|
|
lcStare = 'NEUTRU'
|
|
llGri = .F.
|
|
lcTip = 'Verificare'
|
|
Do Case
|
|
Case Isnull(m.toStare) And m.tlNegasit
|
|
lcStare = 'ATENTIE'
|
|
lcTip = 'ATENTIE: cod fiscal inexistent la ANAF (' + Alltrim(Iif(Left(Upper(Alltrim(m.tcCod)), 2) == 'RO', Substr(Alltrim(m.tcCod), 3), m.tcCod)) + ') - verificati daca e client strain. Click/Enter = detalii'
|
|
Case Isnull(m.toStare)
|
|
Do Case
|
|
Case Inlist(m.tcClasaEsec, 'FARA_RASPUNS', 'RASPUNS_NEINTELES')
|
|
lcStare = 'NECUNOSCUT'
|
|
llGri = .T.
|
|
lcTip = 'ANAF indisponibil, fara istoric - verificati manual'
|
|
Case m.tcClasaEsec == 'CNP'
|
|
lcTip = 'Persoana fizica (CNP) - fara verificare ANAF'
|
|
Case m.tcClasaEsec == 'COD_NENUMERIC'
|
|
lcTip = 'Cod fiscal nenumeric - nu se poate verifica la ANAF'
|
|
Case m.tcClasaEsec == 'SE_TESTEAZA'
|
|
lcTip = 'Verificarea ANAF se testeaza - reincercati'
|
|
Endcase
|
|
Case m.toStare.cSursa == 'CACHE_INDISP' And !Empty(m.toStare.dDataSursa) And m.toStare.dDataSursa < m.tdData
|
|
llGri = .T.
|
|
If m.toStare.lDiscordanta
|
|
lcStare = 'ATENTIE'
|
|
lcTip = 'ATENTIE: ANAF indisponibil; ultima verificare din ' + Dtoc(m.toStare.dDataSursa) + ', anterioara facturii: ' + ;
|
|
This.MotiveDiscordanta(m.toStare) + '. Click/Enter = detalii'
|
|
Else
|
|
lcStare = 'NECUNOSCUT'
|
|
lcTip = 'ANAF indisponibil; ultima verificare din ' + Dtoc(m.toStare.dDataSursa) + ', anterioara facturii: ' + ;
|
|
Iif(m.toStare.lPlatitorANAF, 'Platitor TVA', 'Neplatitor TVA')
|
|
Endif
|
|
Case m.toStare.lDiscordanta
|
|
lcStare = 'ATENTIE'
|
|
lcTip = 'ATENTIE: ' + This.MotiveDiscordanta(m.toStare) + '. ' + This.TextAnafStare(m.toStare) + ' Click/Enter = detalii'
|
|
Otherwise
|
|
lcStare = 'OK'
|
|
lcTip = 'OK - ' + This.TextAnafStare(m.toStare) + Iif(m.toStare.cSursa == 'ANAF', '', ' Radierea nu se verifica din istoric.')
|
|
Endcase
|
|
loRez = Createobject('Empty')
|
|
Addproperty(loRez, 'cStare', m.lcStare)
|
|
Addproperty(loRez, 'cTooltip', m.lcTip)
|
|
Addproperty(loRez, 'lGri', m.llGri)
|
|
Return m.loRez
|
|
Endfunc
|
|
|
|
Function MotiveDiscordanta
|
|
Lparameters toStare
|
|
Local lcMotiv
|
|
lcMotiv = ''
|
|
If m.toStare.lAreRO And !m.toStare.lPlatitorANAF
|
|
lcMotiv = 'cod cu RO, dar ANAF il da neplatitor TVA la data facturii'
|
|
Endif
|
|
If !m.toStare.lAreRO And m.toStare.lPlatitorANAF
|
|
lcMotiv = 'cod fara RO, dar ANAF il da platitor TVA la data facturii'
|
|
Endif
|
|
If m.toStare.lInactivANAF
|
|
lcMotiv = m.lcMotiv + Iif(Empty(m.lcMotiv), '', '; ') + 'client inactiv la ANAF'
|
|
Endif
|
|
If m.toStare.lRadiatANAF
|
|
lcMotiv = m.lcMotiv + Iif(Empty(m.lcMotiv), '', '; ') + 'client radiat la ANAF din ' + Dtoc(m.toStare.dRadiereANAF)
|
|
Endif
|
|
Return m.lcMotiv
|
|
Endfunc
|
|
|
|
Procedure AplicaIndicatorANAF
|
|
Lparameters toForm, tcStare, tcTooltip, tlGri
|
|
Local loBtn, lcTip, lcUp, lcDown, lcPic
|
|
lcTip = Left(m.tcTooltip, 255)
|
|
This.cStare = m.tcStare
|
|
This.cTooltip = m.lcTip
|
|
This.ColoreazaCodFiscal(m.toForm, m.tcStare)
|
|
If Vartype(m.toForm) <> 'O' Or !Pemstatus(m.toForm, 'But_verifica1', 5)
|
|
Return
|
|
Endif
|
|
loBtn = toForm.But_verifica1
|
|
If !Pemstatus(m.loBtn, 'cPicOrig', 5)
|
|
Addproperty(m.loBtn, 'cPicOrig', m.loBtn.Picture)
|
|
Addproperty(m.loBtn, 'cUpOrig', m.loBtn.cpictureup)
|
|
Addproperty(m.loBtn, 'cDownOrig', m.loBtn.cpicturedown)
|
|
Endif
|
|
Do Case
|
|
Case m.tcStare == 'NECUNOSCUT' Or (Vartype(m.tlGri) = 'L' And m.tlGri)
|
|
lcUp = 'verificare1_gri.bmp'
|
|
lcDown = 'verificare2_gri.bmp'
|
|
lcPic = m.lcUp
|
|
Case m.tcStare == 'OK'
|
|
lcUp = 'verificare1_verde.bmp'
|
|
lcDown = 'verificare2_verde.bmp'
|
|
lcPic = m.lcUp
|
|
Case m.tcStare == 'ATENTIE'
|
|
lcUp = 'verificare1_rosu.bmp'
|
|
lcDown = 'verificare2_rosu.bmp'
|
|
lcPic = m.lcUp
|
|
Otherwise
|
|
lcUp = m.loBtn.cUpOrig
|
|
lcDown = m.loBtn.cDownOrig
|
|
lcPic = m.loBtn.cPicOrig
|
|
Endcase
|
|
This.PuneProprietate(m.loBtn, 'cpictureup', m.lcUp)
|
|
This.PuneProprietate(m.loBtn, 'cpicturedown', m.lcDown)
|
|
This.PuneProprietate(m.loBtn, 'Picture', m.lcPic)
|
|
This.PuneProprietate(m.loBtn, 'ToolTipText', m.lcTip)
|
|
This.PuneProprietate(m.loBtn, 'StatusBarText', m.lcTip)
|
|
If Pemstatus(m.loBtn, 'Refresh', 5)
|
|
loBtn.Refresh()
|
|
Endif
|
|
Endproc
|
|
|
|
Procedure ColoreazaCodFiscal
|
|
Lparameters toForm, tcStare
|
|
Local loTxt, lnCuloare
|
|
If Vartype(m.toForm) <> 'O' Or !Pemstatus(m.toForm, 'txtCodFiscal', 5)
|
|
Return
|
|
Endif
|
|
loTxt = toForm.txtCodFiscal
|
|
If !Pemstatus(m.loTxt, 'ForeColor', 5) Or !Pemstatus(m.loTxt, 'DisabledForeColor', 5)
|
|
Return
|
|
Endif
|
|
If !Pemstatus(m.loTxt, 'nForeOrig', 5)
|
|
Addproperty(m.loTxt, 'nForeOrig', m.loTxt.ForeColor)
|
|
Addproperty(m.loTxt, 'nDisOrig', m.loTxt.DisabledForeColor)
|
|
Endif
|
|
Do Case
|
|
Case m.tcStare == 'OK'
|
|
loTxt.ForeColor = Rgb(0, 110, 0)
|
|
loTxt.DisabledForeColor = Rgb(0, 110, 0)
|
|
Case m.tcStare == 'ATENTIE'
|
|
loTxt.ForeColor = Rgb(192, 0, 0)
|
|
loTxt.DisabledForeColor = Rgb(192, 0, 0)
|
|
Otherwise
|
|
loTxt.ForeColor = m.loTxt.nForeOrig
|
|
loTxt.DisabledForeColor = m.loTxt.nDisOrig
|
|
Endcase
|
|
Endproc
|
|
|
|
Procedure PuneProprietate
|
|
Lparameters toObj, tcNume, tuValoare
|
|
If Pemstatus(m.toObj, m.tcNume, 5)
|
|
toObj.&tcNume = m.tuValoare
|
|
Endif
|
|
Endproc
|
|
|
|
Procedure SeteazaCursor
|
|
Lparameters toForm, tnCursor
|
|
If Vartype(m.toForm) = 'O' And Pemstatus(m.toForm, 'MousePointer', 5)
|
|
toForm.MousePointer = m.tnCursor
|
|
Endif
|
|
Endproc
|
|
|
|
Procedure Logheaza
|
|
Lparameters tcText
|
|
If Type('goLog') = 'O'
|
|
goLog.Log(m.tcText, 'anaf_verif_factura')
|
|
Endif
|
|
Endproc
|
|
|
|
Function MotivNeutru
|
|
Lparameters tcCod, tdData
|
|
Do Case
|
|
Case !('OCAUTARE' $ Upper(Set('Procedure'))) Or ANAF_NivelVerificare() = 0
|
|
Return 'Verificare'
|
|
Case Type('poDate.lEditare') = 'L' And poDate.lEditare
|
|
Return 'Verificare'
|
|
Case Type('poDate.tip') = 'N' And Inlist(poDate.tip, 23, 25, 41)
|
|
Return 'Gestiune - fara verificare ANAF'
|
|
Case Empty(m.tcCod)
|
|
Return 'Verificare'
|
|
Case Empty(m.tdData)
|
|
Return 'Completati data facturii'
|
|
Endcase
|
|
Return ''
|
|
Endfunc
|
|
|
|
Function CodInvalid
|
|
Lparameters tcCod
|
|
Local lcCui
|
|
lcCui = NormalizeazaCUI(m.tcCod)
|
|
If Empty(m.lcCui)
|
|
Return .F.
|
|
Endif
|
|
If Len(m.lcCui) = 13 And Empty(Chrtran(m.lcCui, '0123456789', ''))
|
|
Return !Empty(ANAF_ValidareCod(m.tcCod, 2))
|
|
Endif
|
|
Return !Empty(ANAF_ValidareCod(m.tcCod, 1)) Or (Len(m.lcCui) < 2 And Empty(Chrtran(m.lcCui, '0123456789', '')))
|
|
Endfunc
|
|
|
|
Function TextAnafStare
|
|
Lparameters toStare
|
|
If Isnull(This.oTextAnaf)
|
|
This.oTextAnaf = Createobject('anaf_verif_cautare')
|
|
Endif
|
|
Return This.oTextAnaf.TextAnaf(m.toStare, .F., 24)
|
|
Endfunc
|
|
|
|
Function CodFiscalClient
|
|
Local lcCod, lnSelect
|
|
Private pnIdClientAnaf
|
|
lcCod = Iif(Type('poDate.cod_fiscal') $ 'CX', Alltrim(Nvl(poDate.cod_fiscal, '')), '')
|
|
If Empty(m.lcCod) And Type('poDate.id_client') = 'N' And Type('goExecutor') = 'O'
|
|
pnIdClientAnaf = poDate.id_client
|
|
If !Empty(pnIdClientAnaf)
|
|
lnSelect = Select()
|
|
Use In (Select('crsCodFiscalAnaf'))
|
|
If goExecutor.oExecute('select cod_fiscal from nom_parteneri where id_part = ?pnIdClientAnaf', 'crsCodFiscalAnaf') >= 0 And Used('crsCodFiscalAnaf')
|
|
lcCod = Alltrim(Nvl(crsCodFiscalAnaf.cod_fiscal, ''))
|
|
Endif
|
|
Use In (Select('crsCodFiscalAnaf'))
|
|
If Used(m.lnSelect)
|
|
Select (m.lnSelect)
|
|
Endif
|
|
Endif
|
|
Endif
|
|
Return m.lcCod
|
|
Endfunc
|
|
|
|
Enddefine
|