Example #1
0
 /**
  *
  * @param \Core_Dto_Search $dto
  * @return \Doctrine\DBAL\Query\QueryBuilder
  */
 public function listGrid(\Core_Dto_Search $dto)
 {
     $queryBuilder = $this->_em->createQueryBuilder();
     $query = $this->_getInitSqlGrid();
     if ($dto->getNuCaixa()) {
         $query->where($queryBuilder->expr()->like($queryBuilder->expr()->trim('ca.nuCaixa'), $queryBuilder->expr()->literal('%' . $dto->getNuCaixa() . '%')));
     }
     if ($dto->getNuAno()) {
         $query->where($queryBuilder->expr()->eq('ca.nuAno', $dto->getNuAno()));
     }
     if ($dto->getSqClassificacao()) {
         $query->where($queryBuilder->expr()->eq('ca.sqClassificacao', $dto->getSqClassificacao()));
     }
     if ($dto->getSqUnidadeOrg()) {
         $query->where($queryBuilder->expr()->eq('ca.sqUnidadeOrg', $dto->getSqUnidadeOrg()));
     }
     $stFechamento = $dto->getStFechamento();
     if ($stFechamento !== '') {
         if ($stFechamento) {
             //Fechada
             $query->where('ca.stFechamento = true');
         } else {
             //Aberta
             $query->where('ca.stFechamento = false');
         }
     }
     return $query;
 }
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
 /**
  * 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;
 }