<?php

if (core::ifPost("from") AND core::getPost("from") == "event-import-inscription") {

    if (isset($_FILES[core::getPost("from")]['error']) AND $_FILES[core::getPost("from")]['error'] > 0) {

        switch ($_FILES[core::getPost("from")]['error']) {
            case 1: // UPLOAD_ERR_INI_SIZE
                alert::recError("Le fichier dépasse la limite autorisée par le serveur (fichier php.ini) !");
                break;
            case 2: // UPLOAD_ERR_FORM_SIZE
                alert::recError("Le fichier dépasse la limite autorisée dans le formulaire HTML !");
                break;
            case 3: // UPLOAD_ERR_PARTIAL
                alert::recError("L'envoi du fichier a été interrompu pendant le transfert !");
                break;
            case 4: // UPLOAD_ERR_NO_FILE
                alert::recError("Vous n'avez pas chargé de fichier");
                break;
        }
    } elseif ($_FILES[core::getPost("from")]['type'] != "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") {
        alert::recError("Seuls les fichiers Excel au format xlsx sont acceptés (".$_FILES[core::getPost("from")]['type'].")");
        header("Location: /evenement-".core::getPost("event").".html");
        exit();
    } else {

        if (file_exists($_FILES[core::getPost("from")]['tmp_name'])) {

            $simpleXLSX = new simpleXLSX();
            $xlsx = $simpleXLSX->parse($_FILES[core::getPost("from")]['tmp_name']);
            $returnXlsx = $xlsx->rows();

            if(     $returnXlsx[0][0] != "Matricule SALAR" 
                    OR $returnXlsx[0][1] != "Nom SALAR" 
                    OR $returnXlsx[0][2] != "Prénom SALAR"){
                alert::recError("Le fichier " . $_FILES[core::getPost("from")]['name'] . " n'est pas un fichier d'inscription à un évènement.");
                header("Location: /evenement-".core::getPost("event").".html");
                exit();
            } 
            
            $nbSalaries = count($returnXlsx) - 1;
            
            foreach ($returnXlsx as $key => $ligne) {   
                if($key > 0){
                    $salarie = salaries::getSalarieByLoginId($ligne[0]);
                    if($salarie == FALSE){
                        alert::recError($ligne[2]. " " .$ligne[1] . " (" .$ligne[0] . ") n'est pas présent dans la base RH");
                    } else {
                        $titreEvenement = event::getInscriptionEvenementById(core::getPost("event"), $salarie["id"])["titre"];
                        if(empty($titreEvenement) AND isset($salarie["id"])){
                            if(event::subscribe($salarie["id"]) == TRUE){
                                alert::recSuccess("Inscription de " . $salarie["prenom"] . " " . $salarie["nom"]);
                            } else {
                                alert::recError($salarie["prenom"] . " " . $salarie["nom"] . " n'a pas pu être importé");
                            }
                        } elseif(empty($salarie["id"])){
                            alert::recError($ligne[2]. " " .$ligne[1] . " (" .$ligne[0] . ") n'est pas présent dans la base RH");
                        } 
                    }
                }
            }

            historique::recRef("/evenement-".core::getPost("event").".html");
            historique::add(array(
                "idType" => historique::getIdRef("ACTION"),
                "idUser" => session::getId(),
                "idPage" => historique::getIdRef("/evenement-".core::getPost("event").".html"),
                "log" => "Import des inscriptions"
            ));
            historique::recordAlert("SUCCESS");
            
            header("Location: /evenement-".core::getPost("event").".html");
            exit();
        } else {
            alert::recError("Erreur lors du chargement du fichier : " . $_FILES[core::getPost("from")]['name']);
        }
    }

    header("Location: /evenement-".core::getPost("event").".html");
    exit();
} else {
    header('HTTP/1.0 401 Unauthorized');
    exit();
}

