<?php
session_start();
if (!isset($_SESSION['loggedin'])) {
    exit("unauthorized");
}

include "../database.php";
include "../functions.php";

$id = $_POST["id"];

$sql_attendance = "SELECT * FROM attendance WHERE id = $id";
$result_attendance = mysqli_query($con, $sql_attendance);
$attendance = mysqli_fetch_assoc($result_attendance);
$year = $attendance["year"];
$month = sprintf('%02d', $attendance["month"]);

$sql = "SELECT * FROM company_data WHERE name = 'Codice azienda'";
$result = mysqli_query($con, $sql);
$row = mysqli_fetch_assoc($result);
$company_code = $row["value"];

$filename = "ORARIO_" . $company_code . "_" . $month . "" . $year . "";

unlink("../../../timbrature/" . $filename . ".txt");
$file = fopen("../../../cartellini/" . $filename . ".txt", "w") or die("Unable to open file!");

$sql = "SELECT * FROM attendance_users WHERE attendance_id = $id GROUP BY user_id";
$result_attendance_users = mysqli_query($con, $sql);
while ($row = mysqli_fetch_assoc($result_attendance_users)) {
    $fiscal_code = "";

    $sql = "SELECT * FROM users WHERE id = " . $row["user_id"] . "";
    $result_users = mysqli_query($con, $sql);
    $users = mysqli_fetch_assoc($result_users);
    $fiscal_code = $users["fiscal_code"];
    $registration_number = $users["registration_number"];
    $qualification = $users["qualification"];
    $qualification_2 = $users["qualification_2"];

    $sql_days = "SELECT * FROM attendance_rows WHERE attendance_id = $id AND user_id = " . $row["user_id"] . " ORDER BY date";
    $result_days = mysqli_query($con, $sql_days);
    while ($row_day = mysqli_fetch_assoc($result_days)) {
        $entry_time_1 = "";
        $day = "";
        $today = "";
        $content = "";

        $day_type = $row_day["day_type"];

        $day = sprintf('%02d', date("d", strtotime($row_day["date"])));
        $today = "" . $year . "" . $month . "" . $day . "";

        $hour = sprintf('%02d', date("H", strtotime($row_day["entry_time_1"])));
        $minute = sprintf('%02d', date("i", strtotime($row_day["entry_time_1"])));
        $entry_time_1 = "" . $hour . "" . $minute . "";

        $hour = sprintf('%02d', date("H", strtotime($row_day["entry_time_2"])));
        $minute = sprintf('%02d', date("i", strtotime($row_day["entry_time_2"])));
        $entry_time_2 = "" . $hour . "" . $minute . "";

        $hour = sprintf('%02d', date("H", strtotime($row_day["entry_time_3"])));
        $minute = sprintf('%02d', date("i", strtotime($row_day["entry_time_3"])));
        $entry_time_3 = "" . $hour . "" . $minute . "";

        $hour = sprintf('%02d', date("H", strtotime($row_day["entry_time_4"])));
        $minute = sprintf('%02d', date("i", strtotime($row_day["entry_time_4"])));
        $entry_time_4 = "" . $hour . "" . $minute . "";

        $hour = sprintf('%02d', date("H", strtotime($row_day["exit_time_1"])));
        $minute = sprintf('%02d', date("i", strtotime($row_day["exit_time_1"])));
        $exit_time_1 = "" . $hour . "" . $minute . "";

        $hour = sprintf('%02d', date("H", strtotime($row_day["exit_time_2"])));
        $minute = sprintf('%02d', date("i", strtotime($row_day["exit_time_2"])));
        $exit_time_2 = "" . $hour . "" . $minute . "";

        $hour = sprintf('%02d', date("H", strtotime($row_day["exit_time_3"])));
        $minute = sprintf('%02d', date("i", strtotime($row_day["exit_time_3"])));
        $exit_time_3 = "" . $hour . "" . $minute . "";

        $hour = sprintf('%02d', date("H", strtotime($row_day["exit_time_4"])));
        $minute = sprintf('%02d', date("i", strtotime($row_day["exit_time_4"])));
        $exit_time_4 = "" . $hour . "" . $minute . "";

        if ($row_day["theoretical_minutes"] == 0) {
            $theoretical = "00000";
        } else {
            $theoretical_minutes = timeFromMinutes($row_day["theoretical_minutes"]);
            $hour = sprintf('%02d', date("H", strtotime($theoretical_minutes)));
            $minute = sprintf('%02d', date("i", strtotime($theoretical_minutes)));
            $theoretical_string = "" . $hour . "" . $minute . "";
            $theoretical = sprintf('%05d', $theoretical_string);
        }

        if ($row_day["worked_minutes"] == 0) {
            $worked = "00000";
        } else {
            $worked_minutes = timeFromMinutes($row_day["worked_minutes"]);
            $hour = sprintf('%02d', date("H", strtotime($worked_minutes)));
            $minute = sprintf('%02d', date("i", strtotime($worked_minutes)));
            $worked_string = "" . $hour . "" . $minute . "";
            $worked = sprintf('%05d', $worked_string);
        }

        if ($row_day["justification_id_1"] == 0) {
            $justification_1 = "    ";
        } else {
            $sql_justifications = "SELECT * FROM justifications WHERE id = " . $row_day["justification_id_1"] . "";
            $result_justifications = mysqli_query($con, $sql_justifications);
            $justifications = mysqli_fetch_assoc($result_justifications);
            if (strlen($justifications["acronym"]) == 1) {
                $justification_1 = "" . $justifications["acronym"] . "   ";
            } else if (strlen($justifications["acronym"]) == 2) {
                $justification_1 = "" . $justifications["acronym"] . "  ";
            } else if (strlen($justifications["acronym"]) == 3) {
                $justification_1 = "" . $justifications["acronym"] . " ";
            } else if (strlen($justifications["acronym"]) == 4) {
                $justification_1 = "" . $justifications["acronym"] . "";
            }
        }

        if ($row_day["justification_id_2"] == 0) {
            $justification_2 = "    ";
        } else {
            $sql_justifications = "SELECT * FROM justifications WHERE id = " . $row_day["justification_id_2"] . "";
            $result_justifications = mysqli_query($con, $sql_justifications);
            $justifications = mysqli_fetch_assoc($result_justifications);
            if (strlen($justifications["acronym"]) == 1) {
                $justification_2 = "" . $justifications["acronym"] . "   ";
            } else if (strlen($justifications["acronym"]) == 2) {
                $justification_2 = "" . $justifications["acronym"] . "  ";
            } else if (strlen($justifications["acronym"]) == 3) {
                $justification_2 = "" . $justifications["acronym"] . " ";
            } else if (strlen($justifications["acronym"]) == 4) {
                $justification_2 = "" . $justifications["acronym"] . "";
            }
        }

        if ($row_day["justification_id_3"] == 0) {
            $justification_3 = "    ";
        } else {
            $sql_justifications = "SELECT * FROM justifications WHERE id = " . $row_day["justification_id_3"] . "";
            $result_justifications = mysqli_query($con, $sql_justifications);
            $justifications = mysqli_fetch_assoc($result_justifications);
            if (strlen($justifications["acronym"]) == 1) {
                $justification_3 = "" . $justifications["acronym"] . "   ";
            } else if (strlen($justifications["acronym"]) == 2) {
                $justification_3 = "" . $justifications["acronym"] . "  ";
            } else if (strlen($justifications["acronym"]) == 3) {
                $justification_3 = "" . $justifications["acronym"] . " ";
            } else if (strlen($justifications["acronym"]) == 4) {
                $justification_3 = "" . $justifications["acronym"] . "";
            }
        }

        if ($row_day["justification_id_4"] == 0) {
            $justification_4 = "    ";
        } else {
            $sql_justifications = "SELECT * FROM justifications WHERE id = " . $row_day["justification_id_4"] . "";
            $result_justifications = mysqli_query($con, $sql_justifications);
            $justifications = mysqli_fetch_assoc($result_justifications);
            if (strlen($justifications["acronym"]) == 1) {
                $justification_4 = "" . $justifications["acronym"] . "   ";
            } else if (strlen($justifications["acronym"]) == 2) {
                $justification_4 = "" . $justifications["acronym"] . "  ";
            } else if (strlen($justifications["acronym"]) == 3) {
                $justification_4 = "" . $justifications["acronym"] . " ";
            } else if (strlen($justifications["acronym"]) == 4) {
                $justification_4 = "" . $justifications["acronym"] . "";
            }
        }

        if ($row_day["justification_id_5"] == 0) {
            $justification_5 = "    ";
        } else {
            $sql_justifications = "SELECT * FROM justifications WHERE id = " . $row_day["justification_id_5"] . "";
            $result_justifications = mysqli_query($con, $sql_justifications);
            $justifications = mysqli_fetch_assoc($result_justifications);
            if (strlen($justifications["acronym"]) == 1) {
                $justification_5 = "" . $justifications["acronym"] . "   ";
            } else if (strlen($justifications["acronym"]) == 2) {
                $justification_5 = "" . $justifications["acronym"] . "  ";
            } else if (strlen($justifications["acronym"]) == 3) {
                $justification_5 = "" . $justifications["acronym"] . " ";
            } else if (strlen($justifications["acronym"]) == 4) {
                $justification_5 = "" . $justifications["acronym"] . "";
            }
        }

        if ($row_day["justification_id_6"] == 0) {
            $justification_6 = "    ";
        } else {
            $sql_justifications = "SELECT * FROM justifications WHERE id = " . $row_day["justification_id_6"] . "";
            $result_justifications = mysqli_query($con, $sql_justifications);
            $justifications = mysqli_fetch_assoc($result_justifications);
            if (strlen($justifications["acronym"]) == 1) {
                $justification_6 = "" . $justifications["acronym"] . "   ";
            } else if (strlen($justifications["acronym"]) == 2) {
                $justification_6 = "" . $justifications["acronym"] . "  ";
            } else if (strlen($justifications["acronym"]) == 3) {
                $justification_6 = "" . $justifications["acronym"] . " ";
            } else if (strlen($justifications["acronym"]) == 4) {
                $justification_6 = "" . $justifications["acronym"] . "";
            }
        }

        if ($row_day["justification_minutes_1"] == 0) {
            $justification_time_1 = "00000";
        } else {
            $justification_minutes = timeFromMinutes($row_day["justification_minutes_1"]);
            $hour = sprintf('%02d', date("H", strtotime($justification_minutes)));
            $minute = sprintf('%02d', date("i", strtotime($justification_minutes)));
            $justification_time_string = "" . $hour . "" . $minute . "";
            $justification_time_1 = sprintf('%05d', $justification_time_string);
        }

        if ($row_day["justification_minutes_2"] == 0) {
            $justification_time_2 = "00000";
        } else {
            $justification_minutes = timeFromMinutes($row_day["justification_minutes_2"]);
            $hour = sprintf('%02d', date("H", strtotime($justification_minutes)));
            $minute = sprintf('%02d', date("i", strtotime($justification_minutes)));
            $justification_time_string = "" . $hour . "" . $minute . "";
            $justification_time_2 = sprintf('%05d', $justification_time_string);
        }

        if ($row_day["justification_minutes_3"] == 0) {
            $justification_time_3 = "00000";
        } else {
            $justification_minutes = timeFromMinutes($row_day["justification_minutes_3"]);
            $hour = sprintf('%02d', date("H", strtotime($justification_minutes)));
            $minute = sprintf('%02d', date("i", strtotime($justification_minutes)));
            $justification_time_string = "" . $hour . "" . $minute . "";
            $justification_time_3 = sprintf('%05d', $justification_time_string);
        }

        if ($row_day["justification_minutes_4"] == 0) {
            $justification_time_4 = "00000";
        } else {
            $justification_minutes = timeFromMinutes($row_day["justification_minutes_4"]);
            $hour = sprintf('%02d', date("H", strtotime($justification_minutes)));
            $minute = sprintf('%02d', date("i", strtotime($justification_minutes)));
            $justification_time_string = "" . $hour . "" . $minute . "";
            $justification_time_4 = sprintf('%05d', $justification_time_string);
        }

        if ($row_day["justification_minutes_5"] == 0) {
            $justification_time_5 = "00000";
        } else {
            $justification_minutes = timeFromMinutes($row_day["justification_minutes_5"]);
            $hour = sprintf('%02d', date("H", strtotime($justification_minutes)));
            $minute = sprintf('%02d', date("i", strtotime($justification_minutes)));
            $justification_time_string = "" . $hour . "" . $minute . "";
            $justification_time_5 = sprintf('%05d', $justification_time_string);
        }

        if ($row_day["justification_minutes_6"] == 0) {
            $justification_time_6 = "00000";
        } else {
            $justification_minutes = timeFromMinutes($row_day["justification_minutes_6"]);
            $hour = sprintf('%02d', date("H", strtotime($justification_minutes)));
            $minute = sprintf('%02d', date("i", strtotime($justification_minutes)));
            $justification_time_string = "" . $hour . "" . $minute . "";
            $justification_time_6 = sprintf('%05d', $justification_time_string);
        }

        $content = "" . $company_code . " " . $qualification . "" . $qualification_2 . "" . $registration_number . "" . $fiscal_code . "1" . $year . "" . $month . "" . $today . "" . $entry_time_1 . "" . $exit_time_1 . "" . $entry_time_2 . "" . $exit_time_2 . "" . $entry_time_3 . "" . $exit_time_3 . "" . $entry_time_4 . "" . $exit_time_4 . "" . $theoretical . "" . $worked . "" . $justification_1 . "" . $justification_time_1 . "" . $justification_2 . "" . $justification_time_2 . "" . $justification_3 . "" . $justification_time_3 . "" . $justification_4 . "" . $justification_time_4 . "" . $justification_5 . "" . $justification_time_5 . "" . $justification_6 . "" . $justification_time_6 . "      " . $day_type . "                                                   \n";
        fwrite($file, $content);
    }

    $sql = "SELECT * FROM attendance_users WHERE attendance_id = $id AND user_id = " . $row["user_id"] . "";
    $result_justifications_users = mysqli_query($con, $sql);
    while ($row_justifications_users = mysqli_fetch_assoc($result_justifications_users)) {
        $justification = "";
        $progressive = "";
        $justification_time = "";
        $justification_desc = "";

        $progressive = sprintf('%08d', $row_justifications_users["progressive"]);

        if ($row_justifications_users["justification_id"] == 0) {
            if ($row_justifications_users["worked"] == 1) {
                $justification = "OL  ";
                $justification_desc = "ORE LAVORATE";
            } else if ($row_justifications_users["theorical"] == 1) {
                $justification = "OT  ";
                $justification_desc = "ORE TEORICHE";
            } else if ($row_justifications_users["overtired"] == 1) {
                $justification = "SD  ";
                $justification_desc = "STRAORD DIURNO";
            }
        } else {
            $sql_justifications = "SELECT * FROM justifications WHERE id = " . $row_justifications_users["justification_id"] . "";
            $result_justifications = mysqli_query($con, $sql_justifications);
            $justifications = mysqli_fetch_assoc($result_justifications);
            $justification_desc = $justifications["description"];

            if (strlen($justifications["acronym"]) == 1) {
                $justification = "" . $justifications["acronym"] . "   ";
            } else if (strlen($justifications["acronym"]) == 2) {
                $justification = "" . $justifications["acronym"] . "  ";
            } else if (strlen($justifications["acronym"]) == 3) {
                $justification = "" . $justifications["acronym"] . " ";
            } else if (strlen($justifications["acronym"]) == 4) {
                $justification = "" . $justifications["acronym"] . "";
            }
        }

        $justification_description = $justification_desc;
        for ($i = 1; $i < 31; $i++) {
            if (strlen($justification_desc) == $i) {
                $spaces = 30 - $i;
                for ($x = 0; $x < $spaces; $x++) {
                    $justification_description = $justification_description . " ";
                }
            }
        }

        $justification_minutes = timeFromMinutes($row_justifications_users["minutes"]);
        $hour = sprintf('%02d', date("H", strtotime($justification_minutes)));
        $minute = sprintf('%02d', date("i", strtotime($justification_minutes)));
        $justification_time_string = "" . $hour . "" . $minute . "";
        $justification_time = sprintf('%05d', $justification_time_string);

        $content = "" . $company_code . " " . $qualification . "" . $qualification_2 . "" . $registration_number . "" . $fiscal_code . "2" . $year . "" . $month . "" . $progressive . "" . $justification . "" . $justification_time . "" . $justification_description . "              0000000000000000000000000000000000000                                                                 \n";
        fwrite($file, $content);
    }
}

fclose($file);

echo "ok";

$con->close();
