diff --git a/src/PENIntegracao.php b/src/PENIntegracao.php index ed3fd84dd..b0a4a5e2a 100755 --- a/src/PENIntegracao.php +++ b/src/PENIntegracao.php @@ -162,7 +162,6 @@ public function montarBotaoProcesso(ProcedimentoAPI $objSeiIntegracaoDTO) if (count($arrObjPenBlocoProcessoDTO) > 0){ $concluido = array( ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE diff --git a/src/pen_procedimento_cancelar_expedir.php b/src/pen_procedimento_cancelar_expedir.php index 50872a236..e99676312 100755 --- a/src/pen_procedimento_cancelar_expedir.php +++ b/src/pen_procedimento_cancelar_expedir.php @@ -35,7 +35,6 @@ $objTramiteEmBlocoProtocoloDTO->setNumIdAtividade( array( ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE diff --git a/src/pen_procedimento_expedir_validar.php b/src/pen_procedimento_expedir_validar.php index f474e01ed..45fcf98cf 100755 --- a/src/pen_procedimento_expedir_validar.php +++ b/src/pen_procedimento_expedir_validar.php @@ -43,6 +43,7 @@ $objProcedimentoDTO->setArrObjDocumentoDTO($objExpedirProcedimentosRN->listarDocumentos($dblIdProcedimento)); $objProcedimentoDTO->setArrObjParticipanteDTO($objExpedirProcedimentosRN->listarInteressados($dblIdProcedimento)); $objExpedirProcedimentosRN->validarPreCondicoesExpedirProcedimento($objInfraException, $objProcedimentoDTO, $strProtocoloFormatado); + $objExpedirProcedimentosRN->validarProcessoIncluidoBlocoEmAndamento($objInfraException, $objProcedimentoDTO, $strProtocoloFormatado); // Processos apensados if(array_key_exists('selProcedimentosApensados', $_POST) && is_array($_POST['selProcedimentosApensados'])){ @@ -52,6 +53,7 @@ $objProcedimentoDTO->setArrObjDocumentoDTO($objExpedirProcedimentosRN->listarDocumentos($dblIdProcedimento)); $objProcedimentoDTO->setArrObjParticipanteDTO($objExpedirProcedimentosRN->listarInteressados($dblIdProcedimento)); $objExpedirProcedimentosRN->validarPreCondicoesExpedirProcedimento($objInfraException, $objProcedimentoDTO, $strProtocoloFormatado); + $objExpedirProcedimentosRN->validarProcessoIncluidoBlocoEmAndamento($objInfraException, $objProcedimentoDTO, $strProtocoloFormatado); } } } diff --git a/src/pen_tramita_em_bloco_protocolo_listar.php b/src/pen_tramita_em_bloco_protocolo_listar.php index 2c3c7523e..f41dff7de 100755 --- a/src/pen_tramita_em_bloco_protocolo_listar.php +++ b/src/pen_tramita_em_bloco_protocolo_listar.php @@ -151,7 +151,6 @@ $situacaoPodeExcluir = array( ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE, ); @@ -190,13 +189,13 @@ case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_METADADOS_RECEBIDO_DESTINATARIO: case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_RECEBIDOS_DESTINATARIO: case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_ENVIADO_DESTINATARIO: + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO: $strResultado .= ''; break; case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE: $strResultado .= ''; break; - case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA: - case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO: + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA: $strResultado .= ''; break; case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO: diff --git a/src/pen_tramite_processo_em_bloco_cadastrar.php b/src/pen_tramite_processo_em_bloco_cadastrar.php index e461e6e56..a9b116776 100755 --- a/src/pen_tramite_processo_em_bloco_cadastrar.php +++ b/src/pen_tramite_processo_em_bloco_cadastrar.php @@ -57,7 +57,6 @@ foreach($arrObjPenBlocoProcessoDTO as $objPenBlocoProcessoDTO){ $concluido = array( ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE @@ -166,7 +165,11 @@ } break; case 'pen_tramita_em_bloco_adicionar': - $arrProtocolosOrigem = array_merge($objPaginaSEI->getArrStrItensSelecionados('Gerados'), $objPaginaSEI->getArrStrItensSelecionados('Recebidos')); + $arrProtocolosOrigem = array_merge( + $objPaginaSEI->getArrStrItensSelecionados('Gerados'), + $objPaginaSEI->getArrStrItensSelecionados('Recebidos'), + $objPaginaSEI->getArrStrItensSelecionados('Detalhado') + ); $strIdItensSelecionados = $strIdItensSelecionados ?: $_GET['processos']; $strTitulo = 'Incluir Processo(s) no Bloco de Trâmite'; @@ -271,7 +274,9 @@ $objTramiteEmBlocoDTO->retNumOrdem(); $objTramiteEmBlocoDTO->retNumIdUnidade(); $objTramiteEmBlocoDTO->retStrDescricao(); - PaginaSEI::getInstance()->prepararOrdenacao($objTramiteEmBlocoDTO, 'Id', InfraDTO::$TIPO_ORDENACAO_DESC); + if ($_GET['acao'] != 'pen_tramita_em_bloco_adicionar') { + PaginaSEI::getInstance()->prepararOrdenacao($objTramiteEmBlocoDTO, 'Id', InfraDTO::$TIPO_ORDENACAO_DESC); + } $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); foreach ($objTramiteEmBlocoRN->listar($objTramiteEmBlocoDTO) as $dados) { diff --git a/src/rn/ExpedirProcedimentoRN.php b/src/rn/ExpedirProcedimentoRN.php index 56b1d498f..c47be9b2e 100755 --- a/src/rn/ExpedirProcedimentoRN.php +++ b/src/rn/ExpedirProcedimentoRN.php @@ -2710,6 +2710,43 @@ private function validarProcessoAbertoUnidade(InfraException $objInfraException, } } + public function validarProcessoIncluidoBlocoEmAndamento(InfraException $objInfraException, ProcedimentoDTO $objProcedimentoDTO, $strAtributoValidacao) + { + $concluido = array( + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA, + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO, + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE, + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE + ); + + $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); + $objPenBlocoProcessoDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento()); + $objPenBlocoProcessoDTO->retNumIdAtividade(); + $objPenBlocoProcessoDTO->retStrProtocoloFormatadoProtocolo(); + $objPenBlocoProcessoDTO->retNumIdBloco(); + + $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); + $arrPenBlocoProcessoDTO = $objPenBlocoProcessoRN->listar($objPenBlocoProcessoDTO); + + foreach ($arrPenBlocoProcessoDTO as $objPenBlocoProcessoDTO) { + if (!in_array($objPenBlocoProcessoDTO->getNumIdAtividade(), $concluido)) { + $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + $objTramiteEmBlocoDTO->setNumId($objPenBlocoProcessoDTO->getNumIdBloco()); + $objTramiteEmBlocoDTO->retNumOrdem(); + $objTramiteEmBlocoDTO->retStrSiglaUnidade(); + $objTramiteEmBlocoDTO->retStrDescricao(); + + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $objTramiteEmBlocoDTO = $objTramiteEmBlocoRN->consultar($objTramiteEmBlocoDTO); + + $mensagem = "Prezado(a) usuário(a), o processo {$objPenBlocoProcessoDTO->getStrProtocoloFormatadoProtocolo()} encontra-se inserido no bloco {$objTramiteEmBlocoDTO->getNumOrdem()} - " + . " {$objTramiteEmBlocoDTO->getStrDescricao()} da unidade {$objTramiteEmBlocoDTO->getStrSiglaUnidade()}." + . " Para continuar com essa ação é necessário que o processo seja removido do bloco em questão."; + $objInfraException->adicionarValidacao($mensagem, $strAtributoValidacao); + } + } + } + private function validarNivelAcessoProcesso(InfraException $objInfraException, ProcedimentoDTO $objProcedimentoDTO, $strAtributoValidacao) { if ($objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_SIGILOSO) { diff --git a/src/rn/PenBlocoProcessoRN.php b/src/rn/PenBlocoProcessoRN.php index f20224dcd..3cc5131c5 100755 --- a/src/rn/PenBlocoProcessoRN.php +++ b/src/rn/PenBlocoProcessoRN.php @@ -414,7 +414,6 @@ protected function validarBlocoDeTramiteControlado($idProtocolo) $concluidos = array( ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE @@ -554,7 +553,6 @@ private function validarStatusProcessoParaBloco($arrObjTramiteEmBlocoProtocoloDT { $concluido = array( ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE @@ -564,7 +562,8 @@ private function validarStatusProcessoParaBloco($arrObjTramiteEmBlocoProtocoloDT ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_ENVIADOS_REMETENTE, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_METADADOS_RECEBIDO_DESTINATARIO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_RECEBIDOS_DESTINATARIO, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_ENVIADO_DESTINATARIO + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_ENVIADO_DESTINATARIO, + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO ); $qtdProcesos = count($arrObjTramiteEmBlocoProtocoloDTO); diff --git a/src/rn/ReceberProcedimentoRN.php b/src/rn/ReceberProcedimentoRN.php index e7a343323..812680ef1 100755 --- a/src/rn/ReceberProcedimentoRN.php +++ b/src/rn/ReceberProcedimentoRN.php @@ -532,9 +532,9 @@ protected function receberTramitesRecusadosInternoControlado($parObjTramite) $objTramiteEmBlocoProtocoloDTO->setNumIdAndamento( array( ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE, + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO ), InfraDTO::$OPER_NOT_IN ); diff --git a/src/rn/ReceberReciboTramiteRN.php b/src/rn/ReceberReciboTramiteRN.php index 04d724167..0281255d0 100755 --- a/src/rn/ReceberReciboTramiteRN.php +++ b/src/rn/ReceberReciboTramiteRN.php @@ -144,9 +144,9 @@ protected function receberReciboDeTramiteInternoControlado($objReciboTramite) $objTramiteEmBlocoProtocoloDTO->setNumIdAndamento( array( ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE, + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO ), InfraDTO::$OPER_NOT_IN ); diff --git a/src/rn/TramitaEmBlocoProtocoloRN.php b/src/rn/TramitaEmBlocoProtocoloRN.php index ff91ff96d..51ed65f73 100644 --- a/src/rn/TramitaEmBlocoProtocoloRN.php +++ b/src/rn/TramitaEmBlocoProtocoloRN.php @@ -421,7 +421,6 @@ private function validarStatusProcessoParaBloco($arrObjTramiteEmBlocoProtocoloDT { $concluido = array( ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE @@ -431,7 +430,8 @@ private function validarStatusProcessoParaBloco($arrObjTramiteEmBlocoProtocoloDT ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_ENVIADOS_REMETENTE, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_METADADOS_RECEBIDO_DESTINATARIO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_RECEBIDOS_DESTINATARIO, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_ENVIADO_DESTINATARIO + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_ENVIADO_DESTINATARIO, + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO ); $qtdProcesos = count($arrObjTramiteEmBlocoProtocoloDTO); $arrayConcluidos = array(); diff --git a/src/scripts/sei_atualizar_versao_modulo_pen.php b/src/scripts/sei_atualizar_versao_modulo_pen.php index 7147c6a86..dd02683ea 100755 --- a/src/scripts/sei_atualizar_versao_modulo_pen.php +++ b/src/scripts/sei_atualizar_versao_modulo_pen.php @@ -2947,41 +2947,12 @@ protected function instalarV3070() //Remover blocos sem nenhum processo vinculado $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); $objTramiteEmBlocoDTO->retNumId(); + $objTramiteEmBlocoDTO->retNumIdUnidade(); $objTramiteEmBlocoDTO->retStrStaEstado(); - + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); $arrObjTramiteEmBlocoDTO = $objTramiteEmBlocoRN->listar($objTramiteEmBlocoDTO); - if (!is_null($arrObjTramiteEmBlocoDTO)) { - foreach($arrObjTramiteEmBlocoDTO as $tramiteEmBlocoDTO) { - //Remover blocos sem nenhum processo vinculado - $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); - $objPenBlocoProcessoDTO->setNumIdBloco($tramiteEmBlocoDTO->getNumId()); - $objPenBlocoProcessoDTO->retTodos(); - - $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); - $arrPenBlocoProcessoDTO = $objPenBlocoProcessoRN->listar($objPenBlocoProcessoDTO); - if ($arrPenBlocoProcessoDTO == null) { - $objTramiteEmBlocoRN->excluir(array($tramiteEmBlocoDTO)); - } else { - foreach ($arrPenBlocoProcessoDTO as $objPenBlocoProcessoDTO) { - $objAtividadeDTO = new AtividadeDTO(); - $objAtividadeDTO->setDistinct(true); - $objAtividadeDTO->retStrSiglaUnidade(); - $objAtividadeDTO->setNumIdUnidade($objPenBlocoProcessoDTO->getNumIdUnidade()); - $objAtividadeDTO->setOrdStrSiglaUnidade(InfraDTO::$TIPO_ORDENACAO_ASC); - $objAtividadeDTO->setDblIdProtocolo($objPenBlocoProcessoDTO->getDblIdProtocolo()); - $objAtividadeDTO->setDthConclusao(null); - - $objAtividadeRN = new AtividadeRN(); - $arrObjAtividadeDTO = $objAtividadeRN->listarRN0036($objAtividadeDTO); - if(count($arrObjAtividadeDTO) == 0) { - // ecluir processo do bloco - $objPenBlocoProcessoRN->excluir(array($objPenBlocoProcessoDTO)); - } - } - } - } - } + $this->validarBlocos($arrObjTramiteEmBlocoDTO); $this->atualizaOrdemTramiteEmBlocoPorUnidade(); @@ -3052,6 +3023,136 @@ protected function instalarV3070() $this->atualizarNumeroVersao("3.7.0"); } + /** + * Valida blocos de tramite + * + * @param $arrObjTramiteEmBlocoDTO + * @return void + */ + public function validarBlocos($arrObjTramiteEmBlocoDTO) + { + if (!is_null($arrObjTramiteEmBlocoDTO)) { + foreach($arrObjTramiteEmBlocoDTO as $tramiteEmBlocoDTO) { + //Remover blocos sem nenhum processo vinculado + $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); + $objPenBlocoProcessoDTO->setNumIdBloco($tramiteEmBlocoDTO->getNumId()); + $objPenBlocoProcessoDTO->retTodos(); + + $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); + $arrPenBlocoProcessoDTO = $objPenBlocoProcessoRN->listar($objPenBlocoProcessoDTO); + + if($arrPenBlocoProcessoDTO != null){ + foreach ($arrPenBlocoProcessoDTO as $objDTO) { + if ($objDTO->getNumIdAndamento() == ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE) { + continue; + } + + $objAtividadeDTO = new AtividadeDTO(); + $objAtividadeDTO->setDistinct(true); + $objAtividadeDTO->retStrSiglaUnidade(); + $objAtividadeDTO->setNumIdUnidade($tramiteEmBlocoDTO->getNumIdUnidade()); + $objAtividadeDTO->setOrdStrSiglaUnidade(InfraDTO::$TIPO_ORDENACAO_ASC); + $objAtividadeDTO->setDblIdProtocolo($objDTO->getDblIdProtocolo()); + $objAtividadeDTO->setDthConclusao(null); + + $objAtividadeRN = new AtividadeRN(); + $arrObjAtividadeDTO = $objAtividadeRN->listarRN0036($objAtividadeDTO); + if(count($arrObjAtividadeDTO) == 0) { + $objProcedimentoDTO = new ProcedimentoDTO(); + $objProcedimentoDTO->retStrProtocoloProcedimentoFormatado(); + $objProcedimentoDTO->retDblIdProcedimento(); + $objProcedimentoDTO->retNumIdUnidadeGeradoraProtocolo(); + $objProcedimentoDTO->setDblIdProcedimento($objDTO->getDblIdProtocolo()); + + $objProcedimentoRN = new ProcedimentoRN(); + $procedimento = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO); + + // Consultar atividae de envio interno + $objAtividadeDTO = new AtividadeDTO(); + $objAtividadeDTO->setDblIdProtocolo($objDTO->getDblIdProtocolo()); + $objAtividadeDTO->setNumIdTarefa(TarefaRN::$TI_PROCESSO_REMETIDO_UNIDADE); + $objAtividadeDTO->setOrdDthAbertura(InfraDTO::$TIPO_ORDENACAO_DESC); + $objAtividadeDTO->setNumMaxRegistrosRetorno(1); + $objAtividadeDTO->retNumIdAtividade(); + $objAtividadeDTO->retNumIdUnidade(); + $objAtividadeDTO->retNumIdTarefa(); + $objAtividadeRN = new AtividadeRN(); + $arrObjAtividadeDTO = $objAtividadeRN->listarRN0036($objAtividadeDTO); + + // excluir processo do bloco + if ($arrObjAtividadeDTO !== null && count($arrObjAtividadeDTO) > 0) { + if ($arrObjAtividadeDTO[0]->getNumIdUnidade() != $tramiteEmBlocoDTO->getNumIdUnidade()) { + $objPenBlocoProcessoBD = new PenBlocoProcessoBD(BancoSEI::getInstance()); + $objPenBlocoProcessoBD->excluir($objDTO); + } + } elseif ($tramiteEmBlocoDTO->getNumIdUnidade() != $procedimento->getNumIdUnidadeGeradoraProtocolo()) { + $objPenBlocoProcessoBD = new PenBlocoProcessoBD(BancoSEI::getInstance()); + $objPenBlocoProcessoBD->excluir($objDTO); + } + } + } + $arrPenBlocoProcessoDTO = $objPenBlocoProcessoRN->listar($objPenBlocoProcessoDTO); + } + + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + if ($arrPenBlocoProcessoDTO == null) { + $objTramiteEmBlocoRN->excluir(array($tramiteEmBlocoDTO)); + } elseif ($tramiteEmBlocoDTO->getStrStaEstado() == TramiteEmBlocoRN::$TE_CONCLUIDO_PARCIALMENTE) { + $estadoBloco = $this->validarSituacaoParaBloco($arrPenBlocoProcessoDTO, $tramiteEmBlocoDTO->getStrStaEstado()); + $tramiteEmBlocoDTO->setStrStaEstado($estadoBloco); + $objTramiteEmBlocoRN->alterar($tramiteEmBlocoDTO); + } + } + } + } + + /** + * Validar situacao para bloco + * + * @param array $arrObjTramiteEmBlocoProtocoloDTO + * @param string $situacaoBloco + * @return int + */ + public function validarSituacaoParaBloco($arrObjTramiteEmBlocoProtocoloDTO, $situacaoBloco) + { + $concluido = array( + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA, + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO, + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE, + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE + ); + $emAndamento = array( + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO, + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO, + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_ENVIADOS_REMETENTE, + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_METADADOS_RECEBIDO_DESTINATARIO, + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_RECEBIDOS_DESTINATARIO, + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_ENVIADO_DESTINATARIO + ); + + $qtdProcesos = count($arrObjTramiteEmBlocoProtocoloDTO); + $arrayConcluidos = array(); + $arrayEmAndamento = array(); + foreach ($arrObjTramiteEmBlocoProtocoloDTO as $objDTO) { + if (in_array($objDTO->getNumIdAndamento(), $concluido)) { + $arrayConcluidos[] = $objDTO; + } + + if (in_array($objDTO->getNumIdAndamento(), $emAndamento)) { + $arrayEmAndamento[] = $objDTO; + } + } + + if ($qtdProcesos == count($arrayConcluidos)) { + $situacaoBloco = TramiteEmBlocoRN::$TE_CONCLUIDO; + } + if (count($arrayEmAndamento) > 0) { + $situacaoBloco = TramiteEmBlocoRN::$TE_DISPONIBILIZADO; + } + + return $situacaoBloco; + } + public function atualizarHipotesesLegais() { $penRelHipoteseLegal = new PenRelHipoteseLegalDTO(); @@ -3235,7 +3336,7 @@ private function buscarIdAndamento($idProtocolo, $staBloco) $objPenProtocoloDTO = $objProtocoloBD->consultar($objPenProtocoloDTO); if (!empty($objPenProtocoloDTO) && $objPenProtocoloDTO->getStrSinObteveRecusa() == 'S') { - return ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO; + return ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA; } $objAtividadeDTO = new AtividadeDTO(); diff --git a/tests_sei4/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php b/tests_sei4/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php index 944c1da78..7f9c043a5 100644 --- a/tests_sei4/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php +++ b/tests_sei4/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php @@ -19,6 +19,8 @@ protected function cadastrar($dados = []) $this->objBlocoDeTramiteProtocoloDTO->setDblIdProtocolo($dados['IdProtocolo'] ?: null); $this->objBlocoDeTramiteProtocoloDTO->setNumIdBloco($dados['IdBloco'] ?: null); $this->objBlocoDeTramiteProtocoloDTO->setNumSequencia($dados['Sequencia'] ?: null); + $this->objBlocoDeTramiteProtocoloDTO->setNumIdUsuario($dados['IdUsuario'] ?: '100000001'); + $this->objBlocoDeTramiteProtocoloDTO->setNumIdUnidade($dados['IdUnidade'] ?: '110000001'); $dthRegistro = date('d/m/Y H:i:s'); $this->objBlocoDeTramiteProtocoloDTO->setDthRegistro($dados['DthRegistro'] ?: $dthRegistro); $this->objBlocoDeTramiteProtocoloDTO->setDthAtualizado($dados['DthAtualizado'] ?: $dthRegistro); diff --git a/tests_sei41/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php b/tests_sei41/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php index 944c1da78..7f9c043a5 100644 --- a/tests_sei41/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php +++ b/tests_sei41/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php @@ -19,6 +19,8 @@ protected function cadastrar($dados = []) $this->objBlocoDeTramiteProtocoloDTO->setDblIdProtocolo($dados['IdProtocolo'] ?: null); $this->objBlocoDeTramiteProtocoloDTO->setNumIdBloco($dados['IdBloco'] ?: null); $this->objBlocoDeTramiteProtocoloDTO->setNumSequencia($dados['Sequencia'] ?: null); + $this->objBlocoDeTramiteProtocoloDTO->setNumIdUsuario($dados['IdUsuario'] ?: '100000001'); + $this->objBlocoDeTramiteProtocoloDTO->setNumIdUnidade($dados['IdUnidade'] ?: '110000001'); $dthRegistro = date('d/m/Y H:i:s'); $this->objBlocoDeTramiteProtocoloDTO->setDthRegistro($dados['DthRegistro'] ?: $dthRegistro); $this->objBlocoDeTramiteProtocoloDTO->setDthAtualizado($dados['DthAtualizado'] ?: $dthRegistro); diff --git a/tests_super/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php b/tests_super/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php index 4ecd17294..88a64cfe2 100644 --- a/tests_super/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php +++ b/tests_super/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php @@ -19,6 +19,8 @@ protected function cadastrar($dados = []) $this->objBlocoDeTramiteProtocoloDTO->setDblIdProtocolo($dados['IdProtocolo'] ?: null); $this->objBlocoDeTramiteProtocoloDTO->setNumIdBloco($dados['IdBloco'] ?: null); $this->objBlocoDeTramiteProtocoloDTO->setNumSequencia($dados['Sequencia'] ?: null); + $this->objBlocoDeTramiteProtocoloDTO->setNumIdUsuario($dados['IdUsuario'] ?: '100000001'); + $this->objBlocoDeTramiteProtocoloDTO->setNumIdUnidade($dados['IdUnidade'] ?: '110000001'); $dthRegistro = date('d/m/Y H:i:s'); $this->objBlocoDeTramiteProtocoloDTO->setDthRegistro($dados['DthRegistro'] ?: $dthRegistro); $this->objBlocoDeTramiteProtocoloDTO->setDthAtualizado($dados['DthAtualizado'] ?: $dthRegistro);