Funkcje i procedury składowane - Instrukcja obsługi programu R2płatnik, R2płatnikPRO, R2płatnikSBO RESET2 Oprogramowanie
Strona używa plików cookies (tzw. ciasteczka) do przechowywania i uzyskiwania dostępu do tej informacji w celach funkcjonalnych, statystycznych i reklamowych.
Użytkownik wyraża zgodę oraz określa warunki przechowywania lub uzyskiwania dostępu do informacji zawartej w plikach cookies za pomocą ustawień przeglądarki.
Dowiedz się więcej odwiedzając strony:

Polityka Prywatności    Regulamin sklepu      Jak wyłączyć cookies?

Przejdź do serwisu

Instrukcja obsługi R2płatnik



Funkcje i procedury składowane

Funkcje i procedury składowane

Załączniki

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:

    • 0 - niewypełniony

    • 1 - wolny (sobota lub niedziela)

    • 2 - Dp (dni pracy)

    • 3 - De (delegacje)

    • 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)

    • 99 - dni nieobjęte umową

  • fn_KP_SumDP(NumDP, NumNDP, X_IHistorii, Mies, Rok) - suma dni pracy danego rodzaju, zadajemy:

    • NumDP - 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%

      • 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%

      • 111 - zasiłek chorobowy 70%

      • 112 - niepłatny

      oraz dodatkowe wpisy z ewidencji pracy zdalnej:
      • 200 - praca zdalna (przy wypełnionej karcie pracy)

    • 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_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:

    • Num_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

    • Dod - 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:

    • dla 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)

    • dla 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%

      • 111 - zasiłek chorobowy 70%

      • 112 - niepłatny

      • 115 - zasiłek macierzyński 60%

      • 116 - zasiłek macierzyński 80%

      • 116 - zasiłek dod.macierzyński 80%

      • 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:

    • 0-dane pracownika

    • 1-bezpośredni przełożony (a jak brak to dane kierownik działu)

    • 2-przełożony przełożonego (a jak brak to dane kierownika działu przełożonego)

    dla mod:
    • 0 - e-mail z aktualnego zatrudnienia, a jak brak to z adresu do korespondencji

    • 1 - nazwisko i imię

    • 2 - hierarchia: pracownik/przełożony/kierownik działu

    • 3 - hierarchia2: pracownika/przełożonego/kierownika działu

    • 4 - nazwisko i imię (e-mail)

    • 5 - nazwisko i imię (hierarchia)

    • 6 - hierarchia2 (nazwisko i imię)

    • 7 - 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:
    select p.Nazwisko,p.Imie
    FROM PRACOWNK p
    WHERE <BIN>.fn_Podsw(p.X_I,p.X_P,<USERIDE>,'PracownikT')=1

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