public function testPreremplirResponsables()
    {
        $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu');
        $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour(SAMEDI_s40j6)->getFirst();
        $traitement = $saisie->getAbsenceEleveTraitements()->getFirst();
        $notification = $traitement->getAbsenceEleveNotifications()->getFirst();
        $this->assertEquals($notification->getEmail(), null);
        $this->assertEquals($notification->getResponsableEleves()->count(), 0);
        $result = $notification->preremplirResponsables();
        $this->assertTrue($result);
        $this->assertEquals($notification->getEmail(), 'mail@test');
        $this->assertEquals($notification->getResponsableEleves()->count(), 2);


        //on va changer le responsables 2 de florence
        foreach ($florence_eleve->getResponsableInformations() as $resp_info) {
            if ($resp_info->getNiveauResponsabilite() == '2') {
                $resp = $resp_info->getResponsableEleve();
                $resp->setAdresseId(null);
                $resp->save();
            }
        }
        $empty_col= new PropelObjectCollection();
        $notification->setResponsableEleves($empty_col);
        $this->assertEquals($notification->getResponsableEleves()->count(), 0);
        $result = $notification->preremplirResponsables();
        $this->assertTrue($result);
        $this->assertEquals($notification->getEmail(), 'mail@test');
        $this->assertEquals($notification->getResponsableEleves()->count(), 1);

        //on va rajouter un responsable 1
        $responsable = new ResponsableEleve();
        $responsable->setCivilite('M.');
        $responsable->setNom('Michu');
        $responsable->setMel('mail@test');
        $responsable->setPrenom('Mere');
        $responsable->setResponsableEleveId('id 5');
        $responsable->save();
        $responsable_info = new ResponsableInformation();
        $responsable_info->setEleve($florence_eleve);
        $responsable_info->setNiveauResponsabilite(1);
        $responsable_info->setResponsableEleve($responsable);
        $responsable_info->save();
        $empty_col= new PropelObjectCollection();
        $notification->setResponsableEleves($empty_col);
        $this->assertEquals($notification->getResponsableEleves()->count(), 0);
        $result = $notification->preremplirResponsables();
        $this->assertFalse($result);
        $this->assertEquals($notification->getEmail(), 'mail@test');
        $this->assertEquals($notification->getResponsableEleves()->count(), 0);
    }
