| Server IP : 54.94.228.101 / 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/Admin/ |
Upload File : |
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Requests;
use App\Http\Controllers\BaseController;
use Illuminate\Http\Request;
use App\Modules\Notificacao\Models\Notificacao;
use App\Modules\Colaborador\Models\Colaborador;
use App\Modules\Reserva\Models\Reserva;
use App\Modules\Recado\Models\Recado;
use App\Modules\Estado\Models\Estado;
use App\Modules\Enquete\Models\Enquete;
use App\Modules\EventoPrivado\Models\EventoPrivado;
use App\Modules\Questionamento\Models\Questionamento;
use App\Modules\Produto\Models\Produto;
use App\Modules\ProdutoCaracteristica\Models\ProdutoCaracteristica;
use App\Modules\Oferta\Models\Oferta;
use App\Modules\OrdemCompra\Models\OrdemCompra;
use App\Modules\OfertaHasProduto\Models\OfertaHasProduto;
use App\Modules\Cadastro\Models\Cadastro;
use App\Modules\CadastroEndereco\Models\CadastroEndereco;
use App\Modules\CadastroCartao\Models\CadastroCartao;
use App\Modules\PedidoEntrega\Models\PedidoEntrega;
use App\Modules\PedidoEntregaStatus\Models\PedidoEntregaStatus;
use App\Modules\PedidoEntregaHasStatus\Models\PedidoEntregaHasStatus;
use App\Modules\PedidoVenda\Models\PedidoVenda;
use App\Modules\PedidoVendaHasProduto\Models\PedidoVendaHasProduto;
use App\Modules\AdegaHasPedidoVenda\Models\AdegaHasPedidoVenda;
use App\Modules\Cidade\Models\Cidade;
use App\Modules\Adega\Models\Adega;
use App\Modules\Pais\Models\Pais;
use App\Modules\Empresa\Models\Empresa;
use App\User;
use App\Services\GeralService;
use App\Services\PedidoEntregaService;
use App\Services\CepService;
use App\Services\MarketplaceService;
use App\Notifications\NotificacaoAdmin;
use DB;
use Sentinel;
use Activation;
use Carbon\Carbon;
use Excel;
use App\Services\CondominioService;
use Notification;
class AdminController extends BaseController
{
public function __construct(){
parent::__construct();
}
public function dashboard()
{
$meses = [];
//Atual
for($i=1;$i<=date('m');$i++){
$meses[] = ['mes' => $i, 'ano' => date('Y')];
}
//Anterior
for($i=12;$i>date('m');$i--){
$meses[] = ['mes' => $i, 'ano' => (date('Y') - 1)];
}
$data = [];
$data['vendas_mes'] = $this->vendasMonth();
$data['entregas_mes'] = $this->entregasMonth();
$data['compras_mes'] = $this->comprasMonth();
$data['pedidos_mes'] = $this->pedidosParadosMonth();
$data['analise'] = $this->analiseClientesMonth();
$data['ordens'] = $this->ordensCompraMonth();
$data['mes'] = date('m');
$data['ano'] = date('Y');
$data['meses'] = $meses;
// $data['produtosDiscrepantes'] = count(GeralService::buscarOfertasEmDiscrepancia());
$data['produtosDiscrepantes'] = 0;
$data['aniversariantes'] = $this->aniversariantes();
$data['aniversariante'] = count($data['aniversariantes']) > 0 ? $data['aniversariantes'][0] : false;
$data['aniversariantes_dia'] = $this->aniversariantes(true);
return view('admin.admins.index', $data);
}
public function aniversariantes($dia = FALSE){
if($dia){
$aniversariantes = Colaborador::select(DB::raw("id, nome, cargo, data_nascimento as data, 'nascimento' mesdia_classe, DATE_FORMAT(data_nascimento, '%m%d') mesdia, thumbnail_principal"))->whereRaw("DATE_FORMAT(data_nascimento, '%m%d') = ".date('md'))->orderByRaw('MONTH(data_nascimento)', 'ASC')->orderByRaw('DAY(data_nascimento)', 'ASC')->orderBy('nome', 'ASC')->limit(3)->get();
$admissoes = Colaborador::select(DB::raw("id, nome, cargo, data_admissao as data, 'empresa' mesdia_classe, YEAR(data_admissao) ano_admissao, DATE_FORMAT(data_admissao, '%m%d') mesdia, thumbnail_principal"))->whereRaw("DATE_FORMAT(data_admissao, '%m%d') = ".date('md'))->whereYear('data_admissao', '!=', Carbon::now()->format('Y'))->orderByRaw('MONTH(data_admissao)', 'ASC')->orderByRaw('DAY(data_admissao)', 'ASC')->orderBy('nome', 'ASC')->limit(3)->get();
}else{
//Aniversariantes
$aniversariantes = Colaborador::select(DB::raw("id, nome, cargo, data_nascimento as data, 'nascimento' mesdia_classe, DATE_FORMAT(data_nascimento, '%m%d') mesdia"))->whereRaw("DATE_FORMAT(data_nascimento, '%m%d') > ".date('md'))->orderByRaw('MONTH(data_nascimento)', 'ASC')->orderByRaw('DAY(data_nascimento)', 'ASC')->orderBy('nome', 'ASC')->limit(6)->get();
if(count($aniversariantes) == 0){
$aniversariantes = Colaborador::select(DB::raw("id, nome, cargo, data_nascimento as data, 'nascimento' mesdia_classe, DATE_FORMAT(data_nascimento, '%m%d') mesdia"))->whereRaw("DATE_FORMAT(data_nascimento, '%m%d') > 0")->orderByRaw('MONTH(data_nascimento)', 'ASC')->orderByRaw('DAY(data_nascimento)', 'ASC')->orderBy('nome', 'ASC')->limit(6)->get();
}
//Admissões
$admissoes = Colaborador::select(DB::raw("id, nome, cargo, data_admissao as data, 'empresa' mesdia_classe, DATE_FORMAT(data_admissao, '%m%d') mesdia, thumbnail_principal"))->whereRaw("DATE_FORMAT(data_admissao, '%m%d') > ".date('md'))->orderByRaw('MONTH(data_admissao)', 'ASC')->orderByRaw('DAY(data_admissao)', 'ASC')->orderBy('nome', 'ASC')->limit(6)->get();
if(count($admissoes) == 0){
$admissoes = Colaborador::select(DB::raw("id, nome, cargo, data_admissao as data, 'empresa' mesdia_classe, DATE_FORMAT(data_admissao, '%m%d') mesdia, thumbnail_principal"))->whereRaw("DATE_FORMAT(data_admissao, '%m%d') > 0")->orderByRaw('MONTH(data_admissao)', 'ASC')->orderByRaw('DAY(data_admissao)', 'ASC')->orderBy('nome', 'ASC')->limit(6)->get();
}
}
$listaAniversariantes = [];
foreach ($aniversariantes as $aniversariante) {
$listaAniversariantes[] = $aniversariante;
}
foreach ($admissoes as $admissao) {
$listaAniversariantes[] = $admissao;
}
usort($listaAniversariantes, function($a, $b) {
return $a->mesdia - $b->mesdia;
});
return $listaAniversariantes;
}
public function marketplace(Request $request){
$data = [];
$data = $request->input();
$data['listaEmpresas'] = GeralService::buscarEmpresasIntegracao();
$data['listaEstados'] = Estado::where('pais_id', 1)->orderBy('nome', 'ASC')->get();
return view('admin.admins.marketplace', $data);
}
public function marketplaceListaPedidos(Request $request){
$data = $request->input();
$bloqueados = [];
$pedidos = MarketplaceService::listaPedidos($request);
if($request->input('situacao_adega') == 'F'):
$bloqueados = MarketplaceService::listaPedidos($request, TRUE);
endif;
$data['pedidos'] = $pedidos;
$data['bloqueados'] = $bloqueados;
$data['origem'] = $request->input('empresa_id');
$data['empresas'] = GeralService::buscarEmpresasIntegracao();
$data['situacao_adega'] = $request->input('situacao_adega');
$html = view('admin.admins._marketplace-lista-pedidos', $data)->render();
$json = [
'status' => true,
'html' => $html
];
return response()->json($json);
}
public function marketplaceTransferir(Request $request){
$post = $request->input();
$user = Sentinel::getUser();
try {
DB::beginTransaction();
$origem = $request->input('origem');
$destino = $request->input('destino');
$estado_sigla = $request->input('estado_sigla');
$situacao_adega = $request->input('situacao_adega');
$bloqueados = [];
$clientes = MarketplaceService::listaClientesPedidos($request);
if($request->input('situacao_adega') == 'F'):
$bloqueados = MarketplaceService::listaClientesPedidos($request, TRUE);
endif;
$total = count($clientes) - count($bloqueados);
$corte = ($total * $request->input('percentual')) / 100;
$corte = (int) $corte;
$transferidos = 0;
$data_transferencia = date('Y-m-d H:i:s');
foreach ($clientes as $cliente) {
if(isset($bloqueados[$cliente->id_cliente])){
continue;
}
$sql1 = "update cadastro set customer_id = customer_id_old where id = {$cliente->id_cliente}";
DB::update($sql1);
$sql2 = "update cadastro set customer_id = null, empresa_id = {$destino} where id = {$cliente->id_cliente}";
DB::update($sql2);
if($situacao_adega == 'A'){
$sql3 = "update pedido_venda set empresa_id_old = {$origem}, transacao_id_old = transacao_id where id_status_pedido_venda in (1,2,9) and id_cliente = {$cliente->id_cliente}";
DB::update($sql3);
$sql4 = "update pedido_venda set transacao_id = null, empresa_id = {$destino}, data_transferencia_marketplace = '{$data_transferencia}' where id_status_pedido_venda in (1,2,9) and id_cliente = {$cliente->id_cliente}";
DB::update($sql4);
}
$quantidade = !empty($cliente->Qtd) ? $cliente->Qtd : 0;
$pedidos = !empty($cliente->Pedidos) ? $cliente->Pedidos : 0;
$valor = !empty($cliente->Valor) ? $cliente->Valor : 0;
$sql5 = "insert into marketplace_log (cliente_id, empresa_id_origem, empresa_id_destino, user_id, estado_sigla, data_transferencia, quantidade, pedidos, valor) VALUES
({$cliente->id_cliente},{$origem},{$destino},{$user->id}, '{$estado_sigla}', '{$data_transferencia}', {$quantidade}, {$pedidos}, {$valor})";
DB::insert($sql5);
$transferidos++;
if($transferidos >= $corte){
break;
}
}
$json = array(
'status' => true,
'message' => "Clientes/Pedidos transferidos com sucesso!"
);
DB::commit();
return response()->json($json);
} catch (Exception $e) {
DB::rollBack();
$json = array(
'status' => false,
'message' => $e->getMessage()
);
return response()->json($json);
}
}
public function vendasPorEmpresa(Request $request){
$input = $request->all();
$data = $this->vendasMonth($input['month'], $input['year']);
$data['html'] = view('admin.admins._item-bars', ['dados' => $data])->render();
return response()->json($data, 200);
}
public function entregasPorEmpresa(Request $request){
$input = $request->all();
$data = $this->entregasMonth($input['month'], $input['year']);
$data['html'] = view('admin.admins._item-bars', ['dados' => $data])->render();
return response()->json($data, 200);
}
public function comprasPorEmpresa(Request $request){
$input = $request->all();
$data = $this->comprasMonth($input['month'], $input['year']);
$data['html'] = view('admin.admins._item-bars', ['dados' => $data])->render();
return response()->json($data, 200);
}
public function pedidosParadosPorEmpresa(Request $request){
$input = $request->all();
$data = $this->pedidosParadosMonth($input['month'], $input['year']);
$data['html'] = view('admin.admins._item-bars', ['dados' => $data])->render();
return response()->json($data, 200);
}
public function getAnaliseClientes(Request $request){
$input = $request->all();
$data = $this->analiseClientesMonth($input['month'], $input['year']);
return response()->json($data, 200);
}
public function ordensEntregas(Request $request){
$input = $request->all();
$data = $this->ordensCompraMonth($input['month'], $input['year']);
return response()->json($data, 200);
}
public function ordensCompraMonth($month = FALSE, $year = FALSE){
$data = [];
$empresas = GeralService::buscarEmpresasIntegracao();
$month = ($month ? $month : date('m'));
$year = ($year ? $year : date('Y'));
$lastDay = GeralService::retornaData($month, $year) . " 23:59:59";
$startMonth = $year . "-{$month}-01 00:00:00";
$dataAtual = date('Y-m-d');
$query = OrdemCompra::select(
DB::raw("COUNT(ordem_compra.id) AS total")
)->whereBetween('ordem_compra.data_inclusao', [$startMonth, $lastDay])
->whereIn('ordem_compra.status', ['A','P','AP']);
$compras = $query->first();
$query = OrdemCompra::select(
DB::raw("data_entrega")
)->whereBetween('data_inclusao', [$startMonth, $lastDay])
->whereRaw("data_entrega IS NOT NULL AND data_entrega >= '{$dataAtual}'")
->whereIn('status', ['A','P','AP'])
->orderBy('data_entrega', 'ASC');
$entrega = $query->first();
$resultado = new \stdClass;
$resultado->total = $compras->total;
$resultado->proxima_entrega = $entrega ? (!empty($entrega->data_entrega) ? date('d/m/Y', strtotime($entrega->data_entrega)) : '') : '';
return $resultado;
}
public function analiseClientesMonth($month = FALSE, $year = FALSE){
$data = [];
$month = ($month ? $month : date('m'));
$year = ($year ? $year : date('Y'));
$clientes = Cadastro::selectRaw("SUM(CASE WHEN cliente_analisado = 'S' THEN 1 ELSE 0 END) AS 'analisados',
SUM(CASE WHEN cliente_analisado = 'N' THEN 1 ELSE 0 END) AS 'bloqueados',
COUNT(id) AS 'total'")
->whereYear('data_bloqueio', $year)
->whereMonth('data_bloqueio', $month)
->first();
$percentual = new \stdClass;
if($clientes && $clientes->total > 0){
$percentual->analisados = ($clientes->analisados * 100) / $clientes->total;
$percentual->bloqueados = ($clientes->bloqueados * 100) / $clientes->total;
}else{
$percentual->analisados = 0;
$percentual->bloqueados = 0;
}
$percentual->analisados = (int) number_format($percentual->analisados, 0, ',', '.');
$percentual->bloqueados = (int) number_format($percentual->bloqueados, 0, ',', '.');
if($percentual->bloqueados == 0 && $percentual->analisados == 0){
$percentual->analisados = 100;
}
$resultado = new \stdClass;
$resultado->clientes = $clientes;
$resultado->percentual = $percentual;
return $resultado;
}
public function pedidosParadosMonth($month = FALSE, $year = FALSE){
$data = [];
$empresas = GeralService::buscarEmpresasIntegracao();
$month = ($month ? $month : date('m'));
$year = ($year ? $year : date('Y'));
$lastDay = GeralService::retornaData($month, $year) . " 23:59:59";
$startMonth = $year . "-{$month}-01 00:00:00";
$labels = [];
$sumCase = [];
foreach ($empresas as $empresa) {
$labels[] = $empresa->sigla;
$sumCase[] = "SUM(CASE WHEN pedido_entrega.data_solicitacao BETWEEN '{$startMonth}' AND '{$lastDay}' AND pedido_entrega.empresa_id={$empresa->id} THEN 1 ELSE 0 END) AS {$empresa->sigla}";
}
$data['labels'] = $labels;
$query = PedidoEntrega::select(
DB::raw(implode(",", $sumCase))
)->leftJoin('pedido_entrega_has_status', 'pedido_entrega_has_status.id_pedido_entrega', '=', 'pedido_entrega.id')
->leftJoin('pedido_entrega_status', 'pedido_entrega_status.id', '=', 'pedido_entrega_has_status.id_pedido_entrega_status')
->join('adega','adega.id','=','pedido_entrega.id_adega')
->join('cadastro','cadastro.id','=','adega.id_cliente')
->whereBetween('pedido_entrega.data_solicitacao', [$startMonth, $lastDay])
->whereRaw('pedido_entrega_has_status.id = (select max(pedido_entrega_has_status.id) from pedido_entrega_has_status where pedido_entrega_has_status.id_pedido_entrega = pedido_entrega.id)')
->whereRaw('datediff(curdate(),pedido_entrega_has_status.data) > 5')
->whereIn('pedido_entrega_status.id', [1,2,3,4]);
$pedidosParados = $query->first();
$dataset = [];
$percentual = [];
$total = 0;
foreach ($empresas as $empresa) {
$dataset[] = $pedidosParados[$empresa->sigla];
$total += $pedidosParados[$empresa->sigla];
}
//Percentual
foreach ($empresas as $empresa) {
$percentual[] = $total > 0 ? (($pedidosParados[$empresa->sigla]/$total)*100) : 0;
}
$data['dataset'] = $dataset;
$data['percentual'] = $percentual;
// $data['total'] = number_format($total,0,'.','');
$data['total'] = number_format($total,2,'.','');
return $data;
}
public function comprasMonth($month = FALSE, $year = FALSE){
$data = [];
$empresas = GeralService::buscarEmpresasIntegracao();
$month = ($month ? $month : date('m'));
$year = ($year ? $year : date('Y'));
$lastDay = GeralService::retornaData($month, $year) . " 23:59:59";
$startMonth = $year . "-{$month}-01 00:00:00";
$labels = [];
$sumCase = [];
foreach ($empresas as $empresa) {
$labels[] = $empresa->sigla;
$sumCase[] = "SUM(CASE WHEN ordem_compra.data_inclusao BETWEEN '{$startMonth}' AND '{$lastDay}' AND ordem_compra.empresa_id={$empresa->id} THEN ordem_compra.valor_total ELSE 0 END) AS {$empresa->sigla}";
$sumCase[] = "SUM(CASE WHEN ordem_compra.data_inclusao BETWEEN '{$startMonth}' AND '{$lastDay}' AND ordem_compra.empresa_id={$empresa->id} THEN ordem_compra.quantidade ELSE 0 END) AS qtde_{$empresa->sigla}";
}
$data['labels'] = $labels;
$query = OrdemCompra::select(
DB::raw(implode(",", $sumCase))
)
->join('empresa','empresa.id','=','ordem_compra.empresa_id')
->whereBetween('ordem_compra.data_inclusao', [$startMonth, $lastDay])
->whereIn('ordem_compra.status', ['A','P','AP']);
$compras = $query->first();
$dataset = [];
$percentual = [];
$total = 0;
$quantidade = 0;
foreach ($empresas as $empresa) {
$dataset[] = $compras[$empresa->sigla];
$total += $compras[$empresa->sigla];
$quantidade += $compras["qtde_{$empresa->sigla}"];
}
//Percentual
foreach ($empresas as $empresa) {
$percentual[] = $total > 0 ? (($compras[$empresa->sigla]/$total)*100) : 0;
}
$data['dataset'] = $dataset;
$data['percentual'] = $percentual;
// $data['total'] = number_format($total,0,'.','');
$data['total'] = number_format($total,2,'.','');
$data['quantidade'] = number_format($quantidade,0,',','.');
return $data;
}
public function entregasMonth($month = FALSE, $year = FALSE){
$data = [];
$empresas = GeralService::buscarEmpresasIntegracao();
$month = ($month ? $month : date('m'));
$year = ($year ? $year : date('Y'));
$lastDay = GeralService::retornaData($month, $year) . " 23:59:59";
$startMonth = $year . "-{$month}-01 00:00:00";
$labels = [];
$sumCase = [];
foreach ($empresas as $empresa) {
$labels[] = $empresa->sigla;
$sumCase[] = "SUM(CASE WHEN pedido_entrega.data_solicitacao BETWEEN '{$startMonth}' AND '{$lastDay}' AND pedido_entrega.empresa_id={$empresa->id} THEN pedido_venda_has_produto.valor_total ELSE 0 END) AS {$empresa->sigla}";
}
$data['labels'] = $labels;
$query = PedidoEntrega::select(
DB::raw(implode(",", $sumCase))
)
->join('empresa','empresa.id','=','pedido_entrega.empresa_id')
->join('adega','adega.id','=','pedido_entrega.id_adega')
->join('cadastro','cadastro.id','=','adega.id_cliente')
->join('sis_users','sis_users.id','=','cadastro.user_id')
->join('adega_has_pedido_venda','adega_has_pedido_venda.id_adega','=','adega.id')
->join('pedido_venda', function($join)
{
$join->on('pedido_venda.id', '=', 'adega_has_pedido_venda.id_pedido_venda');
$join->on('pedido_venda.id_cliente', '=', 'cadastro.id');
})
->join('pedido_venda_status','pedido_venda_status.id','=','pedido_venda.id_status_pedido_venda')
->join('pedido_venda_has_produto','pedido_venda_has_produto.id_pedido_venda','=','pedido_venda.id')
->join('produto','produto.id','=','pedido_venda_has_produto.id_produto')
->whereBetween('pedido_entrega.data_solicitacao', [$startMonth, $lastDay])
->where('pedido_entrega.id_pedido_entrega_status', '<>', 7);
$entregas = $query->first();
$dataset = [];
$percentual = [];
$total = 0;
//Dataset e Total
foreach ($empresas as $empresa) {
$dataset[] = $entregas[$empresa->sigla];
$total += $entregas[$empresa->sigla];
}
//Percentual
foreach ($empresas as $empresa) {
$percentual[] = $total > 0 ? (($entregas[$empresa->sigla]/$total)*100) : 0;
}
$data['dataset'] = $dataset;
$data['percentual'] = $percentual;
// $data['total'] = number_format($total,0,'.','');
$data['total'] = number_format($total,2,'.','');
return $data;
}
public function vendasMonth($month = FALSE, $year = FALSE){
$data = [];
$empresas = GeralService::buscarEmpresasIntegracao();
$month = ($month ? $month : date('m'));
$year = ($year ? $year : date('Y'));
$lastDay = GeralService::retornaData($month, $year) . " 23:59:59";
$startMonth = $year . "-{$month}-01";
$labels = [];
$sumCase = [];
foreach ($empresas as $empresa) {
$labels[] = $empresa->sigla;
$sumCase[] = "SUM(CASE WHEN pedido_venda.data_fechamento BETWEEN '{$startMonth}' AND '{$lastDay}' AND pedido_venda.empresa_id={$empresa->id} THEN pedido_venda_has_produto.valor_total ELSE 0 END) AS {$empresa->sigla}";
}
$data['labels'] = $labels;
$query = PedidoVenda::select(
DB::raw(implode(",", $sumCase))
)->join('pedido_venda_has_produto', 'pedido_venda_has_produto.id_pedido_venda', '=', 'pedido_venda.id')
->whereIn('pedido_venda.id_status_pedido_venda', [1,2,7])
->where('pedido_venda.frete', 0)
->whereBetween('pedido_venda.data_fechamento', [$startMonth, $lastDay]);
$vendas = $query->first();
$dataset = [];
$percentual = [];
$total = 0;
//Dataset e Total
foreach ($empresas as $empresa) {
$dataset[] = $vendas[$empresa->sigla];
$total += $vendas[$empresa->sigla];
}
//Percentual
foreach ($empresas as $empresa) {
$percentual[] = $total > 0 ? (($vendas[$empresa->sigla]/$total)*100) : 0;
}
$data['dataset'] = $dataset;
$data['percentual'] = $percentual;
// $data['total'] = number_format($total,0,'.','');
$data['total'] = number_format($total,2,'.','');
return $data;
}
public function atualizarDashCalendar(Request $request) {
if (!isset($request->start) || !isset($request->end)) {
die("Informe um período de datas.");
}
$filtro = array();
$filtro['data_inicio'] = ($request->start);
$filtro['data_fim'] = ($request->end);
$filtro['tipo'] = 'D';
$timezone = null;
if (isset($_GET['timezone'])) {
$timezone = new DateTimeZone($_GET['timezone']);
}
$listaEventos = GeralService::buscarDashToCalendar($filtro);
return response()->json($listaEventos);
}
public function processBuscar(Request $request){
$keyword = $request->get('q');
$data = array();
$modulos = \App\Gerador::where('id_tipo_modulo',1)->get();
foreach ($modulos as $modulo) {
$listagem = array();
$query = DB::table($modulo->nome_tabela)->select('*');
foreach ($modulo->camposTexto as $campo) {
$query->orWhere($campo->nome, 'LIKE', "%$keyword%");
if($campo->listagem){
$listagem[] = $campo;
}
}
$results = $query->get();
if(count($results) && $this->current_user->hasAccess($modulo->nome_tabela.'.view')){
$data['modulos'][$modulo->id]['modulo'] = $modulo;
$data['modulos'][$modulo->id]['campos_listagem'] = $listagem;
$data['modulos'][$modulo->id]['registros'] = $results;
}
}
return view('admin/busca', $data);
}
public function getCep(Request $request) {
$retorno = CepService::buscar($request->input('cep'));
return response()->json($retorno);
}
public function bad_permissions(){
return view('admin/bad_permissions');
}
public function lerNotificacao(Request $request){
$id_notificacao = $request->input('id_notificacao');
$user = User::find($this->current_user->id);
$user->notifications->where('id', $id_notificacao)->markAsRead();
return response()->json(array(
'status' => true
));
}
public function importarOfertaVinumday(){
$row = 1;
if (($handle = fopen("ofertas.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 0, ";")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
//print_r($data);
$row++;
$precoMercado = str_replace(',', '.', $data[7]);
$precoVenda = str_replace(',', '.', $data[8]);
if ($data[9] == "\N"){
$precoCusto = str_replace(',', '.', $data[9]);
}else{
$precoCusto = 0;
}
if ($precoMercado != 0){
$percentualDesconto = 100 - (($precoVenda/$precoMercado)*100);
} else{
$percentualDesconto = 0;
}
$dataOferta = date_create_from_format('d/m/Y H:i', $data[6]);
$oferta = new Oferta();
$nome_oferta = explode(' ',$data[2],2);
$oferta->id = utf8_encode($data[0]);
$oferta->titulo = utf8_encode($nome_oferta[0]);
if (isset($nome_oferta[1])){
$oferta->sub_titulo = utf8_encode($nome_oferta[1]);
}
$oferta->texto = utf8_encode($data[4]);
$oferta->resumo_texto = utf8_encode($data[5]);
$oferta->slug_antiga = utf8_encode($data[3]);
$oferta->data = date_format($dataOferta, 'Y-m-d');
$oferta->preco_mercado = $precoMercado;
$oferta->preco_oferta = $precoVenda;
$oferta->preco_custo = $precoCusto;
$oferta->percentual_desconto = $percentualDesconto;
$oferta->tema_id = 1;
$oferta->save();
}
}
}
public function importarProdutosVinumday(){
$row = 1;
if (($handle = fopen("produtos.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 0, ";")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
//print_r($data);
$row++;
$pais = Pais::where('sigla',$data[19])->first();
//$dataOferta = $data[10];
$precoMercado = str_replace(',', '.', $data[11]);
$precoVenda = str_replace(',', '.', $data[12]);
if ($data[13] != "\N"){
$precoCusto = str_replace(',', '.', $data[13]);
}else{
$precoCusto = 0;
}
$safra = $data[14];
$teor = $data[15];
$uva = $data[16];
$harmonizacao = $data[17];
//$arrayImagemPrincipal = explode('/',$data[18]);
$regiao = $data[20];
$guarda = $data[21];
$amadurecimento = $data[22];
$servico = $data[23];
$conteudo = $data[24];
$analiseVisual = $data[25];
$analiseOlfativa = $data[26];
$analiseGustativa = $data[27];
$localizacao = $data[28];
$novoProduto = new Produto();
$novoProduto->nome = utf8_encode($data[2]);
$novoProduto->sku = utf8_encode($data[1]);
$novoProduto->slug_antiga = utf8_encode($data[3]);
//$novoProduto->thumbnail_principal = $arrayImagemPrincipal[3];
$novoProduto->id_tipo_produto = $data[4];
$novoProduto->id_fornecedor = $data[6];
$novoProduto->preco_mercado = $precoMercado;
$novoProduto->preco_de_venda = $precoVenda;
$novoProduto->preco_custo = $precoCusto;
$novoProduto->ncm = $data[29];
$novoProduto->cfop = $data[30];
$novoProduto->cst = $data[31];
$novoProduto->apresentacao_vinumday = utf8_encode($data[8]);
$novoProduto->texto = utf8_encode($data[9]);
if (($pais)){
$novoProduto->id_pais_origem = $pais->id;
}
$novoProduto->localizador = $localizacao;
try{
$novoProduto->save();
}catch (Exception $e){
print_r($e->getMessage());
}
//$id_produto = $novoProduto->id;
// Pesquisar na tabela core_file_storage $novoProduto->thumbnail_principal == filename
// Select na core_file_storage com Agrupar pelo directory_id and upload_time e WHERE pelo directory_id da consulta anterior
// Este resultado, deve ser inserido na tabela produto_imagens e deve ser gerado o arquivo físico
$novoProdutoCaracteristica = new ProdutoCaracteristica();
$novoProdutoCaracteristica->safra = utf8_encode($safra);
$novoProdutoCaracteristica->regiao = utf8_encode($regiao);
$novoProdutoCaracteristica->castas = utf8_encode($uva);
$novoProdutoCaracteristica->teor_alcoolico = utf8_encode($teor);
$novoProdutoCaracteristica->guarda = utf8_encode($guarda);
$novoProdutoCaracteristica->temperatura_de_servico = utf8_encode($servico);
$novoProdutoCaracteristica->maturacao = utf8_encode($amadurecimento);
$novoProdutoCaracteristica->analise_visual = utf8_encode($analiseVisual);
$novoProdutoCaracteristica->analise_olfativa = utf8_encode($analiseOlfativa);
$novoProdutoCaracteristica->analise_gustativa = utf8_encode($analiseGustativa);
$novoProdutoCaracteristica->id_produto = $novoProduto->id;
$novoProdutoCaracteristica->save();
//print_r($novoProduto->id);
//echo "<BR/>";
$ofertaHasProduto = new OfertaHasProduto();
$ofertaHasProduto->id_produto = $novoProduto->id;
$ofertaHasProduto->id_oferta = $data[0];
$ofertaHasProduto->quantidade = 1;
try{
$ofertaHasProduto->save();
}catch(\Exception $e){
print_r($e->getMessage());
}
}
fclose($handle);
}
}
public function importarClientesVinumday(){
// Report all PHP errors
error_reporting(E_ALL);
// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
$row = 0;
if (($handle = fopen("clientes.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 0, ";")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
//print_r($data);
$row++;
$dataNascimento = date_create_from_format('d/m/Y H:i', $data[3]);
$queryAcessoUsuario = DB::table('acesso_usuario')->select('*')->where('id_usuario', utf8_encode($data[0]))->first();
$user = new User();
if ($queryAcessoUsuario) {
$user->password = $queryAcessoUsuario->senha;
//$user->last_login = $queryAcessoUsuario->updated_at;
} else {
$user->password = utf8_encode($data[4]);
}
$user->created_at = date('Y-m-d');
$user->updated_at = date('Y-m-d');
$user->receber_notificacoes = 0;
$user->email = utf8_encode($data[5]);
$user->first_name = utf8_encode($data[1]);
$user->last_name = utf8_encode($data[2]);
$user->save();
$userSentinel = Sentinel::findUserById($user->id);
$activation = Activation::create($userSentinel);
Activation::complete($userSentinel, $activation->code);
$role = Sentinel::findRoleById(1);
$role->users()->attach($userSentinel);
$cadastro = new Cadastro();
$cadastro->id = utf8_encode($data[0]);
$cadastro->nome = utf8_encode($data[1]);
$cadastro->sobrenome = utf8_encode($data[2]);
$cadastro->data_nascimento = $dataNascimento;
$cadastro->cpf = utf8_encode($data[4]);
//$cadastro->email = utf8_encode($data[5]);
if ($data[6] == "\N"){
$cadastro->telefone = '';
}else{
$cadastro->telefone = utf8_encode($data[6]);
}
$cadastro->user_id = $user->id;
$cadastro->save();
}
}
}
public function importarEnderecoVinumday(){
$row = 0;
if (($handle = fopen("enderecos.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 0, ";")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
//print_r($data);
$row++;
$endereco = new CadastroEndereco();
$endereco->cadastro_id = utf8_encode($data[0]);
$endereco->nome = 'Endereço de Cadastro';
$endereco->logradouro = utf8_encode($data[2]);
$endereco->numero = utf8_encode($data[3]);
$endereco->complemento = utf8_encode($data[4]);
$endereco->bairro = utf8_encode($data[5]);
//$endereco->telefone = utf8_encode($data[8]);
$endereco->pais_id = 1;
if ($data[1] != '\N') {
$endereco->cep = utf8_encode($data[1]);
} else {
$endereco->cep = '';
}
if ($data[6] != '\N') {
$cidade = Cidade::where('nome',utf8_encode($data[6]))->first();
if ($cidade){
$endereco->cidade_id = $cidade->id;
$endereco->estado_id = $cidade->estado_id;
}
}
$endereco->save();
}
}
}
public function importarCartaoVinumday(){
$row=0;
if (($handle = fopen("cartoes.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 0, ";")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
//print_r($data);
$row++;
$cartao = new CadastroCartao();
$cartao->cadastro_id = utf8_encode($data[0]);
$cartao->cartao_id = utf8_encode($data[1]);
$cartao->save();
}
}
}
public function importarAdegaAberta(){
$row=0;
if (($handle = fopen("adegaabertateste.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 0, ";")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
//print_r($data);
$row++;
$valor = str_replace(',', '.', $data[3]);
$dataAbertura = date_create_from_format('d/m/Y H:i', $data[0]);
$adegaAberta = new Adega();
$adegaAberta->data_abertura = $dataAbertura;
$adegaAberta->status = 'A';
$adegaAberta->id_cliente = $data[1];
$adegaAberta->quantidade_pedidos = $data[4];
$adegaAberta->quantidade_produtos = $data[2];
$adegaAberta->valor_total = $valor;
$adegaAberta->save();
}
}
}
public function importarPedidoVendaAjusteVinumday(){
$row=0;
if (($handle = fopen("pedidovendaajuste2.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 0, ";")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
//print_r($data);
$row++;
PedidoVendaHasProduto::where('id_pedido_venda', $data[0])->update(['quantidade' => $data[1], 'valor_total' => $data[3]]);
}
}
}
public function importarCadastroSenhaVinumday(){
$row=0;
if (($handle = fopen("pedidovendaajuste.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 0, ";")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
//print_r($data);
$row++;
$listaUsuarios = \DB::table('sis_users')->whereRaw(("length(password) < 15"))->where('password', '<>', '')->get();
foreach ($listaUsuarios as $obj) {
\DB::table('sis_users')
->where('id', $obj->id)
->update(['password' => bcrypt($obj->password)]);
}
}
}
}
public function importarAdegaFechada(){
$row=0;
if (($handle = fopen("adegafechada70008999.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 0, ";")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
//print_r($data);
$row++;
$valor = str_replace(',', '.', $data[5]);
$dataAbertura = date_create_from_format('d/m/Y H:i', $data[0]);
$dataFechamento = date_create_from_format('d/m/Y H:i', $data[1]);
$adegaFechada = new Adega();
$adegaFechada->id = $data[2];
$adegaFechada->data_abertura = $dataAbertura;
$adegaFechada->data_fechamento = $dataFechamento;
$adegaFechada->status = 'F';
$adegaFechada->id_cliente = $data[3];
$adegaFechada->quantidade_pedidos = $data[6];
$adegaFechada->quantidade_produtos = $data[4];
$adegaFechada->valor_total = $valor;
$adegaFechada->save();
}
}
}
public function importarPedidoEntregaVinumday(){
$row=0;
if (($handle = fopen("pedidoentregateste.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 0, ";")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
//print_r($data);
$row++;
//$preco = str_replace(',', '.', $data[8]);
$valor = str_replace(',', '.', $data[4]);
$dataPedidoEntrega = date_create_from_format('d/m/Y H:i', $data[0]);
$pedidoEntrega = new PedidoEntrega();
$pedidoEntrega->id = utf8_encode($data[1]);
$pedidoEntrega->data_solicitacao = $dataPedidoEntrega;
$pedidoEntrega->id_adega = utf8_encode($data[1]);
$cadastroEndereco = CadastroEndereco::where('cadastro_id', $data[2])->limit(1)->get();
$pedidoEntrega->id_cadastro_endereco = $cadastroEndereco[0]->id;
$pedidoEntrega->save();
$novoStatus = new PedidoEntregaHasStatus();
$novoStatus->id_pedido_entrega_status = 1;
$novoStatus->id_pedido_entrega = $pedidoEntrega->id;
$novoStatus->data = date('Y-m-d H:i:s');
$novoStatus->notificar_cliente = 1;
$novoStatus->user_id = Sentinel::getUser()->id;
$novoStatus->observacao = 'Pedido solicitado pelo sistema';
$novoStatus->save();
}
}
}
public function importarPedidoVendaVinumday(){
$row=0;
if (($handle = fopen("pedidovendateste.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 0, ";")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
//print_r($data);
$row++;
$preco = str_replace(',', '.', $data[8]);
if ($data[9] != "\N"){
$valor = str_replace(',', '.', $data[9]);
}else{
$valor = 0;
}
$dataPedidoVenda = date_create_from_format('d/m/Y H:i', $data[0]);
$pedidoVenda = new PedidoVenda();
$pedidoVenda->id = utf8_encode($data[1]);
$pedidoVenda->data_fechamento = $dataPedidoVenda;
$pedidoVenda->id_cliente = $data[3];
$pedidoVenda->nr_ofertas = $data[7];
$pedidoVenda->subtotal = $valor;
$pedidoVenda->total = $valor;
$pedidoVenda->nm_referencia = 'Compra realizada por ' . $data[3];
$pedidoVenda->assunto = 'Pedido realizado através da plataforma.';
$pedidoVenda->id_condicao_comercial = 1;
if ($data[2] == 'entrega_solicitada_frete_gratis') {
$pedidoVenda->id_status_pedido_venda = 7;
} else {
$pedidoVenda->id_status_pedido_venda = 2;
}
$pedidoVenda->save();
/* Buscar os produtos da oferta $data[4] e adicionar no pedido_venda_has_produto */
$listaProdutosOferta = OfertaHasProduto::where('id_oferta', $data[4])->get();
foreach($listaProdutosOferta as $objProdutoOferta){
$pvhp = new PedidoVendaHasProduto();
$pvhp->id_pedido_venda = $pedidoVenda->id;
$pvhp->id_produto = $objProdutoOferta->id_produto;
$pvhp->id_oferta = $objProdutoOferta->id_oferta;
$pvhp->quantidade = 1;
$pvhp->valor_total = $preco;
$pvhp->save();
}
$idAdega = null;
if ($data[10] == "\N"){
$adega = Adega::where('id_cliente', $data[3])->where('status', 'A')->limit(1)->first();
if ($adega) $idAdega = $adega->id;
}else{
$idAdega = $data[10];
}
if ($idAdega != null) {
$ahpv = new AdegaHasPedidoVenda();
$ahpv->id_adega = $idAdega;
$ahpv->id_pedido_venda = $pedidoVenda->id;
$ahpv->save();
}
}
}
}
public function importarCadastroRedesVinumday(){
$row=0;
if (($handle = fopen("cadastro_redes.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 0, ";")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
//print_r($data);
$row++;
if ($data[1] != "\N"){
$facebook = $data[1];
}else{
$facebook = null;
}
if ($data[2] != "\N"){
$twitter = $data[2];
}else{
$twitter = null;
}
$cadastro = Cadastro::find($data[0]);
if ($cadastro){
$cadastro->id_facebook = $facebook;
$cadastro->id_twitter = $twitter;
$cadastro->save();
}
}
}
}
public function importarImagens(){
$row = 1;
if (($handle = fopen("Imagens.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
try {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
$filepath = "uploads/produto/" . $data[3];
$query = pack('H*',substr($data[1], 2));
file_put_contents($filepath, $query);
}catch(\Exception $e){
print_r($e->getMessage());
}
}
fclose($handle);
}
}
public function lerS3(){
$urlS3 = 'https://s3.amazonaws.com/vinumdays3/';
//$image = $post['file'];
//$imageFileName = time() . '.' . $image->getClientOriginalExtension();
$s3 = \Storage::disk('s3');
$directories = $s3->directories('/');
foreach ($directories as $subDirectory) {
if ($subDirectory == 'images') {
$listaSub = $s3->directories($subDirectory);
foreach($listaSub as $subDir) {
$arraySubDir = explode('/', $subDir);
$subDiretorio = end($arraySubDir);
echo "<hr/>DIR: " . $subDiretorio . "<br/>";
$produto = Produto::where('referencia', $subDiretorio)->first();
if ($produto) {
$listaArquivos = $s3->files($subDir);
foreach ($listaArquivos as $key => $objFile) {
//$arrayImagemProduto = explode('/', $objFile);
//$imagemProduto = end($arrayImagemProduto);
if (strpos($objFile, '_0') > -1) {
$produto->thumbnail_principal = $urlS3 . $objFile;
$produto->save();
} else if (strpos($objFile, '-thumb') < 1) {
echo "<BR>" . $objFile;
$info = pathinfo($urlS3 . $objFile);
$ext = $info['extension'];
echo "ext-".$ext."-";
$arrayImagemProduto = explode('/', $objFile);
$imageMerged = GeralService::mergeImages('0'.$urlS3 . $objFile, $ext);
$objFileThumb = str_replace('.'.$ext, '-thumb.'.$ext, $objFile);
$imagemProduto = str_replace('.'.$ext, '-thumb.'.$ext, end($arrayImagemProduto));
$pathToMergedImage = "uploads/produto/".$imagemProduto;
imagepng($imageMerged,$pathToMergedImage);
try{
$storagePath = $s3->put($objFileThumb, file_get_contents($pathToMergedImage), 'public');
}catch(\Exception $e){
echo $e->getMessage();
}
DB::table('produto_imagens')->insert([
[
'id_produto' => $produto->id,
'thumbnail_principal' => $urlS3 . $objFile,
'miniatura' => $urlS3 . $objFileThumb
]
]);
}
}
}
}
}
};
die();
//$filePath = '/images/';
//$s3->put($filePath, file_get_contents($image), 'public');
//$url = \Storage::disk('s3')->url(substr($filePath,1));
//return $url;
}
public function atualizarStatusPedidoView(){
return view('admin/atualizar-status-pedido');
}
public function atualizarStatusPedido(Request $request){
$post = $request->input();
date_default_timezone_set('America/Sao_Paulo');
$empresas = Empresa::all();
foreach ($empresas as $empresa) {
if(empty($empresa->api_key_tiny_erp)){
continue;
}
$token = $empresa->api_key_tiny_erp;
//$data['dataInicial'] = '07/06/2007';//date('d/m/Y');
//$data['dataFinal'] = '08/06/2018';//date('d/m/Y');
$url = 'https://api.tiny.com.br/api2/pedidos.pesquisa.php';
$content = "token=$token&sort=DESC&dataInicialOcorrencia=".date('d/m/Y',strtotime($post['data']))."&dataFinalOcorrencia=".date('d/m/Y',strtotime($post['data']))."&formato=json";
$resultPedido = json_decode(GeralService::enviarREST($url, $content));
if($resultPedido->retorno->status_processamento == 2){ //Erro, sem registros
continue;
}
foreach($resultPedido->retorno->pedidos as $objPedido) {
$pedidoEntrega = PedidoEntrega::where('id', $objPedido->pedido->numero_ecommerce)->first();
if ($pedidoEntrega) {
$pedidoEntregaStatus = PedidoEntregaStatus::where('nome_erp', $objPedido->pedido->situacao)->first();
if(!$pedidoEntregaStatus){
$pedidoEntregaStatus = new PedidoEntregaStatus;
$pedidoEntregaStatus->nome = $objPedido->pedido->situacao;
$pedidoEntregaStatus->cor = 'black';
$pedidoEntregaStatus->nome_erp = $objPedido->pedido->situacao;
$pedidoEntregaStatus->notificar_cliente = 0;
$pedidoEntregaStatus->save();
}
if ($pedidoEntregaStatus){
$pehsExistente = PedidoEntregaHasStatus::where('id_pedido_entrega', $pedidoEntrega->id)->orderBy('data', 'DESC')->first();
if (($pehsExistente && $pehsExistente->id_pedido_entrega_status != $pedidoEntregaStatus->id) || (!$pehsExistente) ) {
$pehs = new PedidoEntregaHasStatus();
$pehs->data = date('Y-m-d H:i:s');
$pehs->observacao = PedidoEntregaService::getFraseObservacao($pedidoEntrega, $pedidoEntregaStatus, $pehs->data);
$pehs->id_pedido_entrega = $pedidoEntrega->id;
$pehs->id_pedido_entrega_status = $pedidoEntregaStatus->id;
$pehs->notificar_cliente = $pedidoEntregaStatus->notificar_cliente;
$pehs->user_id = Sentinel::getUser()->id;
$pehs->save();
}
}
}
}
}
$data = array();
if(isset($resultPedido->retorno->pedidos))
$data['listaPedidos'] = $resultPedido->retorno->pedidos;
else
$data['listaPedidos'] = [];
return view('admin/atualizar-status-pedido',$data);
}
public function buscarOfertasDiscrepantes()
{
$ofertasDiscrepantes = GeralService::buscarOfertasEmDiscrepancia();
return response()->json([
'data' => $ofertasDiscrepantes,
'status' => true
]);
}
public function gerarRelatorioPedidoEntrega(Request $request)
{
$dataInicio = $request->query('data_inicio');
$dataFinal = $request->query('data_final');
$pedidos = DB::table('pedido_entrega')
->select('cadastro.nome', 'cadastro.sobrenome', 'sis_users.email', 'pedido_entrega.id as pedido_numero', 'pedido_entrega.data_solicitacao', 'pedido_entrega_status.nome as pedido_status')
->whereBetween('pedido_entrega.data_solicitacao', [$dataInicio, $dataFinal])
->join('pedido_entrega_status', 'pedido_entrega_status.id', 'pedido_entrega.id_pedido_entrega_status')
->join('adega', 'adega.id', 'pedido_entrega.id_adega')
->join('cadastro', 'cadastro.id', 'adega.id_cliente')
->join('sis_users', 'sis_users.id', 'cadastro.user_id')
->whereIn('pedido_entrega_status.slug', ['pendente', 'aprovado', 'preparando-envio', 'enviado', 'pronto-para-envio', 'em-aberto', 'em-transito', 'em-rota-de-entrega'])
->get();
$data = [];
$data['pedidos'] = $pedidos;
Excel::create('Relatório Pedidos de Entrega- '.date('d-m-Y'), function($excel) use ($data) {
$excel->sheet('Pedidos-Entrega', function($sheet) use ($data){
$sheet->loadView('admin.relatorio-pedido-entrega', $data);
});
})->download('xls');
}
}