Example #1
0
 public function hasNUP(\Core_Dto_Search $dto)
 {
     $entity = $this->_getRepository()->find($dto->getSqUnidadeOrg());
     return !!$entity->getNuNup();
 }
Example #2
0
 /**
  *
  *
  * @param \Core_Dto_Search $search
  * @return boolean
  */
 public function verificaLiberacaoDigitalEletronica(\Core_Dto_Search $search)
 {
     $qb = $this->_em->createQueryBuilder();
     $qb->select('le.sqLoteEtiqueta', 'edl.nuQuantidadeDisponivel')->from('app:LoteEtiqueta', 'le')->innerJoin('le.sqEtiquetaDisponivelLote', 'edl')->where($qb->expr()->eq('le.sqUnidadeOrg', ':sqUnidadeOrg'))->andWhere($qb->expr()->eq('le.nuAno', ':nuAno'))->andWhere($qb->expr()->eq('le.sqTipoEtiqueta', \Core_Configuration::getSgdoceTipoEtiquetaEletronica()))->orderBy('le.sqLoteEtiqueta', 'ASC')->setParameter('sqUnidadeOrg', $search->getSqUnidadeOrg())->setParameter('nuAno', $search->getNuAno());
     $return = false;
     $arrResult = $qb->getQuery()->execute();
     foreach ($arrResult as $lote) {
         //existe um lote
         if ($lote['nuQuantidadeDisponivel'] > 0) {
             $return = true;
             break;
         }
     }
     return $return;
 }
Example #3
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'];
 }
Example #4
0
 /**
  * Verifica se o usuário tem acesso a uma determinada rota
  * @param \Core_Dto_Search $dtoSearch
  *
  * @return Array[Object]
  */
 public function searchPessoaUnidade(\Core_Dto_Search $objDtoSearch, $limit = 10)
 {
     $strNoPessoa = mb_strtolower($objDtoSearch->getQuery(), 'UTF-8');
     $objQBuilder = $this->_em->createQueryBuilder();
     $objField = $objQBuilder->expr()->lower($objQBuilder->expr()->trim('p.noPessoa'));
     $objQBuilder->select("p.noPessoa, p.sqPessoa, IDENTITY(up.sqUnidadeOrgPessoa) AS sqUnidadeOrgPessoa")->distinct('p.noPessoa')->distinct('p.sqPessoa')->from('app:VwUsuarioPerfil', 'up')->join("up.sqUsuario", 'u')->join("u.sqPessoa", "p")->where($objQBuilder->expr()->like("clear_accentuation({$objField})", $objQBuilder->expr()->literal($this->removeAccent('%' . $strNoPessoa . '%'))));
     if ($objDtoSearch->getSqUnidadeOrg() != '') {
         $objQBuilder->andWhere("up.sqUnidadeOrgPessoa = :sqUnidadeOrgPessoa")->setParameter("sqUnidadeOrgPessoa", $objDtoSearch->getSqUnidadeOrg());
     }
     $objQBuilder->setMaxResults($limit);
     return $objQBuilder->getQuery()->execute();
 }
Example #5
0
 /**
  * Verifica se uma digital esta em uso, apenas.
  * OBS: metodo não considera digitais não liberadas
  *
  * @param \Core_Dto_Search $search
  * @return boolean
  */
 public function verificaDigitalEmUso(\Core_Dto_Search $search)
 {
     $qb = $this->_em->createQueryBuilder();
     $qb->select('IDENTITY(ens.sqLoteEtiqueta) AS sqLoteEtiqueta')->distinct()->from('app:EtiquetasUso', 'eu')->innerJoin('eu.sqLoteEtiqueta', 'ens', Join::WITH, "eu.nuEtiqueta = :nuEtiqueta")->innerJoin('ens.sqLoteEtiqueta', 'le')->where($qb->expr()->eq('le.sqUnidadeOrg', ':sqUnidadeOrg'))->andWhere($qb->expr()->between(':nuSequencialDigital', 'le.nuInicial', 'le.nuFinal'))->andWhere($qb->expr()->eq('le.nuAno', ':nuAno'))->andWhere($qb->expr()->eq('le.sqTipoEtiqueta', ':sqTipoEtiqueta'))->setParameter('nuEtiqueta', $search->getNuEtiqueta())->setParameter('sqUnidadeOrg', $search->getSqUnidadeOrg())->setParameter('nuSequencialDigital', $search->getNuSequencialDigital())->setParameter('nuAno', $search->getNuAno())->setParameter('sqTipoEtiqueta', $search->getSqTipoEtiqueta());
     return count($qb->getQuery()->getArrayResult()) > 0;
 }
Example #6
0
 public function isSede(\Core_Dto_Search $dto)
 {
     $sql = "select not :sqUnidadeOrg in (\n                               SELECT\n                               uo.sq_pessoa\n                               FROM corporativo.vw_unidade_org uo\n                               join corporativo.tipo_unidade_org_hierarq tp on  tp.sq_tipo_unidade_org = uo.sq_tipo_unidade\n                               WHERE trilha_sigla ilike '%Aut-->UD-->%'\n                           ) as is_sede";
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping();
     $rsm->addScalarResult('is_sede', 'isSede');
     $query = $this->_em->createNativeQuery($sql, $rsm);
     $query->setParameter('sqUnidadeOrg', $dto->getSqUnidadeOrg());
     return $query->getSingleScalarResult();
 }
