public function hasNUP(\Core_Dto_Search $dto) { $entity = $this->_getRepository()->find($dto->getSqUnidadeOrg()); return !!$entity->getNuNup(); }
/** * * * @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; }
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']; }
/** * 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(); }
/** * 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; }
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(); }
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(); }
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(); }