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(); }
/** * 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; }