mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-19 16:02:15 +00:00
Neue Infomails Reminder Freigabe Urlaub und Monatslisten, Abschicken Monatslisten, Zeiterfassung letzte Woche
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
* @since Version 1.0
|
||||
* @filesource
|
||||
*
|
||||
* Cronjobs to be run for sending emails informing about Zeiterfassungsreminder.
|
||||
* Cronjobs to be run for sending reminder-emails about Zeiterfassung.
|
||||
*/
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
@@ -54,6 +54,8 @@ class ZeiterfassungInfoJob extends JOB_Controller
|
||||
public function sendMail()
|
||||
{
|
||||
$allMitarbeiter = $this->_getEmplyeeUids();
|
||||
//var_dump($allMitarbeiter);
|
||||
//$allMitarbeiter = ['ma0068','ma0080'];
|
||||
|
||||
$vorgesetzte_to_approve_vacation = $this->_getVorgesetztetoApproveVacationList();
|
||||
$vorgesetzte_to_approve_timesheets = $this->_getVorgesetztetoApproveTimesheetList();
|
||||
@@ -61,6 +63,15 @@ class ZeiterfassungInfoJob extends JOB_Controller
|
||||
$mitarbeiter_to_send_timesheet_lastmonth = $this->_getEmployeeTimesheetList();
|
||||
$mitarbeiter_to_record_times_lastweek = $this->_getEmployeeLastWeeksTimeList();
|
||||
|
||||
//$mitarbeiter_without_zeitmodell = $this->_filterMitarbeiter();
|
||||
|
||||
$cnt_sup_to_approve_vacation = 0;
|
||||
$cnt_sup_to_approve_timesheets = 0;
|
||||
$cnt_ma_to_send_timesheet = 0;
|
||||
$cnt_ma_to_record_times_lastweek = 0;
|
||||
$cnt_ma_without_zeitmodell = 0;
|
||||
$cnt_mails_total = 0;
|
||||
|
||||
$mailingList = array();
|
||||
|
||||
foreach ($allMitarbeiter as $ma)
|
||||
@@ -69,6 +80,7 @@ class ZeiterfassungInfoJob extends JOB_Controller
|
||||
if(array_key_exists($uid, $vorgesetzte_to_approve_vacation))
|
||||
{
|
||||
$ma->SupVac = true;
|
||||
$cnt_sup_to_approve_vacation++;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -77,6 +89,7 @@ class ZeiterfassungInfoJob extends JOB_Controller
|
||||
if(array_key_exists($uid, $vorgesetzte_to_approve_timesheets))
|
||||
{
|
||||
$ma->SupMonth = true;
|
||||
$cnt_sup_to_approve_timesheets++;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -85,6 +98,7 @@ class ZeiterfassungInfoJob extends JOB_Controller
|
||||
if(array_key_exists($uid, $mitarbeiter_to_send_timesheet_lastmonth))
|
||||
{
|
||||
$ma->EmpMonth = true;
|
||||
$cnt_ma_to_send_timesheet++;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -93,16 +107,27 @@ class ZeiterfassungInfoJob extends JOB_Controller
|
||||
if(array_key_exists($uid, $mitarbeiter_to_record_times_lastweek))
|
||||
{
|
||||
$ma->EmpWeek = true;
|
||||
$cnt_ma_to_record_times_lastweek++;
|
||||
}
|
||||
else
|
||||
{
|
||||
$ma->EmpWeek = false;
|
||||
}
|
||||
|
||||
//fehlendes Zeitmodell??
|
||||
// if(array_key_exists($uid, $mitarbeiter_without_zeitmodell))
|
||||
// {
|
||||
// $ma->EmpZeitMod = true;
|
||||
// $cnt_ma_without_zeitmodell++;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// $ma->EmpZeitMod = false;
|
||||
// }
|
||||
|
||||
if($ma->SupVac || $ma->SupMonth || $ma->EmpMonth || $ma->EmpWeek || $ma->EmpZeitMod)
|
||||
{
|
||||
array_push($mailingList, $ma);
|
||||
$cnt_mails_total++;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -115,6 +140,7 @@ class ZeiterfassungInfoJob extends JOB_Controller
|
||||
// Set mail recipient
|
||||
$to = $ma->uid.'@'. DOMAIN;
|
||||
|
||||
$ma_uid = $ma->uid;
|
||||
$supVac ='';
|
||||
$SupMonth ='';
|
||||
$EmpMonth ='';
|
||||
@@ -122,14 +148,15 @@ class ZeiterfassungInfoJob extends JOB_Controller
|
||||
$EmpZeitMod ='';
|
||||
|
||||
//Generate Email Text
|
||||
$ma->SupVac ? $supVac = '->Du hast noch Urlaube freizugeben. Du findest die Ulaubsfreigabe unter: <a href="'.CIS_ROOT.'cis/index.php?menu='.CIS_ROOT. 'cis/menu.php?content_id=&content='.CIS_ROOT.self::URLAUBSFREIGABE_PATH.'">Urlaubstool</a><br><br>' : '';
|
||||
$ma->SupMonth ? $SupMonth = '->Du hast noch Monatslisten freizugeben. Du findest die Monatslistenfreigabe unter: <a href="'.CIS_ROOT.'cis/index.php?menu='.CIS_ROOT. 'cis/menu.php?content_id=&content='.CIS_ROOT.self::MONATSLISTEN_PATH.'">Monatslisten</a><br><br>' : '';
|
||||
$ma->EmpMonth ? $EmpMonth = '->Du musst noch die Monatsliste von letztem Monat abschicken.<br><br>' : '';
|
||||
$ma->EmpWeek ? $EmpWeek = '->Du musst noch Zeiten für letzte Woche eintragen.<br><br>' : '';
|
||||
$ma->EmpZeitMod ? $EmpZeitMod = '->Du hast noch kein Zeitmodell hinterlegt.<br><br>' : '';
|
||||
$ma->SupVac ? $supVac = 'Du hast noch Urlaube freizugeben. Du findest die Urlaubsfreigabe unter: <a href="'.CIS_ROOT.'cis/index.php?menu='.CIS_ROOT. 'cis/menu.php?content_id=&content='.CIS_ROOT.self::URLAUBSFREIGABE_PATH.'">Urlaubstool</a><br><br>' : '';
|
||||
$ma->SupMonth ? $SupMonth = 'Du hast noch Monatslisten freizugeben. Du findest die Monatslistenfreigabe unter: <a href="'.CIS_ROOT.'cis/index.php?menu='.CIS_ROOT. 'cis/menu.php?content_id=&content='.CIS_ROOT.self::MONATSLISTEN_PATH.'">Monatslisten</a><br><br>' : '';
|
||||
$ma->EmpMonth ? $EmpMonth = 'Du musst noch die Monatsliste von letztem Monat abschicken.<br><br>' : '';
|
||||
$ma->EmpWeek ? $EmpWeek = 'Du musst noch Zeiten für letzte Woche eintragen.<br><br>' : '';
|
||||
$ma->EmpZeitMod ? $EmpZeitMod = 'Du hast noch kein Zeitmodell hinterlegt.<br><br>' : '';
|
||||
|
||||
// Prepare mail content
|
||||
$content_data_arr = array(
|
||||
'ma_uid' => $ma_uid,
|
||||
'SupVac' => $supVac,
|
||||
'SupMonth' => $SupMonth,
|
||||
'EmpMonth' => $EmpMonth,
|
||||
@@ -137,17 +164,47 @@ class ZeiterfassungInfoJob extends JOB_Controller
|
||||
'EmpZeitMod' => $EmpZeitMod
|
||||
);
|
||||
|
||||
// var_dump($content_data_arr);
|
||||
|
||||
sendSanchoMail(
|
||||
'ZeiterfassungInfoMail',
|
||||
'Sancho_InfoMailZeiterfassung',
|
||||
$content_data_arr,
|
||||
$to,
|
||||
'Zeiterfassung Erinnerung'
|
||||
);
|
||||
'Zeiterfassung Erinnerung',
|
||||
DEFAULT_SANCHO_HEADER_IMG,
|
||||
DEFAULT_SANCHO_FOOTER_IMG
|
||||
);
|
||||
|
||||
}
|
||||
$end = date("h:i:sa");
|
||||
print_r($end."\n");
|
||||
print_r(($start-$end."\n"));
|
||||
|
||||
print_r("___________________________________________________________________");
|
||||
print_r("\n");
|
||||
print_r("|");
|
||||
print_r("\n");
|
||||
print_r("| Job Report: Infomail Zeiterfassung\n");
|
||||
print_r("|");
|
||||
print_r("\n");
|
||||
print_r("| Anzahl Urlaube freizugeben: " . $cnt_sup_to_approve_vacation);
|
||||
print_r("\n");
|
||||
print_r("| Anzahl Monatslisten zu bestätigen: ". $cnt_sup_to_approve_timesheets);
|
||||
print_r("\n");
|
||||
print_r("| Anzahl Monatslisten abzuschicken: " . $cnt_ma_to_send_timesheet);
|
||||
print_r("\n");
|
||||
print_r("| Anzahl fehlende Zeitaufzeichnungen letzte Woche: " . $cnt_ma_to_record_times_lastweek);
|
||||
print_r("\n");
|
||||
print_r("|");
|
||||
print_r("\n");
|
||||
print_r("| Anzahl kein hinterlegtes Zeitmodell: " . $cnt_ma_without_zeitmodell);
|
||||
print_r("\n");
|
||||
print_r("| Anzahl gesendeter Mails Total: " . $cnt_mails_total);
|
||||
print_r("\n");
|
||||
print_r("|");
|
||||
print_r("__________________________________________________________________");
|
||||
print_r("\n");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -170,8 +227,9 @@ class ZeiterfassungInfoJob extends JOB_Controller
|
||||
{
|
||||
$mitarbeiter_uid = $mitarbeiter->mitarbeiter_uid;
|
||||
$vorgesetzte [] = getData($this->MitarbeiterModel->getVorgesetzte($mitarbeiter_uid));
|
||||
}
|
||||
|
||||
}
|
||||
//var_dump($vorgesetzte); Unittest URLAUB
|
||||
foreach ($vorgesetzte as $v)
|
||||
{
|
||||
if(!(is_null($v)))
|
||||
@@ -243,6 +301,7 @@ class ZeiterfassungInfoJob extends JOB_Controller
|
||||
{
|
||||
$mResult = $this->TimesheetModel->getUidofMissingTimesheetsLastMonth();
|
||||
$mitarbeiterList = getData($mResult);
|
||||
$cnt_timesheetsToSend = 0;
|
||||
|
||||
$names = array();
|
||||
|
||||
@@ -250,9 +309,14 @@ class ZeiterfassungInfoJob extends JOB_Controller
|
||||
{
|
||||
$uid = $mitarbeiter->uid;
|
||||
if($this->MitarbeiterModel->isMitarbeiter($uid))
|
||||
$names [$uid] = $uid;
|
||||
}
|
||||
{
|
||||
$names [$uid] = $uid;
|
||||
$cnt_timesheetsToSend++;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
//var_dump($names); //unittest MONATSLISTE abschicken
|
||||
return $names;
|
||||
}
|
||||
|
||||
@@ -280,6 +344,7 @@ class ZeiterfassungInfoJob extends JOB_Controller
|
||||
$uids[$uid] = $uid;
|
||||
}
|
||||
}
|
||||
//var_dump($uids); //unittest ZEITEN last week
|
||||
return $uids;
|
||||
}
|
||||
|
||||
@@ -305,8 +370,30 @@ class ZeiterfassungInfoJob extends JOB_Controller
|
||||
return $mitarbeiterUIDs;
|
||||
}
|
||||
|
||||
private function _filterMitarbeiter($allMitarbeiter)
|
||||
private function _filterMitarbeiter()
|
||||
{
|
||||
$mResult = $this->TimesheetModel->getAllMissingZeitmodelle();
|
||||
$mitarbeiterList = getData($mResult);
|
||||
$mitarbeiterWithoutZeitmodell = array();
|
||||
|
||||
|
||||
foreach ($mitarbeiterList as $mitarbeiter)
|
||||
{
|
||||
$uid = $mitarbeiter->uid;
|
||||
if($this->MitarbeiterModel->isMitarbeiter($uid))
|
||||
{
|
||||
$mitarbeiterWithoutZeitmodell [$uid] = $uid;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
// foreach ($mitarbeiter as $ma)
|
||||
// {
|
||||
// print_r
|
||||
// }
|
||||
return $mitarbeiterWithoutZeitmodell;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -206,6 +206,11 @@ class Mitarbeiter_model extends DB_Model
|
||||
public function getEmployeesZeitaufzeichnungspflichtig()
|
||||
{
|
||||
$qry = "SELECT DISTINCT mitarbeiter_uid FROM bis.tbl_bisverwendung WHERE beginn <= now() and (ende >= now() OR ende is NULL) AND zeitaufzeichnungspflichtig is TRUE
|
||||
--AND mitarbeiter_uid in ('sabo','wala','ma0080') --Urlaubsfreigabe
|
||||
--AND mitarbeiter_uid in ('markl','ma0080') -- Monatlistenzu bestätigen
|
||||
--AND mitarbeiter_uid in ('hrisenko','kiciak','zenzi','holnthon','ma0068') -- Monatlisten abzuschicken
|
||||
--AND mitarbeiter_uid in ('ma0068','felleitn','wala','ma0080','ma002') --ZEITEN
|
||||
AND mitarbeiter_uid in ('ma0068') --kein Zeitmodell
|
||||
ORDER BY mitarbeiter_uid";
|
||||
return $this->execQuery($qry);
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ class Timesheet_model extends DB_Model
|
||||
|
||||
if(isset($data->STATUS) && $data->STATUS=='OK')
|
||||
{
|
||||
//print_r($data);
|
||||
// print_r($data[2]);
|
||||
return $data->RESULT;
|
||||
}
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user