<?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'; ?>