From 4040cff4f1d13583d27504717bc43c60c3419719 Mon Sep 17 00:00:00 2001 From: Marius Mutu Date: Sat, 19 Sep 2026 22:11:14 +0300 Subject: [PATCH] teste storno eFactura: e2e runda 2-5, diagnostic ANAF 1814 (E1-E4: validare /prod/ inainte de upload /test/), Raspunsuri (nimic) (test6-8) Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01WsxyCHJYL6W9MZ6FPnH8ax --- .../Teste/storno/mock_anaf_server_storno.prg | 26 +++- utile/Teste/storno/test5_1814_e1.prg | 124 ++++++++++++++++ utile/Teste/storno/test5_1814_e2.prg | 124 ++++++++++++++++ utile/Teste/storno/test5_1814_e3.prg | 136 ++++++++++++++++++ utile/Teste/storno/test5_1814_e4.prg | 123 ++++++++++++++++ utile/Teste/storno/test6_raspunsuri_1zi.prg | 29 ++++ .../storno/test7_raspunsuri_dupa_upload.prg | 63 ++++++++ .../storno/test8_raspunsuri_fara_nimic.prg | 50 +++++++ utile/Teste/storno/test_storno_e2e.prg | 23 ++- 9 files changed, 692 insertions(+), 6 deletions(-) create mode 100644 utile/Teste/storno/test5_1814_e1.prg create mode 100644 utile/Teste/storno/test5_1814_e2.prg create mode 100644 utile/Teste/storno/test5_1814_e3.prg create mode 100644 utile/Teste/storno/test5_1814_e4.prg create mode 100644 utile/Teste/storno/test6_raspunsuri_1zi.prg create mode 100644 utile/Teste/storno/test7_raspunsuri_dupa_upload.prg create mode 100644 utile/Teste/storno/test8_raspunsuri_fara_nimic.prg diff --git a/utile/Teste/storno/mock_anaf_server_storno.prg b/utile/Teste/storno/mock_anaf_server_storno.prg index 8b60952..82afff1 100644 --- a/utile/Teste/storno/mock_anaf_server_storno.prg +++ b/utile/Teste/storno/mock_anaf_server_storno.prg @@ -32,12 +32,28 @@ DEFINE CLASS MockAnafServerStorno AS Custom LOCAL loReturn This.RegMock('TrimiteFacturaXML', tcFile, TRANSFORM(tlB2C)) loReturn = CREATEOBJECT('Empty') - ADDPROPERTY(loReturn, 'lSucces', .T.) - ADDPROPERTY(loReturn, 'cIdIncarcare', 'MOCK-ID-STORNO-12345') - ADDPROPERTY(loReturn, 'cMesaj', '') - ADDPROPERTY(loReturn, 'cResponse', '') - ADDPROPERTY(loReturn, 'nStatus', 200) ADDPROPERTY(loReturn, 'cFile', TRANSFORM(tcFile)) + * gnMockTrimiteMod (test_storno_e2e.prg): 0=succes, 1=ANAF a raspuns clar cu eroare (HTTP 200), 2=eroare de retea (HTTP 0) + DO CASE + CASE TYPE('gnMockTrimiteMod') = 'N' AND gnMockTrimiteMod = 1 + ADDPROPERTY(loReturn, 'lSucces', .T.) + ADDPROPERTY(loReturn, 'cIdIncarcare', '') + ADDPROPERTY(loReturn, 'cMesaj', 'TEST ANAF a respins incarcarea: A aparut o eroare tehnica. Cod: 1814') + ADDPROPERTY(loReturn, 'cResponse', '') + ADDPROPERTY(loReturn, 'nStatus', 200) + CASE TYPE('gnMockTrimiteMod') = 'N' AND gnMockTrimiteMod = 2 + ADDPROPERTY(loReturn, 'lSucces', .F.) + ADDPROPERTY(loReturn, 'cIdIncarcare', '') + ADDPROPERTY(loReturn, 'cMesaj', 'Eroare de comunicare cu ANAF - Http Status: 0. Raspuns: ') + ADDPROPERTY(loReturn, 'cResponse', '') + ADDPROPERTY(loReturn, 'nStatus', 0) + OTHERWISE + ADDPROPERTY(loReturn, 'lSucces', .T.) + ADDPROPERTY(loReturn, 'cIdIncarcare', 'MOCK-ID-STORNO-12345') + ADDPROPERTY(loReturn, 'cMesaj', '') + ADDPROPERTY(loReturn, 'cResponse', '') + ADDPROPERTY(loReturn, 'nStatus', 200) + ENDCASE RETURN loReturn ENDPROC diff --git a/utile/Teste/storno/test5_1814_e1.prg b/utile/Teste/storno/test5_1814_e1.prg new file mode 100644 index 0000000..8b4c8be --- /dev/null +++ b/utile/Teste/storno/test5_1814_e1.prg @@ -0,0 +1,124 @@ +* test5_1814_e1.prg +* E1 (docs\storno_eroare_1814_diagnostic.md): retrimite pe ANAF TEST EXACT fisierul storno SSS 1156-S +* care a primit "Cod: 1814" la Marius (19.09.2026 17:45), fara regenerare. Scop: 1814 e determinist? +* Un singur upload. Garzi: sha1 fisier, lTest, token, CIF - inainte de TrimiteFacturaXML. +* +* Rulare: powershell -ExecutionPolicy Bypass -File D:\ROA\ROACONT\COMUN\utile\Teste\watchdog_vfp.ps1 -Script D:\ROA\ROACONT\COMUN\utile\Teste\storno\test5_1814_e1.prg -AutoDismiss -TimeoutSec 240 +* Iesire: test5_1814_e1_log.txt (+ test5_1814_e1_golog.txt cu liniile SendEFactura), acelasi folder + +SET SAFETY OFF +SET TALK OFF +SET DELETED ON +SET EXACT ON +SET CENTURY ON +SET DATE DMY +SET NULLDISPLAY TO '' +CLOSE DATABASES + +PUBLIC gcUILog, gcDir +gcDir = "D:\ROA\ROACONT\COMUN\utile\Teste\storno\" +gcUILog = gcDir + "test5_1814_e1_log.txt" +STRTOFILE("START " + TTOC(DATETIME()) + CHR(13) + CHR(10), gcUILog) + +ON ERROR DO PrErrLocal WITH ERROR(), MESSAGE(), PROGRAM(), LINENO() +ON SHUTDOWN QUIT + +TRY + DO "D:\ROA\ROACONT\COMUN\utile\Teste\test_init_env_auto.prg" WITH 'CENTRAL', 'MARIUSM_AUTO', 'ROMFASTSOFT' + IF gnHandle <= 0 + DO PrLogLocal WITH 'FAIL: conectare Oracle esuata (gnHandle=' + TRANSFORM(gnHandle) + ')' + QUIT + ENDIF + DO PrLogLocal WITH 'mediu initializat, gnHandle=' + TRANSFORM(gnHandle) + + * SendEFactura scrie URL-ul si raspunsul prin goLog; Log_Mesaje nu scrie daca fisierul lipseste + goLog.cLogFile = gcDir + "test5_1814_e1_golog.txt" + STRTOFILE('', goLog.cLogFile) + + LOCAL lcFile, lcSha1Asteptat, lcSha1 + lcFile = "D:\ROA\Efactura\2026_09\MARIUSM_AUTO_SUC_1_TEXT_LUNG_IN_DENUMIERA_FIRMEI_SRL\TRIMISE\storno_SSS 1156-S_1879855.xml" + lcSha1Asteptat = 'e14d55f8fa7824529f0f03ff1724c5c3dedb1867' + + IF !FILE(lcFile) + DO PrLogLocal WITH 'BLOCAT: nu exista fisierul: ' + lcFile + QUIT + ENDIF + lcSha1 = Sha1Fisier(lcFile) + DO PrLogLocal WITH 'fisier=' + lcFile + ' len=' + TRANSFORM(LEN(FILETOSTR(lcFile))) + ' sha1=' + lcSha1 + IF !(lcSha1 == lcSha1Asteptat) + DO PrLogLocal WITH 'BLOCAT: sha1 diferit de ' + lcSha1Asteptat + ' - fisierul a fost regenerat, opresc' + QUIT + ENDIF + + LOCAL loAnaf As 'AnafeFacturaServer' + loAnaf = CREATEOBJECT('AnafeFacturaServer', .F., '', gcS, '') + loAnaf.lTest = .T. + loAnaf.RefreshTokenAuto() + DO PrLogLocal WITH 'CIF=' + loAnaf.cCodFiscal + ' lTest=' + TRANSFORM(loAnaf.lTest) + ' tokenExp=' + DTOC(loAnaf.dTokenExpdate) + ' tokenGol=' + TRANSFORM(EMPTY(loAnaf.cToken)) + + * garzi finale, imediat inainte de upload + IF VARTYPE(loAnaf.lTest) <> 'L' OR !loAnaf.lTest + DO PrLogLocal WITH 'BLOCAT: lTest nu e .T.' + QUIT + ENDIF + IF EMPTY(loAnaf.cToken) OR loAnaf.dTokenExpdate <= DATE() + DO PrLogLocal WITH 'BLOCAT: token gol sau expirat' + QUIT + ENDIF + IF !(ALLTRIM(loAnaf.cCodFiscal) == '1879855') + DO PrLogLocal WITH 'BLOCAT: CIF neasteptat: ' + loAnaf.cCodFiscal + QUIT + ENDIF + IF !FILE(lcFile) OR !(Sha1Fisier(lcFile) == lcSha1Asteptat) + DO PrLogLocal WITH 'BLOCAT: fisierul lipseste sau s-a schimbat chiar inainte de upload' + QUIT + ENDIF + + DO PrLogLocal WITH '=== UPLOAD 1/1: storno SSS 1156-S byte-identic pe TEST ===' + LOCAL loRet + loRet = loAnaf.TrimiteFacturaXML(lcFile, .F., .F., .F., .F., .F.) + DO PrLogLocal WITH 'upload: lSucces=' + TRANSFORM(loRet.lSucces) + ' status=' + TRANSFORM(loRet.nStatus) + ' idIncarcare=' + ALLTRIM(NVL(loRet.cIdIncarcare,'')) + ' mesaj=[' + ALLTRIM(NVL(loRet.cMesaj,'')) + ']' + DO PrLogLocal WITH 'raspuns brut: ' + NVL(loRet.cResponse,'') + DO PrLogLocal WITH 'TOTAL: test terminat fara exceptie' +CATCH TO loEx + DO PrLogLocal WITH 'EXCEPTIE: ' + loEx.Message + ' (' + TRANSFORM(loEx.LineNo) + ') ' + loEx.Procedure +ENDTRY + +QUIT + +********************************************************** +* sha1 prin certutil (sincron, fereastra ascunsa) +FUNCTION Sha1Fisier + LPARAMETERS tcFile + LOCAL loSh, lcOut, lcTxt, lcHash, lnI + lcOut = ADDBS(SYS(2023)) + 'test5_sha1_' + SYS(2015) + '.txt' + loSh = CREATEOBJECT('WScript.Shell') + loSh.Run('cmd /c certutil -hashfile "' + tcFile + '" SHA1 > "' + lcOut + '"', 0, .T.) + lcHash = '' + IF FILE(lcOut) + lcTxt = FILETOSTR(lcOut) + DELETE FILE (lcOut) + FOR lnI = 1 TO GETWORDCOUNT(lcTxt, CHR(13) + CHR(10)) + IF LEN(CHRTRAN(GETWORDNUM(lcTxt, lnI, CHR(13) + CHR(10)), ' ', '')) = 40 + lcHash = LOWER(CHRTRAN(GETWORDNUM(lcTxt, lnI, CHR(13) + CHR(10)), ' ', '')) + EXIT + ENDIF + ENDFOR + ENDIF + RETURN lcHash +ENDFUNC + +********************************************************** +PROCEDURE PrLogLocal + LPARAMETERS tcMsg + LOCAL lcL + SET SAFETY OFF + lcL = IIF(FILE(gcUILog), FILETOSTR(gcUILog), '') + STRTOFILE(lcL + TTOC(DATETIME()) + ' ' + TRANSFORM(tcMsg) + CHR(13) + CHR(10), gcUILog) +ENDPROC + +********************************************************** +PROCEDURE PrErrLocal + LPARAMETERS tnError, tcMessage, tcProgram, tnLineNo + DO PrLogLocal WITH 'EROARE ' + TRANSFORM(tnError) + ' ' + TRANSFORM(tcMessage) + ' in ' + TRANSFORM(tcProgram) + ' linia ' + TRANSFORM(tnLineNo) +ENDPROC diff --git a/utile/Teste/storno/test5_1814_e2.prg b/utile/Teste/storno/test5_1814_e2.prg new file mode 100644 index 0000000..f59ae96 --- /dev/null +++ b/utile/Teste/storno/test5_1814_e2.prg @@ -0,0 +1,124 @@ +* test5_1814_e2.prg +* E2 (docs\storno_eroare_1814_diagnostic.md), DOAR daca E1 a primit din nou 1814: storno SSS 1156-S identic +* cu fisierul din E1, minus blocul cac:BillingReference (singura diferenta). Acelasi numar, o singura variabila. +* Un singur upload. Garzi: sha1 fisier, lTest, token, CIF - inainte de TrimiteFacturaXML. +* +* Rulare: powershell -ExecutionPolicy Bypass -File D:\ROA\ROACONT\COMUN\utile\Teste\watchdog_vfp.ps1 -Script D:\ROA\ROACONT\COMUN\utile\Teste\storno\test5_1814_e2.prg -AutoDismiss -TimeoutSec 240 +* Iesire: test5_1814_e2_log.txt (+ test5_1814_e2_golog.txt cu liniile SendEFactura), acelasi folder + +SET SAFETY OFF +SET TALK OFF +SET DELETED ON +SET EXACT ON +SET CENTURY ON +SET DATE DMY +SET NULLDISPLAY TO '' +CLOSE DATABASES + +PUBLIC gcUILog, gcDir +gcDir = "D:\ROA\ROACONT\COMUN\utile\Teste\storno\" +gcUILog = gcDir + "test5_1814_e2_log.txt" +STRTOFILE("START " + TTOC(DATETIME()) + CHR(13) + CHR(10), gcUILog) + +ON ERROR DO PrErrLocal WITH ERROR(), MESSAGE(), PROGRAM(), LINENO() +ON SHUTDOWN QUIT + +TRY + DO "D:\ROA\ROACONT\COMUN\utile\Teste\test_init_env_auto.prg" WITH 'CENTRAL', 'MARIUSM_AUTO', 'ROMFASTSOFT' + IF gnHandle <= 0 + DO PrLogLocal WITH 'FAIL: conectare Oracle esuata (gnHandle=' + TRANSFORM(gnHandle) + ')' + QUIT + ENDIF + DO PrLogLocal WITH 'mediu initializat, gnHandle=' + TRANSFORM(gnHandle) + + * SendEFactura scrie URL-ul si raspunsul prin goLog; Log_Mesaje nu scrie daca fisierul lipseste + goLog.cLogFile = gcDir + "test5_1814_e2_golog.txt" + STRTOFILE('', goLog.cLogFile) + + LOCAL lcFile, lcSha1Asteptat, lcSha1 + lcFile = gcDir + "out\test5_e2_storno_SSS1156-S_fara_billingref.xml" + lcSha1Asteptat = 'fb9b05149316c056b61f0cdbe3a2c7612f06812b' + + IF !FILE(lcFile) + DO PrLogLocal WITH 'BLOCAT: nu exista fisierul: ' + lcFile + QUIT + ENDIF + lcSha1 = Sha1Fisier(lcFile) + DO PrLogLocal WITH 'fisier=' + lcFile + ' len=' + TRANSFORM(LEN(FILETOSTR(lcFile))) + ' sha1=' + lcSha1 + IF !(lcSha1 == lcSha1Asteptat) + DO PrLogLocal WITH 'BLOCAT: sha1 diferit de ' + lcSha1Asteptat + ' - fisierul E2 a fost modificat, opresc' + QUIT + ENDIF + + LOCAL loAnaf As 'AnafeFacturaServer' + loAnaf = CREATEOBJECT('AnafeFacturaServer', .F., '', gcS, '') + loAnaf.lTest = .T. + loAnaf.RefreshTokenAuto() + DO PrLogLocal WITH 'CIF=' + loAnaf.cCodFiscal + ' lTest=' + TRANSFORM(loAnaf.lTest) + ' tokenExp=' + DTOC(loAnaf.dTokenExpdate) + ' tokenGol=' + TRANSFORM(EMPTY(loAnaf.cToken)) + + * garzi finale, imediat inainte de upload + IF VARTYPE(loAnaf.lTest) <> 'L' OR !loAnaf.lTest + DO PrLogLocal WITH 'BLOCAT: lTest nu e .T.' + QUIT + ENDIF + IF EMPTY(loAnaf.cToken) OR loAnaf.dTokenExpdate <= DATE() + DO PrLogLocal WITH 'BLOCAT: token gol sau expirat' + QUIT + ENDIF + IF !(ALLTRIM(loAnaf.cCodFiscal) == '1879855') + DO PrLogLocal WITH 'BLOCAT: CIF neasteptat: ' + loAnaf.cCodFiscal + QUIT + ENDIF + IF !FILE(lcFile) OR !(Sha1Fisier(lcFile) == lcSha1Asteptat) + DO PrLogLocal WITH 'BLOCAT: fisierul lipseste sau s-a schimbat chiar inainte de upload' + QUIT + ENDIF + + DO PrLogLocal WITH '=== UPLOAD 1/1: storno SSS 1156-S FARA BillingReference pe TEST ===' + LOCAL loRet + loRet = loAnaf.TrimiteFacturaXML(lcFile, .F., .F., .F., .F., .F.) + DO PrLogLocal WITH 'upload: lSucces=' + TRANSFORM(loRet.lSucces) + ' status=' + TRANSFORM(loRet.nStatus) + ' idIncarcare=' + ALLTRIM(NVL(loRet.cIdIncarcare,'')) + ' mesaj=[' + ALLTRIM(NVL(loRet.cMesaj,'')) + ']' + DO PrLogLocal WITH 'raspuns brut: ' + NVL(loRet.cResponse,'') + DO PrLogLocal WITH 'TOTAL: test terminat fara exceptie' +CATCH TO loEx + DO PrLogLocal WITH 'EXCEPTIE: ' + loEx.Message + ' (' + TRANSFORM(loEx.LineNo) + ') ' + loEx.Procedure +ENDTRY + +QUIT + +********************************************************** +* sha1 prin certutil (sincron, fereastra ascunsa) +FUNCTION Sha1Fisier + LPARAMETERS tcFile + LOCAL loSh, lcOut, lcTxt, lcHash, lnI + lcOut = ADDBS(SYS(2023)) + 'test5_sha1_' + SYS(2015) + '.txt' + loSh = CREATEOBJECT('WScript.Shell') + loSh.Run('cmd /c certutil -hashfile "' + tcFile + '" SHA1 > "' + lcOut + '"', 0, .T.) + lcHash = '' + IF FILE(lcOut) + lcTxt = FILETOSTR(lcOut) + DELETE FILE (lcOut) + FOR lnI = 1 TO GETWORDCOUNT(lcTxt, CHR(13) + CHR(10)) + IF LEN(CHRTRAN(GETWORDNUM(lcTxt, lnI, CHR(13) + CHR(10)), ' ', '')) = 40 + lcHash = LOWER(CHRTRAN(GETWORDNUM(lcTxt, lnI, CHR(13) + CHR(10)), ' ', '')) + EXIT + ENDIF + ENDFOR + ENDIF + RETURN lcHash +ENDFUNC + +********************************************************** +PROCEDURE PrLogLocal + LPARAMETERS tcMsg + LOCAL lcL + SET SAFETY OFF + lcL = IIF(FILE(gcUILog), FILETOSTR(gcUILog), '') + STRTOFILE(lcL + TTOC(DATETIME()) + ' ' + TRANSFORM(tcMsg) + CHR(13) + CHR(10), gcUILog) +ENDPROC + +********************************************************** +PROCEDURE PrErrLocal + LPARAMETERS tnError, tcMessage, tcProgram, tnLineNo + DO PrLogLocal WITH 'EROARE ' + TRANSFORM(tnError) + ' ' + TRANSFORM(tcMessage) + ' in ' + TRANSFORM(tcProgram) + ' linia ' + TRANSFORM(tnLineNo) +ENDPROC diff --git a/utile/Teste/storno/test5_1814_e3.prg b/utile/Teste/storno/test5_1814_e3.prg new file mode 100644 index 0000000..3180798 --- /dev/null +++ b/utile/Teste/storno/test5_1814_e3.prg @@ -0,0 +1,136 @@ +* test5_1814_e3.prg +* E3 (docs\storno_1814_traseu_ui_vs_script.md): ca E1 + O SINGURA variabila noua: ValidareEFacturaANAF +* (/prod/validare, ca Valideaza() din forma) imediat inainte de upload pe TEST. Storno nou SSS 1156-S3. +* Un singur upload. Garzi: sha1 fisier, lTest, token, CIF - inainte de TrimiteFacturaXML. +* +* Rulare: powershell -ExecutionPolicy Bypass -File D:\ROA\ROACONT\COMUN\utile\Teste\watchdog_vfp.ps1 -Script D:\ROA\ROACONT\COMUN\utile\Teste\storno\test5_1814_e3.prg -AutoDismiss -TimeoutSec 240 +* Iesire: test5_1814_e3_log.txt (+ test5_1814_e3_golog.txt cu liniile SendEFactura), acelasi folder + +SET SAFETY OFF +SET TALK OFF +SET DELETED ON +SET EXACT ON +SET CENTURY ON +SET DATE DMY +SET NULLDISPLAY TO '' +CLOSE DATABASES + +PUBLIC gcUILog, gcDir +gcDir = "D:\ROA\ROACONT\COMUN\utile\Teste\storno\" +gcUILog = gcDir + "test5_1814_e3_log.txt" +STRTOFILE("START " + TTOC(DATETIME()) + CHR(13) + CHR(10), gcUILog) + +ON ERROR DO PrErrLocal WITH ERROR(), MESSAGE(), PROGRAM(), LINENO() +ON SHUTDOWN QUIT + +TRY + DO "D:\ROA\ROACONT\COMUN\utile\Teste\test_init_env_auto.prg" WITH 'CENTRAL', 'MARIUSM_AUTO', 'ROMFASTSOFT' + IF gnHandle <= 0 + DO PrLogLocal WITH 'FAIL: conectare Oracle esuata (gnHandle=' + TRANSFORM(gnHandle) + ')' + QUIT + ENDIF + DO PrLogLocal WITH 'mediu initializat, gnHandle=' + TRANSFORM(gnHandle) + + * SendEFactura scrie URL-ul si raspunsul prin goLog; Log_Mesaje nu scrie daca fisierul lipseste + goLog.cLogFile = gcDir + "test5_1814_e3_golog.txt" + STRTOFILE('', goLog.cLogFile) + + LOCAL lcFile, lcSha1Asteptat, lcSha1 + lcFile = gcDir + "out\storno_SSS 1156-S3_1879855.xml" + lcSha1Asteptat = 'c407f69020b8d30f2c298e294f9fd1ad60ee96d4' + + IF !FILE(lcFile) + DO PrLogLocal WITH 'BLOCAT: nu exista fisierul: ' + lcFile + QUIT + ENDIF + lcSha1 = Sha1Fisier(lcFile) + DO PrLogLocal WITH 'fisier=' + lcFile + ' len=' + TRANSFORM(LEN(FILETOSTR(lcFile))) + ' sha1=' + lcSha1 + IF !(lcSha1 == lcSha1Asteptat) + DO PrLogLocal WITH 'BLOCAT: sha1 diferit de ' + lcSha1Asteptat + ' - fisierul a fost regenerat, opresc' + QUIT + ENDIF + + LOCAL loAnaf As 'AnafeFacturaServer' + loAnaf = CREATEOBJECT('AnafeFacturaServer', .F., '', gcS, '') + loAnaf.lTest = .T. + loAnaf.RefreshTokenAuto() + DO PrLogLocal WITH 'CIF=' + loAnaf.cCodFiscal + ' lTest=' + TRANSFORM(loAnaf.lTest) + ' tokenExp=' + DTOC(loAnaf.dTokenExpdate) + ' tokenGol=' + TRANSFORM(EMPTY(loAnaf.cToken)) + + * garzi finale, imediat inainte de upload + IF VARTYPE(loAnaf.lTest) <> 'L' OR !loAnaf.lTest + DO PrLogLocal WITH 'BLOCAT: lTest nu e .T.' + QUIT + ENDIF + IF EMPTY(loAnaf.cToken) OR loAnaf.dTokenExpdate <= DATE() + DO PrLogLocal WITH 'BLOCAT: token gol sau expirat' + QUIT + ENDIF + IF !(ALLTRIM(loAnaf.cCodFiscal) == '1879855') + DO PrLogLocal WITH 'BLOCAT: CIF neasteptat: ' + loAnaf.cCodFiscal + QUIT + ENDIF + IF !FILE(lcFile) OR !(Sha1Fisier(lcFile) == lcSha1Asteptat) + DO PrLogLocal WITH 'BLOCAT: fisierul lipseste sau s-a schimbat chiar inainte de upload' + QUIT + ENDIF + + IF !("XMLEFACTURA" $ UPPER(SET("PROCEDURE"))) + SET PROCEDURE TO xmlefactura ADDITIVE + ENDIF + LOCAL loExport, llValid, lcMesajValid + lcMesajValid = "" + DO PrLogLocal WITH "=== VALIDARE /prod/validare (ca Valideaza din forma) ===" + loExport = CREATEOBJECT("ExportEFactura", .T., loAnaf.cToken) + llValid = loExport.ValidareEFacturaANAF(lcFile, @lcMesajValid) + DO PrLogLocal WITH "validare: llValid=" + TRANSFORM(llValid) + " mesaj=[" + TRANSFORM(lcMesajValid) + "] sha1dupa=" + Sha1Fisier(lcFile) + IF !(Sha1Fisier(lcFile) == lcSha1Asteptat) + DO PrLogLocal WITH "ATENTIE: validarea a modificat fisierul - continui (asta e traseul UI)" + ENDIF + DO PrLogLocal WITH '=== UPLOAD 1/1: storno SSS 1156-S3 dupa validare, pe TEST ===' + LOCAL loRet + loRet = loAnaf.TrimiteFacturaXML(lcFile, .F., .F., .F., .F., .F.) + DO PrLogLocal WITH 'upload: lSucces=' + TRANSFORM(loRet.lSucces) + ' status=' + TRANSFORM(loRet.nStatus) + ' idIncarcare=' + ALLTRIM(NVL(loRet.cIdIncarcare,'')) + ' mesaj=[' + ALLTRIM(NVL(loRet.cMesaj,'')) + ']' + DO PrLogLocal WITH 'raspuns brut: ' + NVL(loRet.cResponse,'') + DO PrLogLocal WITH 'TOTAL: test terminat fara exceptie' +CATCH TO loEx + DO PrLogLocal WITH 'EXCEPTIE: ' + loEx.Message + ' (' + TRANSFORM(loEx.LineNo) + ') ' + loEx.Procedure +ENDTRY + +QUIT + +********************************************************** +* sha1 prin certutil (sincron, fereastra ascunsa) +FUNCTION Sha1Fisier + LPARAMETERS tcFile + LOCAL loSh, lcOut, lcTxt, lcHash, lnI + lcOut = ADDBS(SYS(2023)) + 'test5_sha1_' + SYS(2015) + '.txt' + loSh = CREATEOBJECT('WScript.Shell') + loSh.Run('cmd /c certutil -hashfile "' + tcFile + '" SHA1 > "' + lcOut + '"', 0, .T.) + lcHash = '' + IF FILE(lcOut) + lcTxt = FILETOSTR(lcOut) + DELETE FILE (lcOut) + FOR lnI = 1 TO GETWORDCOUNT(lcTxt, CHR(13) + CHR(10)) + IF LEN(CHRTRAN(GETWORDNUM(lcTxt, lnI, CHR(13) + CHR(10)), ' ', '')) = 40 + lcHash = LOWER(CHRTRAN(GETWORDNUM(lcTxt, lnI, CHR(13) + CHR(10)), ' ', '')) + EXIT + ENDIF + ENDFOR + ENDIF + RETURN lcHash +ENDFUNC + +********************************************************** +PROCEDURE PrLogLocal + LPARAMETERS tcMsg + LOCAL lcL + SET SAFETY OFF + lcL = IIF(FILE(gcUILog), FILETOSTR(gcUILog), '') + STRTOFILE(lcL + TTOC(DATETIME()) + ' ' + TRANSFORM(tcMsg) + CHR(13) + CHR(10), gcUILog) +ENDPROC + +********************************************************** +PROCEDURE PrErrLocal + LPARAMETERS tnError, tcMessage, tcProgram, tnLineNo + DO PrLogLocal WITH 'EROARE ' + TRANSFORM(tnError) + ' ' + TRANSFORM(tcMessage) + ' in ' + TRANSFORM(tcProgram) + ' linia ' + TRANSFORM(tnLineNo) +ENDPROC diff --git a/utile/Teste/storno/test5_1814_e4.prg b/utile/Teste/storno/test5_1814_e4.prg new file mode 100644 index 0000000..a60d814 --- /dev/null +++ b/utile/Teste/storno/test5_1814_e4.prg @@ -0,0 +1,123 @@ +* test5_1814_e4.prg +* E4: acelasi fisier S3 ca E3 (care a primit 1814), FARA validare /prod/validare. Izoleaza validarea. +* Un singur upload. Garzi: sha1 fisier, lTest, token, CIF - inainte de TrimiteFacturaXML. +* +* Rulare: powershell -ExecutionPolicy Bypass -File D:\ROA\ROACONT\COMUN\utile\Teste\watchdog_vfp.ps1 -Script D:\ROA\ROACONT\COMUN\utile\Teste\storno\test5_1814_e4.prg -AutoDismiss -TimeoutSec 240 +* Iesire: test5_1814_e4_log.txt (+ test5_1814_e4_golog.txt cu liniile SendEFactura), acelasi folder + +SET SAFETY OFF +SET TALK OFF +SET DELETED ON +SET EXACT ON +SET CENTURY ON +SET DATE DMY +SET NULLDISPLAY TO '' +CLOSE DATABASES + +PUBLIC gcUILog, gcDir +gcDir = "D:\ROA\ROACONT\COMUN\utile\Teste\storno\" +gcUILog = gcDir + "test5_1814_e4_log.txt" +STRTOFILE("START " + TTOC(DATETIME()) + CHR(13) + CHR(10), gcUILog) + +ON ERROR DO PrErrLocal WITH ERROR(), MESSAGE(), PROGRAM(), LINENO() +ON SHUTDOWN QUIT + +TRY + DO "D:\ROA\ROACONT\COMUN\utile\Teste\test_init_env_auto.prg" WITH 'CENTRAL', 'MARIUSM_AUTO', 'ROMFASTSOFT' + IF gnHandle <= 0 + DO PrLogLocal WITH 'FAIL: conectare Oracle esuata (gnHandle=' + TRANSFORM(gnHandle) + ')' + QUIT + ENDIF + DO PrLogLocal WITH 'mediu initializat, gnHandle=' + TRANSFORM(gnHandle) + + * SendEFactura scrie URL-ul si raspunsul prin goLog; Log_Mesaje nu scrie daca fisierul lipseste + goLog.cLogFile = gcDir + "test5_1814_e4_golog.txt" + STRTOFILE('', goLog.cLogFile) + + LOCAL lcFile, lcSha1Asteptat, lcSha1 + lcFile = gcDir + "out\storno_SSS 1156-S3_1879855.xml" + lcSha1Asteptat = 'c407f69020b8d30f2c298e294f9fd1ad60ee96d4' + + IF !FILE(lcFile) + DO PrLogLocal WITH 'BLOCAT: nu exista fisierul: ' + lcFile + QUIT + ENDIF + lcSha1 = Sha1Fisier(lcFile) + DO PrLogLocal WITH 'fisier=' + lcFile + ' len=' + TRANSFORM(LEN(FILETOSTR(lcFile))) + ' sha1=' + lcSha1 + IF !(lcSha1 == lcSha1Asteptat) + DO PrLogLocal WITH 'BLOCAT: sha1 diferit de ' + lcSha1Asteptat + ' - fisierul a fost regenerat, opresc' + QUIT + ENDIF + + LOCAL loAnaf As 'AnafeFacturaServer' + loAnaf = CREATEOBJECT('AnafeFacturaServer', .F., '', gcS, '') + loAnaf.lTest = .T. + loAnaf.RefreshTokenAuto() + DO PrLogLocal WITH 'CIF=' + loAnaf.cCodFiscal + ' lTest=' + TRANSFORM(loAnaf.lTest) + ' tokenExp=' + DTOC(loAnaf.dTokenExpdate) + ' tokenGol=' + TRANSFORM(EMPTY(loAnaf.cToken)) + + * garzi finale, imediat inainte de upload + IF VARTYPE(loAnaf.lTest) <> 'L' OR !loAnaf.lTest + DO PrLogLocal WITH 'BLOCAT: lTest nu e .T.' + QUIT + ENDIF + IF EMPTY(loAnaf.cToken) OR loAnaf.dTokenExpdate <= DATE() + DO PrLogLocal WITH 'BLOCAT: token gol sau expirat' + QUIT + ENDIF + IF !(ALLTRIM(loAnaf.cCodFiscal) == '1879855') + DO PrLogLocal WITH 'BLOCAT: CIF neasteptat: ' + loAnaf.cCodFiscal + QUIT + ENDIF + IF !FILE(lcFile) OR !(Sha1Fisier(lcFile) == lcSha1Asteptat) + DO PrLogLocal WITH 'BLOCAT: fisierul lipseste sau s-a schimbat chiar inainte de upload' + QUIT + ENDIF + + DO PrLogLocal WITH '=== UPLOAD 1/1: storno SSS 1156-S3 FARA validare, pe TEST ===' + LOCAL loRet + loRet = loAnaf.TrimiteFacturaXML(lcFile, .F., .F., .F., .F., .F.) + DO PrLogLocal WITH 'upload: lSucces=' + TRANSFORM(loRet.lSucces) + ' status=' + TRANSFORM(loRet.nStatus) + ' idIncarcare=' + ALLTRIM(NVL(loRet.cIdIncarcare,'')) + ' mesaj=[' + ALLTRIM(NVL(loRet.cMesaj,'')) + ']' + DO PrLogLocal WITH 'raspuns brut: ' + NVL(loRet.cResponse,'') + DO PrLogLocal WITH 'TOTAL: test terminat fara exceptie' +CATCH TO loEx + DO PrLogLocal WITH 'EXCEPTIE: ' + loEx.Message + ' (' + TRANSFORM(loEx.LineNo) + ') ' + loEx.Procedure +ENDTRY + +QUIT + +********************************************************** +* sha1 prin certutil (sincron, fereastra ascunsa) +FUNCTION Sha1Fisier + LPARAMETERS tcFile + LOCAL loSh, lcOut, lcTxt, lcHash, lnI + lcOut = ADDBS(SYS(2023)) + 'test5_sha1_' + SYS(2015) + '.txt' + loSh = CREATEOBJECT('WScript.Shell') + loSh.Run('cmd /c certutil -hashfile "' + tcFile + '" SHA1 > "' + lcOut + '"', 0, .T.) + lcHash = '' + IF FILE(lcOut) + lcTxt = FILETOSTR(lcOut) + DELETE FILE (lcOut) + FOR lnI = 1 TO GETWORDCOUNT(lcTxt, CHR(13) + CHR(10)) + IF LEN(CHRTRAN(GETWORDNUM(lcTxt, lnI, CHR(13) + CHR(10)), ' ', '')) = 40 + lcHash = LOWER(CHRTRAN(GETWORDNUM(lcTxt, lnI, CHR(13) + CHR(10)), ' ', '')) + EXIT + ENDIF + ENDFOR + ENDIF + RETURN lcHash +ENDFUNC + +********************************************************** +PROCEDURE PrLogLocal + LPARAMETERS tcMsg + LOCAL lcL + SET SAFETY OFF + lcL = IIF(FILE(gcUILog), FILETOSTR(gcUILog), '') + STRTOFILE(lcL + TTOC(DATETIME()) + ' ' + TRANSFORM(tcMsg) + CHR(13) + CHR(10), gcUILog) +ENDPROC + +********************************************************** +PROCEDURE PrErrLocal + LPARAMETERS tnError, tcMessage, tcProgram, tnLineNo + DO PrLogLocal WITH 'EROARE ' + TRANSFORM(tnError) + ' ' + TRANSFORM(tcMessage) + ' in ' + TRANSFORM(tcProgram) + ' linia ' + TRANSFORM(tnLineNo) +ENDPROC diff --git a/utile/Teste/storno/test6_raspunsuri_1zi.prg b/utile/Teste/storno/test6_raspunsuri_1zi.prg new file mode 100644 index 0000000..aa3331c --- /dev/null +++ b/utile/Teste/storno/test6_raspunsuri_1zi.prg @@ -0,0 +1,29 @@ +* test6_raspunsuri_1zi.prg - DOAR CITIRE: listaMesajePaginatieFactura pe ANAF TEST, ultima zi (ca "Raspunsuri > Ultima zi"). +* Scop: textul exact din "eroare" cand nu sunt mesaje (Marius vede "Nimic"). Fara upload, fara procesare in baza. +SET SAFETY OFF +SET TALK OFF +CLOSE DATABASES +PUBLIC gcUILog +gcUILog = "D:\ROA\ROACONT\COMUN\utile\Teste\storno\test6_raspunsuri_1zi_log.txt" +STRTOFILE("START " + TTOC(DATETIME()) + CHR(13) + CHR(10), gcUILog) +ON ERROR STRTOFILE('EROARE ' + TRANSFORM(ERROR()) + ' ' + MESSAGE() + ' ' + PROGRAM() + ' ' + TRANSFORM(LINENO()) + CHR(13) + CHR(10), gcUILog, 1) +ON SHUTDOWN QUIT +TRY + DO "D:\ROA\ROACONT\COMUN\utile\Teste\test_init_env_auto.prg" WITH 'CENTRAL', 'MARIUSM_AUTO', 'ROMFASTSOFT' + LOCAL loAnaf, loHTTP, ltEnd, ltStart, lcUrl, lnZile + loAnaf = CREATEOBJECT('AnafeFacturaServer', .F., '', gcS, '') + loAnaf.lTest = .T. + loAnaf.RefreshTokenAuto() + ltEnd = GetUtcTime(DATETIME()-60) + ltStart = ltEnd - 1*24*60*60 + lcUrl = 'https://api.anaf.ro/test/FCTEL/rest/listaMesajePaginatieFactura?startTime=' + ALLTRIM(STR(Datetime2UnixTime(ltStart))) + '000&endTime=' + ALLTRIM(STR(Datetime2UnixTime(ltEnd))) + '000&cif=' + ALLTRIM(loAnaf.cCodFiscal) + '&pagina=1' + STRTOFILE('cUser=[' + TRANSFORM(loAnaf.cUser) + '] url=' + lcUrl + CHR(13) + CHR(10), gcUILog, 1) + loHTTP = CREATEOBJECT('winHTTP.winHTTPrequest.5.1') + loHTTP.Open('GET', lcUrl, .F.) + loHTTP.setRequestHeader('Authorization', 'Bearer ' + loAnaf.cToken) + loHTTP.Send() + STRTOFILE('status=' + TRANSFORM(loHTTP.Status) + CHR(13) + CHR(10) + loHTTP.ResponseText + CHR(13) + CHR(10), gcUILog, 1) +CATCH TO loEx + STRTOFILE('EXCEPTIE ' + loEx.Message + CHR(13) + CHR(10), gcUILog, 1) +ENDTRY +QUIT diff --git a/utile/Teste/storno/test7_raspunsuri_dupa_upload.prg b/utile/Teste/storno/test7_raspunsuri_dupa_upload.prg new file mode 100644 index 0000000..8390ecf --- /dev/null +++ b/utile/Teste/storno/test7_raspunsuri_dupa_upload.prg @@ -0,0 +1,63 @@ +* test7_raspunsuri_dupa_upload.prg - ANAF TEST (acord Marius 19.09): upload storno SSS 1156-S4, apoi imediat +* Raspunsuri "Ultima zi" (efactura_client -> Run(1, .F.)), ca sa prindem mesajul "(nimic)". +* AMESSAGEBOX mock: textul exact ajunge in log. goLog redirectat in test7_..._golog.txt. +SET SAFETY OFF +SET TALK OFF +SET DELETED ON +SET CENTURY ON +SET DATE DMY +CLOSE DATABASES +PUBLIC gcUILog, gcDir, gnAmsgCalls, gaAmsgCalls[1,2] +gnAmsgCalls = 0 +gcDir = "D:\ROA\ROACONT\COMUN\utile\Teste\storno\" +gcUILog = gcDir + "test7_raspunsuri_dupa_upload_log.txt" +STRTOFILE("START " + TTOC(DATETIME()) + CHR(13) + CHR(10), gcUILog) +ON ERROR DO PrErrLocal WITH ERROR(), MESSAGE(), PROGRAM(), LINENO() +ON SHUTDOWN QUIT +SET PROCEDURE TO (gcDir + 'mock_amessagebox_storno.prg') ADDITIVE +TRY + DO "D:\ROA\ROACONT\COMUN\utile\Teste\test_init_env_auto.prg" WITH 'CENTRAL', 'MARIUSM_AUTO', 'ROMFASTSOFT' + IF gnHandle <= 0 + DO PrLogLocal WITH 'FAIL: conectare Oracle' + QUIT + ENDIF + goLog.cLogFile = gcDir + "test7_raspunsuri_dupa_upload_golog.txt" + STRTOFILE('', goLog.cLogFile) + + LOCAL lcFile, loAnaf, loRet, loAnaf2, llSucces + lcFile = gcDir + "out\storno_SSS 1156-S4_1879855.xml" + loAnaf = CREATEOBJECT('AnafeFacturaServer', .F., '', gcS, '') + loAnaf.lTest = .T. + loAnaf.RefreshTokenAuto() + IF !loAnaf.lTest OR EMPTY(loAnaf.cToken) OR !(ALLTRIM(loAnaf.cCodFiscal) == '1879855') OR !FILE(lcFile) + DO PrLogLocal WITH 'BLOCAT: garzi (lTest/token/CIF/fisier)' + QUIT + ENDIF + DO PrLogLocal WITH '=== UPLOAD 1/1 pe TEST: SSS 1156-S4 ===' + loRet = loAnaf.TrimiteFacturaXML(lcFile, .F., .F., .F., .F., .F.) + DO PrLogLocal WITH 'upload: status=' + TRANSFORM(loRet.nStatus) + ' idIncarcare=' + ALLTRIM(NVL(loRet.cIdIncarcare,'')) + ' mesaj=[' + ALLTRIM(NVL(loRet.cMesaj,'')) + ']' + + DO PrLogLocal WITH '=== RASPUNSURI ultima zi (efactura_client 1, .F., .T.) ===' + loAnaf2 = CREATEOBJECT('AnafeFacturaServer', .F., '', gcS, '') + loAnaf2.lTest = .T. + llSucces = loAnaf2.Run(1, .F.) + DO PrLogLocal WITH 'Run: llSucces=' + TRANSFORM(llSucces) + ' lError=' + TRANSFORM(loAnaf2.lError) + ' cErrorMessage=[' + TRANSFORM(loAnaf2.cErrorMessage) + '] cSaveLogsPath=[' + TRANSFORM(loAnaf2.cSaveLogsPath) + '] dirExista=' + TRANSFORM(DIRECTORY(loAnaf2.cSaveLogsPath)) + DO PrLogLocal WITH 'AMESSAGEBOX apeluri: ' + TRANSFORM(gnAmsgCalls) + DO PrLogLocal WITH 'TOTAL: terminat' +CATCH TO loEx + DO PrLogLocal WITH 'EXCEPTIE: ' + loEx.Message + ' (' + TRANSFORM(loEx.LineNo) + ') ' + loEx.Procedure +ENDTRY +QUIT + +PROCEDURE PrLogLocal + LPARAMETERS tcMsg + LOCAL lcL + SET SAFETY OFF + lcL = IIF(FILE(gcUILog), FILETOSTR(gcUILog), '') + STRTOFILE(lcL + TTOC(DATETIME()) + ' ' + TRANSFORM(tcMsg) + CHR(13) + CHR(10), gcUILog) +ENDPROC + +PROCEDURE PrErrLocal + LPARAMETERS tnError, tcMessage, tcProgram, tnLineNo + DO PrLogLocal WITH 'EROARE ' + TRANSFORM(tnError) + ' ' + TRANSFORM(tcMessage) + ' in ' + TRANSFORM(tcProgram) + ' linia ' + TRANSFORM(tnLineNo) +ENDPROC diff --git a/utile/Teste/storno/test8_raspunsuri_fara_nimic.prg b/utile/Teste/storno/test8_raspunsuri_fara_nimic.prg new file mode 100644 index 0000000..5297728 --- /dev/null +++ b/utile/Teste/storno/test8_raspunsuri_fara_nimic.prg @@ -0,0 +1,50 @@ +* test8_raspunsuri_fara_nimic.prg - verificare fix SaveFile log json: doar Raspunsuri "Ultima zi" pe TEST (fara upload). +* Asteptat: niciun AMESSAGEBOX, Run llSucces=.T. +SET SAFETY OFF +SET TALK OFF +SET DELETED ON +SET CENTURY ON +SET DATE DMY +CLOSE DATABASES +PUBLIC gcUILog, gcDir, gnAmsgCalls, gaAmsgCalls[1,2] +gnAmsgCalls = 0 +gcDir = "D:\ROA\ROACONT\COMUN\utile\Teste\storno\" +gcUILog = gcDir + "test8_raspunsuri_fara_nimic_log.txt" +STRTOFILE("START " + TTOC(DATETIME()) + CHR(13) + CHR(10), gcUILog) +ON ERROR DO PrErrLocal WITH ERROR(), MESSAGE(), PROGRAM(), LINENO() +ON SHUTDOWN QUIT +SET PROCEDURE TO (gcDir + 'mock_amessagebox_storno.prg') ADDITIVE +TRY + DO "D:\ROA\ROACONT\COMUN\utile\Teste\test_init_env_auto.prg" WITH 'CENTRAL', 'MARIUSM_AUTO', 'ROMFASTSOFT' + IF gnHandle <= 0 + DO PrLogLocal WITH 'FAIL: conectare Oracle' + QUIT + ENDIF + goLog.cLogFile = gcDir + "test8_raspunsuri_fara_nimic_golog.txt" + STRTOFILE('', goLog.cLogFile) + + LOCAL loAnaf2, llSucces + DO PrLogLocal WITH '=== RASPUNSURI ultima zi (efactura_client 1, .F., .T.) ===' + loAnaf2 = CREATEOBJECT('AnafeFacturaServer', .F., '', gcS, '') + loAnaf2.lTest = .T. + llSucces = loAnaf2.Run(1, .F.) + DO PrLogLocal WITH 'Run: llSucces=' + TRANSFORM(llSucces) + ' lError=' + TRANSFORM(loAnaf2.lError) + ' cErrorMessage=[' + TRANSFORM(loAnaf2.cErrorMessage) + '] cSaveLogsPath=[' + TRANSFORM(loAnaf2.cSaveLogsPath) + '] dirExista=' + TRANSFORM(DIRECTORY(loAnaf2.cSaveLogsPath)) + DO PrLogLocal WITH 'AMESSAGEBOX apeluri: ' + TRANSFORM(gnAmsgCalls) + DO PrLogLocal WITH 'TOTAL: terminat' +CATCH TO loEx + DO PrLogLocal WITH 'EXCEPTIE: ' + loEx.Message + ' (' + TRANSFORM(loEx.LineNo) + ') ' + loEx.Procedure +ENDTRY +QUIT + +PROCEDURE PrLogLocal + LPARAMETERS tcMsg + LOCAL lcL + SET SAFETY OFF + lcL = IIF(FILE(gcUILog), FILETOSTR(gcUILog), '') + STRTOFILE(lcL + TTOC(DATETIME()) + ' ' + TRANSFORM(tcMsg) + CHR(13) + CHR(10), gcUILog) +ENDPROC + +PROCEDURE PrErrLocal + LPARAMETERS tnError, tcMessage, tcProgram, tnLineNo + DO PrLogLocal WITH 'EROARE ' + TRANSFORM(tnError) + ' ' + TRANSFORM(tcMessage) + ' in ' + TRANSFORM(tcProgram) + ' linia ' + TRANSFORM(tnLineNo) +ENDPROC diff --git a/utile/Teste/storno/test_storno_e2e.prg b/utile/Teste/storno/test_storno_e2e.prg index 717af45..b096358 100644 --- a/utile/Teste/storno/test_storno_e2e.prg +++ b/utile/Teste/storno/test_storno_e2e.prg @@ -22,7 +22,7 @@ SET NULLDISPLAY TO '' CLOSE DATABASES PUBLIC gcUILog, gcTestDir, gcTesteDir -PUBLIC gnPass, gnFail, gnMockRaspuns, gnAmsgCalls, gnMockApeluri, gnXmenuCalls, gnXmenuQueuePos +PUBLIC gnPass, gnFail, gnMockRaspuns, gnAmsgCalls, gnMockApeluri, gnXmenuCalls, gnXmenuQueuePos, gnMockTrimiteMod PUBLIC loAnaf, loForm, loMockSrv, loStornoForm, lnLastErrorNo, lcLastErrorMsg DECLARE gaAmsgCalls[1,2] DECLARE gaMockApeluri[1,3] @@ -36,6 +36,7 @@ gnMockRaspuns = 6 gnXmenuCalls = 0 gnXmenuQueuePos = 1 gaXmenuQueue[1] = 0 +gnMockTrimiteMod = 0 lnLastErrorNo = 0 lcLastErrorMsg = '' @@ -394,6 +395,9 @@ DEFINE CLASS DriverStorno AS Custom DO TVerdict WITH lnPadFail = 0, 'fara padding pe original/nou (V(250), sumele nu mai ies din coloana)', 'randuri cu padding=' + TRANSFORM(lnPadFail) + ' ' + lcPadDetail DO TVerdict WITH EMPTY(loStorno.txtMotiv.Value), 'txtMotiv fara apostrofuri la init', 'value=[' + TRANSFORM(loStorno.txtMotiv.Value) + ']' + * lblAvertisment gol -> ascuns si gridul muta in sus; nu gol -> vizibil pe pozitia initiala (invariant, indiferent de fixtura) + DO TVerdict WITH (EMPTY(loStorno.lblAvertisment.Caption) AND !loStorno.lblAvertisment.Visible AND loStorno.grdModificari.Top < 134) OR (!EMPTY(loStorno.lblAvertisment.Caption) AND loStorno.lblAvertisment.Visible AND loStorno.grdModificari.Top = 134), ; + 'lblAvertisment gol -> ascuns si gridul mutat in sus', 'avertisment=[' + loStorno.lblAvertisment.Caption + '] vizibil=' + TRANSFORM(loStorno.lblAvertisment.Visible) + ' grid_top=' + TRANSFORM(loStorno.grdModificari.Top) This.nState = 1 CASE This.nState = 1 @@ -417,7 +421,24 @@ DEFINE CLASS DriverStorno AS Custom loStorno.cmdTrimite.Click() DO TVerdict WITH UPPER(ALLTRIM(loStorno.lblStare.Caption)) == 'VALID', 'renuntare xmenu -> starea nu se schimba', 'stare=[' + loStorno.lblStare.Caption + ']' + * eroare ANAF clara (HTTP 200, Cod 1814) - fara "TEST TEST" dublat, fara "Verificati in Trimise" (raspuns primit) + gnMockTrimiteMod = 1 + gaXmenuQueue[1] = 2 + gnXmenuQueuePos = 1 + loStorno.cmdTrimite.Click() + DO TVerdict WITH loStorno.pnStare = 0, 'eroare ANAF clara -> starea ramane Nevalidat/eroare, nu Trimis', 'pnStare=' + TRANSFORM(loStorno.pnStare) + DO TVerdict WITH !('TEST TEST' $ loStorno.lblStare.Caption), 'fara TEST TEST dublat in mesaj', 'caption=[' + loStorno.lblStare.Caption + ']' + DO TVerdict WITH 'Cod: 1814' $ loStorno.lblStare.Caption AND 'TEST ANAF a respins incarcarea' $ loStorno.lblStare.Caption AND !('in Trimise' $ loStorno.lblStare.Caption), 'eroare ANAF clara (200) -> fara indemn Verificati in Trimise', 'caption=[' + loStorno.lblStare.Caption + ']' + + * eroare de retea (HTTP 0, raspuns neclar) - Verificati in Trimise ramane + gnMockTrimiteMod = 2 + gaXmenuQueue[1] = 2 + gnXmenuQueuePos = 1 + loStorno.cmdTrimite.Click() + DO TVerdict WITH 'in Trimise' $ loStorno.lblStare.Caption, 'eroare de retea (status<>200) -> pastreaza indemnul Verificati in Trimise', 'caption=[' + loStorno.lblStare.Caption + ']' + * optiunea 2 (trimite fara validare, cf. instructiuni: fara Valideaza/retea reala) + gnMockTrimiteMod = 0 gaXmenuQueue[1] = 2 gnXmenuQueuePos = 1 loStorno.cmdTrimite.Click()