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();
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
} |