public function postRelatorioFantasia(Request $request, VendasService $vendasService) { $address = new EnderecosCapa(); $address = $address->getCapa($request, 'App\\Models\\Cliente'); $clientes = Venda::select('vendas.data_venda', 'vendas.num_talao', 'vendas.id as venda_id', DB::raw('sum(venda_itens.quantidade * venda_itens.preco_venda) as total'), 'clientes.fantasia', 'clientes.nome_razao', 'clientes.id', 'enderecos.estado', 'enderecos.cidade', 'enderecos.bairro')->leftJoin('venda_itens', 'vendas.id', '=', 'venda_itens.venda_id')->leftJoin('clientes', 'vendas.cliente_id', '=', 'clientes.id')->leftJoin('enderecos', function ($q) use($address) { $q->on('enderecos.enderecavel_id', '=', 'clientes.id'); $q->where('enderecos.enderecavel_type', '=', 'App\\Models\\Cliente'); $q->whereIn('estado', $address['estados']); $q->whereIn('cidade', $address['cidades']); $q->whereIn('bairro', $address['bairros']); })->where('data_venda', '>=', setDataBR($address['data_inicial']))->where('data_venda', '<=', setDataBR($address['data_final']))->groupBy('vendas.id')->orderBy('enderecos.estado')->orderBy('enderecos.cidade')->orderBy('enderecos.bairro')->orderBy('clientes.fantasia')->get(); return view('clientes/relatorios/relatorio_fantasia_pdf', compact('address', 'collection_estados', 'collection_cidades', 'clientes')); }