Files
comun/utile/Teste/facturare_unificat/test_s6_0_schela.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

140 lines
5.4 KiB
Plaintext

*!* 01.09.2026
*!* Headless: valideaza schela de comparatie S6-0 (lib_comparatie_documente.prg) pe perechea deja
*!* emisa de S5c - SSS 645 (id_vanzare 1111) si SSS 646 (id_vanzare 1112). NU emite nimic, doar
*!* SELECT. Verifica: jonctiunea serie_act+nract gaseste id_vanzare corect, CompDoc ruleaza toate
*!* cele patru comparatii fara eroare Oracle, iar cifrele raportate (linii VANZARI_DETALII, randuri
*!* ACT, RUL gol) corespund cu ce s-a verificat deja manual pe MARIUSM_AUTO.
*!*
*!* Cele doua documente nu sunt v1/v2 (unul copiat din proforma, unul de control, ambele pe v2) -
*!* CompDoc e asteptat sa raporteze FAIL-uri legitime; un FAIL legitim raportat corect e succes
*!* pentru aceasta proba.
*!*
*!* Rulare: vfp9.exe -A -T "D:\ROA\ROAFACTURARE\COMUN\utile\Teste\facturare_unificat\test_s6_0_schela.prg"
*!* Log: D:\ROA\ROAFACTURARE\COMUN\utile\Teste\facturare_unificat\out\test_s6_0_schela.log
*!* Mediu: ROA_CENTRAL / MARIUSM_AUTO; gnIdUtil = 8.
SET SAFETY OFF
SET TALK OFF
SET NOTIFY OFF
PUBLIC gcLog, gnFail, gnPass, gnSarit, gcCaz
gcLog = "D:\ROA\ROAFACTURARE\COMUN\utile\Teste\facturare_unificat\out\test_s6_0_schela.log"
IF !DIRECTORY("D:\ROA\ROAFACTURARE\COMUN\utile\Teste\facturare_unificat\out")
MD "D:\ROA\ROAFACTURARE\COMUN\utile\Teste\facturare_unificat\out"
ENDIF
STRTOFILE("START " + TTOC(DATETIME()) + CHR(13) + CHR(10), gcLog)
gnFail = 0
gnPass = 0
gnSarit = 0
gcCaz = ""
ON ERROR DO AfErr WITH ERROR(), MESSAGE(), PROGRAM(), LINENO()
DO "D:\ROA\ROAFACTURARE\COMUN\utile\Teste\test_init_env_auto_roafacturare.prg" WITH 'CENTRAL', 'MARIUSM_AUTO', 'ROMFASTSOFT'
IF TYPE('gnHandle') <> 'N' OR gnHandle <= 0
DO AfLog WITH "FAIL: conexiune Oracle esuata"
DO Final
ENDIF
SQLSETPROP(gnHandle, "QueryTimeOut", 45)
IF TYPE('goExecutor.nHandle') = 'N' AND goExecutor.nHandle > 0 AND goExecutor.nHandle <> gnHandle
SQLSETPROP(goExecutor.nHandle, "QueryTimeOut", 45)
ENDIF
gnIdUtil = 8
goExecutor.oExecuta([begin pack_sesiune.set_Id_Util(?gnIdUtil); end;])
DO AfLog WITH "ENV OK gnHandle=" + TRANSFORM(gnHandle)
SET PROCEDURE TO "D:\ROA\ROAFACTURARE\COMUN\utile\Teste\facturare_unificat\lib_comparatie_documente.prg" ADDITIVE
DO TestSchela
DO Final
*----------------------------------------------------------------------------------------
PROCEDURE TestSchela
LOCAL nId1, nId2, nFailCompDoc
gcCaz = "[S6-0 schela SSS 645 vs SSS 646] "
nId1 = CdocGasesteIdVanzare('SSS', 645)
nId2 = CdocGasesteIdVanzare('SSS', 646)
DO Assert WITH nId1 = 1111, "jonctiune serie_act+nract gaseste id_vanzare pt SSS 645, e=" + TRANSFORM(nId1)
DO Assert WITH nId2 = 1112, "jonctiune serie_act+nract gaseste id_vanzare pt SSS 646, e=" + TRANSFORM(nId2)
nFailCompDoc = CompDoc('SSS', 645, 'SSS', 646, ALLTRIM(gcCaz))
DO Assert WITH nFailCompDoc >= 0, "CompDoc a rulat fara eroare Oracle, esecuri raportate=" + TRANSFORM(nFailCompDoc)
DO AfLog WITH "CompDoc a intors esecuri=" + TRANSFORM(nFailCompDoc) + ;
" (documentele nu sunt v1/v2 - esecuri legitime asteptate, vezi raport)"
DO VerificaLinii
DO VerificaAct
DO VerificaRul
ENDPROC
PROCEDURE VerificaLinii
LOCAL n1, n2
n1 = ValoareScalaraLocala([select count(*) as nr from vanzari_detalii where sters = 0 and id_vanzare = 1111])
n2 = ValoareScalaraLocala([select count(*) as nr from vanzari_detalii where sters = 0 and id_vanzare = 1112])
DO Assert WITH n1 = 2, "VANZARI_DETALII are 2 linii pe SSS 645 (id_vanzare 1111), e=" + TRANSFORM(n1)
DO Assert WITH n2 = 2, "VANZARI_DETALII are 2 linii pe SSS 646 (id_vanzare 1112), e=" + TRANSFORM(n2)
ENDPROC
PROCEDURE VerificaAct
LOCAL n1, n2
n1 = ValoareScalaraLocala([select count(*) as nr from act where sters = 0 and serie_act = 'SSS' and nract = 645])
n2 = ValoareScalaraLocala([select count(*) as nr from act where sters = 0 and serie_act = 'SSS' and nract = 646])
DO Assert WITH n1 = 4, "ACT are 4 randuri pe SSS 645, e=" + TRANSFORM(n1)
DO Assert WITH n2 = 4, "ACT are 4 randuri pe SSS 646, e=" + TRANSFORM(n2)
ENDPROC
PROCEDURE VerificaRul
LOCAL n1, n2
n1 = ValoareScalaraLocala([select count(*) as nr from rul where sters = 0 and serie_act = 'SSS' and nract = 645])
n2 = ValoareScalaraLocala([select count(*) as nr from rul where sters = 0 and serie_act = 'SSS' and nract = 646])
DO Assert WITH n1 = 0, "RUL gol pe SSS 645 (gnScadereStoc = 0), e=" + TRANSFORM(n1)
DO Assert WITH n2 = 0, "RUL gol pe SSS 646 (gnScadereStoc = 0), e=" + TRANSFORM(n2)
ENDPROC
FUNCTION ValoareScalaraLocala
LPARAMETERS tcSql
LOCAL lnRez, lnSucces
lnRez = -1
lnSucces = goExecutor.oExecute(tcSql, [crsverif])
IF lnSucces >= 0 AND USED('crsverif')
IF RECCOUNT('crsverif') > 0
SELECT crsverif
GO TOP
lnRez = NVL(crsverif.nr, 0)
ELSE
lnRez = 0
ENDIF
USE IN (SELECT('crsverif'))
ELSE
DO AfLog WITH "SQL ESEC: " + TRANSFORM(goExecutor.oPrelucrareEroare()) + " | " + tcSql
ENDIF
RETURN lnRez
ENDFUNC
PROCEDURE Assert
LPARAMETERS tlCond, tcMsg
IF tlCond
gnPass = gnPass + 1
ELSE
gnFail = gnFail + 1
DO AfLog WITH "FAIL: " + gcCaz + tcMsg
ENDIF
ENDPROC
PROCEDURE AfLog
LPARAMETERS tcMsg
STRTOFILE(tcMsg + CHR(13) + CHR(10), gcLog, 1)
ENDPROC
PROCEDURE AfErr
LPARAMETERS tnErr, tcMsg, tcProg, tnLine
gnFail = gnFail + 1
DO AfLog WITH "ERROR " + gcCaz + TRANSFORM(tnErr) + " [" + tcProg + ":" + TRANSFORM(tnLine) + "] " + tcMsg
ENDPROC
PROCEDURE Final
DO AfLog WITH "TOTAL pass=" + TRANSFORM(gnPass) + " fail=" + TRANSFORM(gnFail) + " sarit=" + TRANSFORM(gnSarit)
DO AfLog WITH "END " + TTOC(DATETIME())
QUIT
ENDPROC