public function postRelatorioRomaneio(Request $request, VendasService $vendasService) { // $dado['data_inicial'] = $request->data_inicial; // $dado['data_final'] = $request->data_final; // // $enderecos = Endereco::select('enderecos.estado', 'enderecos.cidade', 'enderecos.bairro')->where('enderecavel_type', 'App\Models\Cliente'); // // $enderecos = $request->estado != '' ? $enderecos->where('estado', '=', $request->estado) : $enderecos; // $enderecos = ($request->cidade != "? undefined:undefined ?" and $request->cidade != '') ? $enderecos->where('cidade', $request->cidade) : $enderecos; // $enderecos = ($request->bairro != "? undefined:undefined ?" and $request->bairro != '') ? $enderecos->where('bairro', $request->bairro) : $enderecos; // // $estados = $enderecos->groupBy('estado')->select('estado')->get()->toArray(); // $cidades = $enderecos->groupBy('estado', 'cidade')->select('cidade')->get()->toArray(); // $bairros = $enderecos->groupBy('estado', 'cidade', 'bairro')->select('bairro')->get()->toArray(); // $enderecos->get(); $address = new EnderecosCapa(); $address = $address->getCapa($request, 'App\\Models\\Cliente'); $clientes = Cliente::select('clientes.id', 'clientes.nome_razao', 'clientes.fantasia', 'vendas.cliente_id', 'vendas.data_venda', 'enderecos.logradouro', 'enderecos.bairro', 'enderecos.numero', DB::raw('sum(venda_itens.quantidade * venda_itens.preco_venda) as total'), 'enderecos.estado', 'enderecos.cidade', 'enderecos.bairro')->leftJoin('vendas', function ($v) use($address) { $v->on('clientes.id', '=', 'vendas.cliente_id'); $v->where('data_venda', '>=', setDataBR($address['data_inicial'])); $v->where('data_venda', '<=', setDataBR($address['data_final'])); })->leftJoin('venda_itens', 'vendas.id', '=', 'venda_itens.venda_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']); })->groupBy('clientes.id')->orderBy('enderecos.estado', 'asc')->orderBy('enderecos.cidade', 'asc')->orderBy('enderecos.bairro', 'asc')->orderBy('enderecos.logradouro', 'asc')->orderBy('enderecos.numero', 'asc')->orderBy('clientes.fantasia', 'asc')->orderBy('clientes.nome_razao', 'asc')->get(); return view('clientes/relatorios/relatorio_romaneio', compact('address', 'clientes')); }