/** * Retourne de plus amples informations sur un objet mis en vente * * @param Request $request * @param int $item_id Identifiant de l'item * @return $this|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector */ public function see(Request $request, $item_id) { $item = Items::withTrashed()->select(['id', 'user_id', 'category_id', 'name', 'description', 'photo', 'price', 'date_start', 'date_end'])->where('id', $item_id)->first(); $isSeller = $item != null ? $item->isSeller() : false; $starting = false; // La vente n'a pas encore débutée $started = false; // La vente est en cours $finished = false; // La vente est terminé // Une vente qui n'a pas démarrée ou qui est terminée n'est accessible par personne, sauf par le propriétaire de la vente if ($item !== null) { // La vente démarrera bientôt if (strtotime($item->date_start) - time() > 0) { if ($isSeller) { $starting = true; $request->session()->flash('message', 'info|La vente débutera le ' . strftime('%A %d %B %Y', strtotime($item->date_start)) . '.'); } // La vente est terminée } elseif (strtotime($item->date_end) - time() < 0) { $finished = true; $request->session()->flash('message', 'info|La vente s\'est terminée le ' . strftime('%A %d %B %Y', strtotime($item->date_end)) . '.'); // La vente est en cours } else { $started = true; } } // Voir le tableau des accès selon les différents critères dans le cahier des charges if ($item === null || !$isSeller && $starting) { $request->session()->flash('message', 'danger|Cette vente n\'existe pas.'); return redirect(route('items')); } $item->form_id = 'form_' . $item->id; $item->userIsSeller = $isSeller; $item->lastBidPrice = $item->getPrice(); $item->userBidsCount = $item->getUserBidsCount(); $item->userCantBid = Auth::Check() && $item->userBidsCount >= MAX_BID_PER_SALE; return view('item')->with(compact('item', 'started', 'starting', 'finished')); }