#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
This commit is contained in:
72
utile/Teste/facturare_unificat/mock_generator_numere.prg
Normal file
72
utile/Teste/facturare_unificat/mock_generator_numere.prg
Normal file
@@ -0,0 +1,72 @@
|
||||
* mock_generator_numere.prg - oGeneratorMock, subclasa de test a lui oGeneratorNumere (oserii_numere.prg) care NU
|
||||
* atinge Oracle: creeaza_cursor_serii construieste un cursor local de serii (FACTURA 5 / PROFORMA 23 -> 3 = cu serie si
|
||||
* plaje, serii diferite; BON FISCAL 3 -> 2 = fara serie, cu plaje), aloca_numar intoarce un contor local (PUBLIC
|
||||
* gnMockNumar), dezaloca_numar pune numarul pe 0; toate jurnalizeaza in gcMockApeluri (PUBLIC, declarat de test).
|
||||
* Se incarca cu SET PROCEDURE ... ADDITIVE dupa harness (are nevoie de oserii_numere.prg pentru clasa parinte).
|
||||
|
||||
*----------------------------------------------------------------------------------------
|
||||
* generator de numere fara Oracle (serii locale, alocare/dezalocare jurnalizate)
|
||||
DEFINE CLASS oGeneratorMock AS oGeneratorNumere
|
||||
* seriile: FACTURA (5) si PROFORMA (23) -> 3 (cu serie si plaje, serii diferite), BON FISCAL (3) -> 2 (fara
|
||||
* serie, cu plaje); cursorul are aceleasi campuri citite de getSerieCursor/getLungimeSerie/aloca_numar
|
||||
FUNCTION creeaza_cursor_serii
|
||||
LPARAMETERS tnIdTipDoc
|
||||
LOCAL lcCursor, lnRezultat, lcAlias
|
||||
lcAlias = ALIAS()
|
||||
lcCursor = [crsseriitemp] + ALLTRIM(STR(tnIdTipDoc))
|
||||
IF USED(lcCursor)
|
||||
USE IN (lcCursor)
|
||||
ENDIF
|
||||
CREATE CURSOR (lcCursor) (id_serie N(10), serie C(10), lungime N(3))
|
||||
DO CASE
|
||||
CASE tnIdTipDoc = 23
|
||||
INSERT INTO (lcCursor) VALUES (9023, "PRO", 5)
|
||||
lnRezultat = 3
|
||||
CASE tnIdTipDoc = 3
|
||||
INSERT INTO (lcCursor) VALUES (9003, "", 5)
|
||||
lnRezultat = 2
|
||||
OTHERWISE
|
||||
INSERT INTO (lcCursor) VALUES (9005, "FAC", 5)
|
||||
lnRezultat = 3
|
||||
ENDCASE
|
||||
GO TOP IN (lcCursor)
|
||||
This.paPlaje(tnIdTipDoc, 2) = lcCursor
|
||||
This.paPlaje(tnIdTipDoc, 3) = (MOD(lnRezultat, 2) = 1)
|
||||
This.paPlaje(tnIdTipDoc, 4) = (lnRezultat >= 2)
|
||||
gcMockApeluri = gcMockApeluri + "creeaza_cursor_serii(" + TRANSFORM(tnIdTipDoc) + ") -> " + TRANSFORM(lnRezultat) + CHR(13) + CHR(10)
|
||||
IF !EMPTY(lcAlias)
|
||||
SELECT (lcAlias)
|
||||
ENDIF
|
||||
RETURN lnRezultat
|
||||
ENDFUNC
|
||||
|
||||
FUNCTION aloca_numar
|
||||
LPARAMETERS tnIdTipDoc, tnIdGestiune
|
||||
LOCAL lcCursor, lnIdSerie, lcAlias
|
||||
gnMockNumar = gnMockNumar + 1
|
||||
lnIdSerie = NULL
|
||||
IF !ISNULL(This.paPlaje(tnIdTipDoc, 2))
|
||||
lcCursor = This.paPlaje(tnIdTipDoc, 2)
|
||||
IF USED(lcCursor)
|
||||
lcAlias = ALIAS()
|
||||
SELECT (lcCursor)
|
||||
lnIdSerie = id_serie
|
||||
IF !EMPTY(lcAlias)
|
||||
SELECT (lcAlias)
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
This.paPlaje(tnIdTipDoc, 1) = gnMockNumar
|
||||
This.paPlaje(tnIdTipDoc, 5) = lnIdSerie
|
||||
gcMockApeluri = gcMockApeluri + "aloca_numar(" + TRANSFORM(tnIdTipDoc) + ") -> " + TRANSFORM(gnMockNumar) + CHR(13) + CHR(10)
|
||||
RETURN gnMockNumar
|
||||
ENDFUNC
|
||||
|
||||
PROCEDURE dezaloca_numar
|
||||
LPARAMETERS tnIdTipDoc
|
||||
gcMockApeluri = gcMockApeluri + "dezaloca_numar(" + TRANSFORM(tnIdTipDoc) + ") numar=" + TRANSFORM(This.paPlaje(tnIdTipDoc, 1)) + CHR(13) + CHR(10)
|
||||
IF !ISNULL(This.paPlaje(tnIdTipDoc, 2))
|
||||
This.paPlaje(tnIdTipDoc, 1) = 0
|
||||
ENDIF
|
||||
ENDPROC
|
||||
ENDDEFINE
|
||||
Reference in New Issue
Block a user