Instrukcja administratora > Załączniki > Funkcje i procedury składowane | | Drukuj |
W bazie danych dostępne są następujące funkcje, ułatwiające pobranie danych przy budowaniu własnych raportów SQL. Przykładowe wykorzystanie funkcji można zobaczyć, pobierając gotowe raporty SQL z internetu - patrz Pobieranie raportów SQL. Funkcje pobierające dane z kart pracy: •fn_KP_NDP(X_IHistorii, Dzien, Mies, Rok) - rodzaj nominalnego dnia pracy, zwraca: 3-dzień pracy, 2-sobota, 1-niedziela, 23-sobota z dnia pracy, 13-niedziela z dnia pracy, 32-dzień pracy z soboty, 31-dzień pracy z niedzieli •fn_KP_SumNDP(NumNDP, X_IHistorii, Mies, Rok) - suma nominalnych dni danego rodzaju, zadajemy NumNDP: 30-wszystkie dni pracy, 20-wszystkie soboty, 10-wszystkie niedziele, 0-wszystkie dni (lub szczególowo wartości, jakie zwraca fn_KP_NDP) •fn_KP_SumKal(X_IKalendarza,Mies,Rok,What) - suma nominalnych dni bezpośrednio z kalendarza, w zależności od What zwraca: 0-nominalne godziny pacy, 1-nominalne dni pracy, 2-ilość sobót, 3-ilość niedziel i świąt •fn_KP_DP(X_IHistorii, Dzien, Mies, Rok) - rodzaj (numer) dnia pracy, zwraca: o0 - niewypełniony o1 - wolny (sobota lub niedziela) o2 - Dp (dni pracy) o3 - De (delegacje) o4 - Ch (chorobowe) o5 - Cs (chorobowe 100%) o6 - Cw (chorobowe wypadkowe) o7 - Rh (rehabilitacja i reh.100%) o8 - Rw (rehabilitacja wyp.) o9 - Op (opieka n.dzieckiem) o10 - On (opieka inne) o11 - Ma (macierzyński i ojcowski) o12 - Uw (urlop wypoczynkowy) o13 - Uo (urlop okolicznościowy) o14 - Un (urlop n.dzieckiem) o15 - Ud (urlop dodatkowy) o16 - Np (nieobecność płatna) o17 - Wu (urlop wychowawczy) o18 - Bu (urlop bezpłatny) o19 - Nu (nieobecność uspr.) o20 - Nn (nieobecność nieuspr.) o21 - Sw (służba wojskowa) o23 - Cp (chorobowe szpitalne) o24 - Uc (urlop wypoczynkowy limitowany) o25 - Cn (chorobowe niepłatne inne i z tyt.nienabycia prawa do zas.) o26 - Us (urlop szkoleniowy) o27 - Ur (urlop rehabilitacyjny) o40 - Praca zdalna hybrydowa o41 - Praca zdalna polecona o42 - Praca zdalna okazjonalna o99 - dni nieobjęte umową •fn_KP_SumDP(NumDP, NumNDP, X_IHistorii, Mies, Rok) - suma dni pracy danego rodzaju, zadajemy: oNumDP - numer rodzaju dnia, zgodnie z wartościami, jakie zwraca fn_KP_DP, dodatkowo dla -1 zwróci sumę nominałów (jak fn_KP_SumNDP) oraz dodatkowo szczegółowe rodzaje dni z karty zasiłkowej: ▪100 - wynagr.za czas choroby 80% / chorobowe szputalne ▪101 - wynagr.za czas choroby 100% ▪102 - wynagr.za czas choroby 100% wypadkowe ▪103 - zasiłek chorobowy 80% ▪104 - zasiłek chorobowy 100% ▪105 - zasiłek chorobowy 100% wypadkowe / zasiłek chorobowy 100% ▪106 - świadczenie rehabilitacyjne ▪107 - świadczenie rehabilitacyjne wypadkowe ▪108 - opieka nad dzieckiem / opieka nad dzieckiem dod. ▪109 - opieka inne ▪110 - zasiłek macierzyński / dodatkowy macierzyńśki / ojcowski / rodzicielski 100% ▪111 - zasiłek chorobowy 70% ▪112 - niepłatny ▪113 - świadczenie rehabilitacyjne 75% ▪114 - świadczenie rehabilitacyjne 100% ▪115 - rodzicielski 60% ▪116 - zasiłek macierzyński 80% / dodatkowy macierzyński 80% / rodzicielski 80% ▪117 - zagraniczny ▪118 - zagraniczny wypadek ▪119 - rodzicielski 70% ▪120 - zasiłek macierzyński 81,5% / rodzicielski 81,5% oraz dodatkowe wpisy z ewidencji pracy zdalnej: ▪200 - praca zdalna (przy wypełnionej karcie pracy) oNumNDP: 30-wszystkie dni pracy, 20-wszystkie soboty, 10-wszystkie niedziele, 0-wszystkie dni (lub szczególowo wartości, jakie zwraca fn_KP_NDP) •fn_KP_SumDPx(NumDP, NumNDP, X_IHistorii, Od, Do) - funkcja analogiczna do fn_KP_SumDP, tylko w parametrach możmy podać dowolny okres (daty Od Do), nie koniecznie obejmujący jeden miesiąc •fn_KP_SumDGP(NumDP, NumNDP, X_IHistorii, Mies, Rok) - suma dni pracy w godzinach, parametry analogiczne jak w funkcji fn_KP_SumDP •fn_KP_NGP(X_IHistorii, Dzien, Mies, Rok) - ilość nominalnych godzin pracy w danym dniu •fn_KP_SumNGP(X_IHistorii, Mies, Rok) - suma nominalnych godzin pracy w danym miesiącu •fn_KP_GP(NumGodz, X_IHistorii, Dzien, Mies, Rok) - ilość godzin pracy w danym dniu, zadajemy Num_godz jako numer godzin w kartcie pracy, czyli: 2-Godz.pracy, 3-Godz.nadl.50%, 4-Godz.nadl.100%, 5...-kolejne z definicji składników karty pracy, 101-Godz.pracy.fakt., 102-Godz.50%fakt, 103-Godz.100%fakt •fn_KP_SumGP(NumGodz, Dod, X_IHistorii, Mies, Rok) - suma godzin pracy w danym miesiącu, zadajemy: oNum_godz - numer godzin w kartcie pracy, czyli: 2-Godz.pracy, 3-Godz.nadl.50%, 4-Godz.nadl.100%, 5...-kolejne z definicji składników karty pracy, 101-Godz.pracy.fakt., 102-Godz.50%fakt, 103-Godz.100%fakt oDod - 0-sumowane są godziny dodatnie i ujemne, 1-sumowane tylko dodatnie, 2-sumowane tylko ujemne •fn_KP_NarGP(NumGodz,X_IHistorii,Mies,Rok) - narastająco suma godzin pracy do danego miesiąca, zadajemy Num_godz analogicznie jak przy funkcji fn_KP_SumGP •fn_KP_NarGZ(NumGodz,X_IHistorii,Mies,Rok) - narastająco suma godzin zapłaconych do danego miesiąca, zadajemy Num_godz jako: 102-Godz.50%fakt, 103-Godz.100%fakt (patrz Miesięczna karta pracy - Godziny do odpracowania) •fn_KP_NarGB(NumGodz,X_IHistorii, Mies, Rok) - narastająco suma godzin zbilansowanych do danego miesiąca, zadajemy Num_godz jako: 102-Godz.50%fakt, 103-Godz.100%fakt Funkcje pobierające dane z ewidencji różnych nieobecności (kart urlopowych, kart zasiłkowych, nieobecności): •fn_IsNieobExt(Szczeg, X_IHistorii, Dzien, Mies, Rok) - rodzaj (numer) dnia pracy, zwraca: odla Szczeg=0: ▪4 - Ch (chorobowe) ▪5 - Cs (chorobowe 100%) ▪6 - Cw (chorobowe wypadkowe) ▪7 - Rh (rehabilitacja i reh.100%) ▪8 - Rw (rehabilitacja wyp.) ▪9 - Op (opieka n.dzieckiem) ▪10 - On (opieka inne) ▪11 - Ma (macierzyński i ojcowski) ▪12 - Uw (urlop wypoczynkowy) ▪13 - Uo (urlop okolicznościowy) ▪14 - Un (urlop n.dzieckiem) ▪15 - Ud (urlop dodatkowy) ▪16 - Np (nieobecność płatna) ▪17 - Wu (urlop wychowawczy) ▪18 - Bu (urlop bezpłatny) ▪19 - Nu (nieobecność uspr.) ▪20 - Nn (nieobecność nieuspr.) ▪21 - Sw (służba wojskowa) ▪23 - Cp (chorobowe szpitalne) ▪24 - Uc (urlop wypoczynkowy limitowany) ▪25 - Cn (chorobowe niepłatne inne i z tyt.nienabycia prawa do zas.) ▪26 - Us (urlop szkoleniowy) ▪27 - Ur (urlop rehabilitacyjny) odla Szczeg=1: ▪100 - wynagr.za czas choroby 80% ▪101 - wynagr.za czas choroby 100% ▪102 - wynagr.za czas choroby 100% wypadkowe ▪103 - zasiłek chorobowy 80% ▪104 - zasiłek chorobowy 100% ▪105 - zasiłek chorobowy 100% wypadkowe ▪106 - świadczenie rehabilitacyjne ▪107 - świadczenie rehabilitacyjne wypadkowe ▪108 - zasiłek opiekuńczy nad dzieckiem 80% ▪109 - zasiłek opiekuńczy inne 80% ▪110 - zasiłek macierzyński 100% / rodzicielski 100% ▪111 - zasiłek chorobowy 70% ▪112 - niepłatny ▪115 - zasiłek macierzyński 60% ▪116 - zasiłek macierzyński 80% / zasiłek dod.macierzyński 80% ▪119 - rodzicielski 70% ▪120 - zasiłek macierzyński 81,5% / rodzicielski 81,5% ▪17 - urlop wychowawczy ▪18 - urlop bezpłatny ▪19 - nieobecność uspr. ▪20 - nieobecność nieuspr. ▪21 - służba wojskowa ▪200 - urlop wypoczynkowy ▪201 - urlop okolicznościowy ▪202 - urlop opieka nad dzieckiem ▪203 - urlop dodatkowy ▪204 - nieobecność płatna ▪205 - urlop wyp.na żądanie ▪206 - ekwiwalent za url.wypocz. ▪207 - urlop szkoleniowy ▪208 - ekwiwlaent za url.dod. ▪209 - nioeobecność płatna (uw) ▪210 - urlop rehabilitacyjny ▪211 - nieobecność płatna (ekw) Funkcje pobierające dane z umów o pracę: •fn_ANG_Zatr(Zatr, Etat, X_IHistorii, Dzien, Mies, Rok) - zwraca informację o zatrudnieniu pracownika w danym dni w ilości (Etat=0) lub w etacie pracownika (Etat=1), w zależności od Zatr: 0 - w całym okresie zatrudnienia, 1 - tylko w pierwszym dniu pracy, -1 - tylko w ostatnim dniu pracy •fn_ANG_SrZatr(Zatr, Etat, X_IHistorii, Mies, Rok) - średnie zatrudnieniu w zadanym miesiącu (Zatr=0) albo ilość zatrudnionych pracowników w miesiącu (Zatr=1) lub zwolnionych (Zatr=-1), w zależności od Etat: 0 - w ilościach pracowników, 1 - w etatach •fn_ANG_Skl(War,Nazwa, X_IUmowy) - wartości zadana (War=0) lub wyliczona (War=1) składnika wynagrodzeń (Nazwa) z umowy o pracę o identyfikatorze (X_IUmowy) Funkcje pobierające dane z list płac: •fn_LP_DSkl(Nazwa, X_IHistorii,Od,Do) - suma wybranego składnika wynagrodzeń za podany okres, obejmujący daty wypłaty list płac, zadajemy: Nazwa - nazwa składnika wynagrodzeń, Od, Do - listy wypłacone w okresie •fn_LP_WSkl(Nazwa, X_IHistorii,Od,Do) - suma składnika Nazwa obejmująca listy płac z podanego Od, Do okresu wynagrodzeń •fn_LP_KSkl(Nazwa, X_IHistorii,Od,Do) - suma składnika wynagrodzeń za podane okresy z kartoteki listy płac •fn_LP_DSys(Nazwa, X_IHistorii,Od,Do) - suma wybranego pola systemowego za podany okres, obejmujący daty wypłaty list płac, zadajemy: Nazwa - nazwa składnika wynagrodzeń, Od, Do - listy wypłacone w okresie •fn_LP_WSys(Nazwa, X_IHistorii,Od,Do) - suma pola Nazwa obejmująca listy płac z podanego Od, Do okresu wynagrodzeń •fn_LP_KSys(Nazwa, X_IHistorii,Od,Do) - suma pola systemowego za podane okresy z kartoteki listy płac •fn_LP_Skl(War,Okres,Nazwa, X_IHistorii,Od,Do) - suma wartości zadanej (War=0) lub wartości wyliczonej (War=1) składnika wynagrodzeń (Nazwa) za podany okres (Od, Do), obejmujący w zależności od paramatru Okres: 0-datę wypłaty listy, 1-okres wynagrodzeń, 2-miesiąc kartoteki Funkcje dodatkowe: •fn_BDate(Mc,Rok) - zwraca datę pierwszego dnia miesiąca •fn_EDate(Mc,Rok) - zwraca datę ostatniego dnia miesiąca •fn_X_IDzial(X_IHistorii,Data) - zwraca identyfikator działu pracownika zapamiętany na dany dzień (Data), jeśli Data=0 to zwróci aktualny identyfikator działu •fn_X_IOddzial(X_IHistorii,Data) - przy rozszerzonej strukturze działów zwraca identyfikator oddziału pracownika zapamiętany na dany dzień •fn_X_IZespol(X_IHistorii,Data) - przy rozszerzonej strukturze działów zwraca identyfikator zespołu pracownika zapamiętany na dany dzień •fn_Przelozony(X_IHistorii,poziom,mod) - zwracja dane przełożonego w zależności od poziomu: o0-dane pracownika o1-bezpośredni przełożony (a jak brak to dane kierownik działu) o2-przełożony przełożonego (a jak brak to dane kierownika działu przełożonego) dla mod: o0 - e-mail z aktualnego zatrudnienia, a jak brak to z adresu do korespondencji o1 - nazwisko i imię o2 - hierarchia: pracownik/przełożony/kierownik działu o3 - hierarchia2: pracownika/przełożonego/kierownika działu o4 - nazwisko i imię (e-mail) o5 - nazwisko i imię (hierarchia) o6 - hierarchia2 (nazwisko i imię) o7 - hierarchia2 (e-mail) Dodatkowe funkcje w bazie BIN: •<BIN>.fn_Kod(Tabela,Pole,Wartość) - tekstowy opis zawartości pola o nazwiePole z tabeli o nazwie Tabela, które w bazie ma wartość wyliczeniową Wartość (smallint) •<BIN>.fn_Podsw(Podsw, X_I, X_P, UserIde, FormName) - funkcja przydatna przy własnym raporcie SQL do wstawienia opcji na podświetlone pozycje w tabeli, np. pracowników: Przykładowe zapytanie, wykorzystujące funkcję (mającą w parametrze X_IHistorii) i zwracające jej wartość dla listy pracowników: SELECT p.Nazwisko, p.Imie, d.Nazwa as 'Dział', h.AzNazwa, dbo.fn_LP_DSkl('Płaca zasadnicza', h.X_I, '2007-01-01', '2007-12-31') as 'Płaca zasadnicza' dbo.fn_KP_SumDPx(2,30,h.X_I,'2007-01-01','2007-12-31') as 'Dni przepracowane' FROM HISTORIA h JOIN PRACOWNK p ON p.X_I = h.X_IPracownik JOIN DZIAL d ON d.X_I = h.X_IDzial WHERE (h.AktZatrudnienie = 1) Funkcje można wykorzystać przy budowaniu własnych raportów - patrz Moduł raportów SQL. W bazie danych dostępne są również następujące procedury: •Nieobecnosci X_IHistorii procedura zwraca tabelę zawierającą wszystkie nieobecności pracownika o podanym numerze aktualnego zatrudnienia (X_IHistorii), dla numeru 0 tabela zawierać będzie nieobecności wszystkich pracowników, tabela zawiera następujące kolumny: X_IHistorii, Od, Do, Rodzaj |