Files
comun/utile/Teste/editare_factura/test_s8_unicitate_cursuri2.prg
Marius Mutu 8e022d332e #13: formular de facturare unificat - etapa curenta
Squash al branch-ului de lucru plan13-s2.

Clase: ofacturare (nucleul formularului unificat), ofacturare_comun,
ferestre_cere_date, ocomenzi, caut_ora (lista de preturi in combo-urile de
cautare), omodificari.

Programe: ofacturare impartit - ofacturare_antet, ofacturare_rutare_scriere si
ogrid_latimi sunt fisiere noi; oproceduri_facturare primeste discountul pe linie
si cota standard de TVA cand articolul nu are cota pe politica.

Documentatie: capcana SQLExec no_data_found, conventia de encoding, depanarea
testelor VFP si regulile de lucru - conflictele cu modificarile venite din alte
proiecte sunt rezolvate pastrand ambele parti.

Loguri de rulare a testelor scoase din versionare; testele raman.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PkyjGyrV2S7932om4kfSiK
2026-09-09 21:38:25 +03:00

125 lines
3.9 KiB
Plaintext

* test_s8_unicitate_cursuri2.prg
* Diagnostic: izoleaza cauza erorii ODBC 1526 (Invalid string or buffer length) din
* test_s8_unicitate_cursuri.prg, testand query-uri mai simple pe rand.
SET SAFETY OFF
SET TALK OFF
PUBLIC gcErrLog
gcErrLog = 'D:\ROA\ROAFACTURARE\COMUN\utile\Teste\editare_factura\test_s8_unicitate_cursuri2_log.txt'
STRTOFILE('start' + CHR(13) + CHR(10), gcErrLog)
ON ERROR DO test_error_handler WITH ERROR(), MESSAGE(), PROGRAM(), LINENO()
DO ('D:\ROA\ROAFACTURARE\COMUN\utile\Teste\test_init_env_auto.prg') WITH 'CENTRAL', 'MARIUSM_AUTO', 'ROMFASTSOFT', 2026, 8
IF gnHandle <= 0
STRTOFILE('EROARE: conectare esuata' + CHR(13) + CHR(10), gcErrLog, 1)
QUIT
ENDIF
LOCAL lcOut, lcSql
*!* A. tabela exista?
lcSql = [select count(*) as nr from vanzari_cursuri]
IF Used('crsA')
Use In crsA
ENDIF
IF goExecutor.oExecute(m.lcSql, [crsA]) < 0
lcOut = 'A EROARE: ' + goExecutor.cEroare + CHR(13) + CHR(10)
ELSE
lcOut = 'A OK, nr=' + TRANSFORM(crsA.nr) + CHR(13) + CHR(10)
USE IN crsA
ENDIF
goExecutor.oReset()
STRTOFILE(m.lcOut, gcErrLog, 1)
*!* B. all_constraints simplu, fara join
lcSql = [select constraint_name, constraint_type from all_constraints where owner = 'MARIUSM_AUTO' and table_name = 'VANZARI_CURSURI']
IF Used('crsB')
Use In crsB
ENDIF
IF goExecutor.oExecute(m.lcSql, [crsB]) < 0
lcOut = 'B EROARE: ' + goExecutor.cEroare + CHR(13) + CHR(10)
ELSE
lcOut = 'B OK, reccount=' + TRANSFORM(RECCOUNT('crsB')) + CHR(13) + CHR(10)
IF RECCOUNT('crsB') > 0
SELECT crsB
SCAN
lcOut = lcOut + TRANSFORM(constraint_name) + ' | ' + TRANSFORM(constraint_type) + CHR(13) + CHR(10)
ENDSCAN
ENDIF
USE IN crsB
ENDIF
goExecutor.oReset()
STRTOFILE(m.lcOut, gcErrLog, 1)
*!* C. all_cons_columns simplu, fara join, filtrat pe tabela
lcSql = [select constraint_name, column_name, position from all_cons_columns where owner = 'MARIUSM_AUTO' and table_name = 'VANZARI_CURSURI']
IF Used('crsC')
Use In crsC
ENDIF
IF goExecutor.oExecute(m.lcSql, [crsC]) < 0
lcOut = 'C EROARE: ' + goExecutor.cEroare + CHR(13) + CHR(10)
ELSE
lcOut = 'C OK, reccount=' + TRANSFORM(RECCOUNT('crsC')) + CHR(13) + CHR(10)
IF RECCOUNT('crsC') > 0
SELECT crsC
SCAN
lcOut = lcOut + TRANSFORM(constraint_name) + ' | ' + TRANSFORM(column_name) + ' | pos=' + TRANSFORM(position) + CHR(13) + CHR(10)
ENDSCAN
ENDIF
USE IN crsC
ENDIF
goExecutor.oReset()
STRTOFILE(m.lcOut, gcErrLog, 1)
*!* D. all_indexes simplu, fara join
lcSql = [select index_name, uniqueness from all_indexes where owner = 'MARIUSM_AUTO' and table_name = 'VANZARI_CURSURI']
IF Used('crsD')
Use In crsD
ENDIF
IF goExecutor.oExecute(m.lcSql, [crsD]) < 0
lcOut = 'D EROARE: ' + goExecutor.cEroare + CHR(13) + CHR(10)
ELSE
lcOut = 'D OK, reccount=' + TRANSFORM(RECCOUNT('crsD')) + CHR(13) + CHR(10)
IF RECCOUNT('crsD') > 0
SELECT crsD
SCAN
lcOut = lcOut + TRANSFORM(index_name) + ' | ' + TRANSFORM(uniqueness) + CHR(13) + CHR(10)
ENDSCAN
ENDIF
USE IN crsD
ENDIF
goExecutor.oReset()
STRTOFILE(m.lcOut, gcErrLog, 1)
*!* E. all_ind_columns simplu, fara join
lcSql = [select index_name, column_name, column_position from all_ind_columns where index_owner = 'MARIUSM_AUTO' and table_name = 'VANZARI_CURSURI']
IF Used('crsE')
Use In crsE
ENDIF
IF goExecutor.oExecute(m.lcSql, [crsE]) < 0
lcOut = 'E EROARE: ' + goExecutor.cEroare + CHR(13) + CHR(10)
ELSE
lcOut = 'E OK, reccount=' + TRANSFORM(RECCOUNT('crsE')) + CHR(13) + CHR(10)
IF RECCOUNT('crsE') > 0
SELECT crsE
SCAN
lcOut = lcOut + TRANSFORM(index_name) + ' | ' + TRANSFORM(column_name) + ' | pos=' + TRANSFORM(column_position) + CHR(13) + CHR(10)
ENDSCAN
ENDIF
USE IN crsE
ENDIF
goExecutor.oReset()
STRTOFILE(m.lcOut, gcErrLog, 1)
STRTOFILE('done' + CHR(13) + CHR(10), gcErrLog, 1)
QUIT
PROCEDURE test_error_handler
LPARAMETERS tnError, tcMessage, tcProgram, tnLineNo
STRTOFILE('EROARE ' + TRANSFORM(tnError) + ' [' + tcProgram + ':' + TRANSFORM(tnLineNo) + '] ' + tcMessage + CHR(13) + CHR(10), gcErrLog, 1)
ENDPROC