/** * * @param \Core_Dto_Search $dto * @return boolean */ public function inMyDashboard(\Core_Dto_Search $dto) { $entityTramite = $this->find($dto->getSqArtefato()); if ($entityTramite && !$entityTramite->getSqPessoaRecebimento()) { return false; } $isSqPessoa = $entityTramite && $entityTramite->getSqPessoaRecebimento() && $entityTramite->getSqPessoaRecebimento()->getSqPessoa() == $dto->getSqPessoa(); $isSqPessoaDestino = $entityTramite && $entityTramite->getSqPessoaDestino() && $entityTramite->getSqPessoaDestino()->getSqPessoa() == $dto->getSqPessoaDestino(); $isCanceladoOuDevolvido = $entityTramite && in_array($entityTramite->getSqStatusTramite()->getSqStatusTramite(), array(\Core_Configuration::getSgdoceStatusTramiteCancelado(), \Core_Configuration::getSgdoceStatusTramiteDevolvido())); if ($entityTramite && (!$isSqPessoa || !$isSqPessoaDestino && !$isCanceladoOuDevolvido)) { return false; } return true; }
public function isReturned() { return $this->getSqStatusTramite()->getSqStatusTramite() == \Core_Configuration::getSgdoceStatusTramiteDevolvido(); }
/** * * @param integer $sqArtefato * @param integer $sqPessoaDestino opcional só é passado quando artefato é sigiloso * @param integer $sqPessoaDestinoInterno opcional só é passado quando artefato é sigiloso * @return \Sgdoce\Model\Entity\TramiteArtefato * @throws Exception */ public function goBack($sqArtefato, $sqPessoaDestino = NULL, $sqPessoaDestinoInterno = NULL) { $objUltTramiteArtefato = $this->getLastTramite($sqArtefato); if (!$objUltTramiteArtefato instanceof \Sgdoce\Model\Entity\VwUltimoTramiteArtefato) { throw new Exception(\Core_Registry::getMessage()->translate('MN163')); } $sqPessoa = $sqPessoaDestinoInterno ?: \Core_Integration_Sica_User::getPersonId(); $sqUnidadeOrg = $sqPessoaDestino ?: \Core_Integration_Sica_User::getUserUnit(); // RECEBE ARTEFATO. $entArtefato = $this->getEntityManager()->getPartialReference('app:Artefato', $objUltTramiteArtefato->getSqArtefato()); $entStatusTramite = $this->getEntityManager()->getPartialReference('app:StatusTramite', \Core_Configuration::getSgdoceStatusTramiteDevolvido()); $entPessoa = $this->getEntityManager()->getPartialReference('app:VwPessoa', $sqPessoa); $entPessoaDestino = $this->getEntityManager()->getPartialReference('app:VwPessoa', $sqUnidadeOrg); $entUnidadeOrg = $this->getEntityManager()->getPartialReference('app:VwUnidadeOrg', \Core_Integration_Sica_User::getUserUnit()); $newTramiteArtefato = $this->_newEntity('app:TramiteArtefato'); $artefatoDto = \Core_Dto::factoryFromData(array('sqArtefato' => $sqArtefato), 'search'); $nextNuTramite = $this->getNextTramiteNumber($artefatoDto); $newTramiteArtefato->setSqArtefato($entArtefato); $newTramiteArtefato->setSqPessoaTramite($entPessoa); $newTramiteArtefato->setSqUnidadeOrgTramite($entUnidadeOrg); $newTramiteArtefato->setSqPessoaDestino($entPessoaDestino); $newTramiteArtefato->setSqPessoaDestinoInterno($entPessoa); $newTramiteArtefato->setSqPessoaRecebimento($entPessoa); $newTramiteArtefato->setSqStatusTramite($entStatusTramite); $newTramiteArtefato->setNuTramite($nextNuTramite); $newTramiteArtefato->setDtTramite(new \Zend_Date(\Zend_Date::now())); $newTramiteArtefato->setDtDevolucao(new \Zend_Date(\Zend_Date::now())); $newTramiteArtefato->setInImpresso(true); $this->getEntityManager()->persist($newTramiteArtefato); $this->getEntityManager()->flush($newTramiteArtefato); return $newTramiteArtefato; }