Files
comun/utile/Teste/test_unicredit_depozite.prg
2026-09-30 23:40:24 +03:00

146 lines
6.4 KiB
Plaintext

* 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