| 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 App\Http\Controllers\BaseController;
use App\Modules\BannerFooter\Models\BannerFooter;
use App\Modules\Produto\Models\Produto;
use App\Modules\Oferta\Models\Oferta;
use App\Modules\TipoDeProduto\Models\TipoDeProduto;
use App\Services\GeralService;
use App\Services\CartService;
use App\BasicInfo;
use PDF;
class ProdutoController extends BaseController
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Http\Response
*/
public function detalhe($slug)
{
$data = array();
$data['produto'] = Produto::where('slug',$slug)->with('caracteristicas','tipo','paisOrigem')->first();
if(!$data['produto']){
$data['produto'] = Produto::where('slug_antiga', $slug)->with('caracteristicas','tipo','paisOrigem')->first();
}
if(!$data['produto']){
return redirect('/');
}
$data['produto']->listaImagens = $data['produto']->getListaImagens();
GeralService::checkoutTracking('produto', ['id_tipo' => $data['produto']->id]);
//$data['outrosProdutos'] = Produto::select('produto.*')->join('tipo_de_produto','produto.id_tipo_produto','=','tipo_de_produto.id')->where('tipo_de_produto.slug',$data['produto']->tipo->slug)->with('caracteristicas','tipo','paisOrigem')->inRandomOrder()->limit(4)->get();
$data['ofertasRelacionadas'] = GeralService::buscarOfertasRelacionadas([
'limit' => 4,
'oferta_semana' => true,
'oferta_dia' => true,
'random' => false
]);
$data['ultima_oferta'] = GeralService::ultimaOfertaProduto($data['produto']->id);
//Disponibilidade Produto
$disponibilidade = 0;
if($data['ultima_oferta'] && $data['ultima_oferta']->produtos){
$disponibilidade = !empty($data['ultima_oferta']->produtos[0]->produto->disponibilidade) ? $data['ultima_oferta']->produtos[0]->produto->disponibilidade : 0;
}
$data['disponibilidade'] = $disponibilidade;
$data['canaisLiberados'] = BasicInfo::first()->value('liberar_canais');
$data['clienteLogado'] = GeralService::buscarClienteLogado();
$data['dadosAdega'] = GeralService::buscarFreteAdegaAberta();
$view_detalhe = $data['produto']->tipo->grupo == 'vestuario' ? 'produto-detalhe-vestuario' : 'produto-detalhe';
return view("produto/{$view_detalhe}", $data);
}
public function detalheLoja($slug)
{
$data = array();
$data['produto'] = Produto::where('slug_antiga',$slug)->with('caracteristicas','tipo','paisOrigem')->first();
if(!$data['produto']){
return redirect('/');
}
$data['produto']->listaImagens = $data['produto']->getListaImagens();
GeralService::checkoutTracking('produto', ['id_tipo' => $data['produto']->id]);
//$data['outrosProdutos'] = Produto::select('produto.*')->join('tipo_de_produto','produto.id_tipo_produto','=','tipo_de_produto.id')->where('tipo_de_produto.slug',$data['produto']->tipo->slug)->with('caracteristicas','tipo','paisOrigem')->inRandomOrder()->limit(4)->get();
$data['ofertasRelacionadas'] = GeralService::buscarOfertasRelacionadas([
'limit' => 4,
'oferta_semana' => true,
'oferta_dia' => true,
'random' => false
]);
$data['ultima_oferta'] = Oferta::select('oferta.*')->join('oferta_has_produto', 'oferta.id', '=', 'oferta_has_produto.id_oferta')->where('oferta.data' ,'<', date('Y-m-d'))->whereIn('oferta.tipo', ['D','S','C'])->where('oferta_has_produto.id_produto', $data['produto']->id)->orderBy('data', 'DESC')->first();
//Disponibilidade Produto
$disponibilidade = 0;
if($data['ultima_oferta']){
return redirect('/oferta/' . $data['ultima_oferta']->slug);
}
$data['canaisLiberados'] = BasicInfo::first()->value('liberar_canais');
$data['clienteLogado'] = GeralService::buscarClienteLogado();
$data['dadosAdega'] = GeralService::buscarFreteAdegaAberta();
return view('produto/produto-detalhe', $data);
}
public function fichaTecnica($slug){
$data['produto'] = Produto::where('slug', $slug)->first();
if(!$data['produto']){
$data['produto'] = Produto::where('slug_antiga', $slug)->first();
}
if(!$data['produto']){
return redirect('/');
}
$data['ultima_oferta'] = Oferta::select('oferta.*')->join('oferta_has_produto', 'oferta.id', '=', 'oferta_has_produto.id_oferta')->where('oferta.data' ,'<', date('Y-m-d'))->whereIn('oferta.tipo', ['D','S','C'])->where('oferta_has_produto.id_produto', $data['produto']->id)->orderBy('oferta_has_produto.id', 'DESC')->first();
$view_ficha_tecnica = 'ficha-tecnica';
if($data['ultima_oferta'] && isset($data['ultima_oferta']->canalHasOferta->canal) && $data['ultima_oferta']->canalHasOferta->canal->tipo == 'PR'){
$view_ficha_tecnica = 'ficha-tecnica-premium';
}elseif($data['ultima_oferta'] && isset($data['ultima_oferta']->canalHasOferta->canal) && $data['ultima_oferta']->canalHasOferta->canal->tipo == 'CR'){
$view_ficha_tecnica = 'ficha-tecnica-cru-classe';
}
$options = [
'orientation' => 'landscape',
'margin-bottom' => 0,
'margin-top' => 0,
'margin-right' => 0,
'margin-left' => 0,
//'header-html' => $page_header_html,
//'footer-right' => utf8_decode('Página [page] de [topage]'),
//'footer-left' => utf8_decode('Documento gerado por Concode - Impresso em '.date('\ d/m/Y\ \ \à\s\ H:i')),
//'footer-font-size' => 8,
//'footer-font-name' => '\'Montserrat\', sans-serif',
//'footer-html' => $page_footer_html
];
if(env('APP_SO', 'linux') == 'windows'){
$data['publicPath'] = '';
echo view("produto.{$view_ficha_tecnica}", $data)->render();
die;
}
$data['publicPath'] = public_path();
$pdf = PDF::loadView("produto.{$view_ficha_tecnica}", $data);
$pdf->setOptions($options);
$nomeProduto = $data['produto']->nome;
return $pdf->download("$nomeProduto.pdf");
//return $pdf->stream();
//return view('produto/ficha-tecnica',$data);
//return $pdf->download('ficha-tecnica-'.$data['produto']->slug.'.pdf');
}
}