AddOn/Datenexport_Zeiterfassung/TimeTrackingAPI.php aktualisiert
This commit is contained in:
parent
3e6dff7e1b
commit
19f0806b2d
|
|
@ -88,50 +88,4 @@ class TimeTrackingAPI
|
||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function parseCalDataToJson(string $csvData): array {
|
|
||||||
$lines = explode("\n", trim($csvData));
|
|
||||||
$result = ["userlist" => []];
|
|
||||||
|
|
||||||
foreach ($lines as $line) {
|
|
||||||
$fields = str_getcsv($line, ';');
|
|
||||||
|
|
||||||
if (count($fields) < 11) {
|
|
||||||
// Fehlerhafte Zeile
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
[$id, $nachname, $vorname, $datum, $email, $stunden1, $stunden2, $grund1, $grund2, $wochentagNr, $wochentagName] = $fields;
|
|
||||||
|
|
||||||
// Benutzerstruktur initialisieren
|
|
||||||
if (!isset($result["userList"][$email])) {
|
|
||||||
$result["userlist"][$email] = [
|
|
||||||
"absencList" => [],
|
|
||||||
"publicholidayList" => []
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Feiertag erkennen: keine Stunden, kein Grund, aber Feiertagsname vorhanden
|
|
||||||
$isHoliday = empty($stunden1) && empty($grund1) && !is_numeric($wochentagName);
|
|
||||||
|
|
||||||
if ($isHoliday) {
|
|
||||||
$result["userlist"][$email]["publicholidayList"][] = [
|
|
||||||
"name" => $wochentagName,
|
|
||||||
"nr" => (int)$wochentagNr,
|
|
||||||
"date" => $datum
|
|
||||||
];
|
|
||||||
} elseif (!empty($grund1)) {
|
|
||||||
// Abwesenheit hinzufügen
|
|
||||||
$result["userlist"][$email]["absenclist"][] = [
|
|
||||||
"name" => $grund1,
|
|
||||||
"nr" => (int)$stunden1,
|
|
||||||
"date" => $datum,
|
|
||||||
"ersterHalptag" => true,
|
|
||||||
"zweiterHalbtag" => true
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue