public function runFormatter()
 {
     $columns = $this->datatableQuery->getColumns();
     $paginator = $this->datatableQuery->getPaginator();
     $lineFormatter = $this->datatableQuery->getLineFormatter();
     foreach ($paginator as $row) {
         // 1. Call the the lineFormatter to format row items
         if (is_callable($lineFormatter)) {
             $row = call_user_func($lineFormatter, $row);
         }
         foreach ($columns as $column) {
             // 2. Add some special data to the output array. For example, the visibility of actions.
             $column->addDataToOutputArray($row);
             // 3. Call columns renderContent method to format row items (e.g. for images)
             $column->renderContent($row, $this->datatableQuery);
         }
         $this->output['data'][] = $row;
     }
 }
Example #2
0
 /**
  * Retorna o um array referente a uma consulta no padrĂ£o do datatables para o painel.
  *
  * @return array
  */
 public function getGridFiltro()
 {
     /** @var UsuarioDao $usuarioDao */
     $usuarioDao = $this->getFromServiceLocator(Usuario::DAO);
     $cId = $usuarioDao->createColumnName(Usuario::FLD_TBL_ID);
     $cNome = $usuarioDao->createColumnName(Usuario::FLD_NOME);
     $cCargo = $usuarioDao->createColumnName(Usuario::FLD_CARGO);
     $cOrgao = $usuarioDao->createColumnName(Usuario::FLD_ORGAO);
     $cUnidade = $usuarioDao->createColumnName(Usuario::FLD_UNIDADE);
     $cEmail = $usuarioDao->createColumnName(Usuario::FLD_EMAIL);
     $cTelefone = $usuarioDao->createColumnName(Usuario::FLD_TELEFONE);
     $cDataCad = $usuarioDao->createColumnName(Usuario::FLD_DTCADASTRO);
     $cAcoes = 'acoes';
     $qb = $usuarioDao->getCompleteQueryBuilder();
     $gridQuery = new DatatableQuery($this->getServiceLocator());
     $gridQuery->setQueryBuilder($qb);
     $paramsPost = $gridQuery->getParametrosFromPost();
     $filtrosPesquisa = array_keys($this->getFiltroPesquisa());
     $primeiroCampoFiltroPesquisa = array_shift($filtrosPesquisa);
     $campoPesquisaRapida = $gridQuery->getCampoPesquisa($paramsPost, $primeiroCampoFiltroPesquisa);
     if ($paramsPost[DatatableQuery::PARAM_SEARCH][DatatableQuery::PARAM_SEARCH_CAMPO] == $cDataCad) {
         $data = $paramsPost[DatatableQuery::PARAM_SEARCH][DatatableQuery::PARAM_SEARCH_VALOR];
         $paramsPost[DatatableQuery::PARAM_SEARCH][DatatableQuery::PARAM_SEARCH_VALOR] = implode('-', array_reverse(explode('/', $data)));
     }
     if (!empty($paramsPost[DatatableQuery::PARAM_SEARCH][DatatableQuery::PARAM_SEARCH_VALOR]) && strcmp($paramsPost[DatatableQuery::PARAM_SEARCH][DatatableQuery::PARAM_SEARCH_CAMPO], $this->getTbAlias() . '.' . Usuario::FLD_CARGO) == 0) {
         $searches = Cargo::search($paramsPost[DatatableQuery::PARAM_SEARCH][DatatableQuery::PARAM_SEARCH_VALOR]);
         foreach ($searches as $k => $search) {
             $gridQuery->addOrWhere($this->getTbAlias() . '.' . Usuario::FLD_CARGO, DatatableQuery::OPERATOR_CONTAINS, strtolower($search));
         }
     } else {
         $gridQuery->setPesquisaRapidaCampoOperacao($campoPesquisaRapida);
         $gridQuery->setUnicoParametro($paramsPost);
     }
     $gridQuery->setOrdenacaoReplace(array($this->getTbAlias() . '.' . Usuario::FLD_UNIDADE => Usuario::FLD_UNIDADE_OBJ_NOME));
     $gridQuery->setOrdenacaoReplace(array($this->getTbAlias() . '.' . Usuario::FLD_ORGAO => Usuario::FLD_ORGAO_OBJ_NOME));
     $retorno = $gridQuery->getDatatableArray();
     $data = array();
     foreach ($retorno[DatatableQuery::PARAM_REGISTROS] as $row) {
         /** @var \Application\Entity\Usuario $usuario */
         $usuario = is_a($row, '\\Application\\Custom\\EntityAbstract') ? $row : reset($row);
         $temp[$cId] = $usuario->getSeqUsuario();
         $temp[$cNome] = $usuario->getNomUsuario();
         $temp[$cCargo] = Cargo::getLabel($usuario->getSigCargo());
         $temp[$cOrgao] = $usuario->getUnidade()->getOrgao()->getNomeOrgao();
         $temp[$cUnidade] = $usuario->getUnidade()->getNomeUnidade();
         $temp[$cEmail] = $usuario->getEmail();
         $temp[$cTelefone] = $usuario->getTelUsuario();
         $temp[$cDataCad] = date_format($usuario->getDataInclusao(), 'd/m/Y');
         $urlEditar = $this->url(Rotas::USUARIO, array('action' => 'editar', 'id' => $usuario->getLoginUsuario()));
         $botaoExpedir = new DatatableHtmlButton($urlEditar);
         $botaoExpedir->setTitle('Editar');
         $botaoExpedir->setTipoEditar();
         $urlExcluir = $this->url(Rotas::USUARIO, array('action' => 'excluir', 'id' => $usuario->getLoginUsuario()));
         $botaoExcluir = new DatatableHtmlButton($urlExcluir);
         $botaoExcluir->setTitle('Excluir');
         $botaoExcluir->setTipoExcluir();
         $botaoExcluir->setRequireConfirmation(true, Mensagens::getMensagem('M16'));
         $acoes = new DatatableHtmlContainer(DatatableHtmlContainer::TIPO_BUTTONS);
         $acoes->add($botaoExpedir);
         $acoes->add($botaoExcluir);
         $temp[$cAcoes] = $acoes->render();
         $data[] = $temp;
     }
     $retorno[DatatableQuery::PARAM_REGISTROS] = $data;
     return $retorno;
 }