Typy wypłat – dostępne algorytmy

ALGORYTM 1 – Kwota

Algorytm umożliwia definicję elementów typu: Premia uznaniowa, Nagroda, Dodatek funkcyjny.

Program pozwala wybrać wartość definiowanego elementu z listy Stałe okresowe lub wprowadzić ją bezpośrednio z klawiatury (pole: Kwota). W drugim z przypadków wprowadzona w trakcie konfiguracji kwota traktowana będzie jako propozycja w czasie przypisywania dodatku (potrącenia) wybranemu pracownikowi.

Gdy kwota wpisana została przez użytkownika lub gdy z definicji wybranej „stałej” NIE WYNIKA WPROST jej zależność od czasu pracy, program dodatkowo umożliwia automatycznie pomniejszenie definiowanego elementu w przypadku odnotowania pracownikowi nieobecności.

Przykład
Pracownikom przyznana została Premia uznaniowa. Jej wysokość ustalana była indywidualnie dla każdego z pracowników i nie zależy ona wprost od czasu pracy. Jednak w większości przypadków wynosi ona 100.00 zł.

Definiujemy element typu Kwota i  nadajemy mu wartość 100.00 zł (jako najczęściej występującą), wpisując ją w pole Kwota (NIE odwołujemy się do stałych okresowych). Ponieważ z regulaminu wynagrodzeń nie wynika wprost zależność pomiędzy czasem pracy a wartością premii wyłączamy (odznaczamy) opcję Automatycznie pomniejszać wynagrodzenie z tytułu.

Przypisując pracownikom premię w etacie lub bezpośrednio w wypłacie, mamy możliwość dowolnego modyfikowania jej wartości (włącznie z wpisywaniem zera).

Przykład
Pracownicy, którzy powstrzymują się od palenia w trakcie pracy otrzymują w 2001 roku dodatek motywacyjny w wysokości 50.00 zł.

Dodatek w tej kwocie jest wypłacany wszystkim pracownikom, bez względu na zajmowane stanowisko. Dodatek wypłacany jest wyłącznie za czas pracy.

Ponieważ dodatek wypłacany jest wszystkim pracownikom w jednakowej wysokości (z dokładnością do nieobecności) warto jego wartość zapisać w stałej okresowej np. Za niepalenie.

Ponieważ wysokość wypłacanego dodatku zależy od czasu pracy pozostawiamy zaznaczoną opcję: Automatycznie pomniejszać wynagrodzenie w przypadku odnotowania oraz wszystkie wymienione nieobecności.

Dodatkową zaletą zapisania wartości dodatku za pomocą stałej okresowej jest możliwość modyfikacji jej wartości. Jeżeli w następnym roku wartość dodatku zwiększy się np. do 60.00 zł, to wystarczy zaktualizować wyłącznie stałą okresową BEZ KONIECZNOŚCI modyfikacji (aktualizacji) zapisów u poszczególnych niepalących pracowników.

ALGORYTM 2 – Procent wynagrodzenia zasadniczego

Algorytm umożliwia definicję elementów typu: Premia procentowa.

Wartość definiowanego elementu wyliczana będzie jako procent wybranej z listy podstawy. Podstawą naliczania definiowanego elementu wynagrodzenia może być:

  • Wynagrodzenie zasadnicze bez nadgodzin – ustalone z pominięciem wynagrodzenia za pracę ponad/poniżej przyjęte normy (również wynikające za zmiany strefy czasu pracy, np. Z Czas pracy podstawy na Czas pracy w akordzie). W przypadku nadgodzin nie zostanie uwzględnione wynagrodzenie powyżej normy (podstawowe) ani dopłaty do nadgodzin, a w przypadku tak zwanych niedogodzin – pomniejszenia poniżej normy.
  • Wynagrodzenie zasadnicze bez dopłat do nadgodzin – ustalone jako iloczyn czasu pracy (z uwzględnieniem pracy w nadgodzinach) i godzinowej stawki zaszeregowania.
  • Wynagrodzenie zasadnicze z dopłatami do nadgodzin – ustalone jako suma wynagrodzenia uzyskanego w normalnym czasie pracy oraz w nadgodzinach (wraz z odpowiednimi dopłatami).
  • Wynagrodzenie nominalne. Dla pracowników wynagradzanych w stawce miesięcznej jest to stawka zaszeregowania. Dla pracowników wynagradzanych w stawce godzinowej jest to iloczyn stawki zaszeregowania i nominalnego czasu pracy (wynikającego z kalendarza pracownika).

Uwaga
Wpisany w definicji procent będzie traktowany wyłącznie jako propozycja w trakcie „wiązania” definiowanego elementu wynagrodzenia z pracownikiem (procent dla każdego pracownika może przybierać indywidualną wartość).

Tylko wtedy, gdy podstawą naliczanego elementu będzie wynagrodzenie nominalne, program umożliwi automatyczne pomniejszanie wartości w przypadku odnotowania nieobecności (identycznie jak dla algorytmu Kwota).

Przykład
Pracownikom przyznana została Premia procentowa. Jej wysokość (procent wynagrodzenia zasadniczego) ustalana była indywidualnie dla każdego z pracowników. W większości przypadków jest to 20% wynagrodzenia zasadniczego, bez dopłat do nadgodzin.

Definiując premię wpisuje w pole Procent: 20 ( jako najczęściej występujący) i z dostępnej listy wybieramy: Zasadniczego bez dopłat do nadgodzin. Ponieważ wartość wybranej podstawy wprost zależy od czasu pracy, program wyłączył automatycznie sekcję: Automatycznie pomniejszać wynagrodzenie z tytułu.

Przypisując pracownikom premie w etacie, ewentualnie bezpośrednio w wypłacie, mamy możliwość dowolnego modyfikowania procentu premii (włącznie z wpisywaniem zera).

Przykład
Pracownik zatrudniony na stawce godzinowej (10zł/godz.) pracuje przez cały miesiąc w akordzie przykładowo w czasie 168 godzin wykonał 120 szt. po 15 zł. Wprowadzenie akordu na dany miesiąc powoduje, że w kalendarzu rzeczywistym (nieobecności) zostaje podmieniona strefa czasu pracy z Czas pracy podstawy (PP) na Czas pracy w akordzie (AK).

Wynagrodzenie za pracę w akordzie wyniesie 1800,00zł (120 szt. * 15 zł). Natomiast wynagrodzenie zasadnicze (praca podstawowa) wyniesie 0,00zł, ponieważ akord powoduje pomniejszenie wynagrodzenia zasadniczego.

Premia procentowa, liczona jako 10% od wynagrodzenia zasadniczego bez nadgodzin, w tym przypadku zostanie wyliczona w kwocie 168 zł, czyli 10% od kwoty wynagrodzenia podstawowego 1680,00zł (10 zł *168 godzin), bez uwzględnienia wynagrodzenia poniżej normy ze względu na pracę w akordzie. Aby premia procentowa była wyliczona w kwocie zerowej należy w kalendarzu normatywnym (planie pracy) odnotować pracę w akordzie zamiast pracy podstawowej. W takiej sytuacji w wypłacie nie zostanie wyliczone wynagrodzenie poniżej normy, a wynagrodzenie zasadnicze (praca podstawowa) będzie równe zero.

ALGORYTM 3 – Element zależny od stażu i stałej okresowej

Algorytm umożliwia definicję elementów typu: Dodatek stażowy (Wysługa lat).

Podstawę naliczania dodatku wybieramy z listy stałych okresowych. Standardowo dostępnymi z poziomu listy wielkościami są między innymi:

  • Zasadnicze nominalne – dla pracowników wynagradzanych w stawce miesięcznej jest to stawka zaszeregowania. Dla pracowników wynagradzanych w stawce godzinowej jest to iloczyn stawki zaszeregowania i nominalnego czasu pracy (wynikającego z kalendarza pracownika).
  • Najniższe wynagrodzenie.

Zależność pomiędzy stażem pracy a wysokością (procentem) dodatku stażowego definiujemy przy pomocy opcji  podając kolejno staż pracy (liczony w latach) i odpowiadający mu procent dodatku stażowego. Dla zachowania pełnej poprawności zapisu pierwszą pozycją listy powinien być zapis: 0 lat 0.00 procent dodatku.

W procedurze liczenia dodatków stażowych uwzględniany może być:

  • Staż pracy poza firmą (wynikający z zapisów w danych kadrowych: Kadry/ Historia zatrudnienia).
  • Staż pracy w firmie (wynikający z poszczególnych zapisów historycznych w danych etatowych pracownika).
  • Okres nauki (wynikający z zapisów w danych kadrowych: Kadry/ Historia wykształcenia).

Definicja progów stażu pracy

Staż pracy pracownika może być wyliczany na dwa sposoby, uzależnione jest to od ustawienia parametru Staż pracy liczony na. Jeśli wybrano, że staż pracy liczony jest na :

  • Pierwszy dzień miesiąca rozliczeniowego – oznacza to, że sprawdzamy staż na początek okresu rozliczeniowego. Jeśli w trakcie tego okresu nastąpi przekroczenie progów stażu to i tak dodatek wyliczany jest według niższego procentu.
  • Ostatni dzień staż pracy wyliczany jest na ostatni dzień okresu rozliczeniowego i jeśli w tym okresie nastąpi przekroczenie wartości progowych dodatek wyliczany jest wg wyższego procentu.

Standardowo zaznaczony jest parametr pierwszy dzień.

Zazwyczaj kwota dodatku stażowego nie jest pomniejszana, gdy pracownik z przyczyn usprawiedliwionych jest nieobecny pracy. Jedynie nieobecność nieusprawiedliwiona (NN) skutkuje odpowiednim pomniejszeniem. Za okres zwolnienia lekarskiego wypłacany jest dodatek stażowy nieoskładkowany. W takim przypadku należy:

  • pozostawić zaznaczone pole: Automatycznie pomniejszać wynagrodzenie,
  • odznaczyć wszystkie nieobecności poza: Nieobecność nieusprawiedliwiona , Zwolnienie lekarskie.

ALGORYTM 4 – Element typu iloczyn: ilość, stała okresowa, współczynnik

Algorytm umożliwia definicję elementów typu: Dodatek za pracę w warunkach szkodliwych, Dodatek za pracę w nadgodzinach.

