data_zatr=Zatrudniony od (data) //okre˜lenie ostatniej daty zmiany wymiaru czasu pracy pracownika data_zmiany_wymiaru=Data ostatniej zmiany wymiaru czasu pracy (data) // Zapytaj o dat© za˜wiadczenia ZUS Z-3 (data,data_nieob,data_lek,il_ubezp,data_zmiany_wymiaru,okres_od,okres_do, zaswiadcz$) if not KodWyj˜cia() PrzerwijWydrukRaportu() exit() end // Czy˜†TabNum() Czy˜†TabTxt() Free(Kolejka) // punkt2=0 //poprzednie okresy ubezpieczenia chorobowego punkt3=0 //poprzednie okresy ubezpieczenia spoˆecznego punkt4=0 // wypadek punkt6=0 // wynagrodzenie chor. punkt7=0 // zasiˆki // urlop_m$='' // okres urlopu ojcowskiego (F) opis_f$='' // opis urlopu ojcowskiego (F) opis_m$='' // opis udzielonych urlop¢w M,H,F,Y jest_m=0 // wska«nik, czy byˆ M,H,Y // k$=PobierzNieobecno˜†(data_nieob) //----------------ML----------------------- //dalsze zwolnienie po ustaniu zatrudnienia if k$='' k$=PobierzNieobecno˜†(data_nieob-1) end //----------------------------------------- kod_chor$=Nieobecno˜† (Nr choroby) case of k$='8' or k$='C' or k$='7' or k$='T' or | k$='2' or k$='1' or k$='3' rodz_z$='chorobowy' rodz_opis$='zasiˆek chorobowy' of k$='4' or k$='5' or k$='6' or k$='9' rodz_z$='˜wiadczenie' rodz_opis$='˜wiadczenie rehabilitacyjne' of k$='M' or k$='H' or k$='F' or k$='Y' rodz_z$='macierzyäski' rodz_opis$='zasiˆek macierzyäski' // if k$='F' //opis_m$='urlopu ojcowskiego' opis_f$='urlopu ojcowskiego' urlop_m$='od dn.' && data2txt(Nieobecno˜† (Data Od)) urlop_m$=urlop_m$ && chr(255) & 'do dn.' && data2txt(Nieobecno˜† (Data Do)) urlop_m$=urlop_m$ && 'urlop ojcowski' else jest_m=1 end // case // of k$='H' // opis_m$='dodatkowego urlopu macierzyäskiego' // of k$='F' // opis_m$='urlopu ojcowskiego' // of k$='Y' // opis_m$='urlopu rodzicielskiego' // of k$='M' // opis_m$='urlopu macierzyäskiego' // end // of k$='D' or k$='I' or k$='E' rodz_z$='' else rodz_z$='' end if k$='1' or k$='2' Pytania ZUS Z-3 (nr_karty_wyp$,data_wyd_karty,powod$,dokument$) punkt4=1 end // sprawdzenie czy ubezpieczenie pracownika w obecnym zakˆadzie obj©ˆo 30 dni // bez chor¢b if not (k$='1' or k$='2' or k$='M' or k$='D' or k$='I' or k$='E' or | k$='H' or k$='F' or k$='Y') //// i=data_nieob dni=0 while dni<31 k$=PobierzNieobecno˜†(i) if k$='8' or k$='C' or k$='7' or k$='T' or | k$='4' or k$='5' or k$='6' or k$='9' i=Nieobecno˜†(Data Od) i=i-1 else dni=dni+1 i=i-1 end if i=data_zatr-1 break end end // zaliczenie sˆu¾by wojskwej do okresu wyczekiwania; czy zatrudnienie zacz©ˆo // si© po sˆu¾bie zasadniczej w ci¥gu 30 dni data_sw=Pracownik (Sˆu¾ba wojskowa do dnia) if data_sw<>0 and data_sw+30<=data_zatr dni=31 end else dni=31 end // je¾eli pracownik w obecnym zakˆadzie nie przepracowaˆ 30 dni // to sprawdzamy poprzednie zatrudnienia oraz przerwy mi©dzy nimi max.30 dni i=0 if dni<30 punkt2=2 od=data_zatr Przebieg pracy zawodowej (Data od)=data_zatr Set(Przebieg pracy zawodowej) Loop Previous(Przebieg pracy zawodowej) if eof() or dni>30 break end Post©p() if not Przebieg pracy zawodowej (Min) cycle end data1=Przebieg pracy zawodowej (Data od) data2=Przebieg pracy zawodowej (Data do) //if data2+30=31 i=i+1 TabNum(1,i)=data1 TabNum(2,i)=data2 punkt2=1 break else i=i+1 TabNum(1,i)=data1 TabNum(2,i)=data2 punkt2=1 end od=Przebieg pracy zawodowej (Data od) End end //INFO(num2txt(dni)&&num2txt(punkt2)) s1=i //info('filtr_s1:'&& num2txt(i) && 'dni:'&& num2txt(dni)) // sprawdzenie czy przcownik zatrudniony dˆu¾ej niz dwa lata a1=Dzieä(data_nieob) a2=Miesi¥c(data_nieob) a3=Rok(data_nieob) okres=Data(a1,a2,a3-2) if data_zatr>okres punkt3=2 Clear(Przebieg pracy zawodowej) Set(Przebieg pracy zawodowej) Loop Next(Przebieg pracy zawodowej) if eof() or Przebieg pracy zawodowej (Data od)>data_zatr break end Post©p() if not Przebieg pracy zawodowej (Min) cycle end data1=Przebieg pracy zawodowej (Data od) data2=Przebieg pracy zawodowej (Data do) i=i+1 TabNum(1,i)=data1 TabNum(2,i)=data2 punkt3=1 end end s3=i okres=PierwszyDzieä(data_nieob) pierwszy=data_nieob-1 //info('okres:' && data2txt(okres) && 'pierwszy:' && data2txt(pierwszy)) while okres>=PierwszyDzieä(data_zatr) ostatni=Ostatnidzieä(okres) //info('okres:' && data2txt(okres) && 'ostatni:' && data2txt(ostatni)) WybierzListyPracownika(okres,ostatni) Loop Nast©pnaListaPˆac() if eof() or Lista (Okres)>ostatni break end Post©p() // tylko lista podstawowa if Lista (Nr typu listy) <>1 cycle end // //info('lista nr:' && num2txt(Lista (Numer)) && data2txt(Lista (Okres) )) if Lista (Zamkni©ta) Karta zasiˆkowa (Okres)=OstatniDzieä(Lista (Okres))+1 Set(Karta zasiˆkowa) //Loop // Next(Karta zasiˆkowa) // if eof() or Karta zasiˆkowa (Okres)<>Lista(Okres) // break // end // if Karta zasiˆkowa (Data od)>pierwszy // break // end //end // INFO('1'&&okres2txt(okres)&&okres2txt(Karta zasiˆkowa (Okres))&&data2txt(Karta zasiˆkowa (Data od))&&data2txt(Karta zasiˆkowa (Data do))) Loop Previous(Karta zasiˆkowa) if eof() or Karta zasiˆkowa (Okres)0) Kolejka (Num1)=5 Kolejka (Num2)=Karta zasiˆkowa (Data od) Kolejka (Num3)=Karta zasiˆkowa (Data do) Kolejka (Txt1)=Karta zasiˆkowa (Nr statystyczny choroby) Kolejka (Txt2)=Karta zasiˆkowa (zasiˆek) Kolejka (Txt3)=Karta zasiˆkowa (kod) Kolejka (Num4)=Karta zasiˆkowa (zus) Kolejka (Num5)=Karta zasiˆkowa (Procent zasiˆku) // GET(Kolejka,'Num1,Num2,Num3') IF not Found() Add(Kolejka,'Num1,Num2,Num3') kod_chor$=Karta zasiˆkowa (Nr statystyczny choroby) pierwszy=Karta zasiˆkowa (Data od)-1 // INFO('add1'&&data2txt(Karta zasiˆkowa (Data od))) END of Karta zasiˆkowa (Data do)=pierwszy or | pierwszy-Karta zasiˆkowa (Data do)<=60 Kolejka (Num1)=5 Kolejka (Num2)=Karta zasiˆkowa (Data od) Kolejka (Num3)=Karta zasiˆkowa (Data do) Kolejka (Txt1)=Karta zasiˆkowa (Nr statystyczny choroby) Kolejka (Txt2)=Karta zasiˆkowa (zasiˆek) Kolejka (Txt3)=Karta zasiˆkowa (kod) Kolejka (Num4)=Karta zasiˆkowa (zus) Kolejka (Num5)=Karta zasiˆkowa (Procent zasiˆku) // GET(Kolejka,'Num1,Num2,Num3') IF not Found() Add(Kolejka,'Num1,Num2,Num3') kod_chor$=Karta zasiˆkowa (Nr statystyczny choroby) pierwszy=Karta zasiˆkowa (Data od)-1 // INFO('add2'&&data2txt(Karta zasiˆkowa (Data od))) END of Karta zasiˆkowa (zus)=0 and Rok(Karta zasiˆkowa (Okres))=Rok(data_nieob) Kolejka (Num1)=5 Kolejka (Num2)=Karta zasiˆkowa (Data od) Kolejka (Num3)=Karta zasiˆkowa (Data do) Kolejka (Txt1)=Karta zasiˆkowa (Nr statystyczny choroby) Kolejka (Txt2)=Karta zasiˆkowa (zasiˆek) Kolejka (Txt3)=Karta zasiˆkowa (kod) Kolejka (Num4)=Karta zasiˆkowa (zus) Kolejka (Num5)=Karta zasiˆkowa (Procent zasiˆku) // GET(Kolejka,'Num1,Num2,Num3') IF not Found() Add(Kolejka,'Num1,Num2,Num3') kod_chor$=Karta zasiˆkowa (Nr statystyczny choroby) pierwszy=Karta zasiˆkowa (Data od)-1 // INFO('add3'&&data2txt(Karta zasiˆkowa (Data od))) END end end end else Kartoteka zasiˆkowa systemowa (Data od)=pierwszy Set(Kartoteka zasiˆkowa systemowa) Loop Previous(Kartoteka zasiˆkowa systemowa) if eof() break end //INFO('2'&&okres2txt(okres)&&data2txt(Kartoteka zasiˆkowa systemowa (Data od))&&data2txt(Kartoteka zasiˆkowa systemowa (Data do))&&data2txt(pierwszy)) Post©p() if Kartoteka zasiˆkowa systemowa (Numer listy)=Lista (Nr systemowy) and Kartoteka zasiˆkowa systemowa (zasiˆek)=rodz_z$ a1=pierwszy-Kartoteka zasiˆkowa systemowa (Data do) //INFO('In'&&num2txt(a1)&&kod_chor$) case of Kartoteka zasiˆkowa systemowa (Data do)=pierwszy or | (pierwszy-Kartoteka zasiˆkowa systemowa (Data do)<=60 and InString('A',kod_chor$)>0) Kolejka (Num1)=5 Kolejka (Num2)=Kartoteka zasiˆkowa systemowa (Data od) Kolejka (Num3)=Kartoteka zasiˆkowa systemowa (Data do) Kolejka (Txt1)=Kartoteka zasiˆkowa systemowa (Nr choroby) Kolejka (Txt2)=Kartoteka zasiˆkowa systemowa (zasiˆek) Kolejka (Txt3)=Kartoteka zasiˆkowa systemowa (kod) Kolejka (Num4)=Kartoteka zasiˆkowa systemowa (zus) Kolejka (Num5)=Kartoteka zasiˆkowa systemowa (Procent zasiˆku) Add(Kolejka,'Num1,Num2') kod_chor$=Kartoteka zasiˆkowa systemowa (Nr choroby) pierwszy=Kartoteka zasiˆkowa systemowa (Data od)-1 //INFO('Add'&&data2txt(Kartoteka zasiˆkowa systemowa (Data od))) of Kartoteka zasiˆkowa systemowa (Data do)=pierwszy or | pierwszy-Kartoteka zasiˆkowa systemowa (Data do)<=60 Kolejka (Num1)=5 Kolejka (Num2)=Kartoteka zasiˆkowa systemowa (Data od) Kolejka (Num3)=Kartoteka zasiˆkowa systemowa (Data do) Kolejka (Txt1)=Kartoteka zasiˆkowa systemowa (Nr choroby) Kolejka (Txt2)=Kartoteka zasiˆkowa systemowa (zasiˆek) Kolejka (Txt3)=Kartoteka zasiˆkowa systemowa (kod) Kolejka (Num4)=Kartoteka zasiˆkowa systemowa (zus) Kolejka (Num5)=Kartoteka zasiˆkowa systemowa (Procent zasiˆku) Add(Kolejka,'Num1,Num2') kod_chor$=Kartoteka zasiˆkowa systemowa (Nr choroby) pierwszy=Kartoteka zasiˆkowa systemowa (Data od)-1 //INFO('Add'&&data2txt(Kartoteka zasiˆkowa systemowa (Data od))) of Kartoteka zasiˆkowa systemowa (zus)=0 and Rok(Kartoteka zasiˆkowa systemowa (Data od))=Rok(data_nieob) Kolejka (Num1)=5 Kolejka (Num2)=Kartoteka zasiˆkowa systemowa (Data od) Kolejka (Num3)=Kartoteka zasiˆkowa systemowa (Data do) Kolejka (Txt1)=Kartoteka zasiˆkowa systemowa (Nr choroby) Kolejka (Txt2)=Kartoteka zasiˆkowa systemowa (zasiˆek) Kolejka (Txt3)=Kartoteka zasiˆkowa systemowa (kod) Kolejka (Num4)=Kartoteka zasiˆkowa systemowa (zus) Kolejka (Num5)=Kartoteka zasiˆkowa systemowa (Procent zasiˆku) Add(Kolejka,'Num1,Num2') end end end end end okres=PierwszyDzieä(okres-1) end a1=Records(Kolejka) k=0 //INFO('z kolejki do TAB a1:' && num2txt(a1) && 'i:'&& num2txt(i)) while k'' wyrownanie=1 else wyrownanie=0 end else system_placy$='' wyrownanie=0 end PobierzOkres(okres) lista_podstawowa=Wyr¢¾nikOkresu (Kod) if lista_podstawowa=0 lista_podstawowa=Wyr¢¾nikOkresu (OK) end if lista_podstawowa dni=Wyr¢¾nikOkresu (Podstawa stawki zasiˆkowej:Ilo˜† dni przepracowa.) dni_robocze=Wyr¢¾nikOkresu (Ilo˜† dni roboczych) suma_skl_uzupelnianych=Wyr¢¾nikOkresu (Podstawa stawki zasiˆkowej:Skˆadnik uzupeˆniany) suma_dod_skl_uzupelniany=Wyr¢¾nikOkresu (Podstawa stawki zasiˆkowej:Dodatkowy skˆ. uzupeˆn.) suma_skl_nie_uzupelnianych=Wyr¢¾nikOkresu (Podstawa stawki zasiˆkowej:Skˆadnik nie uzupeˆnia.) angaz=Wyr¢¾nikOkresu (Podstawa stawki zasiˆkowej:Skˆadnik staˆy) dni_nn=Wyr¢¾nikOkresu (Ilo˜† dni nieobecno˜ci nieuspr. niepˆatnych) godziny_robocze=Wyr¢¾nikOkresu (Ilo˜† godzin roboczych) stawka_godzinowa=Wyr¢¾nikOkresu (Stawka godzinowa) kod_funkcyjnego=Wyr¢¾nikOkresu (Kod funkcyjnego) funkcyjny=Wyr¢¾nikOkresu (Dodatek funkcyjny) funkcyjny_nominalny=Wyr¢¾nikOkresu (Dodatek funkcyjny nominalny) funkcyjny_z_miesiaca=Wyr¢¾nikOkresu (Dodatek funkcyjny z miesi¥ca) dni_u=Wyr¢¾nikOkresu (Ilo˜† dni urlopu wypoczynkowego)-Wyr¢¾nikOkresu (Korekta ilo˜ci dni urlopu wypoczynkowego) dni_u=dni_u+Wyr¢¾nikOkresu (Ilo˜† dni urlopu rehabilitacyjnego)-Wyr¢¾nikOkresu (Korekta ilo˜ci dni urlopu rehabilitacyjnego) dni_u=dni_u+Wyr¢¾nikOkresu (Ilo˜† dni nieobecno˜ci usprawiedliwionych pˆatnych)-Wyr¢¾nikOkresu (Korekta ilo˜ci dni nieobecno˜ci usprawied.pˆatnych) a1=Wyr¢¾nikOkresu (Kod) if a1>0 a2=int(a1/10000) case of a2=1 p_system_placy$='miesi©czny' of a2=2 p_system_placy$='prowizyjny' of a2=3 p_system_placy$='godzinowy' of a2=4 p_system_placy$='akordowy' of a2=5 p_system_placy$='godzinowo-akordowy' end else p_system_placy$=system_placy$ end PobierzOkres(Ostatnidzieä(okres)+1) dni=dni+Wyr¢¾nikOkresu (Korekta ilo˜ci dni przepracowanych) dni=dni+Wyr¢¾nikOkresu (Korekta ilo˜ci dni urlopu wypoczynkowego) dni=dni+Wyr¢¾nikOkresu (Korekta ilo˜ci dni nieobecno˜ci usprawied.pˆatnych) dni=dni+Wyr¢¾nikOkresu (Korekta ilo˜ci dni urlopu rehabilitacyjnego) dni_nn=dni_nn+Wyr¢¾nikOkresu (Korekta ilo˜ci dni nieobecno˜ci nieuspr. niepˆat.) suma_skl_uzupelnianych=suma_skl_uzupelnianych+Wyr¢¾nikOkresu (Podstawa stawki zasiˆkowej:Nadpˆaty i niedopˆaty) suma_dod_skl_uzupelniany=suma_dod_skl_uzupelniany+Wyr¢¾nikOkresu (Podstawa stawki zasiˆkowej:Nadpˆaty i niedopˆaty D) funkcyjny_korekty=Wyr¢¾nikOkresu (Funkcyjny nadpˆaty niedopˆaty) dni_u=dni_u+Wyr¢¾nikOkresu (Korekta ilo˜ci dni urlopu wypoczynkowego) dni_u=dni_u+Wyr¢¾nikOkresu (Korekta ilo˜ci dni urlopu rehabilitacyjnego) dni_u=dni_u+Wyr¢¾nikOkresu (Korekta ilo˜ci dni nieobecno˜ci usprawied.pˆatnych) case of p_system_placy$='miesi©czny' and zmienne=1 and wyrownanie<>2 if dni<>dni_robocze and dni_u=0 suma_skl_uzupelnianych=0 if kod_funkcyjnego=1 angaz=angaz+funkcyjny_nominalny end else angaz=0 if kod_funkcyjnego=1 suma_skl_uzupelnianych=suma_skl_uzupelnianych+funkcyjny_z_miesiaca+funkcyjny_korekty end end of p_system_placy$='miesi©czny' and zmienne=0 and wyrownanie<>2 if dni=dni_robocze if kod_funkcyjnego=1 suma_skl_uzupelnianych=suma_skl_uzupelnianych+funkcyjny_z_miesiaca+funkcyjny_korekty end angaz=suma_skl_uzupelnianych suma_skl_uzupelnianych=0 else suma_skl_uzupelnianych=0 if kod_funkcyjnego=1 angaz=angaz+funkcyjny_nominalny end end of p_system_placy$='godzinowy' and zmienne=1 and wyrownanie<>2 angaz=godziny_robocze*stawka_godzinowa if dni<>dni_robocze and dni_u=0 suma_skl_uzupelnianych=0 if kod_funkcyjnego=1 angaz=angaz+funkcyjny_nominalny end else angaz=0 if kod_funkcyjnego=1 suma_skl_uzupelnianych=suma_skl_uzupelnianych+funkcyjny_z_miesiaca+funkcyjny_korekty end end of p_system_placy$='godzinowy' and zmienne=0 and wyrownanie<>2 angaz=godziny_robocze*stawka_godzinowa if dni=dni_robocze if kod_funkcyjnego=1 suma_skl_uzupelnianych=suma_skl_uzupelnianych+funkcyjny_z_miesiaca+funkcyjny_korekty end angaz=suma_skl_uzupelnianych suma_skl_uzupelnianych=0 else suma_skl_uzupelnianych=0 if kod_funkcyjnego=1 angaz=angaz+funkcyjny_nominalny end end // of p_system_placy$='miesi©czny' and dni<>dni_robocze and not (dni_u>0 and zmienne=1) // if wyrownanie=2 //nakladcy // angaz=0 //a1=suma_skl_uzupelnianych // else // suma_skl_uzupelnianych=0 // if kod_funkcyjnego=1 // angaz=angaz+funkcyjny_nominalny // end // end // of p_system_placy$='godzinowy' and dni<>dni_robocze and not (dni_u>0 and zmienne=1) // angaz=godziny_robocze*stawka_godzinowa // if wyrownanie=2 //nakladcy // angaz=0 // else // suma_skl_uzupelnianych=0 // if kod_funkcyjnego=1 // angaz=angaz+funkcyjny_nominalny // end // end else //inne systemy wynagradzania angaz=0 if kod_funkcyjnego=1 suma_skl_uzupelnianych=suma_skl_uzupelnianych+funkcyjny_z_miesiaca+funkcyjny_korekty end end if kod_funkcyjnego=0 suma_skl_nie_uzupelnianych=suma_skl_nie_uzupelnianych+funkcyjny end else //wdrozenie suma_skl_nie_uzupelnianych=Wyr¢¾nikOkresu (Podstawa stawki zasiˆkowej:Skˆadnik nie uzupeˆnia.) dni=Wyr¢¾nikOkresu (Podstawa stawki zasiˆkowej:Ilo˜† dni przepracowa.) dni_robocze=Wyr¢¾nikOkresu (Ilo˜† dni roboczych) end PobierzOkres(okres) skladki_sp=Wyr¢¾nikOkresu(Skˆadki na ubezpieczenie spoˆeczne,1) skladki_sp=skladki_sp-Wyr¢¾nikOkresu (Skˆadki za okresy dˆu¾sze,1) podstawa_ch=Wyr¢¾nikOkresu (Podstawa skˆadki na ub. chorobowe i wypadkowe,1) podstawa_ch=podstawa_ch-Wyr¢¾nikOkresu (Podstawa skˆadki na ub. chorobowe i wypadkowe dˆ.,1) if podstawa_ch>0 skl_procent=Round(skladki_sp/podstawa_ch*100,0.01) else //pierwszy miesi¥c zatrudnienia skl_procent=0 end przyczyna$='' i=okres while i<=OstatniDzieä(okres) k$=PobierzNieobecno˜†(i) if k$<>'' case of k$='8' or k$='C' or k$='7' or k$='T' or k$='1' or k$='2' or k$='3' if not InString('CH',przyczyna$) przyczyna$=LTrim (przyczyna$) & 'CH;' end of k$='4' or k$='5' or k$='6' or k$='9' if not InString('R',przyczyna$) przyczyna$=LTrim (przyczyna$) & 'R;' end of k$='D' or k$='I' or k$='E' if not InString('OP',przyczyna$) przyczyna$=LTrim (przyczyna$) & 'OP;' end of k$='M' or k$='H' or k$='F' or k$='Y' if not InString('M',przyczyna$) przyczyna$=LTrim (przyczyna$) & 'M;' end of k$='B' or k$='Q' if not InString('B',przyczyna$) przyczyna$=LTrim (przyczyna$) & 'B;' end of k$='J' or k$='P' if not InString('NU',przyczyna$) przyczyna$=LTrim (przyczyna$) & 'NU;' end of k$='W' if not InString('W',przyczyna$) przyczyna$=LTrim (przyczyna$) & 'W;' end of k$='N' if not InString('NN',przyczyna$) przyczyna$=LTrim (przyczyna$) & 'NN;' end end i=Nieobecno˜† (Data Do) end i=i+1 end Clear(Kolejka) Kolejka (Num1)=1 Kolejka (Num2)=okres Kolejka (Num3)=dni Kolejka (Num4)=dni_robocze Kolejka (Txt2)=przyczyna$ Kolejka (Num5)=suma_skl_uzupelnianych+suma_dod_skl_uzupelniany Kolejka (Num6)=skl_procent Kolejka (Num8)=angaz Kolejka (Num9)=suma_skl_nie_uzupelnianych Add(Kolejka,'Num1,Num2') // okres=OstatniDzieä(okres)+1 end //// a1=Miesi¥c(data_nieob) a3=Rok(data_nieob) case of a1=1 or a1=2 or a1=3 okres=Data(1,12,a3-1) of a1=4 or a1=5 or a1=6 okres=Data(1,3,a3) of a1=7 or a1=8 or a1=9 okres=Data(1,6,a3) of a1=10 or a1=11 or a1=12 okres=Data(1,9,a3) end i=4 z=1 wsp=1 while i>0 a1=Miesi¥c(okres) a2=Rok(okres) case of a1>=1 and a1<=3 kwartal=Data(1,1,a2) of a1>=4 and a1<=6 kwartal=Data(1,2,a2) of a1>=7 and a1<=9 kwartal=Data(1,3,a2) of a1>=10 and a1<=12 kwartal=Data(1,4,a2) end Wypˆaty premii kwartalnych pracownika (Kwartaˆ)=kwartal Get(Wypˆaty premii kwartalnych pracownika) if not found() if z=1 wsp=2 z=0 else z=0 end Clear(Wypˆaty premii kwartalnych pracownika) else z=0 PobierzOkres(Wypˆaty premii kwartalnych pracownika (Miesi¥c)) a1=Wyr¢¾nikOkresu (Podstawa stawki zasiˆkowej:Skˆadnik kwartalny) a2=Wyr¢¾nikOkresu (Podstawa na spoˆeczne lista skˆ dˆu¾szych) a3=Wyr¢¾nikOkresu (Skˆadki za okresy dˆu¾sze) if a2>0 and a1>0 j=3 dni=0 dni_robocze=0 przyczyna$='' while j>0 PobierzOkres(okres) dni=dni+Wyr¢¾nikOkresu (Podstawa stawki zasiˆkowej:Ilo˜† dni przepracowa.) dni_robocze=dni_robocze+Wyr¢¾nikOkresu (Ilo˜† dni roboczych) PobierzOkres(Ostatnidzieä(okres)+1) dni=dni+Wyr¢¾nikOkresu (Korekta ilo˜ci dni przepracowanych) dni=dni+Wyr¢¾nikOkresu (Korekta ilo˜ci dni urlopu wypoczynkowego) dni=dni+Wyr¢¾nikOkresu (Korekta ilo˜ci dni nieobecno˜ci usprawied.pˆatnych) dni=dni+Wyr¢¾nikOkresu (Korekta ilo˜ci dni urlopu rehabilitacyjnego) //// k=okres while k<=OstatniDzieä(okres) k$=PobierzNieobecno˜†(k) if k$<>'' case of k$='8' or k$='C' or k$='7' or k$='T' or k$='1' or k$='2' or k$='3' if not InString('CH',przyczyna$) przyczyna$=LTrim (przyczyna$) & 'CH;' end of k$='4' or k$='5' or k$='6' or k$='9' if not InString('R',przyczyna$) przyczyna$=LTrim (przyczyna$) & 'R;' end of k$='D' or k$='I' or k$='E' if not InString('OP',przyczyna$) przyczyna$=LTrim (przyczyna$) & 'OP;' end of k$='M' or k$='H' or k$='F' or k$='Y' if not InString('M',przyczyna$) przyczyna$=LTrim (przyczyna$) & 'M;' end of k$='B' or k$='Q' if not InString('B',przyczyna$) przyczyna$=LTrim (przyczyna$) & 'B;' end of k$='J' or k$='P' if not InString('NU',przyczyna$) przyczyna$=LTrim (przyczyna$) & 'NU;' end of k$='W' if not InString('W',przyczyna$) przyczyna$=LTrim (przyczyna$) & 'W;' end of k$='N' if not InString('NN',przyczyna$) przyczyna$=LTrim (przyczyna$) & 'NN;' end end k=Nieobecno˜† (Data Do) end k=k+1 end //// okres=PierwszyDzieä(okres-1) j=j-1 end Clear(Kolejka) Kolejka (Num1)=2 Kolejka (Num2)=kwartal Kolejka (Num3)=dni Kolejka (Num4)=dni_robocze Kolejka (Txt2)=przyczyna$ Kolejka (Num5)=a1 Kolejka (Num6)=Round(a3/a2*100,0.01) Add(Kolejka,'Num1,Num2') //suma=suma+(a1-Round(a1/a2*a3,0.01))*wsp if wsp=2 wsp=1 end end end a1=Wypˆaty premii kwartalnych pracownika (Kwartaˆ) if a1>0 a2=Miesi¥c(a1) a3=Rok(a1) case of a2=1 okres=Data(1,12,a3-1) of a2=2 okres=Data(1,3,a3) of a2=3 okres=Data(1,6,a3) of a2=4 okres=Data(1,9,a3) end else a1=Miesi¥c(kwartal) a2=Rok(kwartal) case of a1=1 okres=Data(1,12,a2-1) of a1=2 okres=Data(1,3,a2) of a1=3 okres=Data(1,6,a2) of a1=4 okres=Data(1,9,a2) end end i=i-1 end okres=PierwszyDzieä(data_nieob) rok=Rok(okres)-1 Wypˆaty premii rocznych pracownika (Rok)=rok Get(Wypˆaty premii rocznych pracownika) if not found() rok=rok-1 Wypˆaty premii rocznych pracownika (Rok)=rok Get(Wypˆaty premii rocznych pracownika) if not found() Clear(Wypˆaty premii rocznych pracownika) end end if Wypˆaty premii rocznych pracownika (Miesi¥c)>0 PobierzOkres(Wypˆaty premii rocznych pracownika (Miesi¥c)) a1=Wyr¢¾nikOkresu (Podstawa stawki zasiˆkowej:Skˆadnik roczny) a2=Wyr¢¾nikOkresu (Podstawa na spoˆeczne lista skˆ dˆu¾szych) a3=Wyr¢¾nikOkresu (Skˆadki za okresy dˆu¾sze) if a2>0 and a1>0 //// j=12 dni=0 dni_robocze=0 przyczyna$='' okres=Data(1,12,rok) while j>0 PobierzOkres(okres) dni=dni+Wyr¢¾nikOkresu (Podstawa stawki zasiˆkowej:Ilo˜† dni przepracowa.) dni_robocze=dni_robocze+Wyr¢¾nikOkresu (Ilo˜† dni roboczych) PobierzOkres(Ostatnidzieä(okres)+1) dni=dni+Wyr¢¾nikOkresu (Korekta ilo˜ci dni przepracowanych) dni=dni+Wyr¢¾nikOkresu (Korekta ilo˜ci dni urlopu wypoczynkowego) dni=dni+Wyr¢¾nikOkresu (Korekta ilo˜ci dni nieobecno˜ci usprawied.pˆatnych) dni=dni+Wyr¢¾nikOkresu (Korekta ilo˜ci dni urlopu rehabilitacyjnego) //// k=okres while k<=OstatniDzieä(okres) k$=PobierzNieobecno˜†(k) if k$<>'' case of k$='8' or k$='C' or k$='7' or k$='T' or k$='1' or k$='2' or k$='3' if not InString('CH',przyczyna$) przyczyna$=LTrim (przyczyna$) & 'CH;' end of k$='4' or k$='5' or k$='6' or k$='9' if not InString('R',przyczyna$) przyczyna$=LTrim (przyczyna$) & 'R;' end of k$='D' or k$='I' or k$='E' if not InString('OP',przyczyna$) przyczyna$=LTrim (przyczyna$) & 'OP;' end of k$='M' or k$='H' or k$='F' or k$='Y' if not InString('M',przyczyna$) przyczyna$=LTrim (przyczyna$) & 'M;' end of k$='B' or k$='Q' if not InString('B',przyczyna$) przyczyna$=LTrim (przyczyna$) & 'B;' end of k$='J' or k$='P' if not InString('NU',przyczyna$) przyczyna$=LTrim (przyczyna$) & 'NU;' end of k$='W' if not InString('W',przyczyna$) przyczyna$=LTrim (przyczyna$) & 'W;' end of k$='N' if not InString('NN',przyczyna$) przyczyna$=LTrim (przyczyna$) & 'NN;' end end k=Nieobecno˜† (Data Do) end k=k+1 end //// okres=PierwszyDzieä(okres-1) j=j-1 end //// Clear(Kolejka) Kolejka (Num1)=3 Kolejka (Num2)=rok Kolejka (Num3)=dni Kolejka (Num4)=dni_robocze Kolejka (Txt2)=przyczyna$ Kolejka (Num5)=a1 Kolejka (Num6)=Round(a3/a2*100,0.01) Add(Kolejka,'Num1,Num2') //suma=suma+(a1-Round(a1/a2*a3,0.01)) end end okres=okres_od while okres<=okres_do data_odu=PierwszyDzieä(okres) data_dou=OstatniDzieä(okres) data_zatrudnienia=Zatrudniony od (data_dou) if data_zatrudnienia>0 data_zatrudnienia=Max(Zatrudniony od (data_dou),data_odu) end data_zwolnienia=Zatrudniony do (data_dou) if data_zwolnienia=0 data_zwolnienia=data_dou else data_zwolnienia=Min(data_zwolnienia,data_dou) end Umowy cywilno_prawne (Data wypˆaty)=data_odu Set(Umowy cywilno_prawne) loop Next(Umowy cywilno_prawne) if eof() or Umowy cywilno_prawne (Data wypˆaty)>data_dou break end if Umowy cywilno_prawne (Rodzaj umowy)='2' //umowa o dzieˆo cycle end if data_zatrudnienia>0 and ZawieraSi©(Umowy cywilno_prawne (Data wypˆaty),data_zatrudnienia,data_zwolnienia) if Umowy cywilno_prawne (Data umowy)>Data(13,1,2000) //umowa zawarta przed miesi¥cem wyst¥pienia zasiˆku if Umowy cywilno_prawne (Data od)>0 and Umowy cywilno_prawne (Data od)=OstatniDzieä(data_nieob) //zm a2=Umowy cywilno_prawne (Chorobowe zleceniobiorca) if a2>0 Clear(Kolejka) Kolejka (Num1)=4 Kolejka (Num2)=PierwszyDzieä(Umowy cywilno_prawne (Data wypˆaty)) if Umowy cywilno_prawne (Data do)>0 Kolejka (Txt2)='umowa zlecenie do dnia'&&data2txt(Umowy cywilno_prawne (Data do)) else Kolejka (Txt2)='umowa zlecenie na czas nieokre˜lony' end Kolejka (Num5)=Umowy cywilno_prawne (Wynagrodzenie brutto) Add(Kolejka,'Num1,Num2') end end end end end end okres=OstatniDzieä(okres)+1 end // udzielone urlopy ojcowskie ciag$='' k=s4 while k'F' cycle end Clear(Kolejka) Kolejka (Num1)=6 Kolejka (Num2)=TabNum(1,k) Kolejka (Num3)=TabNum(2,k) //Kolejka (Num4)=0 //(Data wniosku) Kolejka (Txt3)='F' Add(Kolejka,'Num1,Num2') ciag$='F' opis_m$='urlopu ojcowskiego' end // udzielone urlopy macierzyäskie i rodzicielskie k$='' rodzaj_m$='' //ciag$='' Clear(Dodatkowe informacje do za˜. macierzyäskiego) Set(Dodatkowe informacje do za˜. macierzyäskiego) loop Next(Dodatkowe informacje do za˜. macierzyäskiego) if eof() break end // if Dodatkowe informacje do za˜. macierzyäskiego (Data do) 0 and | Dodatkowe informacje do za˜. macierzyäskiego (Data wniosku) >data //cycle break end Clear(Kolejka) Kolejka (Num1)=6 Kolejka (Num2)=Dodatkowe informacje do za˜. macierzyäskiego (Data od) Kolejka (Num3)=Dodatkowe informacje do za˜. macierzyäskiego (Data do) Kolejka (Num4)=Dodatkowe informacje do za˜. macierzyäskiego (Data wniosku) Kolejka (Txt3)=Dodatkowe informacje do za˜. macierzyäskiego (Rodzaj urlopu) Add(Kolejka,'Num1,Num2') k$=Dodatkowe informacje do za˜. macierzyäskiego (Rodzaj urlopu) case of k$='H' rodzaj_m$='dodatkowego urlopu macierzyäskiego' //of k$='F' // rodzaj_m$='urlopu ojcowskiego' of k$='Y' rodzaj_m$='urlopu rodzicielskiego' of k$='M' rodzaj_m$='urlopu macierzyäskiego' end if not InString(k$,ciag$) if ciag$='' opis_m$=rodzaj_m$ else opis_m$=opis_m$ & ',' & rodzaj_m$ end ciag$=Ltrim(ciag$) & ',' & k$ //info('opis_m:' && opis_m$ && ciag$) end end // if jest_m and rodzaj_m$='' //opis_m$='' Ostrze¾enie('Brak danych o udzielonych urlopach macierzyäskich lub rodzicielskich | - prosz© uzupeˆni† kartotek© "Dodatkowe informacje do za˜. macierzyäskiego"') end // if opis_f$<>'' if opis_m$='' opis_m$=opis_f$ else if not InString(opis_f$,opis_m$) opis_m$=opis_m$ & ',' & opis_f$ end end end