public function indexAction()
 {
     try {
         $this->assets->collection('footerJs')->addJs('app/telephony/reports/index.js');
         if ($this->request->isPost()) {
             $relatorios = $this->request->getPost('relatorios', 'int');
             $competencia = str_replace('20', '', $this->request->getPost('mes', 'string'));
             if ($this->request->getPost('valor')) {
                 $valor = $this->filter->sanitize(str_replace(',', '.', str_replace('.', '', $this->request->getPost('valor'))), 'float');
             }
             $reports = new Reports();
             switch ($relatorios) {
                 case 1:
                     $dados = $reports->getRateioDescFolha($competencia);
                     $fileName = 'Rateio Celular Folha Pagto';
                     break;
                 case 2:
                     $dados = $reports->getRateioNF($competencia);
                     $fileName = 'Rateio Celular NF';
                     break;
                 case 3:
                     $competencia = implode('', array_reverse(explode('/', $this->request->getPost('mes', 'string'))));
                     $dados = $reports->getRateioTotvs($competencia, $valor);
                     $fileName = 'Rateio NF ERP';
                     break;
                 case 4:
                     $dados = $reports->getRateioEmails($competencia, $valor);
                     $fileName = 'Rateio NF E-mails';
                     break;
                 case 5:
                     $competencia = implode('', array_reverse(explode('/', $this->request->getPost('mes', 'string'))));
                     $dados = $reports->getRateioCorporativo($competencia, $valor);
                     $fileName = 'Rateio NF Matriz';
                     break;
                 default:
                     $dados = $reports->getRateioDescFolha($competencia);
                     $fileName = 'Rateio Celular Folha Pagto';
                     break;
             }
             $tools = new Tools();
             $options = ['download' => true, 'fileName' => $fileName];
             return $tools->writeXLS($dados, $options);
         }
     } catch (\Exception $e) {
         $this->flash->error($e->getMessage());
     }
 }
 public function indexAction()
 {
     try {
         $tools = new Tools();
         $search = $this->request->get('search', 'string');
         switch ($this->request->get('obj')) {
             case 'produtos':
                 $object = new Produtos();
                 $dados = $object->getProdutos($search);
                 $options['fileName'] = 'Produtos e Serviços';
                 break;
             case 'fornecedores':
                 $object = new Fornecedores();
                 $dados = $object->getFornecedores($search);
                 $options['fileName'] = 'Fornecedores';
                 break;
             case 'centro_custo':
                 $object = new CentroCustos();
                 $dados = $object->getCentroCusto($search);
                 $options['fileName'] = 'Centros de Custos';
                 break;
             case 'natureza_financeria':
                 $object = new NaturezaFinanceira();
                 $dados = $object->getNaturezaFinanceira($search);
                 $options['fileName'] = 'Natureza Financeira';
                 break;
             case 'requisitos_minimos':
                 $object = new RequisitoMinimo();
                 $dados = $object->getRequisitoMinimo($search);
                 $options['fileName'] = 'Requisitos Mínimos';
                 break;
             case 'secao':
                 $object = new Psecao();
                 $dados = $object->getSecao($search);
                 $options['fileName'] = 'Seções';
                 break;
             case 'tes':
                 $object = new Tes();
                 $dados = $object->getTes($search);
                 $options['fileName'] = 'TES (Tipos de Entrada e Saída)';
                 break;
             case 'telefonia':
                 $aux = explode(' | ', $search);
                 $linhas = $aux[0];
                 $mes = str_replace('20', '', $aux[1]);
                 $object = new Statement();
                 $dados = $object->getReportByLine($linhas, $mes);
                 $options['fileName'] = 'Extrato de Conta Celular';
                 break;
             case 'clientes':
                 $object = new Clientes();
                 $dados = $object->getClientes($search);
                 $options['fileName'] = 'Clientes';
                 break;
             default:
                 throw new Exception('Erro ao exportar: Objeto não definido.');
                 break;
         }
         $options['download'] = true;
         switch ($this->request->get('type')) {
             case 'excel':
                 return $tools->writeXLS($dados, $options);
                 break;
             case 'pdf':
                 return $tools->writePdf($dados, $options);
                 break;
             default:
                 throw new Exception('Erro ao exportar: Tipo não definido.');
                 break;
         }
     } catch (\Exception $e) {
         $this->flash->error($e->getMessage());
     }
 }