teste ANAF: verificari pentru preluarea codului CAEN si a reviziei

Testul sintetic acopera CaenAnaf (completarea zeroului din fata, valori
neplauzibile) si CaenRevizie (format nou/vechi de numar de registru): 42 -> 53
verificari. Proba e2e goleste caen/caen_revizie inainte de rulare si le
verifica dupa, cu contoare SEPARATE de judet/localitate ca cifrele masurate in
rundele anterioare sa ramana comparabile. Mock-ul de dialog expune acum si
codul CAEN si numarul de registru brute de la ANAF.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015husoVS24ewJZr21ZoVR3v
This commit is contained in:
2026-08-23 21:22:56 +03:00
parent a833cf639f
commit 019d241e50
3 changed files with 64 additions and 3 deletions

View File

@@ -43,6 +43,14 @@ FUNCTION verifica_partener_show_info
gcMockAnafFirma = IIF(PEMSTATUS(m.toPartenerVerificare, 'firma', 5), ;
ALLTRIM(NVL(toPartenerVerificare.firma, '')), '')
ENDIF
IF TYPE('gcMockAnafCaen') = 'C'
gcMockAnafCaen = IIF(PEMSTATUS(m.toPartenerVerificare, 'caen', 5), ;
ALLTRIM(NVL(toPartenerVerificare.caen, '')), '')
ENDIF
IF TYPE('gcMockAnafRegCom') = 'C'
gcMockAnafRegCom = IIF(PEMSTATUS(m.toPartenerVerificare, 'regcom', 5), ;
ALLTRIM(NVL(toPartenerVerificare.regcom, '')), '')
ENDIF
ENDIF
lnRaspuns = IIF(TYPE('gnMockRaspunsShowInfo') = 'N', gnMockRaspunsShowInfo, 6)

View File

@@ -32,7 +32,8 @@ SET TALK OFF
PUBLIC gcLogE2E, gnOk, gnEsec, gnSarite, gnE2ELimita, goNomE2E, ;
gnMockRaspuns, gcMockUltimMesaj, gnMockUltimTip, ;
gnMockRaspunsShowInfo, gnMockShowInfoApeluri, ;
gcMockAnafJudet, gcMockAnafLocalitate, gcMockAnafAdresa, gcMockAnafFirma
gcMockAnafJudet, gcMockAnafLocalitate, gcMockAnafAdresa, gcMockAnafFirma, ;
gcMockAnafCaen, gcMockAnafRegCom, gnCaenOk, gnCaenLipsa, gnRevizie3
gcLogE2E = ADDBS(JUSTPATH(SYS(16, 0))) + 'test_e2e_anaf_firma_log.txt'
IF EMPTY(JUSTPATH(SYS(16, 0)))
gcLogE2E = 'D:\ROA\ROADEF\COMUN\utile\Teste\partener_anaf\test_e2e_anaf_firma_log.txt'
@@ -40,6 +41,9 @@ ENDIF
gnOk = 0
gnEsec = 0
gnSarite = 0
gnCaenOk = 0
gnCaenLipsa = 0
gnRevizie3 = 0
* cate coduri se ruleaza: implicit 8, sau variabila de mediu E2E_LIMITA (ex. 200 pentru
* o masuratoare completa) - vfp9.exe nu poate primi parametri pentru scriptul din -T
gnE2ELimita = IIF(VAL(GETENV('E2E_LIMITA')) > 0, INT(VAL(GETENV('E2E_LIMITA'))), 8)
@@ -54,6 +58,8 @@ gcMockAnafJudet = ''
gcMockAnafLocalitate = ''
gcMockAnafAdresa = ''
gcMockAnafFirma = ''
gcMockAnafCaen = ''
gcMockAnafRegCom = ''
STRTOFILE('START test_e2e_anaf_firma ' + TTOC(DATETIME()) + CHR(13) + CHR(10), gcLogE2E)
@@ -176,6 +182,13 @@ FOR lnI = 1 TO m.lnTotalCoduri
poRec.localitate = ''
poRec.id_loc = .NULL.
poRec.adresa = ''
* CAEN-ul si revizia: golite ca sa nu confundam o valoare veche cu una preluata acum
IF TYPE('poRec.caen') <> 'U'
poRec.caen = ''
ENDIF
IF TYPE('poRec.caen_revizie') <> 'U'
poRec.caen_revizie = ''
ENDIF
IF TYPE('poRec.modificare_schema') = 'U'
ADDPROPERTY(poRec, 'modificare_schema', 0)
ENDIF
@@ -185,6 +198,8 @@ FOR lnI = 1 TO m.lnTotalCoduri
gcMockAnafLocalitate = ''
gcMockAnafAdresa = ''
gcMockAnafFirma = ''
gcMockAnafCaen = ''
gcMockAnafRegCom = ''
gnMockShowInfoApeluri = 0
llFrmOk = .F.
@@ -235,6 +250,27 @@ FOR lnI = 1 TO m.lnTotalCoduri
llOkLoc = !EMPTY(m.lcLoc) AND !('<ALEGETI' $ UPPER(m.lcLoc)) AND m.lnIdLoc > 0 ;
AND E2EPotrivit(m.lcLoc, m.lcLocAnaf)
* CAEN: contorizat SEPARAT de judet/localitate, ca sa ramana comparabile
* cifrele masurate in rundele anterioare (997/1000)
IF !EMPTY(gcMockAnafCaen)
IF ALLTRIM(NVL(poRec.caen, '')) == ALLTRIM(gcMockAnafCaen)
gnCaenOk = gnCaenOk + 1
ELSE
gnCaenLipsa = gnCaenLipsa + 1
DO E2ELog WITH 'CIF ' + m.lcCod + ' -> CAEN NEPRELUAT: ANAF[' + ;
gcMockAnafCaen + '] formular[' + ALLTRIM(NVL(poRec.caen, '')) + ']'
ENDIF
* revizia 3 se pune doar cand numarul de registru e in formatul nou
IF !('/' $ gcMockAnafRegCom) AND !EMPTY(gcMockAnafRegCom)
IF ALLTRIM(NVL(poRec.caen_revizie, '')) == '3'
gnRevizie3 = gnRevizie3 + 1
ELSE
DO E2ELog WITH 'CIF ' + m.lcCod + ' -> REVIZIE GRESITA: regcom[' + ;
gcMockAnafRegCom + '] revizie[' + ALLTRIM(NVL(poRec.caen_revizie, '')) + '] asteptat 3'
ENDIF
ENDIF
ENDIF
lcDetaliu = 'ANAF[jud=' + m.lcJudAnaf + ' loc=' + m.lcLocAnaf + ']' + ;
' -> NOM[judet=' + m.lcJudet + ' id_judet=' + TRANSFORM(m.lnIdJudet) + ;
' localitate=' + m.lcLoc + ' id_loc=' + TRANSFORM(m.lnIdLoc) + ']'
@@ -261,6 +297,8 @@ ENDFOR
DO E2ELog WITH REPLICATE('-', 110)
DO E2ELog WITH 'TOTAL: ' + TRANSFORM(gnOk) + ' ok, ' + TRANSFORM(gnEsec) + ' esec, ' + ;
TRANSFORM(gnSarite) + ' sarite (fara raspuns ANAF), din ' + TRANSFORM(m.lnRulate) + ' coduri rulate'
DO E2ELog WITH 'CAEN : ' + TRANSFORM(gnCaenOk) + ' preluat corect, ' + TRANSFORM(gnCaenLipsa) + ;
' nepreluat; revizia 3 pusa pe ' + TRANSFORM(gnRevizie3) + ' firme cu numar de registru in format nou'
DO E2ELog WITH 'REZULTAT: ' + IIF(gnEsec = 0, 'TOATE OK', 'AU FOST ESECURI') + ' ' + TTOC(DATETIME())
QUIT

