Commit f68f0fb5ccfd20b1eab9f9740bb3017cf0e16967
1 parent
b94227af
Exists in
master
and in
1 other branch
filtros csv
Showing
1 changed file
with
54 additions
and
4 deletions
Show diff stats
src/Cacic/RelatorioBundle/Controller/FaturamentoController.php
| ... | ... | @@ -41,6 +41,7 @@ |
| 41 | 41 | { |
| 42 | 42 | $form->bind( $request ); |
| 43 | 43 | $data = $form->getData(); |
| 44 | + | |
| 44 | 45 | $filtroLocais = array(); // Inicializa array com locais a pesquisar |
| 45 | 46 | foreach ( $data['idLocal'] as $locais ) { |
| 46 | 47 | array_push( $filtroLocais, $locais->getIdLocal() ); |
| ... | ... | @@ -73,16 +74,65 @@ |
| 73 | 74 | public function faturamentoCsvAction(Request $request) |
| 74 | 75 | { |
| 75 | 76 | |
| 77 | + $locale = $request->getLocale(); | |
| 78 | + $form = $this->createForm( new LogPesquisaType() ); | |
| 79 | + | |
| 80 | + if ( $request->isMethod('POST') ) | |
| 81 | + { | |
| 82 | + $form->bind( $request ); | |
| 83 | + $data = $form->getData(); | |
| 84 | + | |
| 85 | + $filtroLocais = array(); // Inicializa array com locais a pesquisar | |
| 86 | + foreach ( $data['idLocal'] as $locais ) { | |
| 87 | + array_push( $filtroLocais, $locais->getIdLocal() ); | |
| 88 | + } | |
| 89 | + | |
| 90 | + $printers = $this->getDoctrine()->getRepository( 'CacicCommonBundle:LogAcesso') | |
| 91 | + ->faturamentoCsv( $data['dtAcaoInicio'], $data['dtAcaoFim'], $filtroLocais); | |
| 92 | + | |
| 93 | + } | |
| 94 | + | |
| 95 | + // Gera CSV | |
| 96 | + $reader = new ArrayReader($printers); | |
| 97 | + | |
| 98 | + // Create the workflow from the reader | |
| 99 | + $workflow = new Workflow($reader); | |
| 100 | + | |
| 101 | + $workflow->addValueConverter("reader",new CharsetValueConverter('UTF-8',$reader)); | |
| 102 | + | |
| 103 | + // Add the writer to the workflow | |
| 104 | + $tmpfile = tempnam(sys_get_temp_dir(), 'Faturamento'); | |
| 105 | + $file = new \SplFileObject($tmpfile, 'w'); | |
| 106 | + $writer = new CsvWriter($file); | |
| 107 | + $writer->writeItem(array('Local', 'Subrede','Endereço IP','Estações')); | |
| 108 | + $workflow->addWriter($writer); | |
| 109 | + | |
| 110 | + // Process the workflow | |
| 111 | + $workflow->process(); | |
| 112 | + | |
| 113 | + // Retorna o arquivo | |
| 114 | + $response = new BinaryFileResponse($tmpfile); | |
| 115 | + $response->headers->set('Content-Type', 'text/csv'); | |
| 116 | + $response->headers->set('Content-Disposition', 'attachment; filename="Faturamento.csv"'); | |
| 117 | + $response->headers->set('Content-Transfer-Encoding', 'binary'); | |
| 118 | + | |
| 119 | + | |
| 120 | + return $response; | |
| 121 | + } | |
| 122 | + | |
| 123 | + //botão csv de todas faturamento | |
| 124 | + public function faturamentoCsvInternoAction(Request $request) | |
| 125 | + { | |
| 126 | + | |
| 76 | 127 | $dataInicio = $request->get('dtAcaoInicio'); |
| 77 | 128 | $dataFim = $request->get('dtAcaoFim'); |
| 129 | + $idLocal = $_POST; | |
| 78 | 130 | |
| 79 | - $filtroLocais = $_POST; | |
| 80 | - | |
| 81 | - foreach ( $filtroLocais as $locais ) { | |
| 131 | + foreach ( $idLocal as $locais ) { | |
| 82 | 132 | } |
| 83 | 133 | |
| 84 | 134 | $printers = $this->getDoctrine()->getRepository( 'CacicCommonBundle:LogAcesso') |
| 85 | - ->faturamentoCsv( $dataInicio, $dataFim, $filtroLocais); | |
| 135 | + ->faturamentoCsv( $dataInicio, $dataFim, $locais); | |
| 86 | 136 | |
| 87 | 137 | // Gera CSV |
| 88 | 138 | $reader = new ArrayReader($printers); | ... | ... |