Example #7
0
 public function getSolicitacaoDuplicado(\Core_Dto_Search $dto)
 {
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping($this->_em);
     $rsm->addScalarResult('sq_artefato', 'sqArtefato', 'integer');
     $rsm->addScalarResult('sq_solicitacao', 'sqSolicitacao', 'integer');
     $rsm->addScalarResult('sq_tipo_assunto_solicitacao', 'sqTipoAssuntoSolicitacao', 'integer');
     $rsm->addScalarResult('ds_solicitacao', 'dsSolicitacao', 'string');
     $rsm->addScalarResult('dt_solicitacao', 'dtSolicitacao', 'zenddate');
     $sql = 'SELECT s.*
               FROM sgdoce.solicitacao s
               JOIN sgdoce.vw_ultimo_status_solicitacao uss USING (sq_solicitacao)
              WHERE s.sq_artefato = :sqArtefato
                AND s.sq_tipo_assunto_solicitacao = :sqTipoAssuntoSolicitacao
                AND s.sq_pessoa = :sqPessoa
                AND s.sq_unidade_org = :sqUnidadeOrg
                AND uss.sq_tipo_status_solicitacao <> :sqStatusAberta';
     $nq = $this->_em->createNativeQuery($sql, $rsm)->setParameter('sqArtefato', $dto->getSqArtefato())->setParameter('sqTipoAssuntoSolicitacao', $dto->getSqTipoAssuntoSolicitacao())->setParameter('sqPessoa', $dto->getSqPessoa())->setParameter('sqUnidadeOrg', $dto->getSqUnidadeOrg())->setParameter('sqStatusAberta', \Core_Configuration::getSgdoceTipoStatusSolicitacaoFinalizada())->useResultCache(false);
     return $nq->getScalarResult();
 }
Example #8
0
 public function findUsers(\Core_Dto_Search $dto)
 {
     $tipoTelefoneInstituicional = \Core_Configuration::getCorpTipoTelefoneInstitucional();
     $tipoEmailInstituicional = \Core_Configuration::getCorpTipoEmailInstitucional();
     $queryBuilder = $this->_em->createQueryBuilder();
     $queryBuilder->select('pf.nuCpf, p.noPessoa, e.txEmail, t.nuTelefone, t.nuDdd, u.stAtivo, s.sqSistema, ' . 's.noSistema, s.sgSistema, pl.noPerfil, un.noPessoa noUnidade')->from($this->_entityName, 'u')->innerJoin('u.sqPessoa', 'p')->innerJoin('p.sqPessoaFisica', 'pf')->leftJoin('p.telefone', 't', 'WITH', $queryBuilder->expr()->eq('t.sqTipoTelefone', ':tipoTelefone'))->leftJoin('p.email', 'e', 'WITH', $queryBuilder->expr()->eq('e.sqTipoEmail', ':tipoEmail'))->leftJoin('u.sqUsuarioPerfil', 'up')->leftJoin('up.sqPerfil', 'pl')->leftJoin('pl.sqSistema', 's')->leftJoin('up.sqUnidadeOrgPessoa', 'un')->setParameter('tipoTelefone', $tipoTelefoneInstituicional, 'integer')->setParameter('tipoEmail', $tipoEmailInstituicional, 'integer')->orderBy('p.noPessoa, s.sgSistema, s.noSistema')->addOrderBy('pl.noPerfil, un.noPessoa');
     if ($dto->hasNuCpf()) {
         $cpf = \Zend_Filter::filterStatic($dto->getNuCpf(), 'Digits');
         $queryBuilder->andWhere($queryBuilder->expr()->eq('pf.nuCpf', ':cpf'))->setParameter('cpf', $cpf);
     }
     if ($dto->hasNoPessoa()) {
         $queryBuilder->andWhere($queryBuilder->expr()->like($queryBuilder->expr()->lower('p.noPessoa'), ':pessoa'))->setParameter('pessoa', '%' . mb_strtolower($dto->getNoPessoa(), 'utf-8') . '%');
     }
     if ($dto->hasSqUnidadeOrg() && $dto->getSqUnidadeOrg()) {
         $queryBuilder->andWhere($queryBuilder->expr()->eq('un.sqUnidadeOrgPessoa', ':unidade'))->setParameter('unidade', $dto->getSqUnidadeOrg());
     }
     if ($dto->hasSqSistema()) {
         $queryBuilder->andWhere($queryBuilder->expr()->eq('s.sqSistema', ':sistema'))->setParameter('sistema', $dto->getSqSistema());
     }
     if ($dto->hasSqPerfil()) {
         $queryBuilder->andWhere($queryBuilder->expr()->eq('pl.sqPerfil', ':perfil'))->setParameter('perfil', $dto->getSqPerfil());
     }
     if ($dto->hasStAtivo()) {
         $queryBuilder->andWhere($queryBuilder->expr()->eq('u.stAtivo', ':ativo'))->setParameter('ativo', $dto->getStAtivo());
     }
     return $queryBuilder->getQuery()->getArrayResult();
 }