Atostogų prašymo papildomi tikrinimai

Šiam sprendimui realizuoti naudojamos fomulės

Servisas -> Kortelės -> Formulės

Sukuriama nauja formulė, kurioje aprašoma papildoma tikrinimo logika.

mgamaatost_04

Formulės pavyzdys - atostogų prašymo dienos kontrolė, kuri neleidžia prašyti atostogų, likus mažiau nei 5 dienoms iki nurodytų atostogų pradžios:

-- Standartinė būsenos procedūra: RGI_MGAMA_PERS_AT @bukle=1, @atsaukti=1
declare @userParamAtostTipas char(12), @userParamLeistinasTerminas int
select 
     @userParamAtostTipas = '555' --nurodomas atostogų klasifikatorius, pagal kurį bus tikrinamas prašymas
    ,@userParamLeistinasTerminas = 5 --nurodomas mažiausias leistinas dienų skaičius iki prašomų atostogų pradžios

declare
     @atostTipas char(12)
    ,@begDate datetime

if @veiksmas='I'
      BEGIN

            select
                @atostTipas = k16_kodas_1a_19,
                @begDate = k16_beg_date
            from dbo.K16_OPH where K16_KODAS_6A = @op

            if @atostTipas = @userParamAtostTipas and datediff(day,getdate(),@begDate) < @userParamLeistinasTerminas
                begin
                    exec dbo.RGI_KLAIDA 'ATOSTOGOS','Prašymą dėl pasirinkto atostogų tipo galima pateikti tik tuo atveju, jei iki nurodytos atostogų pradžios liko daugiau nei 5 dienos!'
                    return
                end

    END

-- Paleidžiame standartinę procedurą, tvirtinimo turinio užpildymui
exec @return=dbo.RGI_MGAMA_PERS_AT @modul=@modul, @op=@op, @user=@user, @kodas_be=@kodas_be, @veiksmas=@veiksmas, @pastaba=@pastaba, @bukle=1, @atsaukti=1  

Aprašius formulę, reikia atitinkamai pakoreguoti atostogų tvirtinimo būseną:

Servisas -> Personalas -> Personalo operacijos:

mgamaatost_01

mgamaatost_02

Norint įtraukti aprašytą formulę papildomiems tikrinimams, reikia naudoti tvirtinimo operacijų perėmimo procedūrą, nurodant formulės kodą kaip parametrą. Pvz.:

RGI_MGAMA_BUSENA_FORMULE @kodas_fr='MG_6A_AT_01'

Rezultatas:

mgamaatost_03