diff --git a/src/pen_map_envio_parcial_cadastrar.php b/src/pen_map_envio_parcial_cadastrar.php
index 9152a7f63..5f4530150 100644
--- a/src/pen_map_envio_parcial_cadastrar.php
+++ b/src/pen_map_envio_parcial_cadastrar.php
@@ -46,6 +46,12 @@
exit(0);
}
+ if (empty($_POST['hdnIdUnidade']) || empty($_POST['txtUnidade']) || $_POST['txtUnidade'] == "0") {
+ $objPaginaSEI->adicionarMensagem('O Órgao não foi selecionado.', InfraPagina::$TIPO_MSG_ERRO);
+ header('Location: ' . $objSessaoSEI->assinarLink('controlador.php?acao=' . $acao . '&acao_=' . $_GET['acao_']));
+ exit(0);
+ }
+
$numIdUnidadePen = $_POST['hdnIdUnidade'];
$strUnidadePen = $_POST['txtUnidade'];
$numIdRepositorio = $_POST['selRepositorioEstruturas'];
@@ -74,15 +80,8 @@
$objDTO = new PenRestricaoEnvioComponentesDigitaisDTO();
$objDTO->setNumIdEstrutura($numIdRepositorio);
$objDTO->setStrStrEstrutura($txtRepositorioEstruturas);
-
- if (!empty($numIdUnidadePen)) {
- $objDTO->setNumIdUnidadePen($numIdUnidadePen);
- $objDTO->setStrStrUnidadePen($strUnidadePen);
- }
-
- if (empty($numIdUnidadePen)) {
- $objDTO->setNumIdUnidadePen(null);
- }
+ $objDTO->setNumIdUnidadePen($numIdUnidadePen);
+ $objDTO->setStrStrUnidadePen($strUnidadePen);
$messagem = TITULO_PAGINA . " cadastrado com sucesso.";
if (!empty($_GET['Id'])) {
diff --git a/src/pen_map_envio_parcial_listar.php b/src/pen_map_envio_parcial_listar.php
index da0e2ddcb..6aee18e13 100644
--- a/src/pen_map_envio_parcial_listar.php
+++ b/src/pen_map_envio_parcial_listar.php
@@ -146,15 +146,13 @@
. '';
$strResultado .= '
'
- . (!empty($objPenRestricaoEnvioComponentesDigitaisDTO->getNumIdUnidadePen())
- ? $objPenRestricaoEnvioComponentesDigitaisDTO->getNumIdUnidadePen()
- : '--')
+ . $objPenRestricaoEnvioComponentesDigitaisDTO->getNumIdUnidadePen()
. ' | ';
+
$strResultado .= ''
- . (!empty($objPenRestricaoEnvioComponentesDigitaisDTO->getStrStrUnidadePen())
- ? $objPenRestricaoEnvioComponentesDigitaisDTO->getStrStrUnidadePen()
- : '--')
+ . $objPenRestricaoEnvioComponentesDigitaisDTO->getStrStrUnidadePen()
. ' | ';
+
$strResultado .= '';
if ($objSessaoSEI->verificarPermissao('pen_map_envio_parcial_atualizar')) {
diff --git a/src/rn/ExpedirProcedimentoRN.php b/src/rn/ExpedirProcedimentoRN.php
index 1389ba4fa..a6c93fc69 100755
--- a/src/rn/ExpedirProcedimentoRN.php
+++ b/src/rn/ExpedirProcedimentoRN.php
@@ -522,18 +522,6 @@ private function construirCabecalho(ExpedirProcedimentoDTO $objExpedirProcedimen
*/
private function enviarApenasComponentesDigitaisPendentes($numIdRepositorioDestino, $numIdUnidadeDestino)
{
- $objEnvioParcialDTO = new PenRestricaoEnvioComponentesDigitaisDTO();
- $objEnvioParcialDTO->retNumIdEstrutura();
- $objEnvioParcialDTO->retNumIdUnidadePen();
- $objEnvioParcialDTO->setNumIdEstrutura($numIdRepositorioDestino);
- $objEnvioParcialDTO->setNumIdUnidadePen(null);
-
- $objEnvioParcialRN = new PenRestricaoEnvioComponentesDigitaisRN();
- $objEnvioParcialDTO = $objEnvioParcialRN->consultar($objEnvioParcialDTO);
- if (!is_null($objEnvioParcialDTO)) {
- return true;
- }
-
$objEnvioParcialDTO = new PenRestricaoEnvioComponentesDigitaisDTO();
$objEnvioParcialDTO->retNumIdEstrutura();
$objEnvioParcialDTO->retNumIdUnidadePen();
diff --git a/src/rn/ProcessoEletronicoRN.php b/src/rn/ProcessoEletronicoRN.php
index 795a6bb4f..c19e332e5 100755
--- a/src/rn/ProcessoEletronicoRN.php
+++ b/src/rn/ProcessoEletronicoRN.php
@@ -261,18 +261,17 @@ public function listarRepositoriosDeEstruturas()
* @throws InfraException
*/
public function consultarEstrutura($idRepositorioEstrutura, $numeroDeIdentificacaoDaEstrutura, $bolRetornoRaw = false)
- {
+ {
try {
+ $parametros = new stdClass();
+ $parametros->filtroDeEstruturas = new stdClass();
+ $parametros->filtroDeEstruturas->identificacaoDoRepositorioDeEstruturas = $idRepositorioEstrutura;
+ $parametros->filtroDeEstruturas->numeroDeIdentificacaoDaEstrutura = $numeroDeIdentificacaoDaEstrutura;
+ $parametros->filtroDeEstruturas->apenasAtivas = false;
- $parametros = new stdClass();
- $parametros->filtroDeEstruturas = new stdClass();
- $parametros->filtroDeEstruturas->identificacaoDoRepositorioDeEstruturas = $idRepositorioEstrutura;
- $parametros->filtroDeEstruturas->numeroDeIdentificacaoDaEstrutura = $numeroDeIdentificacaoDaEstrutura;
- $parametros->filtroDeEstruturas->apenasAtivas = false;
-
- $result = $this->tentarNovamenteSobErroHTTP(function($objPenWs) use ($parametros) {
- return $objPenWs->consultarEstruturas($parametros);
- });
+ $result = $this->tentarNovamenteSobErroHTTP(function ($objPenWs) use ($parametros) {
+ return $objPenWs->consultarEstruturas($parametros);
+ });
if ($result->estruturasEncontradas->totalDeRegistros == 1) {
$arrObjEstrutura = is_array($result->estruturasEncontradas->estrutura) ? $result->estruturasEncontradas->estrutura : array($result->estruturasEncontradas->estrutura);
@@ -284,31 +283,29 @@ public function consultarEstrutura($idRepositorioEstrutura, $numeroDeIdentificac
if ($bolRetornoRaw !== false) {
if (isset($objEstrutura->hierarquia) && isset($objEstrutura->hierarquia->nivel)) {
if (!is_array($objEstrutura->hierarquia->nivel)) {
- $objEstrutura->hierarquia->nivel = array($objEstrutura->hierarquia->nivel);
+ $objEstrutura->hierarquia->nivel = array($objEstrutura->hierarquia->nivel);
}
foreach ($objEstrutura->hierarquia->nivel as &$objNivel) {
- $objNivel->nome = utf8_decode($objNivel->nome);
+ $objNivel->nome = utf8_decode($objNivel->nome);
}
}
- return $objEstrutura;
- }
- else {
- $objEstruturaDTO = new EstruturaDTO();
- $objEstruturaDTO->setNumNumeroDeIdentificacaoDaEstrutura($objEstrutura->numeroDeIdentificacaoDaEstrutura);
- $objEstruturaDTO->setStrNome($objEstrutura->nome);
- $objEstruturaDTO->setStrSigla($objEstrutura->sigla);
- $objEstruturaDTO->setBolAtivo($objEstrutura->ativo);
- $objEstruturaDTO->setBolAptoParaReceberTramites($objEstrutura->aptoParaReceberTramites);
- $objEstruturaDTO->setStrCodigoNoOrgaoEntidade($objEstrutura->codigoNoOrgaoEntidade);
- return $objEstruturaDTO;
+ return $objEstrutura;
+ } else {
+ $objEstruturaDTO = new EstruturaDTO();
+ $objEstruturaDTO->setNumNumeroDeIdentificacaoDaEstrutura($objEstrutura->numeroDeIdentificacaoDaEstrutura);
+ $objEstruturaDTO->setStrNome($objEstrutura->nome);
+ $objEstruturaDTO->setStrSigla($objEstrutura->sigla);
+ $objEstruturaDTO->setBolAtivo($objEstrutura->ativo);
+ $objEstruturaDTO->setBolAptoParaReceberTramites($objEstrutura->aptoParaReceberTramites);
+ $objEstruturaDTO->setStrCodigoNoOrgaoEntidade($objEstrutura->codigoNoOrgaoEntidade);
+ return $objEstruturaDTO;
}
}
- }
- catch (Exception $e) {
- $mensagem = "Falha na obtenção de unidades externas";
- $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e));
- throw new InfraException($mensagem, $e, $detalhes);
+ } catch (Exception $e) {
+ $mensagem = "Falha na obtenção de unidades externas";
+ $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e));
+ throw new InfraException($mensagem, $e, $detalhes);
}
}
@@ -323,31 +320,25 @@ public function consultarEstrutura($idRepositorioEstrutura, $numeroDeIdentificac
public function consultarEstruturasPorEstruturaPai($idRepositorioEstrutura, $numeroDeIdentificacaoDaEstrutura = null, $bolRetornoRaw = false)
{
try {
- $parametros = new stdClass();
- $parametros->filtroDeEstruturasPorEstruturaPai = new stdClass();
- $parametros->filtroDeEstruturasPorEstruturaPai->identificacaoDoRepositorioDeEstruturas = $idRepositorioEstrutura;
-
- if(!is_null($numeroDeIdentificacaoDaEstrutura)){
- $parametros->filtroDeEstruturasPorEstruturaPai->numeroDeIdentificacaoDaEstrutura = $numeroDeIdentificacaoDaEstrutura;
+ $estruturasUnidades = null;
+ if (is_null($numeroDeIdentificacaoDaEstrutura)) {
+ $estruturasUnidades = $this->validarRestricaoUnidadesCadastradas($idRepositorioEstrutura);
}
- $parametros->filtroDeEstruturasPorEstruturaPai->apenasAtivas = true;
- $result = $this->tentarNovamenteSobErroHTTP(function($objPenWs) use ($parametros) {
- return $objPenWs->consultarEstruturasPorEstruturaPai($parametros);
- });
-
- $estruturasUnidades = is_array($result->estruturasEncontradasNoFiltroPorEstruturaPai->estrutura) ? $result->estruturasEncontradasNoFiltroPorEstruturaPai->estrutura : array($result->estruturasEncontradasNoFiltroPorEstruturaPai->estrutura);
+ if (is_null($estruturasUnidades)) {
+ $estruturasUnidades = $this->buscarEstruturasPorEstruturaPai($idRepositorioEstrutura, $numeroDeIdentificacaoDaEstrutura);
+ }
- //Cria um array com os nomes da unidades para realizar a ordenação das mesmas
- $nomesUnidades = [];
+ //Cria um array com os nomes da unidades para realizar a ordenação das mesmas
+ $nomesUnidades = [];
foreach ($estruturasUnidades as $estrutura) {
$nomesUnidades[] = $estrutura->nome;
}
- //Ordena as unidades pelo nome
- array_multisort($nomesUnidades, SORT_ASC, $estruturasUnidades);
+ //Ordena as unidades pelo nome
+ array_multisort($nomesUnidades, SORT_ASC, $estruturasUnidades);
- return $estruturasUnidades;
+ return $estruturasUnidades;
}
catch (Exception $e) {
$mensagem = "Falha na obtenção de unidades externas";
@@ -356,66 +347,148 @@ public function consultarEstruturasPorEstruturaPai($idRepositorioEstrutura, $num
}
}
- public function listarEstruturas($idRepositorioEstrutura, $nome = '', $numeroDeIdentificacaoDaEstruturaRaizDaConsulta = null,
- $nomeUnidade = null, $siglaUnidade = null, $offset = null, $registrosPorPagina = null, $parBolPermiteRecebimento = null, $parBolPermiteEnvio = null)
- {
- $arrObjEstruturaDTO = array();
-
- try{
- $idRepositorioEstrutura = filter_var($idRepositorioEstrutura, FILTER_SANITIZE_NUMBER_INT);
- if(!$idRepositorioEstrutura) {
- throw new InfraException("Repositório de Estruturas inválido");
- }
-
+ /**
+ * Verifica se o repositório de estruturas possui limitação de repositórios/unidades mapeadas
+ *
+ * @param $idRepositorioEstrutura
+ * @return array|null
+ */
+ private function validarRestricaoUnidadesCadastradas($idRepositorioEstrutura)
+ {
+ //Verificar limitação de repositórios/unidades mapeadas
+ $arrEstruturasCadastradas = null;
+ try {
+ $objUnidadeDTO = new PenUnidadeDTO();
+ $objUnidadeDTO->retNumIdUnidadeRH();
+ $objUnidadeDTO->retNumIdUnidade();
+ $objUnidadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual());
+
+ $objUnidadeRN = new UnidadeRN();
+ $objUnidadeDTO = $objUnidadeRN->consultarRN0125($objUnidadeDTO);
+
+ $objPenUnidadeRestricaoDTO = new PenUnidadeRestricaoDTO();
+ $objPenUnidadeRestricaoDTO->setNumIdUnidade($objUnidadeDTO->getNumIdUnidade());
+ $objPenUnidadeRestricaoDTO->setNumIdUnidadeRH($objUnidadeDTO->getNumIdUnidadeRH());
+ $objPenUnidadeRestricaoDTO->setNumIdUnidadeRestricao($idRepositorioEstrutura);
+ $objPenUnidadeRestricaoDTO->setNumIdUnidadeRHRestricao(null, InfraDTO::$OPER_DIFERENTE);
+ $objPenUnidadeRestricaoDTO->retNumIdUnidadeRHRestricao();
+ $objPenUnidadeRestricaoDTO->retStrNomeUnidadeRHRestricao();
+
+ $objPenUnidadeRestricaoRN = new PenUnidadeRestricaoRN();
+ $restricaoCadastrada = $objPenUnidadeRestricaoRN->contar($objPenUnidadeRestricaoDTO);
+ $restricaoCadastrada = $restricaoCadastrada > 0;
+
+ if ($restricaoCadastrada) {
+ $arrEstruturasCadastradas = array();
+ $arrEstruturas = $objPenUnidadeRestricaoRN->listar($objPenUnidadeRestricaoDTO);
$parametros = new stdClass();
$parametros->filtroDeEstruturas = new stdClass();
$parametros->filtroDeEstruturas->identificacaoDoRepositorioDeEstruturas = $idRepositorioEstrutura;
$parametros->filtroDeEstruturas->apenasAtivas = true;
+ foreach ($arrEstruturas as $unidade) {
+ if ($unidade->getNumIdUnidadeRHRestricao() != null) {
+ $parametros->filtroDeEstruturas->numeroDeIdentificacaoDaEstrutura = $unidade->getNumIdUnidadeRHRestricao();
+ $result = $this->tentarNovamenteSobErroHTTP(function ($objPenWs) use ($parametros) {
+ return $objPenWs->consultarEstruturas($parametros);
+ });
+
+ if ($result->estruturasEncontradas->totalDeRegistros == 0) {
+ continue;
+ }
- if(!is_null($numeroDeIdentificacaoDaEstruturaRaizDaConsulta)){
- $parametros->filtroDeEstruturas->numeroDeIdentificacaoDaEstruturaRaizDaConsulta = $numeroDeIdentificacaoDaEstruturaRaizDaConsulta;
- }else{
- $nome = trim($nome);
- if(is_numeric($nome)) {
- $parametros->filtroDeEstruturas->numeroDeIdentificacaoDaEstrutura = intval($nome);
- } else {
- $parametros->filtroDeEstruturas->nome = utf8_encode($nome);
+ if ($result->estruturasEncontradas->totalDeRegistros > 1) {
+ foreach ($result->estruturasEncontradas->estrutura as $value) {
+ $arrEstruturasCadastradas[] = $value;
+ }
+ } else {
+ $arrEstruturasCadastradas[] = $result->estruturasEncontradas->estrutura;
+ }
+ }
}
}
+ } catch (Exception $e) {
+ }
- if(!is_null($siglaUnidade)){
- $parametros->filtroDeEstruturas->sigla = $siglaUnidade;
- }
+ return $arrEstruturasCadastradas;
+ }
- if(!is_null($nomeUnidade)){
- $parametros->filtroDeEstruturas->nome = utf8_encode($nomeUnidade);
- }
+ /**
+ * Busca estruturas por estrutura pai
+ *
+ * @param $idRepositorioEstrutura
+ * @param null|string $numeroDeIdentificacaoDaEstrutura
+ * @return array
+ */
+ private function buscarEstruturasPorEstruturaPai($idRepositorioEstrutura, $numeroDeIdentificacaoDaEstrutura = null)
+ {
+ $parametros = new stdClass();
+ $parametros->filtroDeEstruturasPorEstruturaPai = new stdClass();
+ $parametros->filtroDeEstruturasPorEstruturaPai->identificacaoDoRepositorioDeEstruturas = $idRepositorioEstrutura;
- if(!is_null($registrosPorPagina) && !is_null($offset)){
- $parametros->filtroDeEstruturas->paginacao = new stdClass();
- $parametros->filtroDeEstruturas->paginacao->registroInicial = $offset;
- $parametros->filtroDeEstruturas->paginacao->quantidadeDeRegistros = $registrosPorPagina;
- }
+ if(!is_null($numeroDeIdentificacaoDaEstrutura)){
+ $parametros->filtroDeEstruturasPorEstruturaPai->numeroDeIdentificacaoDaEstrutura = $numeroDeIdentificacaoDaEstrutura;
+ }
- if(!is_null($parBolPermiteRecebimento) && $parBolPermiteRecebimento === true){
- $parametros->filtroDeEstruturas->permiteRecebimento = true;
- }
+ $parametros->filtroDeEstruturasPorEstruturaPai->apenasAtivas = true;
+ $result = $this->tentarNovamenteSobErroHTTP(function($objPenWs) use ($parametros) {
+ return $objPenWs->consultarEstruturasPorEstruturaPai($parametros);
+ });
+
+ return is_array($result->estruturasEncontradasNoFiltroPorEstruturaPai->estrutura)
+ ? $result->estruturasEncontradasNoFiltroPorEstruturaPai->estrutura
+ : array($result->estruturasEncontradasNoFiltroPorEstruturaPai->estrutura);
+ }
- if(!is_null($parBolPermiteEnvio) && $parBolPermiteEnvio === true){
- $parametros->filtroDeEstruturas->permiteEnvio = true;
+ public function listarEstruturas(
+ $idRepositorioEstrutura,
+ $nome = '',
+ $numeroDeIdentificacaoDaEstruturaRaizDaConsulta = null,
+ $nomeUnidade = null,
+ $siglaUnidade = null,
+ $offset = null,
+ $registrosPorPagina = null,
+ $parBolPermiteRecebimento = null,
+ $parBolPermiteEnvio = null
+ ) {
+ $arrObjEstruturaDTO = array();
+
+ try {
+ $idRepositorioEstrutura = filter_var($idRepositorioEstrutura, FILTER_SANITIZE_NUMBER_INT);
+ if (!$idRepositorioEstrutura) {
+ throw new InfraException("Repositório de Estruturas inválido");
}
- $result = $this->tentarNovamenteSobErroHTTP(function($objPenWs) use ($parametros) {
- return $objPenWs->consultarEstruturas($parametros);
- });
+ $totalDeRegistros = 0;
+ $estruturasUnidades = null;
+ if (is_null($numeroDeIdentificacaoDaEstruturaRaizDaConsulta) || empty($numeroDeIdentificacaoDaEstruturaRaizDaConsulta)) {
+ $estruturasUnidades = $this->validarRestricaoUnidadesCadastradas($idRepositorioEstrutura);
+ $totalDeRegistros = is_null($estruturasUnidades) ? 0 : count($estruturasUnidades);
+ }
- if($result->estruturasEncontradas->totalDeRegistros > 0) {
+ if (is_null($estruturasUnidades)) {
+ $result = $this->buscarListaEstruturas(array(
+ [
+ 'idRepositorioEstrutura' => $idRepositorioEstrutura,
+ 'nome' => $nome,
+ 'numeroDeIdentificacaoDaEstruturaRaizDaConsulta' => $numeroDeIdentificacaoDaEstruturaRaizDaConsulta,
+ 'nomeUnidade' => $nomeUnidade,
+ 'siglaUnidade' => $siglaUnidade,
+ 'offset' => $offset,
+ 'registrosPorPagina' => $registrosPorPagina,
+ 'parBolPermiteRecebimento' => $parBolPermiteRecebimento,
+ 'parBolPermiteEnvio' => $parBolPermiteEnvio
+ ]
+ ));
- if(!is_array($result->estruturasEncontradas->estrutura)) {
- $result->estruturasEncontradas->estrutura = array($result->estruturasEncontradas->estrutura);
+ $totalDeRegistros = $result->estruturasEncontradas->totalDeRegistros;
+ if ($totalDeRegistros > 0 && !is_array($result->estruturasEncontradas->estrutura)) {
+ $result->estruturasEncontradas->estrutura = array($result->estruturasEncontradas->estrutura);
}
+ $estruturasUnidades = $result->estruturasEncontradas->estrutura;
+ }
- foreach ($result->estruturasEncontradas->estrutura as $estrutura) {
+ if ($totalDeRegistros > 0) {
+ foreach ($estruturasUnidades as $estrutura) {
$item = new EstruturaDTO();
$item->setNumNumeroDeIdentificacaoDaEstrutura($estrutura->numeroDeIdentificacaoDaEstrutura);
$item->setStrNome(utf8_decode($estrutura->nome));
@@ -423,27 +496,73 @@ public function listarEstruturas($idRepositorioEstrutura, $nome = '', $numeroDeI
$item->setBolAtivo($estrutura->ativo);
$item->setBolAptoParaReceberTramites($estrutura->aptoParaReceberTramites);
$item->setStrCodigoNoOrgaoEntidade($estrutura->codigoNoOrgaoEntidade);
- $item->setNumTotalDeRegistros($result->estruturasEncontradas->totalDeRegistros);
+ $item->setNumTotalDeRegistros($totalDeRegistros);
- if(!empty($estrutura->hierarquia->nivel)) {
+ if (!empty($estrutura->hierarquia->nivel)) {
$array = array();
- foreach($estrutura->hierarquia->nivel as $nivel) {
+ foreach ($estrutura->hierarquia->nivel as $nivel) {
$array[] = utf8_decode($nivel->sigla);
}
$item->setArrHierarquia($array);
}
- $arrObjEstruturaDTO[] = $item;
+ $arrObjEstruturaDTO[] = $item;
}
}
-
} catch (Exception $e) {
- $mensagem = "Falha na obtenção de unidades externas";
- $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e));
- throw new InfraException($mensagem, $e, $detalhes);
+ $mensagem = "Falha na obtenção de unidades externas";
+ $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e));
+ throw new InfraException($mensagem, $e, $detalhes);
+ }
+
+ return $arrObjEstruturaDTO;
+ }
+
+ private function buscarListaEstruturas(
+ $idRepositorioEstrutura,
+ $filtro = array()
+ ) {
+ $parametros = new stdClass();
+ $parametros->filtroDeEstruturas = new stdClass();
+ $parametros->filtroDeEstruturas->identificacaoDoRepositorioDeEstruturas = $idRepositorioEstrutura;
+ $parametros->filtroDeEstruturas->apenasAtivas = true;
+
+ if (!is_null($filtro['numeroDeIdentificacaoDaEstruturaRaizDaConsulta'])) {
+ $parametros->filtroDeEstruturas->numeroDeIdentificacaoDaEstruturaRaizDaConsulta = $filtro['numeroDeIdentificacaoDaEstruturaRaizDaConsulta'];
+ } else {
+ $nome = trim($filtro['nome']);
+ if (is_numeric($nome)) {
+ $parametros->filtroDeEstruturas->numeroDeIdentificacaoDaEstrutura = intval($nome);
+ } else {
+ $parametros->filtroDeEstruturas->nome = utf8_encode($nome);
+ }
+ }
+
+ if (!is_null($filtro['siglaUnidade'])) {
+ $parametros->filtroDeEstruturas->sigla = $filtro['siglaUnidade'];
+ }
+
+ if (!is_null($filtro['nomeUnidade'])) {
+ $parametros->filtroDeEstruturas->nome = utf8_encode($filtro['nomeUnidade']);
+ }
+
+ if (!is_null($filtro['registrosPorPagina']) && !is_null($filtro['offset'])) {
+ $parametros->filtroDeEstruturas->paginacao = new stdClass();
+ $parametros->filtroDeEstruturas->paginacao->registroInicial = $filtro['offset'];
+ $parametros->filtroDeEstruturas->paginacao->quantidadeDeRegistros = $filtro['registrosPorPagina'];
+ }
+
+ if (!is_null($filtro['parBolPermiteRecebimento']) && $filtro['parBolPermiteRecebimento'] === true) {
+ $parametros->filtroDeEstruturas->permiteRecebimento = true;
+ }
+
+ if (!is_null($filtro['parBolPermiteEnvio']) && $filtro['parBolPermiteEnvio'] === true) {
+ $parametros->filtroDeEstruturas->permiteEnvio = true;
}
- return $arrObjEstruturaDTO;
+ return $this->tentarNovamenteSobErroHTTP(function ($objPenWs) use ($parametros) {
+ return $objPenWs->consultarEstruturas($parametros);
+ });
}
public function listarEstruturasAutoCompletar(
diff --git a/src/scripts/sei_atualizar_versao_modulo_pen.php b/src/scripts/sei_atualizar_versao_modulo_pen.php
index 320713889..b2820d347 100755
--- a/src/scripts/sei_atualizar_versao_modulo_pen.php
+++ b/src/scripts/sei_atualizar_versao_modulo_pen.php
@@ -2765,8 +2765,8 @@ protected function instalarV3060()
'id_comp_digitais' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO),
'id_estrutura' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO),
'str_estrutura' => array($objMetaBD->tipoTextoGrande(), PenMetaBD::NNULLO),
- 'id_unidade_pen' => array($objMetaBD->tipoNumero(), PenMetaBD::SNULLO),
- 'str_unidade_pen' => array($objMetaBD->tipoTextoGrande(), PenMetaBD::SNULLO),
+ 'id_unidade_pen' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO),
+ 'str_unidade_pen' => array($objMetaBD->tipoTextoGrande(), PenMetaBD::NNULLO),
),
'pk' => array('cols' => array('id_comp_digitais')),
'uk' => array('id_estrutura', 'id_unidade_pen'),
|