=', Auth::user()->role); if ($request->search) { $this->searchQuery( $query, $request->search, null, 'firstname', 'lastname', 'email', ); } //end if $this->sortQuery($query); $customers = $query->paginate(25); $searchFields = trans('Prénom,Nom,Email'); return view('bo.customers.index', compact('customers', 'searchFields')); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { return view('bo.users.create'); } /** * Show the form for editing the specified resource. * * @param \App\Models\Customer $customer * @return \Illuminate\Contracts\View\View|\Illuminate\Http\RedirectResponse */ public function edit(Customer $customer) { if (!$customer->existsInCrm()) { return DB::transaction(function () use ($customer) { Objectives::query()->where('customer_id', $customer->id)->delete(); $customer->delete(); return back()->with( 'error', trans('Cet utilisateur n\'existe plus dans la CRM et a été supprimé localement.') ); }); } return view('bo.customers.edit', [ 'customer' => $customer ]); } /** * Update the specified resource in storage. * * @param \App\Http\Requests\Bo\UpdateCustomerRequest $request * @param \App\Models\Customer $customer * @return \Illuminate\Http\RedirectResponse */ public function update(UpdateCustomerRequest $request, Customer $customer) { return DB::transaction(function () use ($request, $customer) { $customer->api_data->fill($request->validated()); $customer->fill(\array_intersect_key( $request->validated(), \array_flip($customer->getFillable()), )); // * Theses props arent fillable $customer->tc_id = \intval($request->post('tc_id')); $customer->role = CustomerTypeEnum::make(\intval($request->post('role'))); $send_openaccess_mail = false; if ($customer->role->equals(CustomerTypeEnum::professional)) { // * if num client has been filled then il va falloir envoyer un mail d'information d'accès $send_openaccess_mail = empty($customer->getOriginal('client_number')) && !empty($customer->client_number); } $customer->updateApiData(new CustomerCrmResource($customer)); $customer->saveOrFail(); // * envoi du mail d'ouverture. if ($send_openaccess_mail) { Mail::to($customer->email)->send(new InformProOpenAcess($customer)); } if ($customer->saveOrFail()) { return redirect() ->route( 'bo.customers.edit', $customer ) ->with('success', trans( ':model a été mis à jour', ['model' => 'Client'] )); } return back(); }); } }