', now()], ['status', 1] ])->get(); $articles = Articles::where('status', 1)->orderBy('updated_at', 'DESC')->get(); $categories = ArticlesCategories::whereHas('articles', function($q) { $q->where('status', 1); })->get(); $montantReductions = 0.0; foreach ($reductions as $reduc) $montantReductions += $reduc->face_value; $nbCustomers = Customers::count(); $notifications = 0; if (Auth::guard('customer')->check()) { $notifications = $this->getNotifications(Auth::guard('customer')->user()); } return view('front.club.index', compact('montantReductions', 'nbCustomers', 'articles', 'categories', 'notifications')); } public function infos() { $customer = Auth::guard('customer')->user(); if (!$customer) abort(404); $crm = new ApiV1(config('crm.CRM_ENDPOINT'), config('crm.CRM_API_TOKEN')); $crmCustomer = $crm->getCustomer($customer->crm_id); // TODO : Gérer l'erreur de non connexion a la CRM dans la vue if ($crmCustomer->status === "KO") return back()->withErrors(__("Une erreur est survenue, merci de réessayer ultérieurement.")); $crmInfos = $crmCustomer->user; $birthDate = explode('-', $crmInfos->birth_date); $notifications = $this->getNotifications($customer); return view('front.club.informations', compact('customer', 'notifications', 'crmInfos', 'birthDate')); } /** * Send a request to the CRM to change the given customer's informations * @param Request $request */ public function updateInfos(UpdateInfosRequest $request) { // TODO : Activer le changement d'email quand ce sera possible dans la CRM $crm = new ApiV1(config('crm.CRM_ENDPOINT'), config('crm.CRM_API_TOKEN')); $crmCustomer = $crm->updateCustomer( Auth::guard('customer')->user()->crm_id, $request->firstname, $request->lastname, $request->optin !== null ? 1 : 0, $request->year . '-' . $request->month . '-' . $request->day, $request->phone, $request->address, null, $request->city, $request->postcode, null ); if ($crmCustomer->status === "KO") return redirect()->route('account.infos')->withErrors(__("Une erreur est survenue, merci de réessayer ultérieurement.")); return redirect()->route('account.infos')->with('success', __("Vos informations ont bien été enregistrées.")); } /** * Retrieve the number of notifications the current authenticated user has * @param Customer $customer The user whose number of notifications we want to retrieve */ private function getNotifications($customer) { $result = 0; // TODO : Récupérer le nombre de notifications du customer return $result; } }