render('Shop.Orders.partials.list'); } public function view($uuid) { $data = [ 'order' => Orders::view($uuid), ]; return view('Shop.Orders.view', $data); } public function pdf($uuid) { $data = [ 'order' => Orders::getByUUID($uuid), ]; return view('Shop.Orders.pdf', $data); } public function order() { if (ShopCart::count()) { $customer = Customers::getWithAddresses(); $customerId = $customer ? $customer->id : false; $defaultSaleChannelId = SaleChannels::getDefaultID($customerId); $deliveries = $defaultSaleChannelId ? Deliveries::getBySaleChannels([$defaultSaleChannelId]) : Deliveries::getByCustomer($customerId); $deliveries = $deliveries ? $deliveries->values() : collect(); $customerData = $customer ? $customer->toArray() : false; if ($customerData && $defaultSaleChannelId) { $customerData['default_sale_channel_id'] = $defaultSaleChannelId; } $data = [ 'customer' => $customerData, 'basket' => Baskets::getBasketTotal(), 'deliveries' => $deliveries->toArray(), 'delivery_types' => DeliveryTypes::getWithPrice(Baskets::getWeight()), ]; return view('Shop.Orders.order', $data); } return redirect()->route('home'); } public function store(StoreOrderPost $request) { $data = $request->all(); $data['customer_id'] = Customers::getId(); $data['sale_channel_id'] = $data['sale_channel_id'] ?? SaleChannels::getDefaultID(); $data['basket'] = Baskets::getBasketSummary($data['sale_channel_id'], $data['delivery_type_id'] ?? false); $order = Orders::saveOrder($data); if ($order) { if ($data['payment_type'] === '1') { return Paybox::makeAuthorizationRequest($order); } OrderMails::sendOrderConfirmed($order->id); return redirect()->route('Shop.Orders.confirmed', [ 'payment_type' => $data['payment_type'], ]); } return view('Shop.Orders.order'); } public function confirmed() { ShopCart::clear(); $paymentType = request('payment_type'); $content = Contents::getOrderConfirmedContent(); $paymentLabel = match ($paymentType) { '2' => 'chèque', '3' => 'virement', default => null, }; return view('Shop.Orders.confirmed', [ 'content' => $content, 'payment_label' => $paymentLabel, ]); } public function getPdf($uuid) { return Orders::getPdfByUUID($uuid); } }