Exemple #1
0
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&eacute;nom' de la ligne " . $iLine . " est incorrect.<br/>";
                                } elseif ($sFirstName == "") {
                                    $bError++;
                                    $sErrorDescription .= "Le champ 'Pr&eacute;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&eacutej&agrave;.<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&eacute;nom' de la ligne " . $iLine . " est incorrect.<br/>";
                                } elseif ($sFirstName == "") {
                                    $bError++;
                                    $sErrorDescription .= "Le champ 'Pr&eacute;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&eacutej&agrave;.<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";
    }
}