Example #2
0
    public static function populate($con = null)
    {
        if($con === null) {
            $con = Propel::getConnection();
        }

        $con->beginTransaction();

        // Add utilisateur records
        // ---------------------

        $lebesgue_prof = new UtilisateurProfessionnel();
        $lebesgue_prof->setLogin('Lebesgue');
        $lebesgue_prof->setStatut('professeur');
        $lebesgue_prof->setPreferenceValeur('glace_parfum','chocolat');
        $lebesgue_prof->save($con);

        $newton_prof = new UtilisateurProfessionnel();
        $newton_prof->setLogin('Newton');
        $newton_prof->setStatut('professeur');
        $newton_prof->save($con);

        $curie_prof = new UtilisateurProfessionnel();
        $curie_prof->setLogin('Curie');
        $curie_prof->setStatut('professeur');
        $curie_prof->save($con);

        $dolto_cpe = new UtilisateurProfessionnel();
        $dolto_cpe->setLogin('Dolto');
        $dolto_cpe->setStatut('cpe');
        $dolto_cpe->save($con);

        $aubert_scola = new UtilisateurProfessionnel();
        $aubert_scola->setLogin('Aubert');
        $aubert_scola->setStatut('scolarite');
        $aubert_scola->save($con);

        $florence_eleve = new Eleve();
        $florence_eleve->setLogin('Florence Michu');
        $florence_eleve->setEleId('00112233');
        $florence_eleve->save();
        $adresse = new Adresse();
        $adresse->setAdr1('13 rue du paradis');
        $adresse->setCommune('Montendre');
        $adresse->setCp('01001');
        $adresse->save();
        $adresse->setId('add id 1');
        $responsable = new ResponsableEleve();
        $responsable->setCivilite('M.');
        $responsable->setNom('Michu');
        $responsable->setMel('mail@test');
        $responsable->setPrenom('Mere');
        $responsable->setResponsableEleveId('id 1');
        $responsable->setAdresse($adresse);
        $responsable->save();
        $responsable_info = new ResponsableInformation();
        $responsable_info->setEleve($florence_eleve);
        $responsable_info->setNiveauResponsabilite(1);
        $responsable_info->setResponsableEleve($responsable);
        $responsable_info->save();
        $responsable2 = new ResponsableEleve();
        $responsable2->setCivilite('Mme.');
        $responsable2->setNom('Michudame');
        $responsable2->setMel('mail@test');
        $responsable2->setPrenom('Mere');
        $responsable2->setResponsableEleveId('id 2');
        $responsable2->setAdresse($adresse);
        $responsable2->save();
        $responsable_info2 = new ResponsableInformation();
        $responsable_info2->setEleve($florence_eleve);
        $responsable_info2->setNiveauResponsabilite(2);
        $responsable_info2->setResponsableEleve($responsable2);
        $responsable_info2->save();
        $dolto_cpe->addEleve($florence_eleve);
        $dolto_cpe->save();
        $newton_prof->addEleve($florence_eleve);
        $newton_prof->save();

        $nicolas_eleve = new Eleve();
        $nicolas_eleve->setLogin('Nicolas Dupont');
        $nicolas_eleve->setEleId('00112234');
        $nicolas_eleve->save();

        $michel_eleve = new Eleve();
        $michel_eleve->setLogin('Michel Martin');
        $michel_eleve->setEleId('00112235');
        $michel_eleve->setDateSortie(LUNDI_s52j1);
        $michel_eleve->save();

        $classe_6A = new Classe();
        $classe_6A->setNom('6ieme A');
        $classe_6A->save();
        $periode_6A_1 = new PeriodeNote();
        $periode_6A_1->setClasse($classe_6A);
        $periode_6A_1->setNumPeriode(1);
        $periode_6A_1->setVerouiller('O');
        $periode_6A_1->setNomPeriode('premier trimestre');
        $periode_6A_1->setDateFin(trimestre1.' 00:00:00');
        $periode_6A_1->save();
        $periode_6A_2 = new PeriodeNote();
        $periode_6A_2->setClasse($classe_6A);
        $periode_6A_2->setNumPeriode(2);
        $periode_6A_2->setVerouiller('N');
        $periode_6A_2->setNomPeriode('deuxième trimestre');
        $periode_6A_2->setDateFin(trimestre2.' 23:59:59');
        $periode_6A_2->save();

        $classe_6A->addEleve($florence_eleve,1);//florence est dans la 6A pour les deux premiers trimestres et dans la 6B pour les deux suivants
        $classe_6A->addEleve($florence_eleve,2);
        $aubert_scola->addClasse($classe_6A);
        $aubert_scola->save();

        $classe_6B = new Classe();
        $classe_6B->setNom('6ieme B');
        $classe_6B->save();
        $periode_6B_2 = new PeriodeNote();
        $periode_6B_2->setClasse($classe_6B);
        $periode_6B_2->setNumPeriode(2);
        $periode_6B_2->setVerouiller('O');
        $periode_6B_2->setNomPeriode('deuxième trimestre');
        $periode_6B_2->setDateFin(trimestre2.' 23:59:59');
        $periode_6B_2->save();
        $periode_6B_3 = new PeriodeNote();
        $periode_6B_3->setClasse($classe_6B);
        $periode_6B_3->setNumPeriode(3);
        $periode_6B_3->setVerouiller('O');
        $periode_6B_3->setNomPeriode('troisième trimestre');
        $periode_6B_3->setDateFin(trimestre3.' 23:59:59');
        $periode_6B_3->save();
        $classe_6B->addEleve($nicolas_eleve,1);
        $classe_6B->addEleve($nicolas_eleve,2);
        $classe_6B->addEleve($florence_eleve,3);

        $groupe_math = new Groupe();
        $groupe_math->setName('MATH6A');
        $groupe_math->addEleve($florence_eleve, 1);
        $groupe_math->addEleve($florence_eleve, 2);
        $groupe_math->addEleve($florence_eleve, 3);
        $groupe_math->addUtilisateurProfessionnel($lebesgue_prof);
        $groupe_math->addClasse($classe_6A);
        $groupe_math->addClasse($classe_6B);
        $groupe_math->save();

        $aid_1 = new AidDetails();
        $aid_1->setNom('aid 1');
        $aid_1->setId('1ai');
        $aid_1->addEleve($florence_eleve);
        $aid_1->addUtilisateurProfessionnel($newton_prof);
        $aid_1->save();

        //on va peupler les absences 2
        include_once(dirname(__FILE__).'/../../../../mod_abs2/admin/function.php');
        ajoutMotifsParDefaut();
        ajoutLieuxParDefaut();
        ajoutJustificationsParDefaut();
        ajoutTypesParDefaut();

        $saisie_1 = new AbsenceEleveSaisie();
        $saisie_1->setEleve($florence_eleve);
        $saisie_1->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_1->setDebutAbs(VENDREDI_s40j5.' 08:00:00');//le 2010-10-01 est un vendredi
        $saisie_1->setFinAbs(VENDREDI_s40j5.' 09:00:00');
        $saisie_1->save();

        $saisie_2 = new AbsenceEleveSaisie();
        $saisie_2->setEleve($florence_eleve);
        $saisie_2->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_2->setDebutAbs(SAMEDI_s40j6.' 08:00:00');//samedi : ne comptera pas comme demi journée d'absence
        $saisie_2->setFinAbs(SAMEDI_s40j6.' 09:00:00');
        $saisie_2->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_2);
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Absence scolaire')->findOne());
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->setAbsenceEleveJustification(AbsenceEleveJustificationQuery::create()->filterByNom('Courrier familial')->findOne());
        $traitement->save();
        $notification = new AbsenceEleveNotification();
        $notification->setStatutEnvoi(AbsenceEleveNotificationPeer::STATUT_ENVOI_EN_COURS);
        $notification->setTypeNotification(AbsenceEleveNotificationPeer::TYPE_NOTIFICATION_COURRIER);
        $notification->setAbsenceEleveTraitement($traitement);
        $notification->save();

        $saisie_3 = new AbsenceEleveSaisie();
        $saisie_3->setEleve($florence_eleve);
        $saisie_3->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_3->setDebutAbs(DIMANCHE_s40j7.' 08:00:00');//dimanche : ne comptera pas comme demi journée d'absence
        $saisie_3->setFinAbs(DIMANCHE_s40j7.' 08:29:00');
        $saisie_3->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_3);
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Exclusion de cours')->findOne());
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();

        $saisie_4 = new AbsenceEleveSaisie();
        $saisie_4->setEleve($florence_eleve);
        $saisie_4->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_4->setDebutAbs(LUNDI_s41j1.' 08:00:00');
        $saisie_4->setFinAbs(LUNDI_s41j1.' 08:29:00');//retard : ne comptera pas comme demi journée d'absence
        $saisie_4->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_4);
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Retard intercours')->findOne());
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_4);
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Absence scolaire')->findOne());
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->setAbsenceEleveJustification(AbsenceEleveJustificationQuery::create()->filterByNom('Courrier familial')->findOne());
        $traitement->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_4);
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Erreur de saisie')->findOne());
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();
        $notification = new AbsenceEleveNotification();
        $notification->setStatutEnvoi(AbsenceEleveNotificationPeer::STATUT_ENVOI_SUCCES);
        $notification->setTypeNotification(AbsenceEleveNotificationPeer::TYPE_NOTIFICATION_COURRIER);
        $notification->setAbsenceEleveTraitement($traitement);
        $notification->save();

        $saisie_5 = new AbsenceEleveSaisie();
        $saisie_5->setEleve($florence_eleve);
        $saisie_5->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_5->setDebutAbs(MARDI_s41j2.' 08:00:00');
        $saisie_5->setFinAbs(MARDI_s41j2.' 08:29:00');//retard : ne comptera pas comme demi journée d'absence
        $saisie_5->save();
        $saisie_51 = new AbsenceEleveSaisie();
        $saisie_51->setEleve($florence_eleve);
        $saisie_51->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_51->setDebutAbs(MARDI_s41j2.' 09:00:00');
        $saisie_51->setFinAbs(MARDI_s41j2.' 09:29:00');//retard : ne comptera pas comme demi journée d'absence
        $saisie_51->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_5);
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->setAbsenceEleveJustification(AbsenceEleveJustificationQuery::create()->filterByNom('Courrier familial')->findOne());
        $traitement->save();


        $saisie_6 = new AbsenceEleveSaisie();
        $saisie_6->setEleve($florence_eleve);
        $saisie_6->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_6->setDebutAbs(MERCREDI_s41j3.' 08:00:00');
        $saisie_6->setFinAbs(MERCREDI_s41j3.' 09:00:00');
        $saisie_6->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_6);
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Retard exterieur')->findOne());//c'est le retard extérieur qui va prendre le dessus : ne comptera pas comme demi journée d'absence
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_6);
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Absence scolaire')->findOne());
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_6);
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Erreur de saisie')->findOne());
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();

        $saisie_7 = new AbsenceEleveSaisie();
        $saisie_7->setEleve($florence_eleve);
        $saisie_7->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_7->setDebutAbs(JEUDI_s41j4.' 08:00:00');
        $saisie_7->setFinAbs(JEUDI_s41j4.' 09:00:00');
        $saisie_7->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_7);
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Erreur de saisie')->findOne());
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();

        $saisie_8 = new AbsenceEleveSaisie();
        $saisie_8->setEleve($florence_eleve);
        $saisie_8->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_8->setDebutAbs(VENDREDI_s41j5.' 08:00:00');
        $saisie_8->setFinAbs(VENDREDI_s41j5.' 09:00:00');
        $saisie_8->save();
        $saisie_81 = new AbsenceEleveSaisie();
        $saisie_81->setEleve($florence_eleve);
        $saisie_81->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_81->setDebutAbs(VENDREDI_s41j5.' 08:00:00');
        $saisie_81->setFinAbs(VENDREDI_s41j5.' 08:10:00');//ce retard ne sera pas décompté car il est inclus dans une absence plus globale
        $saisie_81->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_81);
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Retard exterieur')->findOne());
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();

        $saisie_9 = new AbsenceEleveSaisie();
        $saisie_9->setEleve($florence_eleve);
        $saisie_9->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_9->setDebutAbs(SAMEDI_s41j6.' 08:00:00');
        $saisie_9->setFinAbs(SAMEDI_s41j6.' 09:00:00');//samedi : ne comptera pas comme demi journée d'absence
        $saisie_9->save();
        $saisie_91 = new AbsenceEleveSaisie();
        $saisie_91->setEleve($florence_eleve);
        $saisie_91->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_91->setDebutAbs(SAMEDI_s41j6.' 08:00:00');
        $saisie_91->setFinAbs(SAMEDI_s41j6.' 08:10:00');
        $saisie_91->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_91);
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Infirmerie')->findOne());
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();

        $saisie_10 = new AbsenceEleveSaisie();
        //$saisie_9->setEleve($florence_eleve);//aucun eleve : c'est un marqueur d'appel éffectué
        $saisie_10->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_10->setDebutAbs(DIMANCHE_s41j7.' 08:00:00');
        $saisie_10->setFinAbs(DIMANCHE_s41j7.' 09:00:00');
        $saisie_10->setGroupe($groupe_math);
        $saisie_10->save();
        $saisie_101 = new AbsenceEleveSaisie();
        $saisie_101->setEleve($florence_eleve);
        $saisie_101->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_101->setDebutAbs(DIMANCHE_s41j7.' 08:00:00');
        $saisie_101->setFinAbs(DIMANCHE_s41j7.' 08:10:00');
        $saisie_101->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_101);
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Retard exterieur')->findOne());
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();

        $saisie_11 = new AbsenceEleveSaisie();
        //$saisie_9->setEleve($florence_eleve);//aucun eleve : c'est un marqueur d'appel éffectué
        $saisie_11->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_11->setDebutAbs(LUNDI_s42j1.' 08:00:00');
        $saisie_11->setFinAbs(LUNDI_s42j1.' 09:00:00');
        $saisie_11->setClasse($classe_6A);
        $saisie_11->save();
        $saisie_111 = new AbsenceEleveSaisie();
        $saisie_111->setEleve($florence_eleve);
        $saisie_111->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_111->setDebutAbs(LUNDI_s42j1.' 08:00:00');
        $saisie_111->setFinAbs(LUNDI_s42j1.' 08:10:00');
        $saisie_111->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_111);
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Retard exterieur')->findOne());
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();

        $saisie_12 = new AbsenceEleveSaisie();
        //$saisie_9->setEleve($florence_eleve);//aucun eleve : c'est un marqueur d'appel éffectué
        $saisie_12->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_12->setDebutAbs(MARDI_s42j2.' 08:00:00');
        $saisie_12->setFinAbs(MARDI_s42j2.' 09:00:00');
        $saisie_12->setAidDetails($aid_1);
        $saisie_12->save();
        $saisie_121 = new AbsenceEleveSaisie();
        $saisie_121->setEleve($florence_eleve);
        $saisie_121->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_121->setDebutAbs(MARDI_s42j2.' 08:00:00');
        $saisie_121->setFinAbs(MARDI_s42j2.' 08:10:00');
        $saisie_121->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_121);
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Retard exterieur')->findOne());
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();

        $saisie_13 = new AbsenceEleveSaisie();
        //$saisie_13->setEleve($florence_eleve);//aucun eleve : c'est un marqueur d'appel effectué
        $saisie_13->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_13->setDebutAbs(MERCREDI_s42j3.' 08:00:00');
        $saisie_13->setFinAbs(MERCREDI_s42j3.' 09:00:00');
        $saisie_13->setClasse($classe_6A);
        $saisie_13->save();
        $saisie_131 = new AbsenceEleveSaisie();
        $saisie_131->setEleve($florence_eleve);
        $saisie_131->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_131->setDebutAbs(MERCREDI_s42j3.' 08:00:00');
        $saisie_131->setFinAbs(MERCREDI_s42j3.' 08:10:00');
        $saisie_131->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_131);
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Infirmerie')->findOne());
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();

        $saisie_14 = new AbsenceEleveSaisie();
        $saisie_14->setEleve($florence_eleve);
        $saisie_14->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_14->setDebutAbs(JEUDI_s42j4.' 08:00:00');
        $saisie_14->setFinAbs(JEUDI_s42j4.' 09:00:00');
        $saisie_14->setClasse($classe_6A);
        $saisie_14->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_14);
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->setAbsenceEleveJustification(AbsenceEleveJustificationQuery::create()->filterByNom('Courrier familial')->findOne());
        $traitement->save();

        $saisie_15 = new AbsenceEleveSaisie();
        $saisie_15->setEleve($florence_eleve);
        $saisie_15->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_15->setDebutAbs(VENDREDI_s42j5.' 08:00:00');
        $saisie_15->setFinAbs(VENDREDI_s42j5.' 09:00:00');
        $saisie_15->setClasse($classe_6A);
        $saisie_15->save();
        $saisie_151 = new AbsenceEleveSaisie();
        $saisie_151->setEleve($florence_eleve);
        $saisie_151->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_151->setDebutAbs(VENDREDI_s42j5.' 08:00:00');//ce retard ne sera pas décompté car il est inclus dans une absence plus globale
        $saisie_151->setFinAbs(VENDREDI_s42j5.' 08:10:00');
        $saisie_151->setClasse($classe_6A);
        $saisie_151->save();

        $saisie_16 = new AbsenceEleveSaisie();
        //$saisie_9->setEleve($florence_eleve);//aucun eleve : c'est un marqueur d'appel éffectué
        $saisie_16->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_16->setDebutAbs(SAMEDI_s42j6.' 08:00:00');
        $saisie_16->setFinAbs(SAMEDI_s42j6.' 09:00:00');
        $saisie_16->setAidDetails($aid_1);
        $saisie_16->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_16);
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Erreur de saisie')->findOne());
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();

        $saisie_17 = new AbsenceEleveSaisie();
        $saisie_17->setEleve($florence_eleve);
        $saisie_17->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_17->setDebutAbs(DIMANCHE_s42j7.' 08:00:00');
        $saisie_17->setFinAbs(DIMANCHE_s42j7.' 09:00:00');
        $saisie_17->save();
        $saisie_171 = new AbsenceEleveSaisie();
        $saisie_171->setEleve($florence_eleve);
        $saisie_171->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_171->setDebutAbs(DIMANCHE_s42j7.' 14:00:00');
        $saisie_171->setFinAbs(DIMANCHE_s42j7.' 15:00:00');
        $saisie_171->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_17);
        $traitement->addAbsenceEleveSaisie($saisie_171);
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Absence scolaire')->findOne());
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();
        
        $saisie_18 = new AbsenceEleveSaisie();
        $saisie_18->setEleve($florence_eleve);
        $saisie_18->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_18->setDebutAbs(LUNDI_s43j1.' 08:00:00');
        $saisie_18->setFinAbs(LUNDI_s43j1.' 09:00:00');
        $saisie_18->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_18);
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Retard exterieur')->findOne());//c'est le retard extérieur qui va prendre le dessus : ne comptera pas comme demi journée d'absence
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();
        $saisie_181 = new AbsenceEleveSaisie();//la saisie 181 est la même que 18 mais elle va être comptée comme une absence normale et non un retard
        $saisie_181->setEleve($florence_eleve);
        $saisie_181->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_181->setDebutAbs(LUNDI_s43j1.' 08:00:00');
        $saisie_181->setFinAbs(LUNDI_s43j1.' 09:00:00');
        $saisie_181->save();
        
        $saisie_19 = new AbsenceEleveSaisie(); //saisie sur une journée ouvrée un mardi
        $saisie_19->setEleve($florence_eleve);
        $saisie_19->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_19->setDebutAbs(MARDI_s43j2.' 08:00:00');
        $saisie_19->setFinAbs(MARDI_s43j2.' 16:30:00');
        $saisie_19->save();

        $saisie_20 = new AbsenceEleveSaisie(); //saisie sur plusieurs journées du jeudi 28-10 au mardi 2-11-2010, 1 seule saisie
        $saisie_20->setEleve($florence_eleve);
        $saisie_20->setUtilisateurProfessionnel($dolto_cpe);
        $saisie_20->setDebutAbs(JEUDI_s44j4.' 08:00:00');
        $saisie_20->setFinAbs(MARDI_s45j2.' 17:00:00');
        $saisie_20->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_20);
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Absence scolaire')->findOne());
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();
		
        $saisie_21 = new AbsenceEleveSaisie(); //saisie sur 1 journée et sortir l'élève de l'établissement
        $saisie_21->setEleve($florence_eleve);
        $saisie_21->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_21->setDebutAbs(LUNDI_a1_s22j1.' 08:00:00');
        $saisie_21->setFinAbs(LUNDI_a1_s22j1.' 16:30:00');
        $saisie_21->save();
        
        $saisie_22 = new AbsenceEleveSaisie();
        $saisie_22->setEleve($florence_eleve);
        $saisie_22->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_22->setDebutAbs(MARDI_a1_s22j2.' 08:01:00');
        $saisie_22->setFinAbs(MARDI_a1_s22j2.' 09:00:00');
        $saisie_22->save();
        $saisie_221 = new AbsenceEleveSaisie();
        $saisie_221->setEleve($florence_eleve);
        $saisie_221->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_221->setDebutAbs(MARDI_a1_s22j2.' 08:00:00');
        $saisie_221->setFinAbs(MARDI_a1_s22j2.' 09:10:00');
        $saisie_221->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_221);
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Infirmerie')->findOne());
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();

        $saisie_23 = new AbsenceEleveSaisie();
        $saisie_23->setEleve($florence_eleve);
        $saisie_23->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_23->setDebutAbs(MERCREDI_a1_s22j3.' 08:01:00');
        $saisie_23->setFinAbs(MERCREDI_a1_s22j3.' 08:10:00');
        $saisie_23->save();
        $saisie_231 = new AbsenceEleveSaisie();
        $saisie_231->setEleve($florence_eleve);
        $saisie_231->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_231->setDebutAbs(MERCREDI_a1_s22j3.' 08:00:00');
        $saisie_231->setFinAbs(MERCREDI_a1_s22j3.' 09:10:00');
        $saisie_231->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_231);
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Infirmerie')->findOne());
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();

        //on ajoute des cours
        $edtCours = new EdtEmplacementCours();
        $edtCours->setGroupe($groupe_math);
        $edtCours->setDuree(2);
        $edtCours->setIdDefiniePeriode(4);
        $edtCours->setJourSemaine('vendredi');
        $edtCours->setHeuredebDec(0);
        $edtCours->setUtilisateurProfessionnel($lebesgue_prof);
        $edtCours->save();
        $edtCours = new EdtEmplacementCours();
        $edtCours->setGroupe($groupe_math);
        $edtCours->setDuree(2);
        $edtCours->setIdDefiniePeriode(1);
        $edtCours->setJourSemaine('jeudi');
        $edtCours->setHeuredebDec(0);
        $edtCours->setUtilisateurProfessionnel($lebesgue_prof);
        $edtCours->save();
        $edtCours = new EdtEmplacementCours();
        $edtCours->setAidDetails($aid_1);
        $edtCours->setDuree(2);
        $edtCours->setIdDefiniePeriode(4);
        $edtCours->setJourSemaine('vendredi');
        $edtCours->setHeuredebDec(0);
        $edtCours->setUtilisateurProfessionnel($newton_prof);
        $edtCours->save();

        //on va peupler des saisies englobantes ou identiques
        $saisie_1 = new AbsenceEleveSaisie();
        $saisie_1->setEleve($florence_eleve);
        $saisie_1->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_1->setDebutAbs(JEUDI_a1_s22j4.' 08:00:00');
        $saisie_1->setFinAbs(JEUDI_a1_s22j4.' 09:00:00');
        $saisie_1->save();
        $saisie_1 = new AbsenceEleveSaisie();
        $saisie_1->setEleve($florence_eleve);
        $saisie_1->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_1->setDebutAbs(JEUDI_a1_s22j4.' 07:00:00');
        $saisie_1->setFinAbs(JEUDI_a1_s22j4.' 10:00:00');
        $saisie_1->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_1);
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Infirmerie')->findOne());
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();

        $saisie_1 = new AbsenceEleveSaisie();
        $saisie_1->setEleve($florence_eleve);
        $saisie_1->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_1->setDebutAbs(VENDREDI_a1_s22j5.' 08:00:00');
        $saisie_1->setFinAbs(VENDREDI_a1_s22j5.' 09:00:00');
        $saisie_1->save();
        $saisie_1 = new AbsenceEleveSaisie();
        $saisie_1->setEleve($florence_eleve);
        $saisie_1->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_1->setDebutAbs(VENDREDI_a1_s22j5.' 08:00:00');
        $saisie_1->setFinAbs(VENDREDI_a1_s22j5.' 09:00:00');
        $saisie_1->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_1);
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Infirmerie')->findOne());
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();

        $saisie_1 = new AbsenceEleveSaisie();
        $saisie_1->setEleve($florence_eleve);
        $saisie_1->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_1->setDebutAbs(LUNDI_a1_s23j1.' 08:00:00');
        $saisie_1->setFinAbs(LUNDI_a1_s23j1.' 09:00:00');
        $saisie_1->save();
        $saisie_1 = new AbsenceEleveSaisie();
        $saisie_1->setEleve($florence_eleve);
        $saisie_1->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_1->setDebutAbs(LUNDI_a1_s23j1.' 08:00:00');
        $saisie_1->setFinAbs(LUNDI_a1_s23j1.' 09:30:00');
        $saisie_1->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_1);
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Infirmerie')->findOne());
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();
        $saisie_1 = new AbsenceEleveSaisie();
        $saisie_1->setEleve($florence_eleve);
        $saisie_1->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_1->setDebutAbs(LUNDI_a1_s23j1.' 08:00:00');
        $saisie_1->setFinAbs(LUNDI_a1_s23j1.' 10:00:00');
        $saisie_1->save();

        $saisie_1 = new AbsenceEleveSaisie();
        $saisie_1->setEleve($florence_eleve);
        $saisie_1->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_1->setDebutAbs(MARDI_a1_s23j2.' 08:00:00');
        $saisie_1->setFinAbs(MARDI_a1_s23j2.' 09:00:00');
        $saisie_1->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_1);
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Infirmerie')->findOne());
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();
        $saisie_1 = new AbsenceEleveSaisie();
        $saisie_1->setEleve($florence_eleve);
        $saisie_1->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_1->setDebutAbs(MARDI_a1_s23j2.' 09:00:00');
        $saisie_1->setFinAbs(MARDI_a1_s23j2.' 09:40:00');
        $saisie_1->save();
        $saisie_1 = new AbsenceEleveSaisie();
        $saisie_1->setEleve($florence_eleve);
        $saisie_1->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_1->setDebutAbs(MARDI_a1_s23j2.' 08:00:00');
        $saisie_1->setFinAbs(MARDI_a1_s23j2.' 10:00:00');
        $saisie_1->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_1);
        $traitement->setAbsenceEleveJustification(AbsenceEleveJustificationQuery::create()->filterByNom('Courrier familial')->findOne());
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();

        $saisie_1 = new AbsenceEleveSaisie();
        $saisie_1->setEleve($florence_eleve);
        $saisie_1->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_1->setDebutAbs(MERCREDI_a1_s23j3.' 08:00:00');
        $saisie_1->setFinAbs(MERCREDI_a1_s23j3.' 09:00:00');
        $saisie_1->save();
        $saisie_1 = new AbsenceEleveSaisie();
        $saisie_1->setEleve($florence_eleve);
        $saisie_1->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_1->setDebutAbs(MERCREDI_a1_s23j3.' 08:00:00');
        $saisie_1->setFinAbs(MERCREDI_a1_s23j3.' 09:00:00');
        $saisie_1->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_1);
        $traitement->setAbsenceEleveJustification(AbsenceEleveJustificationQuery::create()->filterByNom('Courrier familial')->findOne());
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Infirmerie')->findOne());
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();

        $saisie_1 = new AbsenceEleveSaisie();
        $saisie_1->setEleve($florence_eleve);
        $saisie_1->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_1->setDebutAbs(JEUDI_a1_s23j4.' 08:00:00');
        $saisie_1->setFinAbs(JEUDI_a1_s23j4.' 08:10:00');
        $saisie_1->save();
        $saisie_1 = new AbsenceEleveSaisie();
        $saisie_1->setEleve($florence_eleve);
        $saisie_1->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_1->setDebutAbs(JEUDI_a1_s23j4.' 08:00:00');
        $saisie_1->setFinAbs(JEUDI_a1_s23j4.' 08:15:00');
        $saisie_1->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_1);
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();
        $notification = new AbsenceEleveNotification();
        $notification->setStatutEnvoi(AbsenceEleveNotificationPeer::STATUT_ENVOI_EN_COURS);
        $notification->setTypeNotification(AbsenceEleveNotificationPeer::TYPE_NOTIFICATION_COURRIER);
        $notification->setAbsenceEleveTraitement($traitement);
        $notification->save();
        
        $saisie_1 = new AbsenceEleveSaisie();
        $saisie_1->setEleve($florence_eleve);
        $saisie_1->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_1->setDebutAbs(VENDREDI_a1_s23j5.' 08:00:00');
        $saisie_1->setFinAbs(VENDREDI_a1_s23j5.' 08:10:00');
        $saisie_1->save();
        $saisie_1 = new AbsenceEleveSaisie();
        $saisie_1->setEleve($florence_eleve);
        $saisie_1->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_1->setDebutAbs(VENDREDI_a1_s23j5.' 08:00:00');
        $saisie_1->setFinAbs(VENDREDI_a1_s23j5.' 08:10:00');
        $saisie_1->save();

        $saisie_1 = new AbsenceEleveSaisie();
        $saisie_1->setEleve($florence_eleve);
        $saisie_1->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_1->setDebutAbs(SAMEDI_a1_s23j6.' 08:00:00');
        $saisie_1->setFinAbs(SAMEDI_a1_s23j6.' 09:00:00');
        $saisie_1->save();
        $saisie_1 = new AbsenceEleveSaisie();
        $saisie_1->setEleve($florence_eleve);
        $saisie_1->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_1->setDebutAbs(SAMEDI_a1_s23j6.' 08:00:00');
        $saisie_1->setFinAbs(SAMEDI_a1_s23j6.' 09:00:00');
        $saisie_1->save();
        $saisie_1 = new AbsenceEleveSaisie();
        $saisie_1->setEleve($florence_eleve);
        $saisie_1->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_1->setDebutAbs(SAMEDI_a1_s23j6.' 08:00:00');
        $saisie_1->setFinAbs(SAMEDI_a1_s23j6.' 09:00:00');
        $saisie_1->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_1);
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Infirmerie')->findOne());
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();
        $saisie_1 = new AbsenceEleveSaisie();
        $saisie_1->setEleve($florence_eleve);
        $saisie_1->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_1->setDebutAbs(SAMEDI_a1_s23j6.' 08:00:00');
        $saisie_1->setFinAbs(SAMEDI_a1_s23j6.' 09:10:00');
        $saisie_1->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_1);
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Erreur de saisie')->findOne());
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();

        $saisie_1 = new AbsenceEleveSaisie();
        $saisie_1->setEleve($florence_eleve);
        $saisie_1->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_1->setDebutAbs(DIMANCHE_a1_s23j7.' 08:00:00');
        $saisie_1->setFinAbs(DIMANCHE_a1_s23j7.' 09:00:00');
        $saisie_1->save();
        $saisie_1 = new AbsenceEleveSaisie();
        $saisie_1->setEleve($florence_eleve);
        $saisie_1->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_1->setDebutAbs(DIMANCHE_a1_s23j7.' 07:00:00');
        $saisie_1->setFinAbs(DIMANCHE_a1_s23j7.' 09:10:00');
        $saisie_1->save();
        $saisie_1 = new AbsenceEleveSaisie();
        $saisie_1->setEleve($florence_eleve);
        $saisie_1->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_1->setDebutAbs(DIMANCHE_a1_s23j7.' 08:00:00');
        $saisie_1->setFinAbs(DIMANCHE_a1_s23j7.' 09:11:00');
        $saisie_1->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_1);
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Infirmerie')->findOne());
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();
        $saisie_1 = new AbsenceEleveSaisie();
        $saisie_1->setEleve($florence_eleve);
        $saisie_1->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_1->setDebutAbs(DIMANCHE_a1_s23j7.' 08:00:00');
        $saisie_1->setFinAbs(DIMANCHE_a1_s23j7.' 09:10:00');
        $saisie_1->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_1);
        $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Erreur de saisie')->findOne());
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();

        $saisie_1 = new AbsenceEleveSaisie();
        $saisie_1->setEleve($florence_eleve);
        $saisie_1->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_1->setDebutAbs(LUNDIa1_s24j1.' 08:00:00');
        $saisie_1->setFinAbs(LUNDIa1_s24j1.' 08:10:00');
        $saisie_1->save();
        $saisie_1 = new AbsenceEleveSaisie();
        $saisie_1->setEleve($florence_eleve);
        $saisie_1->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_1->setDebutAbs(LUNDIa1_s24j1.' 08:00:00');
        $saisie_1->setFinAbs(LUNDIa1_s24j1.' 08:10:00');
        $saisie_1->save();
        $saisie_1 = new AbsenceEleveSaisie();
        $saisie_1->setEleve($florence_eleve);
        $saisie_1->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_1->setDebutAbs(LUNDIa1_s24j1.' 08:00:00');
        $saisie_1->setFinAbs(LUNDIa1_s24j1.' 08:10:00');
        $saisie_1->save();
        $saisie_1 = new AbsenceEleveSaisie();
        $saisie_1->setEleve($florence_eleve);
        $saisie_1->setUtilisateurProfessionnel($lebesgue_prof);
        $saisie_1->setDebutAbs(LUNDIa1_s24j1.' 08:00:00');
        $saisie_1->setFinAbs(LUNDIa1_s24j1.' 09:10:00');
        $saisie_1->save();
        $traitement = new AbsenceEleveTraitement();
        $traitement->addAbsenceEleveSaisie($saisie_1);
        $traitement->setUtilisateurProfessionnel($dolto_cpe);
        $traitement->save();
        $notification = new AbsenceEleveNotification();
        $notification->setStatutEnvoi(AbsenceEleveNotificationPeer::STATUT_ENVOI_SUCCES);
        $notification->setTypeNotification(AbsenceEleveNotificationPeer::TYPE_NOTIFICATION_COURRIER);
        $notification->setAbsenceEleveTraitement($traitement);
        $notification->save();
        
        //on va purger les références, qui peuvent être fausses suite à des ajouts ultérieurs
        GepiDataPopulator::clearAllReferences();
        
        
        $con->commit();
    }
	/**
	 * Filter the query by a related ResponsableEleve object
	 *
	 * @param     ResponsableEleve|PropelCollection $responsableEleve The related object(s) to use as filter
	 * @param     string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
	 *
	 * @return    JNotificationResponsableEleveQuery The current query, for fluid interface
	 */
	public function filterByResponsableEleve($responsableEleve, $comparison = null)
	{
		if ($responsableEleve instanceof ResponsableEleve) {
			return $this
				->addUsingAlias(JNotificationResponsableElevePeer::PERS_ID, $responsableEleve->getResponsableEleveId(), $comparison);
		} elseif ($responsableEleve instanceof PropelCollection) {
			if (null === $comparison) {
				$comparison = Criteria::IN;
			}
			return $this
				->addUsingAlias(JNotificationResponsableElevePeer::PERS_ID, $responsableEleve->toKeyValue('PrimaryKey', 'ResponsableEleveId'), $comparison);
		} else {
			throw new PropelException('filterByResponsableEleve() only accepts arguments of type ResponsableEleve or PropelCollection');
		}
	}
