Files
comun/utile/Teste/todo21/test_todo21_grid_dblclick.prg
2026-08-23 10:29:05 +03:00

502 lines
22 KiB
Plaintext

* 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 - <denumire>") 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 - <denumire>;\-;]'
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