Skip to main content
Skip table of contents

TBeAbsenceBusinessController

TBeAbsenceBusinessController

Die Klasse TBeAbsenceBusinessController kapselt Eigenschaften und Funktionen zur Verwaltung von Mitarbeiter Abwesenheiten, Ressourcen Ausfällen und Feiertagen.

Hinweis

Für alle Aktionen muss auf dem Daten-Modul eine Transaktion aktiv sein. Der TBeAbsenceBusinessController führt keinen BDE-Monatskonto-Reorg bzw. Feiertags-Reorg durch, dieser muss manuell ausgelöst werden.

Eigenschaften

Eigenschaften

Beschreibung

CbDataModule:O

Daten-Modul, für alle Funktionen und Methoden die Daten verändern / erzeugen muss auf diesem Daten-Modul eine Transaktion gestartet werden

Funktionen und Methoden

Beschreibung

CbCreateNewPersonnelAbsence:N

Neue Mitarbeiter Abwesenheit anlegen
Ist bereits ein Eintrag zu diesem Datum & Mitarbeiter vorhanden, werden die Wert-Felder geleert und mit den neuen Werten überschrieben.
Rückgabe ist die Datensatz-ID des erstellten Eintrags.

Typ

Beschreibung

aPersNo:N

Personal-Nr. für die der Eintrag angelegt werden soll

aAbsenceDate:D

Datum der Abwesenheit

aValues:A

Art und Dauer der Abwesenheit als Array im Format:
   {{Typ, Wert},
   {Typ, Wert}}
Jeder Typ darf maximal einmal enthalten sein. Die Wert-Angabe ist soweit nicht anderes Beschrieben in 0,25 Schritten bzw. je Einstellung im Personal-Stamm (DAB262:EING_VALID). Die Funktion berücksichtigt die maximale Anwesenheit des Mitarbeiters zum Eintrags-Datum.

Typ

Beschreibung

ahIllness:N

Krankheit

ahAdvancedEducation:N

Fortbildung

ahVocationalSchool:N

Berufschule

ahShortTime:N

Kurzarbeit

ahSpecialLeave:N

Sonderurlaub

ahIndustrialAccident:N

Betriebsunfall

ahBusinessTrip:N

Dienstreise

ahMaternityLeave:N

Mutterschutz

ahParentalLeave:N

Elternzeit

ahCompTime:L

Zeitausgleich
True / False

ahVacation:N

Urlaub
Als Urlaubs-Tag Anteil (0 bis 1) in 0,25 Schritten
bwz. wie oben beschrieben

CbDeletePersonnelAbsence:L

Mitarbeiter Abwesenheit löschen
Rückgabe True, wenn Datensatz gefunden & gelöscht wurde, sonst False

Typ

Beschreibung

aPersNo:N

Personal-Nr. für die der Eintrag gelöscht werden soll

aAbsenceDate:D

Datum der Abwesenheit die gelöscht werden soll

CbCreateNewResourceAbsence:N

Neuen Ressourcen Ausfall anlegen
Rückgabe ist die Datensatz-ID des erstellten Eintrags
Typ

Beschreibung

aResID:N

Ressourcen-ID. für die der Eintrag angelegt werden soll

aAbsenceDate:D

Datum der Abwesenheit

aAbsenceHours:U

Dauer des Ausfalls in Stunden (in 0,25 Schritten)

CbDeleteResourceAbsence:L

Ressourcen Ausfall löschen
Rückgabe True, wenn Datensatz gefunden & gelöscht wurde, sonst False

Typ

Beschreibung

aResID:N

Ressourcen-ID. für die der Eintrag gelöscht werden soll

aAbsenceDate:D

Datum der Abwesenheit die gelöscht werden soll

CbCreateNewHoliday:N

Neuen Feiertags Eintrag anlegen
Rückgabe ist die Datensatz-ID des erstellten Eintrags
Typ

Beschreibung

aDate:D

Datum des Feiertags

aRate:N

Feiertags-Anteil (1-100)

CbDeleteHoliday:L

Feiertags Eintrag löschen
Rückgabe True, wenn Datensatz gefunden & gelöscht wurde, sonst False
Typ

Beschreibung

aDate:D

Datum des Feiertags der gelöscht werden soll

CbIDByEntryTypeAndDate:N

