* test_todo21_grid_dblclick.prg * TODO #21, benzile A (coloanele de perioada in grid-ul de verificare coduri fiscale) si C * (dublu-click pe denumire/cod fiscal ROA -> editare partener, coloanele ANAF raman pe verificare). * 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). * * 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 si VerificaCodFiscal (numara apelurile) * * 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 un rand cu id_part = 0 pentru cazul "partener neidentificat". * * 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 gnMockNomModCount = 0 gnMockNomModId = 0 gnMockVerifCodCount = 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 C (dublu-click -> 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) UPDATE crsVerificareParteneri SET IsCIF = .T. GO TOP 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, chkANAF=' + TRANSFORM(goFormGD.chkANAF.Value) *===================================================================== * Banda A: grid cu 34 coloane (era 27), cele 7 noi legate pe cursorul real *===================================================================== 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 *-- 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 cu chkANAF fortat .T. in Init -> 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 C: dublu-click pe coloanele ROA (denumire/cod fiscal) -> editare partener; * coloanele ANAF (firma/cod) raman pe meniul de verificare *===================================================================== SELECT crsVerificareParteneri LOCATE FOR id_part = lnIdPartTest gnMockNomModCount = 0 gnMockNomModId = 0 gnMockVerifCodCount = 0 goFormGD._grdbase1.Column2.Text1.DblClick() IF gnMockNomModCount = 1 AND gnMockNomModId = lnIdPartTest AND gnMockVerifCodCount = 0 DO PrLog WITH 'OK C1: dublu-click Column2 (denumire) -> nom_parteneri_modifica(' + TRANSFORM(lnIdPartTest) + ')' ELSE DO PrLog WITH 'FAIL C1: Column2 DblClick - nom_mod count=' + TRANSFORM(gnMockNomModCount) + ' id=' + TRANSFORM(gnMockNomModId) + ' verifcod count=' + TRANSFORM(gnMockVerifCodCount) gnEsecuri = gnEsecuri + 1 ENDIF gnMockNomModCount = 0 gnMockNomModId = 0 gnMockVerifCodCount = 0 goFormGD._grdbase1.Column3.Text1.DblClick() IF gnMockNomModCount = 1 AND gnMockNomModId = lnIdPartTest AND gnMockVerifCodCount = 0 DO PrLog WITH 'OK C2: dublu-click Column3 (cod fiscal ROA) -> nom_parteneri_modifica(' + TRANSFORM(lnIdPartTest) + ')' ELSE DO PrLog WITH 'FAIL C2: Column3 DblClick - nom_mod count=' + TRANSFORM(gnMockNomModCount) + ' id=' + TRANSFORM(gnMockNomModId) + ' verifcod count=' + TRANSFORM(gnMockVerifCodCount) gnEsecuri = gnEsecuri + 1 ENDIF gnMockNomModCount = 0 gnMockVerifCodCount = 0 goFormGD._grdbase1.Column5.Text1.DblClick() IF gnMockVerifCodCount = 1 AND gnMockNomModCount = 0 DO PrLog WITH 'OK C3: dublu-click Column5 (firma ANAF) -> VerificaCodFiscal, fara editare partener' ELSE DO PrLog WITH 'FAIL C3: Column5 DblClick - verifcod count=' + TRANSFORM(gnMockVerifCodCount) + ' nom_mod count=' + TRANSFORM(gnMockNomModCount) gnEsecuri = gnEsecuri + 1 ENDIF gnMockNomModCount = 0 gnMockVerifCodCount = 0 goFormGD._grdbase1.Column6.Text1.DblClick() IF gnMockVerifCodCount = 1 AND gnMockNomModCount = 0 DO PrLog WITH 'OK C4: dublu-click Column6 (cod ANAF) -> VerificaCodFiscal, fara editare partener' ELSE DO PrLog WITH 'FAIL C4: Column6 DblClick - verifcod count=' + TRANSFORM(gnMockVerifCodCount) + ' nom_mod count=' + TRANSFORM(gnMockNomModCount) gnEsecuri = gnEsecuri + 1 ENDIF *-- id_part gol -> mesaj de avertizare, fara editare partener SELECT crsVerificareParteneri LOCATE FOR cod_fiscal = 'RO9999999' gnMockNomModCount = 0 gcMockUltimMesaj = '' goFormGD._grdbase1.Column2.Text1.DblClick() IF gnMockNomModCount = 0 AND 'nu poate fi identificat' $ LOWER(gcMockUltimMesaj) DO PrLog WITH 'OK C5: id_part gol -> mesaj de avertizare, fara editare partener' ELSE DO PrLog WITH 'FAIL C5: id_part gol - nom_mod count=' + TRANSFORM(gnMockNomModCount) + ' mesaj=[' + gcMockUltimMesaj + ']' gnEsecuri = gnEsecuri + 1 ENDIF 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