diff --git a/programe/validare.prg b/programe/validare.prg index e061019..cf8d052 100644 --- a/programe/validare.prg +++ b/programe/validare.prg @@ -1946,7 +1946,8 @@ Define Class VerificareANAF As Custom Use In (Select(m.lcCursorRamas)) Create Cursor (m.lcCursorRamas) (cod_fiscal c(30) Null, data D null) Select (m.lcAliasNorm) - Scan + *!* 02.08.2026 marius.mutu: la ANAF ajung doar codurile care sunt CUI RO valid - restul nu pot fi nici in cache, nici verificate + Scan For cui_n <> 0 lnCuiCurent = cui_n lcCodFiscalCurent = cod_fiscal ldDataCurenta = data @@ -2062,7 +2063,7 @@ Define Class VerificareANAF As Custom Function NormalizeazaCoduriCursor Lparameters tcCursorListaCIF, tdData - Local loVerificareCod As "VerificareCod", lcCodFiscal, lcCodTara, lcCodFiscalFRO, lcAliasNorm, lcSelect, llDataCursor, ldDataRand, ldDataImplicit + Local loVerificareCod As "VerificareCod", lcCodFiscal, lcCodTara, lcCodFiscalFRO, lcAliasNorm, lcSelect, llDataCursor, ldDataRand, ldDataImplicit, lnCuiNorm lcSelect = Select() lcAliasNorm = 'crsCoduriNormalizate' Use In (Select(m.lcAliasNorm)) @@ -2080,8 +2081,13 @@ Define Class VerificareANAF As Custom lcCodFiscalFRO = Strtran(m.lcCodFiscal, m.lcCodTara, '') lcCodFiscalFRO = Strtran(Strtran(Strtran(m.lcCodFiscalFRO, ' ', ''), 'RO', ''), 'R', '') ldDataRand = Iif(m.llDataCursor And !Empty(Nvl(data, {})), Nvl(data, {}), m.ldDataImplicit) - Insert Into (m.lcAliasNorm) (cod_fiscal, data, cui_n) Values ; - (m.lcCodFiscal, m.ldDataRand, Iif(m.lcCodTara = 'RO' And Isdigit(m.lcCodFiscalFRO) And Len(m.lcCodFiscalFRO) <= 10, Int(Val(m.lcCodFiscalFRO)), 0)) + *!* 02.08.2026 marius.mutu: pe langa formatul de baza, si cifra de control (VALIDARE_CIF) - un CIF invalid nu are ce cauta nici in cache, nici la ANAF + lnCuiNorm = 0 + If m.lcCodTara = 'RO' And Isdigit(m.lcCodFiscalFRO) And Len(m.lcCodFiscalFRO) <= 10 ; + And Val(m.lcCodFiscalFRO) <> 0 And loVerificareCod.VALIDARE_CIF(m.lcCodFiscalFRO) + lnCuiNorm = Int(Val(m.lcCodFiscalFRO)) + Endif + Insert Into (m.lcAliasNorm) (cod_fiscal, data, cui_n) Values (m.lcCodFiscal, m.ldDataRand, m.lnCuiNorm) Select (m.tcCursorListaCIF) Endscan @@ -2173,7 +2179,8 @@ Define Class VerificareANAF As Custom lcCodFiscalFRO = Strtran(m.lcCodFiscal, m.lcCodTara, '') lcCodFiscalFRO = Strtran(Strtran(Strtran(m.lcCodFiscalFRO, ' ', ''), 'RO', ''), 'R', '') - If m.llRO AND (Isdigit(m.lcCodFiscalFRO) and Len(m.lcCodFiscalFRO) <= 10) + *!* 02.08.2026 marius.mutu: acelasi filtru ca in NormalizeazaCoduriCursor - format de baza plus cifra de control (VALIDARE_CIF) + If m.llRO AND (Isdigit(m.lcCodFiscalFRO) and Len(m.lcCodFiscalFRO) <= 10 and Val(m.lcCodFiscalFRO) <> 0 and loVerificareCod.VALIDARE_CIF(m.lcCodFiscalFRO)) loCol = Createobject("empty") AddProperty(loCol, "cui", Int(Val(m.lcCodFiscalFRO))) AddProperty(loCol, "data", m.lcDataFormatted) @@ -2181,10 +2188,12 @@ Define Class VerificareANAF As Custom laCoduri[lnIdx] = loCol ENDIF Endscan && tcCursorListaCIF - IF m.lnIdx > 0 - Dimension laCoduri(lnIdx) - ENDIF - + *!* 02.08.2026 marius.mutu: grup fara niciun CUI valid - nu se mai trimite cerere goala la ANAF + IF m.lnIdx = 0 + LOOP + ENDIF + Dimension laCoduri(lnIdx) + lcSend = nfjsoncreate(@laCoduri) goLog.Log('lcSend: ' + m.lcSend, 'ANAF_SincronWebService_PlatitorTva')