// *************************************************************************** // * * // * Funkcja zwraca wymiar urlopu z kartoteki Wymiary urlop¢w na podstawie * // * STAZU. Je¾eli sta¾ jest r¢wny zero zwraca najni¾szy wymiar. * // * * // * Podstawa: Dziaˆ si¢dmy KP Art. 154 * // * * // * Argumenty: staz * // * od_dnia * // * * // * 21.09.2009 WA-PRO (Dziaˆ Rozwoju Oprogramowania) * // *************************************************************************** local etat=0 system_placy$='' wymiar_nowy=0 data_do=0 etat_znormal=0 data_prop_od=0 data_prop_do=0 rokur=rok(od_dnia) dnirokur=0 dnirokur1=0 real_staz=0 angaze_do=0 zwol=0 zwolniony=0 historia_do=0 przebieg_od=0 przebieg_do=0 his_etat=0 zatrudniony_od=Zatrudniony od (od_dnia) ang_do=0 ang_od=0 prev_przeb_od=0 prev_przeb_do=0 umowa_ok=0 et_znor_tmp=0 i=0 post_mort=0 zasady=0 data_p_zatr=Data pierwszego zatrudnienia () licz_do=od_dnia licz_od=od_dnia porcja_mcy=0 mcy_w_roku=0 last_ang_do=0 pier_ang=0 pozycja=0 mcA=0 mcH=0 mcR=0 wymiar_startowy=20 wymiar_ustawowy=0 wymiar_proporcjonalny=0 lata_inw=0 il_dni_do_reh=0 dni_inw=0 miesiace_inw=0 gr_inw_od=0 stopien$='' wym_u_rh=0 fri_ust=0 fri_strt=0 z_przeb=0 data_startowa=0 wymiar_prop_noz=0 end //info('POB: staz='&num2txt(staz)) real_staz=staz if staz < 1 staz=1 end if staz_strt < 1 staz_strt=1 end if KartotekaPusta (Wymiary urlop¢w) Ostrze¾enie ('Prosz© uzupeˆni† dane w kartotece systemu "Wymiary urlop¢w"') Return(0) end Clear(Wymiary urlop¢w) Wymiary urlop¢w (Od dnia)=od_dnia + 0.5 Set(Wymiary urlop¢w) Loop Previous(Wymiary urlop¢w) if eof() or Wymiary urlop¢w (Od dnia)=0 PierwszyRekord (Wymiary urlop¢w) Return(Wymiary urlop¢w (Wymiar urlopu)) else if staz >= Wymiary urlop¢w (Sta¾ pracy) if od_dnia > data(31,12,2003) or od_dnia=0 wymiar_ustawowy=Wymiary urlop¢w (Wymiar urlopu) break end end end end data_startowa=Max(zatrudniony_od,data(1,1,rok(od_dnia))) Clear(Wymiary urlop¢w) Wymiary urlop¢w (Od dnia)=data_startowa + 0.5 Set(Wymiary urlop¢w) Loop Previous(Wymiary urlop¢w) if eof() or Wymiary urlop¢w (Od dnia)=0 Ostrze¾enie ('Prosz© uzupeˆni† dane w kartotece systemu "Wymiary urlop¢w"') Return(0) else if staz_strt >= Wymiary urlop¢w (Sta¾ pracy) if od_dnia > data(31,12,2003) or od_dnia=0 wymiar_startowy=Wymiary urlop¢w (Wymiar urlopu) break end end end end if not KartotekaPusta (Kartoteka anga¾y) OstatniRekord(Kartoteka anga¾y) if od_dnia > Kartoteka anga¾y (Data do) and Kartoteka anga¾y (Data do) > 0 if Kartoteka anga¾y (Zwolnienie) zwolniony=1 end end end Kartoteka anga¾y (Data od)=od_dnia+0.5 Set (Kartoteka anga¾y) Previous(Kartoteka anga¾y) if eof() return(0) end ang_do=Kartoteka anga¾y (Data od) ang_do=Kartoteka anga¾y (Data do) if ang_do=0 ang_do=data(31,12,rok(od_dnia)) end if Kartoteka anga¾y (Zwolnienie) and Zawierasi©(od_dnia,ang_od,ang_do) zwolniony=1 if Kartoteka anga¾y (Data do) < od_dnia and Kartoteka anga¾y (Data do) > 0 post_mort=1 end end zasady=Zasady urlopowe (od_dnia,staz) mcA=Oblicz ilo˜† miesi©cy pracy w roku A (od_dnia, 0, dnia) mcH=Oblicz ilo˜† miesi©cy pracy w roku H (od_dnia, 0, dnih,od_dnia) if KartotekaPusta (Kartoteka anga¾y) Return (0) end if zwolniony mch=mca end Oblicz nale¾ny urlop rehabilitacyjny (od_dnia,fri,fri_ust,zatrudniony_od,z_przeb,nak) fri_strt=fri_ust if data_startowa=od_dnia fri_strt=fri_ust end wymiar_startowy=wymiar_startowy+fri_strt wymiar_ustawowy=wymiar_ustawowy+fri_ust wymiar_proporcjonalny=Policz znormalizowany wsp¢ˆczynnik etatu O (od_dnia,zasady,mca,post_mort,dnia,dnih,wymiar_ustawowy,wymiar_startowy,nak,wymiar_prop_noz) if wymiar_ustawowy <> wymiar_startowy wymiar_proporcjonalny=wymiar_prop_noz end //info('POB: dim_prop_noz='&num2txt(wymiar_prop_noz)&&'; dim_prop='&num2txt(wymiar_proporcjonalny)) Return(wymiar_ustawowy)