sync SVN r18238
This commit is contained in:
@@ -74,14 +74,21 @@
|
|||||||
*!* verificarea ANAF se poate cere si la caut_partener (parametri optionali de verificare
|
*!* verificarea ANAF se poate cere si la caut_partener (parametri optionali de verificare
|
||||||
*!* si de data a documentului), pentru achizitia de import si pentru schimbarea furnizorului pe rulaj
|
*!* si de data a documentului), pentru achizitia de import si pentru schimbarea furnizorului pe rulaj
|
||||||
|
|
||||||
|
*!* 29.09.2026
|
||||||
|
*!* marius.mutu
|
||||||
|
*!* ANAF_CitesteDinIstoric transmite sursa (CACHE / CACHE_INDISP) la CitesteIstoricPentruCoduri, care aplica
|
||||||
|
*!* filtrul de data doar pe CACHE; ANAF_StarePartener: parametru optional tlIstoricIntai (istoricul se citeste
|
||||||
|
*!* intai, indiferent de ordinea configurata) si lRadiatANAF / dRadiereANAF (partener radiat la data ceruta, doar
|
||||||
|
*!* din verificarea ANAF live) inclus in lDiscordanta si afisat ', Radiat' in banda de stare
|
||||||
|
|
||||||
*!* #DEFINE CRLF CHR(13) + CHR(10)
|
*!* #DEFINE CRLF CHR(13) + CHR(10)
|
||||||
#INCLUDE COMUN\ROA.H
|
#INCLUDE COMUN\ROA.H
|
||||||
|
|
||||||
Procedure ANAF_StarePartener
|
Procedure ANAF_StarePartener
|
||||||
Lparameters tcCodFiscal, tdData, tlDoarCache, tlNecesitaApel, tlNegasit, tcClasaEsec, tnTipPersoana
|
Lparameters tcCodFiscal, tdData, tlDoarCache, tlNecesitaApel, tlNegasit, tcClasaEsec, tnTipPersoana, tlIstoricIntai
|
||||||
|
|
||||||
Local lcCodFiscal, lcCui, loRezANAF, lcCheieCache, lnI, llValid, loOut, ldData, llNegasit, lcStareServiciu
|
Local lcCodFiscal, lcCui, loRezANAF, lcCheieCache, lnI, llValid, loOut, ldData, llNegasit, lcStareServiciu
|
||||||
Local lcOrdine, loVerificareANAF As "VerificareANAF", lcSelectOrig
|
Local lcOrdine, loVerificareANAF As "VerificareANAF", lcSelectOrig, ldRadiere, llRadiat
|
||||||
|
|
||||||
tlNecesitaApel = .F.
|
tlNecesitaApel = .F.
|
||||||
tlNegasit = .F.
|
tlNegasit = .F.
|
||||||
@@ -139,7 +146,7 @@ Procedure ANAF_StarePartener
|
|||||||
If Select() <> m.lcSelectOrig And Used(m.lcSelectOrig)
|
If Select() <> m.lcSelectOrig And Used(m.lcSelectOrig)
|
||||||
Select (m.lcSelectOrig)
|
Select (m.lcSelectOrig)
|
||||||
Endif
|
Endif
|
||||||
If m.lcOrdine == 'CACHE,ANAF'
|
If m.lcOrdine == 'CACHE,ANAF' Or m.tlIstoricIntai
|
||||||
loRezANAF = ANAF_CitesteDinIstoric(m.lcCui, m.ldData, 'CACHE')
|
loRezANAF = ANAF_CitesteDinIstoric(m.lcCui, m.ldData, 'CACHE')
|
||||||
Endif
|
Endif
|
||||||
If Vartype(m.loRezANAF) <> 'O'
|
If Vartype(m.loRezANAF) <> 'O'
|
||||||
@@ -186,13 +193,17 @@ Procedure ANAF_StarePartener
|
|||||||
Return .Null.
|
Return .Null.
|
||||||
Endif
|
Endif
|
||||||
*** verdict
|
*** verdict
|
||||||
|
ldRadiere = Iif(!Pemstatus(loRezANAF, 'cSursa', 5) And Pemstatus(loRezANAF, 'dataRadiere', 5), Nvl(loRezANAF.dataRadiere, {}), {})
|
||||||
|
llRadiat = !Empty(m.ldRadiere) And m.ldRadiere <= m.ldData
|
||||||
loOut = Createobject("Empty")
|
loOut = Createobject("Empty")
|
||||||
Addproperty(loOut, "cCui", m.lcCui)
|
Addproperty(loOut, "cCui", m.lcCui)
|
||||||
Addproperty(loOut, "lAreRO", Left(Upper(Alltrim(m.lcCodFiscal)), 2) = 'RO')
|
Addproperty(loOut, "lAreRO", Left(Upper(Alltrim(m.lcCodFiscal)), 2) = 'RO')
|
||||||
Addproperty(loOut, "lPlatitorANAF", loRezANAF.scpTVA)
|
Addproperty(loOut, "lPlatitorANAF", loRezANAF.scpTVA)
|
||||||
Addproperty(loOut, "lInactivANAF", loRezANAF.statusInactivi)
|
Addproperty(loOut, "lInactivANAF", loRezANAF.statusInactivi)
|
||||||
Addproperty(loOut, "cDenumireANAF", Alltrim(Nvl(loRezANAF.denumire, '')))
|
Addproperty(loOut, "cDenumireANAF", Alltrim(Nvl(loRezANAF.denumire, '')))
|
||||||
Addproperty(loOut, "lDiscordanta", (loRezANAF.scpTVA <> loOut.lAreRO) Or loRezANAF.statusInactivi)
|
Addproperty(loOut, "lRadiatANAF", m.llRadiat)
|
||||||
|
Addproperty(loOut, "dRadiereANAF", m.ldRadiere)
|
||||||
|
Addproperty(loOut, "lDiscordanta", (loRezANAF.scpTVA <> loOut.lAreRO) Or loRezANAF.statusInactivi Or m.llRadiat)
|
||||||
Addproperty(loOut, "dInceputScpTVA", Iif(Pemstatus(loRezANAF, 'dInceputScpTVA', 5), Nvl(loRezANAF.dInceputScpTVA, {}), {}))
|
Addproperty(loOut, "dInceputScpTVA", Iif(Pemstatus(loRezANAF, 'dInceputScpTVA', 5), Nvl(loRezANAF.dInceputScpTVA, {}), {}))
|
||||||
Addproperty(loOut, "dSfarsitScpTVA", Iif(Pemstatus(loRezANAF, 'dSfarsitScpTVA', 5), Nvl(loRezANAF.dSfarsitScpTVA, {}), {}))
|
Addproperty(loOut, "dSfarsitScpTVA", Iif(Pemstatus(loRezANAF, 'dSfarsitScpTVA', 5), Nvl(loRezANAF.dSfarsitScpTVA, {}), {}))
|
||||||
Addproperty(loOut, "dAnulareScpTVA", Iif(Pemstatus(loRezANAF, 'dAnulareScpTVA', 5), Nvl(loRezANAF.dAnulareScpTVA, {}), {}))
|
Addproperty(loOut, "dAnulareScpTVA", Iif(Pemstatus(loRezANAF, 'dAnulareScpTVA', 5), Nvl(loRezANAF.dAnulareScpTVA, {}), {}))
|
||||||
@@ -221,7 +232,7 @@ Procedure ANAF_CitesteDinIstoric
|
|||||||
Try
|
Try
|
||||||
Use In (Select(m.lcAliasCache))
|
Use In (Select(m.lcAliasCache))
|
||||||
loVerificareANAF = Createobject("VerificareANAF")
|
loVerificareANAF = Createobject("VerificareANAF")
|
||||||
loVerificareANAF.CitesteIstoricPentruCoduri(m.tcCui, m.tdData, m.lcAliasCache)
|
loVerificareANAF.CitesteIstoricPentruCoduri(m.tcCui, m.tdData, m.lcAliasCache, m.tcSursa)
|
||||||
If Used(m.lcAliasCache) And Reccount(m.lcAliasCache) > 0
|
If Used(m.lcAliasCache) And Reccount(m.lcAliasCache) > 0
|
||||||
Select (m.lcAliasCache)
|
Select (m.lcAliasCache)
|
||||||
Go Top
|
Go Top
|
||||||
@@ -850,7 +861,7 @@ DEFINE CLASS anaf_verif_cautare AS Custom
|
|||||||
|
|
||||||
PROCEDURE TextStare
|
PROCEDURE TextStare
|
||||||
Lparameters toStare, tcPerioada
|
Lparameters toStare, tcPerioada
|
||||||
Return Iif(toStare.lPlatitorANAF, 'Platitor TVA', 'Neplatitor TVA') + Nvl(m.tcPerioada, '') + Iif(toStare.lInactivANAF, ', Inactiv', '') + Iif(toStare.lTvaIncasareANAF, ', TVA la incasare', '')
|
Return Iif(toStare.lPlatitorANAF, 'Platitor TVA', 'Neplatitor TVA') + Nvl(m.tcPerioada, '') + Iif(toStare.lInactivANAF, ', Inactiv', '') + Iif(toStare.lRadiatANAF, ', Radiat', '') + Iif(toStare.lTvaIncasareANAF, ', TVA la incasare', '')
|
||||||
ENDPROC
|
ENDPROC
|
||||||
|
|
||||||
PROCEDURE SufixPerioadaTVA
|
PROCEDURE SufixPerioadaTVA
|
||||||
@@ -1049,7 +1060,7 @@ DEFINE CLASS anaf_verif_cautare AS Custom
|
|||||||
|
|
||||||
If This.oStare.lAreRO = This.oStare.lPlatitorANAF
|
If This.oStare.lAreRO = This.oStare.lPlatitorANAF
|
||||||
Amessagebox(This.AntetDialog(m.lcDenAles, m.lcCodAles) + m.lcPerioadaTVA + ;
|
Amessagebox(This.AntetDialog(m.lcDenAles, m.lcCodAles) + m.lcPerioadaTVA + ;
|
||||||
Iif(This.oStare.lInactivANAF, 'Nu exista alta varianta de partener de ales.', 'Codul fiscal corespunde.'), ;
|
Iif(This.oStare.lInactivANAF Or This.oStare.lRadiatANAF, 'Nu exista alta varianta de partener de ales.', 'Codul fiscal corespunde.'), ;
|
||||||
0 + 64, 'Verificare partener ANAF')
|
0 + 64, 'Verificare partener ANAF')
|
||||||
Return
|
Return
|
||||||
Endif
|
Endif
|
||||||
|
|||||||
@@ -11,8 +11,29 @@
|
|||||||
*!* Ct_clb_gestiune_init, Ed_tx_simplu1) au trecut in containerul ct_contabilitate al formularului, deci
|
*!* 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().
|
*!* 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
|
Define Class oAntetFacturare As Custom
|
||||||
|
|
||||||
|
lInVerificare = .F.
|
||||||
|
lVerificaLaActivare = .F.
|
||||||
|
cCheieVerificata = ''
|
||||||
|
cStare = 'NEUTRU'
|
||||||
|
cTooltip = 'Verificare'
|
||||||
|
oNegasit = .Null.
|
||||||
|
oTextAnaf = .Null.
|
||||||
|
lFormVechi = .F.
|
||||||
|
|
||||||
Function EsteAviz
|
Function EsteAviz
|
||||||
Return poDate.nIdTipDoc = poDate.nIdTipDocAvizExpeditie
|
Return poDate.nIdTipDoc = poDate.nIdTipDocAvizExpeditie
|
||||||
Endfunc
|
Endfunc
|
||||||
@@ -150,6 +171,7 @@ Define Class oAntetFacturare As Custom
|
|||||||
If !Empty(Nvl(loCauta.id_part,0)) And !Empty(loCauta.denumire)
|
If !Empty(Nvl(loCauta.id_part,0)) And !Empty(loCauta.denumire)
|
||||||
poDate.id_client = loCauta.id_part
|
poDate.id_client = loCauta.id_part
|
||||||
poDate.nume_client = loCauta.denumire
|
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
|
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,] + ;
|
lcSql = [begin ] + gcS + [.pack_facturare.cauta_date_comanda(?poDate.id_client,?gnIdSucursala,] + ;
|
||||||
@@ -175,6 +197,7 @@ Define Class oAntetFacturare As Custom
|
|||||||
*!* modificare v 2.0.70 ^
|
*!* modificare v 2.0.70 ^
|
||||||
toForm.ct_clb_nume_client.Refresh()
|
toForm.ct_clb_nume_client.Refresh()
|
||||||
toForm.ct_contabilitate.ct_clb_lucrare.SetFocus()
|
toForm.ct_contabilitate.ct_clb_lucrare.SetFocus()
|
||||||
|
This.VerificaANAFAutomat(m.toForm, .F.)
|
||||||
Else
|
Else
|
||||||
Local loCauta
|
Local loCauta
|
||||||
loHash = GetHash([cTitlu=>Clienti??cCont=>4111??lAdaugCorespondente=>1??lVerificaANAF=>1])
|
loHash = GetHash([cTitlu=>Clienti??cCont=>4111??lAdaugCorespondente=>1??lVerificaANAF=>1])
|
||||||
@@ -218,6 +241,7 @@ Define Class oAntetFacturare As Custom
|
|||||||
toForm.ct_contabilitate.ct_clb_lucrare.SetFocus()
|
toForm.ct_contabilitate.ct_clb_lucrare.SetFocus()
|
||||||
|
|
||||||
toForm.ct_clb_nume_client.clb_TX_CAUTARE.text_SIMPLU1.ToolTipText = 'Id client: ' + TRANSFORM(poDate.id_client)
|
toForm.ct_clb_nume_client.clb_TX_CAUTARE.text_SIMPLU1.ToolTipText = 'Id client: ' + TRANSFORM(poDate.id_client)
|
||||||
|
This.VerificaANAFAutomat(m.toForm, .F.)
|
||||||
Else
|
Else
|
||||||
poDate.listaid = []
|
poDate.listaid = []
|
||||||
poDate.descriere = []
|
poDate.descriere = []
|
||||||
@@ -228,6 +252,7 @@ Define Class oAntetFacturare As Custom
|
|||||||
toForm.nSoldLei = 0
|
toForm.nSoldLei = 0
|
||||||
toForm.nSoldValuta = 0
|
toForm.nSoldValuta = 0
|
||||||
toForm.txtSoldLei.Refresh()
|
toForm.txtSoldLei.Refresh()
|
||||||
|
This.ReseteazaIndicator(m.toForm)
|
||||||
Endif
|
Endif
|
||||||
*!* modificare v 2.0.70
|
*!* modificare v 2.0.70
|
||||||
If Type('toForm.ct_clb_altele.visible')<>'U'
|
If Type('toForm.ct_clb_altele.visible')<>'U'
|
||||||
@@ -754,9 +779,11 @@ Define Class oAntetFacturare As Custom
|
|||||||
|
|
||||||
AddProperty(loDate, "denumire", poDate.nume_client)
|
AddProperty(loDate, "denumire", poDate.nume_client)
|
||||||
AddProperty(loDate, "cod_fiscal", poDate.cod_fiscal)
|
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")
|
AddProperty(loDate, "tip_verificare", "ANAF_SERVICIU_WEB")
|
||||||
|
|
||||||
lnRaspuns = VerificaCodFiscal(loDate, @lnOptiune, @loPartener)
|
lnRaspuns = VerificaCodFiscal(loDate, @lnOptiune, @loPartener)
|
||||||
|
This.AplicaRezultatButon(m.toForm, m.loPartener)
|
||||||
Endproc
|
Endproc
|
||||||
|
|
||||||
Procedure valideaza_antet
|
Procedure valideaza_antet
|
||||||
@@ -922,4 +949,366 @@ Define Class oAntetFacturare As Custom
|
|||||||
Return .T.
|
Return .T.
|
||||||
Endfunc
|
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
|
Enddefine
|
||||||
|
|||||||
@@ -109,6 +109,12 @@
|
|||||||
*!* elemente "in (...)" da ORA-01795); plasa de siguranta din VerificaListaCIF aduna codurile ramase
|
*!* elemente "in (...)" da ORA-01795); plasa de siguranta din VerificaListaCIF aduna codurile ramase
|
||||||
*!* fara raspuns si cere istoricul intr-un singur apel, in loc de un apel Oracle per cod
|
*!* fara raspuns si cere istoricul intr-un singur apel, in loc de un apel Oracle per cod
|
||||||
|
|
||||||
|
*!* 29.09.2026
|
||||||
|
*!* marius.mutu
|
||||||
|
*!* CitesteIstoricPentruCoduri: pe sursa CACHE randul din istoric se accepta doar daca verificarea ANAF e din
|
||||||
|
*!* ziua datei cerute sau ulterioara (pentru date viitoare, din azi); CACHE_INDISP accepta si verificari mai vechi
|
||||||
|
*!* ANAF_VerdictDinCursor: obiectul single-CUI poarta si dataRadiere
|
||||||
|
|
||||||
*!* http://ec.europa.eu/taxation_customs/vies/viesquer.do
|
*!* http://ec.europa.eu/taxation_customs/vies/viesquer.do
|
||||||
*!* http://localhost/contafinupdate/verificarecod.aspx/verificarecod/verificare/CIF/1879855/MFIN
|
*!* http://localhost/contafinupdate/verificarecod.aspx/verificarecod/verificare/CIF/1879855/MFIN
|
||||||
*!* http://localhost/contafinupdate/verificarecod.aspx/verificarecod/verificare/CNP/1810228134187
|
*!* http://localhost/contafinupdate/verificarecod.aspx/verificarecod/verificare/CNP/1810228134187
|
||||||
@@ -1790,6 +1796,7 @@ Function ANAF_VerdictDinCursor
|
|||||||
Addproperty(loResult, "cui", cui)
|
Addproperty(loResult, "cui", cui)
|
||||||
Addproperty(loResult, "scpTVA", Nvl(scpTVA, .F.))
|
Addproperty(loResult, "scpTVA", Nvl(scpTVA, .F.))
|
||||||
Addproperty(loResult, "statusInactivi", Nvl(statusInactivi, .F.))
|
Addproperty(loResult, "statusInactivi", Nvl(statusInactivi, .F.))
|
||||||
|
Addproperty(loResult, "dataRadiere", Nvl(dataRadiere, {}))
|
||||||
Addproperty(loResult, "denumire", Nvl(denumire, ""))
|
Addproperty(loResult, "denumire", Nvl(denumire, ""))
|
||||||
Addproperty(loResult, "mesaj", Nvl(mesaj, ""))
|
Addproperty(loResult, "mesaj", Nvl(mesaj, ""))
|
||||||
Addproperty(loResult, "dInceputScpTVA", Nvl(data_inceput_ScpTVA, {}))
|
Addproperty(loResult, "dInceputScpTVA", Nvl(data_inceput_ScpTVA, {}))
|
||||||
@@ -2908,6 +2915,7 @@ Define Class VerificareANAF As Custom
|
|||||||
*** in SQL, la tdData, verdictele din intervale (platitor TVA, TVA la incasare, split TVA, inactiv)
|
*** in SQL, la tdData, verdictele din intervale (platitor TVA, TVA la incasare, split TVA, inactiv)
|
||||||
*** Adauga randurile in tcAlias (cursor in forma crsANAF + sursa/data_sursa), creandu-l daca lipseste
|
*** Adauga randurile in tcAlias (cursor in forma crsANAF + sursa/data_sursa), creandu-l daca lipseste
|
||||||
*** tcSursa (optional, implicit 'CACHE') eticheteaza randurile inserate - 'CACHE' sau 'CACHE_INDISP'
|
*** tcSursa (optional, implicit 'CACHE') eticheteaza randurile inserate - 'CACHE' sau 'CACHE_INDISP'
|
||||||
|
*** Cu 'CACHE' se accepta doar verificari din ziua tdData sau ulterioare (pentru tdData viitoare, din azi); 'CACHE_INDISP' accepta si verificari mai vechi
|
||||||
*** Un rand NU se intoarce cand tdData e inainte de inceputul unui interval cunoscut (scpTVA/TVAINC/
|
*** Un rand NU se intoarce cand tdData e inainte de inceputul unui interval cunoscut (scpTVA/TVAINC/
|
||||||
*** inactivare) - ANAF intoarce o singura perioada, nu istoricul complet, deci pentru o data anterioara
|
*** inactivare) - ANAF intoarce o singura perioada, nu istoricul complet, deci pentru o data anterioara
|
||||||
*** primei perioade memorate cache-ul nu poate afirma "nu era" - codul ramane netratat, merge la ANAF
|
*** primei perioade memorate cache-ul nu poate afirma "nu era" - codul ramane netratat, merge la ANAF
|
||||||
@@ -2916,7 +2924,7 @@ Define Class VerificareANAF As Custom
|
|||||||
Function CitesteIstoricPentruCoduri
|
Function CitesteIstoricPentruCoduri
|
||||||
Lparameters tcListaCoduriN, tdData, tcAlias, tcSursa
|
Lparameters tcListaCoduriN, tdData, tcAlias, tcSursa
|
||||||
|
|
||||||
Local lcAlias, lcCursorIstoric, lcSql, ldData, lnZileCache, lcSelect, lcSursa, lcCondCod, lnTotalCod, lnTranse, lnTransa, lnI, lcTransa
|
Local lcAlias, lcCursorIstoric, lcSql, ldData, lnZileCache, lcSelect, lcSursa, lcCondCod, lnTotalCod, lnTranse, lnTransa, lnI, lcTransa, lcCondCache
|
||||||
*!* 30.07.2026 marius.mutu: pdDataCache/pnZileCache Private, nu Local, ca sa fie vizibile in goExecutor.oExecuta la bind
|
*!* 30.07.2026 marius.mutu: pdDataCache/pnZileCache Private, nu Local, ca sa fie vizibile in goExecutor.oExecuta la bind
|
||||||
Private pdDataCache, pnZileCache
|
Private pdDataCache, pnZileCache
|
||||||
lcAlias = Iif(!Empty(m.tcAlias) And Type('tcAlias') = "C", m.tcAlias, "crsANAF")
|
lcAlias = Iif(!Empty(m.tcAlias) And Type('tcAlias') = "C", m.tcAlias, "crsANAF")
|
||||||
@@ -2960,6 +2968,9 @@ Define Class VerificareANAF As Custom
|
|||||||
lcCondCod = '(' + m.lcCondCod + ')'
|
lcCondCod = '(' + m.lcCondCod + ')'
|
||||||
Endif
|
Endif
|
||||||
|
|
||||||
|
*!* CACHE: verificarea trebuie sa fie din ziua ceruta sau ulterioara
|
||||||
|
lcCondCache = Iif(m.lcSursa == 'CACHE', ' and trunc(dataorav_anaf) >= least(?pdDataCache, trunc(sysdate))', '')
|
||||||
|
|
||||||
*!* 01.08.2026 marius.mutu: v_tvainc - margine exclusiva (data_sfarsit_tvainc - 1), aliniata cu pack_roartvai; ground truth rtvai_istoric confirma [inceput,sfarsit)
|
*!* 01.08.2026 marius.mutu: v_tvainc - margine exclusiva (data_sfarsit_tvainc - 1), aliniata cu pack_roartvai; ground truth rtvai_istoric confirma [inceput,sfarsit)
|
||||||
*!* 02.08.2026 marius.mutu: randul curent se alege pe dataorav_anaf desc - dupa fuziunea istoricelor, ID-ul nu mai urmeaza ordinea cronologica
|
*!* 02.08.2026 marius.mutu: randul curent se alege pe dataorav_anaf desc - dupa fuziunea istoricelor, ID-ul nu mai urmeaza ordinea cronologica
|
||||||
TEXT To lcSql TEXTMERGE Noshow
|
TEXT To lcSql TEXTMERGE Noshow
|
||||||
@@ -2975,7 +2986,7 @@ select cod_fiscal_n, firma, adresa, judet, regcom, dataorav_anaf,
|
|||||||
from istoric_coduri_fiscale i
|
from istoric_coduri_fiscale i
|
||||||
where <<m.lcCondCod>>
|
where <<m.lcCondCod>>
|
||||||
and dataorav_anaf is not null
|
and dataorav_anaf is not null
|
||||||
and sysdate - dataorav_anaf <= ?pnZileCache)
|
and sysdate - dataorav_anaf <= ?pnZileCache<<m.lcCondCache>>)
|
||||||
where rn = 1
|
where rn = 1
|
||||||
and (data_inceput_scptva is null or ?pdDataCache >= data_inceput_scptva)
|
and (data_inceput_scptva is null or ?pdDataCache >= data_inceput_scptva)
|
||||||
and (data_inceput_tvainc is null or ?pdDataCache >= data_inceput_tvainc)
|
and (data_inceput_tvainc is null or ?pdDataCache >= data_inceput_tvainc)
|
||||||
|
|||||||
Reference in New Issue
Block a user