Example #1
0
 /**
  *
  * @param \Core_Dto_Search $search
  * @return array
  */
 public function getUltimoLotePessoaUnidadeOrg(\Core_Dto_Search $search)
 {
     $query = $this->_em->createQueryBuilder();
     $query->select('le.sqLoteEtiqueta', 'le.nuInicial', 'le.nuFinal', 'le.nuInicialNupSiorg', 'le.nuFinalNupSiorg', 'uo.noUnidadeOrg', 'edl.nuQuantidadeDisponivel', 'te.noTipoEtiqueta')->from('app:LoteEtiqueta', 'le')->innerJoin('le.sqUnidadeOrg', 'uo')->innerJoin('le.sqTipoEtiqueta', 'te')->innerJoin('le.sqEtiquetaDisponivelLote', 'edl')->andWhere($query->expr()->eq('le.nuAno', ':nuAno'))->andWhere($query->expr()->isNotNull('le.dtCriacao'))->orderBy('le.sqLoteEtiqueta', 'DESC')->setParameter('nuAno', $search->getNuAno())->setMaxResults(1);
     //limit
     $searchApi = $search->getApi();
     if ($search->getSqUnidadeOrg()) {
         if ($search->getSqUnidadeOrg() instanceof \Sgdoce\Model\Entity\VwUnidadeOrg) {
             $sqUnidadeOrg = $search->getSqUnidadeOrg()->getSqUnidadeOrg();
         } else {
             $sqUnidadeOrg = $search->getSqUnidadeOrg();
         }
         $query->andWhere($query->expr()->eq('le.sqUnidadeOrg', ':sqUnidadeOrg'))->setParameter('sqUnidadeOrg', $sqUnidadeOrg);
     }
     if ($search->getSqTipoEtiqueta()) {
         if ($search->getSqTipoEtiqueta() instanceof \Sgdoce\Model\Entity\TipoEtiqueta) {
             $sqTipoEtiqueta = $search->getSqTipoEtiqueta()->getSqTipoEtiqueta();
         } else {
             $sqTipoEtiqueta = $search->getSqTipoEtiqueta();
         }
         $query->andWhere($query->expr()->eq('le.sqTipoEtiqueta', ':sqTipoEtiqueta'))->setParameter('sqTipoEtiqueta', $sqTipoEtiqueta);
     }
     if (isset($searchApi['inLoteComNupSiorg'])) {
         $inLoteComNup = $search->getInLoteComNupSiorg();
         if ($inLoteComNup) {
             $query->andWhere('le.inLoteComNupSiorg = TRUE');
         } else {
             $query->andWhere('le.inLoteComNupSiorg = FALSE');
         }
     }
     return $query->getQuery()->execute();
 }
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;
 }