public function testToXXXX()
 {
     CopixI18N::setLang('fr');
     $this->assertEquals('19761225', CopixDateTime::dateToYYYYMMDD('25/12/1976'));
     $this->assertFalse(CopixDateTime::dateToYYYYMMDD('215/a2/1976'));
     $this->assertFalse(CopixDateTime::dateToYYYYMMDD('215/a276'));
     $this->assertEquals('19761225150000', CopixDateTime::DateTimeToyyyymmddhhiiss('25/12/1976 15:00:00'));
     $this->assertEquals('19761225100106', CopixDateTime::timestampToyyyymmddhhiiss(220352466));
     CopixI18N::setLang('en');
     $this->assertEquals('19761225', CopixDateTime::dateToYYYYMMDD('12/25/1976'));
     $this->assertFalse(CopixDateTime::dateToYYYYMMDD('25/a2/1976'));
     $this->assertNull(CopixDateTime::dateToYYYYMMDD(null));
     $this->assertEquals('19761225150000', CopixDateTime::DateTimeToyyyymmddhhiiss('12/25/1976 03:00:00 pm'));
     $this->assertEquals('19761225030000', CopixDateTime::DateTimeToyyyymmddhhiiss('12/25/1976 03:00:00 am'));
     $this->assertEquals('19761225', CopixDateTime::timestampToyyyymmdd(220316400));
 }
 /**
  * Methode qui fait les tests sur la $pValue
  *
  * @param mixed $pValue La valeur
  * Paramètres pouvant être passée :
  * date_format : format de la date
  * date_sup et date_inf permettre de définir un intervalle de date
  * entre lesquelles la date doit être située
  */
 protected function _validate($pValue)
 {
     $toReturn = array();
     if ($pValue === null) {
         return true;
     }
     // Paramètres d'intervalle de date
     $date_sup = CopixDateTime::dateToYYYYMMDD($this->getParam('max'));
     $date_inf = CopixDateTime::dateToYYYYMMDD($this->getParam('min'));
     if (($date = CopixDateTime::dateToYYYYMMDD($pValue)) === false) {
         return _i18n('copix:copixdatetime.validator.invaliddate', $pValue);
     }
     if (!is_null($date_sup)) {
         if ($date_sup < $date) {
             $toReturn[] = _i18n('copix:copixdatetime.validator.datesup', array($pValue, $this->getParam('max')));
         }
     }
     if (!is_null($date_inf)) {
         if ($date_inf > $date) {
             $toReturn[] = _i18n('copix:copixdatetime.validator.dateinf', array($pValue, $this->getParam('min')));
         }
     }
     return empty($toReturn) ? true : $toReturn;
 }
 /**
  * Fonction appelée lorsque l'on clique sur le bouton 'import'
  * Appel la méthode privée _validFromFormImportParams
  * vérifie les infos saisies dans le formulaire
  * stock l'objet en session
  * @author Audrey Vassal <*****@*****.**>
  */
 public function doExport()
 {
     $serviceAuth = new AgendaAuth();
     $serviceExport = new ExportService();
     $agendaService = new AgendaService();
     $dateService = new DateService();
     //demande de mettre l'objet à jour en fonction des valeurs saisies dans le formulaire
     if (!($exportParams = $this->_getSessionExport())) {
         return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('agenda.error.cannotFindSession'), 'back' => CopixUrl::get('agenda|agenda|vueSemaine')));
     }
     //on vérifie les droits des utilisateurs sur la liste des agendas sélectionnés
     foreach ((array) $this->getRequest('agenda') as $id_agenda) {
         //on vérifie si l'utilisateur a les droits d'écriture sur un des agendas affiché
         if ($serviceAuth->getCapability($id_agenda) < $serviceAuth->getRead()) {
             return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('agenda.error.enableToWrite'), 'back' => CopixUrl::get('agenda|agenda|vueSemaine')));
         }
     }
     $this->_validFromFormExportParams($exportParams);
     $errors = $this->_checkExport($exportParams);
     if (count($errors) > 0) {
         $this->_setSessionExport($exportParams);
         return CopixActionGroup::process('agenda|ImportExport::getPrepareExport', array('e' => 1, 'errors' => $errors));
     } else {
         //var_dump($exportParams);
         //die();
         //on récupère tous les évènements des agendas cochés dans la période demandée
         foreach ((array) _request('agenda') as $idAgenda) {
             $arEventsPeriode[$idAgenda] = $agendaService->checkEventOfAgendaInBdd($idAgenda, CopixDateTime::dateToYYYYMMDD($exportParams->datedeb_export), CopixDateTime::dateToYYYYMMDD($exportParams->datefin_export));
         }
         //on classe ces évènements par jour
         $arEventByDay = $agendaService->getEventsByDay($arEventsPeriode, CopixDateTime::dateToYYYYMMDD($exportParams->datedeb_export), CopixDateTime::dateToYYYYMMDD($exportParams->datefin_export));
         //on ordonne les évènements par ordre croissant d'heure de début d'évènement dans la journée
         //var_dump($arEventByDay);
         $arEventByDay = $agendaService->getEventsInOrderByDay($arEventByDay);
         $content = $serviceExport->getFileICal($arEventByDay, CopixDateTime::dateToTimestamp($exportParams->datedeb_export), CopixDateTime::dateToTimestamp($exportParams->datefin_export));
     }
     //on vide la session
     $this->_setSessionExport(null);
     return _arContent($content, array('filename' => 'agenda.ics', 'content-disposition' => 'attachement', 'content-type' => CopixMIMETypes::getFromExtension('.ics')));
 }
 public function processValidateMultipleStudentsListing()
 {
     $ppo = new CopixPPO();
     // Récupération des paramètres
     $ppo->nodeId = _request('id_node', null);
     $ppo->nodeType = _request('type_node', null);
     $nodeInfos = Kernel::getNodeInfo($ppo->nodeType, $ppo->nodeId, true);
     if (is_null($ppo->nodeId) || is_null($ppo->nodeType)) {
         return CopixActionGroup::process('generictools|Messages::getError', array('message' => "Une erreur est survenue.", 'back' => CopixUrl::get('gestionautonome||showTree')));
     }
     $classroomDAO = _ioDAO('kernel|kernel_bu_ecole_classe');
     if (!$classroomDAO->get($ppo->nodeId)) {
         return CopixActionGroup::process('generictools|Messages::getError', array('message' => "Une erreur est survenue.", 'back' => CopixUrl::get('gestionautonome||showTree')));
     }
     _currentUser()->assertCredential('module:classroom|' . $ppo->nodeId . '|student|create@gestionautonome');
     // Récupération des informations du formulaire
     $keys = _request('keys', array());
     // Elèves de la liste à créer (checkbox de confirmation)
     $logins = _request('logins', array());
     // Logins des élèves (possibilité de changer le login généré)
     $passwords = _request('passwords', array());
     // Passwords des élèves (possibilité de changer le mot de passe généré)
     $levels = _request('levels', array());
     // Niveau des élèves dans la classe
     // Récupération des élèves déjà créés en session
     if (!($ppo->studentsSuccess = _sessionGet('gestionautonome|addMultipleStudents|success'))) {
         $ppo->studentsSuccess = array();
     }
     // RAZ des créations en erreur
     _sessionSet('gestionautonome|addMultipleStudents|error', array());
     // DAO
     $studentDAO = _ioDAO('kernel_bu_eleve');
     $studentRegistrationDAO = _ioDAO('kernel|kernel_bu_eleve_inscription');
     $studentAdmissionDAO = _ioDAO('kernel|kernel_bu_eleve_admission');
     $studentAssignmentDAO = _ioDAO('kernel_bu_eleve_affectation');
     $dbuserDAO = _ioDAO('kernel|kernel_copixuser');
     $dbLinkDAO = _ioDAO('kernel_link_bu2user');
     $classDAO = _ioDAO('kernel|kernel_bu_ecole_classe');
     $personDAO = _ioDAO('kernel_bu_responsable');
     $personLinkDAO = _ioDAO('kernel_bu_responsables');
     $schoolClassLevelDAO = _ioDAO('kernel|kernel_bu_ecole_classe_niveau');
     $node_infos = Kernel::getNodeInfo($ppo->nodeType, $ppo->nodeId, false);
     // Récupération des élèves en création
     $studentsInSession = _sessionGet('gestionautonome|addMultipleStudents');
     // Récupération des données nécessaires à l'ajout des enregistrements inscription / adhésion / admission
     $class = $classDAO->get($ppo->nodeId);
     $schoolClassLevels = $schoolClassLevelDAO->getByClass($ppo->nodeId);
     $classType = $schoolClassLevels[0]->type;
     $schoolId = $class->ecole;
     // Récupération de l'année scolaire
     if (is_null($grade = _sessionGet('grade'))) {
         $grade = Kernel::getAnneeScolaireCourante()->id_as;
     }
     // Boucle sur les élèves de la liste à créer
     $students = array();
     foreach ($keys as $key) {
         // La création n'est possible que si le login est disponible
         if (!is_null($logins[$key]) && !is_null($passwords[$key]) && Kernel::isLoginAvailable($logins[$key])) {
             $students[$key] = $studentsInSession[$key];
             $students[$key]['login'] = $logins[$key];
             // Récupération des logins pour les élèves en création
             $students[$key]['password'] = $passwords[$key];
             // Récupération des passwords pour les élèves en création
             $students[$key]['level'] = $levels[$key];
             // Récupération des niveaux pour les élèves en création
             $students[$key]['type_nom'] = Kernel::Code2Name('USER_ELE');
             $students[$key]['node_nom'] = Kernel::Code2Name($ppo->nodeType) . " " . $node_infos['nom'];
             // Création de l'élève
             $ppo->student = _record('kernel_bu_eleve');
             $ppo->student->numero = '';
             $ppo->student->nom = $students[$key]['lastname'];
             $ppo->student->prenom1 = $students[$key]['firstname'];
             $ppo->student->id_sexe = $students[$key]['gender'];
             $ppo->student->date_nais = isset($students[$key]['birthdate']) ? CopixDateTime::dateToYYYYMMDD(strip_tags(trim($students[$key]['birthdate']))) : '';
             $ppo->student->flag = 0;
             $ppo->student->ele_last_update = CopixDateTime::timestampToYYYYMMDDHHIISS(time());
             $studentDAO->insert($ppo->student);
             $students[$key]['id'] = $ppo->student->idEleve;
             // Création du compte dbuser
             $dbuser = _record('kernel|kernel_copixuser');
             $dbuser->login_dbuser = $students[$key]['login'];
             $dbuser->password_dbuser = md5($students[$key]['password']);
             $dbuser->email_dbuser = '';
             $dbuser->enabled_dbuser = 1;
             $dbuserDAO->insert($dbuser);
             // Création du link bu2user
             $dbLink = _record('kernel_link_bu2user');
             $dbLink->user_id = $dbuser->id_dbuser;
             $dbLink->bu_type = 'USER_ELE';
             $dbLink->bu_id = $ppo->student->idEleve;
             $dbLinkDAO->insert($dbLink);
             // Inscription de l'élève dans l'école
             $studentRegistration = _record('kernel|kernel_bu_eleve_inscription');
             $studentRegistration->eleve = $ppo->student->idEleve;
             $studentRegistration->annee_scol = $grade;
             $studentRegistration->date_preinscript = CopixDateTime::timestampToYYYYMMDD(time());
             $studentRegistration->date_effet_preinscript = CopixDateTime::timestampToYYYYMMDD(time());
             $studentRegistration->date_inscript = CopixDateTime::timestampToYYYYMMDD(time());
             $studentRegistration->date_effet_inscript = CopixDateTime::timestampToYYYYMMDD(time());
             $studentRegistration->etablissement = $schoolId;
             $studentRegistration->etablissement_refus = 0;
             $studentRegistration->id_niveau = $students[$key]['level'];
             $studentRegistration->id_typ_cla = $classType;
             $studentRegistration->vaccins_aj = 0;
             $studentRegistration->attente = 0;
             $studentRegistration->derogation_dem = 0;
             $studentRegistration->temporaire = 0;
             $studentRegistration->current_inscr = 1;
             $studentRegistrationDAO->insert($studentRegistration);
             // Admission de l'élève dans l'école
             $studentAdmission = _record('kernel|kernel_bu_eleve_admission');
             $studentAdmission->admission_eleve = $ppo->student->idEleve;
             $studentAdmission->admission_etablissement = $schoolId;
             $studentAdmission->admission_annee_scol = $grade;
             $studentAdmission->admission_id_niveau = $students[$key]['level'];
             $studentAdmission->admission_etat_eleve = 1;
             $studentAdmission->admission_date = CopixDateTime::timestampToYYYYMMDD(time());
             $studentAdmission->admission_date_effet = CopixDateTime::timestampToYYYYMMDD(time());
             $studentAdmission->admission_code_radiation = 0;
             $studentAdmission->admission_previsionnel = 0;
             $studentAdmissionDAO->insert($studentAdmission);
             // Affectation de l'élève dans les classes
             $studentAssignment = _record('kernel_bu_eleve_affectation');
             $studentAssignment->eleve = $ppo->student->idEleve;
             $studentAssignment->annee_scol = $grade;
             $studentAssignment->classe = $ppo->nodeId;
             $studentAssignment->niveau = $students[$key]['level'];
             $studentAssignment->dateDebut = CopixDateTime::timestampToYYYYMMDD(time());
             $studentAssignment->current = 1;
             $studentAssignment->previsionnel_cl = 0;
             $studentAssignmentDAO->insert($studentAssignment);
             // Récupération des responsables sélectionnés pour l'élève
             $personsKeys = _request('person-keys' . $key, array());
             $personsLogins = _request('logins' . $key, array());
             // Récupération des logins des responsables de l'élève
             $personsPasswords = _request('passwords' . $key, array());
             // Récupération des passwords des responsables de l'élève
             $students[$key]['person'] = array();
             foreach ($personsKeys as $personKey) {
                 // La création du responsable n'est possible que si le login est disponible
                 if (!is_null($personsLogins[$personKey]) && !is_null($personsPasswords[$personKey]) && Kernel::isLoginAvailable($personsLogins[$personKey])) {
                     $students[$key]['person'][$personKey] = $studentsInSession[$key]['person'][$personKey];
                     $students[$key]['person'][$personKey]['login'] = $personsLogins[$personKey];
                     $students[$key]['person'][$personKey]['password'] = $personsPasswords[$personKey];
                     $students[$key]['person'][$personKey]['type_nom'] = Kernel::Code2Name('USER_RES');
                     $students[$key]['person'][$personKey]['node_nom'] = Kernel::Code2Name($ppo->nodeType) . " " . $node_infos['nom'];
                     // Création du responsable
                     $ppo->person = _record('kernel_bu_responsable');
                     $ppo->person->nom = $students[$key]['person'][$personKey]['lastname'];
                     $ppo->person->prenom1 = $students[$key]['person'][$personKey]['firstname'];
                     $ppo->person->id_sexe = $students[$key]['person'][$personKey]['gender'];
                     $personDAO->insert($ppo->person);
                     $students[$key]['person'][$personKey]['id'] = $ppo->person->numero;
                     // Création du compte dbuser
                     $dbuser = _record('kernel|kernel_copixuser');
                     $dbuser->login_dbuser = $students[$key]['person'][$personKey]['login'];
                     $dbuser->password_dbuser = md5($students[$key]['person'][$personKey]['password']);
                     $dbuser->email_dbuser = '';
                     $dbuser->enabled_dbuser = 1;
                     $dbuserDAO->insert($dbuser);
                     // Création du link bu2user
                     $dbLink = _record('kernel_link_bu2user');
                     $dbLink->user_id = $dbuser->id_dbuser;
                     $dbLink->bu_type = 'USER_RES';
                     $dbLink->bu_id = $ppo->person->numero;
                     $dbLinkDAO->insert($dbLink);
                     // Création de l'association personne->rôle
                     $newPersonLink = _record('kernel_bu_responsables');
                     $newPersonLink->id_beneficiaire = $ppo->student->idEleve;
                     $newPersonLink->type_beneficiaire = 'eleve';
                     $newPersonLink->id_responsable = $ppo->person->numero;
                     $newPersonLink->type = 'responsable';
                     $newPersonLink->auth_parentale = '0';
                     $newPersonLink->id_par = $students[$key]['person'][$personKey]['id_par'];
                     $personLinkDAO->insert($newPersonLink);
                 }
             }
             // Récupération de l'élève (et de ses responsables) dans le tableau des élèves créés avec succès
             $ppo->studentsSuccess[] = $students[$key];
         } else {
             // Ajout de l'élève (et de ses responsables) dans le tableau des créations en erreur
             $ppo->studentsError[] = $students[$key];
         }
     }
     // Si des créations ont bien eu lieu, les mettre en session pour affichage de confirmation
     if (!empty($ppo->studentsSuccess)) {
         _sessionSet('gestionautonome|addMultipleStudents|success', $ppo->studentsSuccess);
     }
     // Si des créations sont en erreur, les mettre en session pour possibilité de recréation après correction des erreurs
     if (!empty($ppo->studentsError)) {
         _sessionSet('gestionautonome|addMultipleStudents|error', $ppo->studentsError);
         $ppo->students = $ppo->studentsError;
         _sessionSet('gestionautonome|addMultipleStudents', $ppo->studentsError);
         // Récupération des niveaux de la classe
         $classSchoolLevelDAO = _ioDAO('kernel|kernel_bu_ecole_classe_niveau');
         $classLevelDAO = _ioDAO('kernel|kernel_bu_classe_niveau');
         $classSchoolLevels = $classSchoolLevelDAO->getByClass($ppo->nodeId);
         $ppo->levelNames = array();
         $ppo->levelIds = array();
         foreach ($classSchoolLevels as $classSchoolLevel) {
             $level = $classLevelDAO->get($classSchoolLevel->niveau);
             $ppo->levelNames[] = $level->niveau_court;
             $ppo->levelIds[] = $level->id_n;
         }
         // Flag pour affichage du message d'erreur
         $ppo->error = 1;
         // Get vocabulary catalog to use
         $nodeVocabularyCatalogDAO = _ioDAO('kernel|kernel_i18n_node_vocabularycatalog');
         $ppo->vocabularyCatalog = $nodeVocabularyCatalogDAO->getCatalogForNode($ppo->nodeType, $ppo->nodeId);
         // Breadcrumbs
         $breadcrumbs = Kernel::generateBreadcrumbs($nodeInfos);
         $breadcrumbs[] = array('txt' => CopixCustomI18N::get('gestionautonome|gestionautonome.message.add%%structure_element_persons%%list', array('catalog' => $ppo->vocabularyCatalog->id_vc)));
         $ppo->breadcrumbs = Kernel::PetitPoucet($breadcrumbs, ' &raquo; ');
         $ppo->TITLE_PAGE = CopixConfig::get('gestionautonome|moduleTitle');
         // Get vocabulary catalog to use
         $nodeVocabularyCatalogDAO = _ioDAO('kernel|kernel_i18n_node_vocabularycatalog');
         $ppo->vocabularyCatalog = $nodeVocabularyCatalogDAO->getCatalogForNode($ppo->nodeType, $ppo->nodeId);
         return _arPPO($ppo, 'add_multiple_students_listing.tpl');
     }
     // Mise en session des comptes créés
     $passwordsList = _sessionGet('modules|gestionautonome|passwordsList');
     if (!is_array($passwordsList)) {
         $passwordsList = array();
     }
     foreach ($ppo->studentsSuccess as $student) {
         $studentAr = array('lastname' => $student['lastname'], 'firstname' => $student['firstname'], 'login' => $student['login'], 'password' => $student['password'], 'bu_type' => 'USER_ELE', 'bu_id' => $student['id'], 'type_nom' => Kernel::Code2Name('USER_ELE'), 'node_nom' => Kernel::Code2Name('BU_CLASSE') . ' ' . $nodeInfos['nom'], 'gender' => $student['gender']);
         $passwordsList['USER_ELE'][$student['id']] = $studentAr;
         // Enregistrement des personnes
         if (!empty($student['person'])) {
             foreach ($student['person'] as $person) {
                 $personAr = array('lastname' => $person['lastname'], 'firstname' => $person['firstname'], 'login' => $person['login'], 'password' => $person['password'], 'bu_type' => 'USER_RES', 'bu_id' => $person['id'], 'type_nom' => Kernel::Code2Name('USER_RES'), 'node_nom' => Kernel::Code2Name('BU_CLASSE') . ' ' . $nodeInfos['nom'], 'gender' => $person['gender']);
                 $passwordsList['USER_RES'][$person['id']] = $personAr;
             }
         }
     }
     $passwordsList = _sessionSet('modules|gestionautonome|passwordsList', $passwordsList);
     return _arRedirect(CopixUrl::get('gestionautonome||showMultipleAccountsListing'));
 }
 /**
  * Fonction qui est appel�e lorsque l'on valide la saisie d'un �v�nement
  * Met � jour l'objet avec les donn�es du formulaire
  * V�rifie les informations saisies dans le formulaire
  * @author Audrey Vassal <*****@*****.**>
  * @return redirige vers l'action "getVueSemaine" de l'actiongroup agenda
  */
 public function doValid()
 {
     $serviceAuth = new AgendaAuth();
     //initialisation des cases � cocher
     if (!($toValid = $this->_getSessionEvent())) {
         return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('agenda.error.cannotFindSession'), 'back' => CopixUrl::get('agenda|agenda|vueSemaine')));
     }
     //demande de mettre l'objet � jour en fonction des valeurs saisies dans le formulaire
     $this->_validFromForm($toValid);
     //var_dump($toValid);
     //on v�rifie les droits
     if ($serviceAuth->getCapability($toValid->id_agenda) < $serviceAuth->getWriteAgenda()) {
         return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('agenda.error.enableToWrite'), 'back' => CopixUrl::get('agenda|agenda|vueSemaine')));
     }
     $errors = $this->_check($toValid);
     //var_dump($toValid);
     if (count($errors) > 0) {
         //s'il y a des erreurs
         $this->_setSessionEvent($toValid);
         return CopixActionGroup::process('agenda|Event::getEdit', array('e' => 1, 'errors' => $errors));
     } else {
         $daoEvent =& CopixDAOFactory::getInstanceOf('event');
         $record = _record('event');
         $criteres = _daoSp();
         $criteres->addCondition('id_event', '=', $toValid->id_event);
         $resultat = $daoEvent->findBy($criteres);
         $modif = false;
         if (count($resultat) > 0) {
             //modification
             $record = $resultat[0];
             $modif = true;
         }
         //on fait l'enregistrement en base
         if (isset($toValid->endrepeat_event) && $toValid->endrepeat_event == 'nbfois' && $toValid->nb_fois != null) {
             //on determine la date de fin dans le cas o� il s'agit d'une r�p�tion n fois
             $obj = new AgendaService();
             $dateFin = $obj->getDateEndRepeatByNbFois($toValid->nb_fois, $toValid->repeat_event, $toValid->datefin_event);
         }
         //die ("dateFin=$dateFin");
         $record->id_agenda = $toValid->id_agenda;
         $record->title_event = $toValid->title_event;
         $record->desc_event = $toValid->desc_event;
         $record->place_event = $toValid->place_event;
         //$record->datedeb_event    = CopixDateTime::dateToTimestamp ($toValid->datedeb_event);//convertion des dates au format bdd
         $record->datedeb_event = CopixDateTime::dateToYYYYMMDD($toValid->datedeb_event, '/');
         //$record->datefin_event    = CopixDateTime::dateToTimestamp ($toValid->datefin_event);//convertion des dates au format bdd
         $record->datefin_event = CopixDateTime::dateToYYYYMMDD($toValid->datefin_event, '/');
         $record->heuredeb_event = $toValid->heuredeb_event;
         $record->heurefin_event = $toValid->heurefin_event;
         $record->alldaylong_event = isset($toValid->alldaylong_event) ? $toValid->alldaylong_event : 0;
         //si il y a r�p�tition de l'�v�nement
         if (isset($toValid->repeat) && $toValid->repeat == 1) {
             $record->everyday_event = $toValid->repeat_event == 'everyday_event' && $toValid->repeat == 1 ? 1 : 0;
             $record->everyweek_event = $toValid->repeat_event == 'everyweek_event' && $toValid->repeat == 1 ? 1 : 0;
             $record->everymonth_event = $toValid->repeat_event == 'everymonth_event' && $toValid->repeat == 1 ? 1 : 0;
             $record->everyyear_event = $toValid->repeat_event == 'everyyear_event' && $toValid->repeat == 1 ? 1 : 0;
             //date de fin de r�p�tition (� voir selon ce qui est coch�)
             if (isset($dateFin)) {
                 $record->endrepeatdate_event = CopixDateTime::dateToYYYYMMDD($dateFin, '/');
             } elseif (isset($toValid->dateendrepeat_event) && $toValid->endrepeat_event == 'date') {
                 $record->endrepeatdate_event = CopixDateTime::dateToTimestamp($toValid->dateendrepeat_event);
             } else {
                 $record->endrepeatdate_event = $toValid->endrepeat_event == '99999999' ? $toValid->endrepeat_event : null;
             }
         } else {
             $record->everyday_event = 0;
             $record->everyweek_event = 0;
             $record->everymonth_event = 0;
             $record->everyyear_event = 0;
             $record->endrepeatdate_event = null;
         }
         if ($modif == true) {
             //on fait une modification
             $daoEvent->update($record);
         } else {
             //on fait un ajout
             $daoEvent->insert($record);
             //if (!$record-id_event)
             //	return CopixActionGroup::process('agenda|Event::getEdit', array('e'=>1, 'errors'=>$errors));
         }
         //var_dump($record);
         //die("a");
         //on vide la session
         $this->_setSessionEvent(null);
         return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('agenda|agenda|vueSemaine'));
     }
 }