| 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/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\Oferta\Models\Oferta;
use App\Modules\Tema\Models\Tema;
use App\Modules\OfertaReserva\Models\OfertaReserva;
use DB;
use App\Modules\Produto\Models\Produto;
use App\Modules\Noticia\Models\Noticia;
use App\Modules\Canal\Models\Canal;
use App\Services\GeralService;
use App\Services\CartService;
use App\BasicInfo;
class AdegaRelampagoController extends BaseController
{
public function index(Request $request)
{
$tempo_reserva = OfertaReserva::dataAtual();
$ofertaRelampago = GeralService::buscarOfertaCanalRelampago();
$data = array();
$data = $request->input();
$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('slug',$ofertaRelampago['slug'])
->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();
$view_oferta = 'adega-relampago';
$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();
}
return view("site/{$view_oferta}",$data);
}
}