Example #4
0
	private function import_user_profile_from_scribe() {
        global $mysqli;
		# On ne peut arriver ici quand dans le cas où on a une authentification réussie.
		# L'import d'un utilisateur ne peut se faire qu'à partir d'un LDAP de Scribe, ici.
		if (!LDAPServer::is_setup()) {
			return false;
			die();
		} else {
      
      // config_cas.inc.php est le fichier d'informations de connexions au serveur cas
      $path = dirname(__FILE__)."/LDAPServerScribe.class.php";
      include($path);
      
			# Le serveur LDAP est configuré, on y va.
			# Encore un dernier petit test quand même : est-ce que l'utilisateur
			# est bien absent de la base.
			$sql = "SELECT login FROM utilisateurs WHERE (login = '******')"; 
                $resultat = mysqli_query($mysqli, $sql);  
                if ($resultat->num_rows != "0") {
                    $resultat->close();
                    return false;
                    die();                    
                }
                $resultat->close();

			$ldap_server = new LDAPServerScribe;
      
			$user = $ldap_server->get_user_profile($this->login);
			if ($user) {
				# On ne refait pas de tests ou de formattage. La méthode get_user_profile
				# s'occupe de tout.
        
        $errors = false;
        
        // On s'occupe de tous les traitements spécifiques à chaque statut
        
        // Eleve
        if ($user['statut'] == 'eleve') {
          // On a un élève : on vérifie s'il existe dans la table 'eleves',
          // sur la base de son INE, ou nom et prénom.
          $sql_test = "SELECT * FROM eleves
                            WHERE (no_gep = '".$user['raw']['ine'][0]."'
                                OR (nom = '".$user['nom']."' AND prenom = '".$user['prenom']."'))";
                 
                $resultat = mysqli_query($mysqli, $sql);  
                $test = $resultat->num_rows;
                $resultat->close();
          
          if ($test == 0) {
            // L'élève n'existe pas du tout. On va donc le créer.
            $nouvel_eleve = new Eleve();
            $nouvel_eleve->setLogin($this->login);
            $nouvel_eleve->setNom($user['nom']);
            $nouvel_eleve->setPrenom($user['prenom']);
            $nouvel_eleve->setSexe($user['raw']['entpersonsexe'][0]);
            
            $naissance = $user['raw']['entpersondatenaissance'][0];
            if ($naissance != '') {
              $annee = mb_substr($naissance, 0, 4);
              $mois = mb_substr($naissance, 4, 2);
              $jour = mb_substr($naissance, 6, 2);
            } else {
              $annee = '0000';
              $mois = '00';
              $jour = '00';
            }
            
            $nouvel_eleve->setNaissance("$annee-$mois-$jour");
            $nouvel_eleve->setLieuNaissance('');
            $nouvel_eleve->setElenoet($user['raw']['employeenumber'][0] || '');
            $nouvel_eleve->setEreno('');
            $nouvel_eleve->setEleid($user['raw']['intid'][0] || '');
            $nouvel_eleve->setNoGep($user['raw']['ine'][0] || '');
            $nouvel_eleve->setEmail($user['email']);
            
            if (!$nouvel_eleve->save()) $errors = true;
            
            /*
             * Récupération des CLASSES de l'eleve :
             * Pour chaque eleve, on parcours ses classes, et on ne prend que celles
             * qui correspondent à la branche de l'établissement courant, et on les stocke
             */
            $nb_classes = $user['raw']['enteleveclasses']['count'];

            // Pour chaque classe trouvée..
            $eleve_added_to_classe = false;
            for ($cpt=0; $cpt<$nb_classes; $cpt++) {
                if ($eleve_added_to_classe) break;
                $classe_from_ldap = explode("$", $user['raw']['enteleveclasses'][$cpt]);
                // $classe_from_ldap[0] contient le DN de l'établissement
                // $classe_from_ldap[1] contient l'id de la classe
                $code_classe = $classe_from_ldap[1];

                // Si le SIREN de la classe trouvée correspond bien au SIREN de l'établissement courant,
                // on crée une entrée correspondante dans le tableau des classes disponibles
                // Sinon c'est une classe d'un autre établissement, on ne doit donc pas en tenir compte
                if (strcmp($classe_from_ldap[0], $ldap_server->get_base_branch()) == 0) {

                    /*
                     * On test si la classe que l'on souhaite ajouter existe déjà
                     * en la cherchant dans la base (
                     */
                    $classe_courante = ClasseQuery::create()
                          ->filterByClasse($code_classe)
                          ->findOne();

                    if ($classe_courante) {
                      
                      foreach($classe_courante->getPeriodeNotes() as $periode) {
                          // On associe l'élève à la classe
                          $sql_classe = "INSERT INTO j_eleves_classes SET
                              login = '******', 
                              id_classe = '".$classe_courante->getId()."',
                              periode = '".$periode->getNumPeriode()."'";
                                  
                            $res = mysqli_query($mysqli, $sql); 
                            $res->close();
                          
                      } // Fin boucle périodes
                      $eleve_added_to_classe = true;
                    } // Fin test classe
                } //Fin du if classe appartient a l'etablissement courant
            } //Fin du parcours des classes de l'eleve

            
            // On a maintenant un élève en base, qui appartient à sa classe
            // pour toutes les périodes à partir de la période courante
            
            // On ne l'associe pas aux enseignements, car c'est un peu trop
            // risqué et bancal pour être réalisé dynamiquement ici, dans
            // la mesure où l'on n'a pas une information précise sur la
            // composition des groupes.
            
            
          } else {
            // L'élève existe déjà dans la base. On ne créé que l'utilisateur correspondant.
            // Pour ça, on va devoir s'assurer que l'identifiant est identique !
            $sql_login = "******".$user['raw']['ine'][0]."'
                                OR (nom = '".$user['nom']."' AND prenom = '".$user['prenom']."'))";
                    
                $resultat = mysqli_query($mysqli, $sql);
                $res = $resultatè->fetch_object();
                $test_login = $res->login;
                $resultat->close();
            
            
            if ($test_login != $this->login) {
              // Le login est différent, on ne peut rien faire... Il faudrait renommer
              // le login partout dans l'application, mais il n'existe pas de mécanisme
              // pour le faire de manière fiable.
              $errors = true;
            }
          }
          
        } elseif ($user['statut'] == 'responsable') {
          // Si on a un responsable, il faut l'associer à un élève
          
          $resp = new ResponsableEleve();
          $resp->setLogin($this->login);
          $resp->setNom($user['nom']);
          $resp->setPrenom($user['prenom']);
          $resp->setCivilite($user['raw']['personaltitle'][0]);
          $resp->setTelPers($user['raw']['homephone'][0]);
          $resp->setTelProf($user['raw']['telephonenumber'][0]);
          $resp->setTelPort($user['raw']['mobile'][0]);
          $resp->setMel($user['email']);
          $resp->setAdresseId($user['raw']['intid'][0]);
                    
          // On créé l'adresse associée
          
          $adr = new Adresse();
          $adr->setAdresseId($user['raw']['intid'][0]);
          $adr->setAdr1($user['raw']['entpersonadresse'][0]);
          $adr->setAdr2('');
          $adr->setAdr3('');
          $adr->setAdr4('');
          $adr->setCommune($user['raw']['entpersonville'][0]);
          $adr->setCp($user['raw']['entpersoncodepostal'][0]);
          $adr->setPays($user['raw']['entpersonpays'][0]);
          
          $resp->setAdresse($adr);
          
          $resp->save();

          $nb_eleves_a_charge = $user['raw']['entauxpersreleleveeleve']['count'];

          //pour chaque dn d'eleve
          for ($i=0;$i<$nb_eleves_a_charge;$i++) {
              $eleve_uid = explode(",",$user['raw']['entauxpersreleleveeleve'][$i]);
              $eleve_associe_login = mb_substr($eleve_uid[0], 4);
              $eleve_sql = "SELECT ele_id FROM eleves WHERE login = '******'";
                      
                    $eleve_query = mysqli_query($mysqli, $sql);
                    if ($eleve_query->num_rows == 1) {
                        $eleve_associe_obj = $eleve_query->fetch_object();
                        $eleve_associe_ele_id = $eleve_associe_obj->ele_id;
                        // Gepi donne un ordre aux responsables, il faut donc verifier combien de responsables sont deja enregistres pour l'eleve
                        // On initialise le numero de responsable
                        $numero_responsable = 1;
                        $req_nb_resp_deja_presents = "SELECT count(*) FROM responsables2 WHERE ele_id = '$eleve_associe_ele_id'";
                        $res_nb_resp = mysqli_query($mysqli, $req_nb_resp_deja_presents);
                        $nb_resp = $res_nb_resp->fetch_array($res_nb_resp);
                        if ($nb_resp[0] > 0) {
                            // Si deja 1 ou plusieurs responsables legaux pour cet eleve,on ajoute le nouveau responsable en incrementant son numero
                            $numero_responsable += $nb_resp[0];

                            //--
                            // TODO: tester si on a des adresses identiques, et n'utiliser qu'un seul objet adresse dans ce cas.
                            //--
                        }

                        // Ajout de la relation entre Responsable et Eleve dans la table "responsables2" pour chaque eleve
                        $req_ajout_lien_eleve_resp = "INSERT INTO responsables2 VALUES('$eleve_associe_ele_id','".$resp->getResponsableEleveId()."','$numero_responsable','')";
                        $insert_lien = mysqli_query($mysqli, $req_ajout_lien_eleve_resp);
                    }
            }
          
        } elseif ($user['statut'] == 'professeur') {
          // Rien de spécial à ce stade.
          
        } else {
          // Ici : que fait-on si l'on n'a pas un statut directement reconnu
          // et compatible Gepi ?
          // On applique le statut par défaut, configuré par l'admin.
          $user['statut'] = getSettingValue("statut_utilisateur_defaut");
        }
        
        // On créé l'utilisateur, s'il n'y a pas eu d'erreurs.
        if (!$errors) {
            $new_compte_utilisateur = new UtilisateurProfessionnel();
            $new_compte_utilisateur->setAuthMode('sso');
            $new_compte_utilisateur->setCivilite($user['civilite']);
            $new_compte_utilisateur->setEmail($user['email']);
            $new_compte_utilisateur->setEtat('actif');
            $new_compte_utilisateur->setLogin($this->login);
            $new_compte_utilisateur->setNom($user['nom']);
            $new_compte_utilisateur->setPrenom($user['prenom']);
            $new_compte_utilisateur->setShowEmail('no');
            $new_compte_utilisateur->setStatut($user['statut']);
            //$new_compte_utilisateur->save();
			if ($new_compte_utilisateur->save()) {
				return true;
			} else {
				return false;
			}
        }
        
			} else {
				return false;
			}
		}
	}
