Skip to content

Commit

Permalink
Merge pull request #1 from anatelgovbr/correios_v2.1_final
Browse files Browse the repository at this point in the history
Correções na v2.1 dos Correios e subimos o mínimo requerido para o SE…
  • Loading branch information
neijobson committed Aug 25, 2023
2 parents c1a5c96 + 84dad9b commit 086108a
Show file tree
Hide file tree
Showing 9 changed files with 126 additions and 44 deletions.
16 changes: 9 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
# Módulo SEI Correios

## Requisitos
- SEI 4.0.9 instalado/atualizado (Não é compatível com o SEI 3.1.x).
- Requisito Mínimo é o SEI 4.0.12 instalado/atualizado - Não é compatível com versões anteriores e em versões mais recentes é necessário conferir antes se possui compatibilidade.
- Verificar valor da constante de versão no arquivo /sei/web/SEI.php ou, após logado no sistema, parando o mouse sobre a logo do SEI no canto superior esquerdo.
- Antes de executar os scripts de instalação/atualização, o usuário de acesso aos bancos de dados do SEI e do SIP, constante nos arquivos ConfiguracaoSEI.php e ConfiguracaoSip.php, deverá ter permissão de acesso total ao banco de dados, permitindo, por exemplo, criação e exclusão de tabelas.
- Os códigos-fonte do Módulo podem ser baixados a partir do link a seguir, devendo sempre utilizar a versão mais recente: [https://github.com/anatelgovbr/mod-sei-correios/releases](https://github.com/anatelgovbr/mod-sei-correios/releases "Clique e acesse")
- Se já tiver instalado a versão principal com a execução dos scripts de banco do módulo no SEI e no SIP, então basta sobrescrever os códigos e não precisa executar os scripts de banco novamente.
- Atualizações apenas de código são identificadas com o incremento apenas do terceiro dígito da versão (p. ex. v4.1.1, v4.1.2) e não envolve execução de scripts de banco.

## Procedimentos para Instalação
1. Antes, fazer backup dos bancos de dados do SEI e do SIP.
2. Carregar no servidor os arquivos do módulo localizados na pasta "/sei/web/modulos/correios" e os scripts de instalação/atualização "/sip/scripts/sip_atualizar_versao_modulo_correios.php" e "/sei/scripts/sei_atualizar_versao_modulo_correios.php".
1. Fazer backup dos bancos de dados do SEI e do SIP.
2. Carregar no servidor os arquivos do módulo nas pastas correspondentes nos servidores do SEI e do SIP.
- **Caso se trate de atualização de versão anterior do Módulo**, antes de copiar os códigos-fontes para a pasta "/sei/web/modulos/correios", é necessário excluir os arquivos anteriores pré existentes na mencionada pasta, para não manter arquivos de códigos que foram renomeados ou descontinuados.
3. Editar o arquivo "/sei/config/ConfiguracaoSEI.php", tomando o cuidado de usar editor que não altere o charset do arquivo, para adicionar a referência à classe de integração do módulo e seu caminho relativo dentro da pasta "/sei/web/modulos" na array 'Modulos' da chave 'SEI':

Expand All @@ -35,9 +37,9 @@
9. Após a execução com sucesso, com um usuário com permissão de Administrador no SEI, seguir os passos dispostos no tópico "Orientações Negociais" mais abaixo.
10. Para o funcionamento correto do Módulo SEI Correios é necessária a instalação da biblioteca PHP "ImageMagick" e "ImageMagick-devel" em cada nó de aplicação do SEI, conforme comandos abaixo:

Execute a linha de comando "yum install -y ImageMagick ImageMagick-devel"
Execute a linha de comando "pecl install imagick"
Modifique o arquvivo "/etc/php.ini", incluindo a linha "extension=imagick.so" no final da seção "Dynamic Extensions"
Execute a linha de comando "yum install -y ImageMagick ImageMagick-devel"
Execute a linha de comando "pecl install imagick"
Modifique o arquvivo "/etc/php.ini", incluindo a linha "extension=imagick.so" no final da seção "Dynamic Extensions"


## Orientações Negociais
Expand Down Expand Up @@ -101,4 +103,4 @@
- Iniciar Processo > Ofício > Solicitar Expedição pelos Correios:
- Solicitar Expedição pelos Correios:
- Após iniciar um Processo e vincular um documento do tipo "Ofício" é realizar a assinatura do documento será exibido o icone "Solicitar Expedição pelos Correios".
- Na tela de "Solicitar Expedição pelos Correios" é possível alterar os dados dos "Documentos Expedidos" e preencher o "Formato de Expedição dos Documentos" é incluir uma "Observação".
- Na tela de "Solicitar Expedição pelos Correios" é possível alterar os dados dos "Documentos Expedidos" e preencher o "Formato de Expedição dos Documentos" é incluir uma "Observação".
16 changes: 11 additions & 5 deletions sei/scripts/sei_atualizar_versao_modulo_correios.php
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,15 @@ private function finalizar($strMsg = null, $bolErro = false)
die;
}

protected function normalizaVersao($versao)
{
$ultimoPonto = strrpos($versao, '.');
if ($ultimoPonto !== false) {
$versao = substr($versao, 0, $ultimoPonto) . substr($versao, $ultimoPonto + 1);
}
return $versao;
}

protected function atualizarVersaoConectado()
{

Expand All @@ -80,11 +89,8 @@ protected function atualizarVersaoConectado()
}

//testando versao do framework
$numVersaoInfraRequerida = '1.612.3';
$versaoInfraFormatada = (int)str_replace('.', '', VERSAO_INFRA);
$versaoInfraReqFormatada = (int)str_replace('.', '', $numVersaoInfraRequerida);

if ($versaoInfraFormatada < $versaoInfraReqFormatada) {
$numVersaoInfraRequerida = '2.0.18';
if ($this->normalizaVersao(VERSAO_INFRA) < $this->normalizaVersao($numVersaoInfraRequerida)) {
$this->finalizar('VERSÃO DO FRAMEWORK PHP INCOMPATÍVEL (VERSÃO ATUAL ' . VERSAO_INFRA . ', SENDO REQUERIDA VERSÃO IGUAL OU SUPERIOR A ' . $numVersaoInfraRequerida . ')', true);
}

Expand Down
16 changes: 9 additions & 7 deletions sei/web/modulos/correios/README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
# Módulo SEI Correios

## Requisitos
- SEI 4.0.9 instalado/atualizado (Não é compatível com o SEI 3.1.x).
- Requisito Mínimo é o SEI 4.0.12 instalado/atualizado - Não é compatível com versões anteriores e em versões mais recentes é necessário conferir antes se possui compatibilidade.
- Verificar valor da constante de versão no arquivo /sei/web/SEI.php ou, após logado no sistema, parando o mouse sobre a logo do SEI no canto superior esquerdo.
- Antes de executar os scripts de instalação/atualização, o usuário de acesso aos bancos de dados do SEI e do SIP, constante nos arquivos ConfiguracaoSEI.php e ConfiguracaoSip.php, deverá ter permissão de acesso total ao banco de dados, permitindo, por exemplo, criação e exclusão de tabelas.
- Os códigos-fonte do Módulo podem ser baixados a partir do link a seguir, devendo sempre utilizar a versão mais recente: [https://github.com/anatelgovbr/mod-sei-correios/releases](https://github.com/anatelgovbr/mod-sei-correios/releases "Clique e acesse")
- Se já tiver instalado a versão principal com a execução dos scripts de banco do módulo no SEI e no SIP, então basta sobrescrever os códigos e não precisa executar os scripts de banco novamente.
- Atualizações apenas de código são identificadas com o incremento apenas do terceiro dígito da versão (p. ex. v4.1.1, v4.1.2) e não envolve execução de scripts de banco.

## Procedimentos para Instalação
1. Antes, fazer backup dos bancos de dados do SEI e do SIP.
2. Carregar no servidor os arquivos do módulo localizados na pasta "/sei/web/modulos/correios" e os scripts de instalação/atualização "/sip/scripts/sip_atualizar_versao_modulo_correios.php" e "/sei/scripts/sei_atualizar_versao_modulo_correios.php".
1. Fazer backup dos bancos de dados do SEI e do SIP.
2. Carregar no servidor os arquivos do módulo nas pastas correspondentes nos servidores do SEI e do SIP.
- **Caso se trate de atualização de versão anterior do Módulo**, antes de copiar os códigos-fontes para a pasta "/sei/web/modulos/correios", é necessário excluir os arquivos anteriores pré existentes na mencionada pasta, para não manter arquivos de códigos que foram renomeados ou descontinuados.
3. Editar o arquivo "/sei/config/ConfiguracaoSEI.php", tomando o cuidado de usar editor que não altere o charset do arquivo, para adicionar a referência à classe de integração do módulo e seu caminho relativo dentro da pasta "/sei/web/modulos" na array 'Modulos' da chave 'SEI':

Expand All @@ -35,9 +37,9 @@
9. Após a execução com sucesso, com um usuário com permissão de Administrador no SEI, seguir os passos dispostos no tópico "Orientações Negociais" mais abaixo.
10. Para o funcionamento correto do Módulo SEI Correios é necessária a instalação da biblioteca PHP "ImageMagick" e "ImageMagick-devel" em cada nó de aplicação do SEI, conforme comandos abaixo:

Execute a linha de comando "yum install -y ImageMagick ImageMagick-devel"
Execute a linha de comando "pecl install imagick"
Modifique o arquvivo "/etc/php.ini", incluindo a linha "extension=imagick.so" no final da seção "Dynamic Extensions"
Execute a linha de comando "yum install -y ImageMagick ImageMagick-devel"
Execute a linha de comando "pecl install imagick"
Modifique o arquvivo "/etc/php.ini", incluindo a linha "extension=imagick.so" no final da seção "Dynamic Extensions"


## Orientações Negociais
Expand Down Expand Up @@ -101,4 +103,4 @@
- Iniciar Processo > Ofício > Solicitar Expedição pelos Correios:
- Solicitar Expedição pelos Correios:
- Após iniciar um Processo e vincular um documento do tipo "Ofício" é realizar a assinatura do documento será exibido o icone "Solicitar Expedição pelos Correios".
- Na tela de "Solicitar Expedição pelos Correios" é possível alterar os dados dos "Documentos Expedidos" e preencher o "Formato de Expedição dos Documentos" é incluir uma "Observação".
- Na tela de "Solicitar Expedição pelos Correios" é possível alterar os dados dos "Documentos Expedidos" e preencher o "Formato de Expedição dos Documentos" é incluir uma "Observação".
41 changes: 41 additions & 0 deletions sei/web/modulos/correios/int/MdCorContatoINT.php
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,47 @@ public static function listarContato($params)
return $xml;
}

public static function _isDadoAlterado( $idContato , $idMdCorExpedSolic ){
try {
$arrAtributos = ['Nome','Endereco','Cep','Complemento','Bairro','StaNatureza','NomeCidade','SiglaUf','StaGenero','IdTipoContato','ExpressaoTratamentoCargo','ExpressaoCargo','NomeTipoContato'];
$objContato = self::getInfoContato($idContato);
$objMdCorContato = self::getinfoMdCorContato($idContato, $idMdCorExpedSolic);

$isTeveRegistroAlterado = false;
foreach ( $arrAtributos as $atributo ) {
if ( $objContato->get($atributo) != $objMdCorContato->get($atributo) ) {
$isTeveRegistroAlterado = true;
$objMdCorContato->set($atributo,$objContato->get($atributo));
}
}

return ['objMdCorContato' => $objMdCorContato , 'isRegAlterado' => $isTeveRegistroAlterado];
} catch (Exception $e) {
throw new InfraException('Não foi possível comparar dados modificados do Contato no Módulo dos Correios',$e);
}
}

private static function getInfoContato( $idContato ){
$objContatoDTO = new ContatoDTO();
$objContatoRN = new ContatoRN();

$objContatoDTO->setNumIdContato($idContato);
$objContatoDTO->retTodos(true);

return $objContatoRN->consultarRN0324($objContatoDTO);
}

private static function getinfoMdCorContato( $idContato , $idMdCorExpedSolic ){
$objMdCorContatoDTO = new MdCorContatoDTO();
$objMdCorContatoRN = new MdCorContatoRN();

$objMdCorContatoDTO->setNumIdContato($idContato);
$objMdCorContatoDTO->setNumIdMdCorExpedicaoSolicitada($idMdCorExpedSolic);
$objMdCorContatoDTO->retTodos(true);

return $objMdCorContatoRN->consultar($objMdCorContatoDTO);
}

}

?>
2 changes: 0 additions & 2 deletions sei/web/modulos/correios/int/MdCorExpedicaoSolicitadaINT.php
Original file line number Diff line number Diff line change
Expand Up @@ -589,7 +589,6 @@ public static function validarDestinatarioIntimacaoEletronica($contatoDTO, $bolE
}
}
}else{

$arrIdContato = [$contatoDTO->getNumIdContatoAssociado()];
$arrObjMdPetVinculoDTO = self::validarPetVinculoUsuarioExterno($arrIdContato);

Expand Down Expand Up @@ -647,7 +646,6 @@ public static function validarPetVinculoUsuarioExterno( $arrIdContato ){
$objMdPetVinculoDTO = new MdPetVinculoDTO();
$objMdPetVinculoDTO->retNumIdContato();
$objMdPetVinculoDTO->setNumIdContato($arrIdContato, InfraDTO::$OPER_IN);
$objMdPetVinculoDTO->setStrSinAtivoRepresentante('S');
$objMdPetVinculoDTO->setStrStaEstado(MdPetVincRepresentantRN::$RP_ATIVO);

$objMdPetVinculoRN = new MdPetVinculoRN();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,20 +65,30 @@ public static function retornaTipoMidiaExiste($idProtocolo, $bolRetornarXML = tr
$arrObjMdCorExtensaoMidiaDTO = $mdCorExtensaoMidiaRN->listar($objMdCorExtensaoMidiaDTO);

$anexoRN = new AnexoRN();
$objAnexoDTO = new AnexoDTO();
$objAnexoDTO->setDblIdProtocolo($idProtocolo);
$objAnexoDTO->retStrNome();
$objAnexoDTO = $anexoRN->consultarRN0736($objAnexoDTO);
$listaAnexoDTO = new AnexoDTO();
$listaAnexoDTO->setDblIdProtocolo($idProtocolo);
$listaAnexoDTO->retNumIdAnexo();
$listaAnexoDTO = $anexoRN->listarRN0218($listaAnexoDTO);
$existeExtensao = 'false';
if($objAnexoDTO) {
$arrDocumento = explode('.', $objAnexoDTO->getStrNome());
foreach ($arrObjMdCorExtensaoMidiaDTO as $objMdCorExtensaoMidiaDTO) {
if ($objMdCorExtensaoMidiaDTO->getStrNomeExtensao() == end($arrDocumento))
$existeExtensao = 'true';

}
foreach($listaAnexoDTO as $anexoDTO) {
$anexoRN = new AnexoRN();
$objAnexoDTO = new AnexoDTO();
$objAnexoDTO->setNumIdAnexo($anexoDTO->getNumIdAnexo());
$objAnexoDTO->retStrNome();
$objAnexoDTO = $anexoRN->consultarRN0736($objAnexoDTO);

if($objAnexoDTO) {
$arrDocumento = explode('.', $objAnexoDTO->getStrNome());
foreach ($arrObjMdCorExtensaoMidiaDTO as $objMdCorExtensaoMidiaDTO) {
if ($objMdCorExtensaoMidiaDTO->getStrNomeExtensao() == end($arrDocumento))
$existeExtensao = 'true';

}

}
}

$strRetorno = $bolRetornarXML ? '<retorno>' . $existeExtensao . '</retorno>' : $existeExtensao;
return $strRetorno;
}
Expand Down
21 changes: 19 additions & 2 deletions sei/web/modulos/correios/md_cor_expedicao_solicitada_cadastro.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
$chkNecessitaRecebimentoAR = "checked";
$chkPossuiAnexo = "";
$id_doc = $_GET['id_doc'];
$id_destinatario_aux = null;

switch ($_GET['acao']) {

Expand Down Expand Up @@ -219,6 +220,9 @@
$dto->setDistinct(true);
$dto = $rn->consultar($dto);

$idMdCorExpedSolic = $dto->getNumIdMdCorExpedicaoSolicitada();
$idMdCorContatoDest = $dto->getNumIdContatoDestinatario();

if ($dto->getNumIdUnidade() == SessaoSEI::getInstance()->getNumIdUnidadeAtual()) {

$chkAviso = $_POST['chkAvisoRecebimento'];
Expand Down Expand Up @@ -374,8 +378,11 @@
$objSeiRN = new SeiRN();
$objSeiRN->lancarAndamento($objEntradaLancarAndamentoAPI);

if ($_POST['hdnContatoIdentificador'] != "") {
$arrObjMdCorContato = MdCorContatoINT::_isDadoAlterado( $idMdCorContatoDest , $idMdCorExpedSolic );

if ( $_POST['hdnContatoIdentificador'] == "" && $arrObjMdCorContato['isRegAlterado'] ) $_POST['hdnContatoIdentificador'] = $idMdCorContatoDest;

if ( $_POST['hdnContatoIdentificador'] != "" ) {
$contatoRN = new ContatoRN();
$objContatoDTO = new ContatoDTO();
$objContatoDTO->retTodos(true);
Expand Down Expand Up @@ -811,6 +818,7 @@


//obtendo informações do destinatario
/*
$objMdCorContatoDTO = new MdCorContatoDTO();
$objMdCorContatoDTO->retTodos();
Expand All @@ -820,8 +828,17 @@
$objMdCorContatoRN = new MdCorContatoRN();
$arrObjMdCorContatoDTO = $objMdCorContatoRN->consultar($objMdCorContatoDTO);
*/

$arrObjMdCorContato = MdCorContatoINT::_isDadoAlterado( $dto->getNumIdContatoDestinatario() , $dto->getNumIdMdCorExpedicaoSolicitada() );

$arrObjMdCorContatoDTO = $arrObjMdCorContato['objMdCorContato'];

$id_destinatario = $arrObjMdCorContatoDTO->getNumIdContato();

//criado para ser usado na modal que atualiza dados do contato ou se houve mudança no contato pelo CORE do SEI
$id_destinatario_aux = $arrObjMdCorContato['isRegAlterado'] ? $id_destinatario : null;

$nome_destinatario = $arrObjMdCorContatoDTO->getStrNome();

$cargo_destinatario = $arrObjMdCorContatoDTO->getStrExpressaoCargo();
Expand Down Expand Up @@ -1042,7 +1059,7 @@ class="infraLabelOpcional">&nbsp;&nbsp;&nbsp;&nbsp;<?php
name="hdnContatoObject"
value=""/>
<input type="hidden" id="hdnContatoIdentificador" onchange="alert(this.value);"
name="hdnContatoIdentificador" value=""/>
name="hdnContatoIdentificador" value="<?= $id_destinatario_aux ?>"/>
<select id="selContato" name="selContato" style="display: none !important"
class="form-control"
tabindex="<?= PaginaSEI::getInstance()->getProxTabDados() ?>">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -601,7 +601,7 @@ function validarFormulario(acao) {
//chegando aqui é porque passou em todas as validações , esta tudo OK e pode submeter o cadastro
}
var retorno = validarDestinatario();
console.log(retorno);

if(retorno) {
window.onbeforeunload = null;
document.getElementById('frmSolicitarExpedicao').submit();
Expand Down Expand Up @@ -790,7 +790,6 @@ function recarregarContato(){
} else {
document.getElementById('lblNomeAssociado').style.display = 'none';
}

stopTimer++;
if (stopTimer == 35) {
clearInterval(timerId);
Expand All @@ -815,7 +814,7 @@ function fecharConsulta() {
document.location = '<?= $strUrlFecharConsulta ?>';
}
function identificaFechamentoModalAlterarContato() {
$('#divInfraSparklingModalFrame', window.parent.document).on("click", function() {
$("div[id^='divInfraSparklingModalClose']", window.parent.document).on('click',function(){
recarregarContato()
});
}
Expand Down
Loading

0 comments on commit 086108a

Please sign in to comment.