<?php
include "../database.php";
include "../globals.php";

require_once '../../plugins/sendgrid/config.php';
require "../../plugins/sendgrid/sendgrid-php.php";
session_start();

$permission_justification = $_POST["permission_justification"];
$permission_full_day      = $_POST["permission_full_day"];
$permission_note          = addslashes($_POST["permission_note"]);
$permission_start_date    = date("Y-m-d", strtotime($_POST["permission_start_date"]));
$permission_end_date      = date("Y-m-d", strtotime($_POST["permission_end_date"]));
$permission_start_time    = date("H:i", strtotime($_POST["permission_start_time"]));
$permission_end_time      = date("H:i", strtotime($_POST["permission_end_time"]));
$datetime                 = date("Y-m-d H:i:s");
$user_id                  = $_SESSION['id'];
$secure                   = rand(100000, 1000000);

$sql_insert = "INSERT INTO permissions VALUES (NULL,$user_id,$permission_justification,$permission_full_day,'$permission_start_date','$permission_end_date','$permission_start_time','$permission_end_time','$permission_note',1,'$datetime',$secure,'')";
if ($con->query($sql_insert) === true) {
    $id = $con->insert_id;

    $sql_permission    = "SELECT * FROM permissions WHERE id = ".$id."";
    $result_permission = mysqli_query($con, $sql_permission);
    $permission        = mysqli_fetch_assoc($result_permission);

    $sql_justification    = "SELECT * FROM justifications WHERE id = " . $permission['justification_id'] . "";
    $result_justification = mysqli_query($con, $sql_justification);
    $justification        = mysqli_fetch_assoc($result_justification);

    $start_datetime = $permission_start_date." ".$permission_start_time;
    $end_datetime = $permission_end_date." ".$permission_end_time;

    $sql_approve = "SELECT * FROM users WHERE role = 'Admin' AND permissions_approver = 1";
    $result_approve = mysqli_query($con, $sql_approve);
    while ($row_approve = mysqli_fetch_assoc($result_approve)) {
        //Invio mail responsabile
        $email = new \SendGrid\Mail\Mail();
        $email->setFrom("info@n-hub.com", "NH-HR");
        $email->addTo("".$row_approve["email"]."", "".$row_approve["name"]." ".$row_approve["surname"]."");
        $email->SetTemplateId("d-90331ff3889b45d5a96d08e0a42e182b");
        //Here is the Place holder values you need to replace.
        $email->addDynamicTemplateData("NHHR_richiedente", "" . $_SESSION["username"] . "");
        $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_Link_Approva", $manage_permission_public_url."?permission_id=" . $permission['id'] . "&secure=" . $secure . "&type=approve");
        $email->addDynamicTemplateData("NHHR_Link_Rifiuta", $manage_permission_public_url."?permission_id=" . $permission['id'] . "&secure=" . $secure . "&type=reject");
        $sendgrid = new \SendGrid(SENDGRID_API_KEY);
        try {
            $response = $sendgrid->send($email);
        } catch (Exception $e) {
            echo 'Caught exception: ' . $e->getMessage() . "\n";
        }
    }
    
    $sql_insert = "INSERT INTO tbl_events VALUES (NULL,'".$justification["name"]."', '$start_datetime', '$end_datetime', $user_id, $permission_full_day, '#607d8b', 'Permesso', $id)";
    if ($con->query($sql_insert) === true) {
        echo "ok";
    } else {
        echo "error";
    }
} else {
    echo "error";
}

$con->close();
