Files
comun/utile/Teste/editare_factura/probe_s8p8_garzi.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

83 lines
4.3 KiB
Plaintext

* probe_s8p8_garzi.prg
* READ-ONLY. Verifica, pentru candidatii gasiti de probe_s8p8_candidati.prg, garzile REALE ale
* do_editare_unificata (ofacturare_comun.vc2:3890+), enumerate in docs\raport_s8_driver_determinist.md
* X3: nesters, ne-eproforma, tip valid (not in 44,45,46,51), luna documentului = luna curenta
* (gnAn/gnLuna), ReferinteDocumenteNota, EsteInEFactura, DocumentAreUrmasi, IncarcaAntetFacturaEditare.
* Nu scrie in Oracle - doar SELECT + apeluri read-only la functiile de garda.
* Candidati verificati: 1047 (fara delegat, tip=-12), 953 (aviz tip=23, mai 2022 - istoric).
SET SAFETY OFF
SET TALK OFF
PUBLIC gcErrLog
gcErrLog = 'D:\ROA\ROAFACTURARE\COMUN\utile\Teste\editare_factura\probe_s8p8_garzi_log.txt'
STRTOFILE('start' + CHR(13) + CHR(10), gcErrLog)
ON ERROR DO ErrH WITH ERROR(), MESSAGE(), PROGRAM(), LINENO()
DO ('D:\ROA\ROAFACTURARE\COMUN\utile\Teste\test_init_env_auto_roafacturare.prg') WITH 'CENTRAL', 'MARIUSM_AUTO', 'ROMFASTSOFT'
IF gnHandle <= 0
STRTOFILE('EROARE: conectare esuata' + CHR(13) + CHR(10), gcErrLog, 1)
QUIT
ENDIF
SET PROCEDURE TO D:\ROA\ROAFACTURARE\COMUN\programe\ofacturare_editare.prg ADDITIVE
STRTOFILE('gnAn/gnLuna=' + TRANSFORM(gnAn) + '/' + TRANSFORM(gnLuna) + CHR(13) + CHR(10), gcErrLog, 1)
DO VerificaGarzi WITH 1047, 'fara delegat, tip=-12 DEVIZE AUTO'
DO VerificaGarzi WITH 953, 'aviz tip=23, istoric mai 2022'
DO VerificaGarzi WITH 1110, 'aviz tip=22, august 2026 (Ct_clb_politici_preturi scos oricum)'
STRTOFILE('done' + CHR(13) + CHR(10), gcErrLog, 1)
QUIT
PROCEDURE VerificaGarzi
LPARAMETERS tnIdVanzare, tcEticheta
LOCAL lnSucces, lnSters, llEProforma, lnTipDoc, pnAn, pnLuna, lnCod, lnIdFact
STRTOFILE(CHR(13)+CHR(10) + '=== ' + TRANSFORM(tnIdVanzare) + ' [' + tcEticheta + '] ===' + CHR(13)+CHR(10), gcErrLog, 1)
IF USED('crsGarzi')
USE IN crsGarzi
ENDIF
lnSucces = goExecutor.oExecute('select id_vanzare,cod,data_act,sters,id_fact,eproforma,tip from fact_vfacturi where id_vanzare=' + TRANSFORM(m.tnIdVanzare), 'crsGarzi')
goExecutor.oReset()
IF lnSucces < 0 OR !USED('crsGarzi') OR RECCOUNT('crsGarzi') <> 1
STRTOFILE(' NU S-A GASIT documentul (lnSucces=' + TRANSFORM(lnSucces) + ')' + CHR(13)+CHR(10), gcErrLog, 1)
RETURN
ENDIF
SELECT crsGarzi
lnCod = cod
pnAn = YEAR(data_act)
pnLuna = MONTH(data_act)
lnSters = sters
lnIdFact = id_fact
llEProforma = (eproforma = 1)
lnTipDoc = tip
USE IN crsGarzi
STRTOFILE(' sters=' + TRANSFORM(lnSters) + ' eproforma=' + TRANSFORM(llEProforma) + ' tip=' + TRANSFORM(lnTipDoc) + ' an/luna=' + TRANSFORM(pnAn) + '/' + TRANSFORM(pnLuna) + CHR(13)+CHR(10), gcErrLog, 1)
STRTOFILE(' gate2 nesters: ' + TRANSFORM(lnSters = 0) + CHR(13)+CHR(10), gcErrLog, 1)
STRTOFILE(' gate5 ne-eproforma: ' + TRANSFORM(!llEProforma) + CHR(13)+CHR(10), gcErrLog, 1)
STRTOFILE(' gate6 tip valid (not in 44,45,46,51): ' + TRANSFORM(!INLIST(lnTipDoc,44,45,46,51)) + CHR(13)+CHR(10), gcErrLog, 1)
STRTOFILE(' gate7 luna curenta (' + TRANSFORM(pnAn*12+pnLuna) + '=' + TRANSFORM(gnAn*12+gnLuna) + '): ' + TRANSFORM((pnAn*12+pnLuna) == (gnAn*12+gnLuna)) + CHR(13)+CHR(10), gcErrLog, 1)
LOCAL llRef, llEFact, llUrm
llRef = ReferinteDocumenteNota(pnAn, pnLuna, lnCod)
STRTOFILE(' gate8 fara referinte (!ReferinteDocumenteNota): ' + TRANSFORM(!llRef) + CHR(13)+CHR(10), gcErrLog, 1)
llEFact = EsteInEFactura(lnIdFact)
STRTOFILE(' gate9 nu e in eFactura: ' + TRANSFORM(!llEFact) + CHR(13)+CHR(10), gcErrLog, 1)
llUrm = DocumentAreUrmasi(m.tnIdVanzare)
STRTOFILE(' gate10 fara urmasi: ' + TRANSFORM(!llUrm) + CHR(13)+CHR(10), gcErrLog, 1)
LOCAL poDateT, lnDiscR, lnDiscV
poDateT = IncarcaAntetFacturaEditare(m.tnIdVanzare, @lnDiscR, @lnDiscV)
STRTOFILE(' gate11 IncarcaAntetFacturaEditare reuseste: ' + TRANSFORM(VARTYPE(poDateT) == 'O') + CHR(13)+CHR(10), gcErrLog, 1)
LOCAL llToateTrec
llToateTrec = (lnSters=0) AND !llEProforma AND !INLIST(lnTipDoc,44,45,46,51) AND ((pnAn*12+pnLuna)==(gnAn*12+gnLuna)) ;
AND !llRef AND !llEFact AND !llUrm AND (VARTYPE(poDateT) == 'O')
STRTOFILE(' ==> TOATE GARZILE TREC (ar trebui sa se deschida): ' + TRANSFORM(llToateTrec) + CHR(13)+CHR(10), gcErrLog, 1)
ENDPROC
PROCEDURE ErrH
LPARAMETERS tnError, tcMessage, tcProgram, tnLineNo
STRTOFILE('EROARE ' + TRANSFORM(tnError) + ' [' + tcProgram + ':' + TRANSFORM(tnLineNo) + '] ' + tcMessage + CHR(13) + CHR(10), gcErrLog, 1)
ENDPROC