function importer() { global $page; global $session; global $url; global $message; $page['gabarit'] = "administration"; if (isset($_SESSION['role_user']) && droit_acces($session['importer'], $_SESSION['role_user'])) { $page['vue'] = "sessions/import_session.vue.php"; $page['colonne'] = "sessions/sidebar_session.vue.php"; $page['sessions'] = liste_session(); $page['lieu'] = liste_lieux(); $sessions = array(); $candidats = array(); if (isset($_POST['imp_session'])) { $sFile = $_FILES["fichier"]["tmp_name"]; if ($sFile != "") { $lines = file($sFile); // initialisation du tableau de sauvegarde des dates de passages $iDateTest = -1; // initialisation du nombre de candidat $iIdentity = -1; $sErrorDescription = ""; $bError = 0; foreach ($lines as $iLine => $line) { // s�paration des informations de chaque ligne (s�parateur : point-virgule) $aIdentity = explode(";", $line); //on verifie la session if ($iLine == 0) { if (count($aIdentity) == 2) { $datesession = trim($aIdentity[0]); $participant = trim($aIdentity[1]); if ($participant != count($lines) - 1) { $bError++; $sErrorDescription .= "Le fichier ne contient pas le nombre de lignes attendu.<br/>"; } else { $datasession = explode(";", $lines[1]); $sSession = substr(trim($datasession[4]), 0, 5); $dateok = '20' . substr($datesession, 4, 6) . '-' . substr($datesession, 2, 2) . '-' . substr($datesession, 0, 2); $rang = substr($sSession, 3, 2); if (session_existe($dateok, $rang, $_POST['id_lieu'])) { $bError++; $sErrorDescription .= "La session existe deja.<br/>"; } } } else { $bError++; $sErrorDescription .= str_replace('{ligne}', $iLine, $message['erreur_ligne']) . "<br/>"; } } // on ne traite qu'� partir de la seconde ligne if ($iLine > 0) { // 1. RECHERCHE DES INFORMATION DU CANDIDAT ********************************************************************************** // format de fichier 'Liste avant accueil' if (count($aIdentity) == 10) { $sNid = trim($aIdentity[0]); // r�cup�ration du NID. $sName = trim($aIdentity[1]); // r�cup�ration du nom. //$sName = formatName($sName); $sFirstName = trim($aIdentity[2]); // r�cup�ration du pr�nom. //$sFirstName = formatFirstName($sFirstName); $sNoticeType = trim($aIdentity[3]); // r�cup�ration du motif (Type de Convocation). $sSession = substr(trim($aIdentity[4]), 0, 5); // r�cup�ration de l'information de session. $sSex = trim($aIdentity[6]); // r�cup�ration du sexe. $sBirthday = trim($aIdentity[8]); // r�cup�ration de la date de naissance. $sDiploma = trim($aIdentity[9]); // r�cup�ration du dernier dipl�me obtenu. } else { $bError++; $sErrorDescription .= str_replace('{ligne}', $iLine, $message['erreur_ligne']) . "<br/>"; } // V�rification des informations if (count($aIdentity) == 10) { // v�rification du format du nom de famille if (!preg_match("([a-zA-Z�-�\\ \\-\\']*)", $sName)) { $bError++; $sErrorDescription .= "Le champ 'Nom' " . $sName . " de la ligne " . $iLine . " est incorrect.<br/>"; } elseif ($sName == "") { $bError++; $sErrorDescription .= "Le champ 'Nom' de la ligne " . $iLine . " est obligatoire.<br/>"; } else { // v�rification du format du pr�nom if (!preg_match("([a-zA-Z�-�\\ \\-\\']*)", $sFirstName)) { $bError++; $sErrorDescription .= "Le champ 'Prénom' de la ligne " . $iLine . " est incorrect.<br/>"; } elseif ($sFirstName == "") { $bError++; $sErrorDescription .= "Le champ 'Prénom' de la ligne " . $iLine . " est obligatoire.<br/>"; } else { // v�rification du format du NID if (!preg_match("([0-9]{10})", $sNid)) { $bError++; $sErrorDescription .= "Le champ 'NID' de la ligne " . $iLine . " est incorrect.<br/>"; } elseif (get_candidat_by_id($sNid) != null) { $bError++; $sErrorDescription .= "Le candidat avec le 'NID' " . $sNid . " de la ligne " . $iLine . " existe déjà.<br/>"; } else { // v�rification du format du sexe if (!preg_match("([1-2]*)", $sSex)) { $bError++; $sErrorDescription .= "Le champ 'Sexe' de la ligne " . $iLine . " est incorrect.<br/>"; } elseif ($sSex == "") { $bError++; $sErrorDescription .= "Le champ 'Sexe' de la ligne " . $iLine . " est obligatoire.<br/>"; } else { // v�rification du format de la session if (!preg_match("([0-9]{5})", $sSession)) { $bError++; $sErrorDescription .= "Le champ 'Session' de la ligne " . $iLine . " est incorrect.<br/>"; } else { // v�rification du format de la date de naissance if (strlen($sBirthday) != 0) { if (strlen($sBirthday) == 10) { $sDay = intval(substr($sBirthday, 0, 2)); $sMonth = intval(substr($sBirthday, 3, 2)); $sYear = intval(substr($sBirthday, 6, 4)); if (!checkdate(intval($sMonth), intval($sDay), intval($sYear))) { $sErrorDescription .= "Le champ 'Date de naissance' de la ligne " . $iLine . " est incorrect (date non valide).<br/>"; $bError++; } else { $dtDate = date_create($sYear . "-" . $sMonth . "-" . $sDay); $sBirthday = date_format($dtDate, "d/m/Y"); } } else { $sErrorDescription .= "Le champ 'Date de naissance' de la ligne " . $iLine . " est incorrect.<br/>"; $bError++; } } else { $bError++; $sErrorDescription .= "Le champ 'Date de naissance' est obligatoire.<br/>"; } if (strlen($sNoticeType) == 0) { $sNoticeType = "G�n�rique"; } if (strlen($sDiploma) == 0) { $sDiploma = "Non renseign�"; } } } } } } } /**/ } } if ($bError > 0) { $page['message'] = $sErrorDescription; } else { $row = 1; $sessions['lieu'] = $_POST['id_lieu']; if (($handle = fopen($_FILES['fichier']['tmp_name'], "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ';')) !== FALSE) { $num = count($data); for ($c = 0; $c < $num; $c++) { if ($row == 1) { $sessions['date_session'] = $data[0]; $sessions['nb_candidats_max'] = $data[1]; } else { $candidats[$row]['nid_candidat'] = $data[0]; $candidats[$row]['nom_candidat'] = $data[1]; $candidats[$row]['prenom_candidat'] = $data[2]; $candidats[$row]['motif'] = $data[3]; $candidats[$row]['genre'] = $data[6]; $candidats[$row]['date_naissance'] = $data[8]; $candidats[$row]['diplome'] = $data[9]; $sessions['rang'] = substr($sSession, 3, 2); } } $row++; } fclose($handle); /*creation session + creation candidat candidature inscription*/ $dateok = '20' . substr($sessions['date_session'], 4, 6) . '-' . substr($sessions['date_session'], 2, 2) . '-' . substr($sessions['date_session'], 0, 2); $id_session = creation_session($dateok, $sessions['lieu'], '1', $sessions['nb_candidats_max']); foreach ($candidats as $c) { $daten = explode('/', $c['date_naissance']); $datenok = $daten[2] . '-' . $daten[1] . '-' . $daten[0]; $diplome = get_diplome_by_label($c['diplome']); if (!isset($diplome[0]['id_diplome'])) { $diplome = 1; } else { $diplome = $diplome[0]['id_diplome']; } $motif = get_motif_by_label($c['motif']); $motif = $motif[0]['id_motif']; $id_candidat = get_candidat_by_id($c['nid_candidat']); if ($id_candidat == null) { $destination = "./photo_candidat/" . $c['nid_candidat'] . '.jpg'; //creation_candidat($nid, $nid_temp, $naissance, $nom, $nom2, $prenom, $prenom2, $lieu, $secu, $genre, $diplome, $fictif, $photo, $cp_naissance, $adresse, $complement, $ville, $cp, $mail, $cirfa, $francophone) $id_candidat = creation_candidat($c['nid_candidat'], '', $datenok, '', $c['nom_candidat'], $c['prenom_candidat'], '', '', '', $c['genre'], $diplome, 'off', $destination, '', '', '', '', '', '', 1, 1); } else { $id_candidat = $id_candidat[0]['id_candidat']; } $id_candidature = creation_candidature($id_candidat, $motif); creation_motif_candidature($id_candidature, $motif); creation_inscription($id_candidature, $id_session); header("Location: index.php?controleur=session&tache=visualiser_session&id=" . $id_session . "&mesg=ok&rang=" . $sessions['rang']); } } else { $page['message'] = $message['ouverture_impossible']; } } } else { $page['message'] = $message['ouverture_impossible']; } } } else { $page['vue'] = "erreur_droit.vue.php"; } }
function importer_candidat() { global $page; global $administration; global $url; global $message; $page['gabarit'] = "administration"; if (isset($_SESSION['role_user']) && droit_acces($administration['importer_candidat'], $_SESSION['role_user'])) { /*Importation csv */ $page['vue'] = "participants/import_candidat.vue.php"; $page['colonne'] = "participants/sidebar_candidat.vue.php"; $page['candidats'] = liste_candidat(); $page['fichier_exemple'] = "exemple_import_participant.csv"; if (isset($_POST['imp_candidat'])) { $sFile = $_FILES["fichier"]["tmp_name"]; if ($sFile != "") { $lines = file($sFile); // initialisation du tableau de sauvegarde des dates de passages $iDateTest = -1; // initialisation du nombre de candidat $iIdentity = -1; $sErrorDescription = ""; $bError = 0; if (sizeof($lines) == 1) { $bError++; $sErrorDescription .= "Fichier vide<br/>"; } foreach ($lines as $iLine => $line) { // séparation des informations de chaque ligne (séparateur : point-virgule) $aIdentity = explode(";", $line); // on ne traite qu'à partir de la seconde ligne if ($iLine > 0) { // 1. RECHERCHE DES INFORMATION DU CANDIDAT ********************************************************************************** // format de fichier 'Liste avant accueil' if (count($aIdentity) == 17) { $sNid = trim($aIdentity[0]); // récupération du NID. $sNidTemp = trim($aIdentity[1]); // récupération du NID. $sBirthday = trim($aIdentity[2]); // récupération de la date de naissance. $sNameNaissance = trim($aIdentity[3]); // récupération du nom. $sName = trim($aIdentity[4]); // récupération du nom. $sFirstName = trim($aIdentity[5]); // récupération du prénom. $sFirstName2 = trim($aIdentity[6]); // récupération du prénom. $sLieuNaissance = trim($aIdentity[7]); // récupération du motif (Type de Convocation). $sNumSecu = trim($aIdentity[8]); // récupération de l'information de session. $sSex = trim($aIdentity[9]); // récupération du sexe. $sDiploma = trim($aIdentity[10]); // récupération du dernier diplôme obtenu. $sCpLieuNaissance = trim($aIdentity[11]); $sAdresse = trim($aIdentity[12]); $sComplementAdresse = trim($aIdentity[13]); $sVille = trim($aIdentity[14]); $sCp = trim($aIdentity[15]); $sMail = trim($aIdentity[16]); } else { $bError++; $sErrorDescription .= str_replace('{ligne}', $iLine, $message['erreur_ligne']) . "<br/>"; } // Vérification des informations if (count($aIdentity) == 17) { // vérification du format du nom de famille if (!preg_match("([a-zA-Zà-ü\\ \\-\\']*)", $sName)) { $bError++; $sErrorDescription .= "Le champ 'Nom' de la ligne " . $iLine . " est incorrect.<br/>"; } elseif ($sName == "") { $bError++; $sErrorDescription .= "Le champ 'Nom' de la ligne " . $iLine . " est obligatoire.<br/>"; } else { // vérification du format du prénom if (!preg_match("([a-zA-Zà-ü\\ \\-\\']*)", $sFirstName)) { $bError++; $sErrorDescription .= "Le champ 'Prénom' de la ligne " . $iLine . " est incorrect.<br/>"; } elseif ($sFirstName == "") { $bError++; $sErrorDescription .= "Le champ 'Prénom' de la ligne " . $iLine . " est obligatoire.<br/>"; } else { // vérification du format du NID if (!preg_match("([0-9]{10})", $sNid)) { $bError++; $sErrorDescription .= "Le champ 'NID' de la ligne " . $iLine . " est incorrect.<br/>"; } elseif (get_candidat_by_id($sNid) != null) { $bError++; $sErrorDescription .= "Le candidat avec le 'NID' " . $sNid . " de la ligne " . $iLine . " existe déjà.<br/>"; } else { // vérification du format du sexe if (!preg_match("([1-2]*)", $sSex)) { $bError++; $sErrorDescription .= "Le champ 'Sexe' de la ligne " . $iLine . " est incorrect.<br/>"; } elseif ($sSex == "") { $bError++; $sErrorDescription .= "Le champ 'Sexe' de la ligne " . $iLine . " est obligatoire.<br/>"; } else { // vérification du format du numero de secu if (!preg_match("([0-9]{15})", $sNumSecu)) { $bError++; $sErrorDescription .= "Le champ 'Numero secu' de la ligne " . $iLine . " est incorrect.<br/>"; } else { // vérification du format de la date de naissance if (strlen($sBirthday) != 0) { if (strlen($sBirthday) == 10) { $sDay = intval(substr($sBirthday, 0, 2)); $sMonth = intval(substr($sBirthday, 3, 2)); $sYear = intval(substr($sBirthday, 6, 4)); if (!checkdate(intval($sMonth), intval($sDay), intval($sYear))) { $sErrorDescription .= "Le champ 'Date de naissance' de la ligne " . $iLine . " est incorrect (date non valide).<br/>"; $bError++; } else { $dtDate = date_create($sYear . "-" . $sMonth . "-" . $sDay); $sBirthday = date_format($dtDate, "d/m/Y"); } } else { $sErrorDescription .= "Le champ 'Date de naissance' de la ligne " . $iLine . " est incorrect.<br/>"; $bError++; } } else { $bError++; $sErrorDescription .= "Le champ 'Date de naissance' est obligatoire.<br/>"; } if (strlen($sDiploma) == 0) { $sDiploma = "Non renseigné"; } } } } } } } /**/ } } if ($bError > 0) { $page['message'] = $sErrorDescription; } else { $row = 1; if (($handle = fopen($_FILES['fichier']['tmp_name'], "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ';')) !== FALSE) { $num = count($data); for ($c = 1; $c < $num; $c++) { $candidats[$row]['nid_candidat'] = $data[0]; $candidats[$row]['nom_candidat'] = $data[1]; $candidats[$row]['prenom_candidat'] = $data[2]; $candidats[$row]['motif'] = $data[3]; $candidats[$row]['genre'] = $data[6]; $candidats[$row]['date_naissance'] = $data[8]; $candidats[$row]['diplome'] = $data[9]; //$sessions['rang']=substr($sSession, 3, 2); $candidats[$row]['nid_candidat'] = $data[0]; // récupération du NID. $candidats[$row]['nid_temp_candidat'] = $data[1]; // récupération du NID. $candidats[$row]['date_naissance_candidat'] = $data[2]; // récupération de la date de naissance. $candidats[$row]['nom_naissance_candidat'] = $data[3]; // récupération du nom. $candidats[$row]['nom_usage_candidat'] = $data[4]; // récupération du nom. $candidats[$row]['prenom_candidat'] = $data[5]; // récupération du prénom. $candidats[$row]['prenom_2_candidat'] = $data[6]; // récupération du prénom. $candidats[$row]['lieu_naissance_candidat'] = $data[7]; // récupération du motif (Type de Convocation). $candidats[$row]['secu_candidat'] = $data[8]; // récupération de l'information de session. $candidats[$row]['genre'] = $data[9]; // récupération du sexe. $candidats[$row]['diplome'] = $data[10]; // récupération du dernier diplôme obtenu. $candidats[$row]['cp_lieu_naissance_candidat'] = $data[11]; $candidats[$row]['adresse_candidat'] = $data[12]; $candidats[$row]['complement_adresse_candidat'] = $data[13]; $candidats[$row]['ville_candidat'] = $data[14]; $candidats[$row]['cp_candidat'] = $data[15]; $candidats[$row]['mail_candidat'] = $data[16]; } $row++; } fclose($handle); /*creation session + creation candidat candidature inscription*/ foreach ($candidats as $c) { $daten = explode('/', $c['date_naissance']); $datenok = $daten[2] . '-' . $daten[1] . '-' . $daten[0]; $diplome = get_diplome_by_label($c['diplome']); $diplome = $diplome[0]['id_diplome']; $id_candidat = get_candidat_by_id($c['nid_candidat']); if ($id_candidat == null) { $destination = "./photo_candidat/" . $c['nid_candidat'] . '.jpg'; //creation_candidat($nid,$nid_temp, $naissance, $nom,$nom2, $prenom, $prenom2, $lieu,$secu, $genre ,$diplome,$fictif,$photo,$cp_naissance,$adresse,$complement,$ville,$cp,$mail){ $id_candidat = creation_candidat($c['nid_candidat'], '', $datenok, $c['nom_naissance_candidat'], $c['nom_candidat'], $c['prenom_candidat'], $c['prenom_2_candidat'], $c['lieu_naissance_candidat'], $c['secu_candidat'], $c['genre'], $diplome, 'off', $destination, $c['cp_naissance_candidat'], $c['adresse_candidat'], $c['complement_adresse_candidat'], $c['ville_candidat'], $c['cp_candidat'], $c['mail_candidat']); } else { $id_candidat = $id_candidat[0]['id_candidat']; } header("Location: index.php?controleur=administration&tache=home_candidat"); } } else { $page['message'] = $message['ouverture_impossible']; } } } else { $page['message'] = $message['ouverture_impossible']; } } } else { $page['vue'] = "erreur_droit.vue.php"; } }