public function nuevo_usuario()
 {
     if (Input::hasPost("sesion")) {
         $u = new Sesion(Input::post("sesion"));
         $u->password = md5($u->password);
         $password = md5(Input::post("password2"));
         if ($u->password == $password) {
             if ($u->save()) {
                 Flash::valid("Usuario creado");
                 Input::delete();
             } else {
                 Flash::error("Error");
             }
         } else {
             Flash::error("Las contraseñas deben coincidir");
         }
     }
 }
 /**
  * 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->aSesion !== null) {
             if ($this->aSesion->isModified() || $this->aSesion->isNew()) {
                 $affectedRows += $this->aSesion->save($con);
             }
             $this->setSesion($this->aSesion);
         }
         if ($this->isNew()) {
             $this->modifiedColumns[] = SesionLogPeer::ID_LOG;
         }
         // If this object has been modified, then save it to the database.
         if ($this->isModified()) {
             if ($this->isNew()) {
                 $pk = SesionLogPeer::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->setIdLog($pk);
                 //[IMV] update autoincrement primary key
                 $this->setNew(false);
             } else {
                 $affectedRows += SesionLogPeer::doUpdate($this, $con);
             }
             $this->resetModified();
             // [HL] After being saved an object is no longer 'modified'
         }
         $this->alreadyInSave = false;
     }
     return $affectedRows;
 }
 /**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store()
 {
     if (Auth::check()) {
         $data["inside_url"] = Config::get('app.inside_url');
         $data["user"] = Session::get('user');
         $dimensiones = Dimension::all()->count();
         // Verifico si el usuario es un Webmaster
         if ($data["user"]->idrol == 1 || $data["user"]->idrol == 2 || $data["user"]->idrol == 3 || $data["user"]->idrol == 4) {
             // Validate the info, create rules for the inputs
             $rules = array('nombre_capacitacion' => 'required', 'tipo_capacitacion' => 'required', 'modalidad_capacitacion' => 'required', 'descripcion' => 'required', 'codigo_patrimonial' => 'required_if:tipo_capacitacion,1|required_if:tipo_capacitacion,2', 'departamento' => 'required', 'responsable' => 'required', 'servicio_clinico' => 'required', 'fecha_ini' => 'required|date', 'fecha_fin' => 'required|date', 'numero_sesiones' => 'required|numeric', 'horasxsesion' => 'required|numeric', 'objetivo' => 'required|alpha_num_spaces', 'personas_involucradas' => 'required|alpha_num_spaces', 'competencias_requeridas' => 'required|alpha_num_spaces', 'archivo' => 'required');
             $messages = array('fecha_ini.required' => 'El campo Fecha Inicio es requerido', 'fecha_fin.required' => 'El campo Fecha Final es requerido');
             // Run the validation rules on the inputs from the form
             $validator = Validator::make(Input::all(), $rules, $messages);
             // If the validator fails, redirect back to the form
             if ($validator->fails()) {
                 return Redirect::to('capacitacion/create')->withErrors($validator)->withInput(Input::all());
             } else {
                 $capacitacion = new Capacitacion();
                 $capacitacion->nombre = Input::get('nombre_capacitacion');
                 $capacitacion->id_tipo = Input::get('tipo_capacitacion');
                 $capacitacion->id_modalidad = Input::get('modalidad_capacitacion');
                 $capacitacion->descripcion = Input::get('descripcion');
                 if (Input::get('tipo_capacitacion') != 3) {
                     $activo = Activo::searchActivosByCodigoPatrimonial(Input::get('codigo_patrimonial'))->get();
                     if (!$activo->isEmpty()) {
                         $capacitacion->id_activo = $activo[0]->idactivo;
                     }
                 }
                 $capacitacion->id_responsable = Input::get('responsable');
                 $capacitacion->id_servicio_clinico = Input::get('servicio_clinico');
                 $capacitacion->fecha_ini = date("Y-m-d", strtotime(Input::get('fecha_ini')));
                 $capacitacion->fecha_fin = date("Y-m-d", strtotime(Input::get('fecha_fin')));
                 $numero_sesiones = Input::get('numero_sesiones');
                 if ($numero_sesiones <= 0) {
                     Session::flash('error', 'La capacitación debe tener una o más sesiones.');
                     return Redirect::to('capacitacion/create')->withInput(Input::all());
                 }
                 $capacitacion->numero_sesiones = $numero_sesiones;
                 $capacitacion->horasxsesiones = Input::get('horasxsesion');
                 //Para el plan de capacitacion
                 $capacitacion->objetivo = Input::get('objetivo');
                 $capacitacion->personal_involucrado = Input::get('personas_involucradas');
                 $capacitacion->competencia = Input::get('competencias_requeridas');
                 $capacitacion->save();
                 for ($i = 1; $i < $numero_sesiones + 1; $i++) {
                     $sesion = new Sesion();
                     $sesion->numero_sesion = $i;
                     $sesion->id_capacitacion = $capacitacion->id;
                     $sesion->save();
                     $material_sesion = new MaterialSesion();
                     $material_sesion->idsesion = $sesion->id;
                     $material_sesion->save();
                 }
                 $details_nombre = Input::get('details_nombre');
                 $details_descripcion = Input::get('details_descripcion');
                 $details_rol = Input::get('details_rol');
                 $details_institucion = Input::get('details_institucion');
                 $cantidad = count($details_nombre);
                 for ($i = 0; $i < $cantidad; $i++) {
                     $personal_externo = new PersonalExternoCapacitacion();
                     $personal_externo->nombre = $details_nombre[0];
                     $personal_externo->descripcion = $details_descripcion[0];
                     $personal_externo->rol = $details_rol[0];
                     $personal_externo->institucion = $details_institucion[0];
                     $personal_externo->id_capacitacion = $capacitacion->id;
                     $personal_externo->save();
                 }
                 $capacitacion->codigo = 'C-' . date('Y') . '-' . $capacitacion->id;
                 if (Input::hasFile('archivo')) {
                     $archivo = Input::file('archivo');
                     $rutaDestino = 'uploads/documentos/rrhh/Plan de Capacitacion/' . $capacitacion->codigo . '/';
                     $nombreArchivo = $archivo->getClientOriginalName();
                     $nombreArchivoEncriptado = Str::random(27) . '.' . pathinfo($nombreArchivo, PATHINFO_EXTENSION);
                     $uploadSuccess = $archivo->move($rutaDestino, $nombreArchivoEncriptado);
                     $capacitacion->nombre_archivo = $nombreArchivo;
                     $capacitacion->nombre_archivo_encriptado = $nombreArchivoEncriptado;
                     $capacitacion->url = $rutaDestino;
                 }
                 $capacitacion->save();
                 Session::flash('message', 'Se registró correctamente la capacitación.');
                 return Redirect::to('capacitacion/create');
             }
         } else {
             return View::make('error/error', $data);
         }
     } else {
         return View::make('error/error', $data);
     }
 }
 function registrarVisita()
 {
     //Guardamos en la tabla usuarios que ha sido la ultima
     $this->setUltimaVisita(Date::format(FMT_DATETIMEMYSQL));
     $this->save();
     //Guardamos la sesion actual
     $sesion = new Sesion();
     $sesion->setUsuario($this);
     $sesion->save();
     $this->sesion = $sesion;
 }