Пример #1
0
 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');
 }