bom dia pessoal,
semana passada, postei no tópico abaixo, um problema que eu estava tendo e que outra pessoa tb teve o mesmo problema.
debugando os fontes, identifiquei onde poderia estar o problema e fiz uma alteração que resolveu meu problema.
gostaria de compartilhar para que analisem e vejam se poderiam alterar no código oficial.
na unit ACBrCTeWebServices.pas na procedure TCTeEnvEvento.DefinirURL tem o seguinte teste:
if ((FEvento.Evento.Items[0].InfEvento.tpEvento in [teCCe, teCancelamento,
teMultiModal, tePrestDesacordo, teGTV, teComprEntrega, teCancComprEntrega,
teCancPrestDesacordo, teInsucessoEntregaCTe, teCancInsucessoEntregaCTe]))
FPLayout := LayCTeEvento
else
FPLayout := LayCTeEventoAN;
como o evento é o "teEPEC", estava caindo na linha "FPLayout := LayCTeEventoAN"
em um determinado ponto do fonte, o componente vai buscar o endereço de webservice no arquivo "ACBrCTeServicos.ini" e para Minas Gerais, estava pegando o endereço errado.
estava pegando um endereço de ambiente nacional (LayCTeEventoAN) para versão 3.0. Ele procurava no arquivo pela chave "RecepcaoEventoAN_4.00" e como nao encontrava, pegava a chave "RecepcaoEventoAN_3.00" (esta chave consta o endereço errado).
entao, fiz a seguinte alteração na unit ACBrCTeWebServices.pas, e o problema foi resolvido.
if ((FEvento.Evento.Items[0].InfEvento.tpEvento in [teCCe, teCancelamento,
teMultiModal, tePrestDesacordo, teGTV, teComprEntrega, teCancComprEntrega,
teCancPrestDesacordo, teInsucessoEntregaCTe, teCancInsucessoEntregaCTe])) or
((UF = 'MG') and (FEvento.Evento.Items[0].InfEvento.tpEvento = teEPEC)) then
FPLayout := LayCTeEvento
else
FPLayout := LayCTeEventoAN;
eu poderia apenas acrescentar o "teEPEC" no teste do "if" que resolveria o meu problema mas como nao sei se isso ocorre nos outros estados, achei melhor fazer desta forma.
não sei se esta é a melhor solução mas no meu caso foi resolvido. analisem e vejam se vale a pena alterar nos fontes;
obrigado.