| 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\BannerFooter\Models\BannerFooter;
use App\Modules\Confraria\Models\Confraria;
use App\Modules\ConfrariaMembro\Models\ConfrariaMembro;
use App\Modules\ConfrariaConvite\Models\ConfrariaConvite;
use App\Modules\ConfrariaPost\Models\ConfrariaPost;
use App\Modules\Canal\Models\Canal;
use App\Modules\Oferta\Models\Oferta;
use App\Modules\Cadastro\Models\Cadastro;
use App\Modules\OfertaReserva\Models\OfertaReserva;
use App\BasicInfo;
use App\Modules\Confraria\Services\ConfrariaService;
use App\Services\GeralService;
use App\Services\CartService;
use Sentinel;
use DB;
class ConfrariaMembroController extends BaseController
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
public function confrariaColecaoDoMes(Request $request)
{
$data = [];
$data = $request->input();
$clienteLogado = GeralService::buscarClienteLogado();
$confraria = ConfrariaService::buscarConfrariaUsuarioLogado();
if(!$clienteLogado || !$confraria){
return redirect('/confraria');
}
$data['cadastro'] = $clienteLogado;
$data['confraria'] = $confraria;
$tempo_reserva = OfertaReserva::dataAtual();
$data['data_oferta_confraria'] = GeralService::dataOfertaConfraria();
$data['oferta'] = Oferta::select(
'oferta.*',
DB::raw("(SELECT 1 FROM oferta_reserva WHERE oferta.id = oferta_reserva.oferta_id AND oferta_reserva.data_expiracao >= '{$tempo_reserva}' LIMIT 1) AS 'oferta_reserva'"),
DB::raw("(SELECT tipo.grupo FROM oferta_has_produto ohp, produto p, tipo_de_produto tipo WHERE ohp.id_oferta = oferta.id AND p.id = ohp.id_produto AND tipo.id = p.id_tipo_produto ORDER BY ohp.ordem ASC, ohp.id ASC LIMIT 1) AS 'grupo_produto'"),
DB::raw("(SELECT tipo.grupo FROM oferta_has_produto ohp, produto p, tipo_de_produto tipo WHERE ohp.id_oferta = oferta.id AND p.id = ohp.id_produto AND tipo.id = p.id_tipo_produto AND tipo.grupo = 'vinhos' LIMIT 1) AS 'grupo_vinho'")
)->where('data', $data['data_oferta_confraria'])
->where('oferta.tipo', 'CF')
->first();
if(!$data['oferta']){
return redirect('/');
}
if(count($data['oferta']->produtos) > 0){
foreach ($data['oferta']->produtos as $key => $produto) {
$data['oferta']->produtos[$key]->listaImagens = $produto->produto->getListaImagens();
}
}
//Ajuste Data Canal
$canal = Canal::join('canal_has_oferta', 'canal.id', '=', 'canal_has_oferta.id_canal')->where('canal_has_oferta.id_oferta', $data['oferta']->id)->orderBy('canal.data_inicio', 'DESC')->first();
GeralService::checkoutTracking('oferta', ['id_tipo' => $data['oferta']->id]);
//Disponibilidad Produto
$disponibilidade = 0;
$variacoes = [];
if($data['oferta'] && $data['oferta']->produtos){
$disponibilidade = !empty($data['oferta']->produtos[0]->produto->disponibilidade) ? $data['oferta']->produtos[0]->produto->disponibilidade : 0;
$variacoes = isset($data['oferta']->produtos[0]->produto->tipo->variacoes) ? GeralService::buscarVariacoesProduto($data['oferta']->produtos[0]->produto) : [];
}
$data['disponibilidade'] = $disponibilidade;
$data['variacoes'] = $variacoes;
$data['ofertasCart'] = CartService::buscarOfertasCart();
//$data['oferta']->grupo_produto == 'acessorios' ||
if(!empty($data['oferta']->grupo_produto) && $data['oferta']->grupo_vinho != 'vinhos' && ($data['oferta']->grupo_produto == 'vestuario')):
$view_oferta = 'oferta-'.$data['oferta']->grupo_produto;
elseif($data['oferta'] && isset($data['oferta']->canalHasOferta->canal) && $data['oferta']->canalHasOferta->canal->tipo == 'PR'):
$view_oferta = (count($data['oferta']->produtos) > 1 ? 'oferta-premium-colecao' : 'oferta-premium');
elseif($data['oferta'] && $data['oferta']->tipo == 'CF'):
$view_oferta = (count($data['oferta']->produtos) > 1 ? 'oferta-confraria-colecao' : 'oferta-confraria');
elseif($data['oferta'] && isset($data['oferta']->canalHasOferta->canal) && $data['oferta']->canalHasOferta->canal->tipo == 'R'):
$view_oferta = 'oferta-relampago-colecao';
elseif($data['oferta'] && isset($data['oferta']->canalHasOferta->canal) && $data['oferta']->canalHasOferta->canal->tipo == 'CR'):
$view_oferta = (count($data['oferta']->produtos) > 1 ? 'oferta-cru-classe-colecao' : 'oferta-cru-classe');
elseif($data['oferta'] && isset($data['oferta']->canalHasOferta->canal) && $data['oferta']->canalHasOferta->canal->tipo == 'BF'):
$view_oferta = (count($data['oferta']->produtos) > 1 ? 'oferta-black-friday-colecao' : 'oferta-black-friday');
elseif($data['oferta'] && isset($data['oferta']->canalHasOferta->canal) && $data['oferta']->canalHasOferta->canal->tipo == 'OU'):
$view_oferta = (count($data['oferta']->produtos) > 1 ? 'oferta-outlet-colecao' : 'oferta-outlet');
elseif($data['oferta'] && isset($data['oferta']->canalHasOferta->canal) && count($data['oferta']->produtos) > 1):
$view_oferta = 'oferta-colecao';
elseif($data['oferta'] && $data['oferta']->tipo == 'CS'):
$view_oferta = 'oferta-casada';
else:
$view_oferta = 'oferta-do-dia';
endif;
//$data['titulo_pagina'] = $canal ? $canal->nome : $data['oferta']->titulo;
//$data['subtitulo_pagina'] = $canal ? $canal->subtitulo : $data['oferta']->sub_titulo;
if($data['oferta']->tipo == 'D' && date('Y-m-d') == $data['oferta']->data){
$data['titulo_pagina'] = 'Oferta';
$data['subtitulo_pagina'] = 'Do dia';
}elseif($data['oferta']->tipo == 'CS' && date('Y-m-d') == $data['oferta']->data){
$data['titulo_pagina'] = 'Oferta';
$data['subtitulo_pagina'] = 'Casada';
}elseif($data['oferta']->tipo == 'CF'){
$data['titulo_pagina'] = 'Oferta';
$data['subtitulo_pagina'] = 'Confraria';
}elseif($data['oferta']->tipo == 'S'){
$data['titulo_pagina'] = 'Oferta';
$data['subtitulo_pagina'] = 'Da Semana';
}elseif($data['oferta']->tipo == 'E'){
$data['titulo_pagina'] = 'Oferta';
$data['subtitulo_pagina'] = 'Exclusiva';
}elseif($data['oferta']->tipo == 'M'){
$data['titulo_pagina'] = 'Oferta';
$data['subtitulo_pagina'] = 'Mercado';
}elseif($canal && $view_oferta == 'oferta-colecao'){
$data['titulo_pagina'] = $canal ? $canal->nome . ' ' . $canal->subtitulo : '';
$data['subtitulo_pagina'] = '';
}else{
$data['titulo_pagina'] = $canal ? $canal->nome : '';
$data['subtitulo_pagina'] = $canal ? $canal->subtitulo : '';
}
$data['data_oferta_semana'] = GeralService::dataOfertaSemana();
$data['data_fim_oferta'] = date('Y-m-d', strtotime("+7 days",strtotime($data['oferta']->data)));
$data['canal'] = $canal;
$data['ofertasRelacionadas'] = GeralService::buscarOfertasRelacionadas([
'limit' => 4,
'oferta_semana' => false,
'random' => false
]);
$data['canaisLiberados'] = BasicInfo::first()->value('liberar_canais');
$data['date_limite_exclusiva'] = date('Y-m-d', strtotime("-5 day"));
$data['clienteLogado'] = GeralService::buscarClienteLogado();
$data['dadosAdega'] = GeralService::buscarFreteAdegaAberta();
$data['oferta_semana'] = GeralService::buscarOfertaDaSemana();
if($data['oferta'] && isset($data['oferta']->canalHasOferta->canal) && $data['oferta']->canalHasOferta->canal->tipo == 'R'){
$data['ofertaRelampago'] = GeralService::buscarOfertaCanalRelampago();
}
if($data['oferta']->tipo == 'CF'){
$data['html_ficha_tecnica'] = view('confraria._ficha-tecnica', $data)->render();
}
return view('confraria/colecao-do-mes', $data);
}
public function confrariaMembroHome(Request $request)
{
$data = [];
$clienteLogado = GeralService::buscarClienteLogado();
$confraria = ConfrariaService::buscarConfrariaUsuarioLogado();
if(!$clienteLogado || !$confraria){
return redirect('/confraria');
}
$data['confraria'] = $confraria;
$data['codigo'] = $confraria->codigo;
$data['valorAdegaAberta'] = 0;
$data['contribuicaoTotalConfraria'] = 0;
$data['qtdMembros'] = $confraria->membros->count();
foreach($confraria->membros as $key => $membro){
$data['valorAdegaAberta'] += $membro->valor_adega_atual;
$data['contribuicaoTotalConfraria'] += $membro->contribuicao_total;
$filtro = [];
$filtro['cadastro_id'] = $membro->cadastro->id;
$confraria->membros[$key]->produtos = ConfrariaService::buscarHistorico($confraria->id, $filtro);
}
$data['membros'] = $confraria->membros;
$data['convitesPendentes'] = ConfrariaService::buscarConvitesPendentes($confraria->id);
return view('confraria/membro/home-membro', $data);
}
public function confrariaMembroEditar($slug, Request $request)
{
$data = [];
return view('confraria/membro/editar-membro', $data);
}
/**
* Save para Novos Membros, Edição Dados
*/
public function confrariaMembroSalvar(Request $request)
{
$json = ['status' => true, 'message' => 'Dados salvos com sucesso!'];
return response()->json($json);
}
public function excluirMembro(Request $request){
$membroId = $request->input('membro');
if(!$membroId){
return response()->json([
'status' => false,
'mensagem' => 'Não foi possível excluir este membro no momento!',
]);
}
ConfrariaMembro::where('id', $membroId)->delete();
return response()->json([
'status' => true,
'mensagem' => 'Membro excluído com sucesso!',
]);
}
public function enviarConvite(Request $request){
$email = $request->input('email');
$usuarioLogado = $clienteLogado = GeralService::buscarClienteLogado();
$confraria = ConfrariaService::buscarConfrariaUsuarioLogado();
if($email == '' || $email == ' '){
return response()->json([
'status' => false,
'mensagem' => 'Não foi possível enviar o convite agora.',
]);
}
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
return response()->json([
'status' => false,
'mensagem' => 'O e-mail informado não é válido.',
]);
}
$checkEmail = ConfrariaConvite::where('email', $email)->first();
if($checkEmail){
return response()->json([
'status' => false,
'mensagem' => 'O e-mail informado já recebeu um convite.',
]);
}
$cadastrosExistentes = Cadastro::selectRaw('cadastro.id cadastro_id, sis_users.email, confraria_membro.id confraria_membro_id')
->join('sis_users', 'sis_users.id', '=', 'cadastro.user_id')
->leftJoin('confraria_membro', function($q)
{
$q->on('confraria_membro.cadastro_id', '=', 'cadastro.id')->where('confraria_membro.deleted', 0);
})
->where('sis_users.email', $email)
->get();
if(count($cadastrosExistentes) > 0){
foreach($cadastrosExistentes as $cadastroExistente){
if($cadastroExistente->confraria_membro_id){
return response()->json([
'status' => false,
'mensagem' => 'Este usuário já participa de uma confraria: '.$cadastroExistente->email.'.'
]);
}
}
}
$listaCadastroExistente = [];
if(count($cadastrosExistentes) > 0){
foreach ($cadastrosExistentes as $cadastrosExistente) {
$email = trim($cadastrosExistente->email);
$listaCadastroExistente[$email] = (object)['cadastro_id' => $cadastrosExistente->cadastro_id, 'confraria_membro_id' => $cadastrosExistente->confraria_membro_id];
}
}
$convite = new ConfrariaConvite();
$convite->confraria_id = $confraria->id;
$convite->email = $email;
$convite->data_convite = date('Y-m-d H:i:s');
$convite->situacao = 'P';
$convite->elegivel_kit = (!isset($listaCadastroExistente[$email]) ? 1 : 0);
$convite->save();
return response()->json([
'status' => true,
'mensagem' => 'Convite enviado com sucesso',
]);
}
}