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
70 lines
3.2 KiB
Plaintext
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
|