/**
  * @param \Core_Dto_Search $dto
  */
 public function findByNuDigital($dto)
 {
     $sql = 'SELECT  id, tipo, numero, origem, 
                     destino, interessado, assunto, 
                     assunto_complementar, 
                     cargo, assinatura, procedencia, 
                     digital, dt_cadastro, dt_prazo, 
                     ultimo_tramite, prioridade, autor
            FROM sgdoce.vw_documento_sgdoc_fisico WHERE digital = lpad(\'%1$d\', 7, \'0\');';
     $strSql = sprintf($sql, $dto->getNuDigital());
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping($this->_em);
     $rsm->addScalarResult('id', 'id', 'integer');
     $rsm->addScalarResult('tipo', 'tipo', 'string');
     $rsm->addScalarResult('numero', 'numero', 'string');
     $rsm->addScalarResult('origem', 'origem', 'string');
     $rsm->addScalarResult('destino', 'destino', 'string');
     $rsm->addScalarResult('interessado', 'interessado', 'string');
     $rsm->addScalarResult('assunto', 'assunto', 'string');
     $rsm->addScalarResult('assunto_complementar', 'assuntoComplementar', 'string');
     $rsm->addScalarResult('cargo', 'cargo', 'string');
     $rsm->addScalarResult('assinatura', 'assinatura', 'string');
     $rsm->addScalarResult('procedencia', 'procedencia', 'string');
     $rsm->addScalarResult('digital', 'digital', 'string');
     $rsm->addScalarResult('dt_cadastro', 'dtCadastro', 'zenddate');
     $rsm->addScalarResult('dt_prazo', 'dtPrazo', 'zenddate');
     $rsm->addScalarResult('ultimo_tramite', 'ultimoTramite', 'string');
     $rsm->addScalarResult('prioridade', 'prioridade', 'string');
     $rsm->addScalarResult('autor', 'autor', 'string');
     $nativeQuery = $this->_em->createNativeQuery($strSql, $rsm);
     return $nativeQuery->getArrayResult();
 }
 /**
  *
  * @param \Core_Dto_Search $dto
  * @return \Doctrine\DBAL\Query\QueryBuilder
  */
 public function listGrid(\Core_Dto_Search $dto)
 {
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping();
     $rsm->addScalarResult('total_record', 'totalRecord', 'integer');
     $rsm->addScalarResult('sq_artefato', 'sqArtefato', 'integer');
     $rsm->addScalarResult('digital_numero', 'digitalNumero', 'string');
     $rsm->addScalarResult('dt_arquivamento', 'dtArquivamento', 'zenddate');
     $rsm->addScalarResult('no_pessoa_arquivamento', 'noPessoaArquivamento', 'string');
     $rsm->addScalarResult('tx_assunto', 'txAssunto', 'string');
     $rsm->addScalarResult('no_tipo_documento', 'noTipoDocumento', 'string');
     $rsm->addScalarResult('no_pessoa_origem', 'noPessoaOrigem', 'string');
     $caseNuDigital = "sgdoce.formata_numero_digital(a.nu_digital)";
     $sql = "\n               SELECT DISTINCT\n                      COUNT(a.sq_artefato) OVER() AS total_record\n                      ,a.sq_artefato\n                      ,COALESCE({$caseNuDigital}, formata_numero_artefato(a.nu_artefato,ap.co_ambito_processo)) AS digital_numero\n                      ,dt_arquivamento\n                      ,p.no_pessoa as no_pessoa_arquivamento\n                      ,ass.tx_assunto\n                      ,td.no_tipo_documento\n                      ,ps.no_pessoa AS no_pessoa_origem\n                 FROM artefato_arquivo_setorial aas\n                 JOIN vw_pessoa p ON aas.sq_pessoa_arquivamento = p.sq_pessoa\n                 JOIN artefato a USING(sq_artefato)\n                 JOIN sgdoce.tipo_artefato_assunto taa USING(sq_tipo_artefato_assunto)\n                 JOIN sgdoce.assunto ass ON ass.sq_assunto = taa.sq_assunto\n                 JOIN sgdoce.pessoa_artefato pa ON pa.sq_artefato = a.sq_artefato and pa.sq_pessoa_funcao = %1\$d\n                 JOIN sgdoce.pessoa_sgdoce ps ON ps.sq_pessoa_sgdoce = pa.sq_pessoa_sgdoce\n            LEFT JOIN artefato_processo ap ON a.sq_artefato = ap.sq_artefato\n            LEFT JOIN tipo_documento td USING(sq_tipo_documento)\n                WHERE dt_desarquivamento IS NULL\n                  AND sq_unidade_arquivamento = %2\$d\n                  AND sq_tipo_artefato = %3\$d\n                  %4\$s\n             ORDER BY dt_arquivamento DESC";
     $optionalCondition = '';
     $search = mb_strtolower($dto->getSearch(), 'UTF-8');
     if ($search) {
         $queryBuild = $this->_em->createQueryBuilder();
         if ($dto->getSqTipoArtefato() == \Core_Configuration::getSgdoceTipoArtefatoProcesso()) {
             $nuArtefato = $this->_em->createQueryBuilder()->expr()->lower("TRANSLATE(a.nu_artefato, './-', '')")->__toString();
             $optionalCondition = " AND (" . $queryBuild->expr()->eq('a.nu_artefato', $queryBuild->expr()->literal($search))->__toString() . " OR " . $queryBuild->expr()->eq($nuArtefato, $queryBuild->expr()->literal(str_replace(array('.', '/', '-'), '', $search)))->__toString() . ")";
         } else {
             $optionalCondition = " AND " . $queryBuild->expr()->eq('a.nu_digital', $search)->__toString();
         }
     }
     $strSql = sprintf($sql, \Core_Configuration::getSgdocePessoaFuncaoOrigem(), \Core_Integration_Sica_User::getUserUnit(), $dto->getSqTipoArtefato(), $optionalCondition);
     return $this->_em->createNativeQuery($strSql, $rsm)->useResultCache(false);
 }
Exemplo n.º 3
0
 /**
  * Obtém modelo documento assunto
  * @param \Core_Dto_Search $dtoSearch
  * @return array
  */
 public function getModeloDocAssunto(\Core_Dto_Search $dtoSearch)
 {
     $queryBuilder = $this->_em->createQueryBuilder();
     $queryBuilder->select('pmd.noPadraoModeloDocumento', 'c.noCampo', 'c.noColunaTabela', 'gp.sqGrupoCampo', 'pmdc.inObrigatorio')->from('app:ModeloDocumentoCampo', 'mdc')->innerJoin('mdc.sqPadraoModeloDocumentoCam', 'pmdc')->innerJoin('pmdc.sqPadraoModeloDocumento', 'pmd')->innerJoin('pmdc.sqCampo', 'c')->innerJoin('c.sqGrupoCampo', 'gp')->innerJoin('mdc.sqModeloDocumento', 'md');
     $queryBuilder->andWhere('md.sqTipoDocumento = :sqTipoDocumento')->setParameter('sqTipoDocumento', $dtoSearch->getSqTipoDocumento());
     $queryBuilder->andWhere('md.inAtivo = :inAtivo')->setParameter('inAtivo', "TRUE");
     return $queryBuilder->getQuery()->execute();
 }
Exemplo n.º 4
0
 /**
  * método para pesquisa de unidades organizacinais para combo
  * @param array $params
  * @return array $out
  */
 public function getDadosEmail(\Core_Dto_Search $dto)
 {
     $queryBuilder = $this->getEntityManager()->createQueryBuilder()->select('e')->from('app:VwEmail', 'e')->andWhere('e.sqPessoa = :sqPessoa')->setParameter('sqPessoa', $dto->getSqPessoa());
     $result = $queryBuilder->getQuery()->execute();
     if (!$result) {
         $result[] = new \Sgdoce\Model\Entity\VwEmail();
     }
     return $result[0];
 }
 /**
  *
  * @param \Core_Dto_Search $dto
  * @return boolean
  */
 public function isTramiteExterno(\Core_Dto_Search $dto)
 {
     $sql = "SELECT (uo.sq_pessoa is null) AS is_tramite_externo\n                  FROM sgdoce.vw_ultimo_tramite_artefato uta\n                  JOIN corporativo.vw_pessoa pes\n                    ON pes.sq_pessoa = uta.sq_pessoa_destino\n             LEFT JOIN corporativo.vw_unidade_org uo\n                    ON pes.sq_pessoa = uo.sq_pessoa\n                 WHERE sq_artefato = :sqArtefato";
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping();
     $rsm->addScalarResult('is_tramite_externo', 'isTramiteExterno', 'boolean');
     $query = $this->_em->createNativeQuery($sql, $rsm);
     $query->setParameter('sqArtefato', $dto->getSqArtefato());
     return $query->getSingleScalarResult();
 }
Exemplo n.º 6
0
 public function getUserPrintedDigital(\Core_Dto_Search $search)
 {
     $result = array('user' => false, 'date' => null);
     $eLoteEtiqueta = $this->_getRepository()->find($search->getSqLoteEtiqueta());
     if ($eLoteEtiqueta->getSqUsuario()) {
         $result['user'] = $eLoteEtiqueta->getSqUsuario()->getSqPessoa()->getNoPessoa();
         $result['date'] = $eLoteEtiqueta->getDtImpressao()->get('dd/MM/yyyy');
     }
     return $result;
 }
Exemplo n.º 7
0
 /**
  * Obtém endereço de um usuário
  * @param \Core_Dto_Search $dto
  * @return array
  */
 public function buscarEnderecoPorIdUsuario(\Core_Dto_Search $dto)
 {
     $query = $this->_em->createQueryBuilder();
     $query->select('e')->from($this->_enName, 'e')->where('e.sqPessoa = :idUsuario')->setParameter('idUsuario', $dto->getSqUsuario());
     $result = $query->getQuery()->getResult();
     if (!$result) {
         $result[] = new \Sgdoce\Model\Entity\VwEndereco();
     }
     return $result[0];
 }
Exemplo n.º 8
0
 /**
  * método que retorna dados para da assinatura pela chave sqArtefato
  * @param \Core_Dto_Abstract $dto
  * @return \Doctrine\ORM\QueryBuilder
  */
 public function findAssinatura(\Core_Dto_Search $dto)
 {
     $query = mb_strtolower($dto->getQuery(), 'UTF-8');
     $queryBuilder = $this->getEntityManager()->createQueryBuilder()->select('
                 a.sqAssinatura,
                 a.dtAssinatura,
                 a.txMotivacao,
                 p.noPessoa
             ')->from('app:Assinatura', 'a')->leftjoin('a.sqPessoa', 'p')->andWhere('a.sqArtefato = :sqArtefato')->setParameter('sqArtefato', $dto->getSqArtefato());
     return $res = $queryBuilder->getQuery()->getOneOrNullResult();
 }
Exemplo n.º 9
0
 /**
  * Obtém os dados da pessoa
  * @return array
  */
 public function searchFuncionarioIcmbio(\Core_Dto_Search $dto)
 {
     $queryBuilder = $this->_em->createQueryBuilder();
     $queryBuilder->select('p.sqTipoPessoa')->from('app:VwPessoa', 'p')->where($queryBuilder->expr()->lower('p.noPessoa') . " = '" . strtolower($dto->getNoPessoa()) . "'");
     $res = $queryBuilder->getQuery()->execute();
     if (count($res)) {
         return $res[0];
     } else {
         return $res;
     }
 }
Exemplo n.º 10
0
 /**
  * Método que retorna os registros do grau de acesso do artefato que estiveram ativos
  * @param \Core_Dto_Search $dtoSearch
  * @return array
  */
 public function getGrauAcessoArtefato(\Core_Dto_Search $dtoSearch)
 {
     $queryBuilder = $this->_em->createQueryBuilder()->select('gaa')->from('app:GrauAcessoArtefato', 'gaa')->andWhere("gaa.sqArtefato = {$dtoSearch->getSqArtefato()}")->andWhere('gaa.stAtivo = TRUE');
     $result = $queryBuilder->getQuery()->execute();
     if (count($result) > 0) {
         $result = $result[0];
     } else {
         $result = NULL;
     }
     return $result;
 }
Exemplo n.º 11
0
 /**
  * @param \Core_Dto_Search $dto
  * Perfil do Usuário ex. SGI = \Core_Configuration::getSicaeTipoPerfilAdministrador()
  * @return QueryBuilder
  */
 public function listUsuarioPorPerfil($dto)
 {
     $sqPerfil = null;
     $sql = "SELECT DISTINCT\n                       u.sq_usuario,\n                       u.sq_pessoa,\n                       u.st_ativo,\n                       pe.no_pessoa,\n                       p.no_perfil,\n                       p.in_perfil_externo\n                  FROM sicae.vw_usuario u\n                  JOIN sicae.vw_usuario_perfil up USING(sq_usuario)\n                  JOIN sicae.vw_perfil p USING(sq_perfil)\n                  JOIN corporativo.vw_pessoa pe USING(sq_pessoa)\n                 WHERE u.st_ativo = TRUE\n                   AND p.sq_perfil = :sqPerfil\n                 ORDER BY pe.no_pessoa";
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping();
     $rsm->addScalarResult('sq_usuario', 'sqUsuario');
     $rsm->addScalarResult('sq_pessoa', 'sqPessoa');
     $rsm->addScalarResult('st_ativo', 'stAtivo');
     $rsm->addScalarResult('no_pessoa', 'noPessoa');
     $rsm->addScalarResult('no_perfil', 'noPerfil');
     $rsm->addScalarResult('in_perfil_externo', 'inPerfilExterno');
     $nativeQuery = $this->_em->createNativeQuery($sql, $rsm);
     $nativeQuery->setParameter('sqPerfil', $dto->getSqPerfil());
     return $nativeQuery->useResultCache(TRUE, NULL, __METHOD__)->getArrayResult();
 }
Exemplo n.º 12
0
 /**
  *
  * @param \Core_Dto_Search $dto
  * @return array
  */
 public function listGrid(\Core_Dto_Search $dto)
 {
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping($this->_em);
     $rsm->addScalarResult('sq_caixa', 'sqCaixa', 'integer');
     $rsm->addScalarResult('sq_artefato', 'sqArtefato', 'integer');
     $rsm->addScalarResult('sq_tipo_artefato', 'sqTipoArtefato', 'integer');
     $rsm->addScalarResult('nu_artefato', 'nuArtefato', 'string');
     $rsm->addScalarResult('no_tipo_documento', 'noTipoDocumento', 'string');
     $rsm->addScalarResult('tx_classificacao', 'txClassificacao', 'string');
     $rsm->addScalarResult('nu_classificacao', 'nuClassificacao', 'string');
     $rsm->addScalarResult('no_pessoa_origem', 'noPessoaOrigem', 'string');
     $rsm->addScalarResult('tx_assunto', 'txAssunto', 'string');
     $strQuery = sprintf("SELECT ca.sq_caixa\n                        ,art.sq_artefato\n                        ,CASE WHEN (taa.sq_tipo_artefato = %d) THEN art.nu_artefato ELSE art.nu_digital::TEXT END AS nu_artefato\n                        ,td.no_tipo_documento\n                        ,taa.sq_tipo_artefato\n                        ,cl.nu_classificacao || ' - ' ||cl.tx_classificacao as tx_classificacao\n\n                        ,ps.no_pessoa AS no_pessoa_origem\n                        ,ass.tx_assunto\n                   FROM caixa_artefato ca\n             INNER JOIN caixa cx                    using(sq_caixa)\n             INNER JOIN artefato art                 using(sq_artefato)\n             INNER JOIN tipo_documento td            using(sq_tipo_documento)\n             INNER JOIN tipo_artefato_assunto taa    using(sq_tipo_artefato_assunto)\n             INNER JOIN assunto ass                  using(sq_assunto)\n             INNER JOIN artefato_classificacao ac    using(sq_artefato)\n             INNER JOIN classificacao cl             ON ac.sq_classificacao = cl.sq_classificacao\n             INNER JOIN pessoa_artefato pa           using(sq_artefato)\n             INNER JOIN pessoa_sgdoce ps             using(sq_pessoa_sgdoce)\n                  WHERE ca.sq_caixa = %d\n                    AND pa.sq_pessoa_funcao = %d", \Core_Configuration::getSgdoceTipoArtefatoProcesso(), $dto->getSqCaixa(), \Core_Configuration::getSgdocePessoaFuncaoOrigem());
     $nativeQuery = $this->_em->createNativeQuery($strQuery, $rsm);
     return $nativeQuery;
 }
Exemplo n.º 13
0
 /**
  * método para pesquisa de unidades organizacinais para combo
  * @param array $params
  * @return array $out
  */
 public function sistemaAutoComplete(\Core_Dto_Search $dto, $entidade)
 {
     $queryBuilder = $this->_em->createQueryBuilder();
     $query = $queryBuilder->select('c')->from($entidade, 'c');
     if (!is_null($dto->hasQuery())) {
         $search = mb_strtolower($dto->getQuery(), 'UTF-8');
         $field = $queryBuilder->expr()->lower($queryBuilder->expr()->trim('c.nome'));
         $query->andWhere($queryBuilder->expr()->like('clear_accentuation(' . $field . ')', $queryBuilder->expr()->literal($this->removeAccent('%' . $search . '%'))));
     }
     $query->setMaxResults(10);
     $res = $query->getQuery()->getArrayResult();
     $out = array();
     foreach ($res as $item) {
         $out[$item['codigo']] = $item['nome'];
     }
     return $out;
 }
Exemplo n.º 14
0
 public function listGridHistoricoDespacho(\Core_Dto_Search $dto)
 {
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping();
     $rsm->addScalarResult('total_record', 'totalRecord', 'integer');
     $rsm->addScalarResult('sq_despacho_interlocutorio', 'sqDespachoInterlocutorio', 'integer');
     $rsm->addScalarResult('sq_artefato', 'sqArtefato', 'integer');
     $rsm->addScalarResult('dt_despacho', 'dtDespacho', 'zenddate');
     $rsm->addScalarResult('tx_despacho', 'txDespacho', 'string');
     $rsm->addScalarResult('no_assinatura', 'noAssinatura', 'string');
     $rsm->addScalarResult('no_origem', 'noOrigem', 'string');
     $rsm->addScalarResult('no_encaminhado', 'noEncaminhado', 'string');
     $rsm->addScalarResult('sq_pessoa_operacao', 'sqPessoaOperacao', 'integer');
     $sql = "SELECT count(sq_despacho_interlocutorio) over() as total_record,\n                       di.sq_despacho_interlocutorio,\n                       di.sq_artefato,\n                       di.dt_despacho,\n                       di.tx_despacho,\n                       pes_ass.no_pessoa as no_assinatura,\n                       uo_orig.sg_unidade_org AS no_origem,\n                       uo_enc.sg_unidade_org AS no_encaminhado,\n                       pes_oper.sq_pessoa AS sq_pessoa_operacao\n                  FROM despacho_interlocutorio di\n                  JOIN vw_pessoa pes_ass ON di.sq_pessoa_assinatura = pes_ass.sq_pessoa\n                  JOIN vw_unidade_org uo_orig ON di.sq_unidade_assinatura = uo_orig.sq_pessoa\n                  JOIN vw_unidade_org uo_enc ON di.sq_unidade_destino = uo_enc.sq_pessoa\n                  JOIN vw_pessoa pes_oper ON di.sq_pessoa_operacao = pes_oper.sq_pessoa\n                 WHERE di.sq_artefato = :sqArtefato\n              ORDER BY di.sq_despacho_interlocutorio DESC";
     $query = $this->_em->createNativeQuery($sql, $rsm);
     $query->setParameter('sqArtefato', $dto->getSqArtefato());
     return $query;
 }
Exemplo n.º 15
0
 public function getNextBoxNumber(\Core_Dto_Search $dto)
 {
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping($this->_em);
     $rsm->addScalarResult('nu_caixa', 'nuCaixa', 'string');
     $sql = sprintf("\n                    SELECT lpad((COALESCE(max(nu_caixa::INTEGER),0) + 1)::TEXT,7,'0') AS nu_caixa\n                      FROM caixa\n                     WHERE sq_unidade_org = %d", $dto->getSqUnidadeOrg());
     $nativeQuery = $this->_em->createNativeQuery($sql, $rsm);
     $result = $nativeQuery->getSingleResult();
     return $result['nuCaixa'];
 }
Exemplo n.º 16
0
 /**
  * Metódo que realiza o save do Artefato
  */
 public function saveArtefato(\Core_Dto_Search $dtoSearch)
 {
     $entityArtefato = $this->_newEntity('app:Artefato');
     $entityArtefato->setDtPrazo(NULL);
     $date = new \Zend_Date();
     $entityArtefato->setDtArtefato($date);
     $entityTipoArtefatoAssunto = $this->_getRepository('app:TipoArtefatoAssunto')->findBy(array('sqAssunto' => $dtoSearch->getSqAssunto(), 'sqTipoArtefato' => 5));
     $entityTipoDoc = $this->_getRepository('app:TipoDocumento')->find($dtoSearch->getSqTipoDocumento());
     $entityArtefato->setSqTipoArtefatoAssunto($entityTipoArtefatoAssunto[0]);
     $entityArtefato->setSqTipoDocumento($entityTipoDoc);
     $this->getEntityManager()->persist($entityArtefato);
     $this->getEntityManager()->flush($entityArtefato);
     $idModelo = $this->hasModeloDocumentoCadastrado($dtoSearch, TRUE);
     $entityModelo = $this->_getRepository('app:ModeloDocumento')->find($idModelo);
     $entityArtefatoMinuta = $this->_newEntity('app:ArtefatoMinuta');
     $entityArtefatoMinuta->setSqModeloDocumento($entityModelo);
     $entityArtefatoMinuta->setSqArtefato($entityArtefato);
     $this->getEntityManager()->persist($entityArtefatoMinuta);
     $this->getEntityManager()->flush($entityArtefatoMinuta);
     return $entityArtefato;
 }
Exemplo n.º 17
0
 /**
  * LISTA DE TIPO DE ASSUNTO DE SOLICITAÇÃO.
  *
  * @param \Core_Dto_Search $dto
  * @param string $sort
  * @param string $order
  * @return array
  */
 public function listTipoAssuntoSolicitacao($dto, $sort = 'a.noTipoAssuntoSolicitacao', $order = 'ASC')
 {
     $queryBuilder = $this->_em->createQueryBuilder()->select('a.sqTipoAssuntoSolicitacao, a.noTipoAssuntoSolicitacao, a.inTipoParaArtefato')->from('app:TipoAssuntoSolicitacao', 'a')->orderBy($sort, $order);
     if ($dto->getQuery() != "") {
         $search = mb_strtolower($dto->getQuery(), 'UTF-8');
         $noTipoAssuntoSolicitacao = $queryBuilder->expr()->lower($queryBuilder->expr()->trim('a.noTipoAssuntoSolicitacao'));
         $queryBuilder->where($queryBuilder->expr()->like('clear_accentuation(' . $noTipoAssuntoSolicitacao . ')', $queryBuilder->expr()->literal($this->removeAccent('%' . $search . '%'))));
     }
     $inTipoParaArtefato = $dto->getInTipoParaArtefato();
     if (!is_null($inTipoParaArtefato)) {
         $paraArtefato = $dto->getInTipoParaArtefato() > 0 ? '1' : '0';
         $queryBuilder->andWhere("a.inTipoParaArtefato = :inTipoParaArtefato")->setParameter(":inTipoParaArtefato", $paraArtefato);
         if ($paraArtefato) {
             $arrAssuntoProcesso = array(\Core_Configuration::getSgdoceTipoAssuntoSolicitacaoComentario(), \Core_Configuration::getSgdoceTipoAssuntoSolicitacaoDespacho(), \Core_Configuration::getSgdoceTipoAssuntoSolicitacaoAlterarCadastro(), \Core_Configuration::getSgdoceTipoAssuntoSolicitacaoVolumeDeProcesso(), \Core_Configuration::getSgdoceTipoAssuntoSolicitacaoDesanexaProcesso(), \Core_Configuration::getSgdoceTipoAssuntoSolicitacaoDesmembraPecas(), \Core_Configuration::getSgdoceTipoAssuntoSolicitacaoRemoverPeca());
             $arrAssuntoDocumento = array(\Core_Configuration::getSgdoceTipoAssuntoSolicitacaoComentario(), \Core_Configuration::getSgdoceTipoAssuntoSolicitacaoAlterarCadastro(), \Core_Configuration::getSgdoceTipoAssuntoSolicitacaoDespacho(), \Core_Configuration::getSgdoceTipoAssuntoSolicitacaoDesanexaDigital(), \Core_Configuration::getSgdoceTipoAssuntoSolicitacaoExcluirImagem());
             $arrAssunto = $inTipoParaArtefato == \Core_Configuration::getSgdoceTipoArtefatoProcesso() ? $arrAssuntoProcesso : $arrAssuntoDocumento;
             $queryBuilder->andWhere("a.sqTipoAssuntoSolicitacao IN(:sqTipoAssuntoSolicitacaoiIn)")->setParameter(":sqTipoAssuntoSolicitacaoiIn", $arrAssunto);
         }
     }
     $queryBuilder->andWhere("a.stRegistroAtivo = :stRegistroAtivo")->setParameter(":stRegistroAtivo", TRUE);
     return $queryBuilder->getQuery()->useResultCache(TRUE, NULL, __METHOD__)->execute();
 }
Exemplo n.º 18
0
 /**
  * Realiza busca para grid
  *
  * @param \Core_Dto_Search $search
  * @return \Doctrine\ORM\QueryBuilder
  */
 public function listGrid($search)
 {
     try {
         $rsm = new \Doctrine\ORM\Query\ResultSetMapping();
         $rsm->addScalarResult('total_record', 'totalRecord', 'integer');
         $rsm->addScalarResult('sq_comentario_artefato', 'sqComentarioArtefato', 'integer');
         $rsm->addScalarResult('sq_pessoa', 'sqPessoa', 'integer');
         $rsm->addScalarResult('sq_artefato', 'sqArtefato', 'integer');
         $rsm->addScalarResult('sq_unidade_org', 'sqUnidadeOrg', 'integer');
         $rsm->addScalarResult('no_pessoa', 'noPessoa', 'string');
         $rsm->addScalarResult('tx_comentario', 'txComentario', 'string');
         $rsm->addScalarResult('no_unidade_org', 'noUnidadeOrg', 'string');
         $rsm->addScalarResult('dt_comentario', 'dtComentario', 'zenddate');
         $rsm->addScalarResult('dt_tramite', 'dtTramite', 'zenddate');
         $sql = "SELECT COUNT(sq_comentario_artefato) OVER() as total_record,\n                           ca.sq_comentario_artefato,\n                           pes.sq_pessoa,\n                           pes.no_pessoa,\n                           art.sq_artefato,\n                           ca.tx_comentario,\n                           ca.dt_comentario,\n                           uo.sq_pessoa as sq_unidade_org,\n                           uo.no_pessoa as no_unidade_org,\n                           uta.dt_tramite\n                      FROM comentario_artefato ca\n                      JOIN vw_pessoa pes\n                        ON ca.sq_pessoa = pes.sq_pessoa\n                      JOIN artefato art\n                        ON ca.sq_artefato = art.sq_artefato\n                      JOIN vw_unidade_org uo\n                        ON ca.sq_unidade = uo.sq_pessoa\n                      JOIN tramite_artefato uta\n                        ON uta.sq_artefato = ca.sq_artefato AND uta.st_ultimo_tramite\n                    WHERE ca.sq_artefato = :sqArtefato\n                    ORDER BY ca.dt_comentario DESC";
         $query = $this->_em->createNativeQuery($sql, $rsm);
         $query->setParameter('sqArtefato', $search->getSqArtefato());
         return $query;
     } catch (\Exception $e) {
         throw $e;
     }
 }
Exemplo n.º 19
0
 public function saveDevolucao(\Core_Dto_Search $dto)
 {
     try {
         $dtOperacao = \Zend_Date::now();
         $sqTipoHistorico = \Core_Configuration::getSgdoceTipoHistoricoArquivoDevolvido();
         foreach ($dto->getSqArtefato()->getApi() as $method) {
             $entityArtefato = $this->_getRepository('app:Artefato')->find($dto->getSqArtefato()->{$method}());
             $this->_checkCanReturn($entityArtefato);
             $entityCaixaArtefato = $this->_getRepository('app:CaixaArtefato')->findOneBy(array('sqArtefato' => $entityArtefato->getSqArtefato()));
             $this->getServiceLocator()->getService('CaixaArtefato')->insertHistorico($entityCaixaArtefato, $dtOperacao, $sqTipoHistorico);
         }
         $this->getEntityManager()->flush();
     } catch (\Exception $e) {
         throw $e;
     }
 }
Exemplo n.º 20
0
 public function addArtefatoVinculo(\Core_Dto_Search $dto)
 {
     $entity = NULL;
     $artefato = $this->_getRepository('app:Artefato')->findBy(array('nuDigital' => $dto->getNuDigital()));
     if ($artefato) {
         $sqArtefatoPai = $this->_getRepository('app:Artefato')->find($dto->getSqArtefato());
         $sqArtefatoFilho = $this->_getRepository()->find($artefato[0]->getSqArtefato());
         $sqTipoVinculo = $this->_getRepository('app:TipoVinculoArtefato')->find($dto->getTipoVinculo());
         $entity = new \Sgdoce\Model\Entity\ArtefatoVinculo();
         $entity->setSqArtefatoPai($sqArtefatoPai);
         $entity->setSqArtefatoFilho($sqArtefatoFilho);
         $entity->setSqTipoVinculoArtefato($sqTipoVinculo);
         $entity->setDtVinculo(\Zend_Date::now());
         if ($dto->getInOriginal()) {
             $entity->setInOriginal($dto->getInOriginal());
         } else {
             $entity->setInOriginal(FALSE);
         }
         $this->getEntityManager()->persist($entity);
         $this->getEntityManager()->flush($entity);
     }
     return $entity;
 }
Exemplo n.º 21
0
 /**
  * Listagem de artefatos de migração inconsistentes.
  *
  * @param \Core_Dto_Abstract $dto
  * @return \Doctrine\ORM\QueryBuilder
  */
 public function listGridArtefatosInconsistentes(\Core_Dto_Search $dto)
 {
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping();
     $rsm->addScalarResult('total_record', 'totalRecord', 'integer');
     $rsm->addScalarResult('sq_artefato', 'sqArtefato', 'integer');
     $rsm->addScalarResult('nu_digital', 'nuDigital', 'string');
     $rsm->addScalarResult('nu_artefato', 'nuArtefato', 'string');
     $rsm->addScalarResult('dt_cadastro', 'dtCadastro', 'zenddate');
     $not = "NOT";
     $proc = "LEFT";
     if ($dto->sqTipoArtefato == \Core_Configuration::getSgdoceTipoArtefatoProcesso()) {
         $not = "";
         $proc = "";
     }
     $sql = 'SELECT COUNT(sq_artefato) OVER() AS total_record, *
               FROM  (
                         SELECT a.sq_artefato,
                                LPAD(CAST(a.nu_digital AS VARCHAR), 7, \'0\') AS nu_digital,
                                a.dt_cadastro,
                                sgdoce.formata_numero_artefato(a.nu_artefato, ap.co_ambito_processo ) as nu_artefato
                           FROM sgdoce.artefato a
                      LEFT JOIN sgdoce.tramite_artefato ta using(sq_artefato)
                 ' . $proc . ' JOIN sgdoce.artefato_processo ap ON a.sq_artefato = ap.sq_artefato
                          WHERE a.st_migracao
                            AND a.nu_digital IS ' . $not . ' NULL
                            AND a.ar_inconsistencia IS NOT NULL
                            AND FALSE = ANY(a.ar_inconsistencia)
                            AND ta.st_ultimo_tramite
                            AND ta.sq_pessoa_destino IS NULL
                            %1$s
                     ) AS totalizador
           ORDER BY nu_digital, nu_artefato NULLS LAST';
     $optionalCondition = '';
     $search = mb_strtolower($dto->getSearch(), 'UTF-8');
     if ($search) {
         $queryBuild = $this->_em->createQueryBuilder();
         if ($dto->sqTipoArtefato == \Core_Configuration::getSgdoceTipoArtefatoProcesso()) {
             $nuArtefato = $this->_em->createQueryBuilder()->expr()->lower("TRANSLATE(a.nu_artefato, './-', '')")->__toString();
             $optionalCondition = " AND (" . $queryBuild->expr()->eq('a.nu_artefato', $queryBuild->expr()->literal($search))->__toString() . " OR " . $queryBuild->expr()->eq($nuArtefato, $queryBuild->expr()->literal(str_replace(array('.', '/', '-'), '', $search)))->__toString() . ")";
         } else {
             $optionalCondition = " AND " . $queryBuild->expr()->eq('a.nu_digital', $search)->__toString();
         }
     }
     $query = $this->_em->createNativeQuery(sprintf($sql, $optionalCondition), $rsm);
     $query->setParameter('sqUnidadeOrg', \Core_Integration_Sica_User::getUserUnit())->useResultCache(false);
     return $query;
 }
Exemplo n.º 22
0
 public function deleteByCriteria(\Core_Dto_Search $dto)
 {
     $qb = $this->_em->createQueryBuilder();
     return $qb->delete($this->_entityName, 't')->where($qb->expr()->eq('t.sqPessoaSgdoce', $dto->getSqPessoaSgdoce()))->andWhere($qb->expr()->eq('t.sqPessoaUnidadeOrg', $dto->getSqPessoaUnidadeOrg()))->getQuery()->execute();
 }
Exemplo n.º 23
0
 /**
  * Realiza consulta pessoa existente
  * @param \Core_Dto_Search $dtoSearch
  */
 public function findCargoAssinante($dtoSearch)
 {
     return $this->_getRepository('app:VwProfissional')->findOneBy(array('sqProfissional' => $dtoSearch->getSqPessoa()));
 }
Exemplo n.º 24
0
 public function getMaxNuOrderByParent(\Core_Dto_Search $dto)
 {
     $sql = "SELECT MAX(nu_ordem) as nu_ordem FROM artefato_vinculo WHERE sq_artefato_pai = :sqArtefatoPai";
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping($this->_em);
     $rsm->addScalarResult('nu_ordem', 'nuOrdem', 'integer');
     $nq = $this->_em->createNativeQuery($sql, $rsm)->setParameter('sqArtefatoPai', $dto->getSqArtefatoPai());
     return $nq->useResultCache(false)->getSingleScalarResult();
 }
Exemplo n.º 25
0
 public function listGrid(\Core_Dto_Search $dto)
 {
     return $this->_em->createQueryBuilder()->select('p.sqPessoa, t.sqTelefone, tt.noTipoTelefone, t.nuDdd, t.nuTelefone')->from('app:VwTelefone', 't')->innerJoin('t.sqTipoTelefone', 'tt')->innerJoin('t.sqPessoa', 'p')->where('p.sqPessoa = :sqPessoa')->setParameter('sqPessoa', $dto->getSqPessoa());
 }
Exemplo n.º 26
0
 /**
  * @param \Core_Dto_Search $dto
  * @return array
  */
 public function comboArtefato($dto)
 {
     $sqTipoArtefato = $dto->getSqTipoArtefato();
     $field = "nuDigital";
     if ($sqTipoArtefato == \Core_Configuration::getSgdoceTipoArtefatoProcesso()) {
         $field = "nuArtefato";
     }
     $list = $this->_getRepository()->searchArtefato($dto);
     if (!isset($list['__NO_CLICK__'])) {
         $out = array();
         foreach ($list as $item) {
             $out[$item['sqArtefato']] = "{$item[$field]}";
         }
         return $out;
     }
     return $list;
 }
Exemplo n.º 27
0
 /**
  * Deleta motivação
  * @param \Core_Dto_Search $dto
  * @return boolean
  */
 public function deleteMotivacao($dto)
 {
     $queryBuilder = $this->_em->createQueryBuilder()->delete('app:Motivacao', 'm')->andWhere('m.sqArtefato = :sqArtefato')->setParameter('sqArtefato', $dto->getSqArtefato()->getSqArtefato())->andWhere('m.sqPessoaUnidadeOrg = :sqPessoaUnidadeOrg')->setParameter('sqPessoaUnidadeOrg', $dto->getSqPessoaUnidadeOrg()->getSqPessoaUnidadeOrg());
     $out = $queryBuilder->getQuery()->execute();
     return $out;
 }
Exemplo n.º 28
0
 /**
  * método que retorna dados para grid de interessados nos Artefato
  * @param \Core_Dto_Abstract $dto
  * @return \Doctrine\ORM\QueryBuilder
  */
 public function listGridImagem(\Core_Dto_Search $dto)
 {
     $queryBuilder = $this->_em->createQueryBuilder()->select('aa')->from('app:AnexoArtefato', 'aa')->andWhere('aa.sqArtefato = :sqArtefato')->setParameter('sqArtefato', $dto->getSqArtefato())->orderBy('aa.nuPagina');
     return $queryBuilder;
 }
Exemplo n.º 29
0
 /**
  *
  * @param \Core_Dto_Abstract $dto
  * @return array
  */
 public function listGridMaterial(\Core_Dto_Search $dto)
 {
     $queryBuilder = $this->_em->createQueryBuilder();
     $queryBuilder->select('ta.noTipoAnexo, af.nuDigital, aav.noTituloAnexo, aav.sqAnexoArtefatoVinculo')->from('app:AnexoArtefatoVinculo', 'aav')->innerJoin('aav.sqArtefatoVinculo', 'av')->innerJoin('aav.sqTipoAnexo', 'ta')->innerJoin('av.sqArtefatoPai', 'ap')->innerJoin('av.sqArtefatoFilho', 'af')->andWhere('ap.sqArtefato = :sqArtefato')->andWhere('av.sqTipoVinculoArtefato = :sqTipoVinculoArtefato')->setParameter('sqArtefato', $dto->getSqArtefato())->setParameter('sqTipoVinculoArtefato', \Core_Configuration::getSgdoceTipoVinculoArtefatoApoio());
     return $queryBuilder;
 }
 /**
  * Método que obtém os dados para grid
  * @param \Core_Dto_Search $dtoSearch
  * @return array
  */
 public function getResultList(\Core_Dto_Search $dtoSearch)
 {
     $dtoSearch->sqArtefato = $this->_getParam('sqArtefato');
     $dtoSearch->limitComment = self::T_ARTEFATO_DESPACHO_INTERLOCUTORIO_LIMIT_COMMENT_GRID;
     $dtoSearch->hasPermission = $this->_checkPermissaoArtefato($dtoSearch->getSqArtefato());
     $dtoSearch->ultimoTramite = $this->getService('TramiteArtefato')->getLastTramite($dtoSearch->getSqArtefato());
     $dtoSearch->demandaAberta = $this->getService('Solicitacao')->getSolicitacaoAberta($dtoSearch);
     $res = $this->getService()->getGrid($dtoSearch);
     return $res;
 }