Ir para conteúdo
  • Cadastre-se

dev botao

Bauhaus - Salva JSON e depois não consegue carregar


Ver Solução Respondido por Italo Giurizzato Junior,
  • Este tópico foi criado há 700 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado (editado)

Ola!

Provedor: Bauhaus (prefeitura moderna)

 

Problema ao salvar o JSON com o comando abaixo:

FACBrNFSeX.NotasFiscais.Items[0].GravarXML(ExtractFileName(LCaminhoSalvar), ExtractFilePath(LCaminhoSalvar), txmlRPS);

 

"XML" ou "JSON" salvo

<?xml version="1.0" encoding="UTF-8"?>
{
	"DadosNota": {
		"MunicipioPrestacao": 4218707,
		"NaturezaOperacao": 1,
		"IssRetido": "N",
		"Observacoes": "REFERENTE A OS: 10",
....

 

Veja que é inserido a tag de XML no arquivo que é um JSON, com isso ao carregar para consultar nfse por rps ocorre um erro de A.V.

 

É possível contornar com este comando:

TACBrNFSeX(FACBrNFSeX).Gravar(ExtractFileName(LCaminhoSalvar), FACBrNFSeX.NotasFiscais.Items[0].XmlRps, ExtractFilePath(LCaminhoSalvar), False);

 

Passando o parâmetro de UTF8  False, assim na function TACBrDFe.Gravar não gera a tag de xml:

    if ConteudoEhUTF8 and (not XmlEhUTF8(ConteudoXML)) then  <--- AQUI se não é UTF8 não gera a tag de xml
      UTF8Str := '<' + ENCODING_UTF8 + '>' + ConteudoXML
    else
      UTF8Str := ConverteXMLtoUTF8(ConteudoXML);

 

 

Editado por -=Ma®©oS=-
melhorado descrição

-=Ma®©oS=-

  • 2 semanas depois ...
Postado
6 horas atrás, Italo Giurizzato Junior disse:

Bom dia Marcos,

Favor atualizar os fontes, reinstalar o ACBr e faça novos testes.

Boa Tarde Italo!

 

Vou aguardar esta thread aqui:

para realizar os testes juntos.

  • Curtir 1

-=Ma®©oS=-

Postado

Bom dia!

Este problema de gerar a tag de XML no inicio do JSON foi solucionado, porem agora tenho problemas ao carregar o json retornado pela prefeitura no componente.

 

veja que os dados do prestador são praticamente inexistentes:

image.thumb.png.3d614e48bd8c1bb723134993466afe0d.png

 

Tento carregar o json desta forma:

    FACBrNFSeX.NotasFiscais.Clear;
    FACBrNFSeX.NotasFiscais.LoadFromFile(LCaminho);

 

E tenho como resultado erro de conversão aqui:

image.thumb.png.8eff53519ea6298148dfe9e458dc1360.png

por não possuir esta informação do Prestador.Endereco.CodigoMunicipio,

Pensei em corrigir desta forma:

De:

.AddPair('MunicipioPrestacao', StrToInt(NFSe.Prestador.Endereco.CodigoMunicipio))

Para:

.AddPair('MunicipioPrestacao', StrToInt(IfThen(EstaVazio(NFSe.Prestador.Endereco.CodigoMunicipio), '0', NFSe.Prestador.Endereco.CodigoMunicipio)))

 

porem não sei se seria a forma correta, enviar 0 (zero) quando não possuir o código do municipio (Na emissão sempre vai existir este código, o problema é ao carregar para imprimir/cancelar/consultar

bauhaus_json_ret_prefeitura.json

-=Ma®©oS=-

Postado

Para resolver aqui eu simplesmente não carreguei o json da "nota".

Consultei NFSe por Numero, Cancelei e Consultei NFSe por Numero novamente.

funcionou tudo, porem a impressão vou ter que gerar com dados do banco devido a esta falta de dados no json

 

-=Ma®©oS=-

  • Consultores
Postado

Marcos,

O componente de impressão tem propriedades para informarmos dados do Emitente (prestador), uma vez que tem provedor (como este) que não traz todos os dados do prestador.

Paciência.

Mas já inclui na minha lista de tarefas para checar a leitura do JSON. TK-3437

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

  • Consultores
Postado

Boa tarde Marcos,

Acredito que esse JSON não seja da NFS-e e sim do RPS.

Se você abrir a unit Bauhaus.GravarJson temos como primeiro objeto: DadosNota.

Por outro lado na unit Bauhaus.LerJson faz a seguinte verificação:

  if (Pos('DadosNfse', Arquivo) > 0) then
    Result := LerJsonNfse(TiraAcentos(Arquivo))
  else
    Result := LerJsonRps(TiraAcentos(Arquivo));

Chego a concluir que se o primeiro objeto se chama DadosNota temos na verdade os dados do Rps, por outro lado se ele for DadosNfse temos os dados da NFS-e propriamente dita.

Em anexo temos um JSON que utilizei no teste unitário para validar a unit Bauhaus.LerJson

Bauhaus_01-nfse.json

Favor verificar se estou correto.

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

  • Este tópico foi criado há 700 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.