// *************************************************************************** // * Funkcja zwraca wymiar urlopu z uwzgl©dnieniem rozpocz©cia pracy w * // * trakcie roku oraz pobranych urlop¢w bezpˆatnych. * // * * // * Podstawa: Dziaˆ si¢dmy KP, Rozp. MPiPS z dn. 8.01.97 Dz. U. nr 2 1997r. * // * Uwzgl©dnia zmian© prawa od dnia 1.1.2004 * // * Argumenty: data * // * wymiar * // * miesiecy_pracy * // * sluzba * // * wyksztalcenie$ * // * * // * 07.09.2009 WA-PRO (Dziaˆ Rozwoju Oprogramowania) * // *************************************************************************** local prop_wymiar=0 prop_wymiar1=0 prop_wymiar2=0 data_zatrudnienia=Zatrudniony od (data) pierwszy_rok=0 data_od=data_zatrudnienia data_do=data data1=Data(1,1,Rok(data)) data2=Data(31,12,Rok(data)) data_p=0 data_z=0 miesiac_od=0 miesiac_do=0 bezplatny=0 bezpl_ewid=0 prop_wymiar_p=0 prop_wymiar_c=0 sprop_wymiar=0 data_p1=0 data_z1=0 smiesiecy=0 wymiar1=0 wymiar2=0 tmiesiecy_pracy=0 mstaz1=0 mstaz2=0 wspet=0 wspet_h=0 staz1=0 staz2=0 kda=0 kdh=0 a1=0 twyksztalcenie$='' tsluzba=0 tmiesiace=0 data_b=0 data_rozpoczecia_pracy=Data pierwszego zatrudnienia () ildnix=0 dnix=0 mcex=0 latax=0 ildniz=0 dniz=0 mcez=0 lataz=0 miesiace_tu=0 miesiace_tam=0 lt=0 mt=0 dt=0 godzin_urlopu=0 wykorzystany_h=0 wykorzystany_gh=0 mies_pracy_tu=0 il_mp_h=0 znetat=1 znet_a=0 znet_h=0 data_urlopu=data data_bezp_do=data prop_wymiar_tmp=0 wymrocz_tam=0 wymrocz_tu=0 dodatek=0 wymiar_z=0 wymiar_tu=0 wymiar_limit=0 umowa_ok=0 wym_rocz_tmp=0 wymr_max=0 data_p_z_w_firmie=0 dnia=0 dzielna=0 dnih=0 snalh_wsp=0 wymprop_wsp=0 mn=0 dnih_zakt=0 mce_sluzby=0 bezplatny_z_k=0 bezplatny_z_his=0 fri=0 wymiar_daty_do=0 st1_sch=0 pierwszy_rok=0 dnia=0 dnih=0 pm=0 zasady=2 end if not his and data_od=-1 Return(0) end if data_od 1 wspet=1 end if not data_do>0 or data_do > data2 data_do=data2 end mce_sluzby=Oblicz ilo˜† miesi©cy sˆu¾by wojskowej w roku (data_od, data_do) umowa_ok=Umowa Ok (data) Oblicz sta¾ z aktualnego zatrudnienia R04 (data, ildniz, dniz, mcez, lataz) Oblicz sta¾ z przebiegu zatrudnienia (data, ildnix, dnix, mcex, latax) if rok(data) > 2003 and rok(data) > rok(data_zatrudnienia) pierwszy_rok=0 else if data_rozpoczecia_pracy >= data1 R¢¾nica dat w latach miesi¥cach dniach R04 (data_rozpoczecia_pracy, data1, lt, mt, dt) if lt*12+mt>=12 pierwszy_rok=0 else pierwszy_rok=1 end else pierwszy_rok=0 end end data_urlopu=data_do if data_od>data_do Return(0) end if rok(data_zatrudnienia) <= rok(data) if rok(data_zatrudnienia)=rok(data) wymiar_z=Oblicz wymiar urlopu na dzieä R04 O (data_zatrudnienia,data_zatrudnienia,miesiecy_pracy,sluzba,wyksztalcenie$,mstaz1,staz1,prop_wymiar,dnia,dnih,nak,fri) else wymiar_z=Oblicz wymiar urlopu na dzieä R04 O (data(1,1,rok(data)),data_zatrudnienia,miesiecy_pracy,sluzba,wyksztalcenie$,mstaz1,staz1,prop_wymiar,dnia,dnih,nak,fri) end end if pierwszy_rok and not nak Return (0) end staz1=0 mstaz1=0 wyksztalcenie$='' st1_sch=staz1 wymiar_daty_do=Oblicz wymiar urlopu na dzieä R04 O (data_do,data_zatrudnienia,miesiecy_pracy,sluzba,wyksztalcenie$,mstaz1,staz1,prop_wymiar,dnia,dnih,nak,fri) staz1=st1_sch smiesiecy=Oblicz ilo˜† miesi©cy pracy w roku (data_urlopu, 0) il_mp_h=Oblicz ilo˜† miesi©cy pracy w roku H (data,0,kdh,data) mies_pracy_tu=Oblicz ilo˜† miesi©cy pracy w roku (data,0)-il_mp_h if mies_pracy_tu=0 Return(0) end dodatek=wspet*(smiesiecy/mies_pracy_tu)*(wymiar_daty_do-wymiar_z) wymiar=wymiar_z prop_wymiar=prop_wymiar+dodatek if snalh > 0 and snal_h_l=0 snalh=znet_h*wymiar snal_h_l=snalh else if snal_h_l > 0 and snalh=0 snalh=snal_h_l end end data_bezp_do=Min(zatrudniony do (data),data(31,12,rok(data))) if data_bezp_do=0 data_bezp_do=data(31,12,rok(data)) end bezplatny_z_his=Oblicz ilo˜† miesi©cy urlopu bezpˆatnego (data(1,1,rok(data)),data_od) if bezplatny_z_his=0 bezplatny_z_his=Oblicz ilo˜† miesi©cy urlopu bezp. z kartoteki (data(1,1,rok(data)),data_od) end bezplatny=Oblicz ilo˜† miesi©cy urlopu bezpˆatnego (data_od,data) bezplatny=bezplatny+mce_sluzby bezplatny=bezplatny+Oblicz ilo˜† miesi©cy urlopu wychowaczego (data_od, data) bezplatny=bezplatny+Oblicz ilo˜† miesi©cy nieobecno˜ci N (data_od, data) bezplatny=Max(Min(bezplatny,12),0) if bezplatny_z_his+bezplatny > 0 smiesiecy=smiesiecy-bezplatny-bezplatny_z_his end if mies_pracy_tu>0 or smiesiecy>0 or snalh > 0 and wymiar>0 snalh=Zaokr¥glenie w g¢r© (snalh) if {Urlop limitowa†} = 'wymiarem rocznym' if prop_wymiar+snal_h_l - Int(prop_wymiar+snal_h_l) < 0.0000001 wymiar_limit=Int(prop_wymiar+snal_h_l) else wymiar_limit=Int(prop_wymiar)+1+Int(snal_h_l)+1 end else wymiar_limit=wymiar_daty_do end if {Urlop w zatrudnieniu r¢wnolegˆym}='Caˆkowicie niezale¾nie' if prop_wymiar > wymiar_limit prop_wymiar=wymiar_limit end else if snalh+prop_wymiar > wymiar_limit prop_wymiar=wymiar_limit-snalh end end if prop_wymiar - Int(prop_wymiar) < 0.0000001 prop_wymiar=Int(prop_wymiar) end wymrocz=prop_wymiar+snalh wspet_h=Podaj etat na dzieä (data_od,mn) if bezplatny_z_his >= il_mp_h and il_mp_h > 0 snalh=0 wymrocz=prop_wymiar else if bezplatny_z_his > 0 if il_mp_h > 0 snalh_wsp=wspet_h*snalh snalh=snalh-wspet_h*bezplatny_z_his*wymiar/12 else snalh=0 end snalh=Zaokr¥glenie w g¢r© (snalh) end end if bezplatny >= mies_pracy_tu and mies_pracy_tu > 0 prop_wymiar=0 wymrocz=snalh else if bezplatny > 0 if mies_pracy_tu > 0 wymprop_wsp=wspet*prop_wymiar prop_wymiar=prop_wymiar-wymiar_daty_do*wspet*bezplatny/12 end end end if {Urlopy w ci¥gu roku zaokr¥gla†}='ka¾dy okres osobno' wymrocz=prop_wymiar+snalh else wymrocz=prop_wymiar+snal_h_l end end if dodatek > 0 wymiar=wymiar_daty_do end prop_wymiar=prop_wymiar+dodatek wymrocz=Min(wymrocz,wymiar) prop_wymiar=Min(prop_wymiar,wymrocz) if {Urlopy w ci¥gu roku zaokr¥gla†}='ka¾dy okres osobno' or {Urlopy w ci¥gu roku zaokr¥gla†}='historia caˆa, osobno caˆo˜† u nas' prop_wymiar=Zaokr¥glenie w g¢r© (prop_wymiar) wymrocz=snalh+prop_wymiar else wymrocz=Zaokr¥glenie w g¢r© (wymrocz) prop_wymiar=wymrocz-snalh end miesiecy_pracy=mies_pracy_tu Return(Max(prop_wymiar,0))