From c121a9242b92e7cc20f075f4022523b76f3696d0 Mon Sep 17 00:00:00 2001 From: Marius Mutu Date: Wed, 30 Sep 2026 23:40:22 +0300 Subject: [PATCH] sync SVN r18241 --- utile/Teste/garanti_depozite.csv | 4 + utile/Teste/test_garanti_depozite.prg | 147 ++++++++++++++++++++++++ utile/Teste/test_unicredit_depozite.prg | 145 +++++++++++++++++++++++ utile/Teste/unicredit_depozite.csv | 6 + 4 files changed, 302 insertions(+) create mode 100644 utile/Teste/garanti_depozite.csv create mode 100644 utile/Teste/test_garanti_depozite.prg create mode 100644 utile/Teste/test_unicredit_depozite.prg create mode 100644 utile/Teste/unicredit_depozite.csv diff --git a/utile/Teste/garanti_depozite.csv b/utile/Teste/garanti_depozite.csv new file mode 100644 index 0000000..2eea275 --- /dev/null +++ b/utile/Teste/garanti_depozite.csv @@ -0,0 +1,4 @@ +Tranzactiile Contului:; | 081 - 2000522 RON + 03.08.2026; Detalii: DOBANDA DEPOZIT LA TERMEN 2001861;807,51;807,51 + 03.08.2026; Detalii: LICHIDARE DEPOZIT LA TERMEN 2001861;2068347,63;2074037,33 + 03.08.2026; CONSTITUIRE DEPOZIT LA TERMEN In contul: RO41UGBI0000812003596RON Referinta: 2026-08-03-14.01.26.140726;-1000000,00;1974037,33 diff --git a/utile/Teste/test_garanti_depozite.prg b/utile/Teste/test_garanti_depozite.prg new file mode 100644 index 0000000..7fb4cf9 --- /dev/null +++ b/utile/Teste/test_garanti_depozite.prg @@ -0,0 +1,147 @@ +* 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 diff --git a/utile/Teste/test_unicredit_depozite.prg b/utile/Teste/test_unicredit_depozite.prg new file mode 100644 index 0000000..c5abae5 --- /dev/null +++ b/utile/Teste/test_unicredit_depozite.prg @@ -0,0 +1,145 @@ +* test_unicredit_depozite.prg +* Headless (CENTRAL/MARIUSM_AUTO): importul CSV UniCredit cu TERM DEPOSIT/TERM DEPOSIT INTEREST +* 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_unicredit_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 gcLogUni, gnPass, gnFail, gcCsv +gcLogUni = "D:\ROA\ROACONT\docs\test_unicredit_depozite.log" +IF !EMPTY(m.tcCsv) + gcCsv = ALLTRIM(m.tcCsv) +ELSE + gcCsv = "D:\ROA\ROACONT\COMUN\utile\Teste\unicredit_depozite.csv" +ENDIF +gnPass = 0 +gnFail = 0 +STRTOFILE("RUN " + TTOC(DATETIME()) + " csv=" + gcCsv + CHR(13)+CHR(10), gcLogUni) +DO log_txt WITH "SAFETY=" + TRANSFORM(SET("SAFETY")) + " RESOURCE=" + TRANSFORM(SET("RESOURCE")) +ON ERROR DO log_eroare_uni 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_depozit_on +DO caz_depozit_off + +DO log_txt WITH "=== SUMAR: PASS=" + TRANSFORM(m.gnPass) + " FAIL=" + TRANSFORM(m.gnFail) + " ===" +QUIT + +* ImportNote ca in frm_import_extrase_banca.sc2; 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=>BANCA UCT" + IIF(EMPTY(m.tcExtra), "", m.tcExtra) + RETURN CREATEOBJECT("ImportNote", gcCsv, DATE(2026,5,1), DATE(2026,6,30), "ExtrasBanca", "UNICREDIT", "", "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_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 - 50035.68) < 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 - 50000) < 0.005), "A=" + TRANSFORM(m.lnA) + " B=" + TRANSFORM(m.lnB) + DO inchide_imp WITH m.loImp +ENDPROC + +PROCEDURE caz_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), gcLogUni, 1) +ENDPROC + +PROCEDURE log_eroare_uni + 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 diff --git a/utile/Teste/unicredit_depozite.csv b/utile/Teste/unicredit_depozite.csv new file mode 100644 index 0000000..aaaeac6 --- /dev/null +++ b/utile/Teste/unicredit_depozite.csv @@ -0,0 +1,6 @@ +Titlu cont;Cont;Valuta;Sold deschidere;Sold inchidere +GENIUS IMM MOD OP;2111008001;RON;-197.087,29;80.162,47 +Cont;Suma;Valuta;Data tranzactiei;Data valutei;Banca;Numele bancii;Adresa bancii;Cont;IBAN;Nume;Adresa 1;Adresa 2;Adresa 3;Detalii tranzactie 1;Detalii tranzactie 2;Detalii tranzactie 3;Detalii tranzactie 4;Detalii tranzactie 5;Detalii tranzactie 6;Detalii tranzactie 7;Detalii tranzactie 8;Detalii plata 1;Detalii plata 2;Detalii plata 3;Detalii plata 4;Detalii plata 5;Detalii plata 6;Cod fiscal;Numar ordin;Camp neutilizat;Camp neutilizat;Camp neutilizat;Numar de referinta;Requested Processing date;Numar inregistrare PSP;Nume PSP tert;Referinta plata PSP tert;Tara emiterii autorizatiei;Codul autoritatii nationale +2111008001;35,68;RON;27.05.2026;03.06.2026;;;;;;;;;;;TERM DEPOSIT INTEREST;20260527550499 20260527;20260603 INT RATE 03,67;ACCOUNT 2111008003;;;;;;;;;;;;;;;;;;;;; +2111008001;50.000,00;RON;27.05.2026;03.06.2026;;;;;;;;;;;TERM DEPOSIT PRINCIPAL;20260527550499 20260527;20260603 INT RATE 03,67;ACCOUNT 2111008003;;;;;;;;;;;;;;;;;;;;; +2111008001;-50.035,68;RON;03.06.2026;03.06.2026;;;;;;;;;;;TERM DEPOSIT PRINCIPAL;20260603600201 20260603;20260610 INT RATE 03,67;ACCOUNT 2111008003;;;;;;;;;;;;;;;;;;;;; \ No newline at end of file