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/CustomerController.php
<?php



namespace App\Http\Controllers;



use Illuminate\Http\Request;

use App\Models\Customer;

use App\Models\User;



class CustomerController extends Controller

{

    public function __construct() {

        // Staff Permission Check

        $this->middleware(['permission:view_all_customers'])->only('index');

        $this->middleware(['permission:login_as_customer'])->only('login');

        $this->middleware(['permission:ban_customer'])->only('ban');

        $this->middleware(['permission:delete_customer'])->only('destroy');

    }



    /**

     * Display a listing of the resource.

     *

     * @return \Illuminate\Http\Response

     */

    public function index(Request $request)

    {

        $sort_search = null;

        $users = User::where('user_type', 'customer')->where('email_verified_at', '!=', null)->orderBy('created_at', 'desc');

        if ($request->has('search')){

            $sort_search = $request->search;

            $users->where(function ($q) use ($sort_search){

                $q->where('name', 'like', '%'.$sort_search.'%')->orWhere('email', 'like', '%'.$sort_search.'%');

            });

        }

        $users = $users->paginate(15);

        return view('backend.customer.customers.index', compact('users', 'sort_search'));

    }



    /**

     * Show the form for creating a new resource.

     *

     * @return \Illuminate\Http\Response

     */

    public function create()

    {

        //

    }



    /**

     * Store a newly created resource in storage.

     *

     * @param  \Illuminate\Http\Request  $request

     * @return \Illuminate\Http\Response

     */

    public function store(Request $request)

    {

        /*$request->validate([

            'name'          => 'required',

            'email'         => 'required|unique:users|email',

            'phone'         => 'required|unique:users',

        ]);

        

        $response['status'] = 'Error';

        

        $user = User::create($request->all());

        

        $customer = new Customer;

        

        $customer->user_id = $user->id;

        $customer->save();

        

        if (isset($user->id)) {

            $html = '';

            $html .= '<option value="">

                        '. translate("Walk In Customer") .'

                    </option>';

            foreach(Customer::all() as $key => $customer){

                if ($customer->user) {

                    $html .= '<option value="'.$customer->user->id.'" data-contact="'.$customer->user->email.'">

                                '.$customer->user->name.'

                            </option>';

                }

            }

            

            $response['status'] = 'Success';

            $response['html'] = $html;

        }

        

        echo json_encode($response);*/

    }



    /**

     * Display the specified resource.

     *

     * @param  int  $id

     * @return \Illuminate\Http\Response

     */

    public function show($id)

    {

        //

    }



    /**

     * Show the form for editing the specified resource.

     *

     * @param  int  $id

     * @return \Illuminate\Http\Response

     */

    public function edit($id)

    {

        //

    }



    /**

     * Update the specified resource in storage.

     *

     * @param  \Illuminate\Http\Request  $request

     * @param  int  $id

     * @return \Illuminate\Http\Response

     */

    public function update(Request $request, $id)

    {

        //

    }



    /**

     * Remove the specified resource from storage.

     *

     * @param  int  $id

     * @return \Illuminate\Http\Response

     */

    public function destroy($id)

    {

        $customer = User::findOrFail($id);

        $customer->customer_products()->delete(); 



        User::destroy($id);

        flash(translate('Customer has been deleted successfully'))->success();

        return redirect()->route('customers.index');

    }

    

    public function bulk_customer_delete(Request $request) {

        if($request->id) {

            foreach ($request->id as $customer_id) {

                $customer = User::findOrFail($customer_id);

                $customer->customer_products()->delete(); 

                $this->destroy($customer_id);

            }

        }

        

        return 1;

    }



    public function login($id)

    {

        $user = User::findOrFail(decrypt($id));



        auth()->login($user, true);



        return redirect()->route('dashboard');

    }



    public function ban($id) {

        $user = User::findOrFail(decrypt($id));



        if($user->banned == 1) {

            $user->banned = 0;

            flash(translate('Customer UnBanned Successfully'))->success();

        } else {

            $user->banned = 1;

            flash(translate('Customer Banned Successfully'))->success();

        }



        $user->save();

        

        return back();

    }

}