<?php
include "../database.php";
include "../globals.php";

require_once '../../plugins/sendgrid/config.php';
require "../../plugins/sendgrid/sendgrid-php.php";
session_start();

$result = $_POST["result"];
$id     = $_POST["id"];

$sql_permission    = "SELECT * FROM permissions WHERE id = " . $id . "";
$result_permission = mysqli_query($con, $sql_permission);
$permission        = mysqli_fetch_assoc($result_permission);

$admin_user = $_SESSION['username'];

$sql_attendance    = "SELECT * FROM attendance WHERE month = " . date("m", strtotime($permission['start_date'])) . " AND year = " . date("Y", strtotime($permission['start_date'])) . " AND closed = 1";
$result_attendance = mysqli_query($con, $sql_attendance);
if ($result_attendance->num_rows > 0) {
    echo "attendancePresent";
    exit;
}

$sql_attendance    = "SELECT * FROM attendance WHERE month = " . date("m", strtotime($permission['end_date'])) . " AND year = " . date("Y", strtotime($permission['end_date'])) . " AND closed = 1";
$result_attendance = mysqli_query($con, $sql_attendance);
if ($result_attendance->num_rows > 0) {
    echo "attendancePresent";
    exit;
}

$sql_attendance    = "SELECT * FROM attendance WHERE month BETWEEN " . date("m", strtotime($permission['start_date'])) . " AND " . date("m", strtotime($permission['end_date'])) . " AND year = " . date("Y", strtotime($permission['start_date'])) . " AND closed = 1";
$result_attendance = mysqli_query($con, $sql_attendance);
if ($result_attendance->num_rows > 0) {
    echo "attendancePresent";
    exit;
}

if ($result == "approvato") {
    $sql_attendance    = "SELECT * FROM attendance WHERE month = " . date("m", strtotime($permission['start_date'])) . " AND year = " . date("Y", strtotime($permission['start_date'])) . "";
    $result_attendance = mysqli_query($con, $sql_attendance);
    if ($result_attendance->num_rows > 0) {
        $attendance        = mysqli_fetch_assoc($result_attendance);

        $sql_update = "UPDATE attendance SET status = 'Da ricalcolare' WHERE id = " . $attendance["id"] . "";
        $con->query($sql_update);
    }

    $sql_attendance    = "SELECT * FROM attendance WHERE month = " . date("m", strtotime($permission['end_date'])) . " AND year = " . date("Y", strtotime($permission['end_date'])) . "";
    $result_attendance = mysqli_query($con, $sql_attendance);
    if ($result_attendance->num_rows > 0) {
        $attendance        = mysqli_fetch_assoc($result_attendance);

        $sql_update = "UPDATE attendance SET status = 'Da ricalcolare' WHERE id = " . $attendance["id"] . "";
        $con->query($sql_update);
    }

    $sql_attendance    = "SELECT * FROM attendance WHERE month BETWEEN " . date("m", strtotime($permission['start_date'])) . " AND " . date("m", strtotime($permission['end_date'])) . " AND year = " . date("Y", strtotime($permission['start_date'])) . "";
    $result_attendance = mysqli_query($con, $sql_attendance);
    if ($result_attendance->num_rows > 0) {
        $attendance        = mysqli_fetch_assoc($result_attendance);

        $sql_update = "UPDATE attendance SET status = 'Da ricalcolare' WHERE id = " . $attendance["id"] . "";
        $con->query($sql_update);
    }

    if ($permission["status_id"] == 1) {
        $sql_update = "UPDATE permissions SET status_id = 2, managed_by = '" . $admin_user . "' WHERE id = " . $id . "";
    } else if ($permission["request_delete"] == 1) {
        $sql_update = "DELETE FROM permissions WHERE id = " . $id . "";
    }
} else {
    if ($permission["status_id"] == 1) {
        $sql_update = "UPDATE permissions SET status_id = 3, managed_by = '" . $admin_user . "' WHERE id = " . $id . "";
    } else if ($permission["request_delete"] == 1) {
        $sql_update = "UPDATE permissions SET request_delete = 0, managed_by = '" . $admin_user . "' WHERE id = " . $id . "";
    }
}
if ($con->query($sql_update) === true) {

    $sql_justification    = "SELECT * FROM justifications WHERE id = " . $permission['justification_id'] . "";
    $result_justification = mysqli_query($con, $sql_justification);
    $justification        = mysqli_fetch_assoc($result_justification);

    if ($result == "approvato") {
        $sql_requests_status = "SELECT * FROM requests_status WHERE id = 2";
    } else {
        $sql_requests_status = "SELECT * FROM requests_status WHERE id = 3";
    }
    $result_requests_status = mysqli_query($con, $sql_requests_status);
    $requests_status        = mysqli_fetch_assoc($result_requests_status);

    $sql_user    = "SELECT * FROM users WHERE id = " . $permission['user_id'] . "";
    $result_user = mysqli_query($con, $sql_user);
    $user        = mysqli_fetch_assoc($result_user);

    //Invio mail
    $email = new \SendGrid\Mail\Mail();
    $email->setFrom("info@n-hub.com", "NH-HR");
    $email->addTo("" . $user["email"] . "", "" . $user["name"] . " " . $user["surname"] . "");
    $email->SetTemplateId("d-afbce1e202514b33b75f225c82aeba0f");
    //Here is the Place holder values you need to replace.
    $email->addDynamicTemplateData("NHHR_esito", "" . $requests_status["name"] . "");
    $email->addDynamicTemplateData("NHHR_data_richiesta", "" . date('d/m/Y H:i', strtotime($permission['permission_datetime'])) . "");
    $email->addDynamicTemplateData("NHHR_giustificativo", "" . $justification["name"] . "");
    if ($permission['full_day'] == 1) {
        $email->addDynamicTemplateData("NHHR_giornata_intera", "SI");
    } else {
        $email->addDynamicTemplateData("NHHR_giornata_intera", "NO");
    }
    $email->addDynamicTemplateData("NHHR_data_inizio", "" . date('d/m/Y', strtotime($permission['start_date'])) . "");
    $email->addDynamicTemplateData("NHHR_data_fine", "" . date('d/m/Y', strtotime($permission['end_date'])) . "");
    $email->addDynamicTemplateData("NHHR_ora_inizio", "" . date('H:i', strtotime($permission['start_time'])) . "");
    $email->addDynamicTemplateData("NHHR_ora_fine", "" . date('H:i', strtotime($permission['end_time'])) . "");
    $email->addDynamicTemplateData("NHHR_note", "" . $permission['note'] . "");
    $email->addDynamicTemplateData("NHHR_gestita_da", "" . $admin_user . "");
    $sendgrid = new \SendGrid(SENDGRID_API_KEY);
    try {
        $response = $sendgrid->send($email);
    } catch (Exception $e) {
        echo 'Caught exception: ' . $e->getMessage() . "\n";
    }

    echo "ok";
} else {
    echo "error";
}

$con->close();
