/**
  * 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'));
     }
 }