View File

@@ -136,11 +136,26 @@ Verif("omonime fuzzy fara comuna refuzate", ;
Transform(loN.pozitioneaza_localitate("crsLocT", "SARBI")), ".F.")
Verif("loc inexistent", Transform(loN.pozitioneaza_localitate("crsLocT", "ATLANTIDA")), ".F.")
*** --- CaenAnaf: ANAF trimite codul NUMERIC, deci sectiunea agricultura pierde zeroul din fata ---
Verif("caen 4 cifre nemodificat", loV.CaenAnaf(6201), "6201")
Verif("caen 3 cifre completat", loV.CaenAnaf(141), "0141")
Verif("caen 3 cifre completat 2", loV.CaenAnaf(111), "0111")
Verif("caen primit ca text", loV.CaenAnaf("4711"), "4711")
Verif("caen gol", loV.CaenAnaf(""), "")
Verif("caen zero", loV.CaenAnaf(0), "")
Verif("caen prea lung refuzat", loV.CaenAnaf(62011), "")
*** --- CaenRevizie: numar de registru in format NOU (fara '/') <=> cod CAEN revizia 3 ---
Verif("revizie format nou", loV.CaenRevizie("J2017000999304"), "3")
Verif("revizie format nou F", loV.CaenRevizie("F1993000063034"), "3")
Verif("revizie format vechi", loV.CaenRevizie("J13/626/1991"), "")
Verif("revizie fara numar", loV.CaenRevizie(""), "")
*** On Error continua executia, deci o verificare sarita (obiect neinstantiat) nu s-ar vedea
*** in numarul de esecuri; se verifica explicit ca au rulat toate.
If m.gnOk + m.gnNok # 42
If m.gnOk + m.gnNok # 53
gnNok = m.gnNok + 1
Strtofile("ESEC au rulat doar " + Transform(m.gnOk + m.gnNok) + " verificari din 42" + Chr(13) + Chr(10), m.gcLog, .T.)
Strtofile("ESEC au rulat doar " + Transform(m.gnOk + m.gnNok) + " verificari din 53" + Chr(13) + Chr(10), m.gcLog, .T.)
Endif
Strtofile("TOTAL: " + Transform(m.gnOk) + " ok, " + Transform(m.gnNok) + " esec" + Chr(13) + Chr(10), m.gcLog, .T.)
Quit