Wartość definiowanego elementu może być liczona jako iloczyn trzech czynników:

  • Stałej okresowej (wybór z listy, identycznie jak w przypadku wcześniejszych algorytmów),
  • Współczynnika (liczby wpisanej w trakcie definiowania typu wynagrodzenia,
  • Ilości wpisywanej (modyfikowanej) w trakcie przypisywania pracownikowi definiowanego dodatku w etacie lub bezpośrednio przed realizacją wypłaty.

Jeżeli stała okresowa definiuje wynagrodzenie za jedną godzinę pracy można zrezygnować z definiowania współczynnika, pozostawiając wartość 1.00 (jeden).

Przykład
Pracownikowi za pracę w warunkach szkodliwych przysługuje dodatek w wysokości 1.20 zł za każdą godzinę pracy w tych warunkach. Czas pracy w warunkach szkodliwych ustalany jest na podstawie Karty pracy i wprowadzany do programu bezpośrednio przed wypłatą. W takim przypadku warto stworzyć stałą okresową np. Szkodliwe 1 godz. (wynagrodzenie za jedną godzinę pracy w warunkach szkodliwych) i odwołać się do niej bezpośrednio (w trakcie definiowania dodatku), pomijając współczynnik (ustalając jego wartość na 1.00).

Przykład
Pracownikowi za pracę w warunkach szkodliwych i przysługuje dodatek w wysokości 10% godzinowej stawki zaszeregowania za każdą godzinę pracy w tych warunkach.

Pracownikowi za pracę w warunkach szkodliwych II przysługuje dodatek w wysokości 15% godzinowej stawki zaszeregowania za każdą godzinę pracy w tych warunkach.

Podobnie jak w poprzednim przykładzie czas pracy w warunkach szkodliwych i i II ustalany jest na podstawie Karty pracy i wprowadzany do programu bezpośrednio przed wypłatą.

W takim przypadku stałą okresową wykorzystywaną do wyliczenia dodatku będzie wynagrodzenie nominalne (1 godz.). Wysokość dodatku modyfikowana będzie przy pomocy współczynnika, który przyjmie odpowiednio wartość 0.10 oraz 0.15.

ALGORYTM 5 – Element typu procent wynagrodzenia brutto

Algorytm umożliwia definicję elementów typu: Składka PKZP, Składka na związki zawodowe.

Większość znanych potrąceń definiowana jest kwotowo np. Składka PZU (algorytm Kwota) lub jako procent wynagrodzenia brutto, przy czym pojawia się w takim przypadku co najmniej kilka interpretacji pojęcia brutto. Definiując takie potrącenie można wybrać jedną z sześciu wartości:

  • Wynagrodzenie brutto wraz z zasiłkami – suma wszystkich opodatkowanych elementów wypłaty.
  • Wynagrodzenie brutto bez zasiłków – suma opodatkowanych elementów wypłaty z pominięciem zasiłków wypłacanych ze środków ZUS (ubezpieczenie chorobowe lub wypadkowe).
  • Wynagrodzenie brutto bez zasiłków i wynagrodzenia za czas choroby – suma opodatkowanych elementów wypłaty z pominięciem zasiłków wypłacanych ze środków ZUS oraz wynagrodzenia w obniżonej wysokości za czas choroby (na podstawie art. 92 kodeksu pracy).
  • Wynagrodzenie brutto wraz z zasiłkami (pomniejszone o składki ZUS) – suma jak wraz z zasiłkami, pomniejszona o składki ZUS przypadające na pracownika.
  • Wynagrodzenie brutto bez zasiłków (pomniejszone o składki ZUS) – suma jak bez zasiłków, pomniejszona o składki ZUS przypadające na pracownika.
  • Wynagrodzenie brutto bez zasiłków i wynagrodzenia za czas choroby (pomniejszone o składki ZUS) – suma bez zasiłków i wynagrodzenia za czas choroby, pomniejszona o składki ZUS przypadające na pracownika. Procent potrącenia definiowany jest identycznie jak dla drugiego algorytmu.

Uwaga
Wpisany w definicji procent będzie traktowany wyłącznie jako propozycja w trakcie „wiązania” definiowanego elementu wynagrodzenia z pracownikiem (procent dla każdego pracownika może przybierać indywidualną wartość).

Aby element traktowany był jako potrącenie, wymagane jest zaznaczenie pola Potrącenie na zakładce [Ogólne]. W inny sposób omawiany algorytm NIE umożliwia wprowadzania ujemnych wartości (potrąceń).

ALGORYTM 6 – Element typu iloczyn: stała okresowa, współczynnik

Algorytm umożliwia definicję elementów typu Prowizja.

Wartość definiowanego elementu może być liczona jako iloczyn dwóch czynników:

Stałej okresowej (wybór z listy, identycznie w przypadku wcześniejszych algorytmów)

Współczynnika (liczby wpisanej w trakcie definiowania typu wynagrodzenia.

ALGORYTM 7 – Element liczony jak urlop wypoczynkowy

Algorytm ten daje nam możliwość zdefiniowania elementu wypłaty, który będzie wyliczany analogicznie jak urlop wypoczynkowy.

Definiując element wynagrodzenia wyliczany według tego algorytmu musimy podać ilość miesięcy przyjętych do obliczeń. Standardowo do urlopu wypoczynkowego przyjmuje się wypłaty z 3 miesięcy poprzedzających daną nieobecność. Takie działanie programu uzyskamy po zaznaczeniu pola standardowa ilość miesięcy. Zaznaczenie parametru Liczony z okresu zatrudnienia powoduje uwzględnienie w obliczeniach całego okresu zatrudnienia pracownika. Ten parametr wykorzystywany jest przy obliczaniu np. wynagrodzenia za urlop przypadający przed 1 czerwcem 2017 r. dla pracowników tymczasowych. W przypadku jednoczesnego zaznaczenia parametrów Standardowa oraz Liczony z okresu zatrudnienia w podstawie wynagrodzenia za urlop uwzględniane jest wypłacone wynagrodzenie za okres 3 miesięcy lub 90 dni zatrudnienia przypadających w okresie 6 miesięcy przed miesiącem, w którym pracownik przebywa na urlopie uzyskane u danego pracodawcy‑użytkownika.

Parametr Kwota przeliczana na dni lub godziny wskazuje, czy dany typ wypłaty ma być przeliczony na dni czy na godziny.

ALGORYTM 8 – Element liczony jak urlop okolicznościowy

Algorytm ten pozwala na definiowanie elementów liczonych jak urlop okolicznościowy, czyli ze składników wypłacanych w miesiącu nieobecności. W ten sposób można zdefiniować np. wynagrodzenie przysługujące pracownikowi, który honorowo oddaje krew („krwiodawstwo”).

Uwaga
Algorytmy 7 i 8 służą do definiowania rozliczeń nieobecności. Tak zdefiniowanych elementów nie można wpisać na listę stałych dodatków pracownika.

ALGORYTM 9 – Element liczony jak ekwiwalent za urlop

Zgodnie z nazwą, algorytm umożliwia definicję elementów liczonych jak ekwiwalent za niewykorzystanego urlopu.

Definiując taki dodatek należy podać liczbę miesięcy przyjmowaną do wyliczenia podstawy ekwiwalentu i współczynnik. W trakcie definicji dodatku można także wstępnie zadeklarować liczbę dni, za którą definiowany w ten sposób dodatek będzie przysługiwał. W praktyce liczba ta będzie podawana prawie zawsze dopiero w momencie przypisywania pracownikowi dodatku w etacie lub bezpośrednio przed realizacją wypłaty.

  • Ilość miesięcy uwzględniana przy wyliczaniu podstawy może być podana „ręcznie”. Po zaznaczeniu parametru Standardowo program przyjmie domyślną liczbę miesięcy. Zaznaczenie parametru Liczony z okresu zatrudnienia spowoduje uwzględnienie przy liczeniu podstawy liczby miesięcy zgodnych z okresem zatrudnienia danego pracownika. Jednoczesne zaznaczenie parametrów Standardowa oraz Liczony z okresu zatrudnienia spowoduje uwzględnienie w podstawie wynagrodzenia za okres 3 miesięcy lub 90 dni zatrudnienia, przypadających w okresie 6 miesięcy przed miesiącem, w którym pracownik nabył prawo do ekiwalentu uzyskane u danego pracodawcy‑użytkownika.
  • W celu poprawnego naliczania ekwiwalentu należy wpisać Współczynnik. Jest to liczba dni kalendarzowych w danym roku pomniejszona o wszystkie dni wolne (wolne soboty, niedziele, święta i dni dodatkowo wolne od pracy), a następnie podzielona przez 12. W programie można pobrać wartość współczynnika z konfiguracji po zaznaczeniu parametru Pobrany z konfiguracji, wpisać ręcznie lub zaznaczyć opcję Wg planu pracy, co spowoduje wyliczenie go na podstawie zdefiniowanego kalendarza.
  • Wartość dzielona przez – możliwy jest wybór dwóch opcji: ilość godzin z możliwością określenia ilości godzin oraz norma dobowa do urlopu z etatu. Domyślnie po zaznaczeniu proponuje się zaznaczenie w polu ilość godzin i wartość 8 godzin. Zmienna ta powoduje wyliczenie ekwiwalentu na godzinę. Parametr norma dobowa do urlopu z etatu wykorzystywany jest przy wyliczeniu podstawy ekwiwalentu za niewykorzystany urlop z uwzględnieniem normy dobowej pracownika (określoną na formularzu danych kadrowych pracownika) np. W przypadku wyliczenia ekwiwalentu dla osób niepełnosprawnych, dla których norma dobowa wynosi 7h.

O sposobie uwzględniania poszczególnych elementów w procedurze liczenia ekwiwalentu decyduje zawartość pola: Wliczać do podstawy naliczania ekwiwalentu (Zakładka: [Nieobecności]).

Dla elementów wynagrodzenia liczonych według tego algorytmu sekcja Automatycznie pomniejszać wynagrodzenie w przypadku odnotowania jest niedostępna.

Algorytmem tym można również policzyć Odprawy pieniężne przy ustawieniu wartości współczynnika na 1. Wówczas program wylicza średnią miesięczną ze wskazanej liczby miesięcy.

ALGORYTM 10 – Element liczony jak zasiłek chorobowy

Za podstawę tego algorytmu przyjęto sposób wyliczania wynagrodzenia za czas zwolnienia lekarskiego. Kryterium uwzględniania w obliczeniach danego elementu uzależnione jest od zmiennej Wliczać do podstawy naliczania zasiłków chorobowych (Zakładka [Nieobecności]). Definiując dodatek wyliczany według tego algorytmu należy podać:

  • Standardowy okres wyliczania podstawy – przy definiowaniu nowego typu wypłaty parametr ten jest domyślnie zaznaczony, po odznaczeniu parametru istnieje możliwość wpisania okresu różnego od standardu (12) w polu Okres wyliczania podstawy (liczba miesięcy).
  • Okres wyliczania podstawy – liczbę miesięcy jaką przyjmujemy do wyliczenia podstawy.
  • Procent podstawy, przyjmowany do obliczeń tego elementu wypłaty.

Dla Użytkowników korzystających z modułu Comarch ERP Optima Płace i Kadry Plus udostępniono dwa dodatkowe algorytmy. Od wersji 8.5 dodatki liczone według algorytmu 11 i 12 można przyznawać w wypłacie.

ALGORYTM 11 – Element liczony jako procent wybranych składników

Algorytm ten wyliczany jest jako wartość procentowa z sumy wybranych elementów. Użytkownik powinien zadeklarować:

  • Procent – wartość procentową
  • Wzorzec – Dla algorytmu 11 można wskazać okres, z jakiego mają być sumowane wybrane składniki płacowe. W tym celu pod przyciskiem „Wzorzec” z wyświetlonej listy wzorców należy wybrać odpowiedni wzorzec płacowy typu okres. Z tego poziomu można również dodawać (definiować) nowe wzorce. Raz zdefiniowany wzorzec może być wielokrotnie stosowany w definicjach różnych typów wypłat. Wzorce opisane są w odrębnym rozdziale.
  • Składniki – na zakładce [Ogólne] definiowanego typu wypłaty według algorytmu 11 znajduje się przycisk „Składniki”. Z listy składników wypłaty można wybrać elementy, które będą stanowiły podstawę naliczania tego dodatku. Lista dostępnych składników zawiera wszystkie zdefiniowane w programie elementy płacowe. W celu szybszego odszukiwania na liście potrzebnych składników można ją ograniczyć poprzez wybór filtra. W programie zdefiniowano następujące filtry:
    • Użytkownika – lista zostanie ograniczona do elementów zdefiniowanych przez użytkownika,
    • Standardowe – lista standardowych elementów, bez tych dopisanych przez użytkownika,
    • Podstawowe – wynagrodzenia zasadnicze, dopłaty do nadgodzin, świąt, godzin nocnych i dochód deklarowany właściciela,
    • PIT-8A PIT-8B, IFT-1 – wszystkie składniki wypłaty wchodzące na PIT-8A, PIT-8B i deklaracje IFT,
    • Korekty – składniki związane z korektą podatku za rok poprzedni,
    • Zasiłki ZUS – wszystkie zasiłki wypłacane w imieniu ZUS, w szczególności świadczenia rehabilitacyjne, chorobowe, wychowawcze, macierzyńskie i ich wyrównania,
    • Rozliczenia nieobecności – składniki stanowiące koszt pracodawcy w przypadku rozliczania nieobecności (zwolnienie lekarskie, urlop),
    • Inne dodatki i potrącenia – zdefiniowane w programie standardowe premie, ekwiwalent za urlop, zaliczki i spłata zaliczki.

    W celu wyświetlenia listy wszystkich dodatków zdefiniowanych w programie należy wybrać filtr Wszystkie.

  • Suma podzielona przez – 0 (domyślnie ustawienie). W tym jednak przypadku 0 podczas obliczania wypłaty jest traktowane jak 1.


ALGORYTM 12 – Element liczony jako iloraz stałych okresowych i współczynników

Algorytm ten pozwala na zdefiniowanie elementu, który będzie liczony jako iloraz z iloczynu stałych okresowych i współczynników. Do wykorzystania mamy wpisane w programie stałe okresowe:

  • Wskaźniki firmy – to zdefiniowane przez użytkownika wskaźniki np. wysokość składki PZU,
  • Wskaźniki programu – wszystkie, wspólne dla całego programy wartości zapisywane w Konfiguracji programu/ Płace/ Wynagrodzenia i Zasiłki,
  • Wzory – wyliczane w programie zasadnicze rzeczywiste, zasadnicze nominalne, stawka zaszeregowania, stawka zaszeregowania/h, najniższe wynagrodzenia/h.

Zaawansowana konstrukcja algorytmu – dla typu wypłaty liczonego algorytmem 12:

Wybór opcji zaawansowana (konstrukcja algorytmu) – pozwala na konstruowanie rozbudowanych wzorów do liczenia wypłat. Taki wzór algorytmu może zawierać:

  • Stałe okresowe – wskaźniki z konfiguracji,
  • Wzorce płacowe typu kwota,
  • Można w nim zastosować również operatory matematyczne: dodawanie, odejmowanie, mnożenie, dzielenie, jak również nawiasyliczby.

Ponadto, dostępne są funkcje opisane poniżej.

Uwaga
Przy stosowaniu we wzorze liczb zapisywanych z miejscami po przecinku, jako separator dziesiętny należy wstawiać kropkę (np. 1.25 a nie 1,25), ponieważ przecinek jest interpretowany jako separator oddzielający parametry wewnątrz funkcji.

Obsługa formularza – dostępne przyciski

Ikona sprawdzanie poprawności składni we wzorze. Sprawdzaniu podlegają błędy typu: podwójny operator matematyczny (np. ++ czy */), dwa kolejne nawiasy w układzie )(, niepoprawna ilość nawiasów, liczba na zewnątrz nawiasu nie oddzielona od niego operatorem matematycznym. W dodatkowej linii pod wzorem – na wysokości ikony  – jest wyświetlana informacja o poprawności składni bądź opis błędu, jeśli taki występuje. Wraz ze wskazaniem, w którym kolejnym znaku wzoru wystąpił błąd, w tej samej linii w odrębnym polu jest wyświetlana informacja, na którym kolejnym znaku wzoru znajduje się aktualnie kursor – co ułatwia wyszukanie i poprawienie ewentualnych błędów.

usuwanie ze zdefiniowanego wcześniej wzoru (edycja zapisanego już typu wypłaty) wskazanych stałych okresowych i wzorców płacowych. Do czasu zapisania dodatku kasowanie jest możliwe tylko przez „czyszczenie” całości wzoru ikoną gumki .

czyszczenie formularza – usuwanie całości wzoru.

pozwala na wybór z listy stałych okresowych: wskaźników firmy, wskaźników programu i prostych wzorów (typu stawka za 1 godzinę, czy wynagrodzenie nominalne).

wyświetla listę zdefiniowanych wzorców płacowych – umożliwia wybór do wzoru wzorców typu kwota (zostały opisane w algorytmie 11), można też dodawać (definiować) z tego poziomu nowe wzorce.

– wstawianie do wzoru wskazanych operatorów matematycznych, nawiasów i funkcji warunkowych (możliwe również dopisywanie ich „ręcznie”).

Zestawienie dostępnych funkcji i parametrów wraz z przykładami zawierają poniższe tabele.

Funkcje zwracające okres (wykorzystywane w innych funkcjach)

Nazwa funkcji + parametry lub nazwa stałejZwracany rezultatOpis
OkresMies(int Ile, <int wstecz >)okresdziała identycznie jak funkcja WypOkres liczona odpowiednio dla miesięcy/kwartałów/lat
te funkcje mogą być używane zamiennie z funkcją WypOkres (np. W SumaSkladnikow lub WypSuma)
drugi parametr tych funkcji jest opcjonalny
OkresKwart(int Ile, <int Wstecz>)okres
OkresRok(int Ile, <int Wstecz>)okres
OkresBiezacyokreszwraca bieżący okres wypłaty funkcja nie wymaga użycia nawiasów (ich użycie spowoduje błąd)



WypOkres(const Typ, int Ile, int Wstecz)



okres
param.1: typ okresu, do wyboru: miesiące (wartość domyślna = 0), kwartały (= 1), lata (= 2))
param.2: ilość miesięcy pobierana do okresu
param.3: od ilu miesięcy wstecz ma być wliczane do okresu
tą funkcją można zdefiniować wszystkie funkcje zwracające okres (OkresBiezacy etc), które są szczególnymi przypadkami funkcji WypOkres

Zwracanym rezultatem tych funkcji jest okres. Należy ich używać we wzorach w kontekście innych funkcji wyliczających. Nie można ich używać samodzielnie – podczas naliczenia płac zostanie wówczas zwrócony komunikat o błędzie.

Konstrukcja wzoru WypOkres tworzona jest podczas użycia konstruktora wzorca płacowego (typ okres). Jeśli na zapisie okna jest ustawiony wzorzec typu Okres, to są zablokowane ustawienia dotyczące wzorca typu kwota: wybrane rodzaje/typy wypłat i wybrane rodzaje wartości.

WypOkres()

1 parametr: Okres: 0 – miesiące, 1- kwartały, 2 – lata

2 parametr: Ile miesięcy

3 parametr: Od którego miesiąca wstecz

Przykład
WypOkres(0, 2, 1) – jeśli miesiącem rozliczeniowym jest lipiec, to dany składnik liczony z uwzględnieniem tego wzoru będzie miał okres rozliczeniowy przestawiony na 2 miesiące licząc od 1 wstecz, tzn. od maja do czerwca.

WypOkres(0, 2, 2) – okres rozliczeniowy będzie obejmował kwiecień oraz maj (2 miesiące, licząc od 2 wstecz w stosunku do lipca).

WypOkres(0, 1, 0) – aktualny okres rozliczeniowy (w tym przypadku lipiec).

WypOkres(1, 1, 1) – wypłaty z 1 kwartału, liczonego 1 kwartał wstecz w stosunku do kwartału, w którym „znajduje się” lipiec (czyli okres od kwietnia do czerwca włącznie).

Zastosowanie wzorów WypOkres (0, 1, 0), OkresBiezacy i OkresMies(1, 0) we wszystkich funkcjach zwracających kwoty daje ten sam wynik. Różne są natomiast wartości funkcji czasowych zdefiniowanych za pomocą wzorów OkresBiezacy i OkresMies(1, 0) – szczegółowe różnice zamieszczone zostały poniżej w opisach poszczególnych funkcji.

Przykład
Poniższe 3 wzory (pomimo różnego sposobu definicji) zwracają wartość za ten sam okres bieżący:

WypSuma(3, 0x00000001, WypOkres(0, 1, 0))

WypSuma(3, 0x00000001, OkresMies(1, 0))

WypSuma(3, 0x00000001, OkresBiezacy)

Funkcja zwracająca liczbę dni kalendarzowych

Nazwa funkcji + parametry lub nazwa stałejZwracany rezultatOpis
Liczba CzasKalend (okres, <param>)liczba dni kalendarzowych w podanym okresiePierwszy parametr musi być funkcją zwracającą okres.
Drugi parametr jest opcjonalny, można wskazać, czy okres ma być dodatkowo zawężany do zatrudnienia pracownika.

Jeśli w funkcji liczba CzasKalend ustawiono tylko parametr dotyczący okresu zostaną zwrócone następujące wartości:

  • Dla wzoru OkresBiezacy program będzie zawężał liczbę dni kalendarzowych do okresu bieżącego miesiąca i do dat odczytywanych z elementu wypłaty, który tą funkcją jest zdefiniowany.
  • Użycie wzoru OkresMies, OkresRok będzie zwracało zawsze pełną liczbę dni kalendarzowych dla podanego okresu, bez dodatkowego zawężania do jakichkolwiek okresów.

Jeśli podano po przecinku drugi parametr Const.Zatr, zwracana wartość będzie zawężana do okresu zatrudnienia.

Przykład
Dla pracownika zatrudnionego od 1-go do 24-go lipca, w wypłacie za lipiec, funkcja zależnie od parametrów zwróci wynik: CzasKalend (OkresMies(1,0)) = 31 – liczba dni kalendarzowych w lipcu, bez zawężenia do okresu zatrudnienia

CzasKalend (OkresMies(1,0), Const.Zatr) = 24 – liczba dni kalendarzowych w lipcu, z dodatkowym zawężeniem do okresu zatrudnienia na etacie.

Funkcje zwracające czas normatywny w dniach lub godzinach

Nazwa funkcji + parametry lub nazwa stałejZwracany rezultatOpis
CzasNormaDniokres,<string AkronimStrefy>)liczba dni normy w podanym okresie1 parametr - musi być funkcja zwracająca okres
2 parametr - w przypadku funkcji CzasNormaGodz można zastosować dodatkowo drugi parametr, który jest opcjonalny i przyjmuje wartość AKRONIMU strefy, wtedy rezultatem funkcji jest liczba
dni lub czas dla konkretnej strefy
CzasNormaGodz(okres,<string AkronimStrefy>)czas normatywny w godzinach w podanym okresie
CzasNormaKPGodz(okres)liczba godzin normy ustalonej zgodnie z art. 130 k.p.przy wyliczaniu normy uwzględniany jest wymiar etatu oraz norma dobowa obowiązująca pracownika

