| Server IP : 54.233.248.239 / Your IP : 172.28.1.13 Web Server : Apache System : Linux ip-172-28-29-189 6.5.0-1014-aws #14~22.04.1-Ubuntu SMP Thu Feb 15 15:27:06 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.2.34-43+ubuntu22.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/vinumday2_0/app/Http/Controllers/Website/ |
Upload File : |
<?php
namespace App\Http\Controllers\Website;
use App\Http\Requests;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use App\Http\Controllers\BaseController;
use App\Modules\Canal\Models\Canal;
use App\Modules\Noticia\Models\Noticia;
use App\Modules\BannerFooter\Models\BannerFooter;
use App\Modules\Oferta\Models\Oferta;
use App\Modules\Tema\Models\Tema;
use App\Modules\Produto\Models\Produto;
use App\Modules\TipoDeProduto\Models\TipoDeProduto;
use App\Modules\OrdemCompra\Models\OrdemCompra;
use App\Modules\Newsletter\Models\Newsletter;
use App\Modules\PerguntasFrequentes\Models\PerguntasFrequentes;
use App\Modules\NoticiaCategoria\Models\NoticiaCategoria;
use App\Modules\CadastroConsumo\Models\CadastroConsumo;
use App\Modules\CadastroConsumoPais\Models\CadastroConsumoPais;
use App\Modules\Confraria\Services\ConfrariaService;
use App\BasicInfo;
use App\Services\GeralService;
use App\Services\CartService;
use App\Services\OfertaService;
use DB;
class HomeController extends BaseController
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
{
$data = array();
$dataAtual = date('Y-m-d H:i');
$clienteLogado = GeralService::buscarClienteLogado();
$data['listaCanais'] = GeralService::buscarListaCanais(TRUE);
$data['ofertasRelacionadas'] = GeralService::buscarOfertasRelacionadas([
'limit' => 4,
'oferta_semana' => false,
'random' => false
]);
$data['listaNoticias'] = Noticia::orderBy('nome')->limit(2)->get();
$data['bannerFooter'] = BannerFooter::first();
$data['oferta'] = GeralService::buscarOfertaDia();
$data['tema'] = [];
if(isset($data['oferta'])){
$data['tema'] = Tema::where('id', $data['oferta']['tema_id'])->first();
}
$data['valido_adega_virada'] = GeralService::validarOfertaAdegaVirada($data['oferta']);
$data['htmlPassouAqui'] = (GeralService::buscarPassouAqui())->getData()->html;
//$data['htmlCart'] = CartService::buscarHtmlCart();
$data['cadastroSuccess'] = ($request->input('cadastro') == 'success') ? true : false;
$data['canaisLiberados'] = BasicInfo::first()->value('liberar_canais');
$data['htmlMailchimpCadastro'] = ($clienteLogado ? false : GeralService::buscarHtmlMailchimpCadastro());
$data['clienteLogado'] = $clienteLogado;
$data['confraria'] = ConfrariaService::buscarConfrariaUsuarioLogado();
$data['cupomIndicacao'] = CartService::buscarCupomIndicacao();
$data['cupomPrimeiraCompra'] = CartService::buscarCupomPrimeiraCompra();
$data['dadosAdega'] = GeralService::buscarFreteAdegaAberta();
$data['oferta_semana'] = GeralService::buscarOfertaDaSemana();
$data['oferta_solidaria'] = GeralService::buscarOfertaSolidaria();
$data['oferta_relampago'] = GeralService::buscarOfertaCanalRelampago();
$data['oferta_confraria'] = GeralService::buscarOfertaConfraria();
$data['valido_adega_virada_semana'] = GeralService::validarOfertaAdegaVirada($data['oferta_semana']);
$dataOfertaKit = GeralService::retornaData(date('m'), date('Y'));
$data['oferta_kit_confraria'] = GeralService::buscarOfertaConfraria($dataOfertaKit);
$data['meusVinhos'] = GeralService::buscarMeusVinhos(['somar' => true]);
$data['meusVinhosPendentes'] = GeralService::buscarMeusVinhosPendentes();
$data['resumoEntregas'] = GeralService::resumoEntregas();
$data['informacoesBasicasAdega'] = GeralService::buscarInformacoesBasicasAdegaAberta();
$data['vinumwear'] = GeralService::buscarVinumWear($request);
//RESUMO ENTREGAS PEDIDOS
$resumoEntregasPedidos = GeralService::buscarMinhasEntregas('resumo');
$entregas = [];
foreach ($resumoEntregasPedidos as $entrega) {
if($entrega->quantidade_produtos == 1){
$vinhosEntrega = GeralService::buscarProdutosAdega(['id_adega' => $entrega->id_adega]);
$entrega->produto = $vinhosEntrega[0];
}
$entregas[] = $entrega;
}
$data['resumoEntregasPedidos'] = $entregas;
//PEDIDOS PENDENTES
$pedidosPendentes = GeralService::buscarMeusVinhosPendentes();
$pedidos = [];
foreach ($pedidosPendentes as $pedido) {
if(count($pedido->produtos) == 1){
$pedido->produto = $pedido->produtos[0];
}
$pedidos[] = $pedido;
}
$data['resumoPedidosPendentes'] = $pedidos;
if(isset($data['oferta'])){
$data['ocultarDesconto'] = $data['oferta']->ocultar_desconto;
}
return view('site/home', $data);
}
public function saveAniversarioVinumDay(Request $request){
$post = $request->input();
if(isset($post['itens'])){
foreach ($post['itens'] as $item) {
$sql = "UPDATE cadastro_consumo_log SET downloads = downloads + 1 WHERE story = {$item}";
DB::update($sql);
}
}
return response()->json(['status' => true]);
}
public function manutencao(){
return view('site/manutencao');
}
public function checkManutencao(){
return response()->json(['status' => true]);
}
public function preparandoOfertas($slug){
$data = [];
$data['canal'] = Canal::where('slug', $slug)->first();
return view('site/preparando-ofertas', $data);
}
public function checkOfertasCanal(Request $request){
$post = $request->input();
$check = GeralService::checkCanal($post['slug'], $post);
$url = false;
if($check->status){
$canal = $check->canal;
$url = url('/' . GeralService::tipoCanal($canal->tipo) . '/' . $canal->slug);
}
return response()->json(['status' => $check->status, 'url' => $url]);
}
public function aniversarioVinumDay(){
$exibeRetrospectiva = GeralService::exibeRetrospectiva();
if(!$exibeRetrospectiva){
return redirect('/');
}
$clienteLogado = GeralService::buscarClienteLogado();
if(!$clienteLogado){
return redirect('/login?redirect=aniversario-vinumday');
}
$CadastroConsumo = CadastroConsumo::where('cadastro_id', $clienteLogado->id)->first();
if($CadastroConsumo->graos_de_uva > 1000){
$graos = $CadastroConsumo->graos_de_uva / 1000;
}else{
$graos = $CadastroConsumo->graos_de_uva;
}
$Consumo = new \stdClass;
$Consumo->nome = trim($clienteLogado->nome);
$Consumo->data_cadastro = date('d', strtotime($CadastroConsumo->data_cadastro)) . ' de ' . mes_por_extenso(date('m', strtotime($CadastroConsumo->data_cadastro))) . ' de ' . date('Y', strtotime($CadastroConsumo->data_cadastro));
$Consumo->qtde_vinhos = number_format($CadastroConsumo->qtde_vinhos, 0, '', '.');
$Consumo->graos_de_uva = $CadastroConsumo->graos_de_uva;
$Consumo->graos_uva = number_format($graos, 0, '.', ',');
$Consumo->km_percorrido = number_format($CadastroConsumo->km_percorrido, 0, '', '.');
$Consumo->valor_economizado = number_format($CadastroConsumo->valor_economizado, 0, '', '.');
//PRIMEIRO PRODUTO
if($CadastroConsumo->oferta){
$Consumo->primeiro_vinho = (object)[
'titulo' => $CadastroConsumo->oferta->titulo,
'subtitulo' => $CadastroConsumo->oferta->sub_titulo,
'imagem' => !empty($CadastroConsumo->thumbnail_primeiro_vinho) ? url('/uploads/produto/birth/' . $CadastroConsumo->thumbnail_primeiro_vinho) : $CadastroConsumo->oferta->thumbnail_principal
];
}else{
$Consumo->primeiro_vinho = (object)[
'titulo' => '',
'subtitulo' => '',
'imagem' => ''
];
}
$Consumo->preferencia = (object)[
'tipo' => $CadastroConsumo->produtoTipo->slug,
'tipo_nome' => 'Vinho ' . $CadastroConsumo->produtoTipo->nome,
'tipo_icone' => url('/uploads/tipo-de-produto/' . $CadastroConsumo->produtoTipo->thumbnail_principal),
'origem' => $CadastroConsumo->pais->descricao_origem,
'origem_nome' => $CadastroConsumo->pais->nome,
'origem_imagem' => url('/uploads/pais/' . $CadastroConsumo->pais->thumbnail_principal),
'origem_brinde' => !empty($CadastroConsumo->pais->descricao_brinde) ? $CadastroConsumo->pais->descricao_brinde : 'Um Brinde!',
'regiao' => '',
'percentual' => number_format($CadastroConsumo->percentual_pais, 0, '', '')
];
$ConsumoPaises = CadastroConsumoPais::where('cadastro_id', $clienteLogado->id)->orderBy('qtde_vinhos', 'DESC')->limit(5)->get();
$total_vinhos = 0;
$km_percorrido = 0;
$paises = [];
foreach ($ConsumoPaises as $consumoPais) {
if($total_vinhos == 0){
$total_vinhos = $consumoPais->qtde_vinhos;
}
$km_percorrido += $consumoPais->km_percorrido;
$percentual = ($consumoPais->qtde_vinhos * 100) / $total_vinhos;
$percentual = number_format($percentual, 0, '', '');
$paises[] = (object)['nome' => $consumoPais->pais->nome, 'bandeira' => url('/uploads/pais/' . $consumoPais->pais->thumbnail_principal), 'qtde_vinhos' => $consumoPais->qtde_vinhos, 'percentual' => $percentual];
}
$Consumo->paises = $paises;
$Consumo->km_percorrido = number_format($km_percorrido, 0, '', '.');
$data['consumo'] = $Consumo;
return view('site/aniversario-vinumday', $data);
}
public function aniversarioVinumDayTela($page){
$exibeRetrospectiva = GeralService::exibeRetrospectiva();
if(!$exibeRetrospectiva){
return redirect('/');
}
if($page > 6){
return response()->json(['status' => false, 'message' => 'Página não encontrada']);
}
return view('site/aniver-tela-'.$page);
}
public function passouAqui(Request $request){
$post = $request->input();
return GeralService::buscarPassouAqui($post['slug']);
}
public function aceitePrivacidade(){
$clienteLogado = GeralService::buscarClienteLogado();
$data_aceite = date('Y-m-d H:i:s');
$sql = "UPDATE cadastro SET aceite_privacidade = 1, data_aceite_privacidade = '{$data_aceite}' WHERE id = {$clienteLogado->id}";
Log::info($sql);
DB::update($sql);
return response()->json(['status' => true, 'message' => 'Aceite atualizado!']);
}
public function passouAquiCarousel(Request $request){
$post = $request->input();
return GeralService::buscarPassouAquiCarousel($post['id_produto'],$post['slug_tipo_produto']);
}
public function addOfertaDia(Request $request){
$input = $request->input();
$item = CartService::addOfertaDia($input);
print_r($item);die();
}
public function cadastrarNewsletter(Request $request){
$post = $request->input();
if ((Newsletter::where('email',$post['email'])->count()) > 0) {
return response()->json(array(
'status' => false,
'message' => 'Esse e-mail já está sendo usado.',
));
}else{
$newsletter = new Newsletter();
$newsletter->nome = $post['nome'];
$newsletter->email = $post['email'];
$newsletter->date_create = date('Y-m-d');
$newsletter->save();
return response()->json(array(
'status' => true,
'message' => 'Newsletter cadastrada com sucesso.',
));
}
}
public function erro(){
$data = [];
$data['error'] = ['message' => 'Site indisponível no momento'];
return view('errors/500', $data);
}
public function perguntasFrequentes(){
$data = array();
$data['listaPerguntas'] = PerguntasFrequentes::all();
return view('site/perguntas-frequentes', $data);
}
public function ordemCompraDetalhe($hashkey){
$ordem = OrdemCompra::where('hashkey', $hashkey)->first();
$updateAcessosOrdem = "UPDATE ordem_compra SET acessos = (acessos+1) WHERE id = {$ordem->id}";
DB::update(DB::raw($updateAcessosOrdem));
if($ordem->previsao_entrega == '0000-00-00'){
$ordem->previsao_entrega = '';
}
$data = [];
$data['ordem'] = $ordem;
$data['fornecedor'] = $ordem->fornecedor;
return view('site/ordem-compra-detalhe', $data);
}
public function savePrevisaoEntrega($hashkey, Request $request){
$ordem = OrdemCompra::where('hashkey', $hashkey)->first();
$ordem->previsao_entrega = $request->input('previsao_entrega');
$ordem->save();
return response()->json(array(
'status' => true,
'message' => 'Previsão Entrega salva com sucesso!',
'previsao_entrega' => date('d/m/Y', strtotime($ordem->previsao_entrega))
));
}
public function listaVinumteca(Request $request){
$data = [];
$query = Noticia::where('publicado', 1)->where('visibilidade', 'publico');
if($request->input('categoria')){
$categoria_id = $request->input('categoria');
$query->whereRaw("EXISTS (SELECT 1 FROM noticia_has_categoria nhc WHERE nhc.noticia_id = noticia.id AND nhc.noticia_categoria_id = {$categoria_id})");
}
if($request->input('busca')){
$query->whereRaw("nome LIKE '%" . $request->input('busca') . "%'");
}
$data['listaNoticias'] = $query->orderBy('data_completa', 'DESC')->paginate(4);
$html = view('site/_blog-lista', $data)->render();
echo $html;
}
public function listaNoticias(){
$data = [];
$data['listaNoticias'] = Noticia::where('publicado', 1)->where('visibilidade', 'publico')->orderBy('data_completa', 'DESC')->paginate(4);
$data['lastPage'] = $data['listaNoticias']->lastPage();
$data['titulo_pagina'] = 'Vinumteca';
$data['subtitulo_pagina'] = 'blog';
$data['listaCategorias'] = NoticiaCategoria::select('slug', 'titulo')->where('destaque_menu', 0)->orderBy('titulo', 'ASC')->get();
$data['listaCategoriasMenu'] = NoticiaCategoria::select('slug', 'titulo')->where('destaque_menu', 1)->orderBy('titulo', 'ASC')->get();
$data['listaCategoriasDestaque'] = NoticiaCategoria::where('destaque_home', 1)->orderBy('titulo', 'ASC')->get();
//Post Destaque
$data['noticiaDestaque'] = Noticia::where('destaque', 1)->where('publicado', 1)->where('visibilidade', 'publico')->orderBy('data', 'DESC')->first();
$data['oferta_dia'] = GeralService::buscarOfertaDia();
return view('site/blog-lista-vinumteca', $data);
}
public function listaNoticiasBusca(Request $request){
$data = [];
$data = $request->input();
$query = Noticia::where('publicado', 1)->where('visibilidade', 'publico');
if($request->input('busca')){
$query->whereRaw("nome LIKE '%" . $request->input('busca') . "%'");
}
$data['listaNoticias'] = $query->orderBy('data_completa', 'DESC')->paginate(4);
$data['lastPage'] = $data['listaNoticias']->lastPage();
$data['titulo_pagina'] = 'Vinumteca';
$data['subtitulo_pagina'] = 'blog';
$data['listaCategorias'] = NoticiaCategoria::select('slug', 'titulo')->where('destaque_menu', 0)->orderBy('titulo', 'ASC')->get();
$data['listaCategoriasMenu'] = NoticiaCategoria::select('slug', 'titulo')->where('destaque_menu', 1)->orderBy('titulo', 'ASC')->get();
$data['listaCategoriasDestaque'] = NoticiaCategoria::where('destaque_home', 1)->orderBy('titulo', 'ASC')->get();
//Post Destaque
$data['noticiaDestaque'] = Noticia::where('destaque', 1)->where('publicado', 1)->where('visibilidade', 'publico')->orderBy('data', 'DESC')->first();
$data['oferta_dia'] = GeralService::buscarOfertaDia();
return view('site/blog-busca-vinumteca', $data);
}
public function categoriaNoticia($slug){
$data = [];
$categoria = NoticiaCategoria::where('slug',$slug)->first();
$data['categoriaPage'] = $categoria;
$data['titulo_pagina'] = 'Vinumteca';
$data['subtitulo_pagina'] = $categoria->titulo;
$data['subtitulo_pagina'] = 'blog';
$data['listaNoticias'] = Noticia::select('noticia.*')->join('noticia_has_categoria','noticia_has_categoria.noticia_id','=','noticia.id')->where('noticia_has_categoria.noticia_categoria_id', $categoria->id)->where('publicado', 1)->where('visibilidade', 'publico')->paginate(4);
$data['lastPage'] = $data['listaNoticias']->lastPage();
$data['oferta_dia'] = GeralService::buscarOfertaDia();
$data['listaCategoriasMenu'] = NoticiaCategoria::select('slug', 'titulo')->where('destaque_menu', 1)->orderBy('titulo', 'ASC')->get();
return view('site/blog-categoria-vinumteca', $data);
}
public function detalheNoticia($slug){
$data = [];
$data['titulo_pagina'] = 'Vinumteca';
$data['listaCategoriasMenu'] = NoticiaCategoria::select('slug', 'titulo')->where('destaque_menu', 1)->orderBy('titulo', 'ASC')->get();
$data['listaNoticias'] = Noticia::where('publicado', 1)->where('visibilidade', 'publico')->orderBy('data_completa', 'DESC')->paginate(3);
$data['noticia'] = Noticia::where('slug',$slug)->where('publicado', 1)->where('visibilidade', 'publico')->first();
if(!$data['noticia']){
return redirect('/vinumteca');
}
if($data['noticia']){
$data['subtitulo_pagina'] = 'blog';
}else{
$data['subtitulo_pagina'] = 'Notícia não encontrada';
}
$data['oferta_dia'] = GeralService::buscarOfertaDia();
$data['oferta_semana'] = GeralService::buscarOfertaDaSemana();
return view('site/blog-detalhe-vinumteca', $data);
}
public function previewNoticia($slug){
$data = [];
$data['titulo_pagina'] = 'Vinumteca';
$data['listaCategoriasMenu'] = NoticiaCategoria::select('slug', 'titulo')->where('destaque_menu', 1)->orderBy('titulo', 'ASC')->get();
$data['listaNoticias'] = Noticia::where('publicado', 1)->where('visibilidade', 'publico')->orderBy('data_completa', 'DESC')->paginate(3);
$data['noticia'] = Noticia::where('slug',$slug)->first();
if($data['noticia']){
$data['subtitulo_pagina'] = 'blog';
}else{
$data['subtitulo_pagina'] = 'Notícia não encontrada';
}
$data['oferta_dia'] = GeralService::buscarOfertaDia();
$data['oferta_semana'] = GeralService::buscarOfertaDaSemana();
return view('site/blog-detalhe-vinumteca', $data);
}
}