File: /home/armgroup/libs/app/Http/Controllers/Frontend/CheckoutController.php
<?php
namespace App\Http\Controllers\Frontend;
use App\Http\Controllers\Controller;
use App\Models\Product;
use Artesaos\SEOTools\Facades\SEOTools;
use Gloudemans\Shoppingcart\Facades\Cart;
class CheckoutController extends Controller
{
public function __construct()
{
$this->middleware(['auth', 'isActive']);
}
public function index()
{
if (! checkSaleStatus()) {
$this->doneMessage('در حال حاضر فروش محصولات غیرفعال میباشد، لطفا بعدا امتحان کنید.', 'warning');
return redirect()->route('index');
}
$carts = Cart::content();
if (! session()->has('address_id') || count($carts) == 0) {
return redirect()->route('addresses.index');
}
$address = auth()->user()->addresses()->where('address_id', session('address_id'))->with(['city', 'city.province'])->first();
if (! $address) {
session()->forget('address_id');
return redirect()->route('addresses.index');
}
if ($address->city->courier_status == 0 && $address->city->express_status == 0) {
$this->doneMessage('متاسفانه در حال حاضر امکان ارسال سفارش به شهر شما نمیباشد', 'error');
return redirect()->route('cart.index');
}
$total = (int) Cart::subtotal(0, '', '');
$products = Product::whereIn('id', $carts->pluck('id')->toArray())->get();
SEOTools::setTitle('تسویه حساب');
SEOTools::setDescription('تسویه حساب');
return view('frontend.checkout.index', compact('carts', 'total', 'address', 'products'));
}
}