| Server IP : 54.94.228.101 / Your IP : 172.28.20.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\AdegaVirada\Services\AdegaViradaService;
use App\BasicInfo;
use App\Services\GeralService;
use App\Modules\Canal\Models\Canal;
use App\Modules\Produto\Models\Produto;
use App\Modules\Cadastro\Models\Cadastro;
use App\Modules\AdegaViradaCupom\Models\AdegaViradaCupom;
use App\Modules\AdegaViradaParticipante\Models\AdegaViradaParticipante;
use App\Modules\AdegaViradaParticipanteIndicacao\Models\AdegaViradaParticipanteIndicacao;
use App\Modules\AdegaViradaResultado\Models\AdegaViradaResultado;
use App\User;
use DB;
class AdegaViradaController extends BaseController
{
public function index()
{
$anoEdicao = 2022;
$adegaViradaInfo = AdegaViradaService::buscarAdegaVirada($anoEdicao);
if(!$adegaViradaInfo || (($adegaViradaInfo) && (!$adegaViradaInfo->ativo || date('Y-m-d H:i:s') < $adegaViradaInfo->data_ativacao))){
return redirect('/');
}
$data['adegaDaViradaInfo'] = $adegaViradaInfo;
// $data['ofertas'] = AdegaViradaService::buscarOfertas($anoEdicao, false, 10);
$data['clienteLogado'] = GeralService::buscarClienteLogado();
$data['titulo_pagina'] = 'Adega';
$data['subtitulo_pagina'] = 'Virada';
$data['participante'] = false;
if($data['clienteLogado'])
$data['participante'] = AdegaViradaParticipante::where('cadastro_id', $data['clienteLogado']->id)->first();
$data['regulamentoStatus'] = AdegaViradaService::regulamentoStatus();
$canalAdegaVirada = Canal::where('id', $adegaViradaInfo->canal_id)->first();
$data['canalAdegaVirada'] = $canalAdegaVirada;
$filtros = [];
$filtros['limitar'] = true;
$filtros['removerAcessorios'] = true;
$data['ofertas'] = GeralService::buscarOfertasCanal($canalAdegaVirada, $filtros);
return view('site/adega-da-virada', $data);
}
public function buscarMaisOfertas($offset){
$anoEdicao = 2022;
$ofertas = AdegaViradaService::buscarOfertas($anoEdicao, $offset, 10);
$html = '';
if(isset($ofertas) && count($ofertas) > 0)
foreach($ofertas as $oferta)
$html .= view('adega-virada.oferta-item', ['oferta' => $oferta])->render();
return response()->json([
'status' => true,
'html' => $html
]);
}
public function resultadoAdegaDaVirada()
{
$anoEdicao = 2022;
$adegaViradaInfo = AdegaViradaService::buscarAdegaVirada($anoEdicao, TRUE);
if(!$adegaViradaInfo){
return redirect('/');
}
$data['ganhador'] = AdegaViradaService::buscarGanhador($anoEdicao);
$data['adegaVirada'] = $adegaViradaInfo;
if(!$data['ganhador'])
return redirect('/');
$data['titulo_pagina'] = 'Resultado';
$data['subtitulo_pagina'] = 'Adega Virada';
// $data['ofertas'] = AdegaViradaService::buscarOfertas($anoEdicao, false, 10);
$data['resultado'] = AdegaViradaResultado::where('adega_virada_id', $adegaViradaInfo->id)->first();
return view('site/resultado-adega-da-virada', $data);
}
public function queroParticipar(Request $request)
{
return response()->json(AdegaViradaService::queroParticipar());
}
public function regulamento(){
$anoEdicao = 2022;
$adegaViradaInfo = AdegaViradaService::buscarAdegaVirada($anoEdicao);
if(!$adegaViradaInfo || (($adegaViradaInfo) && (!$adegaViradaInfo->ativo || date('Y-m-d H:i:s') < $adegaViradaInfo->data_ativacao))){
return redirect('/');
}
$data['clienteLogado'] = GeralService::buscarClienteLogado();
$data['regulamentoStatus'] = AdegaViradaService::regulamentoStatus();
return view('adega-virada.regulamento-adega-virada', $data);
}
public function regulamentoSucesso(){
$anoEdicao = 2022;
$adegaViradaInfo = AdegaViradaService::buscarAdegaVirada($anoEdicao);
if(!$adegaViradaInfo || (($adegaViradaInfo) && (!$adegaViradaInfo->ativo || date('Y-m-d H:i:s') < $adegaViradaInfo->data_ativacao))){
return redirect('/');
}
$data['adegaDaViradaInfo'] = $adegaViradaInfo;
// $data['ofertas'] = AdegaViradaService::buscarOfertas($anoEdicao, false, 10);
$data['clienteLogado'] = GeralService::buscarClienteLogado();
$data['titulo_pagina'] = 'Adega';
$data['subtitulo_pagina'] = 'Virada';
$data['participante'] = false;
if($data['clienteLogado'])
$data['participante'] = AdegaViradaParticipante::where('cadastro_id', $data['clienteLogado']->id)->first();
$data['regulamentoStatus'] = AdegaViradaService::regulamentoStatus();
$canalAdegaVirada = Canal::where('id', $adegaViradaInfo->canal_id)->first();
$data['canalAdegaVirada'] = $canalAdegaVirada;
$filtros = [];
$filtros['limitar'] = true;
$filtros['removerAcessorios'] = true;
$data['ofertas'] = GeralService::buscarOfertasCanal($canalAdegaVirada, $filtros);
return view('adega-virada.regulamento-adega-virada-sucesso', $data);
}
public function novaIndicacao(Request $request){
$cadastro = GeralService::buscarClienteLogado();
$data = $request->input();
if($data['email'] == '' || $data['nome'] == '')
return response()->json([
'status' => false,
'message' => 'Você precisa informar o nome e e-mail!'
]);
$checkCadastroConvite = User::where('email', $data['email'])->first();
if($checkCadastroConvite)
return response()->json([
'status' => false,
'message' => 'Este e-mail já está cadastrado na VinumDay!'
]);
$checkConviteExistente = AdegaViradaParticipanteIndicacao::where('email', $data['email'])->first();
if($checkConviteExistente)
return response()->json([
'status' => false,
'message' => 'Este usuário já foi convidado!'
]);
$indicacao = new AdegaViradaParticipanteIndicacao();
$indicacao->adega_virada_participante_id = $cadastro->adegaViradaParticipante->id;
$indicacao->nome_completo = $data['nome'];
$indicacao->email = $data['email'];
$indicacao->situacao = 'P';
$indicacao->data_cadastro = date('Y-m-d H:i:s');
$indicacao->save();
//@wesley - $html = view()->render(); // carregar a lista de indicações para atualizar após o envio e fechamento do Modal
return response()->json([
'status' => true,
'message' => 'Convite enviado com sucesso!'
]);
}
public function criarCupomTeste(){
$cupom = new AdegaViradaCupom();
$cupom->adega_virada_participante_id = 2;
$cupom->numero = rand(5,1000);
$cupom->data_cadastro = date('Y-m-d H:i:s');
$cupom->tipo = 'indicacao';
$cupom->save();
return;
}
public function emailTeste(){
$emails = AdegaViradaService::enviarEmailResultado(2022);
return;
}
public function adegaViradaConvite($codigo = false, Request $request)
{
$data = [];
$data['titulo_pagina'] = 'Adega';
$data['subtitulo_pagina'] = 'Virada';
if($request->input('codigo')){
$anoEdicao = 2022;
$adegaViradaInfo = AdegaViradaService::buscarAdegaVirada($anoEdicao);
if(!$adegaViradaInfo || (($adegaViradaInfo) && (!$adegaViradaInfo->ativo || date('Y-m-d H:i:s') < $adegaViradaInfo->data_ativacao))){
return redirect('/');
}
$data['adegaDaViradaInfo'] = $adegaViradaInfo;
$data['clienteLogado'] = GeralService::buscarClienteLogado();
$data['codigo'] = $request->input('codigo');
$data['email'] = $request->input('email');
$data['redirect'] = $request->input('redirect');
return view('adega-virada.adega-virada-convite', $data);
}
if(!$codigo){
return redirect('/adega-da-virada');
}
$Participante = AdegaViradaParticipante::where('codigo', $codigo)->where('participando', 1)->first();
if(!$Participante){
return redirect('/adega-da-virada');
}
$clienteLogado = GeralService::buscarClienteLogado();
$cadastro = FALSE;
if($clienteLogado){
$cadastro = $clienteLogado;
}elseif($request->input('email')){
$User = User::where('email', $request->input('email'))->first();
if($User){
$cadastro = $User->cliente;
}
}
//se o usuário não tiver logado e não tiver conta na VinumDay /cadastro
//se o usuário não tiver logado e tiver conta na VinumDay /login
//se o usuário já tiver logado e não tiver /perfil/cupons-adega-da-virada
//se o usuário já tiver logado e já tiver /perfil/cupons-adega-da-virada
if(!$clienteLogado && !$cadastro){
$adegaVirada = AdegaViradaService::buscarAdegaVirada();
if(isset($adegaVirada->canal_id)){
$slugCanal = Canal::where('id', $adegaVirada->canal_id)->value('slug');
$urlRedirect = url("/exclusivo/{$slugCanal}");
}else{
$urlRedirect = url("/perfil/cupons-adega-da-virada");
}
// $url = '/convite-adega-virada/' . $codigo . '?redirect=' . $urlRedirect;
$url = '/adega-da-virada/convite?codigo=' . $codigo . '&redirect=' . $urlRedirect;
if($request->input('email')){
$url .= "&email=" . $request->input('email');
}
return redirect($url);
}elseif(!$clienteLogado && $cadastro){
return redirect('/login?redirect=' . url('/perfil/cupons-adega-da-virada'));
}elseif($clienteLogado){ // && !$cadastro->confrariaMembro
$Indicacao = AdegaViradaParticipanteIndicacao::where('adega_virada_participante_id', $Participante->id)->where('email', $clienteLogado->user->email)->first();
$check = AdegaViradaParticipanteIndicacao::join('adega_virada_participante', 'adega_virada_participante.id', 'adega_virada_participante_indicacao.adega_virada_participante_id')
->where('adega_virada_participante_id', $Participante->id)
->where('email', $clienteLogado->user->email)
->where('adega_virada_participante.cadastro_id', $clienteLogado->id)
->first();
if($check)
return redirect('/perfil/cupons-adega-da-virada');
if($clienteLogado->id != $Participante->cadastro_id){
if(!$Indicacao){
DB::table('adega_virada_participante_indicacao')->insert([
[
'adega_virada_participante_id' => $Participante->id,
'cadastro_id' => $clienteLogado->id,
'nome_completo' => $clienteLogado->nome_completo(),
'email' => $clienteLogado->user->email,
'telefone' => $clienteLogado->telefone,
'data_cadastro' => date('Y-m-d H:i:s'),
'situacao' => 'P'
]
]);
}elseif($Indicacao && empty($Indicacao->cadastro_id)){
$Indicacao->cadastro_id = $clienteLogado->id;
$Indicacao->save();
}
}
return redirect('/perfil/cupons-adega-da-virada');
}elseif($clienteLogado){ // && $cadastro->confrariaMembro
return redirect('/perfil/cupons-adega-da-virada');
}else{
return redirect('/adega-da-virada');
}
}
public function aceitarRegulamento(Request $request){
$post = $request->input();
if(!$post['regulamento'])
return response()->json([
'status' => false,
'message' => 'Você precisa aceitar o regulamento para participar!'
]);
$cadastro = GeralService::buscarClienteLogado();
if(!$cadastro)
return response()->json([
'status' => false,
'message' => 'Você precisa estar logado para participar!'
]);
$participacao = AdegaViradaService::queroParticipar($cadastro->id, $post);
return response()->json($participacao);
}
public function cancelarParticipacao(){
$cadastro = GeralService::buscarClienteLogado();
AdegaViradaParticipante::where('cadastro_id', $cadastro->id)
->update([
'participando' => 0
]);
return response()->json([
'status' => true,
'message' => 'Sua participação na Adega da Virada 2023 foi cancelada.',
]);
}
public function salvarCodigoPersonalizado(Request $request){
$codigo = trim($request->input('codigo'));
$cadastro = GeralService::buscarClienteLogado();
$checkCodigo = AdegaViradaParticipante::where('codigo', $codigo)->first();
if($codigo == '')
return response()->json([
'status' => false,
'message' => 'Você precisa informar o código!'
]);
if($checkCodigo)
return response()->json([
'status' => false,
'message' => 'O Código informado já existe!'
]);
$checkJaAlterou = AdegaViradaParticipante::where('cadastro_id', $cadastro->id)
->where('personalizou_codigo', 1)
->first();
if($checkJaAlterou)
return response()->json([
'status' => false,
'message' => 'Você já alterou o seu código uma vez!'
]);
AdegaViradaParticipante::where('cadastro_id', $cadastro->id)
->update([
'codigo' => $codigo,
'personalizou_codigo' => 1
]);
return response()->json([
'status' => true,
'message' => 'Código salvo com sucesso!'
]);
}
public function setContagemPopup(){
$usuarioLogado = GeralService::buscarClienteLogado();
if(!$usuarioLogado){
return response()->json([
'status' => false,
'message' => 'Nenhum usuário encontrado.'
]);
}
if($usuarioLogado->adega_virada_popup_contagem < 3){
Cadastro::where('id', $usuarioLogado->id)->increment('adega_virada_popup_contagem', 1);
}
return response()->json([
'status' => true,
'message' => $usuarioLogado->adega_virada_popup_contagem,
]);
}
public function modalRegulamento(){
$usuarioLogado = GeralService::buscarClienteLogado();
if(!$usuarioLogado){
return response()->json([
'status' => false,
'message' => 'Nenhum usuário encontrado.'
]);
}
$data = [];
$contentModal = view('adega-virada.modal-regulamento-content', $data);
return response()->json([
'status' => true,
'message' => 'Modal adega virada',
'html' => $contentModal->render()
]);
}
}