Przemianowałem istnijące skille na prostsze nazwy - porządki

This commit is contained in:
Marcin Wojas
2026-05-16 16:06:36 +02:00
parent e1c3be3846
commit 3e5239cb60
10 changed files with 277 additions and 91 deletions
+25 -10
View File
@@ -143,31 +143,46 @@ update_field_value(["_Tekst=public void Nazwa_Param(...) {\\n ...\\n}\\n\\npu
## Wskazówki przy tworzeniu nowych algorytmów
1. **Wybierz wzorzec** — większość nowych elementów pasuje do jednego z istniejących wzorców. Przeczytaj `references/wzorce-algorytmiczne.md` i zacznij od skopiowania najbliższego wzorca.
1. **`Element` to parametr metody** — w kodzie algorytmu `Element` nie jest zmienną globalną ani polem klasy — jest **pierwszym parametrem** każdej metody (`_Param`, `_Wylicz`, `_Wartość1h` itd.).
Metoda musi zawsze zawierać te parametry.
Typ tego parametru musi odpowiadać rodzajowi definiowanego elementu:
- Etat → `Soneta.Place.WypElementEtat Element`
- Dodatek → `Soneta.Place.WypElementDodatek Element`
- Dodatek automatyczny → `Soneta.Place.WypElementDodatekAutomatyczny Element`
- Nieobecność → `Soneta.Place.WypElementNieobecnosc Element`
- Nadgodziny → `Soneta.Place.WypElementNadgodziny Element`
- Umowa → `Soneta.Place.WypElementUmowa Element`
2. **Źródło kwoty** — zdecyduj skąd pochodzi podstawa:
Przykład: jeśli algorytm odwołuje się do `Element.DodHistoria.Podstawa`, a definicja jest rodzaju **Dodatek**, to sygnatura metody musi wyglądać:
```csharp
public void MojDodatek_Param(WypElementDodatek Element, WypSkladnik Składnik) { ... }
```
2. **Wybierz wzorzec** — większość nowych elementów pasuje do jednego z istniejących wzorców. Przeczytaj `references/wzorce-algorytmiczne.md` i zacznij od skopiowania najbliższego wzorca.
3. **Źródło kwoty** — zdecyduj skąd pochodzi podstawa:
- Kwota z parametrów pracownika → `Element.DodHistoria.Podstawa` (Wzorzec A)
- Kwota z konfiguracji programu → `module.Config.Zasiłki.*[Date]` (Wzorzec B)
- Kwota stała z definicji → `Element.Definicja.Algorytm.KreatorAlgorytmu.Podstawa` (Wzorzec C)
- Procent od zasadniczego → `ZasadniczeNominalne(Date)` + `Element.DodHistoria.Procent` (Wzorzec D)
3. **Czas i dni** — prawie wszystkie algorytmy ustawiają czas i dni z normy:
4. **Czas i dni** — prawie wszystkie algorytmy ustawiają czas i dni z normy:
```csharp
CzasDni cd = Element.Pracownik.Czasy.Norma(Składnik.Okres);
Składnik.Czas = cd.Czas;
Składnik.Dni = cd.Dni;
```
4. **Pomniejszenie za nieobecności** — użyj kreatora algorytmu z konfiguracją korekt lub ręcznie: `Element.Pracownik.Czasy.Nieobecnosci(Składnik.Okres).Dni`
5. **Pomniejszenie za nieobecności** — użyj kreatora algorytmu z konfiguracją korekt lub ręcznie: `Element.Pracownik.Czasy.Nieobecnosci(Składnik.Okres).Dni`
5. **Proporcjonalność do okresu** — gdy okres składnika jest krótszy niż pełny okres naliczania, przelicz proporcjonalnie (jak w Premii procentowej — Wzorzec D).
6. **Proporcjonalność do okresu** — gdy okres składnika jest krótszy niż pełny okres naliczania, przelicz proporcjonalnie (jak w Premii procentowej — Wzorzec D).
6. **Zasiłki** — zawsze używaj `new PodstawaZasiłku(Element)` i `WyliczPodstawęZasiłkuZaDzień(...)` — nie obliczaj podstawy zasiłku ręcznie.
7. **Zasiłki** — zawsze używaj `new PodstawaZasiłku(Element)` i `WyliczPodstawęZasiłkuZaDzień(...)` — nie obliczaj podstawy zasiłku ręcznie.
7. **Urlopy okolicznościowe** — używaj `new NaliczanieOkolicznosciowy(Element, Składnik).NaliczPodstawy()` — automatycznie ustawi Podstawa1 (za godziny) i Podstawa2 (za dni).
8. **Urlopy okolicznościowe** — używaj `new NaliczanieOkolicznosciowy(Element, Składnik).NaliczPodstawy()` — automatycznie ustawi Podstawa1 (za godziny) i Podstawa2 (za dni).
8. **Ekwiwalenty i odprawy** — używaj `new NaliczanieEkwiwalent(Element, Składnik).NaliczPodstawy()`.
9. **Ekwiwalenty i odprawy** — używaj `new NaliczanieEkwiwalent(Element, Składnik).NaliczPodstawy()`.
9. **Element.DodHistoria.Podstawa vs Element.DodHistoria.Kwota** — w rzeczywistych algorytmach kreatorowych kwota pobierana jest z `Element.DodHistoria.Podstawa` (nie `.Kwota`). Pole `.Kwota` występuje w dokumentacji, ale `.Podstawa` jest częściej stosowane w generowanym kodzie.
10. **Element.DodHistoria.Podstawa vs Element.DodHistoria.Kwota** — w rzeczywistych algorytmach kreatorowych kwota pobierana jest z `Element.DodHistoria.Podstawa` (nie `.Kwota`). Pole `.Kwota` występuje w dokumentacji, ale `.Podstawa` jest częściej stosowane w generowanym kodzie.
10. **Dodatkowe metody** — jeśli element ma odbiorców płatności (potrącenia, alimenty), zdefiniuj metody `_Odbiorca` i `_RachunekOdbiorcy`. Jeśli okres naliczania wymaga podziału, zdefiniuj `_CięcieOkresu`. Jeśli element wpływa na podstawy urlopów/zasiłków — przeczytaj `references/metody-sterujace-naliczaniem.md`.
11. **Dodatkowe metody** — jeśli element ma odbiorców płatności (potrącenia, alimenty), zdefiniuj metody `_Odbiorca` i `_RachunekOdbiorcy`. Jeśli okres naliczania wymaga podziału, zdefiniuj `_CięcieOkresu`. Jeśli element wpływa na podstawy urlopów/zasiłków — przeczytaj `references/metody-sterujace-naliczaniem.md`.