Kurzarbeit – KUG anlegen als Lohnart

Automatische Ermittlung von KUG
  1. Neuen Grund „LAKA“ für Zeitkorrekturen in der Systemkonfiguration unter Zeiterfassung anlegen und F5 drücken
  2. Lohnart für die Berechnung KUG anlegen – Öffnen Sie den Menüpunkt „Zeiterfassung“ – „Lohnarten“ und erstellen Sie eine neue Lohnart. Hinterlegen Sie unter der Kartei „Inhalt“ nach Allgemeiner Definition und Speichern eine Gruppe „G1“ an um danach eine Zeitart ( „individueller SQL“ ) auswählen zu können.
    1. Individueller SQL (siehe SQL am Ende des Dokumentes), Interval TAG

3. Es muss ebenso die Lohnart zur Auswertung erweitert um die Zeitkontokorrektur anlegt werden.

    1. Typ Zeitkontoregelbuchung auswählen und als Korrekturgrund (aus der Systemkonfiguration zuvor) „LAKA“

4. Machen Sie eine Zuweisung der Lohnarten an die Mitarbeiter die KUG-Lohn erhalten sollen.

5. Zudem muss in Kombination die Zeitkontoregel  ( z.B. „KUG“  namentlich ) anlegt werden.

    1. Typ „Lohnart“
    2. Lohnart „Lohnart zur Berechnung KUG“
    3. Grund LAKA
    4. Intervall: Täglich  – Alle 1 Tag(e)

6. Abschließend noch die Zeitkontoregel den Mitarbeitern die KUG-Lohn Stunden erhalten sollen zuweisen.

———————————

Individueller SQL

select

 case when maxkugabzug < 0 then kugtmp else  case when maxkugabzug > kugtmp then 0 else kugtmp – maxkugabzug end end kug,

 *

 from

 (

                select

    case when zkovorkug < 0 then

                    case

                      when (zkoaktuell+zkovorkug*-1) < 0 then

                       (zkoaktuell+zkovorkug*-1)*-1

                      else zkoaktuell+zkovorkug*-1 end else zkoaktuell end maxkugabzug,

 

                 case when tagsaldo <  0 then tagsaldo * -1 else 0 end kugtmp,

               *

                from

 

                (

               select ap_employee_worktime_account_at_date((select (base_date – INTERVAL ‚1 DAY‘)::DATE from ap_employee_worktime_account_get_rules(cast(‚%date%‘ as date), %employee%) ar

                                               where ar.rule_id in (select id from employee_worktime_account_rule where name = ‚KUG‘ and deleted_at is null)), %employee%, null) zkovorkug,

                   (select ap_employee_worktime_account_at_date((cast(‚%date%‘ as date) – INTERVAL ‚1 DAY‘)::DATE, %employee%, null)) zkoaktuell,

                  (select ap_wage_item_time_type_overtime(%employee%, cast(‚%date%‘ as date), cast(‚%date%‘ as date),

                   (select (1, 1, ‚OVERTIME‘, null, null, null, false, null, ‚DAY‘, null, null, null, null, ‚+‘, null,

                                                null, null, null, null, null, null, null, null)::WAGE_TYPE_BLOCK_ITEM)))

                              

       -(select ap_wage_type_get_Value(%employee%, (select id from wage_type where number = ’13‘ and deleted_at is null limit 1),

                                                                                                                                 cast(‚%date%‘ as date),

                                                                                                                                 cast(‚%date%‘ as date)

                                                                                                                                ))

       -(select ap_wage_type_get_Value(%employee%, (select id from wage_type where number = ’15‘ and deleted_at is null limit 1),

                                                                                                                                 cast(‚%date%‘ as date),

                                                                                                                                 cast(‚%date%‘ as date)

                                                                                                                                ))

                              

                                tagsaldo

                ) tmp

  ) tmp2