KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.4.41 (Ubuntu)
System : Linux vmi1525618.contaboserver.net 5.4.0-105-generic #119-Ubuntu SMP Mon Mar 7 18:49:24 UTC 2022 x86_64
User : www-data ( 33)
PHP Version : 8.2.12
Disable Function : NONE
Directory :  /var/www/parassaas.edukrypt.in/app/Http/Controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //var/www/parassaas.edukrypt.in/app/Http/Controllers/CartController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Product;
use App\Models\Promocode;
use App\Models\Product_promocode;
use App\Models\Billing;
use App\Models\Price;
use Illuminate\Support\Facades\DB;

class CartController extends Controller
{
    // Shopping Cart ============================================= >>>>>
    public function addToCart(Request $request)
    {
        $product_id = $request->product_id;
        $mode = $request->mode;
        $price_id = $request->price_id;

        $product = DB::table('products as P')
            ->join('main_categories as MC', 'MC.id', '=', 'P.cat_id')
            ->join('admin_users as au', 'au.id', '=', 'P.teacher_id')
            ->join('prices as pc', 'pc.product_id', '=', 'P.id')
            ->where(['P.id' => $product_id, 'P.status' => '1', 'pc.id' => $price_id])
            ->select('P.*', 'au.username as teacher', 'MC.name as category', 'pc.*')
            ->first();

        $name = $product->name;
        $type = $product->type;
        $short_desc = $product->short_desc;
        $image = $product->image;
        $views = $product->views;
        $mode = $product->mode;
        $teacher = $product->teacher;
        $price = $product->price;
        $discount_percnt = $product->discount_percnt;
        $max_discount = $product->max_discount;
        $duration = $product->duration;

        $cart = session()->get('cart');

        // if item not exist in cart then add to cart with quantity = 1
        $cart[$product_id] = [
            "productId" => $product_id,
            "name" => $name,
            "duration" => $duration,
            "views" => $views,
            'price_id' => $price_id,
            "qty" => 1,
            "image" => $image,
            "mode" => $mode,
            "teacher" => $teacher,
            "short_desc" => $short_desc,
            "price" => $price,
            'discount_percnt' => $discount_percnt,
            'max_discount' => $max_discount,
            'coupon_discount_amount' => 0,
            'coupon_name' => "",
            'coupon_apply_status' => "no",
        ];
        session()->put('cart', $cart);
    }

    public function getCart()
    {
        $admin_id = 2;
        $data['title'] = 'Shopping Cart';
        $data['frontMenu'] = 'home';
        $data['carts'] = session()->get('cart');
        // echo "<pre>";
        // print_r(session()->get('cart'));
        // exit;
        return view('cart', $data);
    }

    public function removeCart(Request $request)
    {
        if ($request->id) {
            $cart = session()->get('cart');
            if (isset($cart[$request->id])) {
                unset($cart[$request->id]);
                session()->put('cart', $cart);
            }
            return redirect('/cart')->with('success', 'Item Removed From Cart!');
        }
    }

    public function applyPromocode(Request $request)
    {
        $coupon = $request->coupon;
        $request->validate([
            'coupon' => 'required',
        ]);

        $applyCoupon =  Promocode::where(['code' => $coupon, 'status' => '1'])->first();

        if (!empty($applyCoupon)) {

            // Check Cart is Empty Or Not
            $cartValues = session()->get('cart');
            if (empty($cartValues)) {
                return redirect('/cart')->with('error', 'Your cart is empty!');
            }

            // Check Coupon Code Expired or Not
            $_applyCoupon = Promocode::where(['code' => $coupon, 'status' => '1'])
                ->whereRaw('? between start_date and end_date', [date('Y-m-d')])
                ->first();
            if (empty($_applyCoupon)) {
                return redirect('/cart')->with('error', 'This coupon code is not valid!');
            }

            // Multiple Time Applicable Code
            if ($applyCoupon->promo_type == '2') {

                // If Coupon code for specific courses only
                if ($_applyCoupon->promo_for == 'selected_courses') {
                    foreach ($cartValues as $cart) {
                        // Check Which Product
                        $whichProduct = Product_promocode::where(['promo_id' => $_applyCoupon->id, 'product_id' => $cart['productId']])->first();
                        if (!empty($whichProduct)) {
                            $priceAfterdiscount = ($cart['price'] * $cart['discount_percnt']) / 100;
                            $chooseDiscountPrice = ($cart['max_discount'] > $priceAfterdiscount) ? $cart['max_discount'] : $priceAfterdiscount;
                            $finalProductPrice = round($cart['price'] - $chooseDiscountPrice);
                            // Percent Wise Discount or Flat
                            if ($_applyCoupon->discount_type == 'percentage') {

                                $discountByCoupon = (($_applyCoupon->amount * $finalProductPrice) / 100);
                                $finalCouponDiscount = (($discountByCoupon < $_applyCoupon->limit_value) ? $discountByCoupon : $_applyCoupon->limit_value);

                                $cartValues[$cart['productId']]['coupon_discount_amount'] = $finalCouponDiscount;
                                $cartValues[$cart['productId']]['coupon_name'] = $_applyCoupon->code;
                                $cartValues[$cart['productId']]['coupon_apply_status'] = 'yes';
                            }
                            // Flat Discount Check
                            else {
                                $cartValues[$cart['productId']]['coupon_discount_amount'] = $_applyCoupon->amount;
                                $cartValues[$cart['productId']]['coupon_name'] = $_applyCoupon->code;
                                $cartValues[$cart['productId']]['coupon_apply_status'] = 'yes';
                            }
                        }
                    }
                }
            }
            // For All Courses
            else {
                foreach ($cartValues as $cart) {
                    $priceAfterdiscount = ($cart['price'] * $cart['discount_percnt']) / 100;
                    $chooseDiscountPrice = ($cart['max_discount'] > $priceAfterdiscount) ? $cart['max_discount'] : $priceAfterdiscount;
                    $finalProductPrice = round($cart['price'] - $chooseDiscountPrice);
                    // Percent Wise Discount or Flat
                    if ($_applyCoupon->discount_type == 'percentage') {

                        $discountByCoupon = (($_applyCoupon->amount * $finalProductPrice) / 100);
                        $finalCouponDiscount = (($_applyCoupon->limit_value < $discountByCoupon) ? $discountByCoupon : $_applyCoupon->limit_value);

                        $cartValues[$cart['productId']]['coupon_discount_amount'] = $finalCouponDiscount;
                        $cartValues[$cart['productId']]['coupon_name'] = $_applyCoupon->code;
                        $cartValues[$cart['productId']]['coupon_apply_status'] = 'yes';
                    }
                    // Flat Discount Check
                    else {
                        $cartValues[$cart['productId']]['coupon_discount_amount'] = $_applyCoupon->amount;
                        $cartValues[$cart['productId']]['coupon_name'] = $_applyCoupon->code;
                        $cartValues[$cart['productId']]['coupon_apply_status'] = 'yes';
                    }
                }
            }

            session()->put('cart', $cartValues);
            return redirect('/cart')->with('success', 'Coupon is applied!');
        }
        return redirect('/cart')->with('error', 'This coupon code is not valid!');
    }


    public function removePromocode()
    {
        $carts = session()->get('cart');
        foreach ($carts as $cart) {
            $carts[$cart['productId']]['coupon_discount_amount'] = 0;
            $carts[$cart['productId']]['coupon_name'] = '';
            $carts[$cart['productId']]['coupon_apply_status'] = 'no';
        }

        session()->put('cart', $carts);

        return redirect('/cart')->with('success', 'Coupon Removed!');
    }
}

Anon7 - 2021