/** * método para persistencia - Grau de Acesso * @param \Core_Dto_Search $dto */ public function alterarArtefato($dto) { $sqTipoDocumento = $this->_getRepository('app:TipoDocumento')->find($dto->getSqTipoDocumento()); $criteria = array('sqAssunto' => $dto->getSqAssunto(), 'sqTipoArtefato' => \Core_Configuration::getSgdoceTipoArtefatoDossie()); $sqTipoArtefatoAssunto = $this->_getRepository('app:TipoArtefatoAssunto')->findBy($criteria); $entity = $this->_getRepository('app:Artefato')->find($dto->getSqArtefato()); $entity->setNuArtefato($dto->getNuArtefato()); $entity->setSqTipoDocumento($sqTipoDocumento); $entity->setTxAssuntoComplementar($dto->getTxAssuntoComplementar()); $entity->setSqTipoArtefatoAssunto($this->_getRepository('app:TipoArtefatoAssunto')->find($sqTipoArtefatoAssunto[0]->getSqTipoArtefatoAssunto())); $entityArtefatoDossie = $this->_getRepository('app:ArtefatoDossie')->find($dto->getSqArtefato()); if (!$entityArtefatoDossie) { $entityArtefatoDossie = new \Sgdoce\Model\Entity\ArtefatoDossie(); } $entityArtefatoDossie->setNoTitulo($dto->getNoTitulo()); $entityArtefatoDossie->setTxObservacao($dto->getTxObservacao()); $entityArtefatoDossie->setSqArtefato($entity); $this->getEntityManager()->persist($entityArtefatoDossie); $this->getEntityManager()->flush($entityArtefatoDossie); //Persistir PessoaAssinanteArtefato $this->persistPessoaAssinanteArtefato($entity, $dto); self::_salvaOrigem($entity, $dto); // RN - Caso não exista Grau de Acesso ao Artefato sera por default publico(1) if (!$dto->getSqGrauAcesso()) { $data = array('sqGrauAcesso' => \Core_Configuration::getSgdoceGrauAcessoPublico()); $dto = new \Core_Dto_Mapping($data, array_keys($data)); $sqGrauAcesso = $this->_getRepository('app:GrauAcesso')->find($dto->getSqGrauAcesso()); } else { $sqGrauAcesso = $this->_getRepository('app:GrauAcesso')->find($dto->getSqGrauAcesso()); } // realizando a persistencia do Grau de Acesso $test = $this->persistGrauAcessoArtefato($entity, $sqGrauAcesso); $this->getEntityManager()->persist($entity); $this->getEntityManager()->flush($entity); }
/** * método que pesquisa dados da grid * @param array $params * @return \Doctrine\ORM\QueryBuilder */ public function listItemsTipoArtefato($tipo = NULL) { $tipoDocumento = \Core_Configuration::getSgdoceTipoArtefatoDocumento(); $tipoProcesso = \Core_Configuration::getSgdoceTipoArtefatoProcesso(); $tipoDossie = \Core_Configuration::getSgdoceTipoArtefatoDossie(); $tipoAmbos = \Core_Configuration::getSgdoceTipoArtefatoAmbos(); $queryBuilder = $this->_em->createQueryBuilder()->select('ta.sqTipoArtefato,ta.noTipoArtefato')->from('app:TipoArtefato', 'ta')->orderBy('ta.noTipoArtefato', 'ASC'); if ($tipo == 'documento') { $queryBuilder->where($queryBuilder->expr()->in('ta.sqTipoArtefato', array($tipoDocumento, $tipoProcesso))); } else { if ($tipo == 'material') { $queryBuilder->where($queryBuilder->expr()->in('ta.sqTipoArtefato', array($tipoDocumento, $tipoDossie))); } } $out = array(); $res = $queryBuilder->getQuery()->getArrayResult(); foreach ($res as $item) { $out[$item['sqTipoArtefato']] = $item['noTipoArtefato']; } return $out; }
/** * @param integer $sqArtefato * @return boolean */ public function canUpload($sqArtefato) { $artefatoEntity = $this->_getRepository('app:Artefato')->find($sqArtefato); if ($artefatoEntity instanceof ArtefatoEntity) { $tipoArtefatoAssuntoEntity = $artefatoEntity->getSqTipoArtefatoAssunto(); if ($tipoArtefatoAssuntoEntity instanceof TipoArtefatoAssuntoEntity) { $tipoArtefatoEntity = $tipoArtefatoAssuntoEntity->getSqTipoArtefato(); if ($tipoArtefatoEntity instanceof TipoArtefatoEntity) { $allowedList = array(\Core_Configuration::getSgdoceTipoArtefatoDossie(), \Core_Configuration::getSgdoceTipoArtefatoDocumento()); return in_array($tipoArtefatoEntity->getSqTipoArtefato(), $allowedList); } } } return false; }