HEX
Server: LiteSpeed
System: Linux my-kul-web2054.main-hosting.eu 5.14.0-611.13.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 11 04:57:59 EST 2025 x86_64
User: u665686179 (665686179)
PHP: 8.2.30
Disabled: system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
Upload Files
File: /home/u665686179/domains/dealkr.com/public_html/app/Http/Controllers/Web/CouponController.php
<?php

namespace App\Http\Controllers\Web;

use App\Utils\Helpers;
use App\Http\Controllers\Controller;
use App\Models\Coupon;
use App\Models\Order;
use App\Utils\CartManager;
use App\Utils\OrderManager;
use Brian2694\Toastr\Facades\Toastr;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;

class CouponController extends Controller
{
    public function apply(Request $request): JsonResponse|RedirectResponse
    {
        self::removeCurrentCouponActivity();

        $result = OrderManager::getTotalCouponAmount(request: $request, couponCode: $request['code']);

        if ($result['status']) {
            if ($request->ajax()) {
                return response()->json([
                    'status' => 1,
                    'messages' => $result['messages']
                ]);
            }
            Toastr::success($result['messages']);
        }

        if ($request->ajax()) {
            return response()->json([
                'status' => 0,
                'messages' => ['0' => $result['messages'] ?? translate('invalid_coupon')]
            ]);
        }
        Toastr::error($result['messages'] ?? translate('invalid_coupon'));
        return back();
    }

    public function removeCoupon(Request $request): JsonResponse|RedirectResponse
    {
        self::removeCurrentCouponActivity();

        if ($request->ajax()) {
            return response()->json(['messages' => translate('coupon_removed')]);
        }
        Toastr::success(translate('coupon_removed'));
        return back();
    }

    function removeCurrentCouponActivity(): void
    {
        session()->forget('coupon_code');
        session()->forget('coupon_type');
        session()->forget('coupon_bearer');
        session()->forget('coupon_discount');
        session()->forget('coupon_seller_id');
    }
}