HEX
Server: nginx/1.28.1
System: Linux 10-41-63-61 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64
User: www (1001)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot//www.shooperm.com/app/Http/Controllers/Frontend/CouponController.php
<?php

namespace App\Http\Controllers\Frontend;

use App\Http\Controllers\Controller;
use App\Services\CouponService;
use Illuminate\Http\Request;
use Exception;
use Modules\Marketing\Entities\Coupon;
use Modules\Marketing\Entities\CustomerCouponStore;
use Modules\UserActivityLog\Traits\LogActivity;

class CouponController extends Controller
{
    protected $couponService;
    public function __construct(CouponService $couponService)
    {
        $this->couponService = $couponService;
        $this->middleware('maintenance_mode');
    }
    public function index(){
        try{
            $coupons = $this->couponService->getAll(auth()->user()->id);
            if (!auth()->user()->role->type == 'customer') {
                return view('backEnd.pages.customer_data.coupons',compact('coupons'));
            }else {
                return view(theme('pages.profile.coupons'),compact('coupons'));
            }
        }catch(Exception $e){
            LogActivity::errorLog($e->getMessage());
        }
    }
    public function getPaginate(){
        $page = null;
        if(isset($_GET['page'])){
            $page = $_GET['page'];
        }
        $coupons = $this->couponService->getAll(auth()->user()->id,$page);
        if (!auth()->user()->role->type == 'customer') {
            return view('backEnd.pages.customer_data.coupons',compact('coupons'));
        }else {
            return view(theme('pages.profile.partials._coupon_list'),compact('coupons'));
        }
    }

    public function store(Request $request)
    {
        $request->validate([
            'code' => 'required'
        ]);
        $coupon = Coupon::where('coupon_code',$request->code)->first();
        if(isset($coupon)){
            $storeCheck = CustomerCouponStore::where('customer_id',auth()->user()->id)->where('coupon_id',$coupon->id)->first();
            if(!isset($storeCheck)){
                if(date('Y-m-d')>=$coupon->start_date && date('Y-m-d')<=$coupon->end_date){
                    $this->couponService->store($coupon->id, auth()->user()->id);
                }else{
                    return response()->json([
                        'error' => 'Coupon Is Expired.'
                    ]);
                }
            }else{
                return response()->json([
                    'error' => 'Coupon Already Stored.'
                ]);
            }
        }else{
            return response()->json([
                'error' => 'Coupon Is Invalid.'
            ]);
        }
        LogActivity::successLog('coupon store successful.');
        return $this->reloadWithData();

    }
    public function destroy(Request $request){
        $this->couponService->deleteById($request->id, auth()->user()->id);
        LogActivity::successLog('coupon delete successful.');
        return $this->reloadWithData();
    }
    private function reloadWithData(){

        $coupons = $this->couponService->getAll(auth()->user()->id);
        if (auth()->user()->role->type != 'customer') {
            return response()->json([
                'CouponList' =>  (string)view('backEnd.pages.customer_data._coupon_list',compact('coupons'))
            ]);
        }else {
            return response()->json([
                'CouponList' =>  (string)view(theme('pages.profile.partials._coupon_list'),compact('coupons'))
            ]);
        }
    }
}