221 lines
		
	
	
		
			9.9 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			221 lines
		
	
	
		
			9.9 KiB
		
	
	
	
		
			PHP
		
	
	
<?php
 | 
						|
require_once 'db.php';
 | 
						|
@session_start();
 | 
						|
 | 
						|
//sprawdź czy zalogowany użytkownik jest przełożonym $_POST["user"]
 | 
						|
 | 
						|
$sql = "SELECT * FROM uzytkownicy WHERE id = :id AND przelozony = :przelozony";
 | 
						|
$stmt = $pdo->prepare($sql);
 | 
						|
$stmt->bindValue(':id', $_POST["user"], PDO::PARAM_INT);
 | 
						|
$stmt->bindValue(':przelozony', $_SESSION['user_id'], PDO::PARAM_INT);
 | 
						|
$stmt->execute();
 | 
						|
 | 
						|
if($stmt->rowCount() === 0)
 | 
						|
{
 | 
						|
    $_SESSION["innfoError"] = "Nie jesteś przełożonym tego użytkownika";
 | 
						|
    header("Location: panel.php");
 | 
						|
    exit();
 | 
						|
}
 | 
						|
else
 | 
						|
{
 | 
						|
    //pobierz dane z tabeli uzytkownicy, dzialy
 | 
						|
    $sql = "SELECT uzytkownicy.id AS id, login, imie, nazwisko, uzytkownicy.dzial AS dzial, `przelozony`, dzialy.nazwa AS nazwa, dzialy.skrot AS skrot FROM uzytkownicy, dzialy WHERE uzytkownicy.id = :id AND dzialy.id = uzytkownicy.dzial AND uzytkownicy.aktywne = 1";
 | 
						|
    $stmt = $pdo->prepare($sql);
 | 
						|
    $stmt->bindValue(':id', $_POST["user"], PDO::PARAM_INT);
 | 
						|
    $stmt->execute();
 | 
						|
    $user = $stmt->fetch(PDO::FETCH_ASSOC);
 | 
						|
    //print_r($user);
 | 
						|
    //pobierz wszystkie obecności z danego miesiąca
 | 
						|
    $sql = "SELECT * FROM obecnosc WHERE kto = :kto AND aktywne = 1 AND data LIKE :data";
 | 
						|
    $stmt = $pdo->prepare($sql);
 | 
						|
    $stmt->bindValue(':kto', $_POST["user"], PDO::PARAM_INT);
 | 
						|
    $stmt->bindValue(':data', $_POST['mm'].'%', PDO::PARAM_STR);
 | 
						|
    $stmt->execute();
 | 
						|
    $obecnosci = $stmt->fetchAll(PDO::FETCH_ASSOC);
 | 
						|
    //print_r($obecnosci);
 | 
						|
    //$_POST['mm'] = YYYY-MM
 | 
						|
    //pobierz ilość dni w miesiącu
 | 
						|
    $daysInMonth = cal_days_in_month(CAL_GREGORIAN, explode('-', $_POST['mm'])[1], explode('-', $_POST['mm'])[0]);
 | 
						|
 | 
						|
    ?>
 | 
						|
<!DOCTYPE html>
 | 
						|
<html>
 | 
						|
<head>
 | 
						|
    <title>Panel <?php echo $_SESSION["user_login"]; ?></title>
 | 
						|
    <link rel="stylesheet" type="text/css" href="style.css">
 | 
						|
</head>
 | 
						|
<body>
 | 
						|
    <div id="panel">
 | 
						|
        <div id="panel">
 | 
						|
            <header>
 | 
						|
                <h1>Witaj <?php echo $_SESSION["user_imie"]; ?></h1>
 | 
						|
            </header>
 | 
						|
            <nav>
 | 
						|
                <?php
 | 
						|
                    require_once 'nav.php';
 | 
						|
                ?>
 | 
						|
            </nav>
 | 
						|
            <main id="monthShow">
 | 
						|
                <div id="doPodzialu">
 | 
						|
                    <h2>
 | 
						|
                        <?php
 | 
						|
                        if(isset($_GET['month']))
 | 
						|
                        {
 | 
						|
                            $mArray = ["Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec","Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"];
 | 
						|
                            $month = $_GET['month'];
 | 
						|
                            $month = explode('-', $month);
 | 
						|
                            echo $mArray[$month[1]-1]." ".$month[0];
 | 
						|
 | 
						|
                        }
 | 
						|
                        ?>
 | 
						|
                    </h2>
 | 
						|
                    <div class="addInfo">
 | 
						|
                        <?php
 | 
						|
                        echo @$_SESSION["innfoError"];
 | 
						|
                        $_SESSION["innfoError"] = "";
 | 
						|
                        ?>
 | 
						|
                    </div>
 | 
						|
                    Imię i nazwisko: <b><?php echo $user['imie']." ".$user['nazwisko']; ?></b><br>
 | 
						|
                    Dział: <b><?php echo $user['nazwa']; ?></b><br>
 | 
						|
                    <?php
 | 
						|
                    //sprawdź ilość dni pracy zdalnej w danym miesiącu
 | 
						|
                    $sql = "SELECT * FROM obecnosc WHERE kto = :kto AND aktywne = 1 AND data LIKE :data AND zdalne = 1";
 | 
						|
                    $stmt = $pdo->prepare($sql);
 | 
						|
                    $stmt->bindValue(':kto', $_POST["user"], PDO::PARAM_INT);
 | 
						|
                    $stmt->bindValue(':data', $_POST['mm'].'%', PDO::PARAM_STR);
 | 
						|
                    $stmt->execute();
 | 
						|
                    $zdalnie = $stmt->rowCount();
 | 
						|
                    echo "Ilość dni pracy zdalnej: <b>".$zdalnie."</b>";
 | 
						|
                    ?>
 | 
						|
                    <table class="month">
 | 
						|
                        <tr>
 | 
						|
                            <th>Dzień</th>
 | 
						|
                            <th>Czas pracy</th>
 | 
						|
                        </tr>
 | 
						|
                        <?php
 | 
						|
                        $sql = "SELECT * FROM dniwolne WHERE data LIKE :data AND aktywne = 1";
 | 
						|
                        $stmt = $pdo->prepare($sql);
 | 
						|
                        $stmt->bindValue(':data', $_POST['mm'].'%', 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
 | 
						|
                            $day = $_POST['mm']."-".($i < 10 ? "0".$i : $i);
 | 
						|
                            $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(':kto', $_POST["user"], PDO::PARAM_INT);
 | 
						|
                            $stmt->bindValue(':data', $day, PDO::PARAM_STR);
 | 
						|
                            $stmt->execute();
 | 
						|
                            $obecnosc = $stmt->fetch(PDO::FETCH_ASSOC);
 | 
						|
                            //sprawdź czy sobota lub niedziela
 | 
						|
                            $dayOfWeek = date('w', strtotime($day));
 | 
						|
                            if($dayOfWeek == 0 || $dayOfWeek == 6)
 | 
						|
                            {
 | 
						|
                                echo '<tr class="weekend">';
 | 
						|
                            }
 | 
						|
                            else if(in_array($day, $dniWolneArray))
 | 
						|
                            {
 | 
						|
                                echo '<tr class="weekend">';
 | 
						|
                            }
 | 
						|
                            else
 | 
						|
                            {
 | 
						|
                                echo '<tr>';
 | 
						|
                            }
 | 
						|
                            //brak wpisu w bazie
 | 
						|
                            if($obecnosc === false)
 | 
						|
                            {
 | 
						|
                                echo '<td>'.$i.'</td>';
 | 
						|
                                echo '<td></td>';
 | 
						|
                            }
 | 
						|
                            else
 | 
						|
                            {
 | 
						|
                                //jest wpis w bazie
 | 
						|
                                echo "<td>".$i;
 | 
						|
                                //jeżeli niezaakceptowane ❌
 | 
						|
                                if($obecnosc['zaakceptowane'] == 0)
 | 
						|
                                {
 | 
						|
                                    echo " ❌";
 | 
						|
                                }
 | 
						|
                                //jeżeli zaakceptowane ✔️
 | 
						|
                                else if($obecnosc['zaakceptowane'] == 1)
 | 
						|
                                {
 | 
						|
                                    echo " ✔️";
 | 
						|
                                }
 | 
						|
                                echo "</td>";
 | 
						|
                                if($obecnosc['czasZaczecia'] != NULL && $obecnosc['czasKonca'] != NULL)
 | 
						|
                                {
 | 
						|
                                    echo "<td>".$obecnosc['czasZaczecia']." - ".$obecnosc['czasKonca']."";
 | 
						|
                                    if($obecnosc['skrot'] != "OB")
 | 
						|
                                    {
 | 
						|
                                        echo " - ".$obecnosc['skrot']."";
 | 
						|
                                    }
 | 
						|
                                }
 | 
						|
                                else if($obecnosc['czasZaczecia'] != NULL && $obecnosc['czasKonca'] == NULL)
 | 
						|
                                {
 | 
						|
                                    echo "<td>".$obecnosc['czasZaczecia']." - ";
 | 
						|
                                    if($obecnosc['skrot'] != "OB")
 | 
						|
                                    {
 | 
						|
                                        echo " - ".$obecnosc['skrot']."";
 | 
						|
                                    }
 | 
						|
                                }
 | 
						|
                                else if($obecnosc['czasZaczecia'] == NULL && $obecnosc['czasKonca'] != NULL)
 | 
						|
                                {
 | 
						|
                                    echo "<td> - ".$obecnosc['czasKonca']."";
 | 
						|
                                    if($obecnosc['skrot'] != "OB")
 | 
						|
                                    {
 | 
						|
                                        echo " - ".$obecnosc['skrot']."";
 | 
						|
                                    }
 | 
						|
                                }
 | 
						|
                                else
 | 
						|
                                {
 | 
						|
                                    echo "<td>".$obecnosc['skrot']."";
 | 
						|
                                    //
 | 
						|
                                }
 | 
						|
                                if($obecnosc['zdalne'] == 1)
 | 
						|
                                {
 | 
						|
                                    echo " - PZ";
 | 
						|
                                }
 | 
						|
                                else
 | 
						|
                                {
 | 
						|
                                    echo "</td>";
 | 
						|
                                }
 | 
						|
                            }
 | 
						|
                            echo "</tr>";
 | 
						|
                        }
 | 
						|
                        ?>
 | 
						|
                        
 | 
						|
                    </table>
 | 
						|
                </div>
 | 
						|
                <div id="legenda">
 | 
						|
                    <div style="height: 20px;"></div>
 | 
						|
                    <h3>Opcje</h3>
 | 
						|
                    <form action="accept.php" method="post">
 | 
						|
                        <input type="hidden" name="user" value="<?php echo $_POST['user']; ?>">
 | 
						|
                        <input type="hidden" name="month" value="<?php echo $_POST['mm']; ?>">
 | 
						|
                        <button type="submit" name="akceptuj">Akceptuj</button>
 | 
						|
                    </form>
 | 
						|
                    <form action="print.php" method="post">
 | 
						|
                        <input type="hidden" name="user" value="<?php echo $_POST['user']; ?>">
 | 
						|
                        <input type="hidden" name="month" value="<?php echo $_POST['mm']; ?>">
 | 
						|
                        <button type="submit" name="drukuj">Drukuj</button>
 | 
						|
                    </form>
 | 
						|
                </div>
 | 
						|
            </main>
 | 
						|
        </div>
 | 
						|
    </div>
 | 
						|
    <?php
 | 
						|
    require_once 'footer.php';
 | 
						|
    ?>
 | 
						|
</body>
 | 
						|
</html>
 | 
						|
<?php
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
//print_r($_POST);
 |