예제 #1
0
/**
 * 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;
}
예제 #2
0
}
/*
	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();