getObjProcedimentoDTO();
$dblIdProcedimento = $objProcedimentoDTO->getDblIdProcedimento();
$numIdUsuario = SessaoSEI::getInstance()->getNumIdUsuario();
$numIdUnidadeAtual = SessaoSEI::getInstance()->getNumIdUnidadeAtual();
//Verifica se o processo encontra-se aberto na unidade atual
$objAtividadeRN = new AtividadeRN();
$objPesquisaPendenciaDTO = new PesquisaPendenciaDTO();
$objPesquisaPendenciaDTO->setDblIdProtocolo($dblIdProcedimento);
$objPesquisaPendenciaDTO->setNumIdUsuario($numIdUsuario);
$objPesquisaPendenciaDTO->setNumIdUnidade($numIdUnidadeAtual);
$objPesquisaPendenciaDTO->setStrSinMontandoArvore('N');
$arrObjProcedimentoDTO = $objAtividadeRN->listarPendenciasRN0754($objPesquisaPendenciaDTO);
$bolFlagAberto = count($arrObjProcedimentoDTO) == 1;
//Verificação da Restrição de Acesso à Funcionalidade
$bolAcaoExpedirProcesso = $objSessaoSEI->verificarPermissao('pen_procedimento_expedir');
// ExpedirProcedimentoRN::__construct() criar a instância do ProcessoEletronicoRN
// e este pode lançar exceções caso alguma configuração dele não estaja correta
// invalidando demais ações na tela do Controle de Processo, então ecapsulamos
// no try/catch para prevenir o erro em tela adicionamos no log
try {
$objExpedirProcedimentoRN = new ExpedirProcedimentoRN();
$objProcedimentoDTO = $objExpedirProcedimentoRN->consultarProcedimento($dblIdProcedimento);
$bolProcessoEstadoNormal = !in_array($objProcedimentoDTO->getStrStaEstadoProtocolo(), array(
ProtocoloRN::$TE_PROCEDIMENTO_SOBRESTADO,
ProtocoloRN::$TE_EM_PROCESSAMENTO,
ProtocoloRn::$TE_BLOQUEADO
));
//TODO: Não apresentar
//$bolFlagAberto && $bolAcaoProcedimentoEnviar && $objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo()!=ProtocoloRN::$NA_SIGILOSO
if ($bolFlagAberto && $bolAcaoExpedirProcesso && $bolProcessoEstadoNormal && $objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo() != ProtocoloRN::$NA_SIGILOSO) {
$numTabBotao = $objPaginaSEI->getProxTabBarraComandosSuperior();
$strAcoesProcedimento .= '
';
}
if($objProcedimentoDTO->getStrStaEstadoProtocolo() == ProtocoloRN::$TE_EM_PROCESSAMENTO) {
$objProcessoEletronicoRN = new ProcessoEletronicoRN();
if ($objProcessoEletronicoRN->isDisponivelCancelarTramite($objProcedimentoDTO->getStrProtocoloProcedimentoFormatado())) {
$strAcoesProcedimento .= '';
$strAcoesProcedimento .= '
';
$strAcoesProcedimento .= '';
}
}
$objProcedimentoAndamentoDTO = new ProcedimentoAndamentoDTO();
$objProcedimentoAndamentoDTO->setDblIdProcedimento($dblIdProcedimento);
$objGenericoBD = new GenericoBD(BancoSEI::getInstance());
if ($objGenericoBD->contar($objProcedimentoAndamentoDTO) > 0) {
$strAcoesProcedimento .= '';
$strAcoesProcedimento .= '
';
$strAcoesProcedimento .= '';
}
/**
* Rodina para validar doc processo
*/
//TODO: Revisar implementação feita pela Softimais nesse arquivo
//$resultProcessoStatus = $objExpedirProcedimentoRn->consultaProcessoStatus($objProcedimentoDTO->getDblIdProcedimento());
// $objProtocoloDTO = new ProtocoloDTO();
// $objProtocoloRN = new ProtocoloRN();
// $objProtocoloDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento());
// $objProtocoloDTO->retTodos();
// $objProtocoloDTO = $objProtocoloRN->consultarRN0186($objProtocoloDTO);
//TODO: Verificar a diferença entre Nivel de Acesso Local e Global
//$bolProcessoPublico = $objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo() == ProtocoloRN::$NA_PUBLICO;
//$bolProcessoEstado = $objProtocoloDTO->getStrStaEstado() != ProtocoloRN::$TE_PROCEDIMENTO_SOBRESTADO;
// if ($bolAcaoExpedirProcesso && $bolProcessoEstado && $resultProcessoStatus['retorno'] ){
// if ($bolAcaoExpedirProcesso && $bolProcessoEstado && $resultProcessoStatus['retorno'] ){
// $strAcoesProcedimento .= '
';
// }
// if ($bolAcaoExpedirProcesso && $bolProcessoPublico && ! $bolProcessoEstado ){
// $strAcoesProcedimento .= ''
// . '
'
// . '';
// }
}
catch(InfraException $e){
LogSEI::getInstance()->gravar($e->getStrDescricao());
}
catch (Exception $e) {
LogSEI::getInstance()->gravar($e->getMessage());
}
return array($strAcoesProcedimento);
}
public function montarIconeProcedimento(SeiIntegracaoDTO $objSeiIntegracaoDTO) {
return array();
}
public function montarBotaoDocumento(SeiIntegracaoDTO $objSeiIntegracaoDTO) {
return array();
}
public function montarIconeDocumento(SeiIntegracaoDTO $objSeiIntegracaoDTO) {
return array();
}
public function excluirProcedimento(ProcedimentoDTO $objProcedimentoDTO) {
}
public function atualizarConteudoDocumento(DocumentoDTO $objDocumentoDTO) {
}
public function excluirDocumento(DocumentoDTO $objDocumentoDTO) {
}
public function montarBotaoControleProcessos() {
}
public function montarIconeControleProcessos($arrObjProcedimentoDTO = array()) {
$arrStrIcone = array();
$arrDblIdProcedimento = array();
foreach ($arrObjProcedimentoDTO as $objProcedimentoDTO) {
$arrDblIdProcedimento[] = $objProcedimentoDTO->getDblIdProcedimento();
}
$objProcedimentoDTO = new ProcedimentoDTO();
$objProcedimentoDTO->setDblIdProcedimento($arrDblIdProcedimento, InfraDTO::$OPER_IN);
$objProcedimentoDTO->retDblIdProcedimento();
$objProcedimentoDTO->retStrStaEstadoProtocolo();
//$objProcedimentoDTO->retStrSinObteveRecusa();
$objProcedimentoBD = new ProcedimentoBD(BancoSEI::getInstance());
$arrObjProcedimentoDTO = $objProcedimentoBD->listar($objProcedimentoDTO);
if (!empty($arrObjProcedimentoDTO)) {
foreach ($arrObjProcedimentoDTO as $objProcedimentoDTO) {
$dblIdProcedimento = $objProcedimentoDTO->getDblIdProcedimento();
switch ($objProcedimentoDTO->getStrStaEstadoProtocolo()) {
case ProtocoloRN::$TE_EM_PROCESSAMENTO:
$arrStrIcone[$dblIdProcedimento] = array('
');
break;
case ProtocoloRN::$TE_BLOQUEADO:
break;
default:
$objPenProtocoloDTO = new PenProtocoloDTO();
$objPenProtocoloDTO->setDblIdProtocolo($dblIdProcedimento);
$objPenProtocoloDTO->retStrSinObteveRecusa();
$objPenProtocoloDTO->setNumMaxRegistrosRetorno(1);
$objProtocoloBD = new ProtocoloBD(BancoSEI::getInstance());
$objPenProtocoloDTO = $objProtocoloBD->consultar($objPenProtocoloDTO);
if (!empty($objPenProtocoloDTO) && $objPenProtocoloDTO->getStrSinObteveRecusa() == 'S') {
$arrStrIcone[$dblIdProcedimento] = array('
');
}
}
}
}
return $arrStrIcone;
}
public function montarIconeAcompanhamentoEspecial($arrObjProcedimentoDTO) {
}
public function getDiretorioImagens() {
return static::getDiretorio().'/imagens';
}
public function montarMensagemSituacaoProcedimento(ProcedimentoDTO $objProcedimentoDTO) {
if($objProcedimentoDTO->getStrStaEstadoProtocolo() == ProtocoloRN::$TE_EM_PROCESSAMENTO || $objProcedimentoDTO->getStrStaEstadoProtocolo() == ProtocoloRN::$TE_BLOQUEADO ){
$objAtividadeDTO = new AtividadeDTO();
$objAtividadeDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento());
$objAtividadeDTO->retNumIdAtividade();
$objAtividadeRN = new AtividadeRN();
$arrAtividadeDTO = (array) $objAtividadeRN->listarRN0036($objAtividadeDTO);
if (empty($arrAtividadeDTO)) {
throw new InfraException('Não foi possivel localizar as atividades executadas nesse procedimento');
}
$objFiltroAtributoAndamentoDTO = new AtributoAndamentoDTO();
$objFiltroAtributoAndamentoDTO->setStrNome('UNIDADE_DESTINO');
$objFiltroAtributoAndamentoDTO->retStrValor();
$objFiltroAtributoAndamentoDTO->setOrdNumIdAtributoAndamento(InfraDTO::$TIPO_ORDENACAO_DESC);
$objAtributoAndamentoRN = new AtributoAndamentoRN();
$objAtributoAndamentoFinal = null;
foreach ($arrAtividadeDTO as $objAtividadeDTO) {
$objFiltroAtributoAndamentoDTO->setNumIdAtividade($objAtividadeDTO->getNumIdAtividade());
$objAtributoAndamentoDTO = $objAtributoAndamentoRN->consultarRN1366($objFiltroAtributoAndamentoDTO);
if (!empty($objAtributoAndamentoDTO)) {
$objAtributoAndamentoFinal = $objAtributoAndamentoDTO;
}
}
$objAtributoAndamentoDTO = $objAtributoAndamentoFinal;
$strUnidadeDestino = array_pop(array_pop(PaginaSEI::getInstance()->getArrOptionsSelect($objAtributoAndamentoDTO->getStrValor())));
return "
".sprintf('Processo em trâmite externo para "%s".', $strUnidadeDestino);
}
}
public static function getDiretorio(){
if(empty(static::$strDiretorio)) {
$arrModulos = ConfiguracaoSEI::getInstance()->getValor('SEI','Modulos');
$strModuloPath = realpath($arrModulos['PEN']);
static::$strDiretorio = str_replace(realpath(__DIR__.'/../..'), '', $strModuloPath);
static::$strDiretorio = preg_replace('/^\//', '', static::$strDiretorio);
}
return static::$strDiretorio;
}
}