/** * Store a newly created resource in storage. * * @return Response */ public function store(Request $request) { if (count($request->input('acceso_urg_id')) > 0) { foreach ($request->input('acceso_urg_id') as $urg_id) { $acceso = new Acceso(); $acceso->user_id = $request->input('user_id'); $acceso->acceso_id = $urg_id; $acceso->acceso_type = 'Guia\\Models\\Urg'; $acceso->save(); } } return redirect()->action('UsuarioController@show', array($request->input('user_id'))); }
public function scopeAcceso($query, $user_id, $presupuesto) { if (!empty($user_id)) { $arr_tipos_proyecto = array(); $arr_urgs = array(); $arr_proyectos = array(); $accesos = Acceso::whereUserId($user_id)->get(); foreach ($accesos as $acceso) { if ($acceso->acceso_type == 'Guia\\Models\\TipoProyecto') { $arr_tipos_proyecto[] = $acceso->acceso_id; } if ($acceso->acceso_type == 'Guia\\Models\\Urg') { $arr_urgs[] = $acceso->acceso_id; } if ($acceso->acceso_type == 'Guia\\Models\\Proyecto') { $arr_proyectos[] = $acceso->acceso_id; } } if (count($arr_tipos_proyecto) > 0 || count($arr_urgs) > 0 || count($arr_proyectos) > 0) { if (count($arr_tipos_proyecto) > 0) { $query->whereIn('tipo_proyecto_id', $arr_tipos_proyecto); } if (count($arr_urgs) > 0 || count($arr_proyectos) > 0) { $query->whereNested(function ($query) use($arr_urgs, $arr_proyectos) { if (count($arr_urgs) > 0) { $query->orWhere(function ($query) use($arr_urgs) { $query->whereIn('urg_id', $arr_urgs); }); } if (count($arr_proyectos) > 0) { $query->orWhere(function ($query) use($arr_proyectos) { $query->whereIn('id', $arr_proyectos); }); } }); } //Filtro por fecha $query->whereNested(function ($query) use($presupuesto) { $query->whereBetween('inicio', array($presupuesto . '-01-01', $presupuesto . '-12-31')); $query->orWhere(function ($query) use($presupuesto) { $query->where('inicio', '<', $presupuesto . '-01-01'); $query->where('fin', '=', '0000-00-00'); }); $query->orWhere(function ($query) use($presupuesto) { $query->where('inicio', '<', $presupuesto . '-01-01'); $query->where('fin', '>=', $presupuesto . '-01-01'); }); }); } else { $query->whereId(0); } } else { $query->whereId(0); } $query->orderBy('proyecto'); return $query; }