Files
comun/utile/Teste/storno/test4c_descarcare_raspuns.prg

110 lines
3.8 KiB
Plaintext

* test4c_descarcare_raspuns.prg
* Continuare test4: descarca raspunsul ANAF (nok) pentru reincarcarea originalului cu acelasi
* numar (id_descarcare=3059138503), ca sa se vada mesajul exact de respingere. Doar GET/descarcare
* si dezarhivare locala - nu scrie nimic in Oracle, nu conteaza ca incarcare.
*
* Rulare: vfp9.exe -A -T "D:\ROA\ROACONT\COMUN\utile\Teste\storno\test4c_descarcare_raspuns.prg"
SET SAFETY OFF
SET TALK OFF
CLOSE DATABASES
PUBLIC gcUILog, gcOutDir
gcOutDir = "D:\ROA\ROACONT\COMUN\utile\Teste\storno\out\"
gcUILog = "D:\ROA\ROACONT\COMUN\utile\Teste\storno\test4c_descarcare_raspuns_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'
QUIT
ENDIF
LOCAL loAnaf As 'AnafeFacturaServer'
loAnaf = CREATEOBJECT('AnafeFacturaServer', .F., '', gcS, '')
loAnaf.lTest = .T.
loAnaf.RefreshTokenAuto()
IF !loAnaf.lTest OR EMPTY(loAnaf.cToken)
DO PrLogLocal WITH 'BLOCAT: garda lTest/token nu trece'
QUIT
ENDIF
DO DescarcaSiLogheaza WITH loAnaf, '3059138503', 'reincarcare-nok'
DO DescarcaSiLogheaza WITH loAnaf, '3059138527', 'storno-reincercare-ok'
DO PrLogLocal WITH 'TOTAL: test terminat fara exceptie'
CATCH TO loEx
DO PrLogLocal WITH 'EXCEPTIE: ' + loEx.Message + ' (' + TRANSFORM(loEx.LineNo) + ') ' + loEx.Procedure
ENDTRY
QUIT
**********************************************************
PROCEDURE DescarcaSiLogheaza
LPARAMETERS toAnaf, tcIdDescarcare, tcLabel
LOCAL loHTTP, lcServer, lnStatus, lcZip, lcDir, lcMesaj, llSucces
LOCAL loEx As Exception
lcServer = 'https://api.anaf.ro/test/FCTEL/rest/descarcare?id=' + tcIdDescarcare
TRY
loHTTP = CREATEOBJECT('winHTTP.winHTTPrequest.5.1')
loHTTP.Open('GET', lcServer, .F.)
loHTTP.setRequestHeader('Authorization', 'Bearer ' + toAnaf.cToken)
loHTTP.Send()
lnStatus = loHTTP.Status
CATCH TO loEx
DO PrLogLocal WITH '[' + tcLabel + '] descarcare eroare: ' + loEx.Message
RETURN
ENDTRY
DO PrLogLocal WITH '[' + tcLabel + '] descarcare id=' + tcIdDescarcare + ' status=' + TRANSFORM(lnStatus) + ' content-type=' + loHTTP.getResponseHeader('Content-Type')
IF lnStatus <> 200
DO PrLogLocal WITH '[' + tcLabel + '] raspuns brut (non-200): ' + loHTTP.ResponseText
RETURN
ENDIF
lcZip = gcOutDir + 'test4_descarcare_' + tcIdDescarcare + '.zip'
STRTOFILE(loHTTP.ResponseBody, lcZip)
lcDir = ''
lcMesaj = ''
llSucces = MyUnzip(lcZip, @lcDir, @lcMesaj, .T.)
IF !llSucces
DO PrLogLocal WITH '[' + tcLabel + '] MyUnzip esuat: ' + lcMesaj + ' (zip pastrat: ' + lcZip + ')'
RETURN
ENDIF
DO PrLogLocal WITH '[' + tcLabel + '] dezarhivat in ' + lcDir
LOCAL lcFisier, laFisiere[1], lnI, lnFisiere
lnFisiere = ADIR(laFisiere, ADDBS(lcDir) + '*.*')
FOR lnI = 1 TO lnFisiere
lcFisier = ADDBS(lcDir) + laFisiere[lnI, 1]
DO PrLogLocal WITH '[' + tcLabel + '] fisier: ' + laFisiere[lnI,1] + ' (' + TRANSFORM(laFisiere[lnI,2]) + ' octeti)'
IF LOWER(JUSTEXT(lcFisier)) = 'xml'
DO PrLogLocal WITH '[' + tcLabel + '] continut: ' + FILETOSTR(lcFisier)
ENDIF
ENDFOR
ENDPROC
**********************************************************
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