* 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