#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
This commit is contained in:
124
utile/Teste/editare_factura/test_s8_unicitate_cursuri2.prg
Normal file
124
utile/Teste/editare_factura/test_s8_unicitate_cursuri2.prg
Normal file
@@ -0,0 +1,124 @@
|
||||
* 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
|
||||
Reference in New Issue
Block a user