* test_todo21_grid_dblclick.prg * TODO #21, benzile A (coloanele de perioada in grid-ul de verificare coduri fiscale, inclusiv * coloana calculata cPerioadaTva) si D (meniul unic de dublu-click, vederi de grid, coloana Ales * conditionata). Instantiaza DIRECT frm_verificare_parteneri (COMUN\clase\overificari.vc2), fara * Show(1) modal - cursorul crsVerificareParteneri e construit ca in oproceduri_comune.prg * (verificare_parteneri), fara sa treaca prin acea procedura (care ar deschide formularul modal). * * Reproiectare: TOATE coloanele grid-ului cheama acum meniu_dblclick (nu mai exista rutare directa * pe Column2/3 vs Column5/6); prima optiune a meniului ("MODIFICARE PARTENER - ") vine * prin optiuni_meniu_ante, deci prin VerificaCodFiscal, care ar deschide XMENU (agata headless-ul) - * de-asta VerificaCodFiscal e mock-uita (mock_meniu_dblclick_deps.prg), nu apelata real. * * Mock-uri (fisiere DIFERITE de overificari.vc2 - rezolutia "primul incarcat" e sigura): * mock_amessagebox.prg - dialogul "partener neidentificat" * mock_meniu_dblclick_deps.prg - nom_parteneri_modifica, VerificaCodFiscal (numara apelurile, * captureaza optiuni_meniu_ante, controleaza @lnOptiune intors) * * Banda G (continutul coloanei atentie): do_verifica face verificare ANAF reala (nu se poate * controla ce raspunde ANAF), deci nu se pot fabrica exact cele 4 texte pe randurile reale - se * verifica doar BUCATA care umple atentie (COMUN\clase\overificari.vc2:2992-2996), copiata LITERAL * si rulata pe randuri fabricate distincte, fara alt apel la do_verifica. * * Banda H: chkANAF si chkExperimental au disparut ca obiecte din formular (do_verifica are acum * llServiciuWebANAF constant .T.; modul experimental e citit din proprietatea lExperimental, nu * dintr-un control) - se verifica ca lExperimental reflecta al 5-lea parametru la Init, nu o * valoare hardcodata (regresie deja prinsa o data). chkMFIN ramane ca obiect (doar Visible=.F.). * * Coduri de test: un cod fiscal REAL cu perioada ANAF (ales dinamic din istoric_coduri_fiscale, * ca in test_todo21_perioade_anaf.prg) si un partener REAL din NOM_PARTENERI (ales dinamic, cel * mai nou activ), plus randuri fabricate pentru meniu_dblclick/atentie. * * Rulare: vfp9.exe -A -T "D:\ROA\ROACONT\COMUN\utile\Teste\todo21\test_todo21_grid_dblclick.prg" * Verdict in log: TOTAL OK / TOTAL FAIL: n pas(i). SET SAFETY OFF SET TALK OFF SET DELETED ON SET EXACT ON SET CENTURY ON SET DATE DMY SET NULLDISPLAY TO '' CLOSE DATABASES PUBLIC gcLog gcLog = "D:\ROA\ROACONT\COMUN\utile\Teste\todo21\test_todo21_grid_dblclick_log.txt" STRTOFILE("START " + TTOC(DATETIME()) + CHR(13) + CHR(10), gcLog) PUBLIC gnEsecuri gnEsecuri = 0 ON ERROR DO PrErr WITH ERROR(), MESSAGE(), PROGRAM(), LINENO() ON SHUTDOWN QUIT PUBLIC gcMockUltimMesaj, gnMockUltimTip, gnMockRaspuns gcMockUltimMesaj = '' gnMockUltimTip = 0 gnMockRaspuns = 6 PUBLIC gnMockNomModCount, gnMockNomModId, gnMockVerifCodCount, gcMockVerifCodOptiuniAnte, gnMockVerifCodLnOptiune gnMockNomModCount = 0 gnMockNomModId = 0 gnMockVerifCodCount = 0 gcMockVerifCodOptiuniAnte = '' gnMockVerifCodLnOptiune = 0 TRY SET PROCEDURE TO "D:\ROA\ROACONT\COMUN\utile\Teste\mock_amessagebox.prg" ADDITIVE SET PROCEDURE TO "D:\ROA\ROACONT\COMUN\utile\Teste\todo21\mock_meniu_dblclick_deps.prg" ADDITIVE DO PrLog WITH 'mock-uri incarcate' DO "D:\ROA\ROACONT\COMUN\utile\Teste\test_init_env_auto.prg" WITH 'CENTRAL', 'MARIUSM_AUTO', 'ROMFASTSOFT' IF gnHandle <= 0 DO PrLog WITH 'FAIL: conectare Oracle esuata (gnHandle=' + TRANSFORM(gnHandle) + ')' gnEsecuri = gnEsecuri + 1 DO PrLog WITH 'TOTAL FAIL: ' + TRANSFORM(gnEsecuri) + ' pas(i)' QUIT ENDIF DO PrLog WITH 'mediu OK, schema=' + gcS *-- cod fiscal real cu perioada ANAF, pentru banda A2 (do_verifica) LOCAL lcSql, lcCodAnaf TEXT TO lcSql NOSHOW select cod_fiscal_n from ( select cod_fiscal_n from istoric_coduri_fiscale where (data_inceput_tvainc is not null or data_inactivare is not null) and cod_fiscal_n is not null order by dataorav_anaf desc) where rownum <= 1 ENDTEXT lcCodAnaf = '' IF goExecutor.oExecuta(lcSql, 'crsGD1') AND USED('crsGD1') AND RECCOUNT('crsGD1') > 0 lcCodAnaf = ALLTRIM(TRANSFORM(NVL(crsGD1.cod_fiscal_n, 0))) ENDIF USE IN (SELECT('crsGD1')) DO PrLog WITH 'cod fiscal ANAF de test: [' + lcCodAnaf + ']' *-- partener real activ, pentru banda D (meniu_dblclick -> editare partener) LOCAL lnIdPartTest, lcCodFiscalPart, lcDenumirePart TEXT TO lcSql NOSHOW select id_part, cod_fiscal, denumire from ( select id_part, cod_fiscal, denumire from nom_parteneri where nvl(inactiv,0) = 0 and nvl(sters,0) = 0 and not cod_fiscal is null order by id_part desc) where rownum <= 1 ENDTEXT lnIdPartTest = 0 lcCodFiscalPart = '' lcDenumirePart = '' IF goExecutor.oExecuta(lcSql, 'crsGD2') AND USED('crsGD2') AND RECCOUNT('crsGD2') > 0 lnIdPartTest = NVL(crsGD2.id_part, 0) lcCodFiscalPart = ALLTRIM(NVL(crsGD2.cod_fiscal, '')) lcDenumirePart = ALLTRIM(NVL(crsGD2.denumire, '')) ENDIF USE IN (SELECT('crsGD2')) DO PrLog WITH 'partener de test: id_part=' + TRANSFORM(lnIdPartTest) + ' cod=[' + lcCodFiscalPart + '] denumire=[' + lcDenumirePart + ']' IF EMPTY(lcCodAnaf) OR lnIdPartTest = 0 DO PrLog WITH 'FAIL: nu s-au gasit date de test (cod fiscal ANAF sau partener activ)' gnEsecuri = gnEsecuri + 1 ENDIF *-- cursorul EXACT ca in oproceduri_comune.prg:4584 (verificare_parteneri), fara sa apelam *-- acea procedura (Show(1) modal) - Load-ul formularului adauga singur cele 7 campuri noi CREATE CURSOR crsVerificareParteneri (ales L, denumire C(100) NULL, cod_fiscal C(30) NULL, Valid L NULL, ; firma C(100) NULL, cod C(100) NULL, adresa_roa C(250) NULL, adresa C(250) NULL, ; judet C(100) NULL, regcom C(30) NULL, codpostal C(20) NULL, telefon C(30) NULL, fax C(30) NULL, ; datatvamfin C(30) NULL, platitortvamfin L NULL, VIES L NULL, PlatitorTVA L NULL, eroare C(250) NULL, ; IsCIF L NULL, duplicat L, atribut_fiscal C(2), stare C(100), atentie C(100), cod_fiscalfro C(30) NULL, ; id_part N(16), tvaincasare L, splittva L, inactiv L, Data D) INSERT INTO crsVerificareParteneri (denumire, cod_fiscal, id_part) VALUES ('TEST ANAF PERIOADA', lcCodAnaf, 0) INSERT INTO crsVerificareParteneri (denumire, cod_fiscal, id_part) VALUES (lcDenumirePart, lcCodFiscalPart, lnIdPartTest) INSERT INTO crsVerificareParteneri (denumire, cod_fiscal, id_part) VALUES ('TEST FARA ID_PART', 'RO9999999', 0) *-- randul D1c: denumire cu ';' - trebuie inlocuit cu ',' ca sa nu sparga sirul XMENU INSERT INTO crsVerificareParteneri (denumire, cod_fiscal, id_part) VALUES ('TEST; CU PUNCT VIRGULA', 'RO8888888', 777) UPDATE crsVerificareParteneri SET IsCIF = .T. GO TOP *===================================================================== * Banda F: coloana Ales (Column1) - conditionata de al 7-lea parametru la Init *===================================================================== LOCAL loFormAles loFormAles = CREATEOBJECT('frm_verificare_parteneri', .F., .T., .F., .F., .F., .T.) loFormAles.WindowType = 0 IF !loFormAles._grdbase1.Column1.Visible DO PrLog WITH 'OK F1: Column1 (Ales) ascunsa cu 6 parametri (implicit, fara al 7-lea)' ELSE DO PrLog WITH 'FAIL F1: Column1 (Ales) vizibila desi formularul a primit doar 6 parametri' gnEsecuri = gnEsecuri + 1 ENDIF loFormAles.Release() loFormAles = CREATEOBJECT('frm_verificare_parteneri', .F., .T., .F., .F., .F., .T., .T.) loFormAles.WindowType = 0 IF loFormAles._grdbase1.Column1.Visible DO PrLog WITH 'OK F2: Column1 (Ales) vizibila cu al 7-lea parametru .T.' ELSE DO PrLog WITH 'FAIL F2: Column1 (Ales) ramane ascunsa desi al 7-lea parametru e .T.' gnEsecuri = gnEsecuri + 1 ENDIF loFormAles.Release() PUBLIC goFormGD goFormGD = CREATEOBJECT('frm_verificare_parteneri', .F., .T., .F., .F., .F., .T.) goFormGD.WindowType = 0 goFormGD.Show() DOEVENTS FORCE DO PrLog WITH 'formular instantiat, lMFIN=' + TRANSFORM(goFormGD.lMFIN) *===================================================================== * Banda H: chkANAF/chkExperimental/chkMFIN au disparut ca obiecte; lExperimental (proprietate) trebuie *-- sa reflecte al 5-lea parametru la Init, nu o valoare hardcodata *===================================================================== IF goFormGD.lExperimental = .F. DO PrLog WITH 'OK H1: tlExperimental=.F. (al 5-lea parametru) -> lExperimental=.F.' ELSE DO PrLog WITH 'FAIL H1: lExperimental=' + TRANSFORM(goFormGD.lExperimental) + ' asteptat .F.' gnEsecuri = gnEsecuri + 1 ENDIF LOCAL loFormExp loFormExp = CREATEOBJECT('frm_verificare_parteneri', .F., .T., .F., .F., .T., .T.) loFormExp.WindowType = 0 IF loFormExp.lExperimental = .T. DO PrLog WITH 'OK H2: tlExperimental=.T. (al 5-lea parametru) -> lExperimental=.T.' ELSE DO PrLog WITH 'FAIL H2: lExperimental=' + TRANSFORM(loFormExp.lExperimental) + ' asteptat .T. (nu mai e hardcodat pe .F.)' gnEsecuri = gnEsecuri + 1 ENDIF loFormExp.Release() *===================================================================== * Banda A: cele 7 coloane de perioada ANAF din grid (34 in total; coloana calculata * cPerioadaTva a fost scoasa - vederea Esential arata doua coloane de date, nu un text lung) *===================================================================== IF goFormGD._grdbase1.ColumnCount = 34 DO PrLog WITH 'OK A1: _grdbase1.ColumnCount = 34' ELSE DO PrLog WITH 'FAIL A1: ColumnCount = ' + TRANSFORM(goFormGD._grdbase1.ColumnCount) + ' (asteptat 34)' gnEsecuri = gnEsecuri + 1 ENDIF IF !PEMSTATUS(goFormGD._grdbase1, 'cPerioadaTva', 5) DO PrLog WITH 'OK A1b: coloana calculata cPerioadaTva a fost scoasa din grid' ELSE DO PrLog WITH 'FAIL A1b: cPerioadaTva inca exista in grid' gnEsecuri = gnEsecuri + 1 ENDIF *-- coloanele redenumite sunt membri ai grid-ului dupa Name (cDataInceputScpTva...), nu dupa *-- pozitia Column28..Column34 - VFP adreseaza obiectul din container dupa Name, nu dupa pozitie LOCAL laCol[7,2], lnI, lcNume, lcSrc, llColOk laCol[1,1] = 'cDataInceputScpTva' laCol[1,2] = 'data_inceput_scptva' laCol[2,1] = 'cDataSfarsitScpTva' laCol[2,2] = 'data_sfarsit_scptva' laCol[3,1] = 'cDataAnulImpScpTva' laCol[3,2] = 'data_anul_imp_scptva' laCol[4,1] = 'cDataInceputTvaInc' laCol[4,2] = 'data_inceput_tvainc' laCol[5,1] = 'cDataSfarsitTvaInc' laCol[5,2] = 'data_sfarsit_tvainc' laCol[6,1] = 'cDataInactivare' laCol[6,2] = 'data_inactivare' laCol[7,1] = 'cDataReactivare' laCol[7,2] = 'data_reactivare' llColOk = .T. FOR lnI = 1 TO 7 lcNume = laCol[lnI, 1] IF !PEMSTATUS(goFormGD._grdbase1, lcNume, 5) llColOk = .F. DO PrLog WITH 'FAIL A3: coloana ' + lcNume + ' nu exista ca membru al _grdbase1' LOOP ENDIF lcSrc = LOWER(EVALUATE('goFormGD._grdbase1.' + lcNume + '.ControlSource')) IF !('crsverificareparteneri.' + laCol[lnI, 2] $ lcSrc) llColOk = .F. DO PrLog WITH 'FAIL A3: ' + lcNume + ' ControlSource=[' + lcSrc + '] asteptat crsverificareparteneri.' + laCol[lnI, 2] ENDIF ENDFOR IF llColOk DO PrLog WITH 'OK A3: cele 7 coloane noi exista pe binarul curent, cu ControlSource corect' ELSE gnEsecuri = gnEsecuri + 1 ENDIF *-- do_verifica: llServiciuWebANAF e acum constanta .T. in cod (overificari.vc2:2808) -> ramura serviciu web ANAF (banda A2) goFormGD.do_verifica(.F., .T., .F.) DO PrLog WITH 'do_verifica rulat (tlValidare=.F. tlMFIN=.T. tlVIES=.F.)' SELECT crsVerificareParteneri LOCATE FOR cod_fiscal = lcCodAnaf IF FOUND() LOCAL llArePerioada llArePerioada = !EMPTY(crsVerificareParteneri.data_inceput_scptva) OR ; !EMPTY(crsVerificareParteneri.data_inceput_tvainc) OR ; !EMPTY(crsVerificareParteneri.data_inactivare) IF llArePerioada DO PrLog WITH 'OK A2: do_verifica a completat cel putin o perioada pentru ' + lcCodAnaf ELSE DO PrLog WITH 'FAIL A2: nicio perioada completata pentru ' + lcCodAnaf + ' dupa do_verifica' gnEsecuri = gnEsecuri + 1 ENDIF DO PrLog WITH ' scpTVA ' + DTOC(crsVerificareParteneri.data_inceput_scptva) + '-' + DTOC(crsVerificareParteneri.data_sfarsit_scptva) + ; ' tvaInc ' + DTOC(crsVerificareParteneri.data_inceput_tvainc) + '-' + DTOC(crsVerificareParteneri.data_sfarsit_tvainc) + ; ' inactiv ' + DTOC(crsVerificareParteneri.data_inactivare) + ' reactivat ' + DTOC(crsVerificareParteneri.data_reactivare) ELSE DO PrLog WITH 'FAIL A2: randul de test ' + lcCodAnaf + ' nu mai exista in cursor' gnEsecuri = gnEsecuri + 1 ENDIF *===================================================================== * Banda D: meniu_dblclick unic pe toate coloanele (nu mai exista rutare directa pe coloana) *===================================================================== *-- D1a: partener cu id_part - prima optiune activa, cu denumirea lui SELECT crsVerificareParteneri LOCATE FOR id_part = lnIdPartTest gcMockVerifCodOptiuniAnte = '' gnMockVerifCodLnOptiune = 0 goFormGD._grdbase1.Column2.Text1.DblClick() IF gcMockVerifCodOptiuniAnte == "MODIFICARE PARTENER - " + lcDenumirePart + ";\-;" DO PrLog WITH 'OK D1a: Column2 DblClick -> optiuni_meniu_ante = [MODIFICARE PARTENER - ;\-;]' ELSE DO PrLog WITH 'FAIL D1a: optiuni_meniu_ante=[' + gcMockVerifCodOptiuniAnte + ']' gnEsecuri = gnEsecuri + 1 ENDIF *-- coloana ANAF (firma) cheama ACELASI meniu_dblclick - nu mai exista rutare separata gcMockVerifCodOptiuniAnte = '' goFormGD._grdbase1.Column5.Text1.DblClick() IF gcMockVerifCodOptiuniAnte == "MODIFICARE PARTENER - " + lcDenumirePart + ";\-;" DO PrLog WITH 'OK D1a2: Column5 (firma ANAF) DblClick -> acelasi meniu_dblclick unificat' ELSE DO PrLog WITH 'FAIL D1a2: optiuni_meniu_ante=[' + gcMockVerifCodOptiuniAnte + '] - coloana ANAF nu mai e unificata cu restul' gnEsecuri = gnEsecuri + 1 ENDIF *-- D1b: fara id_part - prima optiune dezactivata (prefix \) SELECT crsVerificareParteneri LOCATE FOR cod_fiscal = 'RO9999999' gcMockVerifCodOptiuniAnte = '' goFormGD._grdbase1.Column2.Text1.DblClick() IF gcMockVerifCodOptiuniAnte == "\MODIFICARE PARTENER - TEST FARA ID_PART;\-;" DO PrLog WITH 'OK D1b: fara id_part -> prima optiune dezactivata cu \' ELSE DO PrLog WITH 'FAIL D1b: optiuni_meniu_ante=[' + gcMockVerifCodOptiuniAnte + ']' gnEsecuri = gnEsecuri + 1 ENDIF *-- D1c: ';' din denumire devine ',' - altfel ar sparge sirul XMENU SELECT crsVerificareParteneri LOCATE FOR cod_fiscal = 'RO8888888' gcMockVerifCodOptiuniAnte = '' goFormGD._grdbase1.Column2.Text1.DblClick() IF gcMockVerifCodOptiuniAnte == "MODIFICARE PARTENER - TEST, CU PUNCT VIRGULA;\-;" DO PrLog WITH 'OK D1c: ";" din denumire e inlocuit cu "," in optiuni_meniu_ante' ELSE DO PrLog WITH 'FAIL D1c: optiuni_meniu_ante=[' + gcMockVerifCodOptiuniAnte + ']' gnEsecuri = gnEsecuri + 1 ENDIF *-- D2: lnOptiune = 1 (prima optiune aleasa) -> meniu_dblclick_partener -> nom_parteneri_modifica SELECT crsVerificareParteneri LOCATE FOR id_part = lnIdPartTest gnMockVerifCodLnOptiune = 1 gnMockNomModCount = 0 gnMockNomModId = 0 goFormGD._grdbase1.Column2.Text1.DblClick() IF gnMockNomModCount = 1 AND gnMockNomModId = lnIdPartTest DO PrLog WITH 'OK D2: lnOptiune=1 -> meniu_dblclick_partener -> nom_parteneri_modifica(' + TRANSFORM(lnIdPartTest) + ')' ELSE DO PrLog WITH 'FAIL D2: nom_mod count=' + TRANSFORM(gnMockNomModCount) + ' id=' + TRANSFORM(gnMockNomModId) gnEsecuri = gnEsecuri + 1 ENDIF *-- D2b: orice alta optiune (ex. 7 = anulat/alta actiune din meniul de verificare) -> NU editeaza partenerul gnMockVerifCodLnOptiune = 7 gnMockNomModCount = 0 goFormGD._grdbase1.Column2.Text1.DblClick() IF gnMockNomModCount = 0 DO PrLog WITH 'OK D2b: lnOptiune<>1 -> nu se cheama meniu_dblclick_partener' ELSE DO PrLog WITH 'FAIL D2b: nom_mod count=' + TRANSFORM(gnMockNomModCount) + ' desi lnOptiune=7' gnEsecuri = gnEsecuri + 1 ENDIF *-- D3: id_part gol + lnOptiune=1 -> mesaj de avertizare, fara editare partener (fostul C5) SELECT crsVerificareParteneri LOCATE FOR cod_fiscal = 'RO9999999' gnMockVerifCodLnOptiune = 1 gnMockNomModCount = 0 gcMockUltimMesaj = '' goFormGD._grdbase1.Column2.Text1.DblClick() IF gnMockNomModCount = 0 AND 'nu poate fi identificat' $ LOWER(gcMockUltimMesaj) DO PrLog WITH 'OK D3: id_part gol -> mesaj de avertizare, fara editare partener' ELSE DO PrLog WITH 'FAIL D3: nom_mod count=' + TRANSFORM(gnMockNomModCount) + ' mesaj=[' + gcMockUltimMesaj + ']' gnEsecuri = gnEsecuri + 1 ENDIF *===================================================================== * Banda E: SetVedere(1/2/3) - coloane vizibile si suma latimilor *===================================================================== LOCAL lnV, lnC, lnSuma, lcVizibile FOR lnV = 1 TO 3 goFormGD.SetVedere(m.lnV) lnSuma = 0 lcVizibile = '' FOR lnC = 1 TO goFormGD._grdbase1.ColumnCount IF goFormGD._grdbase1.Columns(m.lnC).Visible lnSuma = lnSuma + goFormGD._grdbase1.Columns(m.lnC).Width lcVizibile = lcVizibile + goFormGD._grdbase1.Columns(m.lnC).Name + '(' + TRANSFORM(goFormGD._grdbase1.Columns(m.lnC).Width) + ') ' ENDIF ENDFOR DO PrLog WITH 'Vedere ' + TRANSFORM(m.lnV) + ': suma latimi=' + TRANSFORM(m.lnSuma) + ' px, coloane vizibile: ' + m.lcVizibile IF m.lnV = 1 IF m.lnSuma <= goFormGD._grdbase1.Width DO PrLog WITH 'OK E1: vedere Esential, suma latimilor (' + TRANSFORM(m.lnSuma) + ') <= ' + TRANSFORM(goFormGD._grdbase1.Width) + ' px (latimea reala a gridului)' ELSE DO PrLog WITH 'FAIL E1: vedere Esential depaseste latimea gridului - suma=' + TRANSFORM(m.lnSuma) + ' px > ' + TRANSFORM(goFormGD._grdbase1.Width) + ' px' gnEsecuri = gnEsecuri + 1 ENDIF ENDIF ENDFOR *-- E2: in vederea Esential perioada de TVA se vede pe doua coloane de data, nu ca text lung goFormGD.SetVedere(1) IF goFormGD._grdbase1.cDataInceputScpTva.Visible AND goFormGD._grdbase1.cDataSfarsitScpTva.Visible ; AND goFormGD._grdbase1.cDataAnulImpScpTva.Visible DO PrLog WITH 'OK E2: vederea Esential arata Inceput / Sfarsit / Anulare TVA ca trei coloane' ELSE DO PrLog WITH 'FAIL E2: vederea Esential nu arata cele trei coloane de perioada TVA' gnEsecuri = gnEsecuri + 1 ENDIF *===================================================================== * Banda I: AsazaFiltre - butoanele de filtru au caption cu numar, deci latime variabila; * trebuie asezate unul dupa altul, fara suprapunere, oricat de lung ar fi textul *===================================================================== LOCAL laFil[4], lnF, llSupra, lcPoz goFormGD.chkInvalid.Caption = 'Coduri invalide (12345)' goFormGD.chkDuplicat.Caption = 'Duplicate (12345)' goFormGD.chkInactiv.Caption = 'Inactivi (12345)' goFormGD.chkPlatitor.Caption = 'Atribut RO (12345)' goFormGD.chkInvalid.Visible = .T. goFormGD.chkDuplicat.Visible = .T. goFormGD.chkInactiv.Visible = .T. goFormGD.chkPlatitor.Visible = .T. goFormGD.AsazaFiltre() laFil[1] = goFormGD.chkInvalid laFil[2] = goFormGD.chkDuplicat laFil[3] = goFormGD.chkInactiv laFil[4] = goFormGD.chkPlatitor llSupra = .F. lcPoz = '' FOR lnF = 1 TO 4 lcPoz = lcPoz + ALLTRIM(laFil[m.lnF].Caption) + ' [' + TRANSFORM(laFil[m.lnF].Left) + '..' + ; TRANSFORM(laFil[m.lnF].Left + laFil[m.lnF].Width) + '] ' IF m.lnF > 1 AND laFil[m.lnF].Left < laFil[m.lnF - 1].Left + laFil[m.lnF - 1].Width llSupra = .T. ENDIF ENDFOR DO PrLog WITH ' filtre: ' + m.lcPoz IF !llSupra DO PrLog WITH 'OK I1: butoanele de filtru nu se suprapun dupa AsazaFiltre' ELSE DO PrLog WITH 'FAIL I1: butoanele de filtru se suprapun' gnEsecuri = gnEsecuri + 1 ENDIF *-- I2: chkMFIN a disparut ca obiect; ramane proprietatea lMFIN, setata din al 2-lea parametru IF !PEMSTATUS(goFormGD, 'chkMFIN', 5) AND goFormGD.lMFIN = .T. DO PrLog WITH 'OK I2: chkMFIN a fost scos, lMFIN = .T. (al 2-lea parametru la Init)' ELSE DO PrLog WITH 'FAIL I2: chkMFIN inca exista sau lMFIN=' + TRANSFORM(goFormGD.lMFIN) + ' (asteptat .T.)' gnEsecuri = gnEsecuri + 1 ENDIF *===================================================================== * Banda G: continutul coloanei atentie - metoda reala ConstruiesteAtentie (COMUN\clase\overificari.vc2), * apelata real, pe randuri fabricate, fara ANAF *===================================================================== INSERT INTO crsVerificareParteneri (denumire, Valid, duplicat, inactiv, firma, atribut_fiscal, platitortvamfin) ; VALUES ('ATN INVALID', .F., .F., .F., '', '', .F.) INSERT INTO crsVerificareParteneri (denumire, Valid, duplicat, inactiv, firma, atribut_fiscal, platitortvamfin) ; VALUES ('ATN DUPLICAT', .T., .T., .F., '', '', .F.) INSERT INTO crsVerificareParteneri (denumire, Valid, duplicat, inactiv, firma, atribut_fiscal, platitortvamfin) ; VALUES ('ATN INACTIV', .T., .F., .T., '', '', .F.) INSERT INTO crsVerificareParteneri (denumire, Valid, duplicat, inactiv, firma, atribut_fiscal, platitortvamfin) ; VALUES ('ATN FARARO', .T., .F., .F., 'FIRMA TEST SRL', 'RO', .F.) INSERT INTO crsVerificareParteneri (denumire, Valid, duplicat, inactiv, firma, atribut_fiscal, platitortvamfin) ; VALUES ('ATN COMBO', .T., .T., .T., 'FIRMA COMBO SRL', '', .T.) goFormGD.ConstruiesteAtentie() LOCAL laAtn[5,2] laAtn[1,1] = 'ATN INVALID' laAtn[1,2] = 'INVALID' laAtn[2,1] = 'ATN DUPLICAT' laAtn[2,2] = 'DUPLICAT' laAtn[3,1] = 'ATN INACTIV' laAtn[3,2] = 'INACTIV' laAtn[4,1] = 'ATN FARARO' laAtn[4,2] = 'FARA RO' laAtn[5,1] = 'ATN COMBO' laAtn[5,2] = 'DUPLICAT INACTIV FARA RO' LOCAL lnG FOR lnG = 1 TO 5 SELECT crsVerificareParteneri LOCATE FOR denumire = laAtn[m.lnG, 1] IF FOUND() AND ALLTRIM(crsVerificareParteneri.atentie) == laAtn[m.lnG, 2] DO PrLog WITH 'OK G' + TRANSFORM(m.lnG) + ': ' + laAtn[m.lnG, 1] + ' -> atentie=[' + laAtn[m.lnG, 2] + ']' ELSE DO PrLog WITH 'FAIL G' + TRANSFORM(m.lnG) + ': ' + laAtn[m.lnG, 1] + ' -> atentie=[' + ALLTRIM(crsVerificareParteneri.atentie) + '] asteptat [' + laAtn[m.lnG, 2] + ']' gnEsecuri = gnEsecuri + 1 ENDIF ENDFOR goFormGD.Release() DO PrLog WITH IIF(gnEsecuri = 0, 'TOTAL OK', 'TOTAL FAIL: ' + TRANSFORM(gnEsecuri) + ' pas(i)') CATCH TO loEx DO PrLog WITH 'EXCEPTIE: ' + loEx.Message + ' (' + TRANSFORM(loEx.LineNo) + ') ' + loEx.Procedure DO PrLog WITH 'TOTAL FAIL: exceptie neasteptata' ENDTRY QUIT ********************************************************** PROCEDURE PrLog LPARAMETERS tcMsg LOCAL lcL SET SAFETY OFF lcL = IIF(FILE(gcLog), FILETOSTR(gcLog), '') STRTOFILE(lcL + TRANSFORM(tcMsg) + CHR(13) + CHR(10), gcLog) ENDPROC ********************************************************** PROCEDURE PrErr LPARAMETERS tnError, tcMessage, tcProgram, tnLineNo DO PrLog WITH 'EROARE ' + TRANSFORM(tnError) + ' ' + TRANSFORM(tcMessage) + ' in ' + TRANSFORM(tcProgram) + ' linia ' + TRANSFORM(tnLineNo) ENDPROC