Exemple #1
0
 /**
  * //Edita los valores de $this->recurso en memoria (no salva a BD)
  * @param $datos array
  * @return true
  */
 public function edit($datos)
 {
     $data = array('nombre' => $datos['nombre'], 'tipo' => $datos['tipo'], 'grupo_id' => 0, 'contenedor_id' => $datos['padre_id'], 'descripcion' => $datos['descripcion'], 'id_lugar' => $datos['id_lugar'], 'acl' => sgrACL::buildJsonAcl($datos['modo'], $datos['roles']));
     $this->setdatos($data);
     return true;
 }
 /**
  * //Edita los valores de $this->recurso en memoria (no salva a BD)
  *
  */
 public function edit($datos)
 {
     $acl = sgrACL::buildJsonAcl($datos['modo'], $datos['roles']);
     $data = array('nombre' => $datos['nombre'], 'tipo' => $datos['tipo'], 'grupo_id' => $datos['padre_id'], 'contenedor_id' => 0, 'descripcion' => $datos['descripcion'], 'id_lugar' => $datos['id_lugar'], 'acl' => $acl);
     $this->setdatos($data);
     foreach ($this->items as $item) {
         $item->updateAcl($acl);
         $item->save();
     }
     return true;
 }
 /**
  * //Añade un nuevo recurso a la base de datos de cualquier tipo (puesto,equipo,espacio y tipoequipos)
  * // llamadas desde: admin\modalrecursos\add.blade.php
  * @param Input::get('nombre')         string
  * @param Input::get('descripcion')    string
  * @param Input::get('tipo')           string
  * @param Input::get('id_lugar')       string
  * @param Input::get('contenedor_id')  int  
  * @param Input::get('modo')           int (0|1)
  * @param Input::get('roles')          array
  *
  * @return $result                     array(boolean,string,array)    
  */
 public function AjaxAddNuevoRecurso()
 {
     // :)
     //out
     $result = array('error' => false, 'msg' => '', 'errors' => array());
     //Input
     $nombre = Input::get('nombre');
     $tipo = Input::get('tipo');
     //espacio|tipoequipos
     $contenedor_id = Input::get('contenedor_id', '0');
     $modo = Input::get('modo');
     //0=gestión con validación, 1=gestión sin validación
     $descripcion = Input::get('descripcion', '');
     $id_lugar = Input::get('id_lugar', '');
     $roles = Input::get('roles');
     //roles con acceso para poder reservar (array())
     $tipopadre = Input::get('tipopadre', '');
     //El elemento padre o contenedor de un recurso puede ser un grupo u otro recurso
     //Validación de formulario
     $rules = array('nombre' => 'required|unique:recursos,nombre,NULL,id,deleted_at,NULL', 'tipo' => 'required|in:' . implode(',', Config::get('options.recursos')), 'contenedor_id' => 'required', 'modo' => 'required|in:' . implode(',', Config::get('options.modoGestion')));
     $messages = array('required' => 'El campo <strong>:attribute</strong> es obligatorio....', 'nombre.unique' => 'Existe un recurso con el mismo nombre...', 'tipo.in' => 'El tipo de recurso no está definido ..', 'modo.in' => 'Modo de Gestión de solicitudes de reserva no definido....', 'contenedor_idexists' => 'Elemento contenedor no encontrado en BD.');
     $validator = Validator::make(Input::all(), $rules, $messages);
     $validator->sometimes('contenedor_idexists', '', function ($input) {
         if ($input['tipoPadre'] == 'recurso') {
             return Recurso::findOrFail($input['contenedor_id'])->count() > 0;
         }
         if ($input['tipoPadre'] == 'grupo') {
             return GrupoRecurso::findOrFail($input['contenedor_id'])->count() > 0;
         }
     });
     if ($validator->fails()) {
         //Si errores en el formulario
         $result['error'] = true;
         $result['errors'] = $validator->errors()->toArray();
     } else {
         if ($tipopadre == 'recurso') {
             $grupo_id = 0;
             $contenedor_id = $contenedor_id;
         } else {
             if ($tipopadre == 'grupo') {
                 $grupo_id = $contenedor_id;
                 $contenedor_id = 0;
             }
         }
         //Si no hay errores en el formulario
         $data = array('nombre' => $nombre, 'tipo' => $tipo, 'grupo_id' => $grupo_id, 'contenedor_id' => $contenedor_id, 'descripcion' => $descripcion, 'id_lugar' => $id_lugar, 'acl' => sgrACL::buildJsonAcl($modo, $roles));
         $sgrRecurso = Factoria::getRecursoInstance(new Recurso());
         $sgrRecurso->setdatos($data);
         $sgrRecurso->save();
         $result['msg'] = (string) View::make('msg.success')->with(array('msg' => Config::get('msg.success')));
     }
     return $result;
 }