Ejemplo n.º 1
0
 /**
  * //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;
 }
Ejemplo n.º 2
0
 /**
  * @param Input::get('grupo_id')   int
  *
  * @return $result array
  */
 public function del()
 {
     // :)
     //Input
     $id = Input::get('grupo_id', '');
     //Output
     $respuesta = array('errors' => array(), 'msg' => '', 'error' => false);
     //Validate
     $rules = array('grupo_id' => 'required|exists:grupoRecursos,id');
     $messages = array('required' => 'El campo <strong>:attribute</strong> es obligatorio....', 'exists' => 'No existe identificador de grupo...');
     $validator = Validator::make(Input::all(), $rules, $messages);
     //Save Input or return error
     if ($validator->fails()) {
         $result['errors'] = $validator->errors()->toArray();
         $result['error'] = true;
         return $result;
     }
     $grupo = GrupoRecurso::findOrFail($id);
     if ($grupo->recursos->count() > 0) {
         $result['errors'] = array('grupo_id' => 'No se puede eliminar un grupo con elementos');
         $result['error'] = true;
         return $result;
     }
     $administradores = $grupo->administradores();
     foreach ($administradores as $administrador) {
         $supervisor->detach($administrador->id);
     }
     $validadores = $grupo->validadores();
     foreach ($validadores as $validador) {
         $validador->detach($validador->id);
     }
     $gestores = $grupo->gestores();
     foreach ($gestores as $gestor) {
         $tecnico->detach($gestor->id);
     }
     $grupo->delete();
     $result['msg'] = (string) View::make('msg.success')->with(array('msg' => Config::get('msg.delgruposuccess')));
     return $result;
 }