Zeiterfassungs Update
* Implementerung Fahrzeugverwaltung * neue Buchungsart Fahrtenbuch * Diverse Bugfixes * Exportfunktionen für BMD * Neue Bauchungsarteigenschaft unbezahlt *
This commit is contained in:
@@ -392,8 +392,10 @@ class TimerecordingReportController extends mfBaseController
|
||||
$r = $this->request;
|
||||
$mustSeconds = 0;
|
||||
$isSeconds = 0;
|
||||
$isSecondscleanarray = array();
|
||||
$holiDays = 0;
|
||||
$plusHours = 0;
|
||||
$nlzTimes = array();
|
||||
$daysum = array();
|
||||
if (!$user_id) {
|
||||
$user_id = $r->user_id;
|
||||
@@ -405,6 +407,7 @@ class TimerecordingReportController extends mfBaseController
|
||||
if ($employee) {
|
||||
$holiDays = $employee[0]->holidays;
|
||||
$plusHours = $employee[0]->plushours;
|
||||
$overtime_now = $employee[0]->overtime_now;
|
||||
$auto_workinghours = $employee[0]->auto_workinghours;
|
||||
$startdate = $employee[0]->startdate;
|
||||
}
|
||||
@@ -451,6 +454,10 @@ class TimerecordingReportController extends mfBaseController
|
||||
$lastdate = strtotime(date("Y-m-t", $datamonth));
|
||||
$daycount = date("t", $datamonth);
|
||||
$lastdate = strtotime(date("Y-m-d", $lastdate) . ' 23:59:59');
|
||||
//Lastdate staticmust deleted
|
||||
// $lastdate = strtotime("2024-03-22 23:59:59");
|
||||
// $daycount=22;
|
||||
|
||||
$searchArray = ['user_id' => $user_id, 'start' => $firstdate, 'end' => $lastdate];
|
||||
$timestamp = $firstdate;
|
||||
|
||||
@@ -493,13 +500,50 @@ class TimerecordingReportController extends mfBaseController
|
||||
$timerecordings = TimerecordingModel::search($searchArray);
|
||||
|
||||
$responsecount = count($timerecordings);
|
||||
$oldday = "";
|
||||
$homeoffice = false;
|
||||
$homeofficesum = 0;
|
||||
$dietsum = 0;
|
||||
$diet = 0;
|
||||
$dietbase = TimerecordingBillingModel::$dieatBase;
|
||||
|
||||
foreach ($timerecordings as $timerecording):
|
||||
$state = "";
|
||||
$enddate = "";
|
||||
$sum = "-";
|
||||
$day = "";
|
||||
$orderdate = $timerecording->start;
|
||||
if ($oldday != date('Y-m-d', $timerecording->start)) {
|
||||
|
||||
if ($homeoffice == 1) {
|
||||
$homeofficesum++;
|
||||
$homeoffice = false;
|
||||
}
|
||||
if ($diet > 10800) {
|
||||
if ($diet >= 43200) {
|
||||
$diet = 43200;
|
||||
}
|
||||
$calcdiet = $dietbase / 12;
|
||||
$calcdiet = ($diet / 3600) * $calcdiet;
|
||||
$dietsum = $dietsum + $calcdiet;
|
||||
}
|
||||
$diet = 0;
|
||||
|
||||
}
|
||||
if ($timerecording->homeoffice == 1 && (!$homeoffice || $homeoffice == 1)) {
|
||||
|
||||
$homeoffice = 1;
|
||||
} else {
|
||||
$homeoffice = 0;
|
||||
}
|
||||
|
||||
|
||||
if ($timerecording->businesstrip == 1 && $timerecording->timerecordingCategory->hourday == 1) {
|
||||
$diet = $diet + $timerecording->end - $timerecording->start;
|
||||
}
|
||||
|
||||
if ($timerecording->timerecordingCategory->hourday == 1) {
|
||||
|
||||
$date = date("d.m.Y", $timerecording->start);
|
||||
$datadate = date("Y-m-d", $timerecording->start);
|
||||
$start = date("H:i", $timerecording->start);
|
||||
@@ -510,6 +554,18 @@ class TimerecordingReportController extends mfBaseController
|
||||
$sum = sprintf("%02d", $hours) . ":" . sprintf("%02d", $minutes);
|
||||
$day = $daysgerm[date("w", $timerecording->start)];
|
||||
$isSeconds = $isSeconds + $seconds;
|
||||
if ($isSecondscleanarray[$timerecording->timerecordingCategory->short]) {
|
||||
$isSecondscleanarray[$timerecording->timerecordingCategory->short] = $isSecondscleanarray[$timerecording->timerecordingCategory->short] + $seconds;
|
||||
} else {
|
||||
$isSecondscleanarray[$timerecording->timerecordingCategory->short] = $seconds;
|
||||
}
|
||||
if ($timerecording->timerecordingCategory->short != "1000,1200,1400") {
|
||||
$nlzTimes[$timerecording->id]['start'] = date("d.m.Y", $timerecording->start);
|
||||
$nlzTimes[$timerecording->id]['end'] = date("d.m.Y", $timerecording->end);
|
||||
$nlzTimes[$timerecording->id]['minutes'] = $seconds / 60;
|
||||
$nlzTimes[$timerecording->id]['category'] = $timerecording->timerecordingCategory->name;
|
||||
$nlzTimes[$timerecording->id]['categoryshort'] = $timerecording->timerecordingCategory->short;
|
||||
}
|
||||
} else if ($timerecording->timerecordingCategory->hourday == 2 || ($timerecording->timerecordingCategory->hourday == 3 && $timerecording->end)) {
|
||||
$date = date("d.m.", $timerecording->start) . " - " . $daysgerm[date("w", $timerecording->end)] . " " . date("d.m.Y", $timerecording->end);
|
||||
$datadate = date("Y-m-d", $timerecording->start);
|
||||
@@ -558,11 +614,17 @@ class TimerecordingReportController extends mfBaseController
|
||||
$sum = $sumdays . " Tage";
|
||||
}
|
||||
|
||||
if (!$daysum[$timerecording->timerecordingCategory->short]) {
|
||||
$daysum[$timerecording->timerecordingCategory->short] = $sumdays;
|
||||
if (!$daysum[$timerecording->timerecordingCategory->name]) {
|
||||
$daysum[$timerecording->timerecordingCategory->name] = $sumdays;
|
||||
} else {
|
||||
$daysum[$timerecording->timerecordingCategory->short] = $daysum[$timerecording->timerecordingCategory->short] + $sumdays;
|
||||
$daysum[$timerecording->timerecordingCategory->name] = $daysum[$timerecording->timerecordingCategory->name] + $sumdays;
|
||||
}
|
||||
$nlzTimes[$timerecording->id]['start'] = date("d.m.Y", $timerecording->start);
|
||||
$nlzTimes[$timerecording->id]['end'] = date("d.m.Y", $timerecording->end);
|
||||
$nlzTimes[$timerecording->id]['days'] = $sumdays;
|
||||
$nlzTimes[$timerecording->id]['category'] = $timerecording->timerecordingCategory->name;
|
||||
$nlzTimes[$timerecording->id]['categoryshort'] = $timerecording->timerecordingCategory->short;
|
||||
|
||||
} else if ($timerecording->timerecordingCategory->hourday == 3 && !$timerecording->end) {
|
||||
$date = date("d.m.Y", $timerecording->start) . " - " . $daysgerm[date("w", time())] . " " . date("d.m.Y", time());;
|
||||
$datadate = date("Y-m-d", $timerecording->start);
|
||||
@@ -653,13 +715,52 @@ class TimerecordingReportController extends mfBaseController
|
||||
} else {
|
||||
|
||||
}
|
||||
$oldday = date('Y-m-d', $timerecording->start);
|
||||
endforeach;
|
||||
if ($homeoffice == 1) {
|
||||
$homeofficesum++;
|
||||
$homeoffice = 0;
|
||||
}
|
||||
if ($diet > 10800) {
|
||||
if ($diet >= 43200) {
|
||||
$diet = 43200;
|
||||
}
|
||||
$calcdiet = $dietbase / 12;
|
||||
$calcdiet = ($diet / 3600) * $calcdiet;
|
||||
$dietsum = $dietsum + $calcdiet;
|
||||
}
|
||||
|
||||
$summseconds = $isSeconds - $mustSeconds;
|
||||
$isorder = $isSeconds;
|
||||
if ($isSeconds < 0) {
|
||||
$isSeconds = $isSeconds * -1;
|
||||
$isSeconds = "-" . sprintf('%02dh:%02dm', floor($isSeconds / 3600), floor($isSeconds / 60 % 60));
|
||||
} else {
|
||||
$isSeconds = sprintf('%02dh:%02dm', floor($isSeconds / 3600), floor($isSeconds / 60 % 60));
|
||||
}
|
||||
$summsecondsorder = $summseconds;
|
||||
if ($summseconds < 0) {
|
||||
$summseconds = $summseconds * -1;
|
||||
$summseconds = "-" . sprintf('%02dh:%02dm', floor($summseconds / 3600), floor($summseconds / 60 % 60));
|
||||
} else {
|
||||
$summseconds = sprintf('%02dh:%02dm', floor($summseconds / 3600), floor($summseconds / 60 % 60));
|
||||
}
|
||||
$json['success'] = true;
|
||||
$json['time']['auto_workinghours'] = $auto_workinghours;
|
||||
$json['time']['is'] = sprintf('%02dh:%02dm', floor($isSeconds / 3600), floor($isSeconds / 60 % 60));
|
||||
$json['time']['is'] = $isSeconds;
|
||||
$json['time']['isorder'] = $isorder;
|
||||
$json['time']['isclean'] = $isSecondscleanarray;
|
||||
$json['time']['must'] = sprintf('%02dh:%02dm', floor($mustSeconds / 3600), floor($mustSeconds / 60 % 60));
|
||||
$json['time']['mustorder'] = $mustSeconds;
|
||||
$json['time']['holidays'] = $holiDays;
|
||||
$json['time']['plushours'] = sprintf('%02dh:%02dm', floor($plusHours / 3600), floor($plusHours / 60 % 60));
|
||||
$json['time']['overtime_now'] = sprintf('%02dh:%02dm', floor($overtime_now / 3600), floor($overtime_now / 60 % 60));
|
||||
$json['time']['overtime_noworder'] = $overtime_now;
|
||||
$json['time']['homeoffice'] = $homeofficesum;
|
||||
$json['time']['summseconds'] = $summseconds;
|
||||
$json['time']['summsecondsorder'] = $summsecondsorder;
|
||||
$json['time']['nlztimes'] = $nlzTimes;
|
||||
$json['time']['diet'] = $dietsum;
|
||||
$json['time']['daysum'] = $daysum;
|
||||
$json['recordsFiltered'] = $responsecount;
|
||||
$json['recordsTotal'] = $responsecount;
|
||||
|
||||
Reference in New Issue
Block a user