Example #1
0
 public function listEtiquetasPorNumero(\Core_Dto_Search $objDTOSearch, $limit = 30)
 {
     if ($objDTOSearch->getNuEtiqueta() == "") {
         return array();
     }
     $nupCondition = "le.in_lote_com_nup_siorg";
     if (!$objDTOSearch->getInLoteComNupSiorg()) {
         $nupCondition = "NOT le.in_lote_com_nup_siorg";
     }
     $strSql = "SELECT DISTINCT formata_numero_digital(eu.nu_etiqueta) as nu_etiqueta, ens.nu_nup_siorg\n                     FROM sgdoce.etiquetas_uso AS eu\n                     JOIN sgdoce.etiqueta_nup_siorg AS ens\n                       ON ens.sq_lote_etiqueta = eu.sq_lote_etiqueta\n                      AND ens.nu_etiqueta = eu.nu_etiqueta\n                     JOIN sgdoce.lote_etiqueta AS le ON le.sq_lote_etiqueta = eu.sq_lote_etiqueta\n                     JOIN sgdoce.tipo_etiqueta AS te ON te.sq_tipo_etiqueta = le.sq_tipo_etiqueta\n                    WHERE te.sq_tipo_etiqueta = " . \Core_Configuration::getSgdoceTipoEtiquetaFisica() . "\n                      AND formata_numero_digital(eu.nu_etiqueta) ILIKE '%" . $objDTOSearch->getNuEtiqueta() . "%'\n                      AND {$nupCondition}\n                    ORDER BY nu_etiqueta";
     if ($limit > 0) {
         $strSql .= " LIMIT " . $limit;
     }
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping();
     $rsm->addScalarResult('nu_etiqueta', 'nuEtiqueta');
     $rsm->addScalarResult('nu_nup_siorg', 'nuNupSiorg');
     $objQuery = $this->_em->createNativeQuery($strSql, $rsm);
     return $objQuery->getScalarResult();
 }
Example #2
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;
 }