Commit 8bbbbeab12c25b3376c7b488be620a3fd539d6d4
1 parent
5ab7249e
Exists in
master
Relatório de úsuário logado
Showing
1 changed file
with
113 additions
and
0 deletions
Show diff stats
src/Cacic/RelatorioBundle/Controller/FaturamentoController.php
... | ... | @@ -417,4 +417,117 @@ |
417 | 417 | ) |
418 | 418 | ); |
419 | 419 | } |
420 | + | |
421 | + /* | |
422 | + * Página inicial do Relatório de usuário logado | |
423 | + */ | |
424 | + public function usuarioAction(Request $request) { | |
425 | + | |
426 | + $locale = $request->getLocale(); | |
427 | + | |
428 | + $form = $this->createForm( new LogPesquisaType() ); | |
429 | + return $this->render( 'CacicRelatorioBundle:Faturamento:usuario.html.twig', | |
430 | + array( | |
431 | + 'locale'=> $locale, | |
432 | + 'form' => $form->createView() | |
433 | + ) | |
434 | + ); | |
435 | + } | |
436 | + | |
437 | + /* | |
438 | + * Página que exibe o resultado da consulta de usuário logado | |
439 | + */ | |
440 | + public function usuarioDetalharAction( Request $request) { | |
441 | + | |
442 | + $locale = $request->getLocale(); | |
443 | + $form = $this->createForm( new LogPesquisaType() ); | |
444 | + | |
445 | + if ( $request->isMethod('POST') ) | |
446 | + { | |
447 | + $form->bind( $request ); | |
448 | + $data = $form->getData(); | |
449 | + | |
450 | + $filtroLocais = array(); // Inicializa array com locais a pesquisar | |
451 | + foreach ( $data['idLocal'] as $locais ) { | |
452 | + array_push( $filtroLocais, $locais->getIdLocal() ); | |
453 | + } | |
454 | + | |
455 | + $dataInicio = $data['dtAcaoInicio']; | |
456 | + $dataFim = $data['dtAcaoFim']; | |
457 | + $usuario = $data['usuario']; | |
458 | + | |
459 | + $dados = $this->getDoctrine() | |
460 | + ->getRepository('CacicCommonBundle:LogAcesso') | |
461 | + ->gerarRelatorioUsuario($filtros = array(),$filtroLocais, $dataInicio, $dataFim, $usuario); | |
462 | + | |
463 | + } | |
464 | + | |
465 | + return $this->render( | |
466 | + 'CacicRelatorioBundle:Faturamento:usuarioDetalhar.html.twig', | |
467 | + array( | |
468 | + 'idioma' => $locale, | |
469 | + 'dados' => ( isset( $dados ) ? $dados : null ), | |
470 | + 'idRede' => $filtroLocais, | |
471 | + 'dtAcaoInicio' => $dataInicio, | |
472 | + 'dtAcaoFim' => $dataFim, | |
473 | + 'usuario' => $usuario | |
474 | + | |
475 | + ) | |
476 | + ); | |
477 | + } | |
478 | + | |
479 | + /* | |
480 | + * Gera o CSV do relatório de usuário logado | |
481 | + */ | |
482 | + public function usuarioCsvAction( Request $request) { | |
483 | + | |
484 | + $locale = $request->getLocale(); | |
485 | + $form = $this->createForm( new LogPesquisaType() ); | |
486 | + | |
487 | + if ( $request->isMethod('POST') ) | |
488 | + { | |
489 | + $form->bind( $request ); | |
490 | + $data = $form->getData(); | |
491 | + | |
492 | + $filtroLocais = array(); // Inicializa array com locais a pesquisar | |
493 | + foreach ( $data['idLocal'] as $locais ) { | |
494 | + array_push( $filtroLocais, $locais->getIdLocal() ); | |
495 | + } | |
496 | + | |
497 | + $dataInicio = $data['dtAcaoInicio']; | |
498 | + $dataFim = $data['dtAcaoFim']; | |
499 | + $usuario = $data['usuario']; | |
500 | + | |
501 | + $dados = $this->getDoctrine() | |
502 | + ->getRepository('CacicCommonBundle:LogAcesso') | |
503 | + ->gerarRelatorioUsuario($filtros = array(),$filtroLocais, $dataInicio, $dataFim, $usuario); | |
504 | + | |
505 | + } | |
506 | + | |
507 | + // Gera CSV | |
508 | + $reader = new ArrayReader($dados); | |
509 | + | |
510 | + // Create the workflow from the reader | |
511 | + $workflow = new Workflow($reader); | |
512 | + | |
513 | + $workflow->addValueConverter("reader",new CharsetValueConverter('UTF-8',$reader)); | |
514 | + | |
515 | + // Add the writer to the workflow | |
516 | + $tmpfile = tempnam(sys_get_temp_dir(), 'Máquinas sem Coletas'); | |
517 | + $file = new \SplFileObject($tmpfile, 'w'); | |
518 | + $writer = new CsvWriter($file); | |
519 | + $writer->writeItem(array('Local', 'Subrede','Endereço IP','Estações')); | |
520 | + $workflow->addWriter($writer); | |
521 | + | |
522 | + // Process the workflow | |
523 | + $workflow->process(); | |
524 | + | |
525 | + // Retorna o arquivo | |
526 | + $response = new BinaryFileResponse($tmpfile); | |
527 | + $response->headers->set('Content-Type', 'text/csv'); | |
528 | + $response->headers->set('Content-Disposition', 'attachment; filename="Não_Coletadas.csv"'); | |
529 | + $response->headers->set('Content-Transfer-Encoding', 'binary'); | |
530 | + | |
531 | + return $response; | |
532 | + } | |
420 | 533 | } |
421 | 534 | \ No newline at end of file | ... | ... |