Funkcje te umożliwiają odwołanie się do czasu normatywnego za podany okres. Wynik otrzymujemy w dniach lub godzinach.

Dla funkcji CzasNormaGodz jako drugi parametr można wpisać akronim strefy w cudzysłowie (nie w apostrofach) – zawęża on wynik do czasu w danej strefie. Wciśnięcie <ALT> + <STRZAŁKA w DÓŁ>, po ustawieniu kursora wewnątrz cudzysłowu, wyświetla listę dostępnych akronimów stref.

Brak drugiego parametru lub parametr zapisany błędnie powodują, że liczony jest łączny czas niezależnie od tego, do jakiej należy strefy. Nie należy używać parametru strefy dla funkcji CzasNormaDni, ponieważ w planie pracy w obrębie dnia mogą być zdefiniowane wejścia z różnymi strefami.

Godziny do obliczeń są uwzględniane z minutami przeliczonymi na części dziesiętne godzin – przykładowo, przy przemnożeniu czasu pracy 160:15 (160 godzin i 15 minut) przez 1 zł, otrzymamy kwotę 160,25 zł (bo 15 minut to ¼ = 25/100 z pełnej godziny).

Zastosowanie różnych wzorów na okres, w jakim będzie zliczana funkcja, może dać różne wyniki.

