public function getNuSequencialProcesso()
 {
     $criteria = array('sqTipoArtefato' => \Core_Configuration::getSgdoceTipoArtefatoProcesso(), 'sqTipoDocumento' => NULL, 'sqUnidadeOrg' => NULL);
     $seqProcesso = $this->findBy($criteria);
     if (!empty($seqProcesso[0])) {
         $sequencial = $seqProcesso[0];
     } else {
         $data = new \Zend_Date();
         $sequencial = new \Sgdoce\Model\Entity\SequencialArtefato();
         $sequencial->setNuSequencial(0);
         $sequencial->setSqTipoArtefato($this->_getRepository('app:TipoArtefato')->find(\Core_Configuration::getSgdoceTipoArtefatoProcesso()));
         $sequencial->setNuAno($data->get('yyyy'));
         $this->getEntityManager()->persist($sequencial);
         $this->getEntityManager()->flush();
     }
     $session = new \Core_Session_Namespace('Sequencial');
     $session->__set('oldNuSequencial', $sequencial->getNuSequencial());
     $disponivel = FALSE;
     $nuSequencial = (string) str_pad($sequencial->getNuSequencial(), 6, "0", STR_PAD_LEFT);
     do {
         $nuSequencial = $nuSequencial + 1;
         $nuSequencial = (string) str_pad($nuSequencial, 6, "0", STR_PAD_LEFT);
         $disponivel = $this->_getRepository('app:SequencialArtefato')->hasSequencialProcesso($nuSequencial);
         if (!$disponivel) {
             $nuSequencial + 1;
         }
     } while ($disponivel == FALSE);
     $sequencial->setNuSequencial($nuSequencial + 1);
     $this->getEntityManager()->persist($sequencial);
     $this->getEntityManager()->flush();
     return $sequencial->getNuSequencial();
 }
示例#2
0
 /**
  * método que implementa grid
  * @param array $params
  * @return array $result
  */
 public function listGrid(\Core_Dto_Search $params)
 {
     $repository = $this->getEntityManager()->getRepository($this->_entityName);
     $result = $repository->searchPageDto('listGrid', $params);
     // caso a unidade possua numero de NUP então visualiza o sequencia de processo
     if ($params->getNoPessoa() != '') {
         $entityPessoa = $this->getServiceLocator()->getService('VwUnidadeOrg')->find($params->getNoPessoa());
         if ($entityPessoa && $entityPessoa->getNuNup() != NUll) {
             $seqProcesso = $repository->findOneBy(array('sqTipoArtefato' => \Core_Configuration::getSgdoceTipoArtefatoProcesso(), 'nuAno' => $params->getNuAno(), 'sqUnidadeOrg' => $entityPessoa->getSqUnidadeOrg()));
             if (!$seqProcesso) {
                 $sqTipoArtefato = $this->_getRepository('app:TipoArtefato')->find(\Core_Configuration::getSgdoceTipoArtefatoProcesso());
                 $seqProcesso = new \Sgdoce\Model\Entity\SequencialArtefato();
                 $seqProcesso->setSqTipoArtefato($sqTipoArtefato);
                 $seqProcesso->setNuAno($params->getNuAno());
                 $seqProcesso->setSqUnidadeOrg($entityPessoa);
                 $seqProcesso->setNuSequencial(0);
                 $this->getEntityManager()->persist($seqProcesso);
                 $this->getEntityManager()->flush();
             }
             if ($seqProcesso != NULL) {
                 $result['data']->append($seqProcesso->toArray());
             }
         }
     }
     return $result;
 }