Eintrag nach Typ & Datum suchen
Rückgabe ist die Datensatz-ID des gefundenen Eintrags, sonst -1
Typ

Beschreibung

aEntryType:N

Eintrags-Typ nach dem gesucht werden soll

Typ

Beschreibung

aetHoliday

Feiertag

aetPersonnel

Mitarbeiter-Abwesenheit

aetResource

Ressourcen-Ausfall

aKey:N

ID nach der gesucht werden soll
(nur relevant bei aetPersonnel & aetResource und entspricht dann der Personal-Nr. bzw. Ressourcen-ID)

aAbsenceDate:D

Datum des Eintrags der gesucht werden soll

CbResetCache_HolidayShutdownPeriod

Löscht alle gecachten Feiertage- und Betriebsruhe-Einträge.Alle erneuten Zugriffe auf Feiertage oder Betribsruhen, erfolgen dann erst über die Dab272 und werden dann wieder gecacht.

Beispiel

CODE
//##############################################################################
//##############################################################################
// Beschreibung: TBeAbsenceBusinessController
//##############################################################################
//##############################################################################

| m_oAbsBC, m_oDM, oDab272, aAbsence |

m_oDM := CreateObject('TBeDbGet'),
startseq
   m_oAbsBC := CreateObject('TBeAbsenceBusinessController'),  // Kontroller
   startseq
      m_oAbsBC.CbDataModule := m_oDM,
      startseq,

         DbStartTrans(m_oDM.AdsConnection),
         startseq
            // Mitarbeiter-Abwesenheits-Eintrag löschen
            m_oAbsBC.CbDeletePersonnelAbsence(1, today()-6),

            // Ausfall-Eintrag einer Ressource löschen
            m_oAbsBC.CbDeleteResourceAbsence(9, today()),

            // Feiertag löschen
            m_oAbsBC.CbDeleteHoliday(CToD('31.12.19')),

            if jn('Löschungen wirklich übernehmen?') then
               DbCommit(m_oDM.AdsConnection),
            else
               DbRollback(m_oDM.AdsConnection),
            endif,
         always
            if DbInTrans(m_oDM.AdsConnection) then
               DbRollback(m_oDM.AdsConnection),
               DbResetDm(m_oDM),
            endif,
         stopseq,


         DbStartTrans(m_oDM.AdsConnection),
         startseq
            // Neuen Mitarbeiter-Abwesenheits-Eintrag anlegen
            aAbsence := {
                         //{ahIllness, 0.25},
                         {ahAdvancedEducation, 0.5},
                         //{ahVocationalSchool, 1},
                         //{ahShortTime, 1.25},
                         //{ahSpecialLeave, 1.5},
                         //{ahIndustrialAccident, 1.75},
                         //{ahBusinessTrip, 2},
                         //{ahMaternityLeave, 1},
                         //{ahParentalLeave, 1},
                         {ahVacation, 0.5}
                         //, {ahCompTime, False}
                         },
            m_oAbsBC.CbCreateNewPersonnelAbsence(1, today()-6, aAbsence),

            // Neuen (5 Stunden) Ausfall-Eintrag einer Ressource anlgen
            m_oAbsBC.CbCreateNewResourceAbsence(9, today(), 5),

            // (Halben) Feiertag anlegen
            m_oAbsBC.CbCreateNewHoliday(CToD('31.12.19'), 50),

            if jn('Änderungen wirklich übernehmen?') then
               DbCommit(m_oDM.AdsConnection),
            else
               DbRollback(m_oDM.AdsConnection),
            endif,
         always
            if DbInTrans(m_oDM.AdsConnection) then
               DbRollback(m_oDM.AdsConnection),
               DbResetDm(m_oDM),
            endif,
         stopseq,

         // Eintag zu einem Datum suchen
         m_oAbsBC.CbIDByEntryTypeAndDate(aetHoliday, 0, CToD('31.12.19')),
         m_oAbsBC.CbIDByEntryTypeAndDate(aetResource, 9, today()),
         m_oAbsBC.CbIDByEntryTypeAndDate(aetPersonnel, 2, today()),
      onerror
         Meld(GetErrorText()),
         raise(),
      stopseq,
   always,
      DestroyObject(m_oAbsBC),
   stopseq,
always
   DestroyObject(m_oDM),
stopseq,
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.