* test_coada_contabilizare_ef.prg * Teste CoadaContabilizareEF (COMUN\programe\coada_contabilizare_ef.prg), fara Oracle si fara UI: * EligibilRand, Ruta, AntetProgres, CreeazaRaport/AdaugaRaport, nPlafon, MesajPlafon, * MesajConfirmare, MesajOprire. * * Rulare: vfp9.exe -A -T "D:\ROA\ROACONT\COMUN\utile\Teste\test_coada_contabilizare_ef.prg" * Iesire in D:\ROA\ROACONT\COMUN\utile\Teste\test_coada_contabilizare_ef_log.txt SET SAFETY OFF SET TALK OFF SET DELETED ON SET EXACT ON SET CENTURY ON SET DATE DMY SET NULLDISPLAY TO '' CLOSE DATABASES PUBLIC gcUILog gcUILog = "D:\ROA\ROACONT\COMUN\utile\Teste\test_coada_contabilizare_ef_log.txt" STRTOFILE("START " + TTOC(DATETIME()) + CHR(13) + CHR(10), gcUILog) ON ERROR DO PrErrLocal WITH ERROR(), MESSAGE(), PROGRAM(), LINENO() ON SHUTDOWN QUIT TRY SET PROCEDURE TO "D:\ROA\ROACONT\COMUN\programe\coada_contabilizare_ef.prg" ADDITIVE LOCAL loCoada loCoada = CREATEOBJECT('CoadaContabilizareEF') DO PrLogLocal WITH 'obiect creat' DO PrLogLocal WITH '=== EligibilRand ===' DO PrVerificaMotiv WITH loCoada, 'luna inchisa', 0, '1234567', 1, 0, .T., 'F1', 'luna este inchisa' DO PrVerificaMotiv WITH loCoada, 'id_fact completat', 55, '1234567', 1, 0, .F., 'F1', 'factura este deja importata in contabilitate' DO PrVerificaMotiv WITH loCoada, 'cod fiscal gol', 0, '', 1, 0, .F., 'F1', 'eFactura nu are cod fiscal, nu se poate identifica partenerul' DO PrVerificaMotiv WITH loCoada, 'CIF ambiguu', 0, '1234567', 2, 0, .F., 'F1', 'CIF ambiguu in ROA, alegeti partenerul manual' DO PrVerificaMotiv WITH loCoada, 'numar fara cifre', 0, '1234567', 1, 0, .F., 'FACTURA', 'numarul documentului nu se poate deduce din FACTURA, completati-l manual' DO PrVerificaMotiv WITH loCoada, 'eligibil', 0, '1234567', 1, 0, .F., 'ZZT-A1-C', '' DO PrLogLocal WITH '=== Ruta ===' IF USED('crsRutaTest') USE IN crsRutaTest ENDIF CREATE CURSOR crsRutaTest (in_stoc N(1)) INSERT INTO crsRutaTest (in_stoc) VALUES (0) INSERT INTO crsRutaTest (in_stoc) VALUES (0) DO PrVerificaRuta WITH loCoada, 'fara linii in_stoc=1', 'crsRutaTest', 1 INSERT INTO crsRutaTest (in_stoc) VALUES (1) DO PrVerificaRuta WITH loCoada, 'cu o linie in_stoc=1', 'crsRutaTest', 2 SELECT crsRutaTest GO 2 loCoada.Ruta('crsRutaTest') DO PrLogLocal WITH ' Ruta nu muta pozitia: RECNO=' + TRANSFORM(RECNO('crsRutaTest')) + ' EOF=' + TRANSFORM(EOF('crsRutaTest')) + ' asteptat RECNO=2 EOF=.F. ' + ; IIF(RECNO('crsRutaTest') = 2 AND !EOF('crsRutaTest'), 'OK', 'FAIL') USE IN crsRutaTest DO PrLogLocal WITH '=== AntetProgres ===' LOCAL lcAntet, lcAsteptat lcAntet = loCoada.AntetProgres(3, 10, 'FURNIZOR TEST SRL', 'FF 123/2026', 1234.5) lcAsteptat = 'Factura 3 din 10 - FURNIZOR TEST SRL - FF 123/2026 - 1,234.50 lei (ESC opreste coada dupa documentul curent)' DO PrLogLocal WITH ' obtinut =[' + m.lcAntet + ']' DO PrLogLocal WITH ' asteptat=[' + m.lcAsteptat + '] ' + IIF(m.lcAntet == m.lcAsteptat, 'OK', 'FAIL') DO PrLogLocal WITH '=== nPlafon (implicit) ===' DO PrLogLocal WITH ' nPlafon=' + TRANSFORM(loCoada.nPlafon) + ' asteptat=50 ' + IIF(loCoada.nPlafon = 50, 'OK', 'FAIL') DO PrLogLocal WITH '=== MesajPlafon ===' LOCAL lcMesaj lcMesaj = loCoada.MesajPlafon(75) DO PrLogLocal WITH ' obtinut=[' + m.lcMesaj + ']' DO PrLogLocal WITH ' contine "75" ' + IIF('75' $ m.lcMesaj, 'OK', 'FAIL') DO PrLogLocal WITH ' contine plafonul "50" ' + IIF('50' $ m.lcMesaj, 'OK', 'FAIL') DO PrLogLocal WITH '=== MesajConfirmare ===' lcMesaj = loCoada.MesajConfirmare(12) DO PrLogLocal WITH ' obtinut=[' + m.lcMesaj + ']' DO PrLogLocal WITH ' contine "12" ' + IIF('12' $ m.lcMesaj, 'OK', 'FAIL') DO PrLogLocal WITH ' contine "ESC" ' + IIF('ESC' $ m.lcMesaj, 'OK', 'FAIL') DO PrLogLocal WITH '=== MesajOprire ===' lcMesaj = loCoada.MesajOprire(7) DO PrLogLocal WITH ' obtinut=[' + m.lcMesaj + ']' DO PrLogLocal WITH ' contine "7" ' + IIF('7' $ m.lcMesaj, 'OK', 'FAIL') DO PrLogLocal WITH ' contine "ESC" ' + IIF('ESC' $ m.lcMesaj, 'OK', 'FAIL') DO PrLogLocal WITH '=== MesajOprire cu cauza ===' lcMesaj = loCoada.MesajOprire(4, 'dupa un document nereusit') DO PrLogLocal WITH ' obtinut=[' + m.lcMesaj + ']' DO PrLogLocal WITH ' contine cauza ' + IIF('dupa un document nereusit' $ m.lcMesaj, 'OK', 'FAIL') DO PrLogLocal WITH ' nu mai spune ESC ' + IIF(!('ESC' $ m.lcMesaj), 'OK', 'FAIL') DO PrLogLocal WITH '=== MesajContinuare ===' lcMesaj = loCoada.MesajContinuare('numar document lipsa', 4) DO PrLogLocal WITH ' obtinut=[' + m.lcMesaj + ']' DO PrLogLocal WITH ' contine motivul ' + IIF('numar document lipsa' $ m.lcMesaj, 'OK', 'FAIL') DO PrLogLocal WITH ' contine cate raman ' + IIF('4' $ m.lcMesaj, 'OK', 'FAIL') DO PrLogLocal WITH '=== decizie plafon (sub/peste prag) ===' DO PrLogLocal WITH ' 49 <= nPlafon(50) ' + IIF(49 <= loCoada.nPlafon, 'OK (nu se refuza)', 'FAIL') DO PrLogLocal WITH ' 50 <= nPlafon(50) ' + IIF(50 <= loCoada.nPlafon, 'OK (nu se refuza, plafon inclusiv)', 'FAIL') DO PrLogLocal WITH ' 51 > nPlafon(50) ' + IIF(51 > loCoada.nPlafon, 'OK (se refuza)', 'FAIL') DO PrLogLocal WITH '=== CreeazaRaport / AdaugaRaport ===' loCoada.CreeazaRaport() DO PrLogLocal WITH ' dupa CreeazaRaport: used=' + TRANSFORM(USED('crsCoadaRaport')) + ' reccount=' + TRANSFORM(RECCOUNT('crsCoadaRaport')) loCoada.AdaugaRaport(101, 'FF 001', 'FURNIZOR UNU', 'OK', '') loCoada.AdaugaRaport(102, 'FF 002', 'FURNIZOR DOI', 'EROARE', 'motiv test') DO PrLogLocal WITH ' dupa 2x AdaugaRaport: reccount=' + TRANSFORM(RECCOUNT('crsCoadaRaport')) + ; ' asteptat=2 ' + IIF(RECCOUNT('crsCoadaRaport') = 2, 'OK', 'FAIL') SELECT crsCoadaRaport GO 1 DO PrLogLocal WITH ' rand1: id_efactura=' + TRANSFORM(id_efactura) + ' numar_act=[' + TRANSFORM(numar_act) + ']' + ; ' furnizor=[' + TRANSFORM(furnizor) + '] stare=[' + TRANSFORM(stare) + '] motiv=[' + TRANSFORM(motiv) + ']' DO PrLogLocal WITH ' rand1 ' + IIF(id_efactura = 101 AND ALLTRIM(numar_act) == 'FF 001' AND ALLTRIM(stare) == 'OK', 'OK', 'FAIL') GO 2 DO PrLogLocal WITH ' rand2: id_efactura=' + TRANSFORM(id_efactura) + ' numar_act=[' + TRANSFORM(numar_act) + ']' + ; ' furnizor=[' + TRANSFORM(furnizor) + '] stare=[' + TRANSFORM(stare) + '] motiv=[' + TRANSFORM(motiv) + ']' DO PrLogLocal WITH ' rand2 ' + IIF(id_efactura = 102 AND ALLTRIM(numar_act) == 'FF 002' AND ALLTRIM(stare) == 'EROARE' AND ALLTRIM(motiv) == 'motiv test', 'OK', 'FAIL') USE IN crsCoadaRaport DO PrLogLocal WITH '=== TextDeCompletat (cont/gestiune/analitic) ===' DO PrVerificaText WITH loCoada, 'toate trei', 2, 1, 3, '2 cont 1 gest. 3 analitic' DO PrVerificaText WITH loCoada, 'doar analitic', 0, 0, 5, '5 analitic' DO PrVerificaText WITH loCoada, 'cont + analitic, fara gestiune', 1, 0, 2, '1 cont 2 analitic' DO PrVerificaText WITH loCoada, 'niciuna', 0, 0, 0, '' DO PrLogLocal WITH '=== AplicaLipsuriLista + ContorBifate (nGata/nTotal) ===' DO TestAplicaLipsuriLista WITH loCoada DO TestContorGata WITH loCoada DO PrLogLocal WITH '=== MesajRaport ===' DO TestMesajRaport WITH loCoada DO PrLogLocal WITH 'TOTAL: test terminat fara exceptie' CATCH TO loEx DO PrLogLocal WITH 'EXCEPTIE: ' + loEx.Message + ' (' + TRANSFORM(loEx.LineNo) + ') ' + loEx.Procedure ENDTRY QUIT ********************************************************** PROCEDURE PrVerificaMotiv LPARAMETERS toCoada, tcEticheta, tnIdFact, tcCodFiscal, tnActivi, tnInactivi, tlLunaInchisa, tcNumarAct, tcAsteptat LOCAL lcMotiv lcMotiv = toCoada.EligibilRand(m.tnIdFact, m.tcCodFiscal, m.tnActivi, m.tnInactivi, m.tlLunaInchisa, m.tcNumarAct) DO PrLogLocal WITH ' ' + tcEticheta + ': obtinut=[' + m.lcMotiv + '] asteptat=[' + m.tcAsteptat + '] ' + ; IIF(m.lcMotiv == m.tcAsteptat, 'OK', 'FAIL') ENDPROC ********************************************************** PROCEDURE PrVerificaText LPARAMETERS toCoada, tcEticheta, tnArticole, tnGestiuni, tnAnalitic, tcAsteptat LOCAL lcText lcText = toCoada.TextDeCompletat(m.tnArticole, m.tnGestiuni, m.tnAnalitic) DO PrLogLocal WITH ' ' + tcEticheta + ': obtinut=[' + m.lcText + '] asteptat=[' + m.tcAsteptat + '] ' + ; IIF(m.lcText == m.tcAsteptat, 'OK', 'FAIL') ENDPROC ********************************************************** PROCEDURE PrVerificaRuta LPARAMETERS toCoada, tcEticheta, tcAliasDetalii, tnAsteptat LOCAL lnRuta lnRuta = toCoada.Ruta(m.tcAliasDetalii) DO PrLogLocal WITH ' ' + tcEticheta + ': obtinut=' + TRANSFORM(m.lnRuta) + ' asteptat=' + TRANSFORM(m.tnAsteptat) + ' ' + ; IIF(m.lnRuta = m.tnAsteptat, 'OK', 'FAIL') ENDPROC ********************************************************** * AplicaLipsuriLista: cont implicit / gestiune implicita / optiuni de completare stinse / rand * deja blocat de MarcheazaEligibilitate (motiv nu se suprascrie) - fiecare caz pe cursorul lui, * cu propriul set de parametri (AplicaLipsuriLista ruleaza cu un singur set de optiuni per apel) PROCEDURE TestAplicaLipsuriLista LPARAMETERS toCoada IF USED('crsAF') USE IN crsAF ENDIF IF USED('crsAL') USE IN crsAL ENDIF * A: cont implicit configurat - lnArticole devine 0 indiferent de tlCompleteazaCont; fara_analitic * se aplica neconditionat (nu e zerouit de tcContImplicit) CREATE CURSOR crsAF (id N(20), ales N(1), eligibil_lot N(1), motiv_lot V(120), de_completat V(200), gest C(1)) INSERT INTO crsAF (id, ales, eligibil_lot, motiv_lot, de_completat, gest) VALUES (1, 1, 1, '', '', '') CREATE CURSOR crsAL (id_efactura N(20), fara_cont_catalog N(6), fara_cont_orice N(6), stoc_fara_gestiune N(6), stoc_total N(6), fara_analitic N(6)) INSERT INTO crsAL (id_efactura, fara_cont_catalog, fara_cont_orice, stoc_fara_gestiune, stoc_total, fara_analitic) VALUES (1, 3, 1, 0, 2, 4) SELECT crsAL INDEX ON id_efactura TAG idefact toCoada.AplicaLipsuriLista('crsAF', 'crsAL', '401', 0, .F., .F.) SELECT crsAF LOCATE FOR id = 1 DO PrLogLocal WITH ' A cont implicit: de_completat=[' + ALLTRIM(de_completat) + '] asteptat=[2 gest. 4 analitic] ' + ; IIF(ALLTRIM(de_completat) == '2 gest. 4 analitic' AND eligibil_lot = 0 AND ales = 0, 'OK', 'FAIL') USE IN crsAF USE IN crsAL * B: gestiune implicita configurata - lnGestiuni devine 0 indiferent de tlCompleteazaGestiune; * fara_analitic 0 - textul ramane gol CREATE CURSOR crsAF (id N(20), ales N(1), eligibil_lot N(1), motiv_lot V(120), de_completat V(200), gest C(1)) INSERT INTO crsAF (id, ales, eligibil_lot, motiv_lot, de_completat, gest) VALUES (2, 0, 1, '', '', '') CREATE CURSOR crsAL (id_efactura N(20), fara_cont_catalog N(6), fara_cont_orice N(6), stoc_fara_gestiune N(6), stoc_total N(6), fara_analitic N(6)) INSERT INTO crsAL (id_efactura, fara_cont_catalog, fara_cont_orice, stoc_fara_gestiune, stoc_total, fara_analitic) VALUES (2, 1, 0, 4, 6, 0) SELECT crsAL INDEX ON id_efactura TAG idefact toCoada.AplicaLipsuriLista('crsAF', 'crsAL', '', 55, .T., .T.) SELECT crsAF LOCATE FOR id = 2 DO PrLogLocal WITH ' B gestiune implicita: de_completat=[' + ALLTRIM(de_completat) + '] asteptat=[] ' + ; IIF(EMPTY(ALLTRIM(de_completat)) AND eligibil_lot = 1, 'OK', 'FAIL') USE IN crsAF USE IN crsAL * C: optiunile de completare stinse, fara implicite - conturi=fara_cont_catalog, gestiuni=stoc_total, * analitic=fara_analitic, toate trei in text CREATE CURSOR crsAF (id N(20), ales N(1), eligibil_lot N(1), motiv_lot V(120), de_completat V(200), gest C(1)) INSERT INTO crsAF (id, ales, eligibil_lot, motiv_lot, de_completat, gest) VALUES (3, 1, 1, '', '', '') CREATE CURSOR crsAL (id_efactura N(20), fara_cont_catalog N(6), fara_cont_orice N(6), stoc_fara_gestiune N(6), stoc_total N(6), fara_analitic N(6)) INSERT INTO crsAL (id_efactura, fara_cont_catalog, fara_cont_orice, stoc_fara_gestiune, stoc_total, fara_analitic) VALUES (3, 2, 0, 1, 5, 7) SELECT crsAL INDEX ON id_efactura TAG idefact toCoada.AplicaLipsuriLista('crsAF', 'crsAL', '', 0, .F., .F.) SELECT crsAF LOCATE FOR id = 3 DO PrLogLocal WITH ' C optiuni stinse: de_completat=[' + ALLTRIM(de_completat) + '] asteptat=[2 cont 5 gest. 7 analitic] ' + ; IIF(ALLTRIM(de_completat) == '2 cont 5 gest. 7 analitic' AND eligibil_lot = 0, 'OK', 'FAIL') USE IN crsAF USE IN crsAL * D: rand deja blocat de MarcheazaEligibilitate (CIF ambiguu) - motiv nu se suprascrie, chiar cu * lipsuri nevide; rand blocat DIN lipsuri se redeschide cand lipsurile dispar; factura fara linii * (fara rand in crsAL) nu are nimic de completat CREATE CURSOR crsAF (id N(20), ales N(1), eligibil_lot N(1), motiv_lot V(120), de_completat V(200), gest C(1)) INSERT INTO crsAF (id, ales, eligibil_lot, motiv_lot, de_completat, gest) VALUES (4, 0, 0, 'CIF ambiguu in ROA, alegeti partenerul manual', '', '') INSERT INTO crsAF (id, ales, eligibil_lot, motiv_lot, de_completat, gest) VALUES (5, 0, 0, 'de completat: 1 cont', '', '') INSERT INTO crsAF (id, ales, eligibil_lot, motiv_lot, de_completat, gest) VALUES (6, 1, 1, '', '', '') CREATE CURSOR crsAL (id_efactura N(20), fara_cont_catalog N(6), fara_cont_orice N(6), stoc_fara_gestiune N(6), stoc_total N(6), fara_analitic N(6)) INSERT INTO crsAL (id_efactura, fara_cont_catalog, fara_cont_orice, stoc_fara_gestiune, stoc_total, fara_analitic) VALUES (4, 1, 1, 0, 0, 0) INSERT INTO crsAL (id_efactura, fara_cont_catalog, fara_cont_orice, stoc_fara_gestiune, stoc_total, fara_analitic) VALUES (5, 0, 0, 0, 0, 0) SELECT crsAL INDEX ON id_efactura TAG idefact toCoada.AplicaLipsuriLista('crsAF', 'crsAL', '', 0, .T., .T.) SELECT crsAF LOCATE FOR id = 4 DO PrLogLocal WITH ' D CIF ambiguu, lipsuri nevide: motiv_lot=[' + ALLTRIM(motiv_lot) + '] de_completat=[' + ALLTRIM(de_completat) + '] ' + ; IIF(ALLTRIM(motiv_lot) == 'CIF ambiguu in ROA, alegeti partenerul manual' AND eligibil_lot = 0 AND !EMPTY(ALLTRIM(de_completat)), 'OK - motiv pastrat', 'FAIL') LOCATE FOR id = 5 DO PrLogLocal WITH ' D redeschidere, lipsuri disparute: eligibil_lot=' + TRANSFORM(eligibil_lot) + ' motiv_lot=[' + ALLTRIM(motiv_lot) + '] ' + ; IIF(eligibil_lot = 1 AND EMPTY(ALLTRIM(motiv_lot)), 'OK', 'FAIL') LOCATE FOR id = 6 DO PrLogLocal WITH ' D factura fara linii (fara rand in crsAL): de_completat=[' + ALLTRIM(de_completat) + '] ' + ; IIF(EMPTY(ALLTRIM(de_completat)) AND eligibil_lot = 1, 'OK', 'FAIL') USE IN crsAF USE IN crsAL * E: populare gest - 'G' cand stoc_total > 0 in crsAL, '' cand stoc_total = 0, '' cand factura * nu e gasita in crsAL CREATE CURSOR crsAF (id N(20), ales N(1), eligibil_lot N(1), motiv_lot V(120), de_completat V(200), gest C(1)) INSERT INTO crsAF (id, ales, eligibil_lot, motiv_lot, de_completat, gest) VALUES (7, 1, 1, '', '', '') INSERT INTO crsAF (id, ales, eligibil_lot, motiv_lot, de_completat, gest) VALUES (8, 1, 1, '', '', '') INSERT INTO crsAF (id, ales, eligibil_lot, motiv_lot, de_completat, gest) VALUES (9, 1, 1, '', '', '') CREATE CURSOR crsAL (id_efactura N(20), fara_cont_catalog N(6), fara_cont_orice N(6), stoc_fara_gestiune N(6), stoc_total N(6), fara_analitic N(6)) INSERT INTO crsAL (id_efactura, fara_cont_catalog, fara_cont_orice, stoc_fara_gestiune, stoc_total, fara_analitic) VALUES (7, 0, 0, 0, 3, 0) INSERT INTO crsAL (id_efactura, fara_cont_catalog, fara_cont_orice, stoc_fara_gestiune, stoc_total, fara_analitic) VALUES (8, 0, 0, 0, 0, 0) SELECT crsAL INDEX ON id_efactura TAG idefact toCoada.AplicaLipsuriLista('crsAF', 'crsAL', '', 0, .F., .F.) SELECT crsAF LOCATE FOR id = 7 DO PrLogLocal WITH ' E gest cu stoc_total>0: gest=[' + ALLTRIM(gest) + '] ' + IIF(ALLTRIM(gest) == 'G', 'OK', 'FAIL') LOCATE FOR id = 8 DO PrLogLocal WITH ' E gest cu stoc_total=0: gest=[' + ALLTRIM(gest) + '] ' + IIF(EMPTY(ALLTRIM(gest)), 'OK', 'FAIL') LOCATE FOR id = 9 DO PrLogLocal WITH ' E gest factura fara rand in crsAL: gest=[' + ALLTRIM(gest) + '] ' + IIF(EMPTY(ALLTRIM(gest)), 'OK', 'FAIL') USE IN crsAF USE IN crsAL ENDPROC ********************************************************** * ContorBifate: nGata (eligibile si neimportate) / nTotal (tot cursorul), indiferent de bifa; * nGestiune numara randurile cu gest nevid PROCEDURE TestContorGata LPARAMETERS toCoada IF USED('crsCG') USE IN crsCG ENDIF CREATE CURSOR crsCG (id N(20), ales N(1), eligibil_lot N(1), id_fact N(20), total_cu_tva N(16,2), gest C(1)) INSERT INTO crsCG (id, ales, eligibil_lot, id_fact, total_cu_tva, gest) VALUES (1, 0, 1, 0, 100, '') INSERT INTO crsCG (id, ales, eligibil_lot, id_fact, total_cu_tva, gest) VALUES (2, 1, 1, 0, 200, '') INSERT INTO crsCG (id, ales, eligibil_lot, id_fact, total_cu_tva, gest) VALUES (3, 0, 0, 0, 300, '') INSERT INTO crsCG (id, ales, eligibil_lot, id_fact, total_cu_tva, gest) VALUES (4, 1, 1, 100, 400, '') INSERT INTO crsCG (id, ales, eligibil_lot, id_fact, total_cu_tva, gest) VALUES (5, 1, 0, 0, 500, '') LOCAL loContor loContor = toCoada.ContorBifate('crsCG') DO PrLogLocal WITH ' nTotal=' + TRANSFORM(loContor.nTotal) + ' asteptat=5 ' + IIF(loContor.nTotal = 5, 'OK', 'FAIL') DO PrLogLocal WITH ' nGata=' + TRANSFORM(loContor.nGata) + ' asteptat=2 ' + IIF(loContor.nGata = 2, 'OK', 'FAIL') DO PrLogLocal WITH ' nBifate=' + TRANSFORM(loContor.nBifate) + ' asteptat=3 ' + IIF(loContor.nBifate = 3, 'OK', 'FAIL') DO PrLogLocal WITH ' nGestiune (gest gol)=' + TRANSFORM(loContor.nGestiune) + ' asteptat=0 ' + IIF(loContor.nGestiune = 0, 'OK', 'FAIL') USE IN crsCG IF USED('crsCG2') USE IN crsCG2 ENDIF CREATE CURSOR crsCG2 (id N(20), ales N(1), eligibil_lot N(1), id_fact N(20), total_cu_tva N(16,2), gest C(1)) INSERT INTO crsCG2 (id, ales, eligibil_lot, id_fact, total_cu_tva, gest) VALUES (1, 0, 1, 0, 100, 'G') INSERT INTO crsCG2 (id, ales, eligibil_lot, id_fact, total_cu_tva, gest) VALUES (2, 1, 1, 0, 200, '') INSERT INTO crsCG2 (id, ales, eligibil_lot, id_fact, total_cu_tva, gest) VALUES (3, 0, 0, 0, 300, 'G') loContor = toCoada.ContorBifate('crsCG2') DO PrLogLocal WITH ' nGestiune (cu coloana gest)=' + TRANSFORM(loContor.nGestiune) + ' asteptat=2 ' + IIF(loContor.nGestiune = 2, 'OK', 'FAIL') USE IN crsCG2 ENDPROC ********************************************************** * MesajRaport: cursor gol, toate OK, combinatie OK/SARIT/ESEC, plafon de 15 documente listate, * rand OPRIT PROCEDURE TestMesajRaport LPARAMETERS toCoada LOCAL lcMesaj, lnI toCoada.CreeazaRaport() lcMesaj = toCoada.MesajRaport() DO PrLogLocal WITH ' gol: obtinut=[' + m.lcMesaj + ']' DO PrLogLocal WITH ' gol: "0 facturi" ' + IIF('0 facturi' $ m.lcMesaj, 'OK', 'FAIL') DO PrLogLocal WITH ' gol: fara bloc probleme ' + IIF(!('Nu s-au contabilizat' $ m.lcMesaj), 'OK', 'FAIL') USE IN crsCoadaRaport toCoada.CreeazaRaport() toCoada.AdaugaRaport(1, 'FF 1', 'ALFA SRL', 'OK', '') toCoada.AdaugaRaport(2, 'FF 2', 'BETA SRL', 'OK', '') toCoada.AdaugaRaport(3, 'FF 3', 'GAMA SRL', 'OK', '') lcMesaj = toCoada.MesajRaport() DO PrLogLocal WITH ' toate OK: obtinut=[' + m.lcMesaj + ']' DO PrLogLocal WITH ' toate OK: "3 facturi" ' + IIF('3 facturi' $ m.lcMesaj, 'OK', 'FAIL') DO PrLogLocal WITH ' toate OK: "Contabilizate : 3" ' + IIF('Contabilizate : 3' $ m.lcMesaj, 'OK', 'FAIL') DO PrLogLocal WITH ' toate OK: fara bloc probleme ' + IIF(!('Nu s-au contabilizat' $ m.lcMesaj), 'OK', 'FAIL') USE IN crsCoadaRaport toCoada.CreeazaRaport() toCoada.AdaugaRaport(1234, 'FDI 1234', 'ALFA SRL', 'OK', '') toCoada.AdaugaRaport(4455, '4455', 'BETA SRL', 'SARIT', 'CIF ambiguu in ROA') toCoada.AdaugaRaport(77, 'FF 77', 'GAMA SRL', 'ESEC', 'eroare: contul 628.01 nu exista') lcMesaj = toCoada.MesajRaport() DO PrLogLocal WITH ' combinatie: obtinut=[' + m.lcMesaj + ']' DO PrLogLocal WITH ' combinatie: "3 facturi" ' + IIF('3 facturi' $ m.lcMesaj, 'OK', 'FAIL') DO PrLogLocal WITH ' combinatie: "Contabilizate : 1" ' + IIF('Contabilizate : 1' $ m.lcMesaj, 'OK', 'FAIL') DO PrLogLocal WITH ' combinatie: "Sarite : 1" ' + IIF('Sarite : 1' $ m.lcMesaj, 'OK', 'FAIL') DO PrLogLocal WITH ' combinatie: "Nereusite : 1" ' + IIF('Nereusite : 1' $ m.lcMesaj, 'OK', 'FAIL') DO PrLogLocal WITH ' combinatie: linia BETA ' + IIF('4455 / BETA SRL' $ m.lcMesaj, 'OK', 'FAIL') DO PrLogLocal WITH ' combinatie: motiv BETA ' + IIF('CIF ambiguu in ROA' $ m.lcMesaj, 'OK', 'FAIL') DO PrLogLocal WITH ' combinatie: motiv GAMA ' + IIF('eroare: contul 628.01 nu exista' $ m.lcMesaj, 'OK', 'FAIL') DO PrLogLocal WITH ' combinatie: fara ALFA in bloc probleme ' + IIF(!('FDI 1234' $ m.lcMesaj), 'OK', 'FAIL') USE IN crsCoadaRaport toCoada.CreeazaRaport() FOR lnI = 1 TO 20 toCoada.AdaugaRaport(m.lnI, 'FF ' + TRANSFORM(m.lnI), 'FURNIZOR ' + TRANSFORM(m.lnI), 'SARIT', 'de completat: 1 cont') ENDFOR lcMesaj = toCoada.MesajRaport() DO PrLogLocal WITH ' plafon: "si inca 5" ' + IIF('si inca 5.' $ m.lcMesaj, 'OK', 'FAIL') DO PrLogLocal WITH ' plafon: contine FF 15 ' + IIF('FF 15' $ m.lcMesaj, 'OK', 'FAIL') DO PrLogLocal WITH ' plafon: nu contine FF 16 ' + IIF(!('FF 16 ' $ m.lcMesaj), 'OK', 'FAIL') USE IN crsCoadaRaport toCoada.CreeazaRaport() toCoada.AdaugaRaport(1, 'FF 1', 'ALFA SRL', 'OK', '') toCoada.AdaugaRaport(2, 'FF 2', 'BETA SRL', 'SARIT', 'de completat: 1 cont') toCoada.AdaugaRaport(0, '', '', 'OPRIT', 'operatorul a oprit coada cu ESC - 3 facturi bifate raman neprocesate') lcMesaj = toCoada.MesajRaport() DO PrLogLocal WITH ' oprit: obtinut=[' + m.lcMesaj + ']' DO PrLogLocal WITH ' oprit: "2 facturi" (fara randul OPRIT) ' + IIF('2 facturi' $ m.lcMesaj, 'OK', 'FAIL') DO PrLogLocal WITH ' oprit: motivul apare ' + IIF('operatorul a oprit coada cu ESC - 3 facturi bifate raman neprocesate' $ m.lcMesaj, 'OK', 'FAIL') USE IN crsCoadaRaport ENDPROC ********************************************************** PROCEDURE PrLogLocal LPARAMETERS tcMsg LOCAL lcL SET SAFETY OFF lcL = IIF(FILE(gcUILog), FILETOSTR(gcUILog), '') STRTOFILE(lcL + TRANSFORM(tcMsg) + CHR(13) + CHR(10), gcUILog) ENDPROC ********************************************************** PROCEDURE PrErrLocal LPARAMETERS tnError, tcMessage, tcProgram, tnLineNo DO PrLogLocal WITH 'EROARE ' + TRANSFORM(tnError) + ' ' + TRANSFORM(tcMessage) + ' in ' + TRANSFORM(tcProgram) + ' linia ' + TRANSFORM(tnLineNo) ENDPROC