Ir para conteúdo
  • Cadastre-se

dev botao

Bauhaus - Salva JSON e depois não consegue carregar


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

Recommended Posts

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=-

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Marcos,

Já inclui na minha lista de tarefas para analisar o problema. TK-3388

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • Consultores
  • Solution

Bom dia Marcos,

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

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

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=-

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Marcos,

Esse JSON é retornado pela API do provedor ou foi baixado do Site da Prefeitura?

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Consultores

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 / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Consultores

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 / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

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