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
391 lines
16 KiB
Plaintext
391 lines
16 KiB
Plaintext
* test_s4f_cautare_retur.prg
|
|
* Headless: do_adauga_articol_cautat (frm_facturare_articole2, ofacturare.vc2:18929) pe un document
|
|
* de retur (poDate.tip = 8) trebuie sa delege la calea veche do_adauga_articol, care alege gestiunea
|
|
* reala - nu la Gather-ul direct din toArticol (care scria sentinela id_gestiune = -1000, S4f).
|
|
*
|
|
* crsarticole e construit direct (nu prin Oracle), cu UN singur rand deja "incarcat" pe document
|
|
* (ca dupa butonul Incarca articole / do_adauga_tot), gestionabil=0 ca sa ocoleasca do_alege_stoc
|
|
* (nu se testeaza alegerea de gestiune cu formular modal, doar rutarea - pattern validat deja de
|
|
* test_s4e_0_adauga_articol.prg CazAdaugaTotSucces). cantitate NEGATIVA (-2): pe tip 8/9,
|
|
* do_verifica_articol respinge orice cantitate >= 0 (ofacturare.vc2:20913).
|
|
*
|
|
* toArticol simuleaza obiectul scatter-uit din crsCodmat/crsDenumire (combo-ul de cautare in linie)
|
|
* dupa do_initializeaza_articol - doar proprietatile citite de do_initializeaza_articol INAINTE de
|
|
* ramura noua (um, preturi_cu_tva, discount_unitar(_val), proc_tvav, Pret, pret_val, cantitate,
|
|
* id_articol); campurile ramurii vechi (Gather in crsfactura) nu mai sunt atinse pe acest traseu.
|
|
*
|
|
* Rulare: vfp9.exe -A -T "D:\ROA\ROAFACTURARE\COMUN\utile\Teste\facturare_unificat\test_s4f_cautare_retur.prg"
|
|
* Log: D:\ROA\ROAFACTURARE\COMUN\utile\Teste\facturare_unificat\out\test_s4f_cautare_retur.log
|
|
* Mediu: ROA_CENTRAL / MARIUSM_AUTO; gnIdUtil = 8; gnScadereStoc = 1.
|
|
*
|
|
* CazNegasitTip8/CazNegasitTip41 (garda S4f: articol nevandut pe documentul returnat) - articolul
|
|
* cautat NU e printre randurile din crsarticole. Pe tip 8/9 noua garda din do_adauga_articol_cautat
|
|
* (ofacturare.vc2:18945-18949) trebuie sa afiseze mesajul (mocat de mock_validare_antet.prg, incarcat
|
|
* PRIMUL - vezi SET PROCEDURE mai jos) si sa intoarca .F. fara sa scrie in crsfactura. Pe tip 41
|
|
* garda nu se aplica (caz imposibil, cf. docs\verificare_s4f_caz_accesibil.md) - comportamentul ramane
|
|
* neschimbat: cade prin la Gather-ul vechi, scrie cu id_gestiune=-1000 (sentinela, nu regresie).
|
|
|
|
SET SAFETY OFF
|
|
SET TALK OFF
|
|
SET NOTIFY OFF
|
|
SET TABLEPROMPT OFF
|
|
PUBLIC gcLog, gnFail, gnPass, gnErr, gcCaz, gcErr
|
|
PUBLIC gcMockApeluri, gnMockRaspuns, gcMockDuplicat, gnMockNumar
|
|
gnMockNumar = 0
|
|
gcLog = "D:\ROA\ROAFACTURARE\COMUN\utile\Teste\facturare_unificat\out\test_s4f_cautare_retur.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
|
|
gnErr = 0
|
|
gcCaz = ""
|
|
gcErr = ""
|
|
gcMockApeluri = ""
|
|
gnMockRaspuns = 6
|
|
gcMockDuplicat = ""
|
|
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
|
|
LOCAL lcProc
|
|
lcProc = SET("PROCEDURE")
|
|
SET PROCEDURE TO "D:\ROA\ROAFACTURARE\COMUN\utile\Teste\facturare_unificat\mock_validare_antet.prg", ;
|
|
"D:\ROA\ROAFACTURARE\COMUN\utile\Teste\facturare_unificat\mock_generator_numere.prg", &lcProc
|
|
IF !actualizeaza_optiuni_program()
|
|
DO AfLog WITH "FAIL: actualizeaza_optiuni_program()"
|
|
DO Final
|
|
ENDIF
|
|
gnIdUtil = 8
|
|
goExecutor.oExecuta([begin pack_sesiune.set_Id_Util(?gnIdUtil); end;])
|
|
gnScadereStoc = 1
|
|
DO AfLog WITH "ENV OK, gnAn=" + TRANSFORM(gnAn) + " gnLuna=" + TRANSFORM(gnLuna)
|
|
SET PATH TO "D:\ROA\ROAFACTURARE\COMUN\utile\gridextras" ADDITIVE
|
|
SET CLASSLIB TO "D:\ROA\ROAFACTURARE\COMUN\utile\gridextras\gridextras.vcx" ADDITIVE
|
|
SET CLASSLIB TO "D:\ROA\ROAFACTURARE\COMUN\clase\_cb_base.vcx" ADDITIVE
|
|
|
|
update_jtva_coloane([JV], [jtva_coloane_temp])
|
|
update_saft_taxtable()
|
|
|
|
PRIVATE poDate, poGeneratorNumere, plVizibil, pnTotalDiscountAvize
|
|
plVizibil = .F.
|
|
pnTotalDiscountAvize = 0
|
|
poDate = NULL
|
|
poGeneratorNumere = CREATEOBJECT("oGeneratorMock")
|
|
|
|
DO CazCautareRetur
|
|
DO CazNegasitTip8
|
|
DO CazNegasitTip41
|
|
|
|
DO Final
|
|
|
|
*----------------------------------------------------------------------------------------
|
|
* CAZ: cautare in linie pe document retur (tip 8) - trebuie sa delege la do_adauga_articol,
|
|
* care scrie id_gestiune REAL (77, din crsarticole), nu sentinela -1000 din do_initializeaza_articol.
|
|
PROCEDURE CazCautareRetur
|
|
LOCAL loForm, loArticol
|
|
gcCaz = "[CAZ_S4f cautare_retur] "
|
|
DO AfLog WITH "PAS: " + gcCaz
|
|
|
|
DO Reseteaza WITH 8
|
|
|
|
SELECT 0
|
|
CREATE CURSOR crsarticole (id_c N(20), id_articol N(20), denumire C(100), cantitate N(20,4), ;
|
|
gestionabil N(1), opt_facturare N(3), Pret N(20,4), pret_val N(20,4), proc_tvav N(20,4), ;
|
|
preturi_cu_tva N(1), um C(10), id_gestiune N(20), cont C(10), id_valuta N(10), tip_valuta N(1), ;
|
|
Curs N(20,4), multiplicator N(10), discount_unitar N(20,4), discount_unitar_val N(20,4), ;
|
|
codmat C(50), codbare C(50), nume_val C(20))
|
|
* cantitate POZITIVA: do_adauga_articol cheama din nou do_initializeaza_articol pe poArticol
|
|
* (scatter din acest rand), care inverseaza semnul pentru tip 8/9 (:19898) - abia dupa aceea
|
|
* do_verifica_articol cere tnCantitate NEGATIV ca sa accepte pe retur (:20916)
|
|
INSERT INTO crsarticole VALUES (1, 555001, "ARTICOL RETUR TEST", 2, 0, 0, 100, 0, 1.19, 0, "BUC", ;
|
|
77, "371", 1, 0, 1, 1, 0, 0, "CM555001", "", "RON")
|
|
GO TOP IN crsarticole
|
|
|
|
loForm = CREATEOBJECT('frm_facturare_articole2')
|
|
DO Assert WITH VARTYPE(loForm) = 'O', "Createobject frm_facturare_articole2"
|
|
IF VARTYPE(loForm) <> 'O'
|
|
RETURN
|
|
ENDIF
|
|
|
|
* obiectul cautat in combo (cCodMat/cDenumire), dupa Scatter din crsCodmat/crsDenumire
|
|
loArticol = CREATEOBJECT('Empty')
|
|
ADDPROPERTY(loArticol, 'id_articol', 555001)
|
|
ADDPROPERTY(loArticol, 'denumire', "ARTICOL RETUR TEST")
|
|
ADDPROPERTY(loArticol, 'codmat', "CM555001")
|
|
ADDPROPERTY(loArticol, 'um', "BUC")
|
|
ADDPROPERTY(loArticol, 'preturi_cu_tva', 0)
|
|
ADDPROPERTY(loArticol, 'discount_unitar', 0)
|
|
ADDPROPERTY(loArticol, 'discount_unitar_val', 0)
|
|
ADDPROPERTY(loArticol, 'proc_tvav', 1.19)
|
|
ADDPROPERTY(loArticol, 'Pret', 100)
|
|
ADDPROPERTY(loArticol, 'pret_val', 0)
|
|
ADDPROPERTY(loArticol, 'cantitate', 2)
|
|
|
|
gcErr = ""
|
|
gnErr = 0
|
|
gcMockApeluri = ""
|
|
DO AfLog WITH "DIAG poDate.tip=" + TRANSFORM(poDate.tip) + " crsarticole.id_articol(inainte)=" + TRANSFORM(crsarticole.id_articol) + " cantitate=" + TRANSFORM(crsarticole.cantitate)
|
|
loForm.do_adauga_articol_cautat(loArticol, loArticol.cantitate)
|
|
|
|
DO AfLog WITH "DIAG dupa apel: gcErr=[" + gcErr + "] gcMockApeluri=[" + STRTRAN(ALLTRIM(gcMockApeluri), CHR(13)+CHR(10), ' | ') + "]"
|
|
DO AfLog WITH "DIAG crsfactura reccount=" + TRANSFORM(RECCOUNT('crsfactura')) + " crsarticole reccount=" + TRANSFORM(IIF(USED('crsarticole'), RECCOUNT('crsarticole'), -1))
|
|
IF USED('crsarticole')
|
|
DO AfLog WITH "DIAG crsarticole dupa: id_articol=" + TRANSFORM(crsarticole.id_articol) + " cantitate=" + TRANSFORM(crsarticole.cantitate)
|
|
ENDIF
|
|
|
|
DO Assert WITH !("GRD_ARTICOLE" $ UPPER(gcErr)), "fara amprenta GRD_ARTICOLE in gcErr"
|
|
DO Assert WITH !("TXTCODMAT" $ UPPER(gcErr)), "fara amprenta TXTCODMAT in gcErr"
|
|
DO Assert WITH RECCOUNT('crsfactura') = 1, "randul a ajuns in crsfactura pe calea veche (Reccount=" + TRANSFORM(RECCOUNT('crsfactura')) + ")"
|
|
|
|
IF RECCOUNT('crsfactura') >= 1
|
|
SELECT crsfactura
|
|
GO TOP
|
|
DO Assert WITH id_gestiune <> -1000, "id_gestiune NU ramane sentinela -1000, e=" + TRANSFORM(id_gestiune)
|
|
DO Assert WITH id_gestiune = 77, "id_gestiune vine din crsarticole (gestiunea reala), e=" + TRANSFORM(id_gestiune)
|
|
DO Assert WITH id_articol = 555001, "id_articol corect in crsfactura"
|
|
ENDIF
|
|
|
|
DO Inchide WITH 'crsarticole'
|
|
loForm.Release()
|
|
RELEASE loForm, loArticol
|
|
ENDPROC
|
|
|
|
*----------------------------------------------------------------------------------------
|
|
* CAZ (a): tip 8, articolul cautat NU e in crsarticole (nevandut pe documentul returnat) - garda
|
|
* noua trebuie sa refuze: .F., fara rand nou in crsfactura, mesaj afisat (mocat).
|
|
PROCEDURE CazNegasitTip8
|
|
LOCAL loForm, loArticol, llRet
|
|
gcCaz = "[CAZ_S4f negasit_tip8] "
|
|
DO AfLog WITH "PAS: " + gcCaz
|
|
|
|
DO Reseteaza WITH 8
|
|
|
|
SELECT 0
|
|
CREATE CURSOR crsarticole (id_c N(20), id_articol N(20), denumire C(100), cantitate N(20,4), ;
|
|
gestionabil N(1), opt_facturare N(3), Pret N(20,4), pret_val N(20,4), proc_tvav N(20,4), ;
|
|
preturi_cu_tva N(1), um C(10), id_gestiune N(20), cont C(10), id_valuta N(10), tip_valuta N(1), ;
|
|
Curs N(20,4), multiplicator N(10), discount_unitar N(20,4), discount_unitar_val N(20,4), ;
|
|
codmat C(50), codbare C(50), nume_val C(20))
|
|
* alt articol, deja incarcat pe document - id_articol diferit de cel cautat mai jos (555001)
|
|
INSERT INTO crsarticole VALUES (1, 999002, "ALT ARTICOL PE DOCUMENT", 2, 0, 0, 100, 0, 1.19, 0, "BUC", ;
|
|
77, "371", 1, 0, 1, 1, 0, 0, "CM999002", "", "RON")
|
|
GO TOP IN crsarticole
|
|
|
|
loForm = CREATEOBJECT('frm_facturare_articole2')
|
|
DO Assert WITH VARTYPE(loForm) = 'O', "Createobject frm_facturare_articole2"
|
|
IF VARTYPE(loForm) <> 'O'
|
|
RETURN
|
|
ENDIF
|
|
|
|
loArticol = CREATEOBJECT('Empty')
|
|
ADDPROPERTY(loArticol, 'id_articol', 555001)
|
|
ADDPROPERTY(loArticol, 'denumire', "ARTICOL NEVANDUT")
|
|
ADDPROPERTY(loArticol, 'codmat', "CM555001")
|
|
ADDPROPERTY(loArticol, 'um', "BUC")
|
|
ADDPROPERTY(loArticol, 'preturi_cu_tva', 0)
|
|
ADDPROPERTY(loArticol, 'discount_unitar', 0)
|
|
ADDPROPERTY(loArticol, 'discount_unitar_val', 0)
|
|
ADDPROPERTY(loArticol, 'proc_tvav', 1.19)
|
|
ADDPROPERTY(loArticol, 'Pret', 100)
|
|
ADDPROPERTY(loArticol, 'pret_val', 0)
|
|
ADDPROPERTY(loArticol, 'cantitate', 2)
|
|
|
|
gcErr = ""
|
|
gnErr = 0
|
|
gcMockApeluri = ""
|
|
llRet = loForm.do_adauga_articol_cautat(loArticol, loArticol.cantitate)
|
|
|
|
DO AfLog WITH "DIAG llRet=" + TRANSFORM(llRet) + " gcMockApeluri=[" + STRTRAN(ALLTRIM(gcMockApeluri), CHR(13)+CHR(10), ' | ') + "]"
|
|
DO AfLog WITH "DIAG crsfactura reccount=" + TRANSFORM(RECCOUNT('crsfactura'))
|
|
|
|
DO Assert WITH gnErr = 0, "fara eroare VFP la refuz (tip 8, articol negasit)"
|
|
DO Assert WITH llRet = .F., "do_adauga_articol_cautat intoarce .F. (tip 8, articol negasit)"
|
|
DO Assert WITH RECCOUNT('crsfactura') = 0, "crsfactura neschimbat (Reccount=" + TRANSFORM(RECCOUNT('crsfactura')) + ")"
|
|
DO Assert WITH "amessagebox(" $ gcMockApeluri, "mesajul de refuz a fost afisat (mocat)"
|
|
DO Assert WITH "NU A FOST VANDUT" $ UPPER(gcMockApeluri), "textul mesajului explica motivul refuzului"
|
|
|
|
DO Inchide WITH 'crsarticole'
|
|
loForm.Release()
|
|
RELEASE loForm, loArticol
|
|
ENDPROC
|
|
|
|
*----------------------------------------------------------------------------------------
|
|
* CAZ (c): tip 41, articolul cautat NU e in crsarticole - garda noua NU se aplica (scopata la 8/9).
|
|
* Comportamentul trebuie sa ramana neschimbat: cade prin la Gather-ul vechi, .T., id_gestiune=-1000.
|
|
PROCEDURE CazNegasitTip41
|
|
LOCAL loForm, loArticol, llRet
|
|
gcCaz = "[CAZ_S4f negasit_tip41] "
|
|
DO AfLog WITH "PAS: " + gcCaz
|
|
|
|
DO Reseteaza WITH 41
|
|
|
|
SELECT 0
|
|
CREATE CURSOR crsarticole (id_c N(20), id_articol N(20), denumire C(100), cantitate N(20,4), ;
|
|
gestionabil N(1), opt_facturare N(3), Pret N(20,4), pret_val N(20,4), proc_tvav N(20,4), ;
|
|
preturi_cu_tva N(1), um C(10), id_gestiune N(20), cont C(10), id_valuta N(10), tip_valuta N(1), ;
|
|
Curs N(20,4), multiplicator N(10), discount_unitar N(20,4), discount_unitar_val N(20,4), ;
|
|
codmat C(50), codbare C(50), nume_val C(20))
|
|
INSERT INTO crsarticole VALUES (1, 999002, "ALT ARTICOL PE DOCUMENT", 2, 0, 0, 100, 0, 1.19, 0, "BUC", ;
|
|
77, "371", 1, 0, 1, 1, 0, 0, "CM999002", "", "RON")
|
|
GO TOP IN crsarticole
|
|
|
|
loForm = CREATEOBJECT('frm_facturare_articole2')
|
|
DO Assert WITH VARTYPE(loForm) = 'O', "Createobject frm_facturare_articole2"
|
|
IF VARTYPE(loForm) <> 'O'
|
|
RETURN
|
|
ENDIF
|
|
|
|
loArticol = CREATEOBJECT('Empty')
|
|
ADDPROPERTY(loArticol, 'id_articol', 555001)
|
|
ADDPROPERTY(loArticol, 'denumire', "ARTICOL NEVANDUT")
|
|
ADDPROPERTY(loArticol, 'codmat', "CM555001")
|
|
ADDPROPERTY(loArticol, 'um', "BUC")
|
|
ADDPROPERTY(loArticol, 'preturi_cu_tva', 0)
|
|
ADDPROPERTY(loArticol, 'discount_unitar', 0)
|
|
ADDPROPERTY(loArticol, 'discount_unitar_val', 0)
|
|
ADDPROPERTY(loArticol, 'proc_tvav', 1.19)
|
|
ADDPROPERTY(loArticol, 'Pret', 100)
|
|
ADDPROPERTY(loArticol, 'pret_val', 0)
|
|
ADDPROPERTY(loArticol, 'cantitate', 2)
|
|
* tip 41 nu delega (nu are echivalent al do_adauga_articol) - cade in Gather-ul vechi, care mai
|
|
* citeste si aceste proprietati din obiectul cautat (neatinse de do_initializeaza_articol)
|
|
ADDPROPERTY(loArticol, 'Curs', 1)
|
|
ADDPROPERTY(loArticol, 'multiplicator', 1)
|
|
ADDPROPERTY(loArticol, 'codbare', "")
|
|
|
|
* calea veche (Gather direct in crsfactura, fara Append Blank propriu) presupune ca grilul
|
|
* a pozitionat deja un rand gol pe crsfactura - ca la LostFocus pe ultima linie a grid-ului
|
|
SELECT crsfactura
|
|
APPEND BLANK
|
|
|
|
gcErr = ""
|
|
gnErr = 0
|
|
gcMockApeluri = ""
|
|
llRet = loForm.do_adauga_articol_cautat(loArticol, loArticol.cantitate)
|
|
|
|
DO AfLog WITH "DIAG llRet=" + TRANSFORM(llRet) + " gcErr=[" + gcErr + "] gcMockApeluri=[" + STRTRAN(ALLTRIM(gcMockApeluri), CHR(13)+CHR(10), ' | ') + "]"
|
|
DO AfLog WITH "DIAG crsfactura reccount=" + TRANSFORM(RECCOUNT('crsfactura'))
|
|
|
|
DO Assert WITH gnErr = 0, "fara eroare VFP (tip 41, articol negasit)"
|
|
DO Assert WITH llRet = .T., "do_adauga_articol_cautat intoarce .T. (tip 41, comportament neschimbat)"
|
|
DO Assert WITH RECCOUNT('crsfactura') = 1, "randul ajunge in crsfactura pe calea veche (Reccount=" + TRANSFORM(RECCOUNT('crsfactura')) + ")"
|
|
DO Assert WITH !("amessagebox(" $ gcMockApeluri), "nicio garda pe tip 41 (scopata la 8/9)"
|
|
IF RECCOUNT('crsfactura') >= 1
|
|
SELECT crsfactura
|
|
GO TOP
|
|
DO Assert WITH id_gestiune = -1000, "id_gestiune ramane sentinela -1000 pe tip 41 (neschimbat, nu regresie)"
|
|
ENDIF
|
|
|
|
DO Inchide WITH 'crsarticole'
|
|
loForm.Release()
|
|
RELEASE loForm, loArticol
|
|
ENDPROC
|
|
|
|
*----------------------------------------------------------------------------------------
|
|
PROCEDURE Reseteaza
|
|
LPARAMETERS tnTip
|
|
LOCAL lnIdSet
|
|
|
|
DO Inchide WITH 'crsarticole'
|
|
DO Inchide WITH 'crsarticole1'
|
|
DO Inchide WITH 'crsfactura'
|
|
DO Inchide WITH 'crscursuri'
|
|
DO Inchide WITH 'crspolitici'
|
|
DO Inchide WITH 'crscontracte'
|
|
DO Inchide WITH 'crsgestiunidest'
|
|
DO Inchide WITH 'crsCtrTemp'
|
|
DO Inchide WITH 'CrsCotaTva'
|
|
DO Inchide WITH 'saft_tip_facturi'
|
|
DO Inchide WITH 'jtva_coloane'
|
|
SELECT 0
|
|
|
|
* cboTipFactura (frm_facturare_articole2) cere RowSource pe saft_tip_facturi la constructie
|
|
IF !USED('saft_tip_facturi')
|
|
CREATE CURSOR saft_tip_facturi (cod N(3) NULL, tip_saftname C(200) NULL)
|
|
INSERT INTO saft_tip_facturi (cod, tip_saftname) VALUES (NULL, '')
|
|
INDEX ON cod TAG cod
|
|
ENDIF
|
|
|
|
DO creeaza_facturacrs WITH 'crsfactura'
|
|
SELECT *, CAST(NULL AS C(100)) AS gestiune FROM crsfactura INTO CURSOR crsfact_tmp READWRITE
|
|
USE IN crsfactura
|
|
SELECT * FROM crsfact_tmp INTO CURSOR crsfactura READWRITE
|
|
USE IN crsfact_tmp
|
|
|
|
gcMockApeluri = ""
|
|
gcErr = ""
|
|
gnErr = 0
|
|
gnMockRaspuns = 6
|
|
gcMockDuplicat = ""
|
|
|
|
lnIdSet = 26000 + tnTip
|
|
poDate = NULL
|
|
poDate = CREATEOBJECT("oDateFactura", lnIdSet, tnTip)
|
|
poDate.dataireg = DATE(gnAn, gnLuna, 1)
|
|
poDate.dataact = poDate.dataireg
|
|
poDate.zi_curs = poDate.dataireg
|
|
poDate.id_fdoc = 1
|
|
poDate.fdoc = "FEL TEST"
|
|
poDate.nract = 78
|
|
poDate.serie_act = "TST"
|
|
poDate.id_client = 1
|
|
poDate.id_furnizor = 1
|
|
poDate.nrfactachi = 1
|
|
poDate.id_valuta = 1
|
|
poDate.in_valuta = 0
|
|
poDate.listaid = "1"
|
|
|
|
* jtva_coloane real (do_initializeaza_articol face Select jtva_coloane pe fiecare articol)
|
|
DO Inchide WITH 'jtva_coloane'
|
|
IF poDate.tva_incasare = 0
|
|
SELECT * FROM jtva_coloane_temp WHERE ISNULL(id_jtva_ex) AND !'RORTC' $ UPPER(coloana_jv) INTO CURSOR jtva_coloane
|
|
ELSE
|
|
SELECT * FROM jtva_coloane_temp WHERE ISNULL(id_jtva_neex) AND !'RORTC' $ UPPER(coloana_jv) INTO CURSOR jtva_coloane
|
|
ENDIF
|
|
|
|
poGeneratorNumere.ResetNumere()
|
|
poDate.rezultat_serii = poGeneratorNumere.creeaza_cursor_serii(poDate.nIdTipDoc)
|
|
gcMockApeluri = ""
|
|
ENDPROC
|
|
|
|
PROCEDURE Inchide
|
|
LPARAMETERS tcAlias
|
|
IF USED(tcAlias)
|
|
USE IN (tcAlias)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROCEDURE Assert
|
|
LPARAMETERS tlCond, tcMsg
|
|
IF tlCond
|
|
gnPass = gnPass + 1
|
|
DO AfLog WITH "PASS: " + gcCaz + tcMsg
|
|
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
|
|
gcErr = gcErr + TRANSFORM(tnErr) + " " + tcMsg + " (" + TRANSFORM(tcProg) + ":" + TRANSFORM(tnLine) + ")" + CHR(13) + CHR(10)
|
|
gnErr = gnErr + 1
|
|
DO AfLog WITH "ERROR " + TRANSFORM(tnErr) + " [" + tcProg + ":" + TRANSFORM(tnLine) + "] " + tcMsg
|
|
ENDPROC
|
|
|
|
PROCEDURE Final
|
|
DO AfLog WITH "TOTAL pass=" + TRANSFORM(gnPass) + " fail=" + TRANSFORM(gnFail) + " err=" + TRANSFORM(gnErr)
|
|
DO AfLog WITH "END " + TTOC(DATETIME())
|
|
QUIT
|
|
ENDPROC
|