コード例 #1
0
ファイル: LoteEtiqueta.php プロジェクト: sgdoc/sgdoce-codigo
 /**
  *
  * @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();
 }