%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/apache/htdocs/app/Http/Controllers/
Upload File :
Create Path :
Current File : //usr/local/apache/htdocs/app/Http/Controllers/ClientController.php

<?php

namespace App\Http\Controllers;

use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\MessageBag;

class ClientController extends Controller
{

    public function index()
    {

        $clients = User::role('client')->paginate(20);
        return view('Clients.index', compact('clients'));
    }

    public function store(Request $request, $id=0)
    {
   
        $errors = new MessageBag();

        $validator = Validator::make($request->all(), [

            'nbdossier' => 'required_without:nbdossier_holder',
            'manager' => 'required',
            'phone' => 'required|unique:users,phone,'.$id,
            'email' => 'required|unique:users,email,'.$id,
            'adress' => 'required',
            'ville' => 'required',
            'date_j' => 'required',
            'cin' => 'required',
            'ice' =>'required',
            'rc' => 'required',
            'upload' => 'required_without:upload_placeholder',
            'agrement_number' => 'required'
        ]);

        if ($validator->fails()) {
            return redirect(url()->previous())
                ->with('show_client_modal', true)
                ->withErrors($validator)
                ->withInput();
        }

        if( !$id && User::hasMeta('nbdossier', $request->nbdossier)->role('client')->exists()) {
            $errors->add('nbdossier_exists', 'Le nombre de dossier est exists');
            return redirect(url()->previous())
                ->with('show_client_modal', true)
                ->withErrors($errors)
                ->withInput();
        }
        
        $client = new User;
        if( $id ) {
            $client = User::find($id);
        }
        
        // if ($request->remarques) {
        //     $client = User::role('client')->find($request->remarques);
        // }

        if( $request->hasFile('upload') )
            $upload = asset(Storage::url( $request->file('upload')->store('public') ));
        else
            $upload = @$request->upload_placeholder;

        
        if( !$upload ) {
            
            $errors->add('failed_upload_file', __('errors.failed_upload_file'));
            return redirect(url()->previous())
                ->with('show_client_modal', true)
                ->withErrors($errors)
                ->withInput();
        }

        
        $validated = $request->only(['name', 'email', 'phone']);

        $validated['password'] = Hash::make($request->phone);

        $meta = $request->only(['nbdossier', 'manager', 'adress', 'ville','date_j', 'website','rc','ice','cin','agrement_number','remarques']);

        $meta['upload'] = $upload;

        $client->fill($validated);

        if ($client->save()) {
            $client->assignRole('client');
            $client->saveMeta($meta);
            if( $request->from_route ) {
                return redirect($request->from_route)->with('message', __('Le client à été modifier avec succès'));
            }
            return redirect()->route('clients')->with('message', __('Le client à été modifier avec succès'));
        
        } else {
            $errors->add('unknown_error', __('errors.unknown_error'));
            return redirect(url()->previous())
                ->with('show_client_modal', true)
                ->withErrors($errors)
                ->withInput();
        }
    }

    public function edit($id){

        $client = User::role('client')->find($id);

        return view('Clients.update',['client' => $client]);
    }

    

    public function destroy(Request $request)
    {
        $data = User::role('client')->find($request->id);

        if (!$data || !$data->exists()) {

            return redirect()->route('clients')->with('error', 'Le client n\'existe pas');
        
        } else if (!$data->delete()) {

            return redirect()->route('clients')->with('error', 'Vous ne pouvez pas supprimer le client');
        }

        return redirect()->route('clients')->with('status', 'Le client à été supprimer avec succès');
    }

    public function deleteAll(Request $request)
    {

        $ids = explode(',', $request->allids);

        if (!User::whereIn('id', $ids)->delete()) {

            return  redirect()->route('clients')->with('error', 'Erreur ');
        
        } else {

            return  redirect()->route('clients')->with('status', 'vous avez supprimer toutes les clients avec succès');
        }
    }


}

Zerion Mini Shell 1.0