Skip to content

Commit

Permalink
## Correções desta Versão
Browse files Browse the repository at this point in the history
    Mudança em 3 colunas do contrato de char() para varchar(), atendendo regras do SQLSERVER e ORACLE.

    Remoção de colunas do contrato que não serão mais necessários após a mudança no uso para API REST dos Correios.

## Evoluções desta Versão

    Substituição da API dos Correios de SOAP para REST que são as seguintes: Token, Endereço - CEP, PMA - Pré Postagem, Rastro e Meu Contrato.

    Criação do Mapeamento de Integração, na Administração, para uso das novas API's dos Correios:

    Aviso Recebimento

    Cancelar Pré Postagem

    Consultar CEP

    Download Rótulo

    Emitir Rótulo

    Gerar Token

    Pré Postagem Nacional

    Rastrear Objeto

    Serviços Postais

    Utilização do layout gerado pela API dos Correios nas impressões de envelopes e AR.

    Alteração de leitura do AR de QR Code para Código de Barras no Processamento de Retorno do AR.

    Alterado o termo PLP nos títulos e menus para Pré-Postagem

    Alterado termo SRO nos títulos e menus para Rastreamento de Objetos.

    Criado modal, na tela de Expedir Pré-Postagem, para quando imprimir Envelope, antes selecionar o tipo de layout a ser impresso, de acordo com as opções informadas pelo Correio.
  • Loading branch information
gabriel9nc committed Nov 6, 2024
1 parent a844f2e commit 6a3051f
Show file tree
Hide file tree
Showing 128 changed files with 11,942 additions and 2,630 deletions.
222 changes: 210 additions & 12 deletions sei/scripts/sei_atualizar_versao_modulo_correios.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ class MdCorAtualizadorSeiRN extends InfraRN
{

private $numSeg = 0;
private $versaoAtualDesteModulo = '2.2.0';
private $versaoAtualDesteModulo = '2.3.0';
private $nomeDesteModulo = 'MÓDULO CORREIOS';
private $nomeParametroModulo = 'VERSAO_MODULO_CORREIOS';
private $historicoVersoes = array('1.0.0', '2.0.0', '2.1.0','2.2.0');
private $historicoVersoes = array('1.0.0', '2.0.0', '2.1.0','2.2.0','2.3.0');

public function __construct()
{
Expand Down Expand Up @@ -66,15 +66,6 @@ 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 @@ -90,7 +81,7 @@ protected function atualizarVersaoConectado()

//testando versao do framework
$numVersaoInfraRequerida = '2.0.18';
if ($this->normalizaVersao(VERSAO_INFRA) < $this->normalizaVersao($numVersaoInfraRequerida)) {
if (version_compare(VERSAO_INFRA, $numVersaoInfraRequerida) < 0) {
$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 All @@ -116,6 +107,8 @@ protected function atualizarVersaoConectado()
$this->instalarv210();
case '2.1.0':
$this->instalarv220();
case '2.2.0':
$this->instalarv230();
break;

default:
Expand Down Expand Up @@ -1261,6 +1254,211 @@ protected function instalarv220(){
$this->atualizarNumeroVersao($nmVersao);
}

protected function instalarv230(){
$nmVersao = '2.3.0';
$objInfraParametro = new InfraParametro(BancoSEI::getInstance());
$this->logar('EXECUTANDO A INSTALAÇÃO/ATUALIZAÇÃO DA VERSAO '. $nmVersao .' DO ' . $this->nomeDesteModulo . ' NA BASE DO SEI');

$objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance());
$objMdCorAdmIntegRN = new MdCorAdmIntegracaoRN();

$this->logar('CRIANDO A TABELA md_cor_adm_integracao');
BancoSEI::getInstance()->executarSql('CREATE TABLE md_cor_adm_integracao (
id_md_cor_adm_integracao ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL ,
funcionalidade ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL ,
nome ' . $objInfraMetaBD->tipoTextoVariavel(200) . ' NOT NULL,
url_operacao '. $objInfraMetaBD->tipoTextoVariavel(500) .' NOT NULL,
usuario '. $objInfraMetaBD->tipoTextoVariavel(100) .' NULL,
senha '. $objInfraMetaBD->tipoTextoVariavel(1000) .' NULL,
token '. $objInfraMetaBD->tipoTextoVariavel(1500) .' NULL,
data_exp_token '. $objInfraMetaBD->tipoDataHora() .' NULL,
sin_ativo '. $objInfraMetaBD->tipoTextoFixo(1) .' NOT NULL
)'
);

$objInfraMetaBD->adicionarChavePrimaria('md_cor_adm_integracao', 'pk_md_cor_adm_integracao', array('id_md_cor_adm_integracao'));

$this->logar('CRIANDO A SEQUENCE seq_md_cor_adm_integracao');
BancoSEI::getInstance()->criarSequencialNativa('seq_md_cor_adm_integracao', 1);

// GERAR TOKEN
$this->logar('CADASTRAR REGISTRO DE INTEGRAÇÃO: GERAR TOKEN');
$objMdCorAdmIntegDTO = new MdCorAdmIntegracaoDTO();
$objMdCorAdmIntegDTO->retTodos();
$objMdCorAdmIntegDTO->setNumFuncionalidade(1);
$objMdCorAdmIntegDTO->setStrNome('Gerar Token');
$objMdCorAdmIntegDTO->setStrUrlOperacao('https://apihom.correios.com.br/token/v1/autentica/cartaopostagem');
$objMdCorAdmIntegDTO->setStrUsuario(null);
$objMdCorAdmIntegDTO->setStrSenha(null);
$objMdCorAdmIntegDTO->setStrToken(null);
$objMdCorAdmIntegDTO->setDthDataExpiraToken(null);
$objMdCorAdmIntegDTO->setStrSinAtivo('S');
$objMdCorAdmIntegRN->cadastrar($objMdCorAdmIntegDTO);

// RASTREAR OBJETO
$this->logar('CADASTRAR REGISTRO DE INTEGRAÇÃO: RASTREAR OBJETO');
$objMdCorAdmIntegDTO = new MdCorAdmIntegracaoDTO();
$objMdCorAdmIntegDTO->retTodos();
$objMdCorAdmIntegDTO->setNumFuncionalidade(2);
$objMdCorAdmIntegDTO->setStrNome('Rastrear Objeto');
$objMdCorAdmIntegDTO->setStrUrlOperacao('https://apihom.correios.com.br/srorastro/v1');
$objMdCorAdmIntegDTO->setStrUsuario(null);
$objMdCorAdmIntegDTO->setStrSenha(null);
$objMdCorAdmIntegDTO->setStrToken(null);
$objMdCorAdmIntegDTO->setDthDataExpiraToken(InfraData::getStrDataHoraAtual());
$objMdCorAdmIntegDTO->setStrSinAtivo('S');
$objMdCorAdmIntegRN->cadastrar($objMdCorAdmIntegDTO);

// CONSULTAR CEP
$this->logar('CADASTRAR REGISTRO DE INTEGRAÇÃO: CONSULTAR CEP');
$objMdCorAdmIntegDTO = new MdCorAdmIntegracaoDTO();
$objMdCorAdmIntegDTO->retTodos();
$objMdCorAdmIntegDTO->setNumFuncionalidade(3);
$objMdCorAdmIntegDTO->setStrNome('Consultar CEP');
$objMdCorAdmIntegDTO->setStrUrlOperacao('https://apihom.correios.com.br/cep/v2');
$objMdCorAdmIntegDTO->setStrUsuario(null);
$objMdCorAdmIntegDTO->setStrSenha(null);
$objMdCorAdmIntegDTO->setStrToken(null);
$objMdCorAdmIntegDTO->setDthDataExpiraToken(InfraData::getStrDataHoraAtual());
$objMdCorAdmIntegDTO->setStrSinAtivo('S');
$objMdCorAdmIntegRN->cadastrar($objMdCorAdmIntegDTO);

// CONTRATO - SERVICOS POSTAIS
$this->logar('CADASTRAR REGISTRO DE INTEGRAÇÃO: SERVICOS POSTAIS');
$objMdCorAdmIntegDTO = new MdCorAdmIntegracaoDTO();
$objMdCorAdmIntegDTO->retTodos();
$objMdCorAdmIntegDTO->setNumFuncionalidade(4);
$objMdCorAdmIntegDTO->setStrNome('Serviços Postais');
$objMdCorAdmIntegDTO->setStrUrlOperacao('https://apihom.correios.com.br/meucontrato/v1');
$objMdCorAdmIntegDTO->setStrUsuario(null);
$objMdCorAdmIntegDTO->setStrSenha(null);
$objMdCorAdmIntegDTO->setStrToken(null);
$objMdCorAdmIntegDTO->setDthDataExpiraToken(InfraData::getStrDataHoraAtual());
$objMdCorAdmIntegDTO->setStrSinAtivo('S');
$objMdCorAdmIntegRN->cadastrar($objMdCorAdmIntegDTO);

// SOLICITA ETIQUETAS
$this->logar('CADASTRAR REGISTRO DE INTEGRAÇÃO: PRE POSTAGEM - SOLICITA ETIQUETAS');
$objMdCorAdmIntegDTO = new MdCorAdmIntegracaoDTO();
$objMdCorAdmIntegDTO->retTodos();
$objMdCorAdmIntegDTO->setNumFuncionalidade(5);
$objMdCorAdmIntegDTO->setStrNome('Solicitar Etiquetas');
$objMdCorAdmIntegDTO->setStrUrlOperacao('https://apihom.correios.com.br/prepostagem/v1/prepostagens/rotulo/range');
$objMdCorAdmIntegDTO->setStrUsuario(null);
$objMdCorAdmIntegDTO->setStrSenha(null);
$objMdCorAdmIntegDTO->setStrToken(null);
$objMdCorAdmIntegDTO->setDthDataExpiraToken(InfraData::getStrDataHoraAtual());
$objMdCorAdmIntegDTO->setStrSinAtivo('S');
$objMdCorAdmIntegRN->cadastrar($objMdCorAdmIntegDTO);

// PRE POSTAGEM
$this->logar('CADASTRAR REGISTRO DE INTEGRAÇÃO: PRE POSTAGEM - SOLICITA PRE-POSTAGEM');
$objMdCorAdmIntegDTO = new MdCorAdmIntegracaoDTO();
$objMdCorAdmIntegDTO->retTodos();
$objMdCorAdmIntegDTO->setNumFuncionalidade(6);
$objMdCorAdmIntegDTO->setStrNome('Pré Postagem Nacional');
$objMdCorAdmIntegDTO->setStrUrlOperacao('https://apihom.correios.com.br/prepostagem/v1/prepostagens');
$objMdCorAdmIntegDTO->setStrUsuario(null);
$objMdCorAdmIntegDTO->setStrSenha(null);
$objMdCorAdmIntegDTO->setStrToken(null);
$objMdCorAdmIntegDTO->setDthDataExpiraToken(InfraData::getStrDataHoraAtual());
$objMdCorAdmIntegDTO->setStrSinAtivo('S');
$objMdCorAdmIntegRN->cadastrar($objMdCorAdmIntegDTO);

// EMITE ROTULO
$this->logar('CADASTRAR REGISTRO DE INTEGRAÇÃO: EMISSAO DE ROTULO');
$objMdCorAdmIntegDTO = new MdCorAdmIntegracaoDTO();
$objMdCorAdmIntegDTO->retTodos();
$objMdCorAdmIntegDTO->setNumFuncionalidade(7);
$objMdCorAdmIntegDTO->setStrNome('Emitir Rótulo');
$objMdCorAdmIntegDTO->setStrUrlOperacao('https://apihom.correios.com.br/prepostagem/v1/prepostagens/rotulo/assincrono/pdf');
$objMdCorAdmIntegDTO->setStrUsuario(null);
$objMdCorAdmIntegDTO->setStrSenha(null);
$objMdCorAdmIntegDTO->setStrToken(null);
$objMdCorAdmIntegDTO->setDthDataExpiraToken(InfraData::getStrDataHoraAtual());
$objMdCorAdmIntegDTO->setStrSinAtivo('S');
$objMdCorAdmIntegRN->cadastrar($objMdCorAdmIntegDTO);

// DOWNLOAD DO ROTULO
$this->logar('CADASTRAR REGISTRO DE INTEGRAÇÃO: DOWNLOAD DO ROTULO');
$objMdCorAdmIntegDTO = new MdCorAdmIntegracaoDTO();
$objMdCorAdmIntegDTO->retTodos();
$objMdCorAdmIntegDTO->setNumFuncionalidade(8);
$objMdCorAdmIntegDTO->setStrNome('Download Rótulo');
$objMdCorAdmIntegDTO->setStrUrlOperacao('https://apihom.correios.com.br/prepostagem/v1/prepostagens/rotulo/download');
$objMdCorAdmIntegDTO->setStrUsuario(null);
$objMdCorAdmIntegDTO->setStrSenha(null);
$objMdCorAdmIntegDTO->setStrToken(null);
$objMdCorAdmIntegDTO->setDthDataExpiraToken(InfraData::getStrDataHoraAtual());
$objMdCorAdmIntegDTO->setStrSinAtivo('S');
$objMdCorAdmIntegRN->cadastrar($objMdCorAdmIntegDTO);

// AVISO DE RECEBIMENTO
$this->logar('CADASTRAR REGISTRO DE INTEGRAÇÃO: AVISO DE RECEBIMENTO');
$objMdCorAdmIntegDTO = new MdCorAdmIntegracaoDTO();
$objMdCorAdmIntegDTO->retTodos();
$objMdCorAdmIntegDTO->setNumFuncionalidade(9);
$objMdCorAdmIntegDTO->setStrNome('Aviso de Recebimento');
$objMdCorAdmIntegDTO->setStrUrlOperacao('https://apihom.correios.com.br/prepostagem/v1/prepostagens');
$objMdCorAdmIntegDTO->setStrUsuario(null);
$objMdCorAdmIntegDTO->setStrSenha(null);
$objMdCorAdmIntegDTO->setStrToken(null);
$objMdCorAdmIntegDTO->setDthDataExpiraToken(InfraData::getStrDataHoraAtual());
$objMdCorAdmIntegDTO->setStrSinAtivo('S');
$objMdCorAdmIntegRN->cadastrar($objMdCorAdmIntegDTO);

// CANCELAR PRE POSTAGEM
$this->logar('CADASTRAR REGISTRO DE INTEGRAÇÃO: CANCELAR PRE POSTAGEM');
$objMdCorAdmIntegDTO = new MdCorAdmIntegracaoDTO();
$objMdCorAdmIntegDTO->retTodos();
$objMdCorAdmIntegDTO->setNumFuncionalidade(10);
$objMdCorAdmIntegDTO->setStrNome('Cancelar Pré Postagem');
$objMdCorAdmIntegDTO->setStrUrlOperacao('https://apihom.correios.com.br/prepostagem/v1/prepostagens');
$objMdCorAdmIntegDTO->setStrUsuario(null);
$objMdCorAdmIntegDTO->setStrSenha(null);
$objMdCorAdmIntegDTO->setStrToken(null);
$objMdCorAdmIntegDTO->setDthDataExpiraToken(InfraData::getStrDataHoraAtual());
$objMdCorAdmIntegDTO->setStrSinAtivo('S');
$objMdCorAdmIntegRN->cadastrar($objMdCorAdmIntegDTO);

$this->logar('ADICIONANDO COLUNA "id_pre_postagem" NA TABELA "md_cor_expedicao_solicitad"');
$objInfraMetaBD->adicionarColuna('md_cor_expedicao_solicitad', 'id_pre_postagem', $objInfraMetaBD->tipoTextoVariavel(100), 'NULL');

// Remocao de colunas da tabela md_cor_contrato e alteração na coluna id_md_cor_diretoria para NULL
$this->logar('Removendo a COLUNA "url_webservice" NA TABELA "md_cor_contrato"');
$objInfraMetaBD->excluirColuna('md_cor_contrato','url_webservice');

$this->logar('Removendo a COLUNA "codigo_administrativo" NA TABELA "md_cor_contrato"');
$objInfraMetaBD->excluirColuna('md_cor_contrato','codigo_administrativo');

$this->logar('Removendo a COLUNA "usuario" NA TABELA "md_cor_contrato"');
$objInfraMetaBD->excluirColuna('md_cor_contrato','usuario');

$this->logar('Removendo a COLUNA "senha" NA TABELA "md_cor_contrato"');
$objInfraMetaBD->excluirColuna('md_cor_contrato','senha');

$this->logar('Removendo a COLUNA "numero_ano_contrato" NA TABELA "md_cor_contrato"');
$objInfraMetaBD->excluirColuna('md_cor_contrato','numero_ano_contrato');

$objInfraMetaBD->alterarColuna('md_cor_contrato', 'id_md_cor_diretoria', $objInfraMetaBD->tipoNumero(), 'null');

// Drop na tabela md_cor_parametro_rastreio
$this->logar('Remover a sequence e tabela md_cor_parametro_rastreio');
if (BancoSEI::getInstance() instanceof InfraOracle) {
BancoSEI::getInstance()->executarSql('drop sequence seq_md_cor_parametro_rastreio');
} else {
BancoSEI::getInstance()->executarSql('DROP TABLE seq_md_cor_parametro_rastreio');
}
BancoSEI::getInstance()->executarSql('DROP TABLE md_cor_parametro_rastreio');

$this->logar('Altera as colunas numero_contrato, numero_contrato_correio e numero_cartao_postagem de char() para varchar()');
$objInfraMetaBD->alterarColuna('md_cor_contrato', 'numero_contrato', $objInfraMetaBD->tipoTextoVariavel(50), 'not null');
$objInfraMetaBD->alterarColuna('md_cor_contrato', 'numero_contrato_correio', $objInfraMetaBD->tipoTextoVariavel(50), 'not null');
$objInfraMetaBD->alterarColuna('md_cor_contrato', 'numero_cartao_postagem', $objInfraMetaBD->tipoTextoVariavel(50), 'not null');

$this->atualizarNumeroVersao($nmVersao);
}

protected function fixIndices(InfraMetaBD $objInfraMetaBD, $arrTabelas)
{
InfraDebug::getInstance()->setBolDebugInfra(true);
Expand Down
44 changes: 39 additions & 5 deletions sei/web/modulos/correios/CorreiosIntegracao.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public function getNome()

public function getVersao()
{
return '2.2.0';
return '2.3.0';
}

public function getInstituicao()
Expand Down Expand Up @@ -279,10 +279,11 @@ public function processarControlador($strAcao)
case 'md_cor_historico_visualizar' :
require_once dirname(__FILE__) . '/md_cor_historico_visualiza.php';
return true;

/*
case 'md_cor_parametrizacao_rastreio_listar' :
require_once dirname(__FILE__) . '/md_cor_parametrizacao_rastreio_lista.php';
return true;
*/

//Parametrização de Status
case 'md_cor_parametrizacao_status_cadastrar' :
Expand All @@ -297,6 +298,7 @@ public function processarControlador($strAcao)
require_once dirname(__FILE__) . '/md_cor_parametrizacao_status_lista.php';
return true;


//Destinatários não habilitados parra expedição
case 'md_cor_rel_contato_justificativa_cadastrar' :
case 'md_cor_rel_contato_justificativa_alterar' :
Expand All @@ -321,6 +323,22 @@ public function processarControlador($strAcao)
require_once dirname(__FILE__) . '/md_cor_justificativa_cadastro.php';
return true;

case 'md_cor_adm_integracao_cadastrar':
case 'md_cor_adm_integracao_alterar':
case 'md_cor_adm_integracao_consultar':
require_once dirname(__FILE__) . '/md_cor_adm_integracao_cadastro.php';
return true;

case 'md_cor_adm_integracao_listar':
case 'md_cor_adm_integracao_excluir':
case 'md_cor_adm_integracao_desativar':
case 'md_cor_adm_integracao_reativar':
require_once dirname(__FILE__) . '/md_cor_adm_integracao_lista.php';
return true;

case 'md_cor_selecionar_layout_envelope':
require_once dirname(__FILE__) . '/md_cor_selecionar_layout_envelope.php';
return true;
}

return false;
Expand Down Expand Up @@ -547,7 +565,8 @@ public function processarControladorAjax($strAcao)
break;

case 'md_cor_servicos_postais_buscar':
$xml = MdCorServicoPostalINT::retornarServicosPostais($_POST['txtNumeroContratoCorreio'], $_POST['txtNumeroCartaoPostagem'], $_POST['txtUrlWebservice'], $_POST['txtUsuario'], $_POST['txtSenha']);
$_POST['txtCNPJ'] = InfraUtil::retirarFormatacao($_POST['txtCNPJ']);
$xml = MdCorServicoPostalINT::retornarServicosPostais($_POST['txtNumeroContratoCorreio'], $_POST['txtCNPJ']);
break;

case 'md_cor_numero_processo_validar':
Expand Down Expand Up @@ -678,6 +697,20 @@ public function processarControladorAjax($strAcao)
$xml .= "</Documento>";

break;

case 'md_cor_plp_cancelar_plp':
$xml = '<Documento>';
$arr = ['idPlp' => $_POST['idPlp']];
$rs = ( new MdCorPlpRN() )->cancelarPlp( $arr );
if (is_array($rs)) {
$xml .= '<Sucesso>N</Sucesso>';
$xml .= '<Msg>'.$rs['msg'].'</Msg>';
} else {
$xml .= '<Sucesso>S</Sucesso>';
}

$xml .= '</Documento>';
break;
}

return $xml;
Expand Down Expand Up @@ -1261,8 +1294,9 @@ public function verificarDocumentoRetornado($idDocumento)
$MdCorRetornoArDocDTO = new MdCorRetornoArDocDTO();
$MdCorRetornoArDocDTO->setNumIdDocumentoAr($idDocumento);
$MdCorRetornoArDocDTO->retNumIdDocumentoPrincipal();
$MdCorRetornoArDocDTO = $MdCorRetornoArDocRN->consultar($MdCorRetornoArDocDTO);
$MdCorRetornoArDocDTO = $MdCorRetornoArDocRN->contar($MdCorRetornoArDocDTO);
#$MdCorRetornoArDocDTO = $MdCorRetornoArDocRN->consultar($MdCorRetornoArDocDTO);

return $MdCorRetornoArDocDTO;
return $MdCorRetornoArDocDTO > 0 ? true : null;
}
}
Loading

0 comments on commit 6a3051f

Please sign in to comment.