public function submit_create_convocatoria() { if (Auth::check()) { $data["inside_url"] = Config::get('app.inside_url'); $data["user"] = Session::get('user'); $data["permisos"] = Session::get('permisos'); if (in_array('side_nueva_convocatoria', $data["permisos"])) { // Validate the info, create rules for the inputs $attributes = array('nombre' => 'Nombre de Convocatoria', 'fecha_inicio' => 'Fecha de Inicio', 'fecha_fin' => 'Fecha de Fin'); $messages = array(); $rules = array('nombre' => 'required|alpha_num_dash|min:2|max:100|unique:periodos', 'fecha_inicio' => 'required', 'fecha_fin' => 'required'); // Run the validation rules on the inputs from the form $validator = Validator::make(Input::all(), $rules, $messages, $attributes); // If the validator fails, redirect back to the form if ($validator->fails()) { return Redirect::to('convocatorias/create_convocatoria')->withErrors($validator)->withInput(Input::all()); } else { // Creo primero a la persona $fecha_inicio = date('Y-m-d', strtotime(Input::get('fecha_inicio'))); $fecha_fin = date('Y-m-d', strtotime(Input::get('fecha_fin'))); $interseccion_fecha_inicio = Periodo::getPeriodosIntersectionWithDatesNewPeriod($fecha_inicio)->get(); $interseccion_fecha_fin = Periodo::getPeriodosIntersectionWithDatesNewPeriod($fecha_fin)->get(); if ($fecha_inicio < $fecha_fin) { if ($interseccion_fecha_inicio->isEmpty() && $interseccion_fecha_fin->isEmpty()) { $convocatoria = new Periodo(); $convocatoria->nombre = Input::get('nombre'); $convocatoria->fecha_inicio = $fecha_inicio; $convocatoria->fecha_fin = $fecha_fin; $convocatoria->save(); Session::flash('message', 'Se registró correctamente la convocatoria.'); // Llamo a la función para registrar el log de auditoria $descripcion_log = "Se creó el periodo con id {{$convocatoria->idperiodos}}"; Helpers::registrarLog(3, $descripcion_log); return Redirect::to('convocatorias/create_convocatoria'); } else { Session::flash('error', 'Las fechas de inicio o fin se intersectan con las fechas de otra convocatoria.'); return Redirect::to('convocatorias/create_convocatoria')->withInput(Input::all()); } } else { Session::flash('error', 'La Fecha de Inicio debe ser menor a la Fecha Fin.'); return Redirect::to('convocatorias/create_convocatoria')->withInput(Input::all()); } } } else { // Llamo a la función para registrar el log de auditoria $descripcion_log = "Se intentó acceder a la ruta '" . Request::path() . "' por el método '" . Request::method() . "'"; Helpers::registrarLog(10, $descripcion_log); Session::flash('error', 'Usted no tiene permisos para realizar dicha acción.'); return Redirect::to('/dashboard'); } } else { return View::make('error/error'); } }
/** * Performs the work of inserting or updating the row in the database. * * If the object is new, it inserts it; otherwise an update is performed. * All related objects are also updated in this method. * * @param PropelPDO $con * @return int The number of rows affected by this insert/update and any referring fk objects' save() operations. * @throws PropelException * @see save() */ protected function doSave(PropelPDO $con) { $affectedRows = 0; // initialize var to track total num of affected rows if (!$this->alreadyInSave) { $this->alreadyInSave = true; // We call the save method on the following object(s) if they // were passed to this object by their coresponding set // method. This object relates to these object(s) by a // foreign key reference. if ($this->aHorario !== null) { if ($this->aHorario->isModified() || $this->aHorario->isNew()) { $affectedRows += $this->aHorario->save($con); } $this->setHorario($this->aHorario); } if ($this->aDisciplina !== null) { if ($this->aDisciplina->isModified() || $this->aDisciplina->isNew()) { $affectedRows += $this->aDisciplina->save($con); } $this->setDisciplina($this->aDisciplina); } if ($this->aProfessor !== null) { if ($this->aProfessor->isModified() || $this->aProfessor->isNew()) { $affectedRows += $this->aProfessor->save($con); } $this->setProfessor($this->aProfessor); } if ($this->aPeriodo !== null) { if ($this->aPeriodo->isModified() || $this->aPeriodo->isNew()) { $affectedRows += $this->aPeriodo->save($con); } $this->setPeriodo($this->aPeriodo); } if ($this->aLocal !== null) { if ($this->aLocal->isModified() || $this->aLocal->isNew()) { $affectedRows += $this->aLocal->save($con); } $this->setLocal($this->aLocal); } if ($this->aWeek !== null) { if ($this->aWeek->isModified() || $this->aWeek->isNew()) { $affectedRows += $this->aWeek->save($con); } $this->setWeek($this->aWeek); } if ($this->isNew()) { $this->modifiedColumns[] = GradeunitPeer::ID; } // If this object has been modified, then save it to the database. if ($this->isModified()) { if ($this->isNew()) { $pk = GradeunitPeer::doInsert($this, $con); $affectedRows += 1; // we are assuming that there is only 1 row per doInsert() which // should always be true here (even though technically // BasePeer::doInsert() can insert multiple rows). $this->setId($pk); //[IMV] update autoincrement primary key $this->setNew(false); } else { $affectedRows += GradeunitPeer::doUpdate($this, $con); } $this->resetModified(); // [HL] After being saved an object is no longer 'modified' } $this->alreadyInSave = false; } return $affectedRows; }