/** * eval_ccpc_getNoFormData - Récupère les informations non contenues dans le formulaire au cours d'une évaluation * * @category : eval_ccpc_functions * @param array $evaluationData Array contenant les informations relatives à l'évaluation * @param array $erreur Array contenant la liste des erreurs rencontrées avant execution de la fonction * @return array Array contenant les informations non contenues dans le formulaire et les erreurs rencontrés lors de l'execution de la fonction * * @Author Ali Bellamine * * Contenu de l'array retourné :<br> * ['data'][identifiant du service où est affecté l'utilisateur]['date'] => (string) Date de remplissage de l'évaluation, sous forme de timestamp<br> * ['data'][identifiant du service où est affecté l'utilisateur]['promotion'] => (int) Identifiant de la promotion de l'utilisateur<br> * ['data'][identifiant du service où est affecté l'utilisateur]['debutStage'] => (string) Date de début de l'affectation de l'étudiant dans le service<br> * ['data'][identifiant du service où est affecté l'utilisateur]['finStage'] => (string) Date de fin de l'affectation de l'étudiant dans le service<br> * ['data'][identifiant du service où est affecté l'utilisateur]['service'] => (int) Identifiant du service<br> * ['data'][identifiant du service où est affecté l'utilisateur]['nbExternesPeriode'] => (int) Nombre d'étudiants actuellement enregistrés dans le service<br> * ['erreur'][identifiant du service où est affecté l'utilisateur][] => (array) Array contenant la liste des erreurs rencontrés * */ function eval_ccpc_getNoFormData($evaluationData, $erreur) { global $db; $data = array(); /** On remplit l'array $data['date'] **/ // Date $tempData['date'] = TimestampToDatetime(time()); // On récupère les dates à tester $evaluationSettings = eval_ccpc_getSettings($evaluationData['id']); // Promotion de l'utilisateur if ($userData = getUserData($_SESSION['id']) && isset($tempData['promotion'])) { $tempData['promotion'] = $userData['promotion']['id']; } else { if ($userData = getUserData($_SESSION['id']) && !isset($tempData['promotion'])) { $tempData['promotion'] = 'NULL'; } else { $tempErreur['LANG_ERROR_CCPC_NOPROMOTION'] = true; } } // Informations concernant le service et la durée du stage $sql = 'SELECT ae.service service, ae.dateDebut dateDebut, ae.dateFin dateFin FROM affectationexterne ae WHERE ae.dateDebut >= :dateDebutEval AND ae.dateFin >= :dateDebutEval AND ae.dateDebut <= :dateFinEval AND ae.dateFin <= :dateFinEval AND userId = :id'; $res = $db->prepare($sql); $res->execute(array('dateDebutEval' => TimestampToDatetime($evaluationSettings['dateDebut']), 'dateFinEval' => TimestampToDatetime($evaluationSettings['dateFin']), 'id' => $_SESSION['id'])); if ($res) { while ($res_f = $res->fetch()) { $data['data'][$res_f['service']]['debutStage'] = $res_f['dateDebut']; $data['data'][$res_f['service']]['finStage'] = $res_f['dateFin']; $data['data'][$res_f['service']]['service'] = $res_f['service']; $data['data'][$res_f['service']]['promotion'] = $tempData['promotion']; $data['data'][$res_f['service']]['date'] = $tempData['date']; $sql = 'SELECT count(*) nbExterne FROM affectationexterne WHERE (dateDebut >= :dateDebutUser AND dateDebut <= :dateFinUser ) AND (dateDebut <= :dateDebutUser AND dateFin >= :dateDebutUser)'; $res2 = $db->prepare($sql); $res2->execute(array('dateDebutUser' => $data['data'][$res_f['service']]['debutStage'], 'dateFinUser' => $data['data'][$res_f['service']]['finStage'])); if ($res2_f = $res2->fetch()) { $data['data'][$res_f['service']]['nbExternesPeriode'] = $res2_f['nbExterne']; } else { $data['erreur'][$res_f['service']]['LANG_ERROR_CCPC_NONBEXTERNE'] = true; } } } return $data; }
} /* Fichiers de fonctions */ require PLUGIN_PATH . 'core/fnDisplayEvaluationResult.php'; // Fonctions propres à l'affichage des résultats d'épreuves require PLUGIN_PATH . 'core/fnDisplayEvaluation.php'; // Fonctions propres à l'affichage des formulaires d'évaluation /* 0. Initialisation des variables */ $erreur = array(); /* 1. Récupération des données */ $evaluationSettingsData = eval_ccpc_getSettings($evaluationData['id']); /* 2. Traitement du formulaire */ if (isset($_POST) && count($_POST) > 0) { if (isset($_POST['dateDebut']) && isset($_POST['dateFin'])) { $TimeStampDateDebut = DatetimeToTimestamp(FrenchdateToDatetime($_POST['dateDebut'])); $TimeStampDateFin = DatetimeToTimestamp(FrenchdateToDatetime($_POST['dateFin'])); if ($TimeStampDateDebut <= $TimeStampDateFin) { // On convertit les dates $evaluationSettingsData['dateDebut'] = $TimeStampDateDebut; $evaluationSettingsData['dateFin'] = $TimeStampDateFin; // On essaie d'enregistrer les réglages if (eval_ccpc_setSettings($evaluationSettingsData)) { // On valide le réglage validateEvaluationSettings();