86 lines
2.4 KiB
PHP
86 lines
2.4 KiB
PHP
|
<?php
|
||
|
require_once 'db.php';
|
||
|
require_once 'checkLogin.php';
|
||
|
@session_start();
|
||
|
|
||
|
//sprawdź czy ten dzień jeszcze nie był dodany
|
||
|
$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', $_POST['day'], PDO::PARAM_STR);
|
||
|
$stmt->execute();
|
||
|
$work = $stmt->fetch(PDO::FETCH_ASSOC);
|
||
|
if($work !== false)
|
||
|
{
|
||
|
$_SESSION['innfoError'] = "Ten dzień już został dodany!";
|
||
|
header('Location: addDay.php');
|
||
|
exit();
|
||
|
}
|
||
|
//sprawdź czy podano godzinę rozpoczęcia i zakończenia pracy, jeżeli nie to ustaw NULL
|
||
|
if($_POST['start'] == "")
|
||
|
{
|
||
|
$start = NULL;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
$start = $_POST['start'];
|
||
|
}
|
||
|
if($_POST['end'] == "")
|
||
|
{
|
||
|
$end = NULL;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
$end = $_POST['end'];
|
||
|
}
|
||
|
//jeżeli status oznaczaWolne == 0 to sprawdź czy jest podana godzina rozpoczęcia i zakończenia pracy, zakończenie musi być większe od rozpoczęcia
|
||
|
$sql = "SELECT * FROM statusy WHERE id = :id";
|
||
|
$stmt = $pdo->prepare($sql);
|
||
|
$stmt->bindValue(':id', $_POST['status'], PDO::PARAM_INT);
|
||
|
$stmt->execute();
|
||
|
$status = $stmt->fetch(PDO::FETCH_ASSOC);
|
||
|
if($status['oznaczaWolne'] == 0)
|
||
|
{
|
||
|
if($_POST['start'] == "" || $_POST['end'] == "")
|
||
|
{
|
||
|
$_SESSION['innfoError'] = "Musisz podać godzinę rozpoczęcia i zakończenia pracy!";
|
||
|
header('Location: addDay.php');
|
||
|
exit();
|
||
|
}
|
||
|
if($_POST['start'] >= $_POST['end'])
|
||
|
{
|
||
|
$_SESSION['innfoError'] = "Godzina zakończenia pracy musi być większa od godziny rozpoczęcia pracy!";
|
||
|
header('Location: addDay.php');
|
||
|
exit();
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
$end = NULL;
|
||
|
$start = NULL;
|
||
|
}
|
||
|
//jeżeli status oznaczaWolne == 1 to praca zdalna zawsze będzie 0
|
||
|
if($status['oznaczaWolne'] == 1)
|
||
|
{
|
||
|
$zdalne = 0;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
$zdalne = $_POST['zdalne'];
|
||
|
}
|
||
|
//dodaj dzień do bazy
|
||
|
$sql = "INSERT INTO obecnosc VALUES (NULL, :kto, :data, :start, :end, :status, 0, :zdalne, 1)";
|
||
|
$stmt = $pdo->prepare($sql);
|
||
|
$stmt->bindValue(':kto', $_SESSION['user_id'], PDO::PARAM_INT);
|
||
|
$stmt->bindValue(':data', $_POST['day'], PDO::PARAM_STR);
|
||
|
$stmt->bindValue(':start', $start, PDO::PARAM_STR);
|
||
|
$stmt->bindValue(':end', $end, PDO::PARAM_STR);
|
||
|
$stmt->bindValue(':status', $_POST['status'], PDO::PARAM_INT);
|
||
|
$stmt->bindValue(':zdalne', $zdalne, PDO::PARAM_INT);
|
||
|
$stmt->execute();
|
||
|
$_SESSION['innfoError'] = "Dzień został dodany!";
|
||
|
header('Location: addDay.php');
|
||
|
exit();
|
||
|
|
||
|
|
||
|
?>
|