Files
comun/utile/Teste/test_ramburs_grup_nume_sql.prg
2026-09-28 16:01:35 +03:00

70 lines
2.6 KiB
Plaintext

* test_ramburs_grup_nume_sql.prg
* Proba read-only pe MARIUSM_AUTO pentru interogarea grupului de nume (punctul 1 din brief):
* parteneri activi (sters=0, inactiv=0) cu denumirea exacta in orice permutare, pentru o denumire reala.
* Ruleaza prin watchdog (fara parametri). Nu scrie nimic in Oracle.
SET SAFETY OFF
SET TALK OFF
SET DELETED ON
LOCAL lcLog
lcLog = "D:\ROA\ROACONT\COMUN\utile\Teste\_test_ramburs_sql_out.txt"
STRTOFILE("RUN " + TTOC(DATETIME()) + CHR(13)+CHR(10), lcLog)
ON ERROR DO log_eroare_sql WITH ERROR(), MESSAGE(), PROGRAM(), LINENO()
DO (ADDBS("D:\ROA\ROACONT\COMUN\utile\Teste") + "test_init_env_auto.prg") WITH 'CENTRAL', 'MARIUSM_AUTO', 'ROMFASTSOFT'
IF gnHandle <= 0
DO log_sql WITH "FAIL: nu m-am conectat la MARIUSM_AUTO"
QUIT
ENDIF
DO log_sql WITH "env init OK (schema " + gcS + ")"
* aceeasi constructie ca in CreeanaNote: ListaSql(GetNamePermutations(...)) pentru o denumire cu 2 cuvinte
PRIVATE pcDenGrup, pcDenGrupPerm
pcDenGrup = "TOMESCU GEORGE"
pcDenGrupPerm = GetNamePermutations(m.pcDenGrup, .F.)
DO log_sql WITH "permutari: [" + m.pcDenGrupPerm + "]"
LOCAL lcSql, llOk
lcSql = [select id_part, denumire from nom_parteneri where sters = 0 and inactiv = 0 and ] + ;
[(trim(upper(denumire)) = ?pcDenGrup or trim(upper(denumire)) in (] + ListaSql_if(m.pcDenGrupPerm) + [))]
llOk = goExecutor.oExecuta(m.lcSql, 'cGrupNumeTest')
IF m.llOk
SELECT cGrupNumeTest
DO log_sql WITH "PASS: interogare grup nume OK, randuri=" + TRANSFORM(RECCOUNT('cGrupNumeTest'))
SCAN
DO log_sql WITH " id_part=" + TRANSFORM(id_part) + " denumire=" + ALLTRIM(NVL(denumire, ''))
ENDSCAN
USE IN cGrupNumeTest
ELSE
DO log_sql WITH "FAIL: " + goExecutor.cEroare
ENDIF
DO log_sql WITH "=== GATA ==="
QUIT
* ListaSql e in oproceduri_import.prg, dar testul de SQL nu-l incarca; o replic aici identic
FUNCTION ListaSql_if
LPARAMETERS tcLista
LOCAL lnI, lcRezultat, lcItem
lcRezultat = ''
FOR lnI = 1 TO GETWORDCOUNT(m.tcLista, ';')
lcItem = ALLTRIM(GETWORDNUM(m.tcLista, m.lnI, ';'))
IF !EMPTY(m.lcItem)
lcRezultat = m.lcRezultat + IIF(EMPTY(m.lcRezultat), '', ',') + "'" + STRTRAN(m.lcItem, "'", "''") + "'"
ENDIF
ENDFOR
RETURN m.lcRezultat
ENDFUNC
PROCEDURE log_sql
LPARAMETERS tcTxt
STRTOFILE(TRANSFORM(m.tcTxt) + CHR(13) + CHR(10), "D:\ROA\ROACONT\COMUN\utile\Teste\_test_ramburs_sql_out.txt", 1)
ENDPROC
PROCEDURE log_eroare_sql
LPARAMETERS tnErr, tcMsg, tcProg, tnLine
DO log_sql WITH " [ON ERROR] " + TRANSFORM(m.tnErr) + " " + TRANSFORM(m.tcMsg) + " in " + TRANSFORM(m.tcProg) + " linia " + TRANSFORM(m.tnLine)
ENDPROC