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 | ||
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 | 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 | ||
ahVacation:N | Urlaub | ||
CbDeletePersonnelAbsence:L | Mitarbeiter Abwesenheit löschen | ||
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 | ||
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 | ||
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
//##############################################################################
//##############################################################################
// 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,