Ir para conteúdo
  • Cadastre-se

dev botao

Componente Do Valor Da Prestação Zerado Altera O Xml Ao Autorizar


ncc.star
  • Este tópico foi criado há 3487 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Pessoal, aconteceu o seguinte caso:

 

Em um dos componentes do valor do frete um cliente meu informou o valor 0,002. Esse valor é usado para calcular o valor do frete com base no peso transportado. Acontece que a tag <vComp> só aceita dois decimais, sendo assim, essa tag foi dessa forma:

 

<Comp>
   <xNome>Tarifa</xNome>
   <vComp>0.00</vComp>
</Comp>
 
 
Quando envia pro sefaz o componente está removendo a tag <Comp> que tem o valor zerado. Quando retorna eu comparo o digestvalue e estão diferentes. Comparei com o XML que fiz o download do site da sefaz e constatei que essa tag foi removida.
 
Eu não tenho acesso ao meu PC para ver maiores detalhes no fonte, alguém pode verificar se é possível fazer para que o componente não elimine essa tag ao enviar para o SEFAZ? 
Link para o comentário
Compartilhar em outros sites

Bom dia Juliomar.

 

Agora com calma consegui analisar melhor o problema.

Decidi alterar minha aplicação. Quando houver um valor abaixo de 0.01 informo apenas no campo de observação. Assim o problema não acontece.

No componente, se vocês acharem interessante alterar, na linha 983, retirar a verificação da tag vComp:

 

    if (trim(CTe.vPrest.comp.xNome) <> '') and
       (CTe.vPrest.comp.vComp <> 0) then
 
Alterar para:
 
    if (trim(CTe.vPrest.comp.xNome) <> '') then
 
Link para o comentário
Compartilhar em outros sites

Olá Juliomar. 

 

Quanto a isso OK. 

 

Agora comparando o XML que eu fiz o download do site do portal do CT-e percebi que há algumas pequenas diferenças no XML salvo.

No arquivo baixado, dentro de Signature, em: CanonicalizationMethod, SignatureMethod, Transform Algorithm e DigestMethod Algorithm quando fecha a tag tem um espaço a mais antes do />.

 

Na parte do protocolo também tem uma diferença

 

No arquivo baixado está assim:

<protCTe versao="2.00" xmlns="http://www.portalfiscal.inf.br/cte">
<infProt Id="CTe342150004147240">
 
e no arquivo salvo está assim:
<protCTe versao="2.00">
<infProt>
 
 
Isso seria um problema?
 
 

 

post-2149-0-77376700-1425582206_thumb.jp

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia ncc,

 

Quanto ao espaço em branco no final e antes do /> não vejo nenhum problema.

 

Agora quanto ao grupo <protCTe>, você tem o arquivo *-pro-rec.xml referente ao CT-e que aparece na figura?

 

Ele contem alem do atributo versão o namespace?

 

E no grupo <infProt> possui o atributo Id?

 

Lembre-se que o arquivo *-pro-rec.xml é o resultado do processamento do CT-e enviado a SEFAZ, o componente apenas extrai o retorno que esta envelopado e salva em disco sem nenhuma alteração.

 

E tem mais segundo o Manual versão 2.00a do CT-e página 49 faz parte do grupo <protCTe> o grupo <Signature> sendo que esta assinatura fica a critério da SEFAZ-Autorizadora, se ela não assina o XML não há necessidade de informar o Id, note também que tanto o atributo Id quanto o grupo Signature são opcionais.

 

Agora se ao obter o retorno da SEFAZ referente ao processamento de um CT-e ela nos retorna o <protCTe> de um jeito e ao realizar o download via site nos retorna de outro, o que fazer?

 

No meu entendimento temos que considerar os dois como validos.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Olá Ítalo.

 

Agora quanto ao grupo <protCTe>, você tem o arquivo *-pro-rec.xml referente ao CT-e que aparece na figura?

 

Exatamente desse CT-e não tenho, teria de ir até o meu cliente pra verificar, mas fiz em homologação outro CT-e para verficar.

 

 

 

Ele contem alem do atributo versão o namespace?

 

não, no arquivo *-pro-rec.xml está apenas:

<protCTe versao="2.00">

 

 

E no grupo <infProt> possui o atributo Id?

 

sim, o arquivo *-pro-rec.xml está assim:

<infProt Id="CTe342150000012080">

Link para o comentário
Compartilhar em outros sites

Olá Ítalo.

 

Além desse detalhe, aleatoriamente acontece algo estranho.

Antes de enviar o CT-e pra SEFAZ eu salvo uma cópia em um diretório de log dessa forma:

 

ACBrCTe1.Conhecimentos.Items[0].SaveToFile(fileName);

 

Além disso eu também mantenho o XML no banco de dados. 

Acontece que o arquivo que eu salvo em disco e também no banco de dados, a tag CTe fica assim:

 

<CTe xmlns="http://www.portalfiscal.inf.br/cte">

 

já no arquivo que eu baixei do site da SEFAZ autorizou somente assim:

 

<CTe>

 

Comparei os dois XML e a única diferença nesse caso foi isso.

Ocasiona assim problema no cálculo do DigestValue. Não sei o que fazer.

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3487 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.