* test_garanti_depozite.prg * Headless (CENTRAL/MARIUSM_AUTO): importul CSV Garanti (istoric tranzactii) cu CONSTITUIRE/LICHIDARE * DEPOZIT LA TERMEN trebuie sa genereze perechea 5081=581 / 581=5081 (581 = 5121 / 5121 = 581), * iar cu lDepozit=.F. PRINCIPAL sa ramana pe 581 simplu (581=5121 / 5121=581) fara linie 5081. * Dobanda ramane 5121=766. * Rulare: vfp9.exe -A -T "COMUN\utile\Teste\test_garanti_depozite.prg" LPARAMETERS tcCsv SET SAFETY OFF SET TALK OFF SET DELETED ON SET EXACT ON SET CENTURY ON SET DATE DMY SET NULLDISPLAY TO '' SET CONFIRM OFF PUBLIC gcLogGar, gnPass, gnFail, gcCsv gcLogGar = "D:\ROA\ROACONT\docs\test_garanti_depozite.log" IF !EMPTY(m.tcCsv) gcCsv = ALLTRIM(m.tcCsv) ELSE gcCsv = "D:\ROA\ROACONT\COMUN\utile\Teste\garanti_depozite.csv" ENDIF gnPass = 0 gnFail = 0 STRTOFILE("RUN " + TTOC(DATETIME()) + " csv=" + gcCsv + CHR(13)+CHR(10), gcLogGar) DO log_txt WITH "SAFETY=" + TRANSFORM(SET("SAFETY")) + " RESOURCE=" + TRANSFORM(SET("RESOURCE")) ON ERROR DO log_eroare_gar WITH ERROR(), MESSAGE(), PROGRAM(), LINENO() DO "D:\ROA\ROACONT\COMUN\utile\Teste\test_init_env_auto.prg" WITH 'CENTRAL', 'MARIUSM_AUTO' IF m.gnHandle <= 0 DO log_txt WITH "FAIL conectare Oracle (gnHandle<=0)" DO log_txt WITH "=== SUMAR: PASS=" + TRANSFORM(m.gnPass) + " FAIL=" + TRANSFORM(m.gnFail) + " ===" QUIT ENDIF DO log_txt WITH "Oracle OK schema=" + TRANSFORM(m.gcS) * amessagebox/aInputBox in fata listei de proceduri (rezolutie de nume: castiga primul fisier) LOCAL lcProcExist lcProcExist = SET("PROCEDURE") SET PROCEDURE TO "D:\ROA\ROACONT\COMUN\utile\Teste\mock_amessagebox.prg", &lcProcExist SET PROCEDURE TO "D:\ROA\ROACONT\COMUN\utile\Teste\mock_ainputbox.prg" ADDITIVE DO caz_gar_depozit_on DO caz_gar_depozit_off DO log_txt WITH "=== SUMAR: PASS=" + TRANSFORM(m.gnPass) + " FAIL=" + TRANSFORM(m.gnFail) + " ===" QUIT * ImportNote ca in frm_import_extrase_banca.sc2 (tipclasa GENERAL => ExtrasBanca_General.csvGaranti); * tcExtra adauga chei in hash (ex. ??lDepozit=>.F.) FUNCTION creeaza_import LPARAMETERS tcExtra LOCAL lcParam lcParam = "cContBanca=>5121??lCreeazaParteneri=>.F.??lFactura=>.F.??lComanda=>.F.??nIdPartenerBanca=>1??cBanca=>GARANTI" + IIF(EMPTY(m.tcExtra), "", m.tcExtra) RETURN CREATEOBJECT("ImportNote", gcCsv, DATE(2026,8,1), DATE(2026,8,31), "ExtrasBanca", "GENERAL", "", "CSV", m.lcParam, {}) ENDFUNC FUNCTION numara LPARAMETERS tcCond LOCAL lnN, lcSel lcSel = SELECT() SELECT cActTemp COUNT FOR &tcCond TO m.lnN SELECT (m.lcSel) RETURN m.lnN ENDFUNC FUNCTION suma_act LPARAMETERS tcCond LOCAL lnS, lcSel lcSel = SELECT() SELECT cActTemp SUM suma TO m.lnS FOR &tcCond SELECT (m.lcSel) RETURN m.lnS ENDFUNC PROCEDURE inchide_imp LPARAMETERS toImp IF USED('cActTemp') USE IN (SELECT('cActTemp')) ENDIF IF USED('C_IMPORT_TEMP') USE IN (SELECT('C_IMPORT_TEMP')) ENDIF IF VARTYPE(m.toImp) = 'O' m.toImp = .NULL. ENDIF ENDPROC PROCEDURE caz_gar_depozit_on LOCAL loImp, llOk, lnA, lnB DO log_txt WITH "-- CAZ 1: lDepozit omis (implicit activ)" loImp = creeaza_import("") llOk = loImp.Import(.T.) DO verifica WITH "1_import_ok", m.llOk, "Import(.T.)=" + TRANSFORM(m.llOk) DO verifica WITH "1_constituire_581_5121", (numara("ALLTRIM(scd)='581' AND ALLTRIM(scc)='5121'") = 1), "n=" + TRANSFORM(numara("ALLTRIM(scd)='581' AND ALLTRIM(scc)='5121'")) DO verifica WITH "1_pereche_5081_581", (numara("ALLTRIM(scd)='5081' AND ALLTRIM(scc)='581'") = 1), "n=" + TRANSFORM(numara("ALLTRIM(scd)='5081' AND ALLTRIM(scc)='581'")) DO verifica WITH "1_lichidare_5121_581", (numara("ALLTRIM(scd)='5121' AND ALLTRIM(scc)='581'") = 1), "n=" + TRANSFORM(numara("ALLTRIM(scd)='5121' AND ALLTRIM(scc)='581'")) DO verifica WITH "1_pereche_581_5081", (numara("ALLTRIM(scd)='581' AND ALLTRIM(scc)='5081'") = 1), "n=" + TRANSFORM(numara("ALLTRIM(scd)='581' AND ALLTRIM(scc)='5081'")) DO verifica WITH "1_dobanda_5121_766", (numara("ALLTRIM(scd)='5121' AND ALLTRIM(scc)='766'") = 1), "n=" + TRANSFORM(numara("ALLTRIM(scd)='5121' AND ALLTRIM(scc)='766'")) DO verifica WITH "1_fara_401_4111", (numara("INLIST(ALLTRIM(scd),'401','4111') OR INLIST(ALLTRIM(scc),'401','4111')") = 0), "n=" + TRANSFORM(numara("INLIST(ALLTRIM(scd),'401','4111') OR INLIST(ALLTRIM(scc),'401','4111')")) lnA = suma_act("ALLTRIM(scd)='581' AND ALLTRIM(scc)='5121'") lnB = suma_act("ALLTRIM(scd)='5081' AND ALLTRIM(scc)='581'") DO verifica WITH "1_suma_pereche_constituire", (ABS(m.lnA - m.lnB) < 0.005 AND ABS(m.lnA - 1000000) < 0.005), "A=" + TRANSFORM(m.lnA) + " B=" + TRANSFORM(m.lnB) lnA = suma_act("ALLTRIM(scd)='5121' AND ALLTRIM(scc)='581'") lnB = suma_act("ALLTRIM(scd)='581' AND ALLTRIM(scc)='5081'") DO verifica WITH "1_suma_pereche_lichidare", (ABS(m.lnA - m.lnB) < 0.005 AND ABS(m.lnA - 2068347.63) < 0.005), "A=" + TRANSFORM(m.lnA) + " B=" + TRANSFORM(m.lnB) DO inchide_imp WITH m.loImp ENDPROC PROCEDURE caz_gar_depozit_off LOCAL loImp, llOk DO log_txt WITH "-- CAZ 2: lDepozit=.F. (optiune dezactivata)" loImp = creeaza_import("??lDepozit=>.F.") llOk = loImp.Import(.T.) DO verifica WITH "2_import_ok", m.llOk, "Import(.T.)=" + TRANSFORM(m.llOk) DO verifica WITH "2_fara_5081", (numara("ALLTRIM(scd)='5081' OR ALLTRIM(scc)='5081'") = 0), "n=" + TRANSFORM(numara("ALLTRIM(scd)='5081' OR ALLTRIM(scc)='5081'")) DO verifica WITH "2_principal_581", (numara("ALLTRIM(scd)='581' OR ALLTRIM(scc)='581'") = 2), "n=" + TRANSFORM(numara("ALLTRIM(scd)='581' OR ALLTRIM(scc)='581'")) DO verifica WITH "2_fara_401_4111", (numara("INLIST(ALLTRIM(scd),'401','4111') OR INLIST(ALLTRIM(scc),'401','4111')") = 0), "n=" + TRANSFORM(numara("INLIST(ALLTRIM(scd),'401','4111') OR INLIST(ALLTRIM(scc),'401','4111')")) DO verifica WITH "2_dobanda_5121_766", (numara("ALLTRIM(scd)='5121' AND ALLTRIM(scc)='766'") = 1), "n=" + TRANSFORM(numara("ALLTRIM(scd)='5121' AND ALLTRIM(scc)='766'")) DO inchide_imp WITH m.loImp ENDPROC PROCEDURE verifica LPARAMETERS tcLabel, tlOk, tcDetaliu IF m.tlOk gnPass = m.gnPass + 1 DO log_txt WITH "PASS " + m.tcLabel + " :: " + m.tcDetaliu ELSE gnFail = m.gnFail + 1 DO log_txt WITH "FAIL " + m.tcLabel + " :: " + m.tcDetaliu ENDIF ENDPROC PROCEDURE log_txt LPARAMETERS tcTxt STRTOFILE(TRANSFORM(m.tcTxt) + CHR(13) + CHR(10), gcLogGar, 1) ENDPROC PROCEDURE log_eroare_gar LPARAMETERS tnErr, tcMsg, tcProg, tnLine DO log_txt WITH " [ON ERROR] " + TRANSFORM(m.tnErr) + " " + TRANSFORM(m.tcMsg) + " in " + TRANSFORM(m.tcProg) + " linia " + TRANSFORM(m.tnLine) ENDPROC