Ir para conteúdo
  • Cadastre-se

FernandoSchuch

Membros
  • Total de ítens

    4
  • Registro em

  • Última visita

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

FernandoSchuch's Achievements

Rookie

Rookie (2/14)

  • First Post
  • Week One Done
  • One Month Later
  • One Year In
  • Conversation Starter

Recent Badges

1

Reputação

  1. Boa tarde, Italo. Atualizei os fontes, mas o problema persiste. Abraço, Fernando
  2. Edit: Exemplo da tag xCorrecao do XML que será transmitido (Propriedade FPDadosMsg): <xCorrecao>T&amp;ST&amp; DE CARTA DE CORR&amp;CAO</xCorrecao> Exemplo da tag xCorrecao após o ParseText: <xCorrecao>T&ST& DE CARTA DE CORR&CAO</xCorrecao>
  3. Bom dia, Fiz uma carta de correção pelo sistema da empresa onde trabalho e transmiti sem problemas pelo ACBr. Em seguida, eu pego o XML gerado pelo ACBr da propriedade FEventoRetorno.retEvento.Items.RetInfEvento.XML e salvo no meu banco de dados. Só que se abrirmos o XML dessa propriedade no navegador, vai dar problema se tiver caracteres especiais. Por exemplo, o & na tag xCorrecao. Na função TNFeEnvEvento.TratarResposta, que está na unit ACBrNFeWebServices, é atribuído o XML da carta de correção para a propriedade citada acima. Dentro desse método identifiquei o seguinte comando: Texto := ParseText(Texto); Esta linha está convertendo o XML, tirando &amp; (código HTML correspondente do e comercial) e colocando &. Comentei essa linha e o XML ficou correto no meu banco de dados. Sugiro retirá-la, ou se alguém puder explicar em qual caso ela é obrigatória, somente para entender melhor a situação. Exemplo da tag xCorrecao do XML que será transmitido (Propriedade FPDadosMsg): <xCorrecao>T&ST& DE CARTA DE CORR&CAO</xCorrecao> Exemplo da tag xCorrecao após o ParseText: <xCorrecao>T&ST& DE CARTA DE CORR&CAO</xCorrecao> Obs: Fiz vários testes de eventos olhando o XML que a SEFAZ retorna e nenhum precisa do ParseText.
  4. Boa tarde, Ao efetuar alguns testes com os componentes do ACBr para transmitir notas fiscais de importação e exportação, percebi que algumas vezes gerava um alerta na unit pcnNFeW quando caia no método GerarDestEnderDest e validava a UF, e outras vezes não. Abaixo segue um dos testes que gerava alerta. if not ValidarUF(xUF) then Gerador.wAlerta('E12', 'UF', DSC_UF, ERR_MSG_INVALIDO); Alertas: TAG:<dest><enderDest> ID:E11/xMun(Nome do Município) - Nenhum valor informado. TAG:<dest><enderDest> ID:E12/UF(Sigla da UF) - Nenhum valor informado. TAG:<dest><enderDest> ID:E12/UF(Sigla da UF) - Conteúdo inválido. Debuguei o código até entender que a causa desse comportamento seriam as typed constants definidas na pcnNFe const CMUN_EXTERIOR: Integer = 9999999; XMUN_EXTERIOR: String = 'EXTERIOR'; UF_EXTERIOR: String = 'EX'; Para simular, tive que seguir os passos a seguir: abro o sistema; em seguida abro um form no qual cadastro a NFe (este form está em outra bpl). Faço uma nota de importação ou exportação e salvo ela. No momento que salva, é gerado o XML da NFe através da pcnNFeW.GerarXML. Nesse primeiro momento, tudo funciona corretamente. Mas se eu fechar a tela da nota fiscal, entrar novamente e cadastrar outra NF-e de importação ou exportação, no momento que gerar o XML, as constantes acima do tipo String estarão em branco (''). Logo, o método AjustarMunicipioUF não vai atualizar as variáveis corretamente, ocasionando o alerta. Busquei na internet soluções para isso e descobri que essas typed constants são diferentes das true constants e que algumas pessoas não recomendam usar elas para tipos simples como Integer e String. Somente para arrays, ponteiros,... Enfim, retirei os tipos das constantes e funcionou corretamente. const CMUN_EXTERIOR = 9999999; XMUN_EXTERIOR = 'EXTERIOR'; UF_EXTERIOR = 'EX'; Não sei porquê os valores ficavam em branco na segunda vez que eu entrava na tela, mas pesquisando entendi que o uso das typed constants não é amplamente recomendado. Sugiro tirar os tipos dessas constantes (e outras de tipos simples, caso houver) no ACBr para evitar problemas assim, ou se alguém conseguir me explicar porquê isso acontece, seria útil. Obs: Eu informo o nome real da cidade, mesmo que ela seja do exterior e deixo que o ACBr trate para quando for operação com exterior, colocar os valores das constantes. Um link que aborda o problema: https://stackoverflow.com/questions/2714365/delphi-all-constants-are-constant-but-some-are-more-constant-than-others
×
×
  • 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.

The popup will be closed in 10 segundos...