コード例 #1
0
ファイル: fnMail.php プロジェクト: alibell/PAS
/**
 * getMailCampagnList - Retourne la liste des campagnes d'envoi de mail
 *
 * @category mailFunction
 * @param string $order Paramètre selon lequel sont classés les résultats ('id', 'nom', 'date' ou 'remplissage')
 * @param boolean $desc Ordre selon lequel on classe les résultats (TRUE : decroissant, FALSE : croissant)
 * @return array Array contenant la liste des campagne de mails enregistrés
 *
 * @Author Ali Bellamine
 *
 * Contenu de l'array retourné :<br>
 *	[id de la campagne de mail]['id'] => (int) Identifiant du certificat<br>
 *	[id de la campagne de mail]['nom'] => (string) Nom de la campagne de mail<br>
 *	[id de la campagne de mail]['codecampagne'] => (string) Identifiant unique de la campagne<br>
 *	[id de la campagne de mail]['statut'] => (int) 0 : incomplète | 1 : complète<br>
 *	[id de la campagne de mail]['date'] => (timestamp) Date de la campagne de mail<br>
 *	[id de la campagne de mail]['nb']['0'] => (int) Nombre de mails non envoyés<br>
 *	[id de la campagne de mail]['nb']['1'] => (int) Nombre de mails envoyés
 *
 */
function getMailCampagnList($order = 'nom', $desc = false)
{
    global $db;
    $allowedOrder = array('id', 'nom', 'date', 'remplissage');
    if (in_array($order, $allowedOrder)) {
        $orderSql = $order;
    } else {
        $orderSql = 'nom';
    }
    $sql = 'SELECT m.id id, m.nom nom, m.date date, m.codeCampagne codeCampagne, (SELECT count(*) FROM mail WHERE codeCampagne = m.codeCampagne AND statut = 1 LIMIT 1) nbEnvoye, (SELECT count(*) FROM mail WHERE codeCampagne = m.codeCampagne AND statut = 0 LIMIT 1) nbNonEnvoye, (SELECT count(*) FROM mail WHERE codeCampagne = m.codeCampagne AND statut = 1 LIMIT 1) / ((SELECT count(*) FROM mail WHERE codeCampagne = m.codeCampagne AND statut = 1 LIMIT 1) + (SELECT count(*) FROM mail WHERE codeCampagne = m.codeCampagne AND statut = 0 LIMIT 1)) remplissage FROM mail m GROUP BY m.codeCampagne ORDER BY ' . $orderSql . ' ';
    if ($desc) {
        $sql .= ' DESC';
    }
    $res = $db->query($sql);
    $mail = array();
    while ($res_f = $res->fetch()) {
        $mail[$res_f['id']]['id'] = $res_f['id'];
        $mail[$res_f['id']]['nom'] = $res_f['nom'];
        $mail[$res_f['id']]['codeCampagne'] = $res_f['codeCampagne'];
        $mail[$res_f['id']]['date'] = DatetimeToTimestamp($res_f['date']);
        if ($res_f['remplissage'] < 1) {
            $mail[$res_f['id']]['statut'] = 0;
        } else {
            $mail[$res_f['id']]['statut'] = 1;
        }
        $mail[$res_f['id']]['nb'][0] = $res_f['nbNonEnvoye'];
        $mail[$res_f['id']]['nb'][1] = $res_f['nbEnvoye'];
    }
    return $mail;
}
コード例 #2
0
ファイル: fnDisplayEvaluation.php プロジェクト: Galinijay/PAS
/**
 * eval_ccpc_getSettings - Retourne les réglages de l'évaluation sélectionnée
 *
 * @category : eval_ccpc_functions
 * @param int $id int ID de l'évaluation dont on souhaite récupérés les réglages
 * @return array Array contenant les réglages de l'évaluation
 * 
 * Contenu de l'array retourné :<br>
 *	['id'] => (int) Identifiant de l'évaluation<br>
 *	['dateDebut'] => (timestamp) Marge inférieure de la période à évaluer<br>
 *	['dateFin'] => (timestamp) Marge supérieure de la période à évaluer<br>
 *
 * @Author Ali Bellamine
 *
 */
function eval_ccpc_getSettings($id)
{
    initTable();
    // S'assure de l'existence de la table dans la BDD
    global $db;
    $settings = array();
    if (count(checkEvaluation($id, array())) == 0) {
        $settings['id'] = $id;
        // On récupère les données de la base de donnée
        $sql = 'SELECT s.dateDebut dateDebut, s.dateFin dateFin FROM eval_ccpc_settings s WHERE s.id_evaluation = ? LIMIT 1';
        $res = $db->prepare($sql);
        $res->execute(array($id));
        $res_f = $res->fetch();
        // On enregistre les dates
        if (isset($res_f['dateDebut']) && isset($res_f['dateFin']) && is_numeric(DatetimeToTimestamp($res_f['dateFin'])) && is_numeric(DatetimeToTimestamp($res_f['dateDebut'])) && DatetimeToTimestamp($res_f['dateDebut']) <= DatetimeToTimestamp($res_f['dateFin'])) {
            $settings['dateDebut'] = DatetimeToTimestamp($res_f['dateDebut']);
            $settings['dateFin'] = DatetimeToTimestamp($res_f['dateFin']);
        } else {
            $settings['dateDebut'] = FALSE;
            $settings['dateFin'] = FALSE;
        }
    }
    return $settings;
}
コード例 #3
0
ファイル: fnStage.php プロジェクト: Galinijay/PAS
/**
 * getAffectationData - Retourne les informations relatives à l'affectation d'un étudiant dans un service
 *
 * @category stageFunction
 * @param int $id Identifiant du lien d'affectation de l'étudiant dans la base de donnée
 * @return array Array contenant les informations relatives à l'affectation de l'étudiant dans le service
 *
 * @Author Ali Bellamine
 *
 * Contenu de l'array retourné :<br>
 *	['id'] => (int) Identifiant du lien d'affectation de l'étudiant dans la base de donnée<br>
 *	['service']['id'] => (int) Identifiant du service dans lequel l'étudiant est affecté<br>
 *	['user']['id'] => (int) Identifiant de l'utilisateur<br>
 *	['date']['debut'] => (string)  Date du début de la période d'affectation de l'étudiant dans le service sous forme de Timestamp<br>
 *	['date']['fin'] => (string)  Date du fin de la période d'affectation de l'étudiant dans le service sous forme de Timestamp
 *
 */
function getAffectationData($id)
{
    /*
    	Initialisation des variables
    */
    global $db;
    // Permet l'accès à la BDD
    $erreur = array();
    /*
    	On vérifie l'existance de l'affectation
    */
    $erreur = checkAffectation($id, $erreur);
    if (count($erreur) == 0) {
        // Récupérations des données de l'hopital
        $sql = 'SELECT ae.id id, ae.userId userId, ae.service serviceId, ae.dateDebut dateDebut, ae.dateFin dateFin
					  FROM affectationexterne ae
					  WHERE ae.id = ?
					  LIMIT 1';
        $res = $db->prepare($sql);
        $res->execute(array($id));
        $affectation = array();
        // On construit l'array contenant les données de l'hopital
        if ($res_f = $res->fetch()) {
            $affectation['id'] = $res_f['id'];
            $affectation['service']['id'] = $res_f['serviceId'];
            $affectation['user']['id'] = $res_f['userId'];
            $affectation['date']['debut'] = DatetimeToTimestamp($res_f['dateDebut']);
            $affectation['date']['fin'] = DatetimeToTimestamp($res_f['dateFin']);
        }
        return $affectation;
    } else {
        return false;
    }
}
コード例 #4
0
ファイル: fnEvaluation.php プロジェクト: Galinijay/PAS
/**
 * getEvalData - Retourne les informations relative à une campagne d'évaluation
 *
 * @category : evaluationFunction
 * @param int $id Identifiant de la campagne d'évaluation
 * @return array Array contenant les données relative à la campagne d'évaluation
 *
 * @Author Ali Bellamine
 *
 *	 Contenu de l'array retourné :<br>
 *		['id'] => (int) identifiant de la campagne d'évaluation<br>
 *		['nom'] => (string) nom de la campagne d'évaluation<br>
 *		['date'][debut'] => (string) Date de début de la campagne d'évaluation sous forme de Timestamp<br>
 *		['date'][fin'] => (string) Date de fin de la campagne d'évaluation sous forme de Timestamp<br>
 *		['type'][id'] => (int) Identifiant du module de la campagne d'évaluation<br>
 *		['type'][nom'] => (string) Nom du module de la campagne d'évaluation<br>
 *		['type'][dossier'] => (string) Dossier d'installation du module de la campagne d'évaluation<br>
 *		['type'][data'] => (array) Contient les données relatives au type de module d'évaluation, voir {@link getEvalTypeData()}<br>
 *		['type'][statut'] => (int) Si 0, le module d'évaluation est actuellement inactif, si 1 il est actuellement actif<br>
 *		['users'][id de l'utilisateur] => (array) Contient les informations relatives à l'utilisateur : nom, prenom, promotion, nbEtudiant, voir {@link: getUserData()}<br>
 *		['orderedUsers'][] => (array) Même informations que ci dessus, mais celles-ci sont classé par ordre de résultats de la requête SQL et non plus par id (évaluations non remplis en premier)<br>
 *		['orderedUsers']['nb'] => (int) Nombre total d'utilisateurs<br>
 *		['nb']['remplis'] => (int) nombre d'évaluations remplis<br>
 *		['nb']['total'] => (int) nombre total d'utilisateurs
 */
function getEvalData($id)
{
    /*
    	Initialisation des variables
    */
    global $db;
    // Permet l'accès à la BDD
    $erreur = array();
    $evaluation = array();
    /*
    	On vérifie l'existance de l'évaluation
    */
    $erreur = checkEvaluation($id, $erreur);
    if (count($erreur) == 0) {
        /*
        	Récupération des informations sur l'évaluation
        */
        $sql = 'SELECT e.id evaluationId, e.nom evaluationNom, e.dateDebut evaluationDateDebut, e.dateFin evaluationDateFin, t.id evaluationTypeId, t.nom evaluationTypeNom, t.nomDossier evaluationTypeDossier, t.actif evaluationTypeStatut
						FROM evaluation e
						INNER JOIN typeevaluation t ON t.id = e.type
						WHERE e.id = ?
						LIMIT 1';
        $res = $db->prepare($sql);
        $res->execute(array($id));
        while ($res_f = $res->fetch()) {
            $evaluation['id'] = $res_f['evaluationId'];
            $evaluation['nom'] = $res_f['evaluationNom'];
            $evaluation['date']['debut'] = DatetimeToTimestamp($res_f['evaluationDateDebut']);
            $evaluation['date']['fin'] = DatetimeToTimestamp($res_f['evaluationDateFin']);
            $evaluation['type']['id'] = $res_f['evaluationTypeId'];
            $evaluation['type']['nom'] = $res_f['evaluationTypeNom'];
            $evaluation['type']['dossier'] = $res_f['evaluationTypeDossier'];
            $evaluation['type']['data'] = getEvalTypeData($res_f['evaluationTypeId']);
            $evaluation['type']['statut'] = $res_f['evaluationTypeStatut'];
        }
        /*
        	Récupèration de la liste des personne assignés à l'évaluation
        */
        $sql = 'SELECT er.id idRegister, er.evaluationStatut statut, er.date date, er.userId userId, u.nom userNom, u.prenom userPrenom, u.mail userMail, p.id promotionId, p.nom promotionNom, u.nbEtudiant nbEtudiant
						FROM evaluationregister er
						INNER JOIN user u ON er.userId = u.id
						LEFT JOIN promotion p ON p.id = u.promotion
						WHERE er.evaluationId = ?
						ORDER BY er.evaluationStatut ASC, u.nom ASC, u.prenom ASC';
        $res = $db->prepare($sql);
        if ($res->execute(array($evaluation['id']))) {
            $nbEval = 0;
            $evaluation['orderedUsers'] = array();
            while ($res_f = $res->fetch()) {
                if ($res_f['statut'] == 1) {
                    $nbEval++;
                }
                $evaluation['users'][$res_f['userId']]['id'] = $res_f['userId'];
                $evaluation['users'][$res_f['userId']]['registerId'] = $res_f['idRegister'];
                $evaluation['users'][$res_f['userId']]['statut'] = $res_f['statut'];
                $evaluation['users'][$res_f['userId']]['mail'] = array();
                if (isSerialized($res_f['userMail']) && ($tempMail = unserialize($res_f['userMail']))) {
                    $firstLoop = TRUE;
                    foreach ($tempMail as $email) {
                        $evaluation['users'][$res_f['userId']]['mail'][] = $email;
                    }
                }
                $evaluation['users'][$res_f['userId']]['nom'] = $res_f['userNom'];
                $evaluation['users'][$res_f['userId']]['prenom'] = $res_f['userPrenom'];
                if (isset($res_f['promotionNom'])) {
                    $evaluation['users'][$res_f['userId']]['promotion']['id'] = $res_f['promotionId'];
                    $evaluation['users'][$res_f['userId']]['promotion']['nom'] = $res_f['promotionNom'];
                }
                $evaluation['users'][$res_f['userId']]['nbEtudiant'] = $res_f['nbEtudiant'];
                $evaluation['orderedUsers'][] = $evaluation['users'][$res_f['userId']];
                // Même liste mais ordonée
            }
            if (isset($evaluation['users'])) {
                $evaluation['nb']['total'] = count($evaluation['users']);
            } else {
                $evaluation['nb']['total'] = 0;
            }
            $evaluation['nb']['remplis'] = $nbEval;
            $evaluation['orderedUsers']['nb'] = $evaluation['nb'];
        }
        return $evaluation;
    } else {
        return false;
    }
}
コード例 #5
0
ファイル: affectations.php プロジェクト: Galinijay/PAS
                 $erreur = checkService($value, $erreur);
             }
         } else {
             if ($key == 'dateDebut' || $key == 'dateFin') {
                 // On convertit les dates si elle sont valides
                 $temp = explode('/', $value);
                 if (isset($value) && count($temp) > 3 && checkdate($temp[1], $temp[0], $temp[2])) {
                     $convertedDate = DatetimeToTimestamp(FrenchdateToDatetime($value));
                     // Date au format timestamp
                     $validDate = TRUE;
                     // Si dateDebut : on refuse le cas où la date est supérieure à la marge sup
                     if ($key == 'dateDebut' && (isset($_POST['dateFin']) && $convertedDate >= DatetimeToTimestamp(FrenchdateToDatetime($_POST['dateFin'])) || $action2 == 'edit' && $convertedDate >= $affectationData['service']['date']['fin'])) {
                         $erreur[13] = TRUE;
                         $validDate = FALSE;
                     } else {
                         if ($key == 'dateFin' && (isset($_POST['dateDebut']) && $convertedDate <= DatetimeToTimestamp(FrenchdateToDatetime($_POST['dateDebut'])) || $action2 == 'edit' && $convertedDate <= $affectationData['service']['date']['debut'])) {
                             $erreur[13] = TRUE;
                             $validDate = FALSE;
                         }
                     }
                     if ($validDate) {
                         $sqlData[$key] = TimestampToDatetime($convertedDate);
                     }
                 }
             }
         }
     }
 }
 /*
 	On enregistre les données dans la BDD
 */
コード例 #6
0
ファイル: fnChecker.php プロジェクト: Galinijay/PAS
/**
 * checkAffectation - Vérifie la validité des données d'affectation d'un étudiant et leurs concordance avant de les ajouter dans la base de donnée
 *
 * @category : checkFunction
 * @param int $etudiant Identifiant de l'étudiant
 * @param int $service Identifiant du service
 * @param timestamp $dateDebut Date du début de l'affectation
 * @param timestamp $dateFin Date de fin de l'affectation
 * @param array $erreur Array contenant la liste des erreurs rencontrées avant execution de la fonction
 * @return array Array contenant la liste des erreurs rencontrées après execution de la fonction
 *
 * @Author Ali Bellamine
 */
function checkAffectationInsertData($etudiant, $service, $dateDebut, $dateFin, $erreur)
{
    $serviceCheck = FALSE;
    // On récupère les données sur l'étudiant si il existe
    if (count(checkUser($etudiant, array())) == 0) {
        $userData = getUserData($etudiant);
    } else {
        $erreur = checkUser($etudiant, $erreur);
    }
    // On récupère les infos sur le service
    if (count(checkService($service, array())) == 0) {
        $serviceCheck = TRUE;
    } else {
        $erreur = checkService($service, $erreur);
    }
    // Si le service et l'étudiant sont disponibles, on vérifie que l'étudiant n'est pas déjà inscrit dans le service
    if (isset($userData) && $serviceCheck) {
        if (isset($userData['service'][$service])) {
            $erreur[10] = TRUE;
        }
    }
    // On vérifie les dates
    if (isset($dateDebut) && (preg_match('#^([0-9]{2})([/-])([0-9]{2})\\2([0-9]{4})$#', $dateDebut, $m) == 1 && checkdate($m[3], $m[1], $m[4]))) {
        $dateDebutTimestamp = DatetimeToTimestamp($m[4] . '-' . $m[3] . '-' . $m[1]);
    } else {
        $erreur[11] = TRUE;
    }
    if (isset($dateFin) && (preg_match('#^([0-9]{2})([/-])([0-9]{2})\\2([0-9]{4})$#', $dateFin, $m) == 1 && checkdate($m[3], $m[1], $m[4]))) {
        $dateFinTimestamp = DatetimeToTimestamp($m[4] . '-' . $m[3] . '-' . $m[1]);
    } else {
        $erreur[12] = TRUE;
    }
    if (isset($dateDebutTimestamp) && isset($dateFinTimestamp) && $dateDebutTimestamp > $dateFinTimestamp) {
        $erreur[13] = TRUE;
    }
    return $erreur;
}
コード例 #7
0
ファイル: configEvaluation.php プロジェクト: Galinijay/PAS
// 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();
            } else {
                $erreur['LANG_ERROR_CCPC_UNKNOWN'] = TRUE;
            }
        } else {
            $erreur['LANG_ERROR_CCPC_INVALIDDATE'] = TRUE;
        }
    } else {
コード例 #8
0
ファイル: bug.php プロジェクト: Galinijay/PAS
    echo LANG_ADMIN_BUG_MANAGER_TABLE_TITLE_DESCRIPTION;
    ?>
</th>
				<th><?php 
    echo LANG_ADMIN_BUG_MANAGER_TABLE_TITLE_STATUT;
    ?>
</th>
				<th></th>
			</tr>
			<?php 
    if (isset($bugList) & count($bugList) > 0) {
        foreach ($bugList as $bugAnnee => $bug) {
            ?>
						<tr class = "bodyTR">
							<td><?php 
            echo date('d/m/Y', DatetimeToTimestamp($bug['date']));
            ?>
</td>
							<td><?php 
            echo $bug['description'];
            ?>
</td>
							<td style = "color: <?php 
            if ($bug['state'] == 1) {
                echo 'green';
            } else {
                echo 'red';
            }
            ?>
;"><?php 
            echo constant('LANG_ADMIN_BUG_MANAGER_TABLE_TITLE_STATUT_VALUE_' . $bug['state']);
コード例 #9
0
ファイル: fnAdmin.php プロジェクト: alibell/PAS
/**
 * eval_ccpc_getFilterDetails - Retourne les informations relatives à un filtre à partir de son identifiant
 *
 * @category : eval_ccpc_functions
 * @param int $id Identifiant du filtre
 * @return array Array contenant les informations relatives au filtre
 * 
 * @Author Ali Bellamine
 *
 * Contenu de l'array retourné :<br>
 *	['id'] => (int) Identifiant du filtre<br>
 *	['nom'] => (string) Nom du filtre<br>
 *	['query'] => (string) Requête relative au filtre<br>
 *	['promotion'] => (int) 1 si le filtre prend en compte la promotion de l'utilisateur, 0 si il ne le prend pas en compte<br>
 *	['mail']['titre'] => (string) Objet des mails automatiques envoyés à partir du filtre<br>
 *	['mail']['objet'] => (string) Contenu des mails automatiques envoyés à partir du filtre<br>
 *	['icone'] (optionnel) => (string) Chemin vers l'icone du filtre
 *	['detected'][timestamp de la borne supérieure de l'intervalle temporel de la période détectée][timestamp de la borne inférieure de l'intervalle temporel de la période détectée][id du service][] (optionnel) => (array) informations relatives au service détecté
 *
 */
function eval_ccpc_getFilterDetails($id)
{
    if (count(eval_ccpc_checkFiltre($id, array())) == 0) {
        global $db;
        $filtre = array();
        /**
        						Informations relative aux réglages du filtre
        					**/
        $sql = 'SELECT id filtreId,nom filtreNom, query filtreQuery, promotion promotion, mail_titre filtreMailTitre, mail_objet filtreMailObjet, icone icone FROM eval_ccpc_filtres WHERE id = ? LIMIT 1';
        $res = $db->prepare($sql);
        $res->execute(array($id));
        if ($res_f = $res->fetch()) {
            $filtre['id'] = $res_f['filtreId'];
            $filtre['nom'] = $res_f['filtreNom'];
            $filtre['query'] = $res_f['filtreQuery'];
            $filtre['promotion'] = $res_f['promotion'];
            $filtre['mail']['titre'] = $res_f['filtreMailTitre'];
            $filtre['mail']['objet'] = $res_f['filtreMailObjet'];
            if (isset($res_f['icone'])) {
                $filtre['icone'] = $res_f['icone'];
            } else {
                $filtre['icone'] = '';
            }
        }
        /**
        						Liste des stages détectés par le filtre
        					**/
        $sql = 'SELECT id, id_service serviceId, debutStage dateDebut, finStage dateFin, promotion promotion FROM eval_ccpc_filtres_detected WHERE id_filtre = ?';
        $res = $db->prepare($sql);
        $res->execute(array($filtre['id']));
        // De la forme : $filtre['detected'][timestamp supérieur de l'intervale][timestamp inférieur de l'intervale][id du service]
        while ($res_f = $res->fetch()) {
            $filtre['detected'][DatetimeToTimestamp($res_f['dateFin'])][DatetimeToTimestamp($res_f['dateDebut'])][$res_f['serviceId']]['id'] = $res_f['id'];
            $filtre['detected'][DatetimeToTimestamp($res_f['dateFin'])][DatetimeToTimestamp($res_f['dateDebut'])][$res_f['serviceId']]['filtre']['id'] = $filtre['id'];
            $filtre['detected'][DatetimeToTimestamp($res_f['dateFin'])][DatetimeToTimestamp($res_f['dateDebut'])][$res_f['serviceId']]['service']['id'] = $res_f['serviceId'];
            $filtre['detected'][DatetimeToTimestamp($res_f['dateFin'])][DatetimeToTimestamp($res_f['dateDebut'])][$res_f['serviceId']]['date']['debut'] = DatetimeToTimestamp($res_f['dateDebut']);
            $filtre['detected'][DatetimeToTimestamp($res_f['dateFin'])][DatetimeToTimestamp($res_f['dateDebut'])][$res_f['serviceId']]['date']['fin'] = DatetimeToTimestamp($res_f['dateFin']);
            $filtre['detected'][DatetimeToTimestamp($res_f['dateFin'])][DatetimeToTimestamp($res_f['dateDebut'])][$res_f['serviceId']]['promotion'] = $res_f['promotion'];
        }
        // On trie les services par ordre décroissant
        if (isset($filtre['detected'])) {
            krsort($filtre['detected']);
            foreach ($filtre['detected'] as $key => $value) {
                krsort($filtre['detected'][$key]);
            }
        }
        return $filtre;
    } else {
        return FALSE;
    }
}
コード例 #10
0
ファイル: fnUser.php プロジェクト: Galinijay/PAS
/**
 * getUserData - Retourne les informations relatives à un utilisateur
 *
 * @category userFunction
 * @param int $id Identifiant de l'utilisateur
 * @return array Array contenant les informations relatives à l'utilisateur
 *
 * @Author Ali Bellamine
 *
 * Contenu de l'array retourné :<br>
 *	['id'] => (int) Identifiant de l'utilisateur<br>
 *	['nom'] => (string) Nom de l'utilisateur<br>
 *	['prenom'] => (string) Prénom de l'utilisateur<br>
 *	['nbEtudiant'] => (string) Numéro d'étudiant de l'utilisateur<br>
 *	['mail'] => (array) Array contenant les adresses email de l'utilisateur<br>
 *	['rang'] => (int) Rang de l'utilisateur, de 0 (invité) à 4 (super administrateur)<br>
 *	['promotion']['id'] (optionnel) => (int) Identifiant de la promotion de l'utilisateur<br>
 *	['promotion']['nom'] (optionnel) => (string) Nom de la promotion de l'utilisateur<br>
 *	['service'][identifiant de l'affectation de l'utilisateur][] (optionnel) => (array) Informations relatives au service, voir {@link getServiceInfo()}<br>
 *	['service'][identifiant de l'affectation de l'utilisateur]['idAffectation] (optionnel) => (int) Identifiant de l'affectation de l'utilisateur<br>
 *	['service'][identifiant de l'affectation de l'utilisateur]['dateDebut] (optionnel) => (string) Date de début de la période d'affectation sous forme de Timestamp<br>
 *	['service'][identifiant de l'affectation de l'utilisateur]['dateFin] (optionnel) => (string) Date de fin de la période d'affectation sous forme de Timestamp<br>
 *	['service'][identifiant de l'affectation de l'utilisateur]['currentAffectation] (optionnel) => (int) 0 si l'utilisateur n'est actuellement pas affecté dans le service, 1 si il y est actuellement affecté<br>
 *	['chef'][identifiant du service][] (optionnel) => (array) Array contenant les informations relatives au service dont l'utilisateur est chef
 *
 */
function getUserData($id)
{
    /*
    	Initialisation des variables
    */
    global $db;
    // Permet l'accès à la BDD
    $erreur = array();
    $user = array();
    /*
    	On vérifie l'existance de l'utilisateur
    */
    $erreur = checkUser($id, $erreur);
    if (count($erreur) == 0) {
        // Récupérations des données utilisateur
        $sql = 'SELECT u.id userId, u.nom userNom, u.prenom userPrenom, u.nbEtudiant nbEtudiant, u.rang userRang, u.mail userMail, p.id promotionId, p.nom promotionNom
					  FROM user u
					  LEFT JOIN promotion p ON u.promotion = p.id
					  WHERE u.id = ?
					  LIMIT 1';
        $res = $db->prepare($sql);
        $res->execute(array($id));
        // On construit l'array contenant les données utilisateur
        if ($res_f = $res->fetch()) {
            $user['id'] = $res_f['userId'];
            $user['nom'] = $res_f['userNom'];
            $user['prenom'] = $res_f['userPrenom'];
            if (isSerialized($res_f['userMail'])) {
                $user['mail'] = unserialize($res_f['userMail']);
            } else {
                $user['mail'] = array($res_f['userMail']);
            }
            if (isset($res_f['nbEtudiant'])) {
                $user['nbEtudiant'] = $res_f['nbEtudiant'];
            } else {
                $user['nbEtudiant'] = '';
            }
            $user['rang'] = $res_f['userRang'];
            if (isset($res_f['promotionId'])) {
                $user['promotion']['nom'] = $res_f['promotionNom'];
                $user['promotion']['id'] = $res_f['promotionId'];
            }
            // Si il s'agit d'un étudiant
            // On récupère les affectations dans les services
            $sql = 'SELECT s.id serviceId, ae.dateDebut dateDebut, ae.dateFin dateFin, ae.id idAffectation
							  FROM affectationexterne ae
							  INNER JOIN service s ON ae.service = s.id
							  WHERE ae.userId = ?
							  ORDER BY ae.dateFin DESC';
            $res = $db->prepare($sql);
            $res->execute(array($id));
            while ($res_f = $res->fetch()) {
                $user['service'][$res_f['idAffectation']] = getServiceInfo($res_f['serviceId']);
                $user['service'][$res_f['idAffectation']]['idAffectation'] = $res_f['idAffectation'];
                $user['service'][$res_f['idAffectation']]['dateDebut'] = DatetimeToTimestamp($res_f['dateDebut']);
                $user['service'][$res_f['idAffectation']]['dateFin'] = DatetimeToTimestamp($res_f['dateFin']);
                if ($user['service'][$res_f['idAffectation']]['dateDebut'] < time() and $user['service'][$res_f['idAffectation']]['dateFin'] > time()) {
                    $user['service'][$res_f['idAffectation']]['currentAffectation'] = 1;
                } else {
                    $user['service'][$res_f['idAffectation']]['currentAffectation'] = 0;
                }
            }
            // Si il s'agit d'un chef
            // On récupère le service dont il est chef
            $sql = 'SELECT s.id serviceId
							  FROM service s
							  WHERE s.chef = ?';
            $res = $db->prepare($sql);
            $res->execute(array($id));
            while ($res_f = $res->fetch()) {
                $user['chef'][$res_f['serviceId']] = getServiceInfo($res_f['serviceId']);
            }
        }
        return $user;
    } else {
        return false;
    }
}
コード例 #11
0
ファイル: adminMail.php プロジェクト: alibell/PAS
            ?>
					<tr class = "bodyTR" style = "text-align: center;">
						<td><?php 
            echo date('d/m/Y', $campaign['evaluationData']['date']['debut']);
            ?>
</td>
						<td><?php 
            echo date('d/m/Y', $campaign['evaluationData']['date']['fin']);
            ?>
</td>
						<td><?php 
            echo $campaign['evaluationData']['promotion']['nom'];
            ?>
</td>
						<td><?php 
            echo date('d/m/Y', DatetimeToTimestamp($campaign['date']));
            ?>
</td>
						<td><?php 
            if ($campaign['statut'] == 1) {
                echo 'Terminé';
            } else {
                echo 'En cours';
            }
            ?>
<br />(<span style = "color: green;"><?php 
            echo $campaign['nb'][1];
            ?>
</span> / <?php 
            echo $campaign['nb'][0] + $campaign['nb'][1];
            ?>
コード例 #12
0
ファイル: liste.php プロジェクト: alibell/PAS
         $erreur[17] = true;
     }
 } else {
     if ($key == 'dateDebut' || $key == 'dateFin') {
         // On convertit les dates si elle sont valides
         $temp = explode('/', $value);
         if (isset($value) && count($temp) >= 3 && checkdate($temp[1], $temp[0], $temp[2])) {
             $convertedDate = DatetimeToTimestamp(FrenchdateToDatetime($value)) + 86399;
             // Date au format timestamp
             $validDate = TRUE;
             // Si dateDebut : on refuse le cas où la date est supérieure à la marge sup
             if ($key == 'dateDebut' && (isset($_POST['dateFin']) && $convertedDate >= DatetimeToTimestamp(FrenchdateToDatetime($_POST['dateFin'])) || $action == 'edit' && $convertedDate >= $evaluation['date']['fin'])) {
                 $erreur[18] = TRUE;
                 $validDate = FALSE;
             } else {
                 if ($key == 'dateFin' && (isset($_POST['dateDebut']) && $convertedDate <= DatetimeToTimestamp(FrenchdateToDatetime($_POST['dateDebut'])) || $action == 'edit' && $convertedDate <= $evaluation['date']['debut'])) {
                     $erreur[18] = TRUE;
                     $validDate = FALSE;
                 }
             }
             if ($validDate) {
                 $sqlData[$key] = TimestampToDatetime($convertedDate);
             }
         }
     } else {
         if ($key == 'type') {
             if (count(checkEvaluationType($value, array())) == 0) {
                 $sqlData[$key] = $value;
             } else {
                 $erreur = checkEvaluationType($value, $erreur);
             }
コード例 #13
0
/**
 * getEvaluationCCPCPartialData - Récupère les données d'évaluation de stage, récupération partielles des données
 *
 * @category : eval_ccpc_functions
 * @param int $id Identifiant du service pour lequel on récupère les données
 * @param int|boolean $promotion Identifiant de la promotion pour laquelle on récupère les données, FALSE si elles sont récupérés indifférement de la promotion
 * @param string $dateMin Borne inférieure de la période pour laquelle on récupère les données d'évaluation, sous forme de Timestamp
 * @param string $dateMax Borne supérieure de la période pour laquelle on récupère les données d'évaluation, sous forme de Timestamp
 * @return array Array contenant les résultats d'évaluation pour un service durant une période donnée et pour une promotion donnée
 * 
 * @Author Ali Bellamine
 *
 * Contenu de l'array retourné :<br>
 *	['service'][] => (array) Array contenant les données relatives au service (voir getServiceInfo())<br>
 *	['service']['nbDate'] => (int) Nombre de dates d'évaluation différentes<br>
 *	['service']['date']['min'] => (string) Borne inférieure de l'intervalle sur lequel on a récupéré les évaluations<br>
 *	['service']['date']['max'] => (string) Borne supérieure de l'intervalle sur lequel on a récupéré les évaluations<br>
 *	['service']['nbEvaluation'] => (int) Nombre total d'évaluations<br>
 *	['service']['promotion'][id de la promotion][] => (int) Promotions représentés dans les résultats d'évaluations<br>
 * ['service']['hide'] => (int) 1 si le service est masqué de la liste pour les utilisateurs, 0 sinon
 *   	['donnees'] => (array) Contient les données d'évaluation individuelles<br>
 * 	['donnees'][identifiant de l'évaluation]['infos']['date'] => (string) Date de l'évaluation<br>
 * 	['donnees'][identifiant de l'évaluation]['infos']['dateDebut'] => (string) Date de début de la période de stage évaluée<br>
 * 	['donnees'][identifiant de l'évaluation]['infos']['dateFin'] => (string) Date de fin de la période de stage évaluée<br>
 * 	['donnees'][identifiant de l'évaluation]['infos']['promotion']['id'] => (int) Identifiant de la promotion de l'utilisateur ayant remplis l'évaluation<br>
 * 	['donnees'][identifiant de l'évaluation]['infos']['promotion']['nom'] => (string) Nom de la promotion de l'utilisateur ayant remplis l'évaluation<br>
 * 	['donnees'][identifiant de l'évaluation][categorie de la question][nom du champs dans la BDD] => (int) Valeur de la réponse à la question (n'apparaissent que les questions ayant une valeur numérique en réponse)<br>
 * 	['donnees'][categorie de la question]['moyenne'] => (int) Moyenne des réponses aux questions de la catégorie<br>
 * 	['donnees'][categorie de la question]['sommeCoefficients'] => (int) Somme des coefficients des questions de la catégorie<br>
 * 	['donnees'][categorie de la question][nom du champs dans la BDD]['moyenne'] => (int) Moyenne des réponses aux questions du champs<br>
 * 	['donnees']['nb'] => (int) Nombre total d'évaluations
 *
 */
function getEvaluationCCPCPartialData($id, $promotion, $dateMin, $dateMax)
{
    global $db;
    global $bypasslimit;
    /**
    			Vérification de l'id et des dates
    		**/
    if (count(checkService($id, array())) > 0 || !is_numeric($dateMin) || !is_numeric($dateMax)) {
        return FALSE;
    }
    /**
    			Récupération des toutes les évaluations  de type select concernant le service dans la base de donnée
    		**/
    $listEvaluationItems = array();
    $listCat = array();
    if (is_file(PLUGIN_PATH . 'formulaire.xml')) {
        if ($form = simplexml_load_file(PLUGIN_PATH . 'formulaire.xml')) {
            foreach ($form->categorie as $categorie) {
                foreach ($categorie->input as $input) {
                    if ($input['type'] == 'select') {
                        $listCat[(string) $categorie['nom']] = (string) $categorie['nom'];
                        // liste des catégories disponible
                        $listEvaluationItems[(string) $input['nomBDD']]['type'] = (string) $categorie['nom'];
                        // Liste des items disponibles
                        $listEvaluationItems[(string) $input['nomBDD']]['nb'] = 0;
                        // Nombre de fois où l'item a été évalué
                        if (isset($input['coefficient']) && $input['coefficient'] > 0) {
                            $listEvaluationItems[(string) $input['nomBDD']]['coefficient'] = (string) $input['coefficient'];
                        } else {
                            $listEvaluationItems[(string) $input['nomBDD']]['coefficient'] = 0;
                        }
                        $max = 0;
                        foreach ($input->option as $option) {
                            if ((int) $option['value'] > $max) {
                                $max = (int) $option['value'];
                            }
                        }
                        $listEvaluationItems[(string) $input['nomBDD']]['max'] = $max;
                        // On enregistre la valeur max que peux obtenir un item
                    }
                }
            }
        }
    }
    /*
    	Récupération des résultats dans la BDD
    */
    $sqlData = array('id' => $id);
    $sqlNbDate = 'SELECT COUNT(DISTINCT e.date) nombreDate FROM eval_ccpc_resultats e INNER JOIN service s ON e.service = s.id WHERE e.service = :id ';
    // Permet de calculer le nombre de date d'évaluations différentes dispo
    $sqlNbStudent = 'SELECT COUNT(DISTINCT u.id) nombreEtudiant FROM affectationexterne ae INNER JOIN user u ON u.id = ae.userId WHERE ae.service = :id ';
    // Permet de calculer le nombre d'étudiants en stage sur la période considérée
    $sql = 'SELECT e.hide hide, e.id evaluationId, e.service serviceId, e.date evaluationDate, e.debutStage dateDebut, e.finStage dateFin, p.nom promotionNom, e.promotion promotionId';
    foreach ($listEvaluationItems as $key => $value) {
        $sql .= ', e.' . $key . ' ' . $key . ' ';
    }
    $sql .= 'FROM eval_ccpc_resultats e
					 INNER JOIN promotion p ON e.promotion = p.id
					 INNER JOIN service s ON e.service = s.id
					 WHERE e.service = :id ';
    if ($dateMin != 0 && $dateMax != 0) {
        $sql .= 'AND e.debutStage >= :dateMin AND e.finStage <= :dateMax ';
        $sqlNbDate .= 'AND e.debutStage >= :dateMin AND e.finStage <= :dateMax ';
        $sqlNbStudent .= 'AND ae.dateDebut >= :dateMin AND ae.dateFin <= :dateMax ';
        $sqlData['dateMin'] = TimestampToDatetime($dateMin);
        $sqlData['dateMax'] = TimestampToDatetime($dateMax);
    }
    if (isset($promotion) && is_numeric($promotion) && count(checkPromotion($promotion, array())) == 0) {
        $sql .= 'AND e.promotion = :promotion ';
        $sqlNbDate .= 'AND e.promotion = :promotion ';
        $sqlNbStudent .= 'AND u.promotion = :promotion ';
        $sqlData['promotion'] = $promotion;
    }
    // Si il s'agit d'un étudiant, on affiche que les évaluations vielles de + de 30 jours
    if ($_SESSION['rang'] <= 1 && $bypasslimit == FALSE) {
        if (defined('CONFIG_EVAL_CCPC_DELAIDISPOEVAL') && is_numeric(constant('CONFIG_EVAL_CCPC_DELAIDISPOEVAL')) && constant('CONFIG_EVAL_CCPC_DELAIDISPOEVAL') >= 0) {
            $nbJourAllowedDate = CONFIG_EVAL_CCPC_DELAIDISPOEVAL;
        } else {
            $nbJourAllowedDate = 30;
        }
        $allowedDate = TimestampToDatetime(time() - $nbJourAllowedDate * 24 * 3600);
        $sql .= ' AND e.date <= "' . $allowedDate . '" ';
        $sqlNbDate .= ' AND e.date <= "' . $allowedDate . '" ';
    }
    /*
    	Ne pas afficher les évaluations des autres services aux chef de service
    */
    if ($_SESSION['rang'] == 2 && defined('CONFIG_EVAL_CCPC_RESTRICTEVALUATIONACCESSSERVICE') && CONFIG_EVAL_CCPC_RESTRICTEVALUATIONACCESSSERVICE == TRUE && $bypasslimit == FALSE) {
        $sql .= ' AND s.chef = "' . $_SESSION['id'] . '"';
        $sqlNbDate .= ' AND s.chef = "' . $_SESSION['id'] . '"';
    }
    $sql .= 'ORDER BY e.date DESC';
    $res = $db->prepare($sql);
    $res->execute($sqlData);
    $res_fall = $res->fetchAll();
    $res2 = $db->prepare($sqlNbDate);
    $res2->execute($sqlData);
    $res2_f = $res2->fetch();
    $res3 = $db->prepare($sqlNbStudent);
    $res3->execute($sqlData);
    $res3_f = $res3->fetch();
    /*
    	Array contenant les résultats
    */
    $serviceEvaluation = array();
    // Chemin du fichier temporaire
    $hash = md5(serialize($res_fall));
    $filePath = PLUGIN_PATH . 'cache/' . $hash . '.txt';
    // Si le hash existe déjà : on récupère les calculs stockés dans le cache
    if (is_file($filePath)) {
        $file = fopen($filePath, 'r');
        $serviceEvaluation = unserialize(fread($file, filesize($filePath)));
        fclose($file);
        return $serviceEvaluation;
    } else {
        $serviceEvaluation['service'] = getServiceInfo($id);
        $serviceEvaluation['service']['nbDate'] = $res2_f['nombreDate'];
        $serviceEvaluation['service']['date']['min'] = $dateMin;
        $serviceEvaluation['service']['date']['max'] = $dateMax;
        // On ajoute le nombre total d'étudiants pendant la période de stage considéré
        $serviceEvaluation['service']['nbEvaluation'] = $res3_f['nombreEtudiant'];
        foreach ($res_fall as $res_f) {
            $serviceEvaluation['service']['hide'] = $res_f['hide'];
            /*
            	On enregistre les données de l'évaluation
            */
            $serviceEvaluation['donnees'][$res_f['evaluationId']]['infos']['date'] = DatetimeToTimestamp($res_f['evaluationDate']);
            $serviceEvaluation['donnees'][$res_f['evaluationId']]['infos']['dateDebut'] = DatetimeToTimestamp($res_f['dateDebut']);
            $serviceEvaluation['donnees'][$res_f['evaluationId']]['infos']['dateFin'] = DatetimeToTimestamp($res_f['dateFin']);
            $serviceEvaluation['donnees'][$res_f['evaluationId']]['infos']['promotion']['id'] = $res_f['promotionId'];
            $serviceEvaluation['donnees'][$res_f['evaluationId']]['infos']['promotion']['nom'] = $res_f['promotionNom'];
            // On stocke la liste des promotions rencontrées dans $serviceEvaluation['service']['promotion']
            if (!isset($serviceEvaluation['service']['promotion'][$res_f['promotionId']])) {
                $serviceEvaluation['service']['promotion'][$res_f['promotionId']]['id'] = $res_f['promotionId'];
                $serviceEvaluation['service']['promotion'][$res_f['promotionId']]['nom'] = $res_f['promotionNom'];
                $serviceEvaluation['service']['promotion'][$res_f['promotionId']]['nb'] = 1;
            } else {
                $serviceEvaluation['service']['promotion'][$res_f['promotionId']]['nb']++;
                // On compte le nombre de fois que chaque promotion apparait
            }
            /*
            	On récupère les données d'évaluation
            */
            foreach ($res_f as $key => $value) {
                if (isset($listEvaluationItems[$key])) {
                    // On incrémente pour le calcul de moyenne
                    if (isset($serviceEvaluation[$listEvaluationItems[$key]['type']][$key]['moyenne'])) {
                        $serviceEvaluation[$listEvaluationItems[$key]['type']][$key]['moyenne'] = $serviceEvaluation[$listEvaluationItems[$key]['type']][$key]['moyenne'] + $value;
                    } else {
                        $serviceEvaluation[$listEvaluationItems[$key]['type']][$key]['moyenne'] = $value;
                    }
                    // On dénombre le nombre d'évaluation pour l'item (permettant de calculer la moyenne)
                    $listEvaluationItems[$key]['nb']++;
                    // On enregistre la valeur
                    $serviceEvaluation['donnees'][$res_f['evaluationId']][$listEvaluationItems[$key]['type']][$key] = $value;
                }
            }
        }
        /*
        	On calcule les moyennes
        		D'abord des item
        		Puis des catégories rapporté sur 5
        */
        if (isset($serviceEvaluation['donnees'])) {
            $serviceEvaluation['nb'] = count($serviceEvaluation['donnees']);
            foreach ($listEvaluationItems as $key => $value) {
                if (isset($serviceEvaluation[$value['type']][$key]['moyenne'])) {
                    if (!isset($serviceEvaluation[$value['type']]['sommeCoefficients'])) {
                        $serviceEvaluation[$value['type']]['sommeCoefficients'] = 0;
                        // Somme des coefficients permettant le calcul de la note
                    }
                    if ($listEvaluationItems[$key]['nb'] > 0) {
                        $serviceEvaluation[$value['type']][$key]['moyenne'] = round(5 * $serviceEvaluation[$value['type']][$key]['moyenne'] / ($listEvaluationItems[$key]['nb'] * $listEvaluationItems[$key]['max']), 2);
                    } else {
                        $serviceEvaluation[$value['type']][$key]['moyenne'] = 0;
                    }
                    if (isset($serviceEvaluation[$listEvaluationItems[$key]['type']]['moyenne'])) {
                        $serviceEvaluation[$listEvaluationItems[$key]['type']]['moyenne'] = $serviceEvaluation[$listEvaluationItems[$key]['type']]['moyenne'] + round($serviceEvaluation[$value['type']][$key]['moyenne'] * $listEvaluationItems[$key]['coefficient'], 1);
                    } else {
                        $serviceEvaluation[$listEvaluationItems[$key]['type']]['moyenne'] = round($serviceEvaluation[$value['type']][$key]['moyenne'] * $listEvaluationItems[$key]['coefficient'], 1);
                    }
                    $serviceEvaluation[$value['type']]['sommeCoefficients'] = $serviceEvaluation[$value['type']]['sommeCoefficients'] + $listEvaluationItems[$key]['coefficient'];
                }
            }
            foreach ($listCat as $value) {
                if (isset($serviceEvaluation[$value]['moyenne'])) {
                    if ($serviceEvaluation[$value]['sommeCoefficients'] > 0) {
                        $serviceEvaluation[$value]['moyenne'] = round($serviceEvaluation[$value]['moyenne'] / $serviceEvaluation[$value]['sommeCoefficients'], 2);
                    } else {
                        $serviceEvaluation[$value]['moyenne'] = 0;
                    }
                }
            }
            // On enregistre le calcul dans le cache
            $file = fopen($filePath, 'w+');
            fputs($file, serialize($serviceEvaluation));
            fclose($file);
            return $serviceEvaluation;
        }
    }
}
コード例 #14
0
ファイル: listEvaluationData.php プロジェクト: alibell/PAS
	Récupération des données d'évaluations des stages sélectionnés
*/
$evaluationData = array();
$res = $db->prepare($sqlContent);
$res->execute($preparedValue);
while ($res_f = $res->fetch()) {
    $evaluationData[$res_f['serviceId']] = getEvaluationCCPCPartialData($res_f['serviceId'], $filtrePromotion, $filtres['dateMin'], $filtres['dateMax']);
}
/*
	Récupération de la liste des périodes de stage correspondant
*/
$fastSelectData = array();
$res = $db->prepare($fastSelectSql);
$res->execute($preparedValue);
while ($res_f = $res->fetch()) {
    $fastSelectData[] = array('dateDebut' => DatetimeToTimestamp($res_f['debutStage']), 'dateFin' => DatetimeToTimestamp($res_f['finStage']), 'promotion' => array('id' => $res_f['promotionId'], 'nom' => $res_f['promotionNom']));
}
/*
	Exportation de la liste des services
*/
if (isset($_GET['download']) && $_GET['download'] == 'csv') {
    $exportList = array();
    // Liste des services dont on veux exporter les données csv
    $sqlExport = $coreSqlExport . $whereSqlContent . $groupbySqlContent;
    $res = $db->prepare($sqlExport);
    $res->execute($preparedValue);
    while ($res_f = $res->fetch()) {
        $exportList[] = $res_f[0];
    }
    // On crée le CSV
    if (isset($exportList) && count($exportList) > 0) {
コード例 #15
0
ファイル: listEvaluationData.php プロジェクト: Galinijay/PAS
         }
     }
 }
 /*
 	Date
 */
 if (!isset($filtres['dateMin']) || isset($filtres['dateMin']) && DatetimeToTimestamp($res_f['dateDebut']) < $filtres['dateMin']) {
     if (isset($_GET['FILTER']) && count($_GET['FILTER']) > 0) {
         $filtres['dateMin'] = DatetimeToTimestamp($res_f['dateDebut']);
     } else {
         $filtres['dateMin'] = time() - 31536000;
     }
 }
 if (!isset($filtres['dateMax']) || isset($filtres['dateMax']) && DatetimeToTimestamp($res_f['dateFin']) > $filtres['dateMax']) {
     if (isset($_GET['FILTER']) && count($_GET['FILTER']) > 0) {
         $filtres['dateMax'] = DatetimeToTimestamp($res_f['dateFin']);
     } else {
         $filtres['dateMax'] = time();
     }
 }
 /*
 	Hopitaux
 */
 if (!isset($filtres['hopital'][$res_f['hopitalId']]['nom'])) {
     $filtres['hopital'][$res_f['hopitalId']]['id'] = $res_f['hopitalId'];
     $filtres['hopital'][$res_f['hopitalId']]['nom'] = $res_f['hopitalNom'];
 }
 if (!isset($filtres['hopital'][$res_f['hopitalId']]['nb'])) {
     $filtres['hopital'][$res_f['hopitalId']]['nb'] = 1;
 } else {
     $filtres['hopital'][$res_f['hopitalId']]['nb']++;
コード例 #16
0
ファイル: admin.php プロジェクト: alibell/PAS
    foreach ($listeServices as $service) {
        $listePromotion = array();
        $listeDate = array();
        // On détermine la liste des promotions représentées dans le service
        $sql = 'SELECT DISTINCT promotion FROM `eval_ccpc_resultats` WHERE service = ?';
        $res = $db->prepare($sql);
        $res->execute(array($service['id']));
        while ($res_f = $res->fetch()) {
            $listePromotion[] = $res_f[0];
        }
        // On détermine les couples de dates à tester
        $sql = 'SELECT DISTINCT debutStage, finStage FROM `eval_ccpc_resultats` WHERE service = ? AND debutStage >= ? AND finStage <= ?';
        $res = $db->prepare($sql);
        $res->execute(array($service['id'], TimestampToDatetime($DateMin), TimestampToDatetime($DateMax)));
        while ($res_f = $res->fetch()) {
            $listeDate[] = array('DateMin' => DatetimeToTimestamp($res_f['debutStage']), 'DateMax' => DatetimeToTimestamp($res_f['finStage']));
        }
        // On peux lancer le scan du service
        foreach ($listeDate as $IntervalleDates) {
            foreach ($listePromotion as $promotionId) {
                eval_ccpc_applyFilter($service['id'], $promotionId, $IntervalleDates['DateMin'], $IntervalleDates['DateMax']);
            }
        }
    }
    $tempGET = $_GET;
    unset($tempGET['action']);
    header('Location: ' . ROOT . CURRENT_FILE . '?' . http_build_query($tempGET));
}
// Ajout et edition des filtres
if (isset($_POST) && count($_POST) > 0) {
    $postData = array();