validOrFail($restaurante_id); $restaurante = Restaurante::findOrFail($restaurante_id); $ingresos = $restaurante->bodegaIngresos()->with('ingrediente'); $paginate = app(PaginatorService::class)->paginate( perPage: $request->input('per_page', 15), page: $request->input('page', 1), total: $ingresos->count(), route: 'bodega.ingresos', data: ['restaurante_id' => $restaurante_id], ); $data = $ingresos->get() ->skip($paginate['from'] - 1) ->take($paginate['per_page']) ->all(); return response()->json([ 'pagination' => $paginate, 'data' => $data ]); } /** * Obtiene de forma paginada los egresos de productos */ public function egresos(Request $request, $restaurante_id) { app(UuidService::class)->validOrFail($restaurante_id); $restaurante = Restaurante::findOrFail($restaurante_id); $egresos = $restaurante->bodegaEgresos(); $paginate = app(PaginatorService::class)->paginate( perPage: $request->input('per_page', 15), page: $request->input('page', 1), total: $egresos->count(), route: 'bodega.egresos', data: ['restaurante_id' => $restaurante_id], ); $data = $egresos->get() ->skip($paginate['from'] - 1) ->take($paginate['per_page']) ->all(); return response()->json([ 'pagination' => $paginate, 'data' => $data ]); } /** * Obtiene de forma paginada los movimientos de productos */ public function movimientos(Request $request, $restaurante_id) { app(UuidService::class)->validOrFail($restaurante_id); $restaurante = Restaurante::findOrFail($restaurante_id); $movimientos = $restaurante->bodegaMovimientos(); $paginate = app(PaginatorService::class)->paginate( perPage: $request->input('per_page', 15), page: $request->input('page', 1), total: $movimientos->count(), route: 'bodega.movimientos', data: ['restaurante_id' => $restaurante_id], ); $data = $movimientos->get() ->skip($paginate['from'] - 1) ->take($paginate['per_page']) ->all(); return response()->json([ 'pagination' => $paginate, 'data' => $data ]); } /** * Obtiene de forma paginada el estado actual de la bodega */ public function actual(Request $request, $restaurante_id) { app(UuidService::class)->validOrFail($restaurante_id); $restaurante = Restaurante::findOrFail($restaurante_id); $actual = $restaurante->bodegaActual(); $paginate = app(PaginatorService::class)->paginate( perPage: $request->input('per_page', 15), page: $request->input('page', 1), total: $actual->count(), route: 'bodega.actual', data: ['restaurante_id' => $restaurante_id], ); $data = $actual->get() ->skip($paginate['from'] - 1) ->take($paginate['per_page']) ->all(); return response()->json([ 'pagination' => $paginate, 'data' => $data ]); } }