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.
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).
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).
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).
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).
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).
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).
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.
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”).
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. Składnik zdefiniowany na podstawie tego algorytmu można także dodać na listę stałych dodatków pracownika.
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.
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ż nawiasy i liczby.
Ponadto, dostępne są funkcje opisane poniżej.
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łej | Zwracany rezultat | Opis |
---|---|---|
OkresMies(int Ile, <int wstecz >) | okres | dział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 | |
OkresBiezacy | okres | zwraca 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
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.
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łej | Zwracany rezultat | Opis |
---|---|---|
Liczba CzasKalend (okres, <param>) | liczba dni kalendarzowych w podanym okresie | Pierwszy 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.
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łej | Zwracany rezultat | Opis |
---|---|---|
CzasNormaDniokres,<string AkronimStrefy>) | liczba dni normy w podanym okresie | 1 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 |
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.
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.
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.
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łej | Zwracany rezultat | Opis |
---|---|---|
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 itd | Jako 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ę. Jako typ dnia należy podać wartość 1 dla typu dnia ‘pracy’, 2 dla typu dnia ‘wolny’, 3 dla typu dnia świąteczny. |
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.
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 OkresBiezacy i OkresMies 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.
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”
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:
CzasPracaGodzi(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łej | Zwracany rezultat | Opis |
---|---|---|
Nadgodz(<period Okres>) | ilość nadgodzin w godzinach | funkcja 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 łącznie | Liczba 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 OkresBiezacy i OkresMies 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.
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
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łej | Zwracany rezultat | Opis |
---|---|---|
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 okresu | funkcja 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 okresu | funkcja 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.
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łej | Zwracany rezultat | Opis |
---|---|---|
Warunek(bool Warunek, currency/int Rezultat1, currency/int Rezultat2) | Rezultat1 lub Rezultat2 | 1 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.
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.
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”
- 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łej | Zwracany rezultat | Opis |
---|---|---|
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.
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
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łej | Zwracany rezultat | Opis |
---|---|---|
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.
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, 1, 0, 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łej | Zwracany rezultat | Opis |
---|---|---|
WymiarEtatu | Wymiar etatu | Funkcja 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.
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łej | Zwracany rezultat | Opis |
---|---|---|
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.
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ładPracownik 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 + parametry Rezultat Opis
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ł zatrudnionyFunkcja 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 Parametr Wartość Wynik Const.Godz (wynik w godzinach)
Const.Dni (wynik w dniach pracy)Dni Const.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ładZastosowanie 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
+ parametryRezultat Opis
Nieobec(period Okres, const Nieobec, const Param, const Dni)
czas nieobecności całodziennych i wpisanych na część dniaFunkcja 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 2 Wartość
NieobecConst.Nazwa
Const.PozaNazwa
Const.Razem
Const.Pomn
Const.Rodzaj
Const.PozaRodzaj
Const.ZUS
Const.PozaZUS
Const.Typ
Const.PozaTyp
Const.UrlNaZadanie
Const.Przyczyna
Parametr 4 Wartość Dni Const.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 2 Parametr 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.Razem W 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.Pomn Const.N130 – pomniejszenie 1/30 Const.Proporc – pomniejszenie proporcjonalne Const.Niepomn – brak pomniejszenia Const.Rodzaj Const.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ęść dniaConst. PozaRodzaj Const.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.Typ Const.Uspraw (Nb. usprawiedliwiona)
Const.NieUspraw (nieusprawiedliwiona)
Const.Urlop (Nb urlop)
Const.ZwZUS (Nb zwolnienie ZUS)Const.PozaTyp Const.Uspraw (Nb. usprawiedliwiona)
Const.NieUspraw (nieusprawiedliwiona)
Const.Urlop (Nb urlop)
Const.ZwZUS (Nb zwolnienie ZUS)Const.UrlNaZadanie W 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.UrlNaZadanie
Const.PrzyczynaW 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łej Zwracany rezultat Opis NieobecCalodzienne(period Okres, const Nieobec, const Param, const Dni) Czas nieobecności całodziennych Funkcja 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ładZastosowanie funkcjiNieobec(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ładZastosowanie 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ładPrzykł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łej Zwracany rezultat Opis Atrybut(string NazwaAtrybutu) Wartość atrybutu (tekst)
Nazwa atrybutu w cydzysłowiuAtrybutLiczba(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).
UwagaIstotna 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ładZastosowanie funkcjiAtrybut(„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”).UwagaW 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 + parametry Rezultat Opis Okres.Od data początkowa data okresu rozliczeniowego wypłaty (data Clarion) Okres.Do data koń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 rozliczeniowymData 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ładZastosowanie funkcjiWylicz1h(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).
UwagaStał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ładDefiniowanie wzoru za pomocą funkcjiChcą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ładDodatek 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.
UwagaZdefiniowane 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.
UwagaUsunię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.