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
136 lines
5.5 KiB
Plaintext
136 lines
5.5 KiB
Plaintext
* test_s8_pas1_cursuri.prg
|
|
* S8 pas 1 - continuare investigare read-only: CURS/MULTIPLICATOR nu exista direct pe
|
|
* VANZARI_DETALII (confirmat de test_s8_pas1_ddl_view.prg). Aici se verifica VANZARI_CURSURI:
|
|
* structura, cheia de join catre o linie de vanzare, si daca join-ul ar multiplica randurile
|
|
* view-ului (risc de cardinalitate). Nu scrie nimic in Oracle. QUIT la final.
|
|
|
|
SET SAFETY OFF
|
|
SET TALK OFF
|
|
|
|
PUBLIC gcErrLog
|
|
gcErrLog = 'D:\ROA\ROAFACTURARE\COMUN\utile\Teste\editare_factura\test_s8_pas1_cursuri_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
|
|
lcOut = ''
|
|
|
|
*!* --- 1. exista tabela VANZARI_CURSURI? coloanele ei ---
|
|
lcSql = [select column_id, column_name, data_type from all_tab_columns where owner = 'MARIUSM_AUTO' and table_name = 'VANZARI_CURSURI' order by column_id]
|
|
IF Used('crscur')
|
|
Use In crscur
|
|
ENDIF
|
|
IF goExecutor.oExecute(m.lcSql, [crscur]) < 0
|
|
lcOut = lcOut + 'EROARE VANZARI_CURSURI: ' + goExecutor.cEroare + CHR(13) + CHR(10)
|
|
ELSE
|
|
lcOut = lcOut + '--- VANZARI_CURSURI, coloane (' + TRANSFORM(RECCOUNT('crscur')) + ') ---' + CHR(13) + CHR(10)
|
|
IF RECCOUNT('crscur') = 0
|
|
lcOut = lcOut + '(tabela nu exista sau owner gresit)' + CHR(13) + CHR(10)
|
|
ELSE
|
|
SELECT crscur
|
|
SCAN
|
|
lcOut = lcOut + TRANSFORM(column_id) + '. ' + ALLTRIM(column_name) + ' ' + ALLTRIM(data_type) + CHR(13) + CHR(10)
|
|
ENDSCAN
|
|
ENDIF
|
|
USE IN crscur
|
|
ENDIF
|
|
goExecutor.oReset()
|
|
STRTOFILE(m.lcOut, gcErrLog, 1)
|
|
lcOut = ''
|
|
|
|
*!* --- 2. VANZARI, coloane CURS/MULTIPLICATOR pe antet (ca sa comparam cu ce s-ar citi pe linie) ---
|
|
lcSql = [select column_id, column_name, data_type from all_tab_columns where owner = 'MARIUSM_AUTO' and table_name = 'VANZARI' ] + ;
|
|
[and (column_name like '%CURS%' or column_name like '%MULTIPLIC%') order by column_id]
|
|
IF Used('crsvcurs')
|
|
Use In crsvcurs
|
|
ENDIF
|
|
IF goExecutor.oExecute(m.lcSql, [crsvcurs]) < 0
|
|
lcOut = lcOut + 'EROARE VANZARI curs: ' + goExecutor.cEroare + CHR(13) + CHR(10)
|
|
ELSE
|
|
lcOut = lcOut + CHR(13) + CHR(10) + '--- VANZARI (antet), coloane CURS/MULTIPLICATOR (' + TRANSFORM(RECCOUNT('crsvcurs')) + ') ---' + CHR(13) + CHR(10)
|
|
SELECT crsvcurs
|
|
SCAN
|
|
lcOut = lcOut + TRANSFORM(column_id) + '. ' + ALLTRIM(column_name) + ' ' + ALLTRIM(data_type) + CHR(13) + CHR(10)
|
|
ENDSCAN
|
|
USE IN crsvcurs
|
|
ENDIF
|
|
goExecutor.oReset()
|
|
STRTOFILE(m.lcOut, gcErrLog, 1)
|
|
lcOut = ''
|
|
|
|
*!* --- 3. mostre de valori din VANZARI_DETALII pentru documentele 1050/1047 - PRETD, ID_VALUTAD, ID_CTR, ID_POL, DIFERENTA ---
|
|
lcSql = [select id_vanzare, id_vanzare_det, id_pol, id_ctr, diferenta, pretd, id_valutad from vanzari_detalii where id_vanzare in (1050,1047) order by id_vanzare, id_vanzare_det]
|
|
IF Used('crsval')
|
|
Use In crsval
|
|
ENDIF
|
|
IF goExecutor.oExecute(m.lcSql, [crsval]) < 0
|
|
lcOut = lcOut + 'EROARE mostre 1050/1047: ' + goExecutor.cEroare + CHR(13) + CHR(10)
|
|
ELSE
|
|
lcOut = lcOut + CHR(13) + CHR(10) + '--- VANZARI_DETALII, mostre 1050/1047 ---' + CHR(13) + CHR(10)
|
|
SELECT crsval
|
|
SCAN
|
|
lcOut = lcOut + 'id_vanzare=' + TRANSFORM(id_vanzare) + ' det=' + TRANSFORM(id_vanzare_det) + ;
|
|
' id_pol=' + TRANSFORM(NVL(id_pol,-1)) + ' id_ctr=' + TRANSFORM(NVL(id_ctr,-1)) + ;
|
|
' diferenta=' + TRANSFORM(NVL(diferenta,-1)) + ' pretd=' + TRANSFORM(NVL(pretd,-1)) + ;
|
|
' id_valutad=' + TRANSFORM(NVL(id_valutad,-1)) + CHR(13) + CHR(10)
|
|
ENDSCAN
|
|
USE IN crsval
|
|
ENDIF
|
|
goExecutor.oReset()
|
|
STRTOFILE(m.lcOut, gcErrLog, 1)
|
|
lcOut = ''
|
|
|
|
*!* --- 4. cauta un document cu id_ctr populat si unul cu id_valutad populat (in afara de 1050/1047), ca proba de continut real ---
|
|
lcSql = [select * from (select id_vanzare, id_vanzare_det, id_ctr, id_pol from vanzari_detalii where id_ctr is not null and sters = 0 order by id_vanzare_det desc) where rownum <= 3]
|
|
IF Used('crsctr')
|
|
Use In crsctr
|
|
ENDIF
|
|
IF goExecutor.oExecute(m.lcSql, [crsctr]) < 0
|
|
lcOut = lcOut + 'EROARE cautare id_ctr: ' + goExecutor.cEroare + CHR(13) + CHR(10)
|
|
ELSE
|
|
lcOut = lcOut + CHR(13) + CHR(10) + '--- exemple cu id_ctr populat (max 3) ---' + CHR(13) + CHR(10)
|
|
SELECT crsctr
|
|
SCAN
|
|
lcOut = lcOut + 'id_vanzare=' + TRANSFORM(id_vanzare) + ' det=' + TRANSFORM(id_vanzare_det) + ' id_ctr=' + TRANSFORM(id_ctr) + ' id_pol=' + TRANSFORM(NVL(id_pol,-1)) + CHR(13) + CHR(10)
|
|
ENDSCAN
|
|
USE IN crsctr
|
|
ENDIF
|
|
goExecutor.oReset()
|
|
STRTOFILE(m.lcOut, gcErrLog, 1)
|
|
lcOut = ''
|
|
|
|
lcSql = [select * from (select id_vanzare, id_vanzare_det, id_valutad, pretd from vanzari_detalii where id_valutad is not null and sters = 0 order by id_vanzare_det desc) where rownum <= 3]
|
|
IF Used('crsval2')
|
|
Use In crsval2
|
|
ENDIF
|
|
IF goExecutor.oExecute(m.lcSql, [crsval2]) < 0
|
|
lcOut = lcOut + 'EROARE cautare id_valutad: ' + goExecutor.cEroare + CHR(13) + CHR(10)
|
|
ELSE
|
|
lcOut = lcOut + CHR(13) + CHR(10) + '--- exemple cu id_valutad populat (max 3) ---' + CHR(13) + CHR(10)
|
|
SELECT crsval2
|
|
SCAN
|
|
lcOut = lcOut + 'id_vanzare=' + TRANSFORM(id_vanzare) + ' det=' + TRANSFORM(id_vanzare_det) + ' id_valutad=' + TRANSFORM(id_valutad) + ' pretd=' + TRANSFORM(NVL(pretd,-1)) + CHR(13) + CHR(10)
|
|
ENDSCAN
|
|
USE IN crsval2
|
|
ENDIF
|
|
goExecutor.oReset()
|
|
STRTOFILE(m.lcOut, gcErrLog, 1)
|
|
lcOut = ''
|
|
|
|
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
|