197 lines
7.8 KiB
Plaintext
197 lines
7.8 KiB
Plaintext
* test_chk_amort_introducere.prg
|
|
* Test headless pentru "bifa amortizare maxim deductibila la introducere imobilizare
|
|
* corporala" (frm_introducere din Clase\oimobilizari.vc2).
|
|
*
|
|
* Verifica:
|
|
* 1) formularul frm_introducere se instantiaza fara eroare (obiectul chk_amort_max_deductibil
|
|
* e adaugat corect, metoda .Valid se leaga)
|
|
* 2) la introducere noua (tnTipModificare=1): bifa NEACTIVA, campul read-only, valoarea NULL
|
|
* (toata amortizarea deductibila)
|
|
* 3) activarea bifei -> campul devine editabil, valoarea 0; dezactivarea -> NULL din nou
|
|
* 4) expresia de salvare pcAmortMaxDeductibil -> 'NULL' la debifat / valoarea la bifat
|
|
*
|
|
* Rulare: vfp9.exe -A -T "test_chk_amort_introducere.prg"
|
|
* (DO test_init_env_auto_roaimob din acelasi folder, cu DSN CENTRAL / schema MARIUSM_AUTO)
|
|
* Verdict in test_chk_amort_introducere_log.txt (langa acest fisier).
|
|
|
|
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\ROAIMOB\teste\test_chk_amort_introducere_log.txt"
|
|
STRTOFILE("START " + TTOC(DATETIME()) + CHR(13)+CHR(10), gcUILog)
|
|
|
|
ON ERROR DO PrErrLocal WITH ERROR(), MESSAGE(), PROGRAM(), LINENO()
|
|
ON SHUTDOWN QUIT
|
|
|
|
TRY
|
|
DO "D:\ROA\ROAIMOB\teste\test_init_env_auto_roaimob.prg" WITH 'CENTRAL', 'MARIUSM_AUTO', 'ROMFASTSOFT'
|
|
IF gnHandle <= 0
|
|
DO PrLogLocal WITH 'FAIL: conectare Oracle esuata (gnHandle=' + TRANSFORM(gnHandle) + ')'
|
|
QUIT
|
|
ENDIF
|
|
DO PrLogLocal WITH 'mediu ROAIMOB initializat'
|
|
|
|
*-- variabile globale de care depinde formularul
|
|
PUBLIC gnPa, gnPC
|
|
gnPa = 2
|
|
gnPC = 2
|
|
gnIdSucursala = gnIdFirma
|
|
|
|
*-- cursorii pe care ii folosesc combobox-urile formularului (v_tipuri_amort, v_tipuri_imob, cote_TVA)
|
|
IF USED('v_tipuri_amort')
|
|
USE IN v_tipuri_amort
|
|
ENDIF
|
|
CREATE CURSOR v_tipuri_amort (denumire C(30), id_tip_amortizare N(4))
|
|
INSERT INTO v_tipuri_amort (denumire, id_tip_amortizare) VALUES ('LINIARA', 1)
|
|
INSERT INTO v_tipuri_amort (denumire, id_tip_amortizare) VALUES ('ACCELERATA', 2)
|
|
|
|
IF USED('v_tipuri_imob')
|
|
USE IN v_tipuri_imob
|
|
ENDIF
|
|
CREATE CURSOR v_tipuri_imob (denumire C(30), id_tip_imobilizare N(4))
|
|
INSERT INTO v_tipuri_imob (denumire, id_tip_imobilizare) VALUES ('CORPORALA', 1)
|
|
|
|
IF USED('cote_TVA')
|
|
USE IN cote_TVA
|
|
ENDIF
|
|
CREATE CURSOR cote_TVA (procent N(6,2), descriere C(40), id_proc_tva N(4), proc_tva N(6,2))
|
|
INSERT INTO cote_TVA (procent, descriere, id_proc_tva, proc_tva) VALUES (1.19, 'standard', 1, 1.19)
|
|
|
|
*-- stub poGeneratorNumere pentru apelul poGeneratorNumere.aloca_numar din Init (tnTipModificare=1)
|
|
PUBLIC poGeneratorNumere
|
|
poGeneratorNumere = CREATEOBJECT('stub_generator')
|
|
|
|
*-- poMF trebuie sa existe ca variabila (formularul il foloseste in metode)
|
|
PUBLIC poMF
|
|
poMF = CREATEOBJECT('custom')
|
|
|
|
DO PrLogLocal WITH 'cursori + stubs pregatite'
|
|
|
|
*-- instantiez formularul real (introducere imobilizare CORPORALA = tnTip 1, modificare 1)
|
|
LOCAL ofrm
|
|
ofrm = CREATEOBJECT('frm_intro_test', 1, 1)
|
|
DO PrLogLocal WITH 'frm_introducere instantiat OK'
|
|
DO PrLogLocal WITH 'chk exista: ' + TRANSFORM(PEMSTATUS(ofrm, 'chk_amort_max_deductibil', 5))
|
|
|
|
*-- 1) stare initiala la introducere noua (INANTE de orice modificare)
|
|
LOCAL lcStare1
|
|
lcStare1 = 'bifa=' + TRANSFORM(ofrm.chk_amort_max_deductibil.Value) + ;
|
|
' readonly=' + TRANSFORM(ofrm.clb_amort_max_deductibil.text_simplu1.ReadOnly) + ;
|
|
' valoare=[' + TRANSFORM(ofrm.clb_amort_max_deductibil.text_simplu1.Value) + ']'
|
|
DO PrLogLocal WITH 'stare initiala: ' + lcStare1
|
|
|
|
*-- stare initiala trebuie sa fie: bifa .F., readonly .T., valoare NULL
|
|
LOCAL llBifaNeactiva, llReadOnly, llNull, llOk
|
|
llBifaNeactiva = (ofrm.chk_amort_max_deductibil.Value = .F.)
|
|
llReadOnly = (ofrm.clb_amort_max_deductibil.text_simplu1.ReadOnly = .T.)
|
|
llNull = ISNULL(ofrm.clb_amort_max_deductibil.text_simplu1.Value)
|
|
llOk = (m.llBifaNeactiva AND m.llReadOnly AND m.llNull)
|
|
IF m.llOk
|
|
DO PrLogLocal WITH 'PASS: stare initiala corecta (bifa neactiva, camp read-only, valoare NULL = toata amortizarea deductibila)'
|
|
ELSE
|
|
DO PrLogLocal WITH 'FAIL: stare initiala incorecta (bifa=' + TRANSFORM(m.llBifaNeactiva) + ;
|
|
' readonly=' + TRANSFORM(m.llReadOnly) + ' null=' + TRANSFORM(m.llNull) + ')'
|
|
ENDIF
|
|
|
|
*-- 2) activez bifa -> camp editabil, valoare 0
|
|
ofrm.chk_amort_max_deductibil.Value = .T.
|
|
ofrm.chk_amort_max_deductibil.Valid()
|
|
LOCAL llToggleOk
|
|
llToggleOk = (ofrm.clb_amort_max_deductibil.text_simplu1.ReadOnly = .F.) ;
|
|
AND (ofrm.clb_amort_max_deductibil.text_simplu1.Value = 0)
|
|
DO PrLogLocal WITH 'dupa activare bifa: readonly=' + TRANSFORM(ofrm.clb_amort_max_deductibil.text_simplu1.ReadOnly) + ;
|
|
' valoare=[' + TRANSFORM(ofrm.clb_amort_max_deductibil.text_simplu1.Value) + ']'
|
|
IF m.llToggleOk
|
|
DO PrLogLocal WITH 'PASS: activarea bifei face campul editabil cu valoare 0'
|
|
ELSE
|
|
DO PrLogLocal WITH 'FAIL: activarea bifei nu a activat campul corect'
|
|
m.llOk = .F.
|
|
ENDIF
|
|
|
|
*-- 3) dezactivez bifa -> NULL din nou, camp read-only
|
|
ofrm.chk_amort_max_deductibil.Value = .F.
|
|
ofrm.chk_amort_max_deductibil.Valid()
|
|
LOCAL llDezOk
|
|
llDezOk = (ofrm.clb_amort_max_deductibil.text_simplu1.ReadOnly = .T.) ;
|
|
AND ISNULL(ofrm.clb_amort_max_deductibil.text_simplu1.Value)
|
|
DO PrLogLocal WITH 'dupa dezactivare bifa: readonly=' + TRANSFORM(ofrm.clb_amort_max_deductibil.text_simplu1.ReadOnly) + ;
|
|
' valoare=[' + TRANSFORM(ofrm.clb_amort_max_deductibil.text_simplu1.Value) + ']'
|
|
IF m.llDezOk
|
|
DO PrLogLocal WITH 'PASS: dezactivarea bifei revine la NULL + read-only'
|
|
ELSE
|
|
DO PrLogLocal WITH 'FAIL: dezactivarea bifei nu a revenit la NULL'
|
|
m.llOk = .F.
|
|
ENDIF
|
|
|
|
*-- 4) expresia de salvare pcAmortMaxDeductibil
|
|
LOCAL pcAmortMaxDeductibil, pnAmortMaxDeductibil, lcSaveNull, lcSaveVal
|
|
ofrm.chk_amort_max_deductibil.Value = .F.
|
|
ofrm.chk_amort_max_deductibil.Valid()
|
|
pnAmortMaxDeductibil = ofrm.clb_amort_max_deductibil.text_simplu1.Value
|
|
pcAmortMaxDeductibil = IIF(ISNULL(m.pnAmortMaxDeductibil), 'NULL', ALLTRIM(STR(m.pnAmortMaxDeductibil, 14, gnPC)))
|
|
lcSaveNull = m.pcAmortMaxDeductibil
|
|
DO PrLogLocal WITH 'pcAmortMaxDeductibil (debifat) = [' + lcSaveNull + ']'
|
|
|
|
ofrm.chk_amort_max_deductibil.Value = .T.
|
|
ofrm.chk_amort_max_deductibil.Valid()
|
|
ofrm.clb_amort_max_deductibil.text_simplu1.Value = 1500
|
|
pnAmortMaxDeductibil = ofrm.clb_amort_max_deductibil.text_simplu1.Value
|
|
pcAmortMaxDeductibil = IIF(ISNULL(m.pnAmortMaxDeductibil), 'NULL', ALLTRIM(STR(m.pnAmortMaxDeductibil, 14, gnPC)))
|
|
lcSaveVal = m.pcAmortMaxDeductibil
|
|
DO PrLogLocal WITH 'pcAmortMaxDeductibil (bifat=1500) = [' + lcSaveVal + ']'
|
|
|
|
LOCAL llSaveOk
|
|
llSaveOk = (m.lcSaveNull == 'NULL') AND (VAL(m.lcSaveVal) = 1500)
|
|
IF m.llSaveOk
|
|
DO PrLogLocal WITH 'PASS: pcAmortMaxDeductibil corect (NULL la debifat, valoare la bifat)'
|
|
ELSE
|
|
DO PrLogLocal WITH 'FAIL: pcAmortMaxDeductibil incorect (debifat=[' + m.lcSaveNull + '] bifat=[' + m.lcSaveVal + '])'
|
|
m.llOk = .F.
|
|
ENDIF
|
|
|
|
DO PrLogLocal WITH 'VERDICT: ' + IIF(m.llOk, 'PASS', 'FAIL')
|
|
DO PrLogLocal WITH 'GATA'
|
|
CATCH TO loExcMain
|
|
DO PrLogLocal WITH 'CATCH ErrorNo=' + TRANSFORM(loExcMain.ErrorNo) + ' Message=' + loExcMain.Message + ;
|
|
' Proc=' + loExcMain.Procedure + ' Line=' + TRANSFORM(loExcMain.LineNo) + ' [' + loExcMain.LineContents + ']'
|
|
ENDTRY
|
|
|
|
QUIT
|
|
|
|
PROCEDURE PrErrLocal
|
|
LPARAMETERS tnErr, tcMsg, tcProg, tnLine
|
|
DO PrLogLocal WITH 'ON ERROR ' + TRANSFORM(tnErr) + ' [' + tcProg + ':' + TRANSFORM(tnLine) + '] ' + tcMsg
|
|
ENDPROC
|
|
|
|
PROCEDURE PrLogLocal
|
|
LPARAMETERS tcMsg
|
|
SET SAFETY OFF
|
|
LOCAL lcL
|
|
lcL = IIF(FILE(gcUILog), FILETOSTR(gcUILog), '')
|
|
STRTOFILE(lcL + tcMsg + CHR(13)+CHR(10), gcUILog)
|
|
ENDPROC
|
|
|
|
* DEFINE CLASS la finalul fisierului (capcana: DEFINE CLASS nu poate sta la mijloc)
|
|
DEFINE CLASS stub_generator AS custom
|
|
PROCEDURE aloca_numar
|
|
LPARAMETERS tnTipDoc, tnTip
|
|
RETURN 1
|
|
ENDPROC
|
|
PROCEDURE ResetAll
|
|
ENDPROC
|
|
ENDDEFINE
|
|
|
|
DEFINE CLASS frm_intro_test AS frm_introducere
|
|
PROCEDURE Load
|
|
* suprascriu Load-ul parinte (_frm_base), care ar deschide o fereastra de atentionare
|
|
* daca cselect/ccursor sunt goale
|
|
ENDPROC
|
|
ENDDEFINE
|