1 [month] => 2023-08 [printWorker] => Pokaż )
//notAccepted - checkbox
/*
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;
CREATE TABLE IF NOT EXISTS `uzytkownicy` (
`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`login` text NOT NULL,
`haslo` text NOT NULL,
`imie` text NOT NULL,
`nazwisko` text NOT NULL,
`dzial` int(10) UNSIGNED NOT NULL,
`przelozony` int(10) UNSIGNED DEFAULT NULL,
`aktywne` int(1) NOT NULL DEFAULT 1,
PRIMARY KEY (`id`),
KEY `dzial` (`dzial`),
KEY `przelozony` (`przelozony`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
*/
require_once 'db.php';
require_once 'checkLogin.php';
@session_start();
if($_SESSION['user_admin'] != 1 && $_POST["printWorker"] != "Pokaż")
{
//redirect to panel.php
$_SESSION["innfoError"] = "Brak uprawnień do tej strony";
header("Location: panel.php");
exit();
}
//sprawdź czy istnieje
$sql = "SELECT * FROM uzytkownicy WHERE aktywne IN (1, 0) AND id = :id";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':id', $_POST['id'], PDO::PARAM_INT);
$stmt->execute();
$count = $stmt->rowCount();
if($count == 0)
{
$_SESSION['innfoError'] = "Nie ma takiego pracownika";
header("Location: printWorkerForm.php");
exit();
}
$user = $stmt->fetch(PDO::FETCH_ASSOC);
$year = substr($_POST['month'], 0, 4);
$month = substr($_POST['month'], 5, 2);
//pobierz skrót działu
$sql = "SELECT skrot FROM dzialy WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':id', $user['dzial'], PDO::PARAM_INT);
$stmt->execute();
$dzial = $stmt->fetch(PDO::FETCH_ASSOC);
?>
- ewidencja czasu -
Imię i nazwisko:
Dział:
prepare($sql);
$stmt->bindValue(':kto', $user['id'], PDO::PARAM_INT);
//dodaj zero wiodące do miesiąca
$m = $month;
if($m < 10 && strlen($m) < 2)
{
$m = "0".$m;
}
$stmt->bindValue(':data', $year."-".$m."%", PDO::PARAM_STR);
$stmt->execute();
$zdalne = $stmt->fetch(PDO::FETCH_ASSOC);
echo "Ilość dni pracy zdalnej: ".$zdalne['COUNT(*)']."";
$notAccepted = 0;
if(isset($_POST['notAccepted']))
{
$notAccepted = 1;
}
if($notAccepted == 1)
{
//sprawdź czy są dni niezaakceptowane
$sql = "SELECT COUNT(*) FROM obecnosc WHERE kto = :kto AND zaakceptowane = 0 AND aktywne = 1 AND data LIKE :data";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':data', $year."-".$m."%", PDO::PARAM_STR);
$stmt->bindValue(':kto', $user['id'], PDO::PARAM_INT);
$stmt->execute();
$niezaakceptowane = $stmt->fetch(PDO::FETCH_ASSOC);
if($niezaakceptowane['COUNT(*)'] > 0)
{
?>
Są niezaakceptowane dni pracy
Dzień |
Czas pracy |
prepare($sql);
$stmt->bindValue(':data', $year."-".$m."%", PDO::PARAM_STR);
$stmt->execute();
$dniWolne = $stmt->fetchAll(PDO::FETCH_ASSOC);
$dniWolneArray = [];
foreach($dniWolne as $dzienWolny)
{
$dniWolneArray[] = $dzienWolny['data'];
}
for($i = 1; $i <= $daysInMonth; $i++)
{
//sprawdź czy jest wpis w bazie dla danego dnia
$sql = "SELECT * FROM obecnosc, statusy WHERE obecnosc.kto = :kto AND obecnosc.data = :data AND obecnosc.aktywne = 1 AND obecnosc.status = statusy.id";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':data', $year."-".$m."-".$i, PDO::PARAM_STR);
$stmt->bindValue(':kto', $user['id'], PDO::PARAM_INT);
$stmt->execute();
$stmt->execute();
$work = $stmt->fetch(PDO::FETCH_ASSOC);
if(date('N', strtotime($month[0]."-".$month[1]."-".$i)) > 5 || in_array($year."-".$m."-".$i, $dniWolneArray))
{
echo "";
}
else
{
echo "
";
}
if($work === false)
{
//nie ma wpisu w bazie
echo "".$i." | ";
echo " | ";
}
else
{
//jest wpis w bazie
echo "".$i." | ";
if($work['czasZaczecia'] != NULL && $work['czasKonca'] != NULL)
{
echo "".$work['czasZaczecia']." - ".$work['czasKonca']."";
if($work['skrot'] != "OB")
{
echo " - ".$work['skrot']."";
}
}
else if($work['czasZaczecia'] != NULL && $work['czasKonca'] == NULL)
{
echo " | ".$work['czasZaczecia']." - ";
if($work['skrot'] != "OB")
{
echo " - ".$work['skrot']."";
}
}
else if($work['czasZaczecia'] == NULL && $work['czasKonca'] != NULL)
{
echo " | - ".$work['czasKonca']."";
if($work['skrot'] != "OB")
{
echo " - ".$work['skrot']."";
}
}
else
{
echo " | ".$work['skrot']."";
//
}
if($work['zdalne'] == 1)
{
echo " - PZ";
}
else
{
echo " | ";
}
}
echo "
";
}
?>