/** * * @param $entity * @param \Core_Dto $dto */ public function preInsert($entity, $dto = NULL) { $dtoDuplicado = \Core_Dto::factoryFromData(array('sqArtefato' => $dto->getSqArtefato(), 'sqTipoAssuntoSolicitacao' => $dto->getSqTipoAssuntoSolicitacao(), 'sqPessoa' => \Core_Integration_Sica_User::getPersonId(), 'sqUnidadeOrg' => \Core_Integration_Sica_User::getUserUnit()), 'search'); $listResult = $this->_getRepository()->getSolicitacaoDuplicado($dtoDuplicado); if (count($listResult)) { throw new \Core_Exception_ServiceLayer(\Core_Registry::getMessage()->translate('MN206')); } # artefatos inconsistêntes não podem abrir solicitação de alguns tipos de solicitação $isInconsistent = $this->getServiceLocator()->getService('Artefato')->isInconsistent($dtoDuplicado); if ($isInconsistent && in_array($dto->getSqTipoAssuntoSolicitacao(), $this->getTipoAssuntoSolcOnlyConsistent())) { throw new \Core_Exception_ServiceLayer(\Core_Registry::getMessage()->translate('MN205')); } # se for exclusão de volume e só houver um volume cadastrado, não permite a criação if ($dto->getSqTipoAssuntoSolicitacao() == \Core_Configuration::getSgdoceTipoAssuntoSolicitacaoVolumeDeProcesso() && !$this->_getRepository('app:ProcessoVolume')->notTheOnlyVolume($dto->getSqArtefato())) { throw new \Core_Exception_ServiceLayer(\Core_Registry::getMessage()->translate('MN207')); } //Tira os Espaços do 'enter' para salvar com 500 caracteres $dsSolicitacao = $this->getServiceLocator()->getService('MinutaEletronica')->fixNewlines($entity->getDsSolicitacao()); $entity->setDsSolicitacao(!$dsSolicitacao ? NULL : $dsSolicitacao); $this->getEntityManager()->getConnection()->beginTransaction(); try { $entSqPessoa = $this->getEntityManager()->getPartialReference('app:VwPessoa', \Core_Integration_Sica_User::getPersonId()); $entSqUnidadeOrg = $this->getEntityManager()->getPartialReference('app:VwUnidadeOrg', \Core_Integration_Sica_User::getUserUnit()); $entTipoAssuntoSolicitacao = $this->_getRepository('app:TipoAssuntoSolicitacao')->find($dto->getSqTipoAssuntoSolicitacao()); $entity->setDtSolicitacao(\Zend_Date::now()); $entity->setSqPessoa($entSqPessoa); $entity->setSqUnidadeOrg($entSqUnidadeOrg); $entity->setSqTipoAssuntoSolicitacao($entTipoAssuntoSolicitacao); } catch (\Exception $e) { $this->getEntityManager()->getConnection()->rollback(); throw $e; } }
/** * SALVA HISTORICO. * * @param Sgdoce\Model\Entity\HistoricoArtefato $entHistoricoArtefato * * @return Sgdoce\Model\Entity\HistoricoArtefato */ public function save(\Core_Dto_Entity $entHistoricoArtefato) { $arrDto = array('sqPessoa' => \Core_Integration_Sica_User::getPersonId(), 'sqUnidade' => \Core_Integration_Sica_User::getUserUnit()); $objCDto = \Core_Dto::factoryFromData($arrDto, 'search'); $entVwPessoa = $this->getServiceLocator()->getService('Pessoa')->findbyPessoaCorporativo($objCDto); $entVwUnidOrg = $this->getServiceLocator()->getService('VwUnidadeOrg')->getDadosUnidade($objCDto); return $this->_save($entHistoricoArtefato->getSqArtefato(), $entVwUnidOrg, $entVwPessoa, $entHistoricoArtefato->getSqOcorrencia(), $entHistoricoArtefato->getTxDescricaoOperacao()); }
public function _factoryParamsExtrasSave($params) { $arrDto = array(); $arrDto['params'] = new Core_Dto_Search($params); if (isset($params['txJustificativa']) && $params['txJustificativa']) { $arrData = array('dtInclusao' => Zend_Date::now()->get('dd/MM/YYYY'), 'txJustificativa' => $params['txJustificativa'], 'sqPessoaAutora' => Core_Integration_Sica_User::getPersonId(), 'sqPessoaAutoriza' => $params['sqPessoaResponsavel']); $arrDto['sqCadastroSemCpf'] = Core_Dto::factoryFromData($arrData, 'entity', array('entity' => '\\Sgdoce\\Model\\Entity\\VwCadastroSemCpf')); } return $arrDto; }
/** * Método que popula os objetos para serem salvos no banco * @return void */ public function setOperationalEntity($entityName = NULL) { $userUnit = \Core_Integration_Sica_User::getUserUnit(); $personId = \Core_Integration_Sica_User::getPersonId(); $this->_data['sqUnidadeUsuario'] = $this->_getRepository('app:VwUnidadeOrg')->find($userUnit); $this->_data['sqPessoaCadastro'] = $this->_getRepository('app:VwPessoa')->find($personId); $this->_data['sqClassificacao'] = $this->_getRepository('app:Classificacao')->find($this->_data['sqClassificacao']); $this->_data['sqUnidadeOrg'] = $this->_getRepository('app:VwUnidadeOrg')->find($this->_data['sqUnidadeOrg']); $this->_data['stFechamento'] = false; $this->_data['dtCadastro'] = \Zend_Date::now(); $this->_data['stAtivo'] = true; }
/** * Método que obtém os dados para grid * @param \Core_Dto_Search $dtoSearch * @return array */ public function getResultList(\Core_Dto_Search $dtoSearch) { $this->view->perfil = Core_Integration_Sica_User::getUserProfile(); $dtoSearch->sqPessoa = Core_Integration_Sica_User::getPersonId(); $dtoSearch->sqUnidadeOrg = Core_Integration_Sica_User::getUserUnit(); $dtoSearch->sqTipoArtefato = $this->getRequest()->getParam('tipoArtefato') ? $this->getRequest()->getParam('tipoArtefato') : 1; $dtoSearch->search = $this->getRequest()->getParam('search') ? $this->getRequest()->getParam('search') : null; $this->view->isUserSgi = $this->_isUserSgi(); $this->view->isUserPro = $this->view->perfil == \Core_Configuration::getSgdocePerfilProtocolo(); $dtoUnidadeOrg = Core_Dto::factoryFromData(array('sqUnidadeOrg' => $dtoSearch->sqUnidadeOrg), 'search'); $dtoSearch->currentUnitHasNUP = $this->getService('VwUnidadeOrg')->hasNUP($dtoUnidadeOrg); $caixa = $this->_getParam('migration_box'); $dtoSearch->caixa = $caixa; $res = $this->getService()->getGrid($dtoSearch); return $res; }
/** * @param $entity * @param $dto */ public function preSave($entity, $dto = NULL, $entPrazo = NULL) { $sqPessoaDestino = $entity->getSqPessoaDestino(); if ($sqPessoaDestino && is_numeric($sqPessoaDestino)) { $entSqPessoaDestino = $this->getEntityManager()->getPartialReference('app:VwPessoa', $entity->getSqPessoaDestino()); $entity->setSqPessoaDestino($entSqPessoaDestino); } else { if ($sqPessoaDestino instanceof \Sgdoce\Model\Entity\VwPessoa) { if ($entity->getSqPessoaDestino() && is_null($entity->getSqPessoaDestino()->getSqPessoa())) { $entity->setSqPessoaDestino(NULL); } } else { $entity->setSqPessoaDestino(NULL); } } if (is_null($entity->getDtCadastro())) { $entity->setDtCadastro(\Zend_Date::now()); } $sqPrazoPai = $entity->getSqPrazoPai(); if (!empty($sqPrazoPai) && is_numeric($sqPrazoPai)) { $entPrazoPai = $this->getEntityManager()->getPartialReference('app:Prazo', $sqPrazoPai); $entity->setSqPrazoPai($entPrazoPai); } $entSqUnidadeOrgPessoa = $this->getEntityManager()->getPartialReference('app:VwUnidadeOrg', \Core_Integration_Sica_User::getUserUnit()); $entSqPessoa = $this->getEntityManager()->getPartialReference('app:VwPessoa', \Core_Integration_Sica_User::getPersonId()); if ($dto->getIsResposta()) { $entity->setDtResposta(\Zend_Date::now()); $entity->setSqUnidadeOrgPessoaResposta($entSqUnidadeOrgPessoa); $entity->setSqPessoaResposta($entSqPessoa); $entity->setDtPrazo($entPrazo->getDtPrazo()); $entity->setTxSolicitacao($entPrazo->getTxSolicitacao()); if ($dto->getSqArtefatoResposta()) { $entArtefatoResposta = $this->getEntityManager()->getPartialReference('app:Artefato', (int) $dto->getSqArtefatoResposta()); $entity->setSqArtefatoResposta($entArtefatoResposta); } else { $entity->setSqArtefatoResposta(NULL); } $entSqUnidadeOrgPessoaPrazo = $this->getEntityManager()->getPartialReference('app:VwUnidadeOrg', $entPrazo->getSqUnidadeOrgPessoaPrazo()->getSqUnidadeOrg()); $entSqPessoaPrazo = $this->getEntityManager()->getPartialReference('app:VwPessoa', $entPrazo->getSqPessoaPrazo()->getSqPessoa()); $entity->setSqUnidadeOrgPessoaPrazo($entSqUnidadeOrgPessoaPrazo); $entity->setSqPessoaPrazo($entSqPessoaPrazo); } else { $entity->setSqUnidadeOrgPessoaPrazo($entSqUnidadeOrgPessoa); $entity->setSqPessoaPrazo($entSqPessoa); } }
/** * Realiza consulta sobre serviço infoconv */ public function serviceInfoconvAction() { $criteria = array(); try { if ($this->_getParam('nuCnpj')) { $cnpj = Zend_Filter::filterStatic($this->_getParam('nuCnpj'), 'Digits'); $result = $this->getServiceLocator()->getService('VwPessoa')->getDataInfoconvBy($cnpj, 'cnpj'); $result = \Core_Integration_Abstract_Soap::xmlToArray($result); $criteria['code'] = $result['errocode']; if ('failure' == $result['status']) { throw new \Exception($result['response']); } $criteria['noPessoa'] = str_replace("&", "&", $result['response']['nome_empresarial']); $criteria['noFantasia'] = $result['response']['nome_fantasia'] ? str_replace("&", "&", $result['response']['nome_fantasia']) : ''; $natJurInfoconv = $result['response']['natureza_juridica']; $naturezaJuridicaPai = trim(substr($natJurInfoconv, 0, 1) . '00'); $naturezaJuridica = trim(substr($natJurInfoconv, 0, 3)); $criteria['sqNaturezaJuridicaPai'] = $naturezaJuridicaPai > 0 ? $naturezaJuridicaPai : ''; $criteria['sqNaturezaJuridica'] = $naturezaJuridica > 0 ? $naturezaJuridica : ''; } else { $cpf = Zend_Filter::filterStatic($this->_getParam('nuCpf'), 'Digits'); $result = $this->getServiceLocator()->getService('VwPessoa')->getDataInfoconvBy($cpf, 'cpf'); $result = \Core_Integration_Abstract_Soap::xmlToArray($result); $criteria['code'] = $result['errocode']; if ('failure' == $result['status']) { throw new \Exception($result['response']); } $criteria['noPessoa'] = $result['response']['nome'] ? $result['response']['nome'] : ''; $criteria['dtNascimento'] = $result['response']['data_nascimento'] ? $result['response']['data_nascimento'] : ''; $criteria['noMae'] = $result['response']['nome_mae'] ? trim($result['response']['nome_mae']) : ''; $criteria['nacionalidade'] = (bool) $result['response']['estrangeiro'] ? 2 : 1; $criteria['sqPaisNaturalidade'] = (int) $result['response']['codigo_pais_exterior']; $criteria['noPaisNaturalidade'] = $result['response']['nome_pais_exterior']; } $criteria['dtIntegracaoInfoconv'] = Zend_Date::now()->toString(); $criteria['personId'] = trim(\Core_Integration_Sica_User::getPersonId()); $criteria['success'] = true; } catch (Exception $e) { $criteria['response'] = $e->getMessage(); $criteria['success'] = false; } $this->_helper->json($criteria); die; }
/** * @param type $entity * @param type $dto * @param type $objArtProDto */ public function postSave($entity, $dto = null, $objArtProDto = null) { $retorno = false; $this->getEntityManager()->beginTransaction(); $sqPessoaCorporativo = \Core_Integration_Sica_User::getPersonId(); try { // salva o artefato_processo $objArtProDto->setSqArtefato($entity); $this->saveArtefatoProcesso($objArtProDto); $arrPesArtDto = array('entity' => 'Sgdoce\\Model\\Entity\\PessoaArtefato', 'mapping' => array('sqPessoaFuncao' => 'Sgdoce\\Model\\Entity\\PessoaFuncao', 'sqPessoaSgdoce' => 'Sgdoce\\Model\\Entity\\PessoaSgdoce', 'sqArtefato' => 'Sgdoce\\Model\\Entity\\Artefato')); $sqPessoaSgdoce = $this->_getRepository('app:PessoaSgdoce')->findBySqPessoaCorporativo($sqPessoaCorporativo); if (empty($sqPessoaSgdoce)) { $filter = new \Zend_Filter_Digits(); $data['sqPessoaCorporativo'] = $this->_getRepository('app:VwPessoa')->find($sqPessoaCorporativo); $dtoPessoaSearch = \Core_Dto::factoryFromData($data, 'search'); $cpfCnpjPassaportUnfiltered = $this->getServiceLocator()->getService('VwPessoa')->returnCpfCnpjPassaporte($dtoPessoaSearch); $cpfCnpjPassaport = $filter->filter($cpfCnpjPassaportUnfiltered); $noPessoaCorporativo = $data['sqPessoaCorporativo']->getNoPessoa(); $this->addPessoaSgdoce($sqPessoaCorporativo, $noPessoaCorporativo, $cpfCnpjPassaport); $sqPessoaSgdoce = $this->_getRepository('app:PessoaSgdoce')->findBySqPessoaCorporativo($sqPessoaCorporativo); } $arrParams = array(); $arrParams['sqArtefato'] = $entity->getSqArtefato(); $arrParams['sqPessoaFuncao'] = \Core_Configuration::getSgdocePessoaFuncaoAutor(); $arrParams['sqPessoaSgdoce'] = $sqPessoaSgdoce[0]->getSqPessoaSgdoce(); $objPessoArtefato = $this->getServiceLocator()->getService('PessoaArtefato')->findBy($arrParams); if (!count($objPessoArtefato)) { $objPessoaArtefatoDto = \Core_Dto::factoryFromData($arrParams, 'entity', $arrPesArtDto); $this->getServiceLocator()->getService('PessoaArtefato')->savePessoaArtefato($objPessoaArtefatoDto); } $this->_salvaOrigem($entity, $dto); // SALVA GRAU DE ACESSO. if ($dto->getSqGrauAcesso()) { $grauAcesso = $this->getEntityManager()->getPartialReference('app:GrauAcesso', $dto->getSqGrauAcesso()); $this->getServiceLocator()->getService('GrauAcessoArtefato')->saveGrauAcessoArtefato($entity, $grauAcesso); } /* * ##### VOLUME ##### * * só é postado no create * */ if ($dto->getDataVolume()) { $dataIntessado = $dto->getDataVolume(); $sqPessoaAbertura = \Core_Integration_Sica_User::getPersonId(); $sqUnidadeOrgAbertura = \Core_Integration_Sica_User::getUserUnit(); foreach ($dataIntessado->getApi() as $method) { $line = $dataIntessado->{$method}(); if (!(int) $line->getNuVolume()) { throw new \Core_Exception_ServiceLayer('Volume não informado.'); } $nuFolhaFinal = (int) $line->getNuFolhaFinal(); $dtEncerramento = null; if (!empty($nuFolhaFinal)) { $dtEncerramento = \Zend_Date::now(); } else { $nuFolhaFinal = null; } $add = $this->getServiceLocator()->getService('ProcessoVolume')->addVolume(array('nuVolume' => (int) $line->getNuVolume(), 'nuFolhaInicial' => (int) $line->getNuFolhaInicial(), 'nuFolhaFinal' => $nuFolhaFinal, 'sqArtefato' => $entity->getSqArtefato(), 'sqPessoa' => $sqPessoaAbertura, 'sqUnidadeOrg' => $sqUnidadeOrgAbertura, 'dtAbertura' => \Zend_Date::now(), 'dtEncerramento' => $dtEncerramento)); if (!$add) { throw new \Core_Exception_ServiceLayer('Erro ao adicionar volume.'); } } } /* * ##### INTERESSADO ##### * * só é postado no create, em caso de edit os interessados são * manutenidos no proprio formulario * */ if ($dto->getDataInteressado()) { $dataIntessado = $dto->getDataInteressado(); foreach ($dataIntessado->getApi() as $method) { $line = $dataIntessado->{$method}(); //metodo foi copiado e adaptado de Artefato_PessoaController::addInteressadoAction() $add = $this->getServiceLocator()->getService('Documento')->addInteressado(array('noPessoa' => $line->getNoPessoa(), 'unidFuncionario' => $line->getUnidFuncionario(), 'sqPessoaCorporativo' => $line->getSqPessoaCorporativo(), 'sqTipoPessoa' => $line->getSqTipoPessoa(), 'sqPessoaFuncao' => $line->getSqPessoaFuncao(), 'sqArtefato' => $entity->getSqArtefato())); if (!$add) { throw new \Core_Exception_ServiceLayer($line->getNoPessoa() . ' já é um interessado deste processo.'); } } } /* * ##### REFERÊNCIA (VINCULO) ##### * * só é postado no create, em caso de edit os vinculos são * manutenidos no proprio formulario * */ if ($dto->getDataVinculo()) { //só é postado no create $dataVinculo = $dto->getDataVinculo(); foreach ($dataVinculo->getApi() as $method) { $gridLine = $dataVinculo->{$method}(); //metodo foi copiado e adaptado de Artefato_DocumentoController::addDocumentoEletronicoAction() $add = $this->getServiceLocator()->getService('Documento')->addVinculo(array('nuDigital' => $gridLine->getNuDigital(), 'nuArtefatoVinculacao' => $gridLine->getNuArtefatoVinculacao(), 'sqTipoArtefato' => $gridLine->getSqTipoArtefato(), 'sqArtefato' => $entity->getSqArtefato(), 'tipoVinculo' => \Core_Configuration::getSgdoceTipoVinculoArtefatoReferencia(), 'inOriginal' => $gridLine->getInOriginal())); if (!$add) { $msg = "A digital <b>{$gridLine->getNuDigital()}</b> já esta vinculada a este documento"; if ($gridLine->getSqTipoArtefato() == \Core_Configuration::getSgdoceTipoArtefatoProcesso()) { $msg = "O processo <b>{$gridLine->getNuArtefatoVinculacao()}</b> já esta vinculado a este processo."; } throw new \Core_Exception_ServiceLayer($msg); } } } // #HistoricoArtefato::save(); $dtAcao = new \Zend_Date(\Zend_Date::now()); $sqOcorrencia = 0; if ($this->_firstTramite) { $sqOcorrencia = \Core_Configuration::getSgdoceSqOcorrenciaCadastrar(); $message = "Processo cadastrado com sucesso"; $strHMessage = sprintf(\Core_Registry::getMessage()->translate('MH007'), \Core_Integration_Sica_User::getUserName(), $dtAcao->get(\Zend_Date::DATETIME_MEDIUM)); } else { $sqOcorrencia = \Core_Configuration::getSgdoceSqOcorrenciaAlterar(); $message = "Processo alterado com sucesso"; if ($dto->getIsAutuacao()) { $message = "Processo autuado com sucesso!"; } $strHMessage = sprintf(\Core_Registry::getMessage()->translate('MH008'), \Core_Integration_Sica_User::getUserName(), $dtAcao->get(\Zend_Date::DATETIME_MEDIUM)); } $this->getServiceLocator()->getService('HistoricoArtefato')->registrar($entity->getSqArtefato(), $sqOcorrencia, $strHMessage); if ($this->_firstTramite) { $this->getServiceLocator()->getService('TramiteArtefato')->insertFirstTramite($entity->getSqArtefato()); } $this->getMessaging()->addSuccessMessage($message, "User"); $retorno = $this->getEntityManager()->commit(); } catch (\Exception $objException) { $this->getEntityManager()->rollback(); $this->getMessaging()->addErrorMessage("[" . $objException->getCode() . "] " . $objException->getMessage(), "User"); $retorno = $objException; } $this->getMessaging()->dispatchPackets(); return $retorno; }
/** * @param type $dto * @return type */ protected function _inserirTramite($dto) { $this->getEntityManager()->getConnection()->beginTransaction(); try { $objUltTramiteArtefato = $this->getServiceLocator()->getService('TramiteArtefato')->findBy(array('sqArtefato' => $dto->getSqArtefato())); $objUltTramiteArtefato = current($objUltTramiteArtefato); $entArtefato = $this->getEntityManager()->getPartialReference('app:Artefato', $dto->getSqArtefato()); if ($objUltTramiteArtefato instanceof \Sgdoce\Model\Entity\TramiteArtefato) { // RECEBE ARTEFATO. $entStatusTramite = $this->getEntityManager()->getPartialReference('app:StatusTramite', \Core_Configuration::getSgdoceStatusTramiteRecebido()); $entPessoa = $this->getEntityManager()->getPartialReference('app:VwPessoa', \Core_Integration_Sica_User::getPersonId()); $entPessoaDestino = $this->getEntityManager()->getPartialReference('app:VwPessoa', \Core_Integration_Sica_User::getUserUnit()); $entUnidadeOrg = $this->getEntityManager()->getPartialReference('app:VwUnidadeOrg', \Core_Integration_Sica_User::getUserUnit()); $newTramiteArtefato = $this->_newEntity('app:TramiteArtefato'); $artefatoDto = \Core_Dto::factoryFromData(array('sqArtefato' => $dto->getSqArtefato()), 'search'); $nextNuTramite = $this->getServiceLocator()->getService('TramiteArtefato')->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(\Zend_Date::now()); $newTramiteArtefato->setDtRecebimento(\Zend_Date::now()->addSecond(1)); $newTramiteArtefato->setInImpresso(true); $this->getEntityManager()->persist($newTramiteArtefato); $this->getEntityManager()->flush($newTramiteArtefato); } else { $newTramiteArtefato = $this->getServiceLocator()->getService('TramiteArtefato')->insertFirstTramite($dto->getSqArtefato()); } $this->getEntityManager()->getConnection()->commit(); } catch (\Exception $e) { $this->getEntityManager()->getConnection()->rollback(); throw $e; } return $newTramiteArtefato; }
/** * @param type $entity * @param type $dto * @param type $objArtProDto */ public function postSave($entity, $dto = null, $objArtProDto = null) { $retorno = false; $this->getEntityManager()->beginTransaction(); $sqPessoaCorporativo = \Core_Integration_Sica_User::getPersonId(); try { // salva o artefato_processo $objArtProDto->setSqArtefato($entity); $this->saveArtefatoProcesso($objArtProDto); $arrPesArtDto = array('entity' => 'Sgdoce\\Model\\Entity\\PessoaArtefato', 'mapping' => array('sqPessoaFuncao' => 'Sgdoce\\Model\\Entity\\PessoaFuncao', 'sqPessoaSgdoce' => 'Sgdoce\\Model\\Entity\\PessoaSgdoce', 'sqArtefato' => 'Sgdoce\\Model\\Entity\\Artefato')); $sqPessoaSgdoce = $this->_getRepository('app:PessoaSgdoce')->findBySqPessoaCorporativo($sqPessoaCorporativo); if (empty($sqPessoaSgdoce)) { $filter = new \Zend_Filter_Digits(); $data['sqPessoaCorporativo'] = $this->_getRepository('app:VwPessoa')->find($sqPessoaCorporativo); $dtoPessoaSearch = \Core_Dto::factoryFromData($data, 'search'); $cpfCnpjPassaportUnfiltered = $this->getServiceLocator()->getService('VwPessoa')->returnCpfCnpjPassaporte($dtoPessoaSearch); $cpfCnpjPassaport = $filter->filter($cpfCnpjPassaportUnfiltered); $noPessoaCorporativo = $data['sqPessoaCorporativo']->getNoPessoa(); $this->addPessoaSgdoce($sqPessoaCorporativo, $noPessoaCorporativo, $cpfCnpjPassaport); $sqPessoaSgdoce = $this->_getRepository('app:PessoaSgdoce')->findBySqPessoaCorporativo($sqPessoaCorporativo); } $arrParams = array(); $arrParams['sqArtefato'] = $entity->getSqArtefato(); $arrParams['sqPessoaFuncao'] = \Core_Configuration::getSgdocePessoaFuncaoAutor(); $arrParams['sqPessoaSgdoce'] = $sqPessoaSgdoce[0]->getSqPessoaSgdoce(); $objPessoArtefato = $this->getServiceLocator()->getService('PessoaArtefato')->findBy($arrParams); if (!count($objPessoArtefato)) { $objPessoaArtefatoDto = \Core_Dto::factoryFromData($arrParams, 'entity', $arrPesArtDto); $this->getServiceLocator()->getService('PessoaArtefato')->savePessoaArtefato($objPessoaArtefatoDto); } // Autor $this->_arInconsistencia[3] = 't'; $this->_salvaOrigem($entity, $dto); $this->_arInconsistencia[0] = 't'; // SALVA GRAU DE ACESSO. if ($dto->getSqGrauAcesso()) { $grauAcesso = $this->getEntityManager()->getPartialReference('app:GrauAcesso', $dto->getSqGrauAcesso()); $this->getServiceLocator()->getService('GrauAcessoArtefato')->saveGrauAcessoArtefato($entity, $grauAcesso); } /* * ##### VOLUME ##### * * só é postado no create * */ if ($dto->getDataVolume()) { $dataIntessado = $dto->getDataVolume(); $sqPessoaAbertura = \Core_Integration_Sica_User::getPersonId(); $sqUnidadeOrgAbertura = \Core_Integration_Sica_User::getUserUnit(); foreach ($dataIntessado->getApi() as $method) { $line = $dataIntessado->{$method}(); if (!(int) $line->getNuVolume()) { throw new \Core_Exception_ServiceLayer('Volume não informado.'); } $nuFolhaFinal = (int) $line->getNuFolhaFinal(); $dtEncerramento = null; if (!empty($nuFolhaFinal)) { $dtEncerramento = \Zend_Date::now(); } else { $nuFolhaFinal = null; } $add = $this->getServiceLocator()->getService('ProcessoVolume')->addVolume(array('nuVolume' => (int) $line->getNuVolume(), 'nuFolhaInicial' => (int) $line->getNuFolhaInicial(), 'nuFolhaFinal' => $nuFolhaFinal, 'sqArtefato' => $entity->getSqArtefato(), 'sqPessoa' => $sqPessoaAbertura, 'sqUnidadeOrg' => $sqUnidadeOrgAbertura, 'dtAbertura' => \Zend_Date::now(), 'dtEncerramento' => $dtEncerramento)); if (!$add) { throw new \Core_Exception_ServiceLayer('Erro ao adicionar volume.'); } } } /* * ##### INTERESSADO ##### * * só é postado no create, em caso de edit os interessados são * manutenidos no proprio formulario * */ if ($dto->getDataInteressado()) { $dataIntessado = $dto->getDataInteressado(); foreach ($dataIntessado->getApi() as $method) { $line = $dataIntessado->{$method}(); //metodo foi copiado e adaptado de Artefato_PessoaController::addInteressadoAction() $add = $this->getServiceLocator()->getService('Documento')->addInteressado(array('noPessoa' => $line->getNoPessoa(), 'unidFuncionario' => $line->getUnidFuncionario(), 'sqPessoaCorporativo' => $line->getSqPessoaCorporativo(), 'sqTipoPessoa' => $line->getSqTipoPessoa(), 'sqPessoaFuncao' => $line->getSqPessoaFuncao(), 'sqArtefato' => $entity->getSqArtefato())); if (!$add) { throw new \Core_Exception_ServiceLayer($line->getNoPessoa() . ' já é um interessado deste processo.'); } $this->_arInconsistencia[2] = 't'; } } else { $dtoInteressado = \Core_Dto::factoryFromData(array('sqArtefato' => $entity->getSqArtefato()), 'search'); $nuInteressados = $this->getServiceLocator()->getService('PessoaInterassadaArtefato')->countInteressadosArtefato($dtoInteressado); if ($nuInteressados['nu_interessados'] > 0) { $this->_arInconsistencia[2] = 't'; } else { throw new \Core_Exception_ServiceLayer(\Core_Registry::getMessage()->translate('MN176')); } } /* * ##### REFERÊNCIA (VINCULO) ##### * * só é postado no create, em caso de edit os vinculos são * manutenidos no proprio formulario * */ if ($dto->getDataVinculo()) { //só é postado no create $dataVinculo = $dto->getDataVinculo(); foreach ($dataVinculo->getApi() as $method) { $gridLine = $dataVinculo->{$method}(); //metodo foi copiado e adaptado de Artefato_DocumentoController::addDocumentoEletronicoAction() $add = $this->getServiceLocator()->getService('Documento')->addVinculo(array('nuDigital' => $gridLine->getNuDigital(), 'nuArtefatoVinculacao' => $gridLine->getNuArtefatoVinculacao(), 'sqTipoArtefato' => $gridLine->getSqTipoArtefato(), 'sqArtefato' => $entity->getSqArtefato(), 'tipoVinculo' => \Core_Configuration::getSgdoceTipoVinculoArtefatoReferencia(), 'inOriginal' => $gridLine->getInOriginal())); if (!$add) { $msg = "A digital <b>{$gridLine->getNuDigital()}</b> já esta vinculada a este documento"; if ($gridLine->getSqTipoArtefato() == \Core_Configuration::getSgdoceTipoArtefatoProcesso()) { $msg = "O processo <b>{$gridLine->getNuArtefatoVinculacao()}</b> já esta vinculado a este processo."; } throw new \Core_Exception_ServiceLayer($msg); } } } // #HistoricoArtefato::save(); $dtAcao = new \Zend_Date(\Zend_Date::now()); #Datas default $this->_arInconsistencia[5] = 't'; # Se estiver tudo corrigido, insere tramite se tiver que inserir. # existe um parametro no form que indica se o tramite deve ser inserido # pois o documento já poderá estar na area de trabalho da pessoa (neste caso nao insere) if (!in_array('f', $this->_arInconsistencia) && $dto->getPersistTramite()) { $this->getServiceLocator()->getService('VinculoMigracao')->setArtefatoCorrigido($entity->getSqArtefato()); } else { $this->_arInconsistencia[6] = 't'; } $arInconsistencia = implode(",", $this->_arInconsistencia); $arInconsistencia = "{" . $arInconsistencia . "}"; $entity->setArInconsistencia($arInconsistencia); // persistindo informacao $this->getEntityManager()->persist($entity); $this->getEntityManager()->flush($entity); // #HistoricoArtefato::save(); $strMessage = $this->getServiceLocator()->getService('HistoricoArtefato')->getMessage('MH022'); $this->getServiceLocator()->getService('HistoricoArtefato')->registrar($entity->getSqArtefato(), \Core_Configuration::getSgdoceSqOcorrenciaCorrigirMigracao(), $strMessage); $retorno = $this->getEntityManager()->commit(); } catch (\Exception $objException) { $this->getEntityManager()->rollback(); $this->getMessaging()->addErrorMessage("[" . $objException->getCode() . "] " . $objException->getMessage(), "User"); $retorno = $objException; } $this->getMessaging()->dispatchPackets(); return $retorno; }
/** * @return void */ protected function editActionExtension() { $params = $this->_getAllParams(); $dtoCheckEdit = Core_Dto::factoryFromData(array('sqArtefato' => $params['id'], 'sqPessoa' => \Core_Integration_Sica_User::getPersonId()), 'search'); //verifica se o artefato pode ser editado // if (!$this->getService('AreaTrabalho')->canEditArtefact($dtoCheckEdit)) { // $this->getMessaging()->addErrorMessage( // sprintf(\Core_Registry::getMessage()->translate('MN154'), // $this->view->data->getNuDigital()->getNuEtiqueta())); // $this->_redirect('/artefato/area-trabalho'); // } $params['sqArtefato'] = $params['id']; $dtoSearch = Core_Dto::factoryFromData($params, 'search'); $this->view->redirect = $params['view']; $this->view->user = $this->getUser(); $this->getCombo(); $this->view->isLoteEletronico = false; $this->view->eDigital = $this->view->data->getNuDigital(); if ($this->view->data->getSqTipoDocumento()) { $this->view->isSIC = $this->view->data->getSqTipoDocumento()->getSqTipoDocumento() == \Core_Configuration::getSgdoceTipoDocumentoSic(); } else { $this->view->isSIC = false; } $this->view->docSIC = $this->view->data->getSqTipoDocumento(); $dtoSgdoceFisico = \Core_Dto::factoryFromData(array('nuDigital' => $this->view->data->getNuDigital()->getNuEtiqueta(), 'sqArtefato' => $this->view->data->getSqArtefato()), 'search'); $this->view->dataSgdocFisico = $this->getService()->getDataSgdocFisico($dtoSgdoceFisico); $this->view->dataSgdocFisico = current($this->view->dataSgdocFisico); $this->view->listProcedenciaFisico = array('I' => 'Interno', 'E' => 'Externo'); $this->view->nuInteressados = $this->getService('PessoaInterassadaArtefato')->countInteressadosArtefatoValido($dtoSgdoceFisico); $dto = Core_Dto::factoryFromData(array('sqPessoaCorporativo' => \Core_Configuration::getSgdoceUnidadeCgu(), 'sqTipoPessoa' => \Core_Configuration::getCorpTipoPessoaUnidadeExt()), 'search'); $this->view->CGU = !$this->view->isSIC ? null : $this->getService('Pessoa')->getPessoa($dto); // retorno de valor para a view $this->view->tipoNavegacao = $dtoSearch->getA(); $this->view->dataGrauAcesso = $this->getService('GrauAcessoArtefato')->getGrauAcessoArtefato($dtoSearch); $criteria = array('sqArtefato' => $params['sqArtefato'], 'sqPessoaFuncao' => \Core_Configuration::getSgdocePessoaFuncaoAssinatura()); $this->view->assinanteArtefatoExterno = $this->getService('PessoaArtefato')->findOneBy($criteria); $this->view->assinanteArtefatoInterno = $this->getService('PessoaAssinanteArtefato')->getAssinanteArtefato($dtoSearch); $this->view->dadosOrigem = self::_dadosPessoaDocumento($dtoSearch, \Core_Configuration::getSgdocePessoaFuncaoOrigem()); $this->view->dadosDestino = self::_dadosPessoaDocumento($dtoSearch, \Core_Configuration::getSgdocePessoaFuncaoDestinatario()); $this->view->result = $this->getService('AnexoArtefato')->listGridAnexos($dtoSearch); if ($this->view->dadosDestino) { $sqTipoPessoa = $this->view->dadosDestino[0]->getSqPessoaSgdoce()->getSqTipoPessoa()->getSqTipoPessoa(); if ($sqTipoPessoa == \Core_Configuration::getCorpTipoPessoaFisica()) { $this->view->nacionalidadeDestino = $this->returnNacionalidade($this->view->dadosDestino); } } if ($this->view->dadosOrigem) { $sqTipoPessoa = $this->view->dadosOrigem[0]->getSqPessoaSgdoce()->getSqTipoPessoa()->getSqTipoPessoa(); if ($sqTipoPessoa == \Core_Configuration::getCorpTipoPessoaFisica()) { $this->view->nacionalidadeOrigem = $this->returnNacionalidade($this->view->dadosOrigem); } } if ($this->view->data->getSqTipoArtefatoAssunto()->getSqTipoArtefatoAssunto()) { $this->_messageEdit = 'MN043'; #mensagem de alteracao } if (!$this->view->isSIC) { $procedenciaInterno = isset($this->view->dadosOrigem[1]) ? $this->view->dadosOrigem[1] : NULL; //1 = interno -- 3 = externo if ($procedenciaInterno == 1) { $disabledProcedencia = 'chekProcedenciaExterno'; } else { $disabledProcedencia = 'chekProcedenciaInterno'; } $this->view->disabledProcedencia = $disabledProcedencia; } }
/** */ public function searchArtefatoAction() { $this->_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender(TRUE); $params = $this->_getAllParams(); if (isset($params['extraParam']) && $params['extraParam'] != '') { $params['sqTipoArtefato'] = $params['extraParam']; } else { $params['sqTipoArtefato'] = \Core_Configuration::getSgdoceTipoArtefatoDocumento(); } $params['sqUnidadeOrg'] = \Core_Integration_Sica_User::getUserUnit(); $params['sqPessoa'] = \Core_Integration_Sica_User::getPersonId(); $dtoSearch = Core_Dto::factoryFromData($params, 'search'); $this->getHelper('json')->sendJson($this->getService()->comboArtefato($dtoSearch)); }
/** * método que faz pesquisa no banco para preencher o autocomplete * @return json */ public function findNumeroDigitalAction() { $params = $this->_getAllParams(); $term = $params['query']; $params['usuario'] = Core_Integration_Sica_User::getPersonId(); $params['sqTipoArtefato'] = $params['extraParam']; $dto = Core_Dto::factoryFromData($params, 'search'); $res = $this->getService()->findNumeroDigital($term, $dto, 10); $this->_helper->json($res); }
/** * Salva Justificatva * @param type $entity * @param type $dto */ public function postInsert($entity, $dto = NULL) { $arrValues = array('sqPessoaAutora' => \Core_Integration_Sica_User::getPersonId(), 'sqPessoaAutoriza' => \Core_Integration_Sica_User::getPersonId(), 'sqPessoa' => $entity, 'txJustificativa' => $dto->getTxJustificativa(), 'dtInclusao' => \Zend_Date::now()->get('dd/MM/YYYY')); try { $result = $this->saveWs('app:CadastroSemCpf', 'libCorpSaveCadastroSemCPF', $arrValues); if (!$result) { $this->getMessaging()->addErrorMessage('Erro na operação (libCorpSaveCadastroSemCPF).'); throw new \Core_Exception_ServiceLayer_Verification(); } } catch (\Exception $exc) { throw new \Core_Exception_ServiceLayer_Verification(); } }
public function getPersonId() { return \Core_Integration_Sica_User::getPersonId(); }
/** * @return boolean */ public function modalPecaProcessoAction() { $this->getHelper('layout')->disableLayout(); $this->view->sqArtefato = $this->_getParam('sqArtefato'); $this->view->sqPessoaLogada = Core_Integration_Sica_User::getPersonId(); $this->_helper->layout->disableLayout(); }
public function update(array $postData) { $configs = \Core_Registry::get('configs'); if (!$postData['sqPessoaAssinaturaAbertura'] && $postData['sqPessoaAssinaturaAberturaBD_hidden']) { $postData['sqPessoaAssinaturaAbertura'] = $postData['sqPessoaAssinaturaAberturaBD_hidden']; } if (!$postData['sqPessoaAssinaturaEncerramento'] && $postData['sqPessoaAssinaturaEncerramentoBD_hidden']) { $postData['sqPessoaAssinaturaEncerramento'] = $postData['sqPessoaAssinaturaEncerramentoBD_hidden']; } $dtoVolume = \Core_Dto::factoryFromData($postData, 'search'); if ($dtoVolume->getNuFolhaFinal() && (int) $dtoVolume->getNuFolhaFinal() <= (int) $dtoVolume->getNuFolhaInicial()) { throw new \Core_Exception_ServiceLayer('A Folha Final deve ser maior que a Folha Inicial.'); } if ((int) $dtoVolume->getNuFolhaFinal() - (int) $dtoVolume->getNuFolhaInicial() > (int) $configs['volume']['maxPagePerVolume']) { throw new \Core_Exception_ServiceLayer('Volume não pode ter mais de 200 páginas.'); } $hasDemandaAlterarVolume = $this->getServiceLocator()->getService('Solicitacao')->hasDemandaAbertaByAssuntoPessoaResponsavel(\Core_Dto::factoryFromData(array('sqArtefato' => $dtoVolume->getSqArtefato(), 'sqTipoAssuntoSolicitacao' => \Core_Configuration::getSgdoceTipoAssuntoSolicitacaoVolumeDeProcesso()), 'search')); $entVolume = $this->_getRepository()->find($dtoVolume->getSqVolume()); if (\Zend_Registry::get('isUserSgi') && !$hasDemandaAlterarVolume && $this->_checkArtefatoLastTramite($entVolume) < 1) { throw new \Core_Exception_ServiceLayer(\Core_Registry::getMessage()->translate('MN147')); } $entArtefato = $this->getEntityManager()->getPartialReference('app:Artefato', $dtoVolume->getSqArtefato()); $entPessAbertura = $this->getEntityManager()->getPartialReference('app:VwPessoa', $dtoVolume->getSqPessoaAbertura()); $entUOrgAbertura = $this->getEntityManager()->getPartialReference('app:VwUnidadeOrg', $dtoVolume->getSqUnidadeOrgAbertura()); $entPessAssAbertura = $this->getEntityManager()->getPartialReference('app:VwPessoa', $dtoVolume->getSqPessoaAssinaturaAbertura()); $sqPessoaAbertura = \Core_Integration_Sica_User::getPersonId(); $sqUnidadeOrgAbertura = \Core_Integration_Sica_User::getUserUnit(); $entVolume->setSqVolume($dtoVolume->getSqVolume())->setSqArtefato($entArtefato)->setNuVolume($dtoVolume->getNuVolume())->setNuFolhaInicial($dtoVolume->getNuFolhaInicial())->setDtAbertura($dtoVolume->getDtAbertura())->setSqPessoaAbertura($entPessAbertura)->setSqUnidadeOrgAbertura($entUOrgAbertura)->setSqPessoaAssinaturaAbertura($entPessAssAbertura); if ($dtoVolume->getSqCargoAssinaturaAbertura()) { $entCargoAbertura = $this->getEntityManager()->getPartialReference('app:VwCargo', $dtoVolume->getSqCargoAssinaturaAbertura()); $entVolume->setSqCargoAssinaturaAbertura($entCargoAbertura)->setSqFuncaoAssinaturaAbertura(NULL); } else { $entFuncaoAbertura = $this->getEntityManager()->getPartialReference('app:VwFuncao', $dtoVolume->getSqFuncaoAssinaturaAbertura()); $entVolume->setSqFuncaoAssinaturaAbertura($entFuncaoAbertura)->setSqCargoAssinaturaAbertura(NULL); } if ($dtoVolume->getNuFolhaFinal()) { $entPessEncerramento = $this->getEntityManager()->getPartialReference('app:VwPessoa', \Core_Integration_Sica_User::getPersonId()); $entUOrgEncerramento = $this->getEntityManager()->getPartialReference('app:VwUnidadeOrg', (int) \Core_Integration_Sica_User::getUserUnit()); $entPessAssEncerramento = $this->getEntityManager()->getPartialReference('app:VwPessoa', $dtoVolume->getSqPessoaAssinaturaEncerramento()); $entVolume->setNuFolhaFinal($dtoVolume->getNuFolhaFinal())->setDtEncerramento($dtoVolume->getDtEncerramento())->setSqPessoaEncerramento($entPessEncerramento)->setSqUnidadeOrgEncerramento($entUOrgEncerramento)->setSqPessoaAssinaturaEncerramento($entPessAssEncerramento); if ($dtoVolume->getSqCargoAssinaturaEncerramento()) { $entCargoEncerramento = $this->getEntityManager()->getPartialReference('app:VwCargo', $dtoVolume->getSqCargoAssinaturaEncerramento()); $entVolume->setSqCargoAssinaturaEncerramento($entCargoEncerramento)->setSqFuncaoAssinaturaEncerramento(NULL); } else { $entFuncaoEncerramento = $this->getEntityManager()->getPartialReference('app:VwFuncao', $dtoVolume->getSqFuncaoAssinaturaEncerramento()); $entVolume->setSqFuncaoAssinaturaEncerramento($entFuncaoEncerramento)->setSqCargoAssinaturaEncerramento(NULL); } } else { $entVolume->setNuFolhaFinal(NULL)->setDtEncerramento(NULL)->setSqPessoaEncerramento(NULL)->setSqUnidadeOrgEncerramento(NULL)->setSqPessoaAssinaturaEncerramento(NULL)->setSqCargoAssinaturaEncerramento(NULL)->setSqFuncaoAssinaturaEncerramento(NULL); } $this->getEntityManager()->persist($entVolume); $this->getEntityManager()->flush(); }
public function excluirImagem($entArtefato, $txObservacao, $stAtivo = FALSE) { try { $entArtefatoImagem = $this->_getRepository("app:ArtefatoImagem")->findBy(array('sqArtefato' => $entArtefato->getSqArtefato(), 'stAtivo' => true)); $entArtefatoImagem = current($entArtefatoImagem); if ($entArtefatoImagem) { $arrDto = array('sqPessoa' => \Core_Integration_Sica_User::getPersonId(), 'sqUnidade' => \Core_Integration_Sica_User::getUserUnit()); $objCDto = \Core_Dto::factoryFromData($arrDto, 'search'); $entVwPessoa = $this->getServiceLocator()->getService('Pessoa')->findbyPessoaCorporativo($objCDto); $entVwUnidOrg = $this->getServiceLocator()->getService('VwUnidadeOrg')->getDadosUnidade($objCDto); $entArtefatoImagem->setStAtivo($stAtivo); $entArtefatoImagem->setSqPessoaInativacao($entVwPessoa); $entArtefatoImagem->setSqUnidadeOrgInativacao($entVwUnidOrg); $entArtefatoImagem->setTxObservacao($txObservacao); $entArtefatoImagem->setDtInativacao(\Zend_Date::now()); $this->getEntityManager()->persist($entArtefatoImagem); $this->getEntityManager()->flush(); // REGISTRO DA EXCLUSÃO DA IMAGEM. #HistoricoArtefato::save(); $haService = $this->getServiceLocator()->getService('HistoricoArtefato'); $sqOcorrencia = \Core_Configuration::getSgdoceSqOcorrenciaExcluirImagem(); $strMessage = $haService->getMessage('MH024', \Zend_Date::now()->get(\Zend_Date::DATETIME_MEDIUM), \Core_Integration_Sica_User::getUserName()); $haService->registrar($entArtefato->getSqArtefato(), $sqOcorrencia, $strMessage); $this->getMessaging()->addSuccessMessage('MD003', 'User'); } else { $this->getMessaging()->addErrorMessage('MN174', 'User'); } $this->getMessaging()->dispatchPackets(); return $entArtefatoImagem; } catch (\Core_Exception_ServiceLayer $e) { $this->getMessaging()->addErrorMessage($e->getMessage(), 'User'); $this->getMessaging()->dispatchPackets(); } return false; }
/** * @return type * @throws RuntimeException */ public function saveAction() { if (!$this->_request->isPost()) { throw new RuntimeException('A requisição deve ser POST'); } $isValid = true; if ($this->getRequest()->getParam('stProcessoVolume', false)) { $this->getRequest()->setPost('sqPessoaAbertura', \Core_Integration_Sica_User::getPersonId()); $this->getRequest()->setPost('sqUnidadeOrgAbertura', (int) \Core_Integration_Sica_User::getUserUnit()); } else { $sqArtefato = (int) $this->getRequest()->getParam('id'); $volume = $this->getService()->getLastVolumeAberto($sqArtefato); $params = $this->_getAllParams(); $configs = \Core_Registry::get('configs'); if ($params['nuFolhaFinal'] - $params['nuFolhaInicial'] <= (int) $configs['volume']['maxPagePerVolume']) { $sqPessoaAbertura = $volume->getSqPessoaAbertura() ? $volume->getSqPessoaAbertura()->getSqPessoa() : 0; $sqUnidadeOrgAbertura = $volume->getSqUnidadeOrgAbertura() ? $volume->getSqUnidadeOrgAbertura()->getSqUnidadeOrg() : 0; $this->getRequest()->setPost('sqVolume', $volume->getSqVolume()); $this->getRequest()->setPost('sqPessoaAbertura', $sqPessoaAbertura); $this->getRequest()->setPost('sqUnidadeOrgAbertura', $sqUnidadeOrgAbertura); if ($volume->getSqPessoaAssinaturaAbertura() && $volume->getSqCargoAssinaturaAbertura()) { $this->getRequest()->setPost('sqPessoaAssinaturaAbertura', $volume->getSqPessoaAssinaturaAbertura()->getSqPessoa()); $this->getRequest()->setPost('sqCargoAssinaturaAbertura', $volume->getSqCargoAssinaturaAbertura()->getSqCargo()); } if ($volume->getSqPessoaAssinaturaAbertura() && $volume->getSqFuncaoAssinaturaAbertura()) { $this->getRequest()->setPost('sqPessoaAssinaturaAbertura', $volume->getSqPessoaAssinaturaAbertura()->getSqPessoa()); $this->getRequest()->setPost('sqFuncaoAssinaturaAbertura', $volume->getSqFuncaoAssinaturaAbertura()->getSqFuncao()); } $this->getRequest()->setPost('sqPessoaEncerramento', \Core_Integration_Sica_User::getPersonId()); $this->getRequest()->setPost('sqUnidadeOrgEncerramento', (int) \Core_Integration_Sica_User::getUserUnit()); $this->_optionsDtoEntity['mapping'] = array_merge($this->_optionsDtoEntity['mapping'], array('sqPessoaAssinaturaEncerramento' => array('sqPessoa' => 'Sgdoce\\Model\\Entity\\VwPessoa'), 'sqCargoAssinaturaEncerramento' => array('sqCargo' => 'Sgdoce\\Model\\Entity\\VwCargo'), 'sqFuncaoAssinaturaEncerramento' => array('sqFuncao' => 'Sgdoce\\Model\\Entity\\VwFuncao'), 'sqPessoaEncerramento' => array('sqPessoa' => 'Sgdoce\\Model\\Entity\\VwPessoa'), 'sqUnidadeOrgEncerramento' => array('sqUnidadeOrg' => 'Sgdoce\\Model\\Entity\\VwUnidadeOrg'))); } else { $isValid = false; $this->getMessaging()->addErrorMessage('Volume não pode ter mais de 200 páginas.', 'User'); } } if ($isValid) { $entity = $this->_save(); $this->getService()->finish(); $this->_addMessageSave(); return $this->_redirect("/artefato/volume/termo/id/" . $entity->getSqVolume()); } $this->getMessaging()->dispatchPackets(); $sqTipoArtefato = \Core_Configuration::getSgdoceTipoArtefatoProcesso(); return $this->_redirect("/artefato/area-trabalho/index/tipoArtefato/{$sqTipoArtefato}/caixa/minhaCaixa"); }
/** * Metódo que realiza o save do Artefato * @param Object $dtoSearch * @return \Sgdoce\Model\Entity\Artefato */ public function saveArtefato(\Core_Dto_Search $dtoSearch) { $date = new \Zend_Date(); $this->getEntityManager()->getConnection()->beginTransaction(); try { $sqPessoaSgdoce = $this->_getRepository('app:PessoaSgdoce')->findBySqPessoaCorporativo(\Core_Integration_Sica_User::getPersonId()); if (empty($sqPessoaSgdoce)) { $filter = new \Zend_Filter_Digits(); $sqPessoaCorporativo = \Core_Integration_Sica_User::getPersonId(); $data['sqPessoaCorporativo'] = $this->_getRepository('app:VwPessoa')->find($sqPessoaCorporativo); $dtoPessoaSearch = \Core_Dto::factoryFromData($data, 'search'); $cpfCnpjPassaportUnfiltered = $this->getServiceLocator()->getService('VwPessoa')->returnCpfCnpjPassaporte($dtoPessoaSearch); $cpfCnpjPassaport = $filter->filter($cpfCnpjPassaportUnfiltered); $noPessoaCorporativo = $data['sqPessoaCorporativo']->getNoPessoa(); $this->addPessoaSgdoce($sqPessoaCorporativo, $noPessoaCorporativo, $cpfCnpjPassaport); $sqPessoaSgdoce = $this->_getRepository('app:PessoaSgdoce')->findBySqPessoaCorporativo(\Core_Integration_Sica_User::getPersonId()); } /** @var \Sgdoce\Model\Entity\Artefato $entityArtefato */ $entityArtefato = $this->_newEntity('app:Artefato'); //só seta o numero da digital se for documento tipo físico if (!$dtoSearch->getInEletronico()) { $entityLoteEtiqueta = $this->getEntityManager()->getPartialReference('app:LoteEtiqueta', $dtoSearch->getSqLoteEtiqueta()); /** @var \Sgdoce\Model\Entity\EtiquetasUso $entityEtiquetasUso */ $entityEtiquetasUso = $this->_newEntity('app:EtiquetasUso'); $entityEtiquetasUso->setNuEtiqueta($dtoSearch->getNuDigital()); $entityEtiquetasUso->setSqLoteEtiqueta($entityLoteEtiqueta); //persist Etiquetas Uso $this->getEntityManager()->persist($entityEtiquetasUso); $this->getEntityManager()->flush($entityEtiquetasUso); $entityArtefato->setNuDigital($entityEtiquetasUso); $entityArtefato->setSqLoteEtiqueta($entityEtiquetasUso); } $entityArtefato->setDtPrazo(NULL); $entityArtefato->setDtArtefato($date); $entityArtefato->setInEletronico($dtoSearch->getInEletronico()); //persist artefato $this->getEntityManager()->persist($entityArtefato); $this->getEntityManager()->flush($entityArtefato); $sqPessoaFuncao = $this->getEntityManager()->getPartialReference('app:PessoaFuncao', \Core_Configuration::getSgdocePessoaFuncaoAutor()); /** @var \Sgdoce\Model\Entity\PessoaArtefato $entityPessoaArtefato */ $entityPessoaArtefato = $this->_newEntity('app:PessoaArtefato'); $entityPessoaArtefato->setSqArtefato($entityArtefato); $entityPessoaArtefato->setSqPessoaSgdoce($sqPessoaSgdoce[0]); $entityPessoaArtefato->setSqPessoaFuncao($sqPessoaFuncao); $this->getEntityManager()->persist($entityPessoaArtefato); $this->getEntityManager()->flush($entityPessoaArtefato); // salva o historico do artefato $arrDto = array('sqPessoa' => \Core_Integration_Sica_User::getPersonId(), 'sqUnidade' => \Core_Integration_Sica_User::getUserUnit()); // #HistoricoArtefato::save(); $strMessage = $this->getServiceLocator()->getService('HistoricoArtefato')->getMessage('MH005'); $this->getServiceLocator()->getService('HistoricoArtefato')->registrar($entityArtefato->getSqArtefato(), \Core_COnfiguration::getSgdoceSqOcorrenciaCadastrar(), $strMessage); $this->getEntityManager()->getConnection()->commit(); } catch (\Exception $e) { $this->getEntityManager()->getConnection()->rollback(); throw $e; } return $entityArtefato; }
/** * Cria outro dtos * @param type $data * @return type */ public function _factoryParamsExtrasSave($data) { if ($data['nacionalidade'] == 1) { $data['sqPais'] = 0; } else { $data['sqMunicipio'] = 0; } $cfgPessoa['entity'] = '\\Sica\\Model\\Entity\\Pessoa'; $arrDto['sqPessoa'] = Core_Dto::factoryFromData($data, 'entity', $cfgPessoa); $cfgMunicipio['entity'] = '\\Sica\\Model\\Entity\\Municipio'; $cfgMunicipio['mapping']['sqEstado'] = '\\Sica\\Model\\Entity\\Estado'; $arrDto['sqMunicipio'] = Core_Dto::factoryFromData($data, 'entity', $cfgMunicipio); $cfgPais['entity'] = '\\Sica\\Model\\Entity\\Pais'; $arrDto['sqPais'] = Core_Dto::factoryFromData($data, 'entity', $cfgPais); $cfgCadastroSemCpf['entity'] = '\\Sica\\Model\\Entity\\CadastroSemCpf'; $arrData = array('dtInclusao' => Zend_Date::now()->get('dd/MM/YYYY'), 'txJustificativa' => $this->_getParam('txJustificativa')); $arrDto['sqCadastroSemCpf'] = Core_Dto::factoryFromData($arrData, 'entity', $cfgCadastroSemCpf); $arrDto['stRegistroAtivo'] = array('stRegistroAtivo' => $data['stRegistroAtivo']); $cfgIntegracaoPessoaInfoconv['entity'] = '\\Sica\\Model\\Entity\\IntegracaoPessoaInfoconv'; $sqPessoaAutora = $this->_getParam('sqIntegracaoPessoaInfoconv_sqPessoaAutora'); if (!$sqPessoaAutora) { $sqPessoaAutora = \Core_Integration_Sica_User::getPersonId(); } $entPessoaAutora = Core_Dto::factoryFromData(array('sqPessoa' => $sqPessoaAutora), 'entity', $cfgPessoa); $arrDataIntegracaoPI = array('dtIntegracao' => $this->_getParam('sqIntegracaoPessoaInfoconv_dtIntegracao'), 'txJustificativa' => $this->_getParam('sqIntegracaoPessoaInfoconv_txJustificativa'), 'sqPessoaAutora' => $entPessoaAutora); $arrDto['sqIntegracaoPessoaInfoconv'] = Core_Dto::factoryFromData($arrDataIntegracaoPI, 'entity', $cfgIntegracaoPessoaInfoconv); return $arrDto; }
/** * Cria outro dtos * @param type $data * @return type */ public function _factoryParamsExtrasSave($data) { if (!$data['sqIntegracaoPessoaInfoconv_sqPessoaAutora']) { $data['sqIntegracaoPessoaInfoconv_sqPessoaAutora'] = \Core_Integration_Sica_User::getPersonId(); } return array(new \Core_Dto_Mapping($data, $data)); }
/** * * @param \Core_Dto_Search $dto * @return array */ public function searchDocumentsToFirstPiece(\Core_Dto_Search $dto, $isExterno = false, $isLegado = false) { $sqTipoArtefato = $dto->getSqTipoArtefato(); $field = "at.nu_digital"; if ($sqTipoArtefato == \Core_Configuration::getSgdoceTipoArtefatoProcesso()) { $field = $this->_em->createQueryBuilder()->expr()->lower("translate(at.nu_artefato::text, './-'::text, ''::text)")->__toString(); } $inAbreProcesso = ''; if (!$isExterno) { $inAbreProcesso = ' AND td.in_abre_processo'; } if ($isLegado) { $inAbreProcesso = ''; } $sql = "SELECT at.sq_artefato,\n at.nu_digital,\n at.nu_artefato\n FROM sgdoce.fn_show_area_trabalho(NULL, :sqTipoArtefato, :sqPessoaLogada, :sqUnidadeLogada, :search) at\n JOIN tipo_documento td\n ON td.sq_tipo_documento = at.sq_tipo_documento\n WHERE at.sq_status_tramite > :sqStatusTramite\n\n AND at.has_imagem\n AND NOT at.arquivado\n AND {$field} LIKE '{$dto->getQuery()}%'\n AND NOT at.has_solicitacao_aberta\n {$inAbreProcesso}\n ORDER BY at.nu_digital"; $rsm = new \Doctrine\ORM\Query\ResultSetMapping($this->_em); $rsm->addScalarResult('sq_artefato', 'sqArtefato', 'integer'); $rsm->addScalarResult('nu_digital', 'nuDigital', 'string'); $rsm->addScalarResult('nu_artefato', 'nuArtefato', 'string'); $nq = $this->_em->createNativeQuery($sql, $rsm); $nq->setParameter('sqStatusTramite', \Core_Configuration::getSgdoceStatusTramiteTramitado())->setParameter('sqTipoArtefato', $dto->getSqTipoArtefato())->setParameter('sqUnidadeLogada', \Core_Integration_Sica_User::getUserUnit())->setParameter('sqPessoaLogada', \Core_Integration_Sica_User::getPersonId())->setParameter('search', $dto->getQuery()); $nq->useResultCache(false); return $nq->getArrayResult(); }
public function getNotification() { $rsm = new \Doctrine\ORM\Query\ResultSetMapping(); $rsm->addScalarResult('tipo', 'tipo', 'integer'); $rsm->addScalarResult('intervalo', 'intervalo', 'integer'); $rsm->addScalarResult('qtde', 'qtde', 'integer'); $sqlSGI = ""; $sqUnidadeOrg = (int) \Core_Integration_Sica_User::getUserUnit(); if (\Zend_Registry::get('isUserSgi')) { $sqlSGI = "UNION\n\n SELECT 2 AS tipo\n ,2 AS intervalo\n ,COUNT(*) AS qtde\n FROM solicitacao AS s\n JOIN vw_ultimo_status_solicitacao AS vuss USING (sq_solicitacao)\n WHERE vuss.sq_tipo_status_solicitacao = " . \Core_Configuration::getSgdoceTipoStatusSolicitacaoAberta() . "\n HAVING COUNT(*) > 0\n\n UNION\n\n SELECT 2 AS tipo\n ,1 AS intervalo\n ,COUNT(*) AS qtde\n FROM solicitacao AS s\n JOIN vw_ultimo_status_solicitacao as vuss USING (sq_solicitacao)\n WHERE vuss.sq_tipo_status_solicitacao = " . \Core_Configuration::getSgdoceTipoStatusSolicitacaoEmAndamento() . "\n AND vuss.sq_pessoa_responsavel = :sqPessoa\n HAVING COUNT(*) > 0"; } $sql = "WITH dias_prazo_demanda AS (\n SELECT 1 AS tipo\n ,EXTRACT(day FROM dt_prazo - CURRENT_DATE) AS qtd_dias\n ,sq_pessoa_destino\n ,sq_unidade_org_pessoa_destino\n ,sq_prazo\n FROM prazo\n WHERE dt_resposta IS NULL\n )\n\n SELECT 1 AS tipo\n ,5 AS intervalo\n ,COUNT(*) AS qtde\n FROM prazo\n WHERE dt_resposta is null\n AND sq_unidade_org_pessoa_destino = {$sqUnidadeOrg}\n GROUP BY tipo\n\n UNION\n\n SELECT tipo\n ,4 AS intervalo\n ,COUNT(*) AS qtde\n FROM dias_prazo_demanda\n WHERE qtd_dias > 5\n AND sq_pessoa_destino = :sqPessoa\n AND sq_unidade_org_pessoa_destino = {$sqUnidadeOrg}\n GROUP BY tipo\n\n UNION\n\n SELECT tipo\n ,3 AS intervalo\n ,COUNT(*) AS qtde\n FROM dias_prazo_demanda\n WHERE qtd_dias BETWEEN 2 AND 5\n AND sq_pessoa_destino = :sqPessoa\n AND sq_unidade_org_pessoa_destino = {$sqUnidadeOrg}\n GROUP BY tipo\n\n UNION\n\n SELECT tipo\n ,2 AS intervalo\n ,COUNT(*) AS qtde\n FROM dias_prazo_demanda\n WHERE qtd_dias between 0 AND 1\n AND sq_pessoa_destino = :sqPessoa\n AND sq_unidade_org_pessoa_destino = {$sqUnidadeOrg}\n GROUP BY tipo\n\n UNION\n\n SELECT tipo\n ,1 AS intervalo\n ,COUNT(*) AS qtde\n FROM dias_prazo_demanda\n WHERE qtd_dias < 0\n AND sq_pessoa_destino = :sqPessoa\n AND sq_unidade_org_pessoa_destino = {$sqUnidadeOrg}\n GROUP BY tipo\n\n {$sqlSGI}\n\n ORDER BY tipo, intervalo"; $query = $this->_em->createNativeQuery($sql, $rsm); $query->setParameter('sqPessoa', \Core_Integration_Sica_User::getPersonId()); return $query->execute(); }
/** * * @param integer $sqArtefato * @return boolean * @throws \InvalidArgumentException */ public function inMyDashboard($sqArtefato) { if (!$sqArtefato) { throw new \InvalidArgumentException('Values must not be empty.'); } $sqPessoa = (int) \Core_Integration_Sica_User::getPersonId(); $sqPessoaDestino = (int) \Core_Integration_Sica_User::getUserUnit(); $dtoSearch = \Core_Dto::factoryFromData(array('sqArtefato' => $sqArtefato, 'sqPessoa' => $sqPessoa, 'sqPessoaDestino' => $sqPessoaDestino), 'search'); return $this->_getRepository('app:VwUltimoTramiteArtefato')->inMyDashboard($dtoSearch); }
private function _alreadyExists(\Core_Dto_Entity $dto) { $assert = $this->findBy(array('txComentario' => $dto->getTxComentario(), 'sqPessoa' => \Core_Integration_Sica_User::getPersonId(), 'sqArtefato' => $dto->getSqArtefato())); if (count($assert)) { throw new \Exception(self::T_COMENTARIO_ALREADY_EXISTS); } }
/** * @return array Com o parametros da requisição */ private function _viewSteps() { $params = $this->_getAllParams(); if (!isset($params['id'])) { throw new \Exception("Artefato não informado"); } $this->view->sqArtefato = $params['id']; $this->view->hasImage = $this->getService()->hasImage($params['id']); if ($this->view->hasImage) { $this->view->forbiddenAccess = $this->getService()->forbiddenAccess($params['id'], Core_Integration_Sica_User::getPersonId()); } // Regras para artefatos de migração. $dtoSearch = \Core_Dto::factoryFromData(array('sqArtefato' => $params['id']), 'search'); $isMigracao = $this->getService("Artefato")->isMigracao($dtoSearch); if ($isMigracao) { $dtoSearch = \Core_Dto::factoryFromData(array('sqArtefato' => $params['id']), 'search'); # Tainá falou que era para ser assim. if ($this->getService('Artefato')->isInconsistent($dtoSearch)) { $this->view->forbiddenAccess = false; } $this->view->treeviewData = $this->getService('ArtefatoVinculo')->mostarArvoreMigracao($dtoSearch); } else { $this->view->treeviewData = $this->getService('ArtefatoVinculo')->mostarArvore($params['id']); } return $params; }
public function qtdItensMinhaCaixaJsonAction() { $this->_jsonResponse(function () { return $this->getService()->getQtdItensMinhaCaixa(\Core_Integration_Sica_User::getPersonId(), \Core_Integration_Sica_User::getUserUnit(), $this->_getParam('artefactType', 0)); }); }
/** * * @param \Sgdoce\Model\Entity\Artefato $entityArtefato * @return \Arquivo\Service\ArquivamentoSetorial */ private function _processTramite(\Sgdoce\Model\Entity\Artefato $entityArtefato) { $sqArtefato = $entityArtefato->getSqArtefato(); $entityUltimoTramite = $this->_getRepository('app:VwUltimoTramiteArtefato')->find($sqArtefato); $sqPessoaLogada = (int) \Core_Integration_Sica_User::getPersonId(); $sqUnidadeLogada = (int) \Core_Integration_Sica_User::getUserUnit(); $serviceTramite = $this->getServiceLocator()->getService('TramiteArtefato'); $dtoSearchArtefato = \Core_Dto::factoryFromData(array('sqArtefato' => $sqArtefato), 'search'); /** * Se não tem ultimo Tramite é porque o artefato ainda não foi corrigido. * Verificar, mesmo assim, se tem tramite pois a view de ultimo tramite faz join * que pode não retornar registro caso documento não tenha sido corrido */ if (!$entityUltimoTramite) { $objZendDate = \Zend_Date::now(); $dataTramite = array('sqArtefato' => $sqArtefato, 'sqPessoaDestino' => $sqUnidadeLogada, 'sqPessoaDestinoInterno' => $sqPessoaLogada, 'sqUnidadeOrgTramite' => $sqUnidadeLogada, 'sqStatusTramite' => \Core_Configuration::getSgdoceStatusTramiteRecebido(), 'dtTramite' => $objZendDate, 'sqPessoaTramite' => $sqPessoaLogada, 'inImpresso' => TRUE, 'nuTramite' => $serviceTramite->getNextTramiteNumber($dtoSearchArtefato)); $entityDtoTramite = $serviceTramite->montaEntidateTramite($dataTramite); $entityPessoaRecebimento = $this->getEntityManager()->getPartialReference('app:VwPessoa', $sqPessoaLogada); $entityDtoTramite->getEntity()->setSqPessoaRecebimento($entityPessoaRecebimento); $objZendDateRecebimento = clone $objZendDate; $entityDtoTramite->getEntity()->setDtRecebimento($objZendDateRecebimento->addSecond(1)); $entityTramite = $serviceTramite->save($entityDtoTramite); } else { $sqPessoaRecebimento = $entityUltimoTramite->getSqPessoaRecebimento()->getSqPessoa(); $sqPessoaDestino = $entityUltimoTramite->getSqPessoaDestino()->getSqPessoa(); /** * caso o ultimo tramite do artefato não for da pessoa logada * deve-se registrar um tramite para pessoa logada (SGI) para que este * possa encaminhar para quem solicitou a desanexação */ if ($sqPessoaRecebimento != $sqPessoaLogada || $sqPessoaDestino != $sqUnidadeLogada) { $dtoSearchArtefato = \Core_Dto::factoryFromData(array('sqArtefato' => $sqArtefato), 'search'); $objZendDate = \Zend_Date::now(); $dataTramite = array('sqArtefato' => $sqArtefato, 'sqPessoaDestino' => $sqUnidadeLogada, 'sqPessoaDestinoInterno' => $sqPessoaLogada, 'sqUnidadeOrgTramite' => $sqUnidadeLogada, 'sqStatusTramite' => \Core_Configuration::getSgdoceStatusTramiteRecebido(), 'dtTramite' => $objZendDate, 'sqPessoaTramite' => $sqPessoaLogada, 'inImpresso' => TRUE, 'nuTramite' => $serviceTramite->getNextTramiteNumber($dtoSearchArtefato)); $entityDtoTramite = $serviceTramite->montaEntidateTramite($dataTramite); $entityPessoaRecebimento = $this->getEntityManager()->getPartialReference('app:VwPessoa', $sqPessoaLogada); $entityDtoTramite->getEntity()->setSqPessoaRecebimento($entityPessoaRecebimento); $objZendDateRecebimento = clone $objZendDate; $entityDtoTramite->getEntity()->setDtRecebimento($objZendDateRecebimento->addSecond(1)); $entityTramite = $serviceTramite->save($entityDtoTramite); } } return $this; }
/** * @return void */ public function searchArtefatoDestinoAction() { $sqArtefato = $this->getRequest()->getParam('extraParam'); $objZFAlpha = new \Zend_Filter_Alnum(true); $query = $objZFAlpha->filter($this->getRequest()->getParam('query')); $criteria = array('sqTipoArtefato' => \Core_Configuration::getSgdoceTipoArtefatoProcesso(), 'sqPessoaRecebimento' => \Core_Integration_Sica_User::getPersonId(), 'sqUnidadeRecebimento' => \Core_Integration_Sica_User::getUserUnit(), 'nuArtefato' => $query, 'sqArtefato' => $sqArtefato); $listInMyDashboard = $this->getService('ProcessoEletronico')->searchInMyDashboard($criteria); $this->_helper->json($listInMyDashboard); }