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

70 lines
3.2 KiB
Plaintext

* mock_cursor_articole.prg - suportul headless al lui test_s3_4_cursor_articole.prg.
* oExecutorMock (subclasa de test a lui oexecutor) intercepteaza DOAR apelul pe cursorul crsarticole:
* jurnalizeaza SQL-ul in gcMockSql, construieste un cursor sintetic dupa gcMockMod (PLIN / PLIN2 = si
* crsarticole1 pentru contracte / GOL / FARA = niciun cursor) si intoarce gnMockSucces cu nEroare =
* gnMockEroare. Orice alt apel (citeste_cursuri_zi) merge la executorul real, prin This.oReal.
* vizualizeaza_curs e inlocuita ca sa nu deschida formularul de cursuri la esecul Oracle -20005; se
* incarca ULTIMA cu SET PROCEDURE ... ADDITIVE, ca sa castige la rezolutia de nume.
* Publicele asteptate de la test: gcMockSql, gcMockMod, gnMockSucces, gnMockEroare, gcMockCurs.
DEFINE CLASS oExecutorMock AS oexecutor
oReal = NULL
PROCEDURE oExecute
LPARAMETERS tcSql, tcCursor, tlProgress, tcTitluProgress, tnHandle, tlShowError, tlQuitOnError, tlReconnect
IF !(UPPER(ALLTRIM(TRANSFORM(tcCursor))) == 'CRSARTICOLE')
RETURN This.oReal.oExecute(tcSql, tcCursor)
ENDIF
gcMockSql = gcMockSql + TRANSFORM(tcSql) + CHR(13) + CHR(10)
This.nEroare = gnMockEroare
This.nSucces = gnMockSucces
DO CreeazaArticole WITH gcMockMod
RETURN gnMockSucces
ENDPROC
FUNCTION oPrelucrareEroare
RETURN "MOCK eroare Oracle " + TRANSFORM(This.nEroare)
ENDFUNC
ENDDEFINE
* cursorul sintetic de articole: campurile citite de blocul testat (gestionabil, curs/nume_val/id_valuta/
* multiplicator/tip_valuta pentru crscursuri, nume_lista_preturi/id_pol pentru crspolitici, id_gestiune/
* nume_gestiune pentru crsgestiunidest) plus campurile luate cu Scatter pe ramura tnTip = 30
PROCEDURE CreeazaArticole
LPARAMETERS tcMod
IF USED('crsarticole')
USE IN crsarticole
ENDIF
IF USED('crsarticole1')
USE IN crsarticole1
ENDIF
IF tcMod == "FARA"
RETURN
ENDIF
CREATE CURSOR crsarticole (id_c N(20), id_articol N(20), id_gestiune N(20), nume_gestiune C(100), ;
cont C(4), um C(10), id_valuta N(10), gestionabil N(1), tip_valuta N(1), curs N(20,4), ;
multiplicator N(10), codmat C(100), preta N(20,4), pretd N(20,4), id_valuta_d N(15), ;
denumire C(100), pretftva N(20,4), pretctva N(20,4), cantitate N(20,4), tvav N(20,4), ;
proc_tvav N(20,4), preturi_cu_tva N(1), nume_val C(20), nume_lista_preturi C(100), id_pol N(20))
IF tcMod == "GOL"
RETURN
ENDIF
INSERT INTO crsarticole VALUES (1, 11, 21, "GEST A", "371", "BUC", 1, 1, 1, 4.9, 1, "CM1", ;
10, 11, 1, "Articol A", 100, 119, 2, 19, 1.19, 0, "EUR", "LISTA A", 31)
INSERT INTO crsarticole VALUES (2, 12, 22, "GEST B", "371", "BUC", 2, 0, 1, 5.1, 1, "CM2", ;
20, 21, 2, "Articol B", 200, 238, 3, 38, 1.19, 0, "USD", "LISTA B", 32)
GO TOP IN crsarticole
IF tcMod == "PLIN2"
CREATE CURSOR crsarticole1 (id_ctr N(20), numar_contract C(100), data D NULL, numar C(50) NULL)
INSERT INTO crsarticole1 VALUES (41, "CTR A", DATE(2026, 1, 1), "A1")
INSERT INTO crsarticole1 VALUES (42, "CTR B", DATE(2026, 2, 1), "B1")
GO TOP IN crsarticole1
ENDIF
ENDPROC
* fara formularul de cursuri in headless - jurnalizeaza doar ca a fost chemata
PROCEDURE vizualizeaza_curs
LPARAMETERS tdDataCurs
gcMockCurs = gcMockCurs + "vizualizeaza_curs(" + TRANSFORM(tdDataCurs) + ")" + CHR(13) + CHR(10)
ENDPROC