Pesquisar na Comunidade
Showing results for tags 'infunidtransp'.
Encontrado 3 registros
-
Boa tarde. Ao informar Unidades de Transporte no grupo de Outros Documentos (infOutros), e tentar carregar o XML no componente novamente, através do LoadFromFile, é disparada uma exception "EConvertError", como na mensagem de erro abaixo: Exception class EConvertError with message ''15,000</qtdRat></infUnidTransp>' is not a valid floating point value'. No XML está assim por exemplo: <infUnidTransp> <tpUnidTransp>1</tpUnidTransp> <idUnidTransp>1251</idUnidTransp> <lacUnidTransp> <nLacre>54541</nLacre> </lacUnidTransp> <qtdRat>15.000</qtdRat> </infUnidTransp> Olhando o código fonte da unit "\ACBr\Fontes\ACBrDFe\ACBrCTe\PCNCTe\pcteCTeR.pas" nas linhas 1026 e 1032 percebi que está um pouco diferente das declarações para os grupos anteriores acima (InfNF e InfNFe). Na linha 1026 a atribuição a variável "len" está comentada. Na linha 1032 está sendo passada a variável "pos3" como argumento no lugar de "len". //... // len := pos3 - pos2; (Linha 1026) // if (pos1 = 0) and (pos2 = 0) and (pos3 = 0) or (pos1 > pos3) then // qtdRat_UnidTransp := 0.0; if (pos1 < pos3) then qtdRat_UnidTransp := StringToFloatDef(Copy(sAux, pos2 + 8, pos3 -8), 0) // (Linha 1032) else qtdRat_UnidTransp := 0.0; //... Realizei um teste, removendo o comentário na linha 1026 e substituindo a variável "pos03" por "len" como argumento e parou de dar a exceção, além de que o valor ser atribuído corretamente na variável "qtdRat_UnidTransp" (antes ficava zerada). Tem algum motivo das declarações nesse bloco do InfOutros estar diferente do outros grupos (InfNF e InfNFe)? Obs.: Revisão do ACBr utilizada = 34383 Segue em anexo unit modificada com a qual fiz o teste. Obrigado pcteCTeR.pas
-
Boa tarde amigos, Estou utilizando o ACBrCTe, com fontes atualizados hoje pela manhã. Gerei um XML, informei em infNFe o nó infUnidTransp, e dentro dele dois nós infUnidCarga. Assinei o arquivo, validei, abri e conferi visualmente a estrutura, tudo certo. No entanto, ao utilizar a rotina de enviar o arquivo, retornou um erro na validação, dizendo que encontrou a tag infUnidCarga onde não deveria. Abri novamente o mesmo arquivo e notei que os dois nós infUnidCarga que estavam dentro do infUnidTransp foram replicados para fora dele, como se fossem filhos do infNFe. Executando a aplicação em modo Debug, notei que isso ocorre toda vez que o componente chama a rotina Assinar; onde salva o arquivo novamente, replicando as tags mencionadas toda vez que executo a rotina. Fiz este teste várias vezes e a situação ocorreu em todas. Em anexo, o XML que foi assinado, depois validado, depois usei a função Enviar, que causou o erro acima citado. Desde já, grato pela atenção. P.S.: Debugando mais a fundo, descobri que o bug está já na leitura do XML, devido ao fato de existirem dois nós com o mesmo nome, mesmo em níveis diferentes. Mais precisamente, na unit pcteCTeR.pas, na função TCTeR.LerXML (no arquivo que tenho atualmente, a partir da linha 750), está lendo conteúdo das tags já lidas anteriormente, que são de outro nível. Vou fazer um ajuste temporário no código, mas aguardo atualização da função. Abraços. 42141209358661000168570010000000051000000059-cte.xml
- 2 replies
-
- infUnidCarga
- infUnidTransp
-
(e 2 mais)
Tags: