diff --git a/README.md b/README.md
index 109172a..dfa1a11 100644
--- a/README.md
+++ b/README.md
@@ -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':
@@ -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
@@ -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".
\ No newline at end of file
+ - 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".
diff --git a/sei/scripts/sei_atualizar_versao_modulo_correios.php b/sei/scripts/sei_atualizar_versao_modulo_correios.php
index 9bae008..6a5204b 100644
--- a/sei/scripts/sei_atualizar_versao_modulo_correios.php
+++ b/sei/scripts/sei_atualizar_versao_modulo_correios.php
@@ -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()
{
@@ -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);
}
diff --git a/sei/web/modulos/correios/README.md b/sei/web/modulos/correios/README.md
index 109172a..dfa1a11 100644
--- a/sei/web/modulos/correios/README.md
+++ b/sei/web/modulos/correios/README.md
@@ -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':
@@ -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
@@ -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".
\ No newline at end of file
+ - 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".
diff --git a/sei/web/modulos/correios/int/MdCorContatoINT.php b/sei/web/modulos/correios/int/MdCorContatoINT.php
index 3ac8290..f987fe7 100644
--- a/sei/web/modulos/correios/int/MdCorContatoINT.php
+++ b/sei/web/modulos/correios/int/MdCorContatoINT.php
@@ -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);
+ }
+
}
?>
\ No newline at end of file
diff --git a/sei/web/modulos/correios/int/MdCorExpedicaoSolicitadaINT.php b/sei/web/modulos/correios/int/MdCorExpedicaoSolicitadaINT.php
index c114d1c..306a70a 100644
--- a/sei/web/modulos/correios/int/MdCorExpedicaoSolicitadaINT.php
+++ b/sei/web/modulos/correios/int/MdCorExpedicaoSolicitadaINT.php
@@ -589,7 +589,6 @@ public static function validarDestinatarioIntimacaoEletronica($contatoDTO, $bolE
}
}
}else{
-
$arrIdContato = [$contatoDTO->getNumIdContatoAssociado()];
$arrObjMdPetVinculoDTO = self::validarPetVinculoUsuarioExterno($arrIdContato);
@@ -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();
diff --git a/sei/web/modulos/correios/int/MdCorExpedicaoSolicitadaProtocoloAnexoINT.php b/sei/web/modulos/correios/int/MdCorExpedicaoSolicitadaProtocoloAnexoINT.php
index 2d54a85..641674e 100644
--- a/sei/web/modulos/correios/int/MdCorExpedicaoSolicitadaProtocoloAnexoINT.php
+++ b/sei/web/modulos/correios/int/MdCorExpedicaoSolicitadaProtocoloAnexoINT.php
@@ -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 ? '' . $existeExtensao . '' : $existeExtensao;
return $strRetorno;
}
diff --git a/sei/web/modulos/correios/md_cor_expedicao_solicitada_cadastro.php b/sei/web/modulos/correios/md_cor_expedicao_solicitada_cadastro.php
index 52e1aa9..e9a2925 100644
--- a/sei/web/modulos/correios/md_cor_expedicao_solicitada_cadastro.php
+++ b/sei/web/modulos/correios/md_cor_expedicao_solicitada_cadastro.php
@@ -27,6 +27,7 @@
$chkNecessitaRecebimentoAR = "checked";
$chkPossuiAnexo = "";
$id_doc = $_GET['id_doc'];
+ $id_destinatario_aux = null;
switch ($_GET['acao']) {
@@ -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'];
@@ -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);
@@ -811,6 +818,7 @@
//obtendo informações do destinatario
+ /*
$objMdCorContatoDTO = new MdCorContatoDTO();
$objMdCorContatoDTO->retTodos();
@@ -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();
@@ -1042,7 +1059,7 @@ class="infraLabelOpcional">
+ name="hdnContatoIdentificador" value="= $id_destinatario_aux ?>"/>