/** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { if (Auth::user()->securityLevel > 20) { // 1) Busco todos los almacenes de la empresa que tiene seleccionada el usuario $arrayW = DB::table('warehouses')->select('id')->where('company_id', Auth::user()->current_company_id)->get(); $arrayW = collect($arrayW); // 2) Busco los movimientos de esos almacenes $movements = Movement::whereIn('status_id', ['1', '2'])->whereIn('origin_id', $arrayW->lists('id')->toArray())->orderBy('id', 'desc')->paginate(10); } else { // Si es un técnico, Busco los movimientos solo de ese usuario $movements = Movement::whereIn('status_id', ['1', '2'])->where('user_id', Auth::user()->id)->orderBy('id', 'desc')->paginate(10); } $title = 'Últimos Movimientos'; return view('movements.index', compact('movements', 'title')); }
public function movimientosPorUsuario(Request $request) { $desde = date_format(date_create($request->fechaDesde), "Y/m/d H:i:s"); $hasta = date_format(date_create($request->fechaHasta), "Y/m/d 23:59:99"); if ($request->rdUser == 'all') { // Traigo todos los almacenes (que no han sido borrados) que pertenecen a la compañía seleccionada por usuario $arrayW = collect(DB::table('warehouses')->select('id')->whereNull('deleted_at')->where('company_id', $request->companyList)->get()); // Traigo todos los movimientos sobre los almacenes seleccionados $movements = Movement::whereIn('origin_id', $arrayW->lists('id')->toArray())->where('created_at', '>=', $desde)->where('created_at', '<=', $hasta)->whereIn('status_id', [1, 2, 4])->orderBy('user_id', 'desc')->get(); } else { $movements = Movement::where('user_id', $request->user)->whereIn('status_id', [1, 2, 4])->orderBy('id', 'desc')->get(); } return view('reports.movimientosPorUsuario', compact('movements')); }