LPARAMETERS tcHost, tcSchema, tcPassword SET SAFETY OFF SET TALK OFF LOCAL lcLog, lnPass, lnFail, lcMsg lcLog = 'D:\ROA\ROACONT\COMUN\utile\Teste\valuta581\test_valuta581_log.txt' STRTOFILE('start ' + TTOC(DATETIME()) + CHR(13)+CHR(10), lcLog) lnPass = 0 lnFail = 0 ON ERROR STRTOFILE('ERROR: ' + MESSAGE() + ' | ' + PROGRAM() + ' | line ' + TRANSFORM(LINENO()) + CHR(13)+CHR(10), lcLog, 1) DO D:\ROA\ROACONT\COMUN\utile\Teste\test_init_env_auto.prg WITH (tcHost), (tcSchema), (tcPassword) IF gnHandle <= 0 STRTOFILE('FAIL init_env: conectare esuata' + CHR(13)+CHR(10), lcLog, 1) QUIT ENDIF STRTOFILE('SAFETY=' + SET('SAFETY') + ' RESOURCE=' + SET('RESOURCE') + CHR(13)+CHR(10), lcLog, 1) LOCAL lcCampLista, lcFisLista, lcIdFisier lcCampLista = '' lcFisLista = '' lcIdFisier = '' IF goExecutor.oExecuta("select camp_lista, fis_lista, id_fisier from xitems where id_item = 81", "cXItem81") SELECT cXItem81 IF RECCOUNT() = 1 lcCampLista = ALLTRIM(camp_lista) lcFisLista = LOWER(ALLTRIM(fis_lista)) lcIdFisier = ALLTRIM(id_fisier) lnPass = lnPass + 1 STRTOFILE('PASS xitems81 lookup: camp_lista=' + lcCampLista + ' fis_lista=' + lcFisLista + ' id_fisier=' + lcIdFisier + CHR(13)+CHR(10), lcLog, 1) ELSE lnFail = lnFail + 1 STRTOFILE('FAIL xitems81 lookup: ' + TRANSFORM(RECCOUNT()) + ' randuri' + CHR(13)+CHR(10), lcLog, 1) ENDIF USE IN (SELECT('cXItem81')) ELSE lnFail = lnFail + 1 STRTOFILE('FAIL xitems81 query esuata' + CHR(13)+CHR(10), lcLog, 1) ENDIF * reproduce exact codul corectat din baza.vc2:10159 (item.Text_item1.GotFocus), cu valorile reale din xitems 81 LOCAL F, C, lcIdFis, pcselect F = lcFisLista C = lcCampLista lcIdFis = lcIdFisier pcselect = ['select ] + C + [,] + Iif(F == 'vnom_valute' And Lower(lcIdFis) == 'id_valuta2', [id_valuta3 as id_valuta2], lcIdFis) + [ from ] + F + [ where 2=2'] STRTOFILE('pcselect=' + pcselect + CHR(13)+CHR(10), lcLog, 1) * pcselect pastreaza apostroful santinela de la inceput/sfarsit (contract cauta_alfa.prg:87-93, * Left(lcSelect,1) in ['],["],"["), neatins de aceasta corectie - nu se modifica IF pcselect == ['select nume_val2,id_valuta3 as id_valuta2 from vnom_valute where 2=2'] lnPass = lnPass + 1 STRTOFILE('PASS pcselect text corect (id_valuta3 as id_valuta2)' + CHR(13)+CHR(10), lcLog, 1) ELSE lnFail = lnFail + 1 STRTOFILE('FAIL pcselect text neasteptat' + CHR(13)+CHR(10), lcLog, 1) ENDIF * executa efectiv select-ul corectat (fara apostroful santinela, cum il consuma downstream cauta_alfa) si verifica EUR/USD dau id intern (2/1), nu ISO (44/142) LOCAL lcSqlClean lcSqlClean = SUBSTR(pcselect, 2, LEN(pcselect) - 2) IF goExecutor.oExecuta(lcSqlClean + [ and nume_val2 in ('EUR','USD')], "cVal") SELECT cVal LOCATE FOR ALLTRIM(nume_val2) = 'EUR' IF FOUND() AND id_valuta2 = 2 lnPass = lnPass + 1 STRTOFILE('PASS EUR -> id_valuta2=' + TRANSFORM(id_valuta2) + ' (asteptat 2, intern EURO)' + CHR(13)+CHR(10), lcLog, 1) ELSE lnFail = lnFail + 1 STRTOFILE('FAIL EUR -> id_valuta2=' + TRANSFORM(IIF(FOUND(),id_valuta2,-999)) + CHR(13)+CHR(10), lcLog, 1) ENDIF LOCATE FOR ALLTRIM(nume_val2) = 'USD' IF FOUND() AND id_valuta2 = 1 lnPass = lnPass + 1 STRTOFILE('PASS USD -> id_valuta2=' + TRANSFORM(id_valuta2) + ' (asteptat 1, intern USD)' + CHR(13)+CHR(10), lcLog, 1) ELSE lnFail = lnFail + 1 STRTOFILE('FAIL USD -> id_valuta2=' + TRANSFORM(IIF(FOUND(),id_valuta2,-999)) + CHR(13)+CHR(10), lcLog, 1) ENDIF USE IN (SELECT('cVal')) ELSE lnFail = lnFail + 1 STRTOFILE('FAIL query corectata esuata' + CHR(13)+CHR(10), lcLog, 1) ENDIF * regresie: acelasi cod, dar item 11 (valuta facturii) - lcIdFis = id_valuta, nu trebuie atins de conditie LOCAL F2, C2, lcIdFis2, pcselect2 F2 = 'vnom_valute' C2 = 'nume_val' lcIdFis2 = 'id_valuta' pcselect2 = ['select ] + C2 + [,] + Iif(F2 == 'vnom_valute' And Lower(lcIdFis2) == 'id_valuta2', [id_valuta3 as id_valuta2], lcIdFis2) + [ from ] + F2 + [ where 2=2'] IF pcselect2 == ['select nume_val,id_valuta from vnom_valute where 2=2'] lnPass = lnPass + 1 STRTOFILE('PASS regresie item 11 (id_valuta) neatins' + CHR(13)+CHR(10), lcLog, 1) ELSE lnFail = lnFail + 1 STRTOFILE('FAIL regresie item 11: ' + pcselect2 + CHR(13)+CHR(10), lcLog, 1) ENDIF * regresie: schimb valutar 10633, items 88/89 - lcIdFis = id_valuta3, nu trebuie atins de conditie LOCAL F3, C3, lcIdFis3, pcselect3 F3 = 'vnom_valute' C3 = 'nume_val3' lcIdFis3 = 'id_valuta3' pcselect3 = ['select ] + C3 + [,] + Iif(F3 == 'vnom_valute' And Lower(lcIdFis3) == 'id_valuta2', [id_valuta3 as id_valuta2], lcIdFis3) + [ from ] + F3 + [ where 2=2'] IF pcselect3 == ['select nume_val3,id_valuta3 from vnom_valute where 2=2'] lnPass = lnPass + 1 STRTOFILE('PASS regresie 10633 item 88/89 (id_valuta3) neatins' + CHR(13)+CHR(10), lcLog, 1) ELSE lnFail = lnFail + 1 STRTOFILE('FAIL regresie 10633: ' + pcselect3 + CHR(13)+CHR(10), lcLog, 1) ENDIF STRTOFILE('TOTAL PASS=' + TRANSFORM(lnPass) + ' FAIL=' + TRANSFORM(lnFail) + CHR(13)+CHR(10), lcLog, 1) STRTOFILE('end ' + TTOC(DATETIME()) + CHR(13)+CHR(10), lcLog, 1) QUIT