UnknownSec Bypass
403
:
/
mnt
/
lmsestudio-instance-vol002
/
lms_0fbd48a558b0
/
app
/
Helpers
/ [
drwxr-xr-x
]
Menu
Upload
Mass depes
Mass delete
Terminal
Info server
About
name :
CartHelper.php
<?php namespace EstudioLMS\Helpers; use EstudioLMS\Repositories\Courses\Course\CourseRepository; use EstudioLMS\Services\Admin\ConfigurationServices; use Illuminate\Contracts\Auth\Guard; use Lang; /** * Class CartHelper * @package EstudioLMS\Helpers */ class CartHelper { /** * @var CourseRepository */ private $courseRepository; /** * @var Guard */ private $auth; /** * @var ConfigurationServices */ private $configurationServices; /** * CartHelper constructor. * @param CourseRepository $courseRepository * @param Guard $auth * @param ConfigurationServices $configurationServices */ public function __construct( CourseRepository $courseRepository, Guard $auth, ConfigurationServices $configurationServices ) { $this->courseRepository = $courseRepository; $this->auth = $auth; $this->configurationServices = $configurationServices; } /** * @param $cart * @return bool */ public function courseHasShipping($cart) { $return = false; if ($cart->count() > 0) { $courseId = $cart->get('course_id'); $course = $this->courseRepository->find($courseId); if ($course->material) { $return = $course->material->published; } } return $return; } /** * @param $zip * @param $cart * @return string */ public function seeShipping($zip, $cart) { $courseId = $cart->get('course_id'); $course = $this->courseRepository->find($courseId); $shippingTypes = $this->shippingTypes(); $parametros = array(); // Código e senha da empresa, se você tiver contrato com os correios, se não tiver deixe vazio. $parametros['nCdEmpresa'] = ''; $parametros['sDsSenha'] = ''; // CEP de origem e destino. Esse parametro precisa ser numérico, sem "-" (hífen) espaços ou algo diferente de um número. $data = $this->configurationServices->configuration(); $parametros['sCepOrigem'] = $data['zip_code']; $parametros['sCepDestino'] = $zip; // O peso do produto deverá ser enviado em quilogramas, leve em consideração que isso deverá incluir o peso da embalagem. $weight = $course->material->weight; $parametros['nVlPeso'] = "$weight"; // O formato tem apenas duas opções: 1 para caixa / pacote e 2 para rolo/prisma. $format = $course->material->format; $parametros['nCdFormato'] = "$format"; // O comprimento, altura, largura e diametro deverá ser informado em centímetros e somente números $length = (int)$course->material->length; $height = (int)$course->material->height; $width = (int)$course->material->width; $diameter = (int)$course->material->diameter; if (empty($diameter)) { $diameter = $length + (($width * 2) + ($height * 2)); } $parametros['nVlComprimento'] = "$length"; $parametros['nVlAltura'] = "$height"; $parametros['nVlLargura'] = "$width"; $parametros['nVlDiametro'] = "$diameter"; // Aqui você informa se quer que a encomenda deva ser entregue somente para uma determinada pessoa após confirmação por RG. Use "s" e "n". $parametros['sCdMaoPropria'] = 'n'; // O valor declarado serve para o caso de sua encomenda extraviar, então você poderá recuperar o valor dela. Vale lembrar que o valor da encomenda interfere no valor do frete. Se não quiser declarar pode passar 0 (zero). $declaredValue = $course->material->declared_value; $parametros['nVlValorDeclarado'] = "$declaredValue"; // Se você quer ser avisado sobre a entrega da encomenda. Para não avisar use "n", para avisar use "s". $parametros['sCdAvisoRecebimento'] = 'n'; // Formato no qual a consulta será retornada, podendo ser: Popup – mostra uma janela pop-up | URL – envia os dados via post para a URL informada | XML – Retorna a resposta em XML $parametros['StrRetorno'] = 'xml'; // Código do Serviço, pode ser apenas um ou mais. Para mais de um apenas separe por virgula. $parametros['nCdServico'] = '04014,04510'; //dd($parametros); $parametros = http_build_query($parametros); $url = 'http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx'; $curl = curl_init($url . '?' . $parametros); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $dados = curl_exec($curl); $dados = simplexml_load_string($dados); $html = '<tr>'; $html .= '<td><label><input type="radio" id="regular" name="optradio" value="1"> Retirar Pessoalmente</label></td>'; $html .= '<td align="right">N/A</td>'; $html .= '<td align="right">N/A</td>'; $html .= '</tr>'; foreach ($dados as $key => $shipping) { if ($shipping->Erro == 0) { $html .= '<tr>'; $html .= '<td><label><input type="radio" id="regular" name="optradio" value="' . (int)$shipping->Codigo . '"> ' . $shippingTypes[(int)$shipping->Codigo] . '</label></td>'; $html .= '<td align="right">' . $shipping->Valor . '</td>'; $html .= '<td align="right">' . $shipping->PrazoEntrega . '</td>'; $html .= '</tr>'; } elseif ($shipping->erro = '010') { $html .= '<tr>'; $html .= '<td><label><input type="radio" id="regular" name="optradio" value="' . (int)$shipping->Codigo . '"> ' . $shippingTypes[(int)$shipping->Codigo] . '</label></td>'; $html .= '<td align="right">' . $shipping->Valor . '</td>'; $html .= '<td align="right">' . $shipping->PrazoEntrega . '</td>'; $html .= '<td align="justify">' . $shipping->obsFim . '</td>'; $html .= '</tr>'; } else { $html .= '<tr>'; $html .= '<td><label>' . $shippingTypes[(int)$shipping->Codigo] . '</label></td>'; $html .= '<td align="right">N/A</td>'; $html .= '<td align="right">N/A</td>'; $html .= '</tr>'; } } return $html; } /** * @param $cart * @return bool */ public function validateShipping($cart) { $courseId = $cart->get('course_id'); $course = $this->courseRepository->find($courseId); $user = $this->auth->user(); if (empty($user->address->zip_code) || empty($user->cpf)) { return false; } $zip = $user->address->zip_code; $parametros = array(); $parametros['nCdEmpresa'] = ''; $parametros['sDsSenha'] = ''; $data = $this->configurationServices->configuration(); $parametros['sCepOrigem'] = $data['zip_code']; $parametros['sCepDestino'] = $zip; $weight = $course->material->weight; $parametros['nVlPeso'] = "$weight"; $format = $course->material->format; $parametros['nCdFormato'] = "$format"; $length = (int)$course->material->length; $height = (int)$course->material->height; $width = (int)$course->material->width; $diameter = (int)$course->material->diameter; if (empty($diameter)) { $diameter = $length + (($width * 2) + ($height * 2)); } $parametros['nVlComprimento'] = "$length"; $parametros['nVlAltura'] = "$height"; $parametros['nVlLargura'] = "$width"; $parametros['nVlDiametro'] = "$diameter"; $parametros['sCdMaoPropria'] = 'n'; $declaredValue = $course->material->declared_value; $parametros['nVlValorDeclarado'] = "$declaredValue"; $parametros['sCdAvisoRecebimento'] = 'n'; $parametros['StrRetorno'] = 'xml'; $serviceCode = $cart->get('shipping_code'); $serviceCode = str_pad($serviceCode, 5, '0', STR_PAD_LEFT); $parametros['nCdServico'] = "$serviceCode"; $parametros = http_build_query($parametros); $url = 'http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx'; $curl = curl_init($url . '?' . $parametros); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $dados = curl_exec($curl); $dados = simplexml_load_string($dados); $shippingPrice = str_replace(',', '.', $dados->cServico->Valor); if ($shippingPrice <> $cart->get('shipping_price')) { return false; } return true; } /** * @param $shippingCode * @return mixed */ public function getShippingName($shippingCode) { return $this->shippingTypes()[$shippingCode]; } /** * @return array */ protected function shippingTypes() { return [ 1 => 'Retirar Pessoalmente', 40010 => 'SEDEX Varejo', //Mantendo por compatibilidade 4014 => 'SEDEX Varejo', //04014 40045 => 'SEDEX a Cobrar Varejo', 40215 => 'SEDEX 10 Varejo', 40290 => 'SEDEX Hoje Varejo', 41106 => 'PAC Varejo', //04510 4510 => 'PAC Varejo' //04510 //05051701146488 //66081975 - 5 dias úteis para obter resposta por e-mail. ]; } /** * @param $cart * @return string */ public function gatewayAvailable($cart) { $gateways = $this->courseRepository->find($cart->get('course_id'))->gateways()->get(); $html = ''; foreach ($gateways as $key => $value) { if ($this->configurationServices->validateGateways($value->title)) { $html .= '<div class="pull-right">'; $html .= '<a href="' . route($value->route) . '"'; $html .= 'id="'. $value->title .'"'; $html .= 'class="btn btn-success btn-lg">' . Lang::get($value->lang_title) . '</a>'; $html .= '</div>'; } } return $html; } //Helper da lista dos gateways do novo checkout /** * @param $cart * @return string */ public function gatewayAvailableNewCheckoutList($cart) { $gateways = $this->courseRepository->find($cart->get('course_id'))->gateways()->get(); $html = ''; $active = 'active'; foreach ($gateways as $key => $value) { if ($this->configurationServices->validateGateways($value->title)) { $html .= '<li role="presentation">'; $html .= '<a href="#' . $value->id . '" aria-controls="' . $value->id . '" role="tab" data-toggle="tab"'; $html .= 'class="' . $active . '">' . Lang::get($value->lang_title) . ''; $html .= '</a>'; $html .= '</li>'; } $active = ''; } return $html; } //Helper do conteúdo e botões dos gateways do novo checkout /** * @param $cart * @return string */ public function gatewayAvailableNewCheckoutButton($cart) { $gateways = $this->courseRepository->find($cart->get('course_id'))->gateways()->get(); $html = ''; $active = 'active'; foreach ($gateways as $key => $value) { if ($this->configurationServices->validateGateways($value->title)) { $html .= '<div role="tabpanel" class="tab-pane ' . $active . '" id="' . $value->id . '">'; $html .= '<div class="panel panel-default">'; $html .= '<div class="panel-body">'; $html .= '<h4>Fique atento(a) aos detalhes:</h4>'; $html .= '<ul>'; if ($value->id == 1) { $html .= trans("site_cart.textPaypal"); }elseif ($value->id == 2) { $html .= trans("site_cart.textPagseguro"); }elseif ($value->id == 3) { $html .= trans("site_cart.textBillet"); } $html .= '</ul>'; $html .= '<br>'; $html .= '<a href="' . route($value->route) . '" class="btn btn-success btn-lg btn-block">Pagar com ' . Lang::get($value->lang_title) . '</a>'; $html .= '</div>'; $html .= '</div>'; $html .= '</div>'; } $active = ''; } return $html; } }
Copyright © 2026 - UnknownSec