Inital
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
<?php
|
||||
session_start();
|
||||
require_once("inc/config.inc.php");
|
||||
require_once("inc/functions.inc.php");
|
||||
//Überprüfe, dass der User eingeloggt ist
|
||||
//Der Aufruf von check_user() muss in alle internen Seiten eingebaut sein
|
||||
$user = check_user();
|
||||
?>
|
||||
|
||||
<?php include 'header.php'; ?>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h2>Stempelkarten-System</h2>
|
||||
|
||||
<?php
|
||||
// Überprüfen, ob eine Benutzer-ID in der Session vorhanden ist
|
||||
if (!isset($_SESSION['userid'])) {
|
||||
die("Kein Benutzer angemeldet.");
|
||||
}
|
||||
#$mitarbeiterId = $_GET['employee_id'] ?? null;
|
||||
#$gewaehlterTag = $_GET['datum'] ?? null;
|
||||
$mitarbeiterId = $_SESSION['userid']; // Angenommen, die Mitarbeiter-ID kommt aus der Session
|
||||
$gewaehlterMonat = '2024-01'; // Format: YYYY-MM
|
||||
$tageImMonat = date('t', strtotime($gewaehlterMonat . '-01'));
|
||||
|
||||
$zeitenProTag = [];
|
||||
|
||||
for($tag = 1; $tag <= $tageImMonat; $tag++) {
|
||||
$datum = $gewaehlterMonat . '-' . str_pad($tag, 2, '0', STR_PAD_LEFT);
|
||||
echo $datum . "<br>";
|
||||
// Abfrage für alle Zeitstempel des Tages
|
||||
$query = "
|
||||
SELECT timestamp_type, timestamp_datetime
|
||||
FROM timestamps
|
||||
WHERE employee_id = :employee_id AND DATE(timestamp_datetime) = :datum
|
||||
ORDER BY timestamp_datetime
|
||||
";
|
||||
try {
|
||||
$stmt = $pdo->prepare($query);
|
||||
$stmt->bindParam(':employee_id', $mitarbeiterId, PDO::PARAM_INT);
|
||||
$stmt->bindParam(':datum', $datum);
|
||||
$stmt->execute();
|
||||
$zeitstempel = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
echo $zeitstempel;
|
||||
} catch(PDOException $e) {
|
||||
$pdo->rollBack();
|
||||
echo "Datenbankfehler: " . $e->getMessage();
|
||||
}
|
||||
$fruehesteKommenZeit = null;
|
||||
$spaetesteGehenZeit = null;
|
||||
$gesamtarbeitszeit = new DateInterval('PT0S');
|
||||
$gesamtpausenzeit = new DateInterval('PT0S');
|
||||
$letzterGehenZeitstempel = null;
|
||||
echo "test";
|
||||
foreach ($zeitstempel as $index => $eintrag) {
|
||||
$zeit = new DateTime($eintrag['timestamp_datetime']);
|
||||
echo "test2";
|
||||
if ($eintrag['timestamp_type'] === 'KOMMEN') {
|
||||
echo "test3";
|
||||
if ($fruehesteKommenZeit === null || $zeit < $fruehesteKommenZeit) {
|
||||
$fruehesteKommenZeit = $zeit;
|
||||
}
|
||||
if ($letzterGehenZeitstempel) {
|
||||
$pause = $letzterGehenZeitstempel->diff($zeit);
|
||||
$gesamtpausenzeit = $gesamtpausenzeit->add($pause);
|
||||
}
|
||||
} else if ($eintrag['timestamp_type'] === 'GEHEN') {
|
||||
if ($spaetesteGehenZeit === null || $zeit > $spaetesteGehenZeit) {
|
||||
$spaetesteGehenZeit = $zeit;
|
||||
}
|
||||
$letzterGehenZeitstempel = $zeit;
|
||||
}
|
||||
}
|
||||
|
||||
if ($fruehesteKommenZeit && $spaetesteGehenZeit) {
|
||||
$gesamtarbeitszeit = $fruehesteKommenZeit->diff($spaetesteGehenZeit)->subtract($gesamtpausenzeit);
|
||||
}
|
||||
#echo $gesamtarbeitszeit;
|
||||
$zeitenProTag[$datum] = [
|
||||
'fruehesteKommenZeit' => $fruehesteKommenZeit ? $fruehesteKommenZeit->format('H:i:s') : '',
|
||||
'spaetesteGehenZeit' => $spaetesteGehenZeit ? $spaetesteGehenZeit->format('H:i:s') : '',
|
||||
'gesamtarbeitszeit' => $gesamtarbeitszeit->format('%H:%I:%S'),
|
||||
'gesamtpausenzeit' => $gesamtpausenzeit->format('%H:%I:%S')
|
||||
];
|
||||
}
|
||||
|
||||
// Ausgabe der Ergebnisse für Testzwecke
|
||||
echo '<pre>';
|
||||
print_r($zeitenProTag);
|
||||
echo '</pre>';
|
||||
?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php include 'footer.php'; ?>
|
||||
Reference in New Issue
Block a user