/home/techb158/ileadtechnology.com/app/Http/Controllers/Api
NameSizeModeActions
Auth/-0755rm
CouponController.php134670644editdlrm
MainController.php603730644editdlrm
OtherApiController.php1660644editdlrm
PaymentController.php143650644editdlrm
Edit: /home/techb158/ileadtechnology.com/app/Http/Controllers/Api/CouponController.php (13467B)
all(), [ 'secret' => 'required', ]); if ($validator->fails()) { return response()->json(['Secret Key is required']); } $key = DB::table('api_keys')->where('secret_key', '=', $request->secret)->first(); if (!$key) { return response()->json(['Invalid Secret Key !']); } $auth = Auth::user(); $coupon = Coupon::where('code', $request->coupon)->first(); $mytime = Carbon\Carbon::now(); $date = $mytime->toDateTimeString(); if(isset($coupon)){ if($coupon->expirydate >= $date) { if($coupon->maxusage != 0) { if($coupon->link_by == 'course') { $course_coupon = $this->validCouponForCourse($coupon, $auth); return $course_coupon; } elseif($coupon->link_by == 'cart') { $cart_coupon = $this->validCouponForCart($coupon, $auth); return $cart_coupon; } elseif($coupon->link_by == 'category') { $category_coupon = $this->validCouponForCategory($coupon, $auth); return $category_coupon; } } else { return response()->json('Coupon max limit reached !', 401); } } else { return response()->json('Coupon Expired !', 401); } }else{ return response()->json('Invalid Coupon !', 401); } } public function validCouponForCourse($coupon, $auth) { $cart = Cart::where('course_id', '=', $coupon['course_id'])->where('user_id', '=', $auth->id)->first(); $carts = Cart::where('user_id', '=', $auth->id) ->get(); $per = 0; if (isset($cart)) { if ($cart->course_id == $coupon->course_id) { if ($coupon->distype == 'per') { $per = $cart->offer_price * $coupon->amount / 100; } else { $per = $coupon->amount; } // Putting a session// // Session::put('coupanapplied', ['code' => $coupon->code, 'cpnid' => $coupon->id, 'discount' => $per, 'msg' => "$coupon->code is applied !", 'appliedOn' => 'course']); Cart::where('course_id', '=', $coupon['course_id'])->where('user_id', '=', $auth ->id) ->update(['distype' => 'course', 'disamount' => $per]); Cart::where('course_id', '!=', $coupon['course_id'])->where('user_id', '=', $auth ->id) ->update(['distype' => NULL, 'disamount' => NULL]); DB::table('coupons')->where('code', '=', $coupon['code'])->decrement('maxusage', 1); return response()->json(['discount_amount' => $per, 'msg' => 'Coupon Applied !']); } else { return response()->json('Sorry no product found in your cart for this coupon !', 401); } } else { return response()->json('Sorry no product found in your cart for this coupon !', 401); } } public function validCouponForCart($coupon, $auth) { $cart = Cart::where('user_id', '=', $auth->id)->get(); $total = 0; if (isset($cart)) { foreach ($cart as $key => $c) { if ($c->offer_price != 0) { $total = $total + $c->offer_price; } else { $total = $total + $c->price; } } if ($coupon->minamount != 0) { if ($total >= $coupon->minamount) { //check cart amount $totaldiscount = 0; $per = 0; foreach ($cart as $key => $c) { if ($coupon->distype == 'per') { if ($c->offer_price != 0) { $per = $c->offer_price * $coupon->amount / 100; $totaldiscount = $totaldiscount + $per; } else { $per = $c->price * $coupon->amount / 100; $totaldiscount = $totaldiscount + $per; } } else { if ($c->offer_price != 0) { $per = $coupon->amount / count($cart); $totaldiscount = $totaldiscount + $per; } else { $per = $coupon->amount / count($cart); $totaldiscount = $totaldiscount + $per; } } // return $per; Cart::where('id', '=', $c->id) ->update(['distype' => 'cart', 'disamount' => $per]); } //Putting a session// //Session::put('coupanapplied', ['code' => $coupon->code, 'cpnid' => $coupon->id, 'discount' => $totaldiscount, 'msg' => "$coupon->code Applied Successfully !", 'appliedOn' => 'cart']); DB::table('coupons')->where('code', '=', $coupon['code'])->decrement('maxusage', 1); return response()->json(['discount_amount' => $totaldiscount, 'msg' => 'Coupon Applied !']); } else { return response()->json('Failed !', 401); } } else { //check cart amount $totaldiscount = 0; $per = 0; foreach ($cart as $key => $c) { if ($coupon->distype == 'per') { if ($c->offer_price != 0) { $per = $c->offer_price * $coupon->amount / 100; $totaldiscount = $totaldiscount + $per; } else { $per = $c->price * $coupon->amount / 100; $totaldiscount = $totaldiscount + $per; } } else { if ($c->offer_price != 0) { $per = $coupon->amount / count($cart); $totaldiscount = $totaldiscount + $per; } else { $per = $coupon->amount / count($cart); $totaldiscount = $totaldiscount + $per; } } Cart::where('id', '=', $c->id) ->update(['distype' => 'cart', 'disamount' => $per]); } //Putting a session// // Session::put('coupanapplied', ['code' => $coupon->code, 'cpnid' => $coupon->id, 'discount' => $totaldiscount, 'msg' => "$coupon->code Applied Successfully !", 'appliedOn' => 'cart']); DB::table('coupons')->where('code', '=', $coupon['code'])->decrement('maxusage', 1); return response()->json(['discount_amount' => $totaldiscount, 'msg' => 'Coupon Applied !']); //end return success with discounted amount } } } public function validCouponForCategory($coupon, $auth) { $cart = Cart::where('user_id', '=', $auth->id) ->get(); $catcart = collect(); foreach ($cart as $row) { if ($row ->courses ->category->id == $coupon->category_id) { $catcart->push($row); } } if (count($catcart) > 0) { $total = 0; $totaldiscount = 0; $distotal = 0; foreach ($catcart as $key => $row) { if ($row->offer_price != 0) { $total = $total + $row->offer_price; } else { $total = $total + $row->price; } } foreach ($catcart as $key => $c) { $per = 0; if ($coupon->distype == 'per') { if ($c->offer_price != 0) { $per = $c->offer_price * $coupon->amount / 100; $totaldiscount = $totaldiscount + $per; } else { $per = $c->price * $coupon->amount / 100; $totaldiscount = $totaldiscount + $per; } } else { if ($c->offer_price != 0) { $per = $coupon->amount / count($catcart); $totaldiscount = $totaldiscount + $per; } else { $per = $coupon->amount / count($catcart); $totaldiscount = $totaldiscount + $per; } } Cart::where('id', '=', $c->id) ->where('user_id', $auth ->id) ->update(['distype' => 'category', 'disamount' => $per]); Cart::where('category_id', '!=', $c->courses->category['id'])->where('user_id', '=', $auth ->id) ->update(['distype' => NULL, 'disamount' => NULL]); } if ($coupon->minamount != 0) { if ($total >= $coupon->minamount) { //Putting a session// // Session::put('coupanapplied', ['code' => $coupon->code, 'cpnid' => $coupon->id, 'discount' => $totaldiscount, 'msg' => "$coupon->code Applied Successfully !", 'appliedOn' => 'category']); DB::table('coupons')->where('code', '=', $coupon['code'])->decrement('maxusage', 1); return response()->json(['discount_amount' => $totaldiscount, 'msg' => 'Coupon Applied !']); } else { Cart::where('user_id', $auth ->id) ->update(['distype' => NULL, 'disamount' => NULL]); return response()->json('Failed !', 401); } } else { //Putting a session// // Session::put('coupanapplied', ['code' => $coupon->code, 'cpnid' => $coupon->id, 'discount' => $totaldiscount, 'msg' => "$coupon->code Applied Successfully !", 'appliedOn' => 'category']); DB::table('coupons')->where('code', '=', $coupon['code'])->decrement('maxusage', 1); return response()->json(['discount_amount' => $totaldiscount, 'msg' => 'Coupon Applied !']); } } else { return response()->json('Sorry no matching product found in your cart for this coupon !', 401); } } public function remove(Request $request) { $validator = Validator::make($request->all(), [ 'secret' => 'required', ]); if ($validator->fails()) { return response()->json(['Secret Key is required']); } $key = DB::table('api_keys')->where('secret_key', '=', $request->secret)->first(); if (!$key) { return response()->json(['Invalid Secret Key !']); } $user = Auth::user(); // Session::forget('coupanapplied'); Cart::where('user_id', '=', $auth->id) ->update(['distype' => NULL, 'disamount' => NULL]); return response()->json('Coupon Removed !', 200); } }