* test_anulare_lot_ui.prg * Verifica ecranul de confirmare a anularii in bloc (frm_anulare_lot_efactura, * COMUN\clase\anaf_efactura.vc2): gridurile crsAcceptate/crsRefuzate se leaga, avertismentul * de risc e vizibil, butonul de confirmare e dezactivat cand lista de acceptate e goala, si * decizia (gnButon) se intoarce corect pentru ambele butoane. Fara Show(1) (modal): formularul * e creat cu WindowType=0 si butoanele sunt actionate direct (.Click()). * * Rulare: vfp9.exe -A -T "D:\ROA\ROACONT\COMUN\utile\Teste\efactura_import\test_anulare_lot_ui.prg" SET SAFETY OFF SET TALK OFF PUBLIC gcUILog gcUILog = "D:\ROA\ROACONT\COMUN\utile\Teste\efactura_import\test_anulare_lot_ui_log.txt" STRTOFILE("START " + TTOC(DATETIME()) + CHR(13) + CHR(10), gcUILog) SET DELETED ON SET EXACT ON SET CENTURY ON SET DATE DMY SET NULLDISPLAY TO '' CLOSE DATABASES ON ERROR DO PrErrLocal WITH ERROR(), MESSAGE(), PROGRAM(), LINENO() ON SHUTDOWN QUIT PUBLIC gnPass, gnFail gnPass = 0 gnFail = 0 TRY DO "D:\ROA\ROACONT\COMUN\utile\Teste\test_init_env_auto.prg" WITH 'CENTRAL', 'MARIUSM_AUTO', 'ROMFASTSOFT' IF gnHandle <= 0 DO PrLogLocal WITH 'FAIL: conectare Oracle esuata (gnHandle=' + TRANSFORM(gnHandle) + ')' QUIT ENDIF SET PROCEDURE TO anulare_lot_ef ADDITIVE DO PrLogLocal WITH 'mediu initializat, gnHandle=' + TRANSFORM(gnHandle) *========================================================================= DO PrLogLocal WITH '=== TEST 1: lista de acceptate goala -> griduri legate, avertisment vizibil, buton confirma dezactivat, Renunta intoarce gnButon=2 ===' DO CreeazaCursoareFixtura WITH .F. LOCAL loForm1 loForm1 = CREATEOBJECT('frm_anulare_lot_efactura') loForm1.WindowType = 0 DO TVerdict WITH TYPE('loForm1.grdAcceptate') = 'O', 'T1.1 grdAcceptate exista pe formular', TYPE('loForm1.grdAcceptate') DO TVerdict WITH TYPE('loForm1.grdRefuzate') = 'O', 'T1.2 grdRefuzate exista pe formular', TYPE('loForm1.grdRefuzate') DO TVerdict WITH UPPER(loForm1.grdAcceptate.RecordSource) == 'CRSACCEPTATE', 'T1.3 grdAcceptate legat pe crsAcceptate', loForm1.grdAcceptate.RecordSource DO TVerdict WITH UPPER(loForm1.grdRefuzate.RecordSource) == 'CRSREFUZATE', 'T1.4 grdRefuzate legat pe crsRefuzate', loForm1.grdRefuzate.RecordSource DO TVerdict WITH RECCOUNT('crsAcceptate') = 0, 'T1.5 crsAcceptate e gol (fixtura test)', TRANSFORM(RECCOUNT('crsAcceptate')) DO TVerdict WITH RECCOUNT('crsRefuzate') = 2, 'T1.6 crsRefuzate are cele 2 randuri fixtura', TRANSFORM(RECCOUNT('crsRefuzate')) DO TVerdict WITH !EMPTY(loForm1.lblAvertisment.Caption), 'T1.7 avertismentul de risc e vizibil (Caption ne-gol)', '[' + loForm1.lblAvertisment.Caption + ']' DO TVerdict WITH ('MODIFICATA' $ UPPER(loForm1.lblAvertisment.Caption)) AND ('DEPUS' $ UPPER(loForm1.lblAvertisment.Caption)), 'T1.8 avertismentul mentioneaza cele doua cazuri neverificabile automat', '[' + loForm1.lblAvertisment.Caption + ']' DO TVerdict WITH loForm1.lblAvertisment.Visible, 'T1.9 lblAvertisment.Visible = .T.', TRANSFORM(loForm1.lblAvertisment.Visible) DO TVerdict WITH !loForm1.cmdConfirma.Enabled, 'T1.10 butonul de confirmare e dezactivat (lista de acceptate goala)', TRANSFORM(loForm1.cmdConfirma.Enabled) gnButon = 0 loForm1.But_renunt1.Click() DO TVerdict WITH gnButon = 2, 'T1.11 click pe Renunta intoarce gnButon=2', TRANSFORM(gnButon) * But_renunt1.Click() a rulat deja do_renunt -> This.Release: formularul nu mai exista, nu se mai elibereaza inca o data *========================================================================= DO PrLogLocal WITH '=== TEST 2: lista de acceptate cu randuri -> buton confirma activ, Confirma anularea intoarce gnButon=1 ===' DO CreeazaCursoareFixtura WITH .T. LOCAL loForm2 loForm2 = CREATEOBJECT('frm_anulare_lot_efactura') loForm2.WindowType = 0 DO TVerdict WITH RECCOUNT('crsAcceptate') = 2, 'T2.1 crsAcceptate are cele 2 randuri fixtura', TRANSFORM(RECCOUNT('crsAcceptate')) DO TVerdict WITH loForm2.cmdConfirma.Enabled, 'T2.2 butonul de confirmare e activ (lista de acceptate nu e goala)', TRANSFORM(loForm2.cmdConfirma.Enabled) gnButon = 0 loForm2.cmdConfirma.Click() DO TVerdict WITH gnButon = 1, 'T2.3 click pe Confirma anularea intoarce gnButon=1', TRANSFORM(gnButon) * cmdConfirma.Click() a rulat deja do_termin -> This.Release: formularul nu mai exista, nu se mai elibereaza inca o data IF USED('crsAcceptate') USE IN (SELECT('crsAcceptate')) ENDIF IF USED('crsRefuzate') USE IN (SELECT('crsRefuzate')) ENDIF DO PrLogLocal WITH 'REZULTAT FINAL: PASS=' + TRANSFORM(gnPass) + ' FAIL=' + TRANSFORM(gnFail) DO PrLogLocal WITH IIF(gnFail = 0, 'TOTAL: test terminat OK', 'TOTAL: test terminat CU ESECURI') CATCH TO loEx DO PrLogLocal WITH 'EXCEPTIE: ' + loEx.Message + ' (' + TRANSFORM(loEx.LineNo) + ') ' + loEx.Procedure ENDTRY QUIT ********************************************************** * creeaza crsAcceptate/crsRefuzate cu structura AnulareLotEF.CreeazaCursoareGoale, umplute cu * randuri fabricate (fara Oracle) - tlCuAcceptate=.T. adauga 2 randuri in crsAcceptate PROCEDURE CreeazaCursoareFixtura LPARAMETERS tlCuAcceptate IF USED('crsAcceptate') USE IN (SELECT('crsAcceptate')) ENDIF CREATE CURSOR crsAcceptate (id_efactura N(20), id_fact N(20), cod N(15), an N(4), luna N(2), numar_act C(30), furnizor C(250), suma N(20,4)) IF tlCuAcceptate INSERT INTO crsAcceptate VALUES (1001, 5001, 96001, 2026, 9, 'TEST-FIX-1', 'FIXTURA UI ANULARE 1', 119.00) INSERT INTO crsAcceptate VALUES (1002, 5002, 96002, 2026, 9, 'TEST-FIX-2', 'FIXTURA UI ANULARE 2', 238.00) ENDIF IF USED('crsRefuzate') USE IN (SELECT('crsRefuzate')) ENDIF CREATE CURSOR crsRefuzate (id_efactura N(20), id_fact N(20), cod N(15), an N(4), luna N(2), numar_act C(30), furnizor C(250), suma N(20,4), motiv C(200)) INSERT INTO crsRefuzate VALUES (1003, 0, 0, 0, 0, 'TEST-FIX-3', 'FIXTURA UI ANULARE 3', 50.00, 'factura nu e importata in contabilitate (id_fact lipseste)') INSERT INTO crsRefuzate VALUES (1004, 5004, 96004, 2026, 9, 'TEST-FIX-4', 'FIXTURA UI ANULARE 4', 75.00, 'documentul are incasari/plati atasate - anuleaza manual nota 96004 din registrul jurnal') ENDPROC ********************************************************** PROCEDURE TVerdict LPARAMETERS tlOk, tcNume, tcDetalii IF tlOk gnPass = gnPass + 1 ELSE gnFail = gnFail + 1 ENDIF DO PrLogLocal WITH IIF(tlOk, 'PASS ', 'FAIL ') + tcNume + ' | ' + TRANSFORM(tcDetalii) 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