75 lines
2.3 KiB
PHP
75 lines
2.3 KiB
PHP
<?php
|
|
|
|
require_once 'db.php';
|
|
require_once 'checkLogin.php';
|
|
@session_start();
|
|
|
|
/*
|
|
|
|
CREATE TABLE `obecnosc` (
|
|
`id` int(10) UNSIGNED NOT NULL,
|
|
`kto` int(10) UNSIGNED NOT NULL,
|
|
`data` date NOT NULL,
|
|
`czasZaczecia` time DEFAULT NULL,
|
|
`czasKonca` time DEFAULT NULL,
|
|
`status` int(10) UNSIGNED NOT NULL,
|
|
`zaakceptowane` tinyint(4) NOT NULL DEFAULT 0,
|
|
`zdalne` tinyint(1) NOT NULL DEFAULT 0,
|
|
`aktywne` tinyint(1) NOT NULL DEFAULT 1
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
*/
|
|
|
|
//dane za pomocą post przekazywane $_POST['end']
|
|
//sprawdź czy dziś już zaczął pracę, sprawdź czy już dziś nie zakończył pracę, sprawdź czy zakończenie pracy jest później niż rozpoczęcie
|
|
$sql = "SELECT * FROM obecnosc WHERE kto = :kto AND data = :data AND aktywne = 1";
|
|
$stmt = $pdo->prepare($sql);
|
|
$stmt->bindValue(':kto', $_SESSION['user_id'], PDO::PARAM_INT);
|
|
$stmt->bindValue(':data', date('Y-m-d'), PDO::PARAM_STR);
|
|
$stmt->execute();
|
|
$work = $stmt->fetch(PDO::FETCH_ASSOC);
|
|
if($work === false)
|
|
{
|
|
$_SESSION['innfoError'] = "Dziś nie rozpoczęto pracy";
|
|
header("Location: panel.php");
|
|
exit();
|
|
}
|
|
else
|
|
{
|
|
if($work['czasZaczecia'] == NULL)
|
|
{
|
|
$_SESSION['innfoError'] = "Dziś nie rozpoczęto pracy";
|
|
header("Location: panel.php");
|
|
exit();
|
|
}
|
|
else
|
|
{
|
|
if($work['czasKonca'] != NULL)
|
|
{
|
|
$_SESSION['innfoError'] = "Dziś już zakończono pracę";
|
|
header("Location: panel.php");
|
|
exit();
|
|
}
|
|
else
|
|
{
|
|
if($_POST['end'] < $work['czasZaczecia'])
|
|
{
|
|
$_SESSION['innfoError'] = "Zakończenie pracy nie może być wcześniej niż rozpoczęcie";
|
|
header("Location: panel.php");
|
|
exit();
|
|
}
|
|
else
|
|
{
|
|
//zakończ pracę
|
|
$sql = "UPDATE obecnosc SET czasKonca = :czasKonca WHERE id = :id";
|
|
$stmt = $pdo->prepare($sql);
|
|
$stmt->bindValue(':czasKonca', $_POST['end'], PDO::PARAM_STR);
|
|
$stmt->bindValue(':id', $work['id'], PDO::PARAM_INT);
|
|
$stmt->execute();
|
|
$_SESSION['innfoError'] = "Zakończono pracę";
|
|
header("Location: panel.php");
|
|
exit();
|
|
}
|
|
}
|
|
}
|
|
} |