// *************************************************************************** // * * // * * // * * // * * // * 03.09.06.2009 WA-PRO (Administrator) * // *************************************************************************** local et_nor_do_ang=0 etat_znormal=0 data_prop_od=0 data_prop_do=0 rokur=rok(na_dzien) ang_do=0 ang_od=0 zatrudniony_od=Zatrudniony od (na_dzien) zatrudniony_do=Zatrudniony do (na_dzien) licz_do=0 licz_od=0 licz_do_prev=na_dzien mcy_ang=0 dni_ang=0 kda=0 kdh=0 pier_ang=1 last_ang_do=0 zwol=0 i=0 wspet=999 wspet_o=999 data_k=0 dzien_k=0 miesiac_k=0 dzielna=0 mc_poprzedni=0 mcy_z_angazy=0 przesunal=0 max_mc=0 angaz_startowy$='' historia_do=0 umowa_OK=0 jest=0 wymiar_proporcjonalny=0 // wymiar_prop_noz=0 wymiar_roboczy=0 wymiar_dla_wspet=0 wym_dla_wsp_noz=0 dodatek=0 start=1 minimum=380 okres_n_od=0 okres_n_do=0 mca=0 mcy_odlicz=0 zatrudniony=0 ii=0 poz_num=0 his_num=0 mcy_ang_tot=0 zmiana=0 poprzedni_poszedl=0 wspet_akt=0 dodaj=0 od_miesiaca=0 do_miesiaca=0 w_firmie=0 j=0 k=0 licznik=0 przeb_od=0 przeb_do=0 end if KartotekaPusta (Kartoteka anga¾y) Return (0) end if zatrudniony_do=0 zatrudniony_do=data(31,12,rok(na_dzien)) end if zatrudniony_od < data(1,1,rok(na_dzien)) zatrudniony_od=data(1,1,rok(na_dzien)) end etat_znormal=Policz znormalizowany wsp¢ˆczynnik etatu (na_dzien,0,zasady,pm,dnia,dnih,nak) mcy_ang=miesi¥c(zatrudniony_do) - miesi¥c(zatrudniony_od)+1 et_nor_do_ang=etat_znormal if mcy_ang > 0 et_nor_do_ang=et_nor_do_ang*12/mcy_ang end mcy_ang=0 wymiar_roboczy=wymiar_startowy kdh=Max(dnih-30*Int(dnih/30),0) if zatrudniony_do=0 zatrudniony_do=data(31,12,rok(na_dzien)) end zatrudniony_do=Min(zatrudniony_do,data(31,12,rok(na_dzien))) Czy˜†TabNum() Clear (Kartoteka anga¾y) Set (Kartoteka anga¾y) poz_num=0 Loop Next (Kartoteka anga¾y) if eof() break end if Kartoteka anga¾y (Data od) > data(31,12,rok(na_dzien)) break end ang_od=Kartoteka anga¾y (Data od) ang_do=Kartoteka anga¾y (Data do) if ang_do=0 ang_do=data(31,12,rok(na_dzien)) end if ang_do < data(1,1,rok(na_dzien)) cycle end if ang_od < data(1,1,rok(na_dzien)) and ang_do > data(1,1,rok(na_dzien)) ang_od=data(1,1,rok(na_dzien)) end poz_num=poz_num+1 TabNum(poz_num,1)=ang_od TabNum(poz_num,2)=ang_do TabNum(poz_num,3)=Etat(Kartoteka anga¾y (Etat)) TabNum(poz_num,4)=Kartoteka anga¾y (Zwolnienie) end if poz_num=0 Return(0) end if TabNum(poz_num,2) < na_dzien and not TabNum(poz_num,4) WstawDoListyInformacji(Pracownik (Nazwisko)&&Pracownik (Imi©)&&'brak anga¾u') // Ostrze¾enie('Brak anga¾u !') Return(0) end j=0 k=poz_num i=0 licznik=1 while i < poz_num i=i+1 if i > 1 and TabNum(i-1,4) if TabNum(i,1) > na_dzien break end licznik=i j=0 end j=j+1 if i >= poz_num break end end i=licznik poz_num=j if i > 1 k=0 if j > 0 Loop if k >= j break end TabNum(k+1,1)=TabNum(i+k,1) TabNum(k+1,2)=TabNum(i+k,2) TabNum(k+1,3)=TabNum(i+k,3) TabNum(k+1,4)=TabNum(i+k,4) k=k+1 end end end i=0 while i < poz_num i=i+1 if TabNum(i,1) < data(1,1,rok(na_dzien)) TabNum(i,1)=data(1,1,rok(na_dzien)) end if TabNum(i,2) > data(31,12,rok(na_dzien)) TabNum(i,2)=data(31,12,rok(na_dzien)) end end umowa_OK=Umowa OK (na_dzien) i=0 if not KartotekaPusta (Przebieg pracy zawodowej) Clear (Przebieg pracy zawodowej) Set (Przebieg pracy zawodowej) Next (Przebieg pracy zawodowej) Loop if eof() break end if Przebieg pracy zawodowej (Data do) > OstatniDzieä(na_dzien) Next (Przebieg pracy zawodowej) cycle end przeb_do=Przebieg pracy zawodowej (Data do) if przeb_do=0 przeb_do=domyslna_data end // if Przebieg pracy zawodowej (W firmie) and przeb_do >= na_dzien // Next (Przebieg pracy zawodowej) // cycle // end i=i+1 TabNum(i,10)=Przebieg pracy zawodowej (Data od) TabNum(i,11)=Przebieg pracy zawodowej (Data do) TabNum(i,12)=Przebieg pracy zawodowej (W firmie) his_num=i Next (Przebieg pracy zawodowej) end his_num=i przeb_od=TabNum(his_num,10) przeb_do=TabNum(his_num,11) w_firmie=TabNum(his_num,12) historia_do=TabNum(his_num,11) if rok(przeb_do)=rok(na_dzien) and not w_firmie or (w_firmie and przeb_do < na_dzien and Zawierasi© (na_dzien,przeb_od,przeb_do)) if Zatrudniony w okresie (na_dzien,na_dzien) if na_dzien > Przebieg pracy zawodowej (Data do) historia_do=Przebieg pracy zawodowej (Data do) end else if his_num > 1 i=his_num while i > 1 if TabNum(i-1,12) w_firmie=TabNum(i-1,12) historia_do=TabNum(i-1,11)-1 else break end i=i-1 end end case of {Urlop w zatrudnieniu r¢wnolegˆym}='' or {Urlop w zatrudnieniu r¢wnolegˆym}='Odlicz 1-y miesi¥c nakˆadki' if miesi¥c(historia_do) >= miesi¥c (TabNum(1,1)) and rok(historia_do)=rok(na_dzien) if not w_firmie historia_do= OstatniDzieä(TabNum(i,11)) end end end end end if rok(Przebieg pracy zawodowej (Data do))=rok(na_dzien) if historia_do=0 and not KartotekaPusta(Przebieg pracy zawodowej) OstatniRekord(Przebieg pracy zawodowej) if Przebieg pracy zawodowej (Data do)=0 historia_do=domyslna_data else historia_do= OstatniDzieä(Przebieg pracy zawodowej (Data do)) end end end else historia_do=0 end if not (TabNum(1,1)=zatrudniony_od and TabNum(1,12)) if TabNum(1,1) < historia_do or PierwszyDzieä(TabNum(1,1))=PierwszyDzieä(historia_do) //case // of {Urlop w zatrudnieniu r¢wnolegˆym}='Odlicz 1-y miesi¥c nakˆadki' or {Urlop w zatrudnieniu r¢wnolegˆym}='' case of miesi¥c(zatrudniony_od) < miesi¥c(TabNum(1,2)) and historia_do > 0 if miesi¥c(TabNum(1,1)) = miesi¥c(historia_do) if miesi¥c(TabNum(1,1))=miesi¥c(TabNum(1,2)) Return(0) else TabNum(1,1)=data(1,miesi¥c(TabNum(1,1))+1,rok(na_dzien)) end end TabNum(1,1)=data(1,miesi¥c(TabNum(1,1)),rok(na_dzien)) of miesi¥c(zatrudniony_od)=miesi¥c(TabNum(1,2)) if not w_firmie or w_firmie and zatrudniony_od <> TabNum(1,1) TabNum(1,1)=data(1,miesi¥c(TabNum(1,1))+1,rok(na_dzien)) end else TabNum(1,1)=data(1,miesi¥c(TabNum(1,1)),rok(na_dzien)) end // of {Urlop w zatrudnieniu r¢wnolegˆym}='Niezale¾ny okres nakˆadki' // of {Urlop w zatrudnieniu r¢wnolegˆym}='Caˆkowicie niezale¾nie' end end if not KartotekaPusta (Przebieg pracy zawodowej) if Przebieg pracy zawodowej (W firmie) ii=0 while not eof() if ii=0 Previous (Przebieg pracy zawodowej) end if not Przebieg pracy zawodowej (W firmie) historia_do=Przebieg pracy zawodowej (Data do) else Clear (Kartoteka anga¾y) Kartoteka anga¾y (Data od)=Przebieg pracy zawodowej (Data od) Set (Kartoteka anga¾y) Next (Kartoteka anga¾y) if Kartoteka anga¾y (Data od)=Przebieg pracy zawodowej (Data od) and Kartoteka anga¾y (Zwolnienie) historia_do=Kartoteka anga¾y (Data do) end end if ii=1 Previous (Przebieg pracy zawodowej) end ii=1 end end end if TabNum(1,1) < data(1,1,rok(na_dzien)) TabNum(1,1)=data(1,1,rok(na_dzien)) end if historia_do < data(1,1,rok(na_dzien)) historia_do=0 end i=1 while i < poz_num if miesi¥c(TabNum(i,2))=miesi¥c(TabNum(i+1,1)) and miesi¥c(TabNum(i,2)) < 12 if miesi¥c(TabNum(i+1,2)) > miesi¥c(TabNum(i+1,1)) TabNum(i+1,1)=data(1,miesi¥c(TabNum(i+1,1))+1,rok(TabNum(i,2))) else TabNum(i,2)=TabNum(i+1,2) ii=i while ii < poz_num ii=ii+1 TabNum(ii,1)=TabNum(ii+1,1) TabNum(ii,2)=TabNum(ii+1,2) TabNum(ii,3)=TabNum(ii+1,3) TabNum(ii,4)=TabNum(ii+1,4) end poz_num=poz_num-1 i=i+1 cycle end else if miesi¥c(TabNum(i,2)) >= 12 poz_num=i break end end i=i+1 end if {Urlop w zatrudnieniu r¢wnolegˆym}='' or {Urlop w zatrudnieniu r¢wnolegˆym}='Odlicz 1-y miesi¥c nakˆadki' if historia_do > 0 and miesi¥c(TabNum(1,1))=miesi¥c(historia_do) if historia_do > data(1,12,rok(na_dzien)) Return(0) else TabNum(1,1)=data(1,miesi¥c(historia_do)+1,rok(historia_do)) end end end na_dzien=Min(zatrudniony_do,data(31,12,rok(na_dzien))) zwol=0 i=1 while i <= poz_num jest=0 dni_ang=0 if i > 1 wspet_o=wspet end wspet=TabNum(i,3) ang_od=TabNum(i,1) ang_do=TabNum(i,2) if ang_od > data(31,12,rok(na_dzien)) break end if ang_do > data(31,12,rok(na_dzien)) or ang_do=0 ang_do=data(31,12,rok(na_dzien)) end data_prop_od=ang_od data_prop_do=ang_do licz_od=data_prop_od licz_do=data_prop_do zatrudniony=Zatrudniony w okresie (na_dzien,na_dzien) case of {Strategia zmiany wymiaru etatu} ='Liczenie wg stanu na 1-y dzieä miesi¥ca' or {Strategia zmiany wymiaru etatu} ='' if i=1 mcy_ang=miesi¥c(licz_do)-miesi¥c(licz_od)+1 else if miesi¥c(licz_od)=miesi¥c(TabNum(i-1,2)) if historia_do > 0 and miesi¥c(licz_od) < miesi¥c(historia_do) mcy_ang=miesi¥c(licz_do)-miesi¥c(licz_od)+1 else mcy_ang=miesi¥c(licz_do)-miesi¥c(licz_od) end else mcy_ang=miesi¥c(licz_do)-miesi¥c(licz_od)+1 end end of {Strategia zmiany wymiaru etatu} ='Liczenie wg stanu na ostatni dzieä miesi¥ca' if i=poz_num mcy_ang=miesi¥c(licz_do)-miesi¥c(licz_od)+1 else if miesi¥c(licz_do)=miesi¥c(TabNum(i+1,1)) mcy_ang=miesi¥c(licz_do)-miesi¥c(licz_od) else mcy_ang=miesi¥c(licz_do)-miesi¥c(licz_od)+1 end end of {Strategia zmiany wymiaru etatu}='Liczenie wg stanu dotycz¥cego ponad poˆowy miesi¥ca' if i=1 od_miesiaca=miesi¥c(licz_od) if i < poz_num if dzieä(licz_do) < 15 do_miesiaca=miesi¥c(licz_do)-1 else do_miesiaca=miesi¥c(licz_do) end else do_miesiaca=miesi¥c(licz_do) end else if i < poz_num if dzieä(licz_od) < 15 od_miesiaca=miesi¥c(licz_od) else od_miesiaca=miesi¥c(licz_od)+1 // UWAGA : je˜li wyjdzie> 12 tzn., // ¾e tego nie nale¾y // W OGàLE LICZY� !!!!!!!!!!!!! end if dzieä(licz_do) < 15 do_miesiaca=miesi¥c(licz_do)-1 else do_miesiaca=miesi¥c(licz_do) end else if dzieä(licz_od) < 15 od_miesiaca=miesi¥c(licz_od) else od_miesiaca=miesi¥c(licz_od)+1 // UWAGA : je˜li wyjdzie> 12 tzn., // ¾e tego nie nale¾y // W OGàLE LICZY� !!!!!!!!!!!!! end do_miesiaca=miesi¥c(licz_do) end end if do_miesiaca > 12 mcy_ang=0 else mcy_ang=do_miesiaca - od_miesiaca + 1 end of {Strategia zmiany wymiaru etatu}='Liczenie najkorzystniej dla pracownika' if TabNum(i,3) >= TabNum(i+1,3) // wspet >= nast©pnego wspet if i=1 mcy_ang=miesi¥c(licz_do)-miesi¥c(licz_od)+1 else if TabNum(i-1,3) >= TabNum(i,3) // poprzedni wspet >= wspet mcy_ang=miesi¥c(licz_do)-miesi¥c(licz_od) else mcy_ang=miesi¥c(licz_do)-miesi¥c(licz_od)+1 // pop.wspet= TabNum(i,3) // poprzedni wspet >= wspet mcy_ang=max(miesi¥c(licz_do)-miesi¥c(licz_od)-1,0) else mcy_ang=miesi¥c(licz_do)-miesi¥c(licz_od) // pop.wspet 1 wspet=1 end et_nor_do_ang=wspet*mcy_ang/12 // et_nor_do_ang dotyczy tylko danego okresu mcy_ang_tot=mcy_ang if wspet=wspet_o if mcy_ang_tot > 0 if i >= poz_num wym_dla_wsp_noz=wymiar_roboczy*wspet wymiar_prop_noz=wymiar_prop_noz+wym_dla_wsp_noz*mcy_ang_tot/12 wymiar_dla_wspet=Zaokr¥glenie w g¢r©(wymiar_roboczy*wspet) wymiar_proporcjonalny=wymiar_proporcjonalny+wymiar_dla_wspet*mcy_ang_tot/12 break end end wspet_akt=wspet case of i=1 wym_dla_wsp_noz=wymiar_roboczy*wspet wymiar_dla_wspet=Zaokr¥glenie w g¢r© (wymiar_roboczy*wspet) if {Urlopy w ci¥gu roku zaokr¥gla†}='ka¾dy okres osobno' wymiar_prop_noz=wymiar_prop_noz+Zaokr¥glenie w g¢r© (wymiar_dla_wspet*mcy_ang_tot/12) wymiar_proporcjonalny=wymiar_proporcjonalny+Zaokr¥glenie w g¢r© (wymiar_dla_wspet*mcy_ang_tot/12) else wymiar_prop_noz=wymiar_prop_noz+wym_dla_wsp_noz*mcy_ang_tot/12 wymiar_proporcjonalny=wymiar_proporcjonalny+wymiar_dla_wspet*mcy_ang_tot/12 end of {Strategia zmiany wymiaru etatu}='Liczenie wg stanu na 1-y dzieä miesi¥ca' or {Strategia zmiany wymiaru etatu}='' wymiar_dla_wspet=Zaokr¥glenie w g¢r© (wymiar_roboczy*wspet_o) if {Urlopy w ci¥gu roku zaokr¥gla†}='ka¾dy okres osobno' wymiar_prop_noz=wymiar_prop_noz+Zaokr¥glenie w g¢r© (wymiar_dla_wspet*mcy_ang_tot/12) wymiar_proporcjonalny=wymiar_proporcjonalny+Zaokr¥glenie w g¢r© (wymiar_dla_wspet*1/12) wymiar_dla_wspet=Zaokr¥glenie w g¢r© (wymiar_roboczy*wspet) wymiar_proporcjonalny=wymiar_proporcjonalny+Zaokr¥glenie w g¢r© (wymiar_dla_wspet*(mcy_ang_tot-1)/12) wymiar_prop_noz=wymiar_prop_noz+Zaokr¥glenie w g¢r© (wymiar_dla_wspet*mcy_ang_tot/12) else wymiar_prop_noz=wymiar_prop_noz+wym_dla_wsp_noz*mcy_ang_tot/12 wymiar_proporcjonalny=wymiar_proporcjonalny+wymiar_dla_wspet*(1/12) wymiar_dla_wspet=wymiar_roboczy*wspet wymiar_proporcjonalny=wymiar_proporcjonalny+wymiar_dla_wspet*(mcy_ang_tot-1)/12 end of {Strategia zmiany wymiaru etatu}='Liczenie wg stanu dotycz¥cego ponad poˆowy miesi¥ca' if dzieä(licz_od) >= 15 wymiar_dla_wspet=Zaokr¥glenie w g¢r© (wymiar_roboczy*wspet_o) if {Urlopy w ci¥gu roku zaokr¥gla†}='ka¾dy okres osobno' wymiar_proporcjonalny=wymiar_proporcjonalny+Zaokr¥glenie w g¢r© (wymiar_dla_wspet*1/12) wymiar_dla_wspet=Zaokr¥glenie w g¢r© (wymiar_roboczy*wspet) dodaj=Zaokr¥glenie w g¢r© (wymiar_dla_wspet*1/12) wymiar_proporcjonalny=wymiar_proporcjonalny+Zaokr¥glenie w g¢r© (wymiar_dla_wspet*(mcy_ang_tot-1)/12) dodaj=dodaj+Zaokr¥glenie w g¢r© (wymiar_dla_wspet*(mcy_ang_tot-1)/12) else wymiar_proporcjonalny=wymiar_proporcjonalny+wymiar_dla_wspet*(1/12) dodaj=wymiar_dla_wspet*1/12 wymiar_dla_wspet=Zaokr¥glenie w g¢r© (wymiar_roboczy*wspet) wymiar_proporcjonalny=wymiar_proporcjonalny+wymiar_dla_wspet*(mcy_ang_tot-1)/12 dodaj=dodaj+Zaokr¥glenie w g¢r© (wymiar_dla_wspet*(mcy_ang_tot-1)/12) end else wymiar_dla_wspet=Zaokr¥glenie w g¢r© (wymiar_roboczy*wspet) if {Urlopy w ci¥gu roku zaokr¥gla†}='ka¾dy okres osobno' wymiar_proporcjonalny=wymiar_proporcjonalny+Zaokr¥glenie w g¢r© (wymiar_dla_wspet*(mcy_ang_tot-1)/12) dodaj=Zaokr¥glenie w g¢r© (wymiar_dla_wspet*(mcy_ang_tot-1)/12) else wymiar_proporcjonalny=wymiar_proporcjonalny+wymiar_dla_wspet*(mcy_ang_tot-1)/12 dodaj=wymiar_dla_wspet*(mcy_ang_tot-1)/12 end end of {Strategia zmiany wymiaru etatu}='Liczenie najkorzystniej dla pracownika' if i < poz_num if TabNum(i,3) < TabNum(i+1,3) // wspet >= nast©pnego wspet if miesi¥c(TabNum(i,2))=miesi¥c(TabNum(i+1,1)) wspet_akt=TabNum(i+1,3) end end end wymiar_dla_wspet=wymiar_roboczy*wspet_akt of {Strategia zmiany wymiaru etatu} ='Liczenie wg stanu na ostatni dzieä miesi¥ca' wymiar_dla_wspet=Zaokr¥glenie w g¢r© (wymiar_roboczy*wspet) if {Urlopy w ci¥gu roku zaokr¥gla†}='ka¾dy okres osobno' wymiar_proporcjonalny=wymiar_proporcjonalny+Zaokr¥glenie w g¢r© (wymiar_dla_wspet*(mcy_ang_tot)/12) else wymiar_proporcjonalny=wymiar_proporcjonalny+wymiar_dla_wspet*(mcy_ang_tot)/12 end else wymiar_dla_wspet=Zaokr¥glenie w g¢r© (wymiar_roboczy*wspet) if {Urlopy w ci¥gu roku zaokr¥gla†}='ka¾dy okres osobno' wymiar_proporcjonalny=wymiar_proporcjonalny+Zaokr¥glenie w g¢r© (wymiar_dla_wspet*mcy_ang_tot/12) else wymiar_proporcjonalny=wymiar_proporcjonalny+wymiar_dla_wspet*mcy_ang_tot/12 end end else zmiana=1 case of {Strategia zmiany wymiaru etatu}='Liczenie wg stanu na 1-y dzieä miesi¥ca' or {Strategia zmiany wymiaru etatu}='' if i=1 wspet_o=wspet end wym_dla_wsp_noz=wymiar_roboczy*wspet wymiar_dla_wspet=Zaokr¥glenie w g¢r© (wymiar_roboczy*wspet) if {Urlopy w ci¥gu roku zaokr¥gla†}='ka¾dy okres osobno' wymiar_prop_noz=wymiar_prop_noz+Zaokr¥glenie w g¢r© (wymiar_dla_wspet*mcy_ang_tot/12) wymiar_dla_wspet=Zaokr¥glenie w g¢r© (wymiar_roboczy*wspet) wymiar_proporcjonalny=wymiar_proporcjonalny+Zaokr¥glenie w g¢r© (wymiar_dla_wspet*mcy_ang_tot/12) else wymiar_prop_noz=wymiar_prop_noz+wym_dla_wsp_noz*mcy_ang_tot/12 wymiar_dla_wspet=Zaokr¥glenie w g¢r© (wymiar_roboczy*wspet) wymiar_proporcjonalny=wymiar_proporcjonalny+wymiar_dla_wspet*mcy_ang_tot/12 end of {Strategia zmiany wymiaru etatu}='Liczenie wg stanu dotycz¥cego ponad poˆowy miesi¥ca' if i=1 wymiar_dla_wspet=Zaokr¥glenie w g¢r© (wymiar_roboczy*wspet) if {Urlopy w ci¥gu roku zaokr¥gla†}='ka¾dy okres osobno' wymiar_proporcjonalny=wymiar_proporcjonalny+Zaokr¥glenie w g¢r© (wymiar_dla_wspet*mcy_ang_tot/12) dodaj=Zaokr¥glenie w g¢r© (wymiar_dla_wspet*mcy_ang_tot/12) else wymiar_proporcjonalny=wymiar_proporcjonalny+wymiar_dla_wspet*mcy_ang_tot/12 dodaj=dodaj+wymiar_dla_wspet*mcy_ang_tot/12 end else if dzieä(licz_od) >= 15 wymiar_dla_wspet=Zaokr¥glenie w g¢r© (wymiar_roboczy*wspet) dodaj=Zaokr¥glenie w g¢r© (wymiar_dla_wspet/12) if {Urlopy w ci¥gu roku zaokr¥gla†}='ka¾dy okres osobno' wymiar_proporcjonalny=wymiar_proporcjonalny+Zaokr¥glenie w g¢r© (wymiar_dla_wspet/12) wymiar_dla_wspet=Zaokr¥glenie w g¢r© (wymiar_roboczy*wspet) wymiar_proporcjonalny=wymiar_proporcjonalny+Zaokr¥glenie w g¢r© (wymiar_dla_wspet*(mcy_ang_tot-1)/12) dodaj=dodaj+Zaokr¥glenie w g¢r© (wymiar_dla_wspet*(mcy_ang_tot-1)/12) else wymiar_proporcjonalny=wymiar_proporcjonalny+wymiar_dla_wspet/12 dodaj=wymiar_dla_wspet/12 wymiar_dla_wspet=Zaokr¥glenie w g¢r© (wymiar_roboczy*wspet) wymiar_proporcjonalny=wymiar_proporcjonalny+wymiar_dla_wspet*(mcy_ang_tot-1)/12 dodaj=dodaj+wymiar_dla_wspet*(mcy_ang_tot-1)/12 end else wymiar_dla_wspet=Zaokr¥glenie w g¢r© (wymiar_roboczy*wspet) if {Urlopy w ci¥gu roku zaokr¥gla†}='ka¾dy okres osobno' wymiar_proporcjonalny=wymiar_proporcjonalny+Zaokr¥glenie w g¢r© (wymiar_dla_wspet*mcy_ang_tot/12) dodaj=Zaokr¥glenie w g¢r© (wymiar_dla_wspet*mcy_ang_tot/12) else wymiar_proporcjonalny=wymiar_proporcjonalny+wymiar_dla_wspet*mcy_ang_tot/12 dodaj=wymiar_dla_wspet*mcy_ang_tot/12 end end end of {Strategia zmiany wymiaru etatu}='Liczenie najkorzystniej dla pracownika' if i < poz_num if TabNum(i,3) < TabNum(i+1,3) // wspet >= nast©pnego wspet if miesi¥c(TabNum(i,2))=miesi¥c(TabNum(i+1,1)) wspet_akt=TabNum(i+1,3) end end end wymiar_dla_wspet=Zaokr¥glenie w g¢r© (wymiar_roboczy*wspet_akt) wymiar_proporcjonalny=wymiar_proporcjonalny+wymiar_dla_wspet*mcy_ang_tot/12 of {Strategia zmiany wymiaru etatu} ='Liczenie wg stanu na ostatni dzieä miesi¥ca' wymiar_dla_wspet=Zaokr¥glenie w g¢r© (wymiar_roboczy*wspet) if {Urlopy w ci¥gu roku zaokr¥gla†}='ka¾dy okres osobno' wymiar_proporcjonalny=wymiar_proporcjonalny+Zaokr¥glenie w g¢r© (wymiar_dla_wspet*mcy_ang_tot/12) else wymiar_proporcjonalny=wymiar_proporcjonalny+wymiar_dla_wspet*mcy_ang_tot/12 end else wymiar_dla_wspet=Zaokr¥glenie w g¢r© (wymiar_roboczy*wspet) if {Urlopy w ci¥gu roku zaokr¥gla†}='ka¾dy okres osobno' wymiar_proporcjonalny=wymiar_proporcjonalny+Zaokr¥glenie w g¢r© (wymiar_dla_wspet*mcy_ang_tot/12) else wymiar_proporcjonalny=wymiar_proporcjonalny+wymiar_dla_wspet*mcy_ang_tot/12 end end end zwol=TabNum(i,4) last_ang_do=Kartoteka anga¾y (Data do) if last_ang_do=0 last_ang_do=data(31,12,rok(na_dzien)) end licz_do_prev=licz_do ang_od=TabNum(i,1) i=i+1 end if dnia > 0 et_nor_do_ang=wspet/12 wymiar_dla_wspet=Zaokr¥glenie w g¢r© (wymiar_roboczy*wspet) if {Urlopy w ci¥gu roku zaokr¥gla†}='ka¾dy okres osobno' and wspet <> wspet_o wymiar_proporcjonalny=wymiar_proporcjonalny+Zaokr¥glenie w g¢r© (wymiar_dla_wspet/12) else wymiar_proporcjonalny=wymiar_proporcjonalny+wymiar_dla_wspet/12 end end //info('POLZNOR O LAST : wym_prop='&num2txt(wymiar_proporcjonalny)) Return (Max(wymiar_proporcjonalny,0))