Dla wzoru OkresBiezacy program będzie zawężał zwracaną wartość do okresu zatrudnienia pracownika w bieżącym miesiącu i do dat odczytywanych z elementu wypłaty, który tą funkcją jest zdefiniowany.

Użycie wzoru OkresMies będzie zwracało zawsze wartość czasu normatywnego dla pełnego miesiąca kalendarzowego, bez dodatkowego zawężania do jakichkolwiek okresów.

Przykład
Zastosowanie funkcji

CzasNormaGodz(OkresBiezacy,”czas przestoju”) – liczba godzin normy w aktualnie rozliczanym miesiącu w strefie „czas przestoju”, z okresu zawężonego do okresu zatrudnienia i zakresu obowiązywania dodatku.

CzasNormaDni(OkresMies(2,0)) – norma w dniach pracy z pełnych dwóch miesięcy, bieżącego i poprzedniego.

CzasNormaGodz(OkresKwart(3)) – liczba godzin normy w pełnych trzech poprzednich kwartałach.

Przykład
Zastosowanie funkcji w różnych okresach. Obliczenia wykonywane dla miesiąca maja 2016 (kalendarz standard). Pracownik zatrudniony od 5 maja 2016 do 25 maja 2016 ma dodatkowy element wypłaty z okresem 15 maja – 20 maja 2016.

Wartości liczbowe poszczególnych funkcji:

CzasNormaGodz(OkresBiezacy) = 40 – wartość za okres 15 maja – 20 maja 2016

CzasNormaDni(OkresBiezacy) = 5 – wartość za okres 15 maja – 20 maja 2016

CzasNormaGodz(OkresMies(1,0)) = 160 – wartość za okres 1 maja – 31 maja 2016

CzasNormaDni(OkresMies(1,0)) = 20 – wartość za okres 1 maja – 31 maja 2016

Funkcje zwracające czas przepracowany w dniach lub godzinach

Nazwa funkcji + parametry lub nazwa stałejZwracany rezultatOpis
CzasPracaDni(okres,<string AkronimStrefy>)Liczba dni pracy, w podanym okresie, (dni, w których nie ma żadnej nieobecności).Pierwszy parametr musi być funkcją zwracająca okres
W przypadku funkcji
CzasPracaGodz można zastosować dodatkowo drugi
parametr, który przyjmuje
wartość AKRONIMU strefy, wtedy rezultatem funkcji jest
czas pracy w godzinach dla konkretnej strefy;
CzasPracaDniWszystkie(okres,<string AkronimStrefy>)Liczba dni pracy, w podanym okresie. Uwzględnia również dni pracy, w których wystąpiły nieobecności na część dnia.
CzasPracaGodz(okres,<string AkronimStrefy>)czas przepracowany w godzinach w podanym okresie



CzasPracaGodzUmowy(OkresMies(1), )



czas przepracowany i wpisany w godzinach w podanym okresie
Funkcja pozwala zsumować czas przepracowany (zestawienie czasu pracy wg Kalendarza) i odnotowany w kalendarzu obecności dla zleceniobiorców nie zatrudnionych na etat. W wypłacie umowy zostanie zsumowany czas pracy wpisany w kalendarzu, zarówno łączny, jak i z zawężeniem do wskazanej strefy. Funkcja bierze pod uwagę cały miesiąc, to znaczy, jeśli umowa została zawarta w trakcie miesiąca, to chcąc mieć prawidłowy czas pracy należy odpowiednio zmodyfikować czas pracy na kalendarzu obecności.
CzasPracaWybranyDzienGodz(okres, dzień tygodnia, )

Czas pracy w godzinach we wskazanym dniu tygodnia, czyli poniedziałek, wtorek itdJako dzień tygodnia należy podać wartość 1 dla poniedziałku, 2 dla wtorku, aż do 7, która oznacza niedzielę.
CzasPracaWybranyDzienDni(okres, dzień tygodnia)Liczba dni, np. sobót czy niedziel, w których pracownik pracował.
CzasPracaSwietoGodz(okres, )Czas pracy w godzinach, w dni świąteczne.Jako święta traktowane są niedziele oraz święta, niezależnie od tego czy te dni są ustawione w planie pracy pracownika jako dni świąteczne czy pracy.
CzasPracaSwietoDni(okres)Liczba niedziel oraz dni świątecznych, w których pracownik pracował.
CzasPracaTypDniaGodz(okres, typ dnia, )Czas pracy w godzinach w dni, które mają ustawiony typ jako pracy, wolny lub świąteczny.Funkcja zwracająca czas pracy w godzinach w dni, które mają ustawiony typ jako pracy, wolny lub świąteczny. Jako typ dnia należy podać wartość 1 dla typu dnia ‘pracy’, 2 dla typu dnia ‘wolny’, 3 dla typu dnia świąteczny.
CzasPracaTypDniaDni(okres, typ dnia)Liczb dni, które mają ustawiony typ jako pracy, wolny lub świąteczny, w których pracownik wykonywał pracęFunkcja zwracająca liczbę dni, które mają ustawiony typ jako pracy, wolny lub świąteczny, w których pracownik wykonywał pracę.

Funkcje te umożliwiają odwołanie się do rzeczywistego czasu pracy za podany okres. Wynik otrzymujemy w dniach lub godzinach. Godziny do obliczeń są uwzględniane z minutami przeliczonymi na części dziesiętne godzin – jak dla poprzedniej funkcji CzasNorma.

Dla funkcji CzasPracaGodz, CzasPracaWybranyDzienGodz, CzasPracaSwietoGodz, CzasPracaTypDniaGodz jako drugi parametr można wpisać akronim strefy w cudzysłowie (nie w apostrofach) – zawęża on wynik do czasu pracy w danej strefie. Wciśnięcie <ALT>+<STRZAŁKA w DÓŁ>, po ustawieniu kursora wewnątrz cudzysłowu, wyświetla listę dostępnych akronimów stref. Brak drugiego parametru lub parametr zapisany błędnie powodują, że liczony jest łączny czas niezależnie od tego, do jakiej należy strefy.

Nie należy używać parametru strefy dla funkcji CzasPracaDni oraz CzasPracaDniWszystkie,  ponieważ w obrębie dnia mogą być odnotowane wejścia z różnymi strefami.

Zastosowanie różnych wzorów na okres, w jakim będzie zliczana funkcja oraz różne sposoby rozliczeń czasu pracy pracownika mogą dać różne wyniki.

Dla pracowników rozliczanych wg zestawienia wzór OkresBiezacyOkresMies zwraca zawsze pełny miesiąc kalendarzowy.

Dla pozostałych rozliczeń (wg kalendarza i wg obecności) wzór OkresBiezacy będzie zawężał zwracaną wartość do okresu zatrudnienia pracownika w bieżącym miesiącu i do dat odczytywanych z elementu wypłaty, który tą funkcją jest zdefiniowany. Natomiast użycie wzoru OkresMies będzie dawało wartość czasu pracy zawężoną tylko do okresu zatrudnienia.

Uwaga
Dla uzyskania poprawnych obliczeń samej umowy, przy wykorzystaniu funkcji CzasPracaUmowy(OkresMies(1), <AKRONIMSTREFY>), należy pamiętać, że typ wypłaty z użyciem tej funkcji musi mieć rodzaj Umowa. W przypadku, gdy funkcja ma służyć do wyliczenia jakiegoś dodatku do umowy, to może być zdefiniowana o rodzaju Dodatek i wypłacona przez listę płac Inne.

Przykład
Zastosowanie funkcji:

CzasPracaGodz(OkresBiezacy,”czas przestoju”) – liczba godzin pracy w bieżącym miesiącu w strefie „czas przestoju”

CzasPracaGodz(OkresMies(1,2),„praca.pdst”) – czas pracy z 1 miesiąca licząc od 2-wstecz od aktualnie rozliczanego dla strefy „praca.pdst”

Przykład
Zastosowanie funkcji w różnych okresach, dla różnych rozliczeń czasu pracy.

Obliczenia wykonywane dla miesiąca maja 2016 (kalendarz standardowy). Pracownik zatrudniony od 2016.05.05, do 2016.05.25 ma dodatkowy element wypłaty z okresem 2016.05.15-2016.05.20.

Wartości liczbowe poszczególnych funkcji dla pracownika rozliczanego wg kalendarza:

CzasPracaGodz(OkresBiezacy) = 40; wartość za okres 2016.05.15 – 2016.05.20

CzasPracaDni(OkresBiezacy) = 5; wartość za okres 2016.05.15 – 2016.05.20

CzasPracaGodz(OkresMies(1, 0)) = 120; wartość za okres 2016.05.05 – 2016.05.25

CzasPracaDni(OkresMies(1, 0)) = 15; wartość za okres 2016.05.05 – 2016.05.25

Wartości liczbowe poszczególnych funkcji dla pracownika rozliczanego wg zestawienia:

CzasPracaGodz(OkresBiezacy) = 160; wartość za okres 2016.05.01 – 2016.05.31

CzasPracaDni(OkresBiezacy) = 20; wartość za okres 2016.05.01 – 2016.05.31

CzasPracaGodz(OkresMies(1, 0)) = 160; wartość za okres 2016.05.01 – 2016.05.31

CzasPracaDni(OkresMies(1, 0)) = 20; wartość za okres 2016.05.01 – 2016.05.31

Funkcje zwracające ilości nadgodzin i godzin nocnych

Nazwa funkcji + parametry lub nazwa stałejZwracany rezultatOpis
Nadgodz(<period Okres>)ilość nadgodzin w godzinachfunkcja sumuje wszystkie nadgodziny, domyślnie za bieżący okres wypłaty (wyrażone w częściach dziesiętnych)
Nadgodz50(<period Okres>)ilość nadgodzin 50% w godzinach„pięćdziesiątki”, domyślnie za bieżący okres wypłaty (wyrażone w częściach dziesiętnych) - nadgodziny dobowe 50% oraz nadgodziny 50% liczone bez podziału na nadgodziny dobowe i średniotygodniowe
Nadgodz100(<period Okres>)ilość nadgodzin 100% w godzinach„setki”, domyślnie za bieżący okres wypłaty (wyrażone w częściach dziesiętnych) - nadgodziny dobowe 100% oraz nadgodziny 100% liczone bez podziału na nadgodziny dobowe i średniotygodniowe (nie są uwzględniane nadgodziny średniotygodniowych)
PracaNoc(<period Okres>)ilość godzin nocnych„nocne”, domyślnie za bieżący okres wypłaty (wyrażone w częściach dziesiętnych)
CzasOdchylka(okres,<string AkronimStrefy>)Czas odchyłek w wybranej strefie lub odchyłek łącznieLiczba godzin przepracowanych powyżej lub poniżej normy (wyrażone w częściach dziesiętnych)

Zwracanym rezultatem tych funkcji jest odpowiedni czas w godzinach i minutach (ewentualne minuty zostają wyrażone w częściach dziesiętnych przez podzielenie przez 60).

Zastosowanie różnych wzorów na okres, w jakim będzie zliczana funkcja oraz różne sposoby rozliczeń czasu pracy pracownika mogą dać różne wyniki.

Dla pracowników rozliczanych wg zestawienia wzór OkresBiezacyOkresMies zwraca zawsze pełny miesiąc kalendarzowy.

Dla pozostałych rozliczeń (wg kalendarza i wg obecności) wzór OkresBiezacy będzie zawężał zwracaną wartość do okresu zatrudnienia pracownika w bieżącym miesiącu i do dat odczytywanych z elementu wypłaty, który tą funkcją jest zdefiniowany. Natomiast użycie wzoru OkresMies będzie dawało wartość czasu zawężoną tylko do okresu zatrudnienia.

Przykład
Zastosowanie funkcji:

Nadgodz(OkresBiezacy) – ilość nadgodzin w aktualnie rozliczanym okresie

Nadgodz100(OkresBiezacy) – ilość nadgodzin „setek” w aktualnie rozliczanym okresie

PracaNoc(OkresBiezacy) – ilość godzin „nocnych” w aktualnie rozliczanym okresie

Nadgodz(WypOkres(0, 3, 1)) – ilość nadgodzin w okresie, który obejmuje 3 miesiące, licząc od 1 miesiąca wstecz w stosunku do miesiąca bieżącego

Przykład
Pracownik w jednym dniu pracy przepracował 9 godzin 30 minut (norma w tym dniu wynosiła 8 godzin), oraz w jednym dniu pracy pracował w porze nocnej 8 godzin.

Wymienione funkcje zwrócą następujące wartości:

Nadgodz(OkresBiezacy) – 7.25 (nadgodziny 7:15 h)

Nadgodz50(OkresBiezacy) – 1.50 (nadgodziny „50” 1:30 h)

PracaNoc(OkresBiezacy) – 8.00 (godziny „nocne” 8:00 h)

Funkcje sumujące wybrane składniki (wzorce płacowe typu kwota)

Nazwa funkcji + parametry lub nazwa stałejZwracany rezultatOpis
WypSuma(enum RodzajeSkladnikow, enum RodzajeWartosci, period Okres) (sumowanie wypłat pogrupowanych wg pewnych kryteriów, np. wszystkie opodatkowane)kwota, suma wybranych składników wypłaty według filtrów i okresufunkcja definiowalna wyłącznie za pomocą kreatora Rodzaje składników wypłaty;
param.1: lista rodzajów składników pobieranych do sumowania;
param.2: lista rodzajów wartości, przefiltrowujących kwoty składników;
param.3: okres za jaki mają być sumowane składniki
SumaSkladnikow(period Okres, enum RodzajeWartosci, string NazwaWzorca) (sumowanie wypłat wybranych wg nazw z listy typów wypłat w konfiguracji danej bazy)kwota, suma wybranych typów wypłaty według filtrów i okresufunkcja definiowalna wyłącznie za pomocą kreatora Typy składników wypłaty;
param.1: okres za jaki mają być sumowane składniki;
param.2: lista rodzajów wartości, przefiltrowujących kwoty składników;
param.3: nazwa wzorca definiującego funkcję

Zwracanym rezultatem tych funkcji jest zsumowana wartość składników wypłat wg podanego filtra i okresu.

Jednym z parametrów funkcji jest Okres – jest to osobna funkcja, która została przedstawiona wcześniej.

Konstrukcja wzoru WypSuma tworzona jest podczas użycia konstruktora wzorca płacowego (typ kwota – Rodzaje składników wypłaty).

Konstrukcja wzoru SumaSkladnikow tworzona jest podczas użycia konstruktora wzorca płacowego (typ kwota – Typy składników wypłaty).

Wzorce płacowe są jedynie elementem pomocniczym przy konstruowaniu wzorów liczących składniki wynagrodzenia (dodatki). Zastosowanie wzorca typu kwota w konstrukcji zaawansowanego algorytmu oznacza zapisanie w definicji typu wypłaty wzoru matematycznego zgodnego z aktualna definicją wzorca płacowego. Zmiana ustawień wzorca płacowego nie powoduje automatycznej zmiany wzorów liczących zdefiniowane wcześniej typy wypłat (dodatki), w których zastosowano taki wzorzec płacowy. Aby przy liczeniu wypłat została zastosowana zmodyfikowana formuła wzorca, konieczne jest zaktualizowanie wzorów w typach wypłat – poprzez usunięcie „starego” wzorca i ponowne „podpięcie” zmodyfikowanego wzorca płacowego w odpowiednim miejscu wzoru.

Przykład
Zastosowanie funkcji

WypSuma(8, 0x00400020, WypOkres(0, 1, 0)) wartość składnika = zaliczka podatku + składka zdrowotna odliczona (drugi parametr) składników rodzaju opodatkowane (pierwszy parametr), z okresem ustawionym na aktualny okres rozliczeniowy (parametr trzeci).

SumaSkladnikow(WypOkres(0, 1, 0), 0x00000001 ,’aaa’) wartość składnika = wartość brutto (drugi parametr) wybranych typów składników z aktualnego okresu rozliczeniowego (pierwszy parametr), nazwa wzorca definiującego funkcję ’aaa’.

Funkcja warunkowa

Nazwa funkcji + parametry lub nazwa stałejZwracany rezultatOpis
Warunek(bool Warunek, currency/int Rezultat1, currency/int Rezultat2)Rezultat1 lub Rezultat21 parametr: wyrażenie logiczne zwracające prawdę lub fałsz (1 lub 0); jeśli prawda, to funkcja zwróci 2 parametr; jeśli fałsz, to funkcja zwróci parametr trzeci

We wzorze algorytmu może być również zastosowana funkcja warunkowa, która zwraca wartość pod pewnym (zdefiniowanym) warunkiem.

Warunek(wyrażenie, wartość1, wartość2)

Gdzie:

wyrażenie – wyrażenie podlegające sprawdzeniu

wartość1 – wartość, jaką zwraca funkcja jeśli wyrażenie jest prawdziwe

wartość2 – wartość, jaką zwraca funkcja jeśli wyrażenie jest fałszywe

Jeżeli jest spełniony warunek (1 parametr) wykonywane jest to co znajduje się w 2 parametrze – w przeciwnym wypadku wykonywane jest to co znajduje się w 3 parametrze.

Funkcje warunkowe mogą być wielopoziomowe:

Warunek(AtrybutLiczba(„ile”)==10,100,Warunek(AtrybutLiczba(„ile”)==20,60,10))

Badany jest pierwszy warunek, w przypadku niespełnienia warunku warunek drugi, itd.

Warunek(Atrybut(‘’Jezyk_ang”)==”B2”,200,  Warunek(Atrybut(‘’Jezyk_ang”)==”C1”,300,  0)) W tym przypadku jeżeli pierwszy warunek nie jest spełniony to badany jest drugi, który, jeśli nie zostanie spełniony zwrócona będzie wartość 0.

Uwaga
Znak równości w pierwszym parametrze funkcji warunkowej musi być zapisany jako podwójny: „==”, a nie pojedynczy „=”.Znak „!=” oznacza nierówność (A!=B, a jest różne od B).

Znaki: równości, większości i mniejszości (=, <, >) są dopuszczalne tylko w wyrażeniu zastosowanym w funkcji warunkowej. Wstawianie do wzoru stałych okresowych, wzorców płacowych i operatorów matematycznych jest dostępne jako wybór z listy pod przyciskami z odpowiednimi opisami – wybierany w taki sposób element jest zawsze dopisywany na końcu wzoru. Liczby oraz znaki „=”, „<”, „>” można wpisywać za pomocą klawiatury.

Przykład
Zastosowanie funkcji

Warunek(3<2, 6, 8) – funkcja zwróci wartość 8, ponieważ warunek 3<2 jest fałszywy

Warunek(SumaSkladnikow(WypOkres(0, 1, 0), 0x00000001) > 0, SumaSkladnikow(WypOkres(0, 1, 0),

0x00000001), Konfig(„/Program/Płace/Wskaźniki/Najniższe wynagrodzenie”, Okres.Do))

Jeśli wartość zwracana przez funkcję SumaSkladnikow jest większa od zera, to całkowita wartość wyrażenia

będzie równa wartości tej funkcji, w przeciwnym wypadku wartość wyrażenia będzie równa stałej okresowej

„Najniższe wynagrodzenie”

Przykład
 Dofinansowanie z funduszu socjalnego, zależne od wysokości średniego wynagrodzenia brutto pracownika z poprzedniego kwartału:  

  • nie jest wypłacane przy zarobkach powyżej 3000 zł
  • wypłacane w kwocie 200 zł dla osób o zarobkach od 1000 zł do 3000 zł
  • w kwocie 400 zł dla osób o zarobkach do 1000 zł,

Wzór wyliczający warunkowo – w taki sposób – dopłatę można zapisać funkcją:
Warunek((SumaKwartał/3)<=1000,400,warunek((SumaKwartał/3)<=3000,200,0))
Gdzie: SumaKwartał – to przykładowa nazwa wzorca płacowego typu kwota sumującego wynagrodzenie brutto pracownika z poprzedniego kwartału

Funkcja zaokrąglająca wyliczane z wzorów wartości

Nazwa funkcji + parametry lub nazwa stałejZwracany rezultatOpis



Zaokr(currency/int Wartosc,<int Precyzja>,<int Rodzaj>)



zaokrąglony parametr pierwszy (kwota lub liczba całkowita)
1 parametr: wartość zaokrąglana;
2 parametr: precyzja (ile miejsc po przecinku lub, ze znakiem minus, ile miejsc przed przecinkiem);
3 parametr: rodzaj przyjmuje wartości:
0 – zaokrąglanie matematyczne (0-4 w dół, 5-9 zaokrągla w górę),
1 – zawsze w górę,
2 – zawsze w dół,
Dwa ostatnie parametry opcjonalne (domyślna precyzja=1, rodzaj=0)

Funkcja stosowana w przypadku części składowych definiowanego elementu wyliczanego wg algorytmu 12. Zwracanym rezultatem przez funkcję Zaokr() jest wartość odpowiednio zaokrąglona (wg podanych parametrów).

Funkcja Zaokr(wartość, precyzja, rodzaj), gdzie rodzaj równy 0 jest matematycznym zaokrągleniem wartości i jest przyjmowany domyślnie (gdy brak jest 3 parametru).

Precyzja oznacza z jaką dokładnością po przecinku zostanie zapisana wartość (domyślna precyzja wynosi 0).

Funkcja dopuszcza precyzję po lewej stronie separatora liczby dziesiętnej (precyzja ze znakiem minus).

Precyzja zapisana jako liczba cyfr po przecinku, np. 2 oznacza dokładność do 2 miejsca po przecinku, 0 to zaokrąglenie do liczby całkowitej, a -1 (minus jeden) to dokładność do jednego miejsca przed przecinkiem.

Przykład
Zastosowanie funkcji

Zaokr(14.26, 1, 1) – wartość 14.30 Zaokr(14.26, 0) – wartość 14

Zaokr(14.26, 1, 2) – wartość 14.20 Zaokr(14.26) – wartość 14

Zaokr(14.26, 1) – wartość 14.30 Zaokr(14.26, -1) – wartość 10

Przykład
Typ wypłaty zdefiniowany algorytmem 12 z zaokrągleniem na zakładce Szczegółowe ustawionym wg metody standardowej (matematycznej) z precyzją 0.01 zł. Dodatek zdefiniowany jako iloczyn stawki za godzinę liczonej od minimalnej płacy i liczby godzin przepracowanych w wybranej strefie (o akronimie „szkodliwe”).

Norma pracownika za dany miesiąc = 168 godzin, stawka minimalna 1850 zł,

Czas przepracowany w strefie „szkodliwe” = 80 godzin.

Wzór: (Konfig(„/Program/Płace/Wskaźniki/Najniższe wynagrodzenie”, Okres.Do))/ CzasNormaGodz(OkresBiezacy, „”)*CzasPracaGodz(OkresBiezacy, „szkodliwe”)

Wyliczenie dla zaokrąglenia do 1 grosza (ustawienie na zakładce Szczegółowe):

1850 / 168 * 80 = 880,9523808, czyli wynik 880,95 zł

Wyliczenie dla stawki policzonej od minimalnej zaokrąglanej do 1 grosza. Dopiero potem pomnożenie przez czas przepracowany w strefie.

Wzór:

Zaokr((Konfig(„/Program/Płace/Wskaźniki/Najniższe wynagrodzenie”, Okres.Do))/ CzasNormaGodz(OkresBiezacy, „”),2,0) *CzasPracaGodz(OkresBiezacy, „szkodliwe”)

Wyliczenie wartości brutto (kwoty) w wypłacie:

1850   / 168 = 11,01190476, czyli po zaokrągleniu 11,01 zł. 11,01* 80 = 880,80 po zaokrąglenie kwoty końcowej do 1 grosza (z zakładki Szczegółowe) również 880,80 zł.

Funkcja zaokrąglająca staż

Nazwa funkcji + parametry lub nazwa stałejZwracany rezultatOpis








Staz(const date Data, <int Firma>,<int Praca>,<int Nauka>)








liczba lat stażu
parametr 1: stałe reprezentujące daty Okres.Od lub Okres.Do – uwaga na kropki
(odpowiednio pierwszy lub ostatni dzień okresu rozliczeniowego);
parametry 2, 3, 4 przyjmują wartości:
- 0 - nie wliczać do stażu pracy,
- 1 - wliczać do stażu
Są to parametry opcjonalne (domyślne wartości oznaczających wliczanie do stażu pracy zatrudnienia:
- Firma=1,
- Poza firmą=1,
- Nauka=0
parametry 5, 6, 7 określają różne rodzaj stażu. Rodzaje stażu pobierane są z formularza historii
zatrudnienia pracownika (lista słownikowa):
- jeśli chcemy zsumować dwa rodzaje stażu
liczonych łącznie należy podać je jako parametr 5 i parametr 6,
- dla trzech rodzajów stażu liczonych łącznie należy podać je jako parametr 5, parametr 6 i parametr 7.
Rodzaje staży należy wpisywać w cudzysłowiu.C8

Zwracanym rezultatem funkcji Staz() jest wartość stażu pracy pracownika (obliczona wg podanych parametrów). Do stażu wyliczany może być okres nauki i okres zatrudnienia w różnych miejscach pracy/branżach.

Przykład

Zastosowanie funkcji

Staz(Okres.Od) – staż pracy liczony na dzień będący pierwszym dniem okresu rozliczeniowego wypłaty – staż uwzględnia zatrudnienie w firmie i poza firmą, nie uwzględnia okresu nauki,

Staz(Okres.Do, 0, 0, 1) – staż pracy liczony na ostatni dzień okresu rozliczeniowego wypłaty – nie jest wliczany do stażu okres pracy w firmie i poza firmą, jest wliczany okres nauki (gdyż tylko ostatni parametr ma wartość = 1).

Staz(Okres.Do, 0, 1, 0, „zakład_A”, „zakład_B”) – staż pracy liczony na ostatni dzień okresu rozliczeniowego wypłaty – wliczamy okres pracy poza firmą w zakładach A i B.

Staz(Okres.Od, 1, 1, 1) – staż pracy liczony na dzień będący pierwszym dniem okresu rozliczeniowego wypłaty, staż uwzględnia zatrudnienie w firmie, poza firmą i okres nauki

Przykładowo wpisano w historii zatrudnienia pracownika rodzaje stażu:  

  • praktyka,
  • prace na wysokościach,
  • praca w warunkach szkodliwych

Staz(Okres.Od, 1, 1, 1, „praktyka”, „prace na wysokościach”) – staż pracy liczony na dzień będący pierwszym dniem okresu rozliczeniowego wypłaty, staż uwzględnia zatrudnienie w firmie i okres nauki oraz wlicza dwa rodzaje stażu poza firmą – praktykę i okres pracy na wysokościach

Staz(Okres.Od, 1, 1, 1, „praktyka”) – staż pracy liczony na dzień będący pierwszym dniem okresu rozliczeniowego wypłaty, staż uwzględnia zatrudnienie w firmie i okres nauki oraz wlicza z poza firmą jeden rodzaj stażu – praktyka

Staz(Okres.Od, 1, 1, 1, „praktyka”, „prace na wysokościach”, „praca w warunkach szkodliwych”) – staż pracy liczony na dzień będący pierwszym dniem okresu rozliczeniowego wypłaty, staż uwzględnia zatrudnienie w firmie i okres nauki oraz wlicza trzy możliwe rodzaje staży poza firmą: praktyka, okres pracy na wysokościach i pracy w warunkach szkodliwych.

Funkcja zwracająca wymiar etatu pracownika

Nazwa funkcji + parametry lub nazwa stałejZwracany rezultatOpis
WymiarEtatuWymiar etatuFunkcja zwraca wymiar etatu (wyrażony w częściach dziesiętnych)

Zwracanym rezultatem funkcji WymiarEtatu() jest wartość wymiaru etatu wyrażona w częściach dziesiętnych.

Przykład
Zastosowanie funkcji

Dla pracownika zatrudnionego na 1/4 etatu funkcja zwróci wartość 0.25.

Funkcja zwracająca wartość diety pracownika oddelegownego do pracy za granicę

Nazwa funkcji + parametry lub nazwa stałejZwracany rezultatOpis




kwota DietaNaDzien(<param>)




Dzienna kwoty diety
Funkcja zwraca dzienną kwotę diety pracownika oddelegowanego do pracy
za granicę w walucie lub PLN w zależności od ustawienia dodatkowego parametru.
Funkcja DietaNaDzien("WalutaEtat") - funkcja zwraca wartość diety w walucie,
Funkcja DietaNaDzien("WalutaSystemowa") - funkcja zwraca wartość diety
w przeliczeniu na walutę systemową (PLN) według kursu ustawionego na formularzu listy płac,

Wartość diety jest pobierana z zapisu historycznego pracownika aktualnego na dzień zgodny z datą Okres Do wyliczanego w wypłacie elementu z pola Dieta/dzień, jeśli nie ustawiono kraju oddelegowania. W przypadku wskazania u pracownika kraju oddelegowania funkcja zwraca wartość diety dla danego kraju z konfiguracji. Funkcja DietaNaDzien(<param>) zwraca wartość tylko w wypłatach liczonych na listach płac dla pracowników oddelegowanych. W wypłatach naliczanych za czas pracy w kraju zawsze zwracana jest wartość zero.  

Przykład
Zastosowanie funkcji

Pracownik oddelegowany do pracy za granicę cały miesiąc – kwota diety/dzień = 40 EUR. Kurs waluty na liście płac: 1 EUR = 4.0000 PLN.

Funkcja DietaNadzien() w wypłacie walutowej tego pracownika zwróci odpowiednio:

  • DietaNaDzien(„WalutaEtat”) = 40,00
  • DietaNaDzien(„WalutaSystemowa”) = 160,00

Przykład
Pracownik oddelegowany do pracy za granicę cały miesiąc. Do 11.04 jest oddelegowany do Niemiec – kwota diety/dzień 40 EUR, od 12.04 do Francji – kwota diety/dzień 42 EUR.

Dodatek zwracający wartość dietę w walucie zdefiniowany z okresem wypłaty każda, w wypłacie za kwiecień naliczy się w dwóch częściach:

  • Za okres 1-10.04 = 40.00
  • Za okres 11-30.04 = 42.00

Dodatek zwracający wartość dietę w walucie zdefiniowany z okresem wypłaty co 1 miesiąc, w wypłacie za kwiecień zwróci wartość 42 za cały miesiąc. 

 

Funkcja niezatr

Nazwa funkcji + parametryRezultatOpis




NieZatr(period Okres, const Wynik, const Dni, const Param)




norma w okresie nie- zatrudnienia (plan pracy) za zadany okres. Funkcja w obrębie podanego okresu wybiera taki okres, w którym pracownik nie był zatrudniony
Funkcja zwraca czas niezatrudnienia za dany okres: parametr 2 (Wynik): Const.Dni, lub Const.Godz – rodzaj zwracanego rezultatu (odpowiednio w dniach roboczych, lub w godzinach); parametr 3 (Dni): rodzaj dni branych pod uwagę podczas sumowania (stałe);parametr 4 (Param): Na razie nie jest używany
ParametrWartość
WynikConst.Godz (wynik w godzinach)
Const.Dni (wynik w dniach pracy)
DniConst.Razem – wszystkie dni
Const.Kalend – dni kalendarzowe
Const.Praca – dni pracy

Funkcja zwraca czas niezatrudnienia za dany okres, np.:

Niezatr(OkresBiezacy, Const.Godz) – liczba godzin pracy w okresie niezatrudnienia.

NieZatr(OkresBiezacy, Const.Dni, Const.Praca) – liczba dni pracy w okresie niezatrudnienia.

NieZatr(OkresBiezacy, Const.Dni, Const.Kalend) – liczba dni kalendarzowych w okresie niezatrudnienia.

W funkcji Niezatr() dla drugiego parametru Const.Dni, trzeci ustawiony na Const.Kalend zwraca liczbę dni kalendarzowych niezatrudnienia, a Const.Praca liczbę dni pracy w okresie niezatrudnienia.

Zastosowanie różnych wzorów na okres, w jakim będzie zliczana funkcja może dać różne wyniki.

Dla wzoru OkresBiezacy program będzie zawężał zwracaną wartość do okresu zatrudnienia pracownika w bieżącym miesiącu i do dat odczytywanych z elementu wypłaty, który tą funkcją jest zdefiniowany. Czyli wartość funkcji Nieobec() będzie zawsze wynosiła zero.

Użycie wzoru OkresMies będzie zwracało zawsze wartość czasu normatywnego dla pełnego miesiąca kalendarzowego, baz dodatkowego zawężania do jakichkolwiek okresów.

Przykład
Zastosowanie funkcji w różnych okresach.

Obliczenia wykonywane dla miesiąca maja 2006 (kalendarz standardowy). Pracownik zatrudniony od 2006.05.05

do 2006.05.25 ma dodatkowy element wypłaty z okresem 2006.05.15-2006.05.20.

Wartości liczbowe poszczególnych funkcji:  

  • Niezatr(OkresBiezacy) = 0; wartość za okres 2006.05.15 – 2006.05.20
  • Niezatr(OkresBiezacy) = 0; wartość za okres 2006.05.15 – 2006.05.20
  • Niezatr(OkresMies(1, 0)) = 48; wartość za okres 2006.05.01 – 2006.05.31

Niezatr(OkresMies(1, 0)) = 6; wartość za okres 2006.05.01 – 2006.05.31.

Funkcja nieobec

Nazwa funkcji
+ parametry
RezultatOpis
















Nieobec(period Okres, const Nieobec, const Param, const Dni)
















czas nieobecności całodziennych i wpisanych na część dnia
Funkcja zwraca czas nieobecności za dany okres;
parametr 2 (Nieobec): rodzaj nieobecności
parametr 3 (Param): dla Nieobec
parametr 4 (Dni): rodzaj zwracanego wyniku.
Parametr 2Wartość


Nieobec
Const.Nazwa
Const.PozaNazwa
Const.Razem
Const.Pomn
Const.Rodzaj
Const.PozaRodzaj
Const.ZUS
Const.PozaZUS
Const.Typ
Const.PozaTyp
Const.UrlNaZadanie
Const.Przyczyna
Parametr 4Wartość
DniConst.Godz (wynik w godzinach)
Const.Dni (wynik w dniach pracy)
Const.Kalend (wynik w dniach kalendarzowych)
Występują następujące pary parametrów:
Parametr 2Parametr 3
Const.Nazwa<nazwa> gdzie nazwa jest podana w ciapkach np. „Urlop”. Istotna jest tu wielkość liter.
Const.PozaNazwa<nazwa> gdzie nazwa jest podana w cudzysłowiu np. „Urlop”. Istotna jest tu wielkość liter.
Const.RazemW tym przypadku trzeci parametr nie jest sprawdzany, zaliczane są wszystkie nieobecności w podanym okresie. Należy parametry 2 i 4 rozdzielić dodatkowym przecinkiem i podwójnym cudzysłowem.
Const.PomnConst.N130 – pomniejszenie 1/30 Const.Proporc – pomniejszenie proporcjonalne Const.Niepomn – brak pomniejszenia
Const.RodzajConst.Rozl (wg rozliczenia) Const.Chor (rozl. jak chorobowe) Const.Opieka (rozl. jak opieka) Const.Brak (brak rozliczenia)






Nieobec(period Okres, const Nieobec, const Param, const Dni)






czas nieobecności całodziennych i wpisanych na część dnia
Const. PozaRodzajConst.Rozl (wg rozliczenia)
Const.Chor (rozl. jak chorobowe)
Const.Opieka (jak opieka)
Const.Brak (brak rozl.)
Const.ZUS<KodZUS na deklaracji> w cudzysłowiu np. ”112”. Dotyczy tylko tych typów nieobecności, które mają wpisany kod. Kod ”331” zawraca wszystkie zwolnienia lekarskie, a ”0” nieobecności bez pozycji ZUS (w bazie 999).
Const.PozaZUS<Kod ZUS na deklaracji> w cudzysłowiu np. ”112”. Dotyczy tylko tych typów nieobecności, które mają wpisany kod.
Const.TypConst.Uspraw (Nb. usprawiedliwiona)
Const.NieUspraw (nieusprawiedliwiona)
Const.Urlop (Nb urlop)
Const.ZwZUS (Nb zwolnienie ZUS)
Const.PozaTypConst.Uspraw (Nb. usprawiedliwiona)
Const.NieUspraw (nieusprawiedliwiona)
Const.Urlop (Nb urlop)
Const.ZwZUS (Nb zwolnienie ZUS)
Const.UrlNaZadanieW tym przypadku trzeci parametr nie jest sprawdzany, zaliczane są wszystkie nieobecności typu urlop na żądanie. Parametry 2 i 4 należy rozdzielić dodatkowym przecinkiem i podwójnym cudzysłowem
Const.Przyczyna

W cudzysłowiu należy podać przyczynę nieobecności zgodnie ze słownikiem dostępnym z poziomu formularza nieobecności np. ,"Zwolnienia lekarskie" Ustawienie parametru spowoduje zwrócenie liczby dni, w których pracownik ma wprowadzoną nieobecność ze wskazaną przyczyną.

Funkcja nieobeccalodzienne

Nazwa funkcji + parametry lub nazwa stałejZwracany rezultatOpis
NieobecCalodzienne(period Okres, const Nieobec, const Param, const Dni)Czas nieobecności całodziennychFunkcja uwzględnia tylko nieobecności całodzienne.
Parametry opisane w tabeli powyżej.

Funkcja zwraca czas nieobecności za dany okres. Posiada cztery parametry, przy czym parametr trzeci jest ściśle powiązany z parametrem drugim.

W funkcji Nieobec(OkresBiezacy,Const.Razem,””,Const.Dni) po parametrze Const.Razem należy użyć podwójny cudzysłów. W tym przypadku trzeci parametr nie jest sprawdzany, zliczane są wszystkie nieobecności w podanym okresie. <ALT>+<STRZAŁKA W DÓŁ> po ustawieniu kursora na końcu wzoru bezpośrednio po ciągu znaków: Const. (po kropce) – wyświetla listę dostępnych „rozwinięć” dla parametrów typu Const.

Możliwe jest pominięcie przedrostka Const. – w takim przypadku należy jednak parametr ująć w cudzysłów.

W funkcji Nieobec, NieZatr stałe muszą być poprzedzone przedrostkiem Const. (z dużej litery i kropki na końcu). Po wpisaniu Const. I naciśnięciu <ALT>+<STRZAŁKA W DÓŁ> dostaniemy listę dostępnych stałych. Innym sposobem jest bezpośrednie wpisanie stałej w cudzysłowiu. Należy tu ściśle przestrzegać dużych i małych liter.

Zastosowanie różnych wzorów na okres, w jakim będzie zliczana funkcja może dać różne wyniki. Dla wzoru OkresBiezacy program będzie zawężał zwracaną wartość do okresu zatrudnienia pracownika w bieżącym miesiącu i do dat odczytywanych z elementu wypłaty, który tą funkcją jest zdefiniowany.

Użycie wzoru OkresMies będzie zwracało zawsze wartość czasu normatywnego dla pełnego miesiąca kalendarzowego, baz dodatkowego zawężania do jakichkolwiek okresów.

Przykład
Zastosowanie funkcji

Nieobec(OkresBiezacy,Const.Typ,Const.ZwZUS,Const.Dni) – nieobecności typu zwolnienie ZUS.

Nieobec(OkresBiezacy,Const.ZUS,”312”,Const.Dni) – nieobecności z kodem 312 (urlop opiekuńczy).

Nieobec(OkresBiezacy,”ZUS”,”331”,”Dni”) – nieobecności z kodem 331 (zwolnienia lekarskie).

Nieobec(OkresBiezacy, Const.Typ, Const.Uspraw, Const.Dni) – liczba dni pracy przypadających podczas nieobecności usprawiedliwionych.

Nieobec(OkresBiezacy,Const.UrlNaZadanie, “”,Const.Dni) – liczba dni urlopu na żądanie.

Przykład
Zastosowanie funkcji w różnych okresach.

Obliczenia wykonywane dla miesiąca maja 2016 (kalendarz standardowy). Pracownik zatrudniony od 2016.05.05

do 2016.05.25 i był nieobecny cały ten okres. Ma dodatkowy element wypłaty z okresem 2016.05.15-2016.05.20.

Wartości liczbowe poszczególnych funkcji:  

  • Nieobec(OkresBiezacy, Const.Razem, „”, Const.Godz) = 40; wartość za okres 2016.05.15 – 2016.05.20
  • Nieobec(OkresBiezacy, Const.Razem, „”, Const.Dni) = 5; wartość za okres 2016.05.15 – 2016.05.20
  • Nieobec(OkresMies(1, 0), Const.Razem, „”, Const.Godz) = 160; wartość za okres 2016.05.01 – 2016.05.31

Nieobec(OkresMies(1, 0), Const.Razem, „”, Const.Dni) = 20; wartość za okres 2016.05.01 – 2016.05.31

Przykład
Przykładowo pracownik ma zwolnienie chorobowe na 3 dni (wg planu pracy 8-godzinne) i 1 dzień urlopu na część dnia w ilości 3:00 godz. Funkcje sumujące nieobecności zwrócą następujące informacje:

Wyliczenie czasu trwania nieobecności w dniach:

Nieobec(OkresBiezacy, Const.Razem, Const.Razem, Const.Dni) = 4 (to łącznie są 4 dni z nieobecnościami: 3 całodzienne + 1 na część dnia),

NieobecCalodzienne(OkresBiezacy, Const.Razem, Const.Razem, Const.Dni) = 3 (tylko 3 dni są z nieobecnościami całodziennymi),

Wyliczenie czasu trwanie nieobecności w godzinach:

Nieobec(OkresBiezacy, Const.Razem, Const.Razem, Const.Godz) = 27 (24 godz. Z nieobecności całodziennych + 3 godz. na część dnia)

NieobecCalodzienne(OkresBiezacy, Const.Razem, Const.Razem, Const.Godz) = 24 (bo nieobecności całodzienne trwały 24 godziny)

Funkcja zwracająca wartość atrybutu pracownika

Nazwa funkcji + parametry lub nazwa stałejZwracany rezultatOpis
Atrybut(string NazwaAtrybutu)Wartość atrybutu (tekst)
Nazwa atrybutu w cydzysłowiu
AtrybutLiczba(int NazwaAtrybutu)Wartość atrybutu (liczba)

Zwracanym rezultatem funkcji Atrybut() oraz AtrybutLiczba() jest wartość atrybutu pracownika (odpowiednio tekstowa lub liczbowa). Jeśli wartością atrybutu jest liczba, to zawsze stosujemy funkcję AtrybutLiczba().

Dla funkcji tego typu podczas definiowania rozwijany jest słownik klas atrybutów. Dostępne są: flaga, liczba, SQL,tekst. Listę dostępnych atrybutów rozwija kombinacja klawiszy <ALT>+<STRZAŁKA W DÓŁ>.

Atrybuty typu flaga i tekst mogą być użyte tylko w funkcji warunkowej.

Jeżeli użyta jest funkcja warunkowa z atrybutem typu flaga (Tak/Nie) – np. Warunek(Atrybut(„flaga”)==”Tak”, 120,

Warunek(Atrybut(„flaga”)==”Nie”,10,0)) – i nie jest spełniony żaden warunek (ani Tak ani Nie) to wyliczoną wartością jest zero (występuje w przypadku nie dodania pracownikowi atrybutu lub atrybut poza zakresem obowiązywania).

Uwaga
Istotna jest tu wielkość liter (poprawna jest tylko wartość Tak/Nie). Jeżeli słowo ‘Tak’ w definicji zostanie wpisane dużymi lub małymi literami to składnik zwraca zawsze zero.

Przykład
Zastosowanie funkcji

Atrybut(„Wiek”) – zwraca wartość tekstową atrybutu o nazwie „Wiek”

Jeśli chcemy np. dodać lub odjąć od takiej funkcji wartość innego atrybutu typu liczba np. „Wiek emerytalny” to należy zapisać wzór jako: AtrybutLiczba(„Wiek emerytalny”) – AtrybutLiczba(„Wiek”) a nie w postaci:
Atrybut(„Wiek emerytalny”) – Atrybut(„Wiek”).

Uwaga
W zaawansowanej konstrukcji algorytmu 12 istnieją podpowiedzi wprowadzanych części wzoru. Podpowiedzi osiągane są poprzez kombinację klawiszy <ALT>+<STRZAŁKA W DÓŁ>. Dotyczą one parametrów poszczególnych funkcji używanych we wzorach i są wywoływane kontekstowo (przy pustym polu z wzorem nie rozwija się żadne menu pomocnicze).

Pomocnicze funkcje

Nazwa funkcji + parametryRezultatOpis
Okres.Oddatapoczątkowa data okresu rozliczeniowego wypłaty (data Clarion)
Okres.Dodatakońcowa data okresu rozliczeniowego wypłaty (data Clarion)
Wylicz1h(currency Kwota)kwota, stawka na godz.funkcja wylicza wartość według wzoru:
parametr1/czas normatywny w danym okresie rozliczeniowym

Data Clarion – ilość czasu jaka upłynęła od daty '1899-12-30 00:00:00′ do dnia obecnego – wartość taką zwracają funkcje Okres.Od i Okres.Do.

Przykład
Zastosowanie funkcji

Wylicz1h(1000) – przy normie = 168, wartość stawki na godzinę = 1000/168 = 5.95

Wylicz1h(Historia.Etat.Stawka) – wylicza stawkę na godzinę dla stawki miesięcznej z etatu (użycie stałej okresowej).

Uwaga
Stałe muszą być poprzedzone przedrostkiem Const. (z dużej litery i kropki na końcu). Po wpisaniu Const. I naciśnięciu <ALT>+<STRZAŁKA W DÓŁ> dostaniemy listę dostępnych stałych. Innym sposobem jest bezpośrednie wpisanie stałej w cudzysłowiu. Należy ściśle przestrzegać dużych i małych liter.

Parametry użyte we wzorach poszczególnych funkcji oznaczają możliwe do użycia typy danych:

int – liczba całkowita

date – data

currency – liczba zmiennoprzecinkowa (kwota)

period – okres

const – stała

bool – typ logiczny (prawda/fałsz)

string – tekst, łańcuch znaków

enum – typ wyliczeniowy, lista

<> – parametr opcjonalny

Zapisany w definicji zaawansowanej wzór może mieć maksymalnie 2048 znaków. W przypadku dłuższego wzoru program zapisuje tylko dozwoloną ilość znaków.

Przy stosowaniu we wzorze liczb zapisywanych z miejscami po przecinku jako separator dziesiętny należy wstawiać kropkę (np. 1.25 a nie 1,25), ponieważ przecinek jest interpretowany jako separator oddzielający parametry wewnątrz funkcji.

Wstawianie do wzoru stałych okresowych, wzorców płacowych i operatorów matematycznych jest dostępne jako wybór z listy pod przyciskami z odpowiednimi opisami – wybierany w taki sposób element jest zawsze dopisywany na końcu wzoru. Liczby oraz znaki „==”, „!=”, „<”, „>” można wpisywać za pomocą klawiatury.

W funkcjach zwracających czas normy, pracy, nieobecności i wartości atrybutów istnieją podpowiedzi wprowadzanych części wzoru. Podpowiedzi osiągane są poprzez kombinację klawiszy <ALT> + <STRZAŁKA W DÓŁ> Dotyczą one parametrów poszczególnych funkcji używanych we wzorach i są wywoływane kontekstowo (przy pustym polu z wzorem nie rozwija się żadne menu pomocnicze). Podpowiedzi opisane zostały w opisie poszczególnych funkcji.

Przykład
Definiowanie wzoru za pomocą funkcji

Chcąc zdefiniować wzór sumujący wszystkie nieobecności typu Zwolnienia ZUS z bieżącego miesiąca w przeliczeniu na dni pracy, możemy – korzystając z podpowiedzi – zrobić to następująco: z listy rozwijanej przy przycisku „Operatory i funkcje” wybieramy pozycję: liczba Nieobec (okres,rodzaj, <param>,<dni>), w polu z wzorem podstawia się ciąg znaków:

Nieobec(OkresBiezacy)

Usuwamy nawias domykający i dopisujemy przecinek, a za nim ciąg znaków Const. wskazujący, że funkcja będzie doprecyzowana drugim parametrem, wzór po tej zmianie:

Nieobec(OkresBiezacy,Const.

Ustawiamy kursor na końcu po kropce, naciskamy <ALT> + <STRZAŁKA w DÓŁ> i z wyświetlonej listy wybieramy Typ – wzór ma postać:

Nieobec(OkresBiezacy,Const.Typ

Dopisujemy ręcznie przecinek i następny Const.:

Nieobec(OkresBiezacy,Const.Typ,Const.

Ustawiamy kursor na końcu, naciskamy <ALT> + <STRZAŁKA w DÓŁ> i wybieramy ZwZUS:

Nieobec(OkresBiezacy,Const.Typ,Const.ZwZUS

Dopisujemy po raz ostatni przecinek i Const.:

Nieobec(OkresBiezacy,Const.Typ,Const.ZwZUS,Const.

Pod <ALT>+<STRZAŁKA w DÓŁ> wybieramy Dni:

Nieobec(OkresBiezacy,Const.Typ,Const.ZwZUS,Const.Dni

Dodajemy nawias domykający i otrzymujemy wzór w ostatecznej postaci:

Nieobec(OkresBiezacy,Const.Typ,Const.ZwZUS,Const.Dni)

Priorytety – jeżeli we wzorze w typie wypłaty wg algorytmu 12 odwołujemy się do wartości z bieżącego miesiąca innego typu wypłaty zdefiniowanego algorytmem 12, to wliczany typ wypłaty musi mieć niższy priorytet niż ten typ wypłaty do którego wliczamy.

Przykład
Dodatek a jest równy połowie dodatku B, oba zdefiniowane algorytmem 12, a wyliczy się poprawnie tylko jeśli będzie mieć wyższy priorytet niż B.

Istnieje możliwość ręcznego dodania w wypłacie typów wypłat zdefiniowanych algorytmem 12 – pozwala to na wypłacanie przez inne wypłaty dodatków liczonych w oparciu o ten algorytm.

Algorytm 13 – Akord

Wybór algorytmu 13 oznacza, że będzie on wykorzystywany do liczenia wypłat typu akordowego. Na formularzu typu wypłaty na pierwszej zakładce dla algorytmu 13 nie udostępniono żadnych parametrów, zablokowano również opcje dotyczące automatycznego pomniejszania za czas nieobecności. Edycji – w  pełnym zakresie – podlegają natomiast pozostałe zakładki.

W programie zdefiniowano jeden standardowy typ wypłaty o nazwie „Akord” wyliczany algorytmem 13. Jest on wliczany do chorobowego, urlopu i ekwiwalentu.

Algorytm 14 – Umowa- zlecenie godzinowa

Algorytm 14 służy do definiowania umów cywilnoprawnych rozliczanych godzinowo. Jest on dostępny na formularzu typu wypłaty, gdy w polu Rodzaj ustawiona jest opcja Umowa. W definicji umowy zdefiniowanej algorytmem 14 można ustawić stawkę za godzinę lub odwołać się do stałej okresowej.

Definiowanie własnej umowy cywilnoprawnej

Użytkownik może zdefiniować typ wypłaty będący umową cywilnoprawną. Wówczas, na formularzu umowy należy w polu Rodzaj wybrać Umowa. Lista dostępnych algorytmów zostanie zawężona do 4 wzorów (algorytmów):

  • Algorytm 1 – kwota umowy jest znana
  • Algorytm 4 – stosowany, gdy z góry nie jest znana ilość (np. sztuk), za którą będzie realizowana wypłata. Wartość liczona może być jako iloczyn 3 składników: stałej okresowej (wybór z listy), współczynnika (może być wpisany w konfiguracji składnika albo bezpośrednio na wypłacie), ilości (wpisywanej bezpośrednio przed wypłatą)
  • Algorytm 6 wartość umowy może być liczone według dwóch elementów: stałej okresowej (wybór z listy) i współczynnika (można go wpisać w konfiguracji składnika albo bezpośrednio na wypłacie.
  • Algorytm 12 (definicja zaawansowana) – dostępny tylko w module Płace i Kadry Plus. Pozwala na obliczanie wartości umów według rozbudowanych wzorów. Do definiowania umowy cywilnoprawnej według tego algorytmu można wykorzystać wyłącznie definicję zaawansowaną. W definicji tego algorytmu można między innymi odwołać się do atrybutów pracownika, co pozwoli np. na zdefiniowanie umowy zlecenie rozliczanej godzinowo.
  • Algorytm 14 – wartość umowy wyliczana jest jako iloczyn stawki za godzinę i ilości przepracowanych godzin przez zleceniobiorcę. Stawka za godzinę może być wpisana w definicji umowy w konfiguracji, na formularzu umowy zleceniobiorcy lub podana jako stała okresowa. Czas pracy zleceniobiorcy pobierany jest z uproszczonego zestawienia lub kalendarza (Nie)obecności, w zależności od ustawień na formularzu umowy zleceniobiorcy.

Po zdefiniowaniu umowy w Konfiguracji będzie ją można odnaleźć na liście słownikowej Rodzaj umowy na formularzu umowy cywilnoprawnej.

Uwaga
Zdefiniowane przez użytkownika umowy (za wyjątkiem umowy definiowanej algorytmem 1 Kwota) mają zablokowane (nieaktywne) pola z kwotami na formularzu umowy. Ponadto, na liście umów cywilnoprawnych – umowy użytkownika – wyświetlane są jako niespłacone (zielone).

Na liście umów cywilnoprawnych – umowy Użytkownika – wyświetlane są jako niespłacone (zielone). Flaga ta nie jest zaznaczana automatycznie przy naliczaniu wypłat. Status umowy na Spłacona może być zmieniony tylko ręcznie przez Operatora. W tym celu należy otworzyć formularz umowy i zaznaczyć flagę . Umowa pojawi się w kolorze czarnym.

Uwaga
Usunięcie wypłaty do definiowanej przez Użytkownika umowy oznaczonej jako spłacona, nie powoduje wyłączenia flagi spłacona na tej umowie. Jeśli zaistnieje potrzeba ponownego naliczenia wypłaty do takiej umowy, to należy ręcznie wyłączyć na formularzu umowy flagę na czas ponownego naliczenia wypłaty.

W przypadku definiowania w konfiguracji własnych typów wypłat o rodzaju „umowa” dla umów ryczałtowych, w polu „Pozycja na deklaracji PIT” należy wybrać PIT-8AR Należności nie przekraczające, a w polu Sposób naliczania zaliczki podatku ustawić Procent jak dla umów.