Example #5
0
	/**
	 * @param	ResponsableEleve $responsableEleve The responsableEleve object to add.
	 */
	protected function doAddResponsableEleve($responsableEleve)
	{
		$this->collResponsableEleves[]= $responsableEleve;
		$responsableEleve->setAdresse($this);
	}
	/**
	 * Filter the query by a related ResponsableEleve object
	 *
	 * @param     ResponsableEleve $responsableEleve  the related object to use as filter
	 * @param     string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
	 *
	 * @return    ResponsableEleveAdresseQuery The current query, for fluid interface
	 */
	public function filterByResponsableEleve($responsableEleve, $comparison = null)
	{
		if ($responsableEleve instanceof ResponsableEleve) {
			return $this
				->addUsingAlias(ResponsableEleveAdressePeer::ADR_ID, $responsableEleve->getAdrId(), $comparison);
		} elseif ($responsableEleve instanceof PropelCollection) {
			return $this
				->useResponsableEleveQuery()
					->filterByPrimaryKeys($responsableEleve->getPrimaryKeys())
				->endUse();
		} else {
			throw new PropelException('filterByResponsableEleve() only accepts arguments of type ResponsableEleve or PropelCollection');
		}
	}
	/**
	 * Declares an association between this object and a ResponsableEleve object.
	 *
	 * @param      ResponsableEleve $v
	 * @return     ResponsableInformation The current object (for fluent API support)
	 * @throws     PropelException
	 */
	public function setResponsableEleve(ResponsableEleve $v = null)
	{
		if ($v === null) {
			$this->setResponsableEleveId(NULL);
		} else {
			$this->setResponsableEleveId($v->getResponsableEleveId());
		}

		$this->aResponsableEleve = $v;

		// Add binding for other direction of this n:n relationship.
		// If this object has already been added to the ResponsableEleve object, it will not be re-added.
		if ($v !== null) {
			$v->addResponsableInformation($this);
		}

		return $this;
	}
	/**
	 * Exclude object from result
	 *
	 * @param     ResponsableEleve $responsableEleve Object to remove from the list of results
	 *
	 * @return    ResponsableEleveQuery The current query, for fluid interface
	 */
	public function prune($responsableEleve = null)
	{
		if ($responsableEleve) {
			$this->addUsingAlias(ResponsableElevePeer::PERS_ID, $responsableEleve->getResponsableEleveId(), Criteria::NOT_EQUAL);
		}

		return $this;
	}
Example #9
0
       ->filterByStatut('responsable')
       ->delete();
 */
 $del = mysqli_query($GLOBALS["mysqli"], "DELETE FROM utilisateurs WHERE statut = 'responsable'");
 // On parcours tous les responsables
 $resp_inseres = 0;
 // avertissement si un eleve a plus de 2 responsables legaux
 $avertissement_trop_de_responsables = 0;
 for ($nb = 0; $nb < $nb_responsables; $nb++) {
     // On créé les responsables en base (avec les classes ORM)
     // Table resp_pers
     $pers_id = array_key_exists('intid', $responsables[$nb]) ? $responsables[$nb]['intid'][0] : '';
     // On teste si le responsable est déjà enregistré, sur la base de son identifiant sconet
     $test_resp = mysqli_num_rows(mysqli_query($GLOBALS["mysqli"], "SELECT * FROM resp_pers WHERE pers_id = '" . $pers_id . "'"));
     if ($test_resp == 0) {
         $resp = new ResponsableEleve();
         $resp->setLogin($responsables[$nb][$ldap->champ_login][0]);
         $resp->setNom($responsables[$nb][$ldap->champ_nom][0]);
         $resp->setPrenom($responsables[$nb][$ldap->champ_prenom][0]);
         $resp->setCivilite($responsables[$nb]['personaltitle'][0]);
         $homephone = array_key_exists('homephone', $responsables[$nb]) ? $responsables[$nb]['homephone'][0] : '';
         $resp->setTelPers($homephone);
         $profphone = array_key_exists('telephonenumber', $responsables[$nb]) ? $responsables[$nb]['telephonenumber'][0] : '';
         $resp->setTelProf($profphone);
         $mobilephone = array_key_exists('mobile', $responsables[$nb]) ? $responsables[$nb]['mobile'][0] : '';
         $resp->setTelPort($mobilephone);
         $respemail = array_key_exists($ldap->champ_email, $responsables[$nb]) ? $responsables[$nb][$ldap->champ_email][0] : '';
         $resp->setMel($respemail);
         $resp->setResponsableEleveId($pers_id);
         // On créé l'adresse associée
         $resp_addr = array_key_exists('entpersonadresse', $responsables[$nb]) ? $responsables[$nb]['entpersonadresse'][0] : null;
Example #10
0
	public static function getResponsableEleve() {
		//Creation d'une fiche ResponsableInformation
		$responsableEleve = new ResponsableEleve();
		$responsableEleve->setPersId('TestPersId');
		return $responsableEleve;
	}