| 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\BannerFooter\Models\BannerFooter;
use App\Modules\Cadastro\Models\Cadastro;
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\Produto\Models\Produto;
use App\Modules\ConfrariaProdutoAvaliacao\Models\ConfrariaProdutoAvaliacao;
use App\Modules\ConfrariaPostImagem\Models\ConfrariaPostImagem;
use App\BasicInfo;
use App\Services\GeralService;
use App\Services\CartService;
use App\Modules\Confraria\Services\ConfrariaService;
use App\Modules\Confraria\Services\ConfrariaEntregaService;
use App\Modules\PedidoVenda\Models\PedidoVenda;
use App\User;
use Sentinel;
use DB;
use Illuminate\Support\Str;
use App\Modules\ConfrariaPostComentario\Models\ConfrariaPostComentario;
class ConfrariaController extends BaseController
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
public function confraria()
{
$data = [];
$data['ofertaAtual'] = GeralService::buscarOfertaConfraria();
$data['ofertasAnteriores'] = GeralService::buscarOfertasConfrariaAnteriores();
$data['clienteLogado'] = GeralService::buscarClienteLogado();
$data['confraria'] = false;
if($data['clienteLogado']){
$data['confraria'] = ConfrariaService::buscarConfrariaUsuarioLogado();
}
$data['info'] = BasicInfo::find(1);
$dataOfertaKit = GeralService::retornaData(date('m'), date('Y'));
$data['oferta_kit_confraria'] = GeralService::buscarOfertaConfraria($dataOfertaKit);
return view('confraria/landing', $data);
}
public function confrariaTermos()
{
$data = [];
return view('confraria/termos-de-uso', $data);
}
public function confrariaCadastro(Request $request)
{
$data['clienteLogado'] = GeralService::buscarClienteLogado();
$data['confraria'] = false;
if($data['clienteLogado']){
$checkConfraria = ConfrariaService::buscarConfrariaUsuarioLogado();
if($checkConfraria){
return redirect('/confraria/home');
}
// Pessoa jurídica não pode criar uma confraria
if($data['clienteLogado']->tipo_pessoa == 'J'){
return redirect('/');
}
}
$data = [];
$data['codigo'] = GeralService::gerarCodigoAleatorio();
$data['link'] = ConfrariaService::gerarUrlConvite($data['codigo']);
$data['info'] = BasicInfo::find(1);
$dataOfertaKit = GeralService::retornaData(date('m'), date('Y'));
$data['oferta_kit_confraria'] = GeralService::buscarOfertaConfraria($dataOfertaKit);
return view('confraria/confraria-cadastro', $data);
}
public function confrariaCadastroBkp(Request $request)
{
$data['clienteLogado'] = GeralService::buscarClienteLogado();
$data['confraria'] = false;
if($data['clienteLogado']){
$checkConfraria = ConfrariaService::buscarConfrariaUsuarioLogado();
if($checkConfraria){
return redirect('/confraria/home');
}
}
$data = [];
$data['codigo'] = GeralService::gerarCodigoAleatorio();
$data['link'] = ConfrariaService::gerarUrlConvite($data['codigo']);
$data['info'] = BasicInfo::find(1);
$dataOfertaKit = GeralService::retornaData(date('m'), date('Y'));
$data['oferta_kit_confraria'] = GeralService::buscarOfertaConfraria($dataOfertaKit);
return view('confraria/confraria-cadastro-bkp', $data);
}
public function confrariaCadastroStep01(Request $request)
{
$data = [];
$data['clienteLogado'] = GeralService::buscarClienteLogado();
$data['confraria'] = false;
$url = false;
if(!$data['clienteLogado']){
return response()->json([
'status' => false,
'mensagem' => 'Você precisa estar logado para cadastrar uma confraria.'
]);
}
$data['confraria'] = ConfrariaService::buscarConfrariaUsuarioLogado();
if($data['confraria'] && $data['confraria']->cadastro_id != $data['clienteLogado']->id){
$url = url('/confraria/home');
}
$html = view('confraria/confraria-cadastro-step-01', $data)->render();
return response()->json(['status' => true, 'html' => $html, 'url' => $url]);
}
public function confrariaCadastroStep02(Request $request)
{
$data = [];
$data['clienteLogado'] = GeralService::buscarClienteLogado();
$data['confraria'] = false;
$data['confraria'] = ConfrariaService::buscarConfrariaUsuarioLogado();
$data['codigo'] = $data['confraria']->codigo;
$data['link'] = ConfrariaService::gerarUrlConvite($data['codigo']);
$data['info'] = BasicInfo::find(1);
$dataOfertaKit = GeralService::retornaData(date('m'), date('Y'));
$data['oferta_kit_confraria'] = GeralService::buscarOfertaConfraria($dataOfertaKit);
$html = view('confraria/confraria-cadastro-step-02', $data)->render();
return response()->json(['status' => true, 'html' => $html]);
}
public function deletarConfraria(Request $request)
{
if(!$request->input('palavra_chave')){
return response()->json(['status' => false, 'message' => 'Palavra-Chave não informada!']);
}
if($request->input('palavra_chave') != 'EXCLUIR'){
return response()->json(['status' => false, 'message' => 'Palavra-Chave incorreta!']);
}
$data['clienteLogado'] = GeralService::buscarClienteLogado();
$data['confraria'] = false;
if(!$data['clienteLogado']){
return response()->json(['status' => false, 'message' => 'Você precisa estar logado']);
}
$confraria = ConfrariaService::buscarConfrariaUsuarioLogado();
if(!$confraria){
return response()->json(['status' => false, 'message' => 'Confraria inexistente ou já excluída!']);
}
$resultado = ConfrariaService::deletarConfraria($confraria->id, $data['clienteLogado']->id);
return response()->json($resultado);
}
public function deletarConfrariaMembro(Request $request)
{
if(!$request->input('confraria_membro_id')){
return response()->json(['status' => false, 'message' => 'Confraria Membro ID não informado!']);
}
if(!$request->input('palavra_chave')){
return response()->json(['status' => false, 'message' => 'Palavra-Chave não informada!']);
}
if($request->input('palavra_chave') != 'EXCLUIR'){
return response()->json(['status' => false, 'message' => 'Palavra-Chave incorreta!']);
}
$data['clienteLogado'] = GeralService::buscarClienteLogado();
$data['confraria'] = false;
if(!$data['clienteLogado']){
return response()->json(['status' => false, 'message' => 'Você precisa estar logado']);
}
$confraria = ConfrariaService::buscarConfrariaUsuarioLogado();
if(!$confraria){
return response()->json(['status' => false, 'message' => 'Confraria inexistente ou já excluída!']);
}
$confraria_membro = ConfrariaMembro::where('id', $request->input('confraria_membro_id'))->first();
if(!$confraria_membro){
return response()->json(['status' => false, 'message' => 'Membro inexistente ou já excluído!']);
}
$resultado = ConfrariaService::deletarConfrariaMembro($confraria->id, $confraria_membro->cadastro_id);
return response()->json($resultado);
}
public function salvarConfraria(Request $request){
if($request->input('nome_conf') == ''){
return response()->json([
'status' => false,
'mensagem' => 'Por favor informe o nome da confraria.'
]);
}
$form = $request->input();
$ClienteLogado = GeralService::buscarClienteLogado();
if(!$ClienteLogado){
return response()->json([
'status' => false,
'mensagem' => 'Você precisa estar logado para cadastrar uma confraria.'
]);
}
$confraria = ConfrariaService::buscarConfrariaUsuarioLogado();
if($confraria && $confraria->cadastro_id != $ClienteLogado->id){
return response()->json([
'status' => false,
'mensagem' => 'Você já participa de uma confraria.'
]);
}
if($confraria){
$Confraria = Confraria::where('id', $confraria->id)->first();
$Confraria->nome = $form['nome_conf'];
$Confraria->save();
$mensagem = "Confraria salva com sucesso!";
}else{
$Confraria = new Confraria();
$Confraria->cadastro_id = $ClienteLogado->id;
$Confraria->codigo = GeralService::gerarCodigoAleatorio();
$Confraria->data_cadastro = date('Y-m-d H:i:s');
$Confraria->nome = $form['nome_conf'];
$Confraria->save();
$mensagem = "Confraria criada com sucesso!";
$ConfrariaMembro = new ConfrariaMembro;
$ConfrariaMembro->confraria_id = $Confraria->id;
$ConfrariaMembro->cadastro_id = $ClienteLogado->id;
$ConfrariaMembro->data_cadastro = date('Y-m-d H:i:s');
$ConfrariaMembro->origem = 'FOUNDER';
$ConfrariaMembro->save();
}
$data = [];
$data['codigo'] = $Confraria->codigo;
$data['link'] = ConfrariaService::gerarUrlConvite($Confraria->codigo);
$data['info'] = BasicInfo::find(1);
$dataOfertaKit = GeralService::retornaData(date('m'), date('Y'));
$data['oferta_kit_confraria'] = GeralService::buscarOfertaConfraria($dataOfertaKit);
$data['confraria'] = $Confraria;
$html = view('confraria/confraria-cadastro-step-02', $data)->render();
return response()->json([
'status' => true,
'mensagem' => $mensagem,
'html' => $html
]);
}
public function enviarConvites(Request $request){
$form = $request->input();
$form['convites'] = array_filter($form['convites']);
$ClienteLogado = GeralService::buscarClienteLogado();
if(!$ClienteLogado){
return response()->json([
'status' => false,
'mensagem' => 'Você precisa estar logado para enviar os convites.'
]);
}
$confraria = ConfrariaService::buscarConfrariaUsuarioLogado();
if(!$confraria){
return response()->json([
'status' => false,
'mensagem' => 'Você não participa de nenhuma confraria.'
]);
}
/*if(!isset($form['convites']) || (isset($form['convites']) && count($form['convites']) < 3)){
return response()->json([
'status' => false,
'mensagem' => 'Convide pelo menos 3 amigos!'
]);
}*/
$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);
})
->whereIn('sis_users.email', $form['convites'])
->get();
if(count($cadastrosExistentes) > 0){
foreach($cadastrosExistentes as $cadastroExistente){
if($cadastroExistente->confraria_membro_id){
return response()->json([
'status' => false,
'mensagem' => 'Já existe um convite para o e-mail '.$cadastroExistente->email.'.'
]);
}
}
}
$Confraria = Confraria::where('id', $confraria->id)->first();
$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];
}
}
if(isset($form['convites']) && count($form['convites']) > 0){
$convites = $form['convites'];
foreach ($convites as $conviteEmail) {
$conviteEmail = trim($conviteEmail);
$ConfrariaConvite = new ConfrariaConvite;
$ConfrariaConvite->confraria_id = $Confraria->id;
$ConfrariaConvite->email = $conviteEmail;
$ConfrariaConvite->data_convite = date('Y-m-d H:i:s');
if(!isset($listaCadastroExistente[$conviteEmail])){
$ConfrariaConvite->situacao = 'P'; //Pendente
}elseif(isset($listaCadastroExistente[$conviteEmail]) && empty($listaCadastroExistente[$conviteEmail]->confraria_membro_id)){
$ConfrariaConvite->situacao = 'P'; //Pendente
$ConfrariaConvite->cadastro_id = $listaCadastroExistente[$conviteEmail]->cadastro_id;
}else{
$ConfrariaConvite->situacao = 'E'; //Erro
$ConfrariaConvite->observacao = 'Este amigo já faz parte de uma Confraria!';
$ConfrariaConvite->cadastro_id = $listaCadastroExistente[$conviteEmail]->cadastro_id;
}
$ConfrariaConvite->elegivel_kit = (!isset($listaCadastroExistente[$conviteEmail]) ? 1 : 0);
$ConfrariaConvite->save();
}
}
return response()->json([
'status' => true,
'mensagem' => 'Convites enviados com sucesso!',
'redirect' => url('/confraria/cadastro/finalizado') . '/' . $Confraria->codigo
]);
}
public function confrariaCadastroFinalizado($codigo)
{
if(!$codigo){
return redirect('/confraria');
}
$clienteLogado = GeralService::buscarClienteLogado();
$confraria = ConfrariaService::buscarConfrariaUsuarioLogado();
if(!$clienteLogado || !$confraria){
return redirect('/confraria');
}
$data = [];
$data['confraria'] = $confraria;
$dataOfertaKit = GeralService::retornaData(date('m'), date('Y'));
$data['oferta_kit_confraria'] = GeralService::buscarOfertaConfraria($dataOfertaKit);
$data['info'] = BasicInfo::find(1);
return view('confraria/confraria-cadastro-finalizado', $data);
}
public function confrariaConvite($codigo, Request $request)
{
if(!$codigo){
return redirect('/confraria');
}
$confraria = Confraria::where('codigo', $codigo)->first();
if(!$confraria){
return redirect('/confraria');
}
$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 confraria /perfil/confraria
//se o usuário já tiver logado e já tiver confraria /confraria/home
if(!$clienteLogado && !$cadastro){
$url = '/convite-confraria/' . $codigo . '?redirect=' . url("/confraria/convite/$codigo");
if($request->input('email')){
$url .= "&email=" . $request->input('email');
}
return redirect($url);
}elseif(!$clienteLogado && $cadastro){
return redirect('/login?redirect=' . url('/perfil/confraria'));
}elseif($clienteLogado && !$cadastro->confrariaMembro){
$Convite = ConfrariaConvite::where('confraria_id', $confraria->id)->where('email', $clienteLogado->user->email)->first();
if(!$Convite){
DB::table('confraria_convite')->insert([
'confraria_id' => $confraria->id,
'cadastro_id' => $clienteLogado->id,
'email' => $clienteLogado->user->email,
'origem' => 'LINK',
'data_convite' => date('Y-m-d H:i:s'),
'situacao' => 'P'
]);
}elseif($Convite && empty($Convite->cadastro_id)){
$Convite->cadastro_id = $clienteLogado->id;
$Convite->save();
}
return redirect('/perfil/confraria');
}elseif($clienteLogado && $cadastro->confrariaMembro){
return redirect('/confraria/home');
}else{
return redirect('/confraria');
}
}
public function confrariaHome()
{
$data = [];
$data['cadastro'] = GeralService::buscarClienteLogado();
$confraria = ConfrariaService::buscarConfrariaUsuarioLogado();
if(!$data['cadastro'] || !$confraria){
return redirect('/confraria');
}
$data['confraria'] = Confraria::where('id', $confraria->id)->first(); //@marcoskubas => Devido uso cashback na página
$data['confrariaPosts'] = ConfrariaPost::where('confraria_post.confraria_id', $data['confraria']->id)
->join('confraria_membro', 'confraria_membro.cadastro_id', '=', 'confraria_post.cadastro_id')
->with('autor', 'comentarios.respostas', 'comentarios.autor', 'comentarios.respostas.autor', 'imagens')
->where('confraria_membro.deleted', 0)
->orderBy('data', 'desc')
->get()
->toArray();
$data['informacoesBasicasAdega'] = ConfrariaEntregaService::buscarInformacoesBasicasAdegaAberta($data['confraria']->id);
return view('confraria.confraria-home', $data);
}
public function confrariaHomeMais()
{
$data = [];
$dataOfertaKit = GeralService::retornaData(date('m'), date('Y'));
$data['kit_degustacao'] = GeralService::buscarOfertaConfraria($dataOfertaKit);
return view('confraria.confraria-home-mais', $data);
}
public function confrariaAdega()
{
$data = [];
$data['adega'] = [];
$clienteLogado = GeralService::buscarClienteLogado();
$confraria = ConfrariaService::buscarConfrariaUsuarioLogado();
if(!$clienteLogado || !$confraria){
return redirect('/confraria');
}
$data['confraria'] = Confraria::where('id', $confraria->id)->first(); //@marcoskubas => Devido uso cashback na página
$params['status'] = 'A';
$params['confraria_id'] = $data['confraria']->id;
$adega = ConfrariaService::buscarAdegasConfraria($params);
if(count($adega) > 0){
$data['adega'] = $adega[0];
$params['id_adega'] = $data['adega']->id;
$data['pedidos'] = ConfrariaService::buscarPedidosMembrosConfraria($params);
$data['informacoesBasicasAdega'] = ConfrariaEntregaService::buscarInformacoesBasicasAdegaAberta($data['confraria']->id);
}
return view('confraria.confraria-adega', $data);
}
public function confrariaHistorico()
{
$data = [];
$clienteLogado = GeralService::buscarClienteLogado();
$confraria = ConfrariaService::buscarConfrariaUsuarioLogado();
if(!$clienteLogado || !$confraria){
return redirect('/confraria');
}
$data['confraria'] = Confraria::where('id', $confraria->id)->first(); //@marcoskubas => Devido uso cashback na página
$data['produtos'] = ConfrariaService::buscarHistorico($confraria->id);
$avaliacoes = ConfrariaProdutoAvaliacao::selectRaw('SUM(confraria_produto_avaliacao.avaliacao) AS total_avaliacao, COUNT(confraria_produto_avaliacao.id) AS qtd_avaliacao, confraria_produto_id')
->join('confraria_produto', 'confraria_produto.id', 'confraria_produto_avaliacao.confraria_produto_id')
->where('confraria_produto.confraria_id', $confraria->id)
->groupBy('confraria_produto_id')
->get();
$listaAvaliacoes = [];
if(count($avaliacoes) > 0){
foreach ($avaliacoes as $avaliacao) {
$listaAvaliacoes[$avaliacao->confraria_produto_id] = $avaliacao;
}
}
$data['avaliacoes'] = $listaAvaliacoes;
$data['totalGarrafas'] = 0;
$data['valorTotal'] = 0;
foreach($data['produtos'] as $produto){
$data['valorTotal'] += $produto->valor_total_pedido;
$data['totalGarrafas'] ++;
}
return view('confraria/confraria-historico', $data);
}
public function buscarAvaliacoes(Request $request){
$confraria_produto_id = $request->input('confraria_produto_id');
$avaliacoes = ConfrariaProdutoAvaliacao::where('confraria_produto_id', $confraria_produto_id)
->with('cadastro')
->get();
$viewAvaliacao = '';
foreach($avaliacoes as $avaliacao){
$viewAvaliacao .= view('confraria.comentario-avaliacao-historico', ['avaliacao' => $avaliacao])->render();
}
return response()->json([
'status' => true,
'mensagem' => '',
'html' => $viewAvaliacao,
]);
}
public function novoPost(Request $request){
$data = $request->all();
if($data['texto'] == ''){
return response()->json([
'status' => false,
'mensagem' => 'O texto não pode ficar em branco!',
]);
}
$cadastro = GeralService::buscarClienteLogado();
$post = new ConfrariaPost();
$post->confraria_id = $data['confraria_id'];
$post->cadastro_id = $cadastro->id;
$post->mensagem = $data['texto'];
$post->data = date('Y-m-d H:i:s');
$post->save();
$postCriado = ConfrariaPost::where('id', $post->id)->with('autor')->first();
if($request->hasFile('file-0')){
$arquivos = $request->file();
foreach($arquivos as $arquivo){
$filename = Str::random(12) . '.' . $arquivo->extension();
$upload = GeralService::uploadFile($arquivo, 'confraria_post/' . $postCriado->id, ['delete' => true], $filename);
ConfrariaPostImagem::insert([
'confraria_post_id' => $postCriado->id,
'imagem' => $upload->url,
'data' => date('Y-m-d H:i:s'),
]);
}
}
$htmlPost = view('confraria/post', ['post' => $postCriado]);
return response()->json([
'status' => true,
'mensagem' => 'Post criado com sucesso!',
'html' => $htmlPost->render()
]);
}
public function novoComentario(Request $request){
$data = $request->all();
if($data['texto'] == ''){
return response()->json([
'status' => false,
'mensagem' => 'O comentário não pode ficar em branco!',
]);
}
$cadastro = GeralService::buscarClienteLogado();
$post = new ConfrariaPostComentario();
$post->confraria_post_id = $data['confraria_post_id'];
$post->cadastro_id = $cadastro->id;
$post->mensagem = $data['texto'];
$post->parent_id = isset($data['parent']) ? $data['parent'] : null;
$post->save();
$comentarioCriado = ConfrariaPostComentario::where('id', $post->id)->first();
if(isset($data['parent'])){
$htmlComentario = view('confraria.comentario-resposta', ['comentario' => $comentarioCriado, 'cadastro' => $cadastro]);
return response()->json([
'status' => true,
'mensagem' => 'Comentário enviado com sucesso!',
'html' => $htmlComentario->render(),
'tipo' => 'comentario-resposta'
]);
} else {
$htmlComentario = view('confraria.comentario', ['comentario' => $comentarioCriado, 'cadastro' => $cadastro]);
return response()->json([
'status' => true,
'mensagem' => 'Comentário enviado com sucesso!',
'html' => $htmlComentario->render(),
'tipo' => 'comentario'
]);
}
}
public function deletarPost(Request $request){
$postId = $request->input('post');
$clienteLogado = GeralService::buscarClienteLogado();
$confrariaMembroLogado = ConfrariaService::buscarConfrariaUsuarioLogado();
$post = ConfrariaPost::where('id', $postId)->first();
$imagens = ConfrariaPostImagem::where('confraria_post_id', $post->id)->delete();
$comentarios = ConfrariaPostComentario::where('confraria_post_id', $post->id)->delete();
$post->delete();
return response()->json([
'status' => true,
'mensagem' => 'Postagem excluída com sucesso',
]);
}
public function modalPedido(Request $request){
$pedido_venda_id = $request->input('pedido_id');
$pedido = PedidoVenda::where('id', $pedido_venda_id)
->with('produtos.produto.caracteristicas.produtoRegiao.pais')
->first();
$pedido['valorTotalEconomizado'] = 0;
foreach($pedido->produtos as $produto){
$oferta = DB::table('oferta')->where('id', $produto->id_oferta)->first();
$pedido['valorTotalEconomizado'] += $oferta->preco_mercado - $oferta->preco_oferta;
}
$quantidade_garrafas = 0;
foreach($pedido['produtos'] as $key => $pedidoItem){
$quantidade_garrafas += $pedidoItem['quantidade'];
}
$pedido['qtd_garrafas'] = $quantidade_garrafas;
return response()->json([
'status' => true,
'mensagem' => '',
'html' => view('confraria.modal-pedido', ['pedido' => $pedido])->render(),
]);
}
public function filtrarProdutoHistorico(Request $request){
$clienteLogado = GeralService::buscarClienteLogado();
$confraria = ConfrariaService::buscarConfrariaUsuarioLogado();
$filtro = [];
$filtro['nome'] = $request->input('filtro');
if($filtro['nome'] == '' || $filtro['nome'] == ' '){
$data['produtos'] = ConfrariaService::buscarHistorico($confraria->id);
} else{
$data['produtos'] = ConfrariaService::buscarHistorico($confraria->id, $filtro);
}
$avaliacoes = ConfrariaProdutoAvaliacao::selectRaw('SUM(confraria_produto_avaliacao.avaliacao) AS total_avaliacao, COUNT(confraria_produto_avaliacao.id) AS qtd_avaliacao, confraria_produto_id')
->join('confraria_produto', 'confraria_produto.id', 'confraria_produto_avaliacao.confraria_produto_id')
->where('confraria_produto.confraria_id', $confraria->id)
->groupBy('confraria_produto_id')
->get();
$listaAvaliacoes = [];
if(count($avaliacoes) > 0){
foreach ($avaliacoes as $avaliacao) {
$listaAvaliacoes[$avaliacao->confraria_produto_id] = $avaliacao;
}
}
$data['avaliacoes'] = $listaAvaliacoes;
return response()->json([
'status' => true,
'mensagem' => '',
'html' => view('confraria.produtos_historico', ['produtos' => $data['produtos'], 'avaliacoes' => $data['avaliacoes']])->render(),
]);
}
public function adicionarAvaliacao(Request $request){
$data = $request->all();
$clienteLogado = GeralService::buscarClienteLogado();
$checkAvaliacao = ConfrariaProdutoAvaliacao::where('cadastro_id', $clienteLogado->id)->first();
if($checkAvaliacao){
return response()->json([
'status' => false,
'mensagem' => 'Você já avaliou este produto!',
'html' => '',
]);
}
$avaliacao = new ConfrariaProdutoAvaliacao();
$avaliacao->cadastro_id = $clienteLogado->id;
$avaliacao->confraria_produto_id = $data['confraria_produto_id'];
$avaliacao->mensagem = $data['mensagem'];
$avaliacao->avaliacao = $data['avaliacao'];
$avaliacao->data = date('Y-m-d H:i:s');
$avaliacao->save();
return response()->json([
'status' => true,
'mensagem' => 'Avaliação salva com sucesso!',
'html' => '',
]);
}
public function uploadImagemConfraria(Request $request){
$clienteLogado = GeralService::buscarClienteLogado();
$confraria = ConfrariaService::buscarConfrariaUsuarioLogado();
$tipo = $request->input('tipo');
if(!$request->hasFile('arquivo')){
return response()->json([
'status' => false,
'mensagem' => 'Nenhum arquivo encontrado!',
]);
}
$arquivo = $request->file('arquivo');
$confraria_id = $confraria->id;
$filename = Str::random(12) . '.' . $arquivo->extension();
$upload = GeralService::uploadFile($arquivo, 'confraria/' . $confraria_id, ['delete' => true], $filename);
$update = $tipo == 'imagem' ? ['imagem' => $upload->url] : ['imagem_capa' => $upload->url];
Confraria::where('id', $confraria->id)
->update($update);
return response()->json([
'status' => true,
'mensagem' => 'Imagem alterada com sucesso!',
'url' => $upload->url,
]);
}
public function notificarMembros($confrariaId){
$notificacao = ConfrariaService::notificarMembroConfraria($confrariaId);
return redirect('/');
}
}