11 KiB
11 KiB
API algorytmów — pola, metody, klasy, typy danych
Pola WypSkladnik
Podstawowe pola
| Pole | Typ | Opis |
|---|---|---|
Składnik.Podstawa1 |
DoubleCy |
Główna podstawa obliczenia |
Składnik.Podstawa2 |
DoubleCy |
Dodatkowa podstawa |
Składnik.Czas |
Time |
Czas pracy (godziny) |
Składnik.Dni |
int |
Liczba dni |
Składnik.Procent |
Percent |
Procent (mnożnik) |
Składnik.Okres |
FromTo |
Okres naliczania składnika |
Dodatkowe pola (odkryte w rzeczywistych algorytmach)
| Pole | Typ | Opis | Przykład użycia |
|---|---|---|---|
Składnik.Podstawa3 |
DoubleCy |
Trzecia podstawa obliczenia | Wyrównanie macierzyńskiego (podstawa dzienna) |
Składnik.Wspolczynnik |
double |
Współczynnik mnożnikowy | Ryczałt samochodowy (liczba km) |
Składnik.Ilosc |
Fraction |
Ilość (wymiar etatu przy zbiegu) | WymiarEtatuZasiłekPrzyZbiegu(Element) |
Składnik.DataKursu |
Date |
Data kursu waluty | Przeliczanie walut w algorytmie postojowym |
Składnik.Ulamek |
Fraction |
Ułamek (wymiar etatu) | Mnożenie przez wymiar etatu |
Metody pomocnicze
Podstawowe metody
| Metoda | Zwraca | Opis |
|---|---|---|
ZasadniczeNominalne(Date) |
DoubleCy |
Nominalne wynagrodzenie zasadnicze na datę |
StawkaZaszeregowania1h(Date) |
DoubleCy |
Stawka zaszeregowania za 1 godzinę |
StawkaZaszeregowaniaNorm1h(Date) |
DoubleCy |
Stawka zaszereg. normatywna za 1h |
Element.Pracownik.Czasy.Norma(FromTo) |
CzasDni |
Norma czasu pracy (Czas + Dni) |
Element.Pracownik.Czasy.Nieobecnosci(FromTo) |
CzasDni |
Czas nieobecności (Czas + Dni) |
Element.Pracownik.StażPracy(Date, PodstawaStazu) |
obiekt z .Lata |
Staż pracy |
Element.Okres |
FromTo |
Okres elementu (.From, .To) |
Element.DodHistoria.Procent |
Percent |
Procent z parametru dodatku |
Element.DodHistoria.Kwota |
Currency |
Kwota z parametru dodatku |
Element.DodHistoria.Podstawa |
DoubleCy |
Podstawa z parametru dodatku (częściej używana niż .Kwota) |
PełnyOkresNaliczania(Element, Składnik) |
FromTo |
Pełny okres naliczania |
NadgodzinyDobaOkres(Element, Składnik) |
ZestawienieNadgodzin |
Zestawienie nadgodzin (.N50, .N100) |
SumaElementow(Element, okres, WypElement.Zasadnicze) |
DoubleCy |
Suma elementów zasadniczych |
Dodatkowe metody pomocnicze (odkryte w rzeczywistych algorytmach)
| Metoda | Zwraca | Opis |
|---|---|---|
WyliczPodstawęZasiłkuZaDzień(Element, Składnik) |
DoubleCy |
Podstawa zasiłku za 1 dzień (po waloryzacji, ograniczeniach) |
OgraniczeniePodstawyZasiłkuDoKorygowanego(Element, Składnik, wartość) |
Currency |
Ograniczenie wartości zasiłku do kwoty korygowanego |
WymiarEtatuZasiłekPrzyZbiegu(Element) |
Fraction |
Wymiar etatu dla zasiłku przy zbiegu tytułów |
WnagrodzenieZaNadgodziny(Element) |
DoubleCy |
Wynagrodzenie za nadgodziny do podstawy dopłaty |
NajniższeWynagrodzenie1h(Date) |
DoubleCy |
Minimalne wynagrodzenie za 1h |
PrzeliczDniNaGodziny(Date, int) |
Time |
Przeliczenie dni na godziny wg normy |
OdsetkiZUS_ParamInt(Element, Składnik) |
void |
Naliczenie odsetek od zasiłków ZUS |
PodstawyPotrąceniaOPP(Element, Składnik) |
void |
Naliczenie podstawy potrącenia OPP |
WartośćPotrąceniaOPP(Element, Składnik) |
Currency |
Wartość potrącenia OPP |
PodstawaSkładekZUSWłaścicielaWakacjeSkładkowe(Element) |
DoubleCy |
Podstawa składek z uwzgl. wakacji składkowych |
WartośćZasiłku(Element, Składnik, kwota) |
DoubleCy |
Wartość zasiłku proporcjonalna do okresu |
NettoBrutto(Element, wartość) |
DoubleCy |
Przeliczenie netto na brutto |
SpłataZaliczkiNieopodatkowanej(Element, Składnik) |
DoubleCy |
Spłata zaliczki nieopodatkowanej |
WartośćWskaźnika(string nazwa, Date data) |
DoubleCy |
Wartość wskaźnika |
WartośćWskaźnikaObj(string nazwa, Date data) |
object |
Wartość wskaźnika jako obiekt (do castowania) |
Klasy i obiekty dostępne w algorytmach
| Klasa / Obiekt | Opis | Przykład dostępu |
|---|---|---|
PodstawaZasiłku |
Wylicza podstawę zasiłku chorobowego/macierzyńskiego — Podstawa, Procent |
new PodstawaZasiłku(Element) |
NaliczanieOkolicznosciowy |
Nalicza wynagrodzenie za urlopy okolicznościowe, delegacje itp. | new NaliczanieOkolicznosciowy(Element, Składnik).NaliczPodstawy() |
NaliczanieEkwiwalent |
Nalicza podstawę ekwiwalentu za urlop | new NaliczanieEkwiwalent(Element, Składnik).NaliczPodstawy() |
NaliczanieWypoczynkowy |
Nalicza podstawę urlopu wypoczynkowego (używane w nadgodzinach akordowych) | new NaliczanieWypoczynkowy(Element, Składnik).NaliczPodstawy() |
PodwyższenieMacierzyńskiego |
Nalicza wyrównanie zasiłku macierzyńskiego | new PodwyższenieMacierzyńskiego(Element, Składnik).NaliczPodstawy() |
JakEkwiwalentZaUrlop |
Klasa statyczna z metodami kontroli ekwiwalentu | JakEkwiwalentZaUrlop.KontrolaPrzeliczeniaLimitu(...) |
PlaceModule |
Moduł płac — dostęp do konfiguracji | Element.Table.Module lub Element.Module |
KalendModule |
Moduł kalendarza — strefy, limity nieobecności | KalendModule.GetInstance(Element) |
SamochodowkaModule |
Moduł samochodówki — stawki za km | SamochodowkaModule.GetInstance(Element) |
KadryModule |
Moduł kadr — podstawy stażu | KadryModule.GetInstance(Element) |
DefinicjaStrefy |
Definicja strefy czasu pracy | KalendModule.GetInstance(Element).DefinicjeStref.WgNazwy["Praca zdalna"] |
DefinicjaStrefy.PrzestójEkonomiczny |
Predefiniowana strefa przestoju ekonomicznego | Kalend.DefinicjeStref[DefinicjaStrefy.PrzestójEkonomiczny] |
DefinicjaStrefy.PrzestójKP |
Predefiniowana strefa przestoju KP | Kalend.DefinicjeStref[DefinicjaStrefy.PrzestójKP] |
LimitNieobecnosci |
Limit urlopowy pracownika | KalendModule.GetInstance(Element).LimNieobecnosci.WgPracownik[...] |
DefinicjaLimitu |
Definicja limitu (np. urlop wypoczynkowy) | KalendModule.GetInstance(Element).DefinicjeLimitow.UrlopWypoczynkowy |
CzlonekRodziny |
Członek rodziny pracownika | Element.Dodatek.Rodzina |
Dostęp do konfiguracji
| Ścieżka | Opis | Przykład |
|---|---|---|
module.Config.Zasiłki.*[Date] |
Kwoty zasiłków indeksowane datą | module.Config.Zasiłki.Pielęgnacyjny[Element.Okres.To] |
module.Config.PracaZdalna.*[Date] |
Stawki pracy zdalnej | Element.Module.Config.PracaZdalna.StawkaGodzinowa[Element.Okres.To] |
Płace.Config.Etat.* |
Konfiguracja etatowa (nadgodziny akordowe) | Płace.Config.Etat.NadgodzinyAkordowe60 |
Płace.Config.Ogólne.* |
Konfiguracja ogólna płac | Płace.Config.Ogólne.PrzestójWPodstawieMinimalnejPłacy |
SamochodowkaModule.Config.StawkiZaKm.*[Date] |
Stawki za km | sm.Config.StawkiZaKm.SamochodDo900[Element.Okres.To] |
Typy danych
| Typ | Opis |
|---|---|
Currency |
Wartość pieniężna (z walutą) — typ zwracany przez _Wylicz |
DoubleCy |
Wartość zmiennoprzecinkowa z walutą — do obliczeń pośrednich |
Time |
Czas (godziny:minuty) |
Date |
Data |
FromTo |
Zakres dat (From..To) |
Percent |
Wartość procentowa |
Fraction |
Ułamek (np. wymiar etatu), z polami .Num i .Den |
CzasDni |
Struktura z polami .Czas (Time) i .Dni (int) |
YearMonth |
Rok + miesiąc, z właściwością .Days |
Operacje na typach danych
| Operacja | Składnia | Opis |
|---|---|---|
| Zaokrąglenie w górę | wartość.Ceiling(1) |
Zaokrąglenie Currency/DoubleCy w górę do 1 miejsca |
| Maximum z dwóch wartości | DoubleCy.Max(a, b) |
Większa z dwóch wartości DoubleCy |
| Stała zero | DoubleCy.Zero |
Wartość zerowa DoubleCy |
| Czas zero | Time.Zero |
Czas zerowy |
| Czas pusty | Time.Empty |
Czas niezainicjalizowany |
| Sprawdzenie czasu | Time.ZeroOrEmpty(czas) |
Czy czas jest zerowy lub pusty |
| Maksimum czasu | Time.Max(a, b) |
Większy z dwóch czasów |
| Rzutowanie | (Currency)doubleCy |
Konwersja DoubleCy → Currency |
| Rzutowanie | (decimal)doubleCy.Value |
Konwersja DoubleCy → decimal |
| Pełny miesiąc | Składnik.Okres.FullMonth |
Rozszerzenie okresu do pełnego miesiąca |
| Dni w miesiącu | FromTo.Month(date).Days |
Liczba dni w miesiącu zawierającym datę |
| Pierwszy dzień | date.FirstDayMonth() |
Pierwszy dzień miesiąca |
| Wiek | new FromTo(from, to).Age |
Obliczenie pełnych lat między datami |
| Przeliczenie waluty | Element.PrzeliczNaPln(doubleCy) |
Przeliczenie na PLN |
| Tabela kursowa | Pracownik.GetTabelaKursowa(date) |
Pobranie tabeli kursowej |
| Przeliczenie walut | tabela.Przelicz(wartość, date, symbol) |
Przeliczenie między walutami |
| Max/Min Currency | Currency.Max(a, b) / Currency.Min(a, b) |
Porównanie wartości Currency |
| Zaokrąglenie | wartość.Round(0) |
Zaokrąglenie do pełnych złotych |
| Zaokrąglenie DoubleCy | new DoubleCy(Soneta.Tools.Math.Round(val.Value, 1), val.Symbol) |
Zaokrąglenie DoubleCy do 1 miejsca |
Sygnatury metod algorytmu
Metody obowiązkowe
// _Param — przygotowanie danych
public void {Identyfikator}_Param({KlasaElementu} Element, WypSkladnik Składnik) { }
// _Wylicz — obliczenie wartości
public Currency {Identyfikator}_Wylicz({KlasaElementu} Element, WypSkladnik Składnik) { return ...; }
Metody opcjonalne
// _Wartość1h — wartość za 1 godzinę (dla elementów Etat)
public double {Identyfikator}_Wartość1h({KlasaElementu} Element) { return ...; }
// _Odbiorca — ustalenie odbiorcy płatności (np. dla potrąceń OPP, alimentów)
public IPodmiotKasowy {Identyfikator}_Odbiorca({KlasaElementu} Element)
{
return Element.PracHistoria.OdpisOPP.Organizacja;
}
// _RachunekOdbiorcy — rachunek bankowy odbiorcy
public RachunekBankowyPodmiotu {Identyfikator}_RachunekOdbiorcy(
{KlasaElementu} Element, IPodmiotKasowy odbiorca)
{
return odbiorca == null ? null : odbiorca.DomyslnyRachunek;
}
// _CięcieOkresu — podział okresu naliczania na podokresy
public Periods {Identyfikator}_CięcieOkresu({KlasaElementu} Element, Periods periods)
{
return ...; // zwraca podzielone okresy
}
// _Podstawa — dodatkowa metoda obliczania podstawy
public DoubleCy {Identyfikator}_Podstawa({KlasaElementu} Element, WypSkladnik Składnik)
{
return ...; // obliczona podstawa
}
Klasy elementów wg rodzaju (do użycia w sygnaturze)
| Rodzaj | Klasa |
|---|---|
| Etat | Soneta.Place.WypElementEtat |
| Dodatek | Soneta.Place.WypElementDodatek |
| Dodatek automatyczny | Soneta.Place.WypElementDodatekAutomatyczny |
| Nieobecność | Soneta.Place.WypElementNieobecnosc |
| Nadgodziny I/II/św | Soneta.Place.WypElementNadgodziny |
| Nocne | Soneta.Place.WypElementNocne |
| Umowa | Soneta.Place.WypElementUmowa |
| Świadczenie | Soneta.Place.WypElementSwiadczenie |
Dostępne wartości enumeracji
RodzajŹródłaWypłaty
Etat, Nieobecność, Umowa, Akord, Storno, Dodatek, NadgodzinyI, NadgodzinyII, NadgodzinyŚw, Nocne, Kurs, Świadczenie, Nagroda, Kara, FundPożWpisowe, FundPożWycofanie, FundPożSkładka, Pożyczka, PożyczkaSpłata, Zaliczka, SpłataZaliczki
TypNieobecnosci
UsprawiedliwionaPłatna, NieobecnośćZUS i inne.
PrzyczynaNieobecnosci
UrlopWypoczynkowy, ZwolnienieChorobowe i inne.
RodzajStawkiZaszeregowania
Miesieczna, Godzinowa
TypUbezpieczeniaSpolecznego
NieNaliczać i inne.