<?php

/* 
   Nom : controller_assign_user.php
   Créé par : Simon Roy
   Gestion de la vue view_assign_user.php
*/
if (!isset($_SESSION)) {
    session_start();
}
include_once "../assets/constants.php";
include_once REQUETES_BD;
if (isset($_POST["id_plancadre"]) && isset($_POST["user_list"])) {
    if (!empty($_POST["id_plancadre"]) && !empty($_POST["user_list"])) {
        assignUserPlanCadre($_POST["id_plancadre"], $_POST["user_list"]);
        $_SESSION['info_assign'] = 'Assignation effectuée avec succès';
        header('Location: ../view/view_assign_user.php');
    }
}
header('Location: ../view/view_assign_user.php');
<?php

/* 
   Nom : controller_assign_user.php
   Créé par : Simon Roy
   Gestion de la vue view_assign_user.php
*/
if (!isset($_SESSION)) {
    session_start();
}
include_once "../assets/constants.php";
include_once REQUETES_BD;
if (isset($_POST['class_list_all']) && !empty($_POST['class_list_all'])) {
    // on crée un plan-cadre en élaboration pour un cours qui n'a pas
    // déjà de plan-cadre en élaboration
    $codecours = $_POST["class_list_all"];
    $etat = "Élaboration";
    $plancadre_id = createPlanCadre($codecours, $etat);
    $titre = array("", "Présentation du cours", "Objectifs d'intégration", "Évaluation des apprentissages", "Énoncé des compétences", "Objectifs d'apprentissage");
    for ($i = 1; $i <= 5; $i++) {
        insert_section($plancadre_id, $i, $titre[$i]);
    }
    if (isset($_POST['user_list_all']) && !empty($_POST['user_list_all'])) {
        assignUserPlanCadre($plancadre_id, $_POST["user_list_all"]);
    }
    $_SESSION['info_assign'] = 'Le plan-cadre a bien été ajouté';
    header('Location: ../view/view_nouveau_plancadre.php');
} else {
    $_SESSION['info_assign'] = 'Vous devez sélectionné un cours pour ajouter un plan-cadre';
    header('Location: ../view/view_nouveau_plancadre.php');
}
include_once "../model/queries.php";
if (isset($_GET['codecours']) && isset($_GET['versionplan'])) {
    // On récupère les données
    $No_PlanCadre = $_GET['versionplan'];
    $classCode = $_GET['codecours'];
    $state = "Validé";
    // On va chercher les informations du plan-cadre que l'on valide
    $result = fetchInformationPlanCadre($No_PlanCadre);
    // On va chercher l'id de la dernière validation du plan-cadre (s'il a déjà été validé, $noValidatePlanCadre contiendra un résultat)
    $noValidatePlanCadre = getPlanCadreIdByState($classCode, $state);
    // Afin de refaire l'assignation de la copie, on doit aller récupérer le numéro de compte de l'élaborateur
    $plannerId = getAssignationPlanner($classCode, "Élaboration");
    // S'il existe déjà une version validée du plan-cadre
    if (!empty($noValidatePlanCadre[0]["No_PlanCadre"])) {
        // Alors on le suprimme
        deleteOldVersionPlanCadre($noValidatePlanCadre[0]["No_PlanCadre"]);
    }
    // On change l'état de "Élaboration" à "Validé"
    updatePlanCadreState($No_PlanCadre, $state);
    // On enlève l'assignation de la version validée
    deleteAssignationPlanCadre($No_PlanCadre);
    // On créé une copie qui restera en mode "Élaboration"
    createPlanCadreCopy($classCode, $result[0]["Etat"], $result[0]["Presentation_Cours"], $result[0]["Objectifs_Integration"], $result[0]["Evaluation_Apprentissage"], $result[0]["Enonce_Competences"], $result[0]["Objectifs_Apprentissage"], $result[0]["Manuel_Obligatoire"], $result[0]["Recommandation"]);
    // On doit pouvoir recréer l'assignation pour cette copie en allant chercher l'id du plan-cadre
    // puis on fait l'assignation
    $copyPlanCadreId = getPlanCadreIdByState($classCode, "Élaboration");
    if (!empty($copyPlanCadreId[0]["No_PlanCadre"]) && !empty($plannerId[0]["Utilisateurs_NoUtilisateur"])) {
        assignUserPlanCadre($copyPlanCadreId[0]["No_PlanCadre"], $plannerId[0]["Utilisateurs_NoUtilisateur"]);
    }
    header('Location: ../view/view_search_plan_cadre.php');
}
// Si on a reçu les données d'un formulaire
if (isset($_POST['user_list_all'])) {
    $user = $_POST["user_list_all"];
    if (isset($_POST['class_list_all']) && !empty($_POST['class_list_all'])) {
        // on crée un plan-cadre en élaboration pour un cours qui n'a pas
        // déjà de plan-cadre en élaboration
        // puis on lui assigne l'utilisateur choisi
        $codecours = $_POST["class_list_all"];
        $etat = "Élaboration";
        $id = createPlanCadre($codecours, $etat);
        assignUserPlanCadre($id, $user);
        $_SESSION['info_assign'] = 'Assignation effectuée avec succès';
        header('Location: ../view/view_assign_user.php');
    } else {
        if (isset($_POST['plan_cadre_elaboration_list']) && !empty($_POST['plan_cadre_elaboration_list'])) {
            // on ajoute un élaborateur à un plan-cadre en élaboration
            if (empty(getPlanCadreUser($_POST['plan_cadre_elaboration_list'], $user))) {
                // Lorsqu'on choisi cette option, cela ne supprime pas l'asssignation précédente, mais rajoute un nouvel
                // élaborateur qui peut avoir accès à ce plan-cadre
                assignUserPlanCadre($_POST['plan_cadre_elaboration_list'], $user);
                $_SESSION['info_assign'] = 'Assignation effectuée avec succès';
            } else {
                $_SESSION['info_assign'] = 'Cet utilisateur est déjà assigné à ce plan-cadre';
            }
            header('Location: ../view/view_assign_user.php');
        } else {
            $_SESSION['info_assign'] = 'Vous devez sélectionné un cours ou un plan-cadre déjà existant';
            header('Location: ../view/view_assign_user.php');
        }
    }
}