Atostogų prašymų kontrolė

Aprašytas sprendimas, kai neleidžiama pateikti formulėje nurodyto tipo atostogų prašymo likus mažiau nei 5 dienoms iki atostogų pradžios.

Šiam sprendimui realizuoti naudojamos fomulės.

Servisas -> Kortelės -> Formulės

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

mgamaatost_05

-- Standartinė būsenos procedūra: RGI_MGAMA_PERS_AT @bukle=1, @atsaukti=1                       
declare @userParamAtostTipas char(12), @userParamLeistinasTerminas int
select 
     @userParamAtostTipas = '1' --nurodomas atostogų tipas, 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!'
                    select @return=-1
goto ExitCode
                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 ,@vad=1

Aprašius formulę, pakoreguojamos atostogų tvirtinimo būsenos:

Servisas -> Personalas -> Personalo operacijos

mgamaatost_06

SQL procedūra:

RGI_MGAMA_BUSENA_TV      

mgamaatost_07

SQL procedūra:

RGI_MGAMA_BUSENA_FORMULE @kodas_fr='MG_6A_AT_01'

Sprendimo rezultatas:

mgamaatost_08