public function geraRelatorio(Request $request) { $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(); // Pega o status para gerar o relatorio de acordo com as opções [ Todos, Pagos, Não pagos ] $status = $request->tp; $boletos = Boleto::select(DB::raw('CONCAT(clientes.nome_razao, "/", clientes.fantasia) as cliente'), 'enderecos.estado', 'enderecos.cidade', 'enderecos.bairro', 'boletos.numero', 'lancamentos.valor_pago', 'lancamentos.valor', 'lancamentos.data_vencimento', 'lancamentos.data_pagamento', 'lancamentos.status', 'lancamentos.tipo_lancamento')->join('lancamentos', function ($q) use($dado, $status) { $q->on('lancamentos.id', '=', 'boletos.lancamento_id'); $q->where('lancamentos.data_vencimento', '>=', setDataBR($dado['data_inicial'])); $q->where('lancamentos.data_vencimento', '<=', setDataBR($dado['data_final'])); if ($status == 'nao_pagos') { $q->where('lancamentos.status', '=', 1); } if ($status == 'pagos') { $q->where('lancamentos.status', '=', 2); } })->join('clientes', 'clientes.id', '=', 'boletos.cliente_id')->join('enderecos', function ($q) use($estados, $cidades, $bairros) { $q->on('enderecos.enderecavel_id', '=', 'clientes.id'); $q->where('enderecos.enderecavel_type', '=', 'App\\Models\\Cliente'); $q->whereIn('estado', $estados); $q->whereIn('cidade', $cidades); $q->whereIn('bairro', $bairros); })->orderBy('enderecos.estado')->orderBy('enderecos.cidade')->orderBy('enderecos.bairro')->orderBy('enderecos.logradouro')->orderBy('enderecos.numero')->orderBy('clientes.fantasia')->orderBy('clientes.nome_razao')->get(); /*$pdf = App::make('dompdf.wrapper'); $pdf->loadView('boletos/relatorio-final', compact('estados', 'cidades', 'bairros', 'boletos', 'datas')); return $pdf->stream();*/ return view('boletos/relatorio-final', compact('boletos', 'dado')); }
private function insertBoletos($venda, $boletos) { foreach ($boletos as $value) { //dd($value); $value['descricao'] = 'Boleto nº ' . $value['num_boleto']; if ($value['id'] != '') { $lanc = Lancamento::find($value['id']); $lanc->update($value); $lanc->boleto()->update(['numero' => $value['num_boleto']]); } else { $lanc = $venda->lancamentos()->create($value); Boleto::create(['numero' => $value['num_boleto'], 'lancamento_id' => $lanc->id, 'cliente_id' => $value['cliente_id']]); } } }
public function destroy_boleto($venda_id, $id) { Boleto::destroy($venda_id); Lancamento::destroy($id); return $this->getValuesTable($venda_id, 'bo'); }