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);