UnknownSec Bypass
403
:
/
var
/
www
/
html
/
lms_9d655b94864d
/
app
/
Http
/
Controllers
/
Environment
/
Student
/ [
drwxr-xr-x
]
Menu
Upload
Mass depes
Mass delete
Terminal
Info server
About
name :
SubscriptionController.php
<?php namespace EstudioLMS\Http\Controllers\Environment\Student; use Carbon\Carbon; use EstudioLMS\Cart\Cart; use EstudioLMS\Events\RecurringNotification; use EstudioLMS\Exceptions\Handler; use EstudioLMS\Repositories\Financial\HireSubscriptionInterface; use EstudioLMS\Repositories\Financial\RecurringInterface; use EstudioLMS\Repositories\Subscription\PeriodicityInterface; use EstudioLMS\Services\PagarMeService; use Illuminate\Http\Request; use EstudioLMS\Http\Requests; use EstudioLMS\Http\Controllers\Controller; use Illuminate\Support\Facades\Auth; use mjanssen\BreadcrumbsBundle\Breadcrumbs; /** * Class SubscriptionController * @package EstudioLMS\Http\Controllers\Environment\Student */ class SubscriptionController extends Controller { /** * @var Breadcrumbs */ private $breadCrumb; /** * @var HireSubscriptionInterface */ private $hireSubscription; /** * @var RecurringInterface */ private $recurring; /** * @var PeriodicityInterface */ private $periodicity; /** * SubscriptionController constructor. * @param Breadcrumbs $breadCrumb * @param HireSubscriptionInterface $hireSubscription * @param RecurringInterface $recurring * @param PeriodicityInterface $periodicity */ public function __construct( Breadcrumbs $breadCrumb, HireSubscriptionInterface $hireSubscription, RecurringInterface $recurring, PeriodicityInterface $periodicity ) { $this->breadCrumb = $breadCrumb; $this->hireSubscription = $hireSubscription; $this->recurring = $recurring; $this->periodicity = $periodicity; } /** * @return mixed */ public function indexApiSubscription() { $userId = \Auth::user()->id; $orders = $this->hireSubscription ->with(['payables', 'user' => function ($q) { $q->select('id', 'name', 'email'); }, 'periodicity', 'subscription' => function ($q) { $q->select('id', 'title'); }, ])->findWhere([ ['user_id', '=', $userId] ]); foreach ($orders as $key => $order) { $openRecurring = $this->recurring ->findWhere([ ['subscription_hash', '=', $order->subscription_hash], ['payment_type', '=', 'boleto'], ['status', '=', 3] ])->first(); if ($openRecurring) { $orders[$key]['open_payment_code'] = $openRecurring->payment_code; } } return $orders; } /** * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function index() { $env = 'myorders'; $this->breadCrumb->addBreadcrumb('Dashboard', route('environment.index')); $this->breadCrumb->addBreadcrumb('Minhas Assinaturas', route('admin.hired.courses.list')); $bread = $this->breadCrumb->generate(); $title = 'Minhas Assinaturas'; return view('ambiente.student.financial.subscription.subscription_list', compact('env', 'bread', 'title')); } /** * @param Request $request * @return array */ public function cancelSubscription(Request $request) { $data = $request->all(); try { $subscription = $this->hireSubscription->find($data['id']); $subscription->status = $data['status']; $subscription->save(); $recurrence = $this->recurring ->getRecurrence($subscription->subscription_hash, [0, 2, 3]); $recurrence->status = 4; $recurrence->save(); return [ 'success' => 'Sucesso', 'message' => 'Cancelamento solicitado com sucesso!' ]; } catch (\Exception $e) { app(Handler::class)->report($e); return [ 'success' => 'Falha', 'message' => 'Falha ao solicitar o cancelamento!' ]; } } /** * @param Request $request * @return mixed */ public function resendBoleto(Request $request) { $data = $request->only(['payment_code', 'email']); $pgs = app(PagarMeService::class); $return = $pgs->collectPayment($data['email'], $data['payment_code']); return $return; } /** * @param Request $request * @return string[] */ public function updateBoleto(Request $request) { $data = $request->all(); $userId = \Auth::user()->id; $subscription = $this->hireSubscription->find($data['id']); $recurrence = $this->recurring->getLatestRecurrence($subscription->subscription_hash); $pgs = app(PagarMeService::class); $transaction = $pgs->getTransactionByID($recurrence->payment_code); $dueDate = Carbon::parse($transaction->getBoletoExpirationDate()->format('Y-m-d H:i:s'))->toDateString(); $today = Carbon::today()->toDateString(); //Usar para teste de reemissão de boleto, mudar a data, para o vencimento do boleto, forçando a reemissão. //$today = Carbon::parse('2022-03-12')->toDateString(); if($dueDate <= $today) { $periodicity = $this->periodicity->find($subscription->periodicity_id); $cart = new Cart(); $cart->addItem( $subscription->subscription_id, $subscription->title, $subscription->subscription_id, $periodicity, $recurrence->gross_amount, null, 0.00, 0.00, 0, 0.00, true ); $newTransaction = $pgs->boletoTransaction($cart, $subscription->subscription_hash, $userId); $recurrence->payment_code = $newTransaction->getId(); $recurrence->save(); \Event::fire(new RecurringNotification('boleto-resend', $newTransaction)); $return = [ 'msg' => 'Novo boleto gerado e enviado para o e-mail ' . Auth::user()->email, 'boleto_url' => $newTransaction->getBoletoUrl() ]; } else { \Event::fire(new RecurringNotification('boleto-resend', $transaction)); $return = [ 'msg' => 'O boleto foi enviado para o e-mail ' . Auth::user()->email, 'boleto_url' => $transaction->getBoletoUrl() ]; } return $return; } }
Copyright © 2026 - UnknownSec