403Webshell
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/vinumday2_0/app/Http/Controllers/Website/ConfrariaMembroController.php
<?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',
        ]);
    }

}

Youez - 2016 - github.com/yon3zu
LinuXploit