Ir para conteúdo
  • Cadastre-se

dev botao

PROVEDOR NONOAI RS


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

Recommended Posts

  • Membros Pro
Postado

Boa tarde Ítalo, o problema no provedor foi corrigido, acontecia que o provedor estava esperando valores nos campos de valor como por exemplo: valorDeducoes, valorPis, valorCofins, valorInss etc. Não aceitava que estas tags não estivessem no XML, e como o ABCr só coloca estas tags se tiver valor > 0 então dava problema. Mas creio que este problema agora foi resolvido pois ao enviar a NFSe agora não apresenta mais a mensagem de erro no processamento do arquivo. Porém agora ao transmitir a nota está dando o seguinte erro: 

Project TesteNFSe.exe raised exception class EACBrDFeException with message ''.

Acredito ser algum problema na leitura do XML de retorno.

Em anexo envio os arquivos da comunicação efetuada.

Também tentei fazer uma consulta pelo ACBrNFSe1.ConsultarNFSeporRps e também obtive o mesmo erro.

Se puder auxiliar com essa questão agradeço desde já.

 

Comunicacao.rar

  • Consultores
Postado

Bom dia Mateus,

Você consegue "debugar" para saber com exatidão onde o Exception é levantado?

Pois notei que no retorno do envio consta o XML da NFS-e.

Na pasta Notas não foi gerado o XML referente a NFS-e?

  • Curtir 1
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

  • Membros Pro
Postado

Boa tarde Italo, 

Estou usando o método  ACBrNFSe1.Gerar(iLote);

Este método chama o WebServices.Gera(ARps, ALote); e este por sua vez chama o "Result := FGerarNfse.Executar;". Após este "Executar" ele cai na exception que vem em seguida, pois o Result está ficando "false". Então nesta função "Executar" é chamado o "TratarResposta" este por sua vez chama o "ExtrairNotasRetorno" e é nesta função que acredito que não esteja conseguindo ler o arquivo de retorno corretamente, pois ali tem uma chamada: "FRetornoNFSe.LerXml;" e após esta chamada o conteúdo de FRetornoNFSe.ListaNFSe.CompNFSe.Count está ficando zerado, por isso creio que esteja faltando tratamento para o provedor DataSmart dentro do FRetornoNFSe.LerXml, para que consiga ler o arquivo de retorno corretamente.

Quanto ao seu questionamento referente ao XML da NFSe, sim ele está sendo gravado na pasta. Estou lhe enviando em anexo o XML da NFSe e os XMLs da comunicação.

O que observei é que o XML da nota está sendo recebido pelo webservice, pois se eu tento enviar novamente o mesmo número de NFSe ele da erro de duplicidade de numeração. Ou seja, esta recebendo o XML e retornando, acredito que esteja faltando somente ajustar a leitura do retorno.

Percebi também que um dos arquivos da comunicação, o arquivo "XXX-lista-nfse-soap.xml", que está em anexo esta com erro na estrutura do XML.

 

Arquivos.rar

  • Consultores
Postado

Boa tarde Mateus,

Acho que você não entendeu, eu quero saber se esta gravando um XML com o seguinte nome: *-nfse.xml

O arquivo: *-rps;xml não é o XML da Nota Fiscal de Serviço Eletrônica e sim o XML do Recibo Provisório de Serviço.

Se o valor de FRetornoNFSe.ListaNFSe.CompNFSe.Count é zero, então temos que descobrir o motivo.

Para isso basta colocar um Break Point na linha 465 da Unit pnfsLerListaNFSe, pois logo abaixo temos a seguinte instrução: Result := NFSeLida.LerXml;

Se o LerXML retornar False os dados da nota não vão ser ADD a lista, isso explica o Count ser zero.

Sendo assim precisamos saber o que provocou esse retorno ao executar a função LerXml.

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

  • Membros Pro
Postado

Certo Ítalo, somente está gravando os XMLs da comunicação e do RPS, o arquivo -nfse.xml não está sendo gravado.

Quanto ao procedimento LerXml da unit pnfsLerListaNFSe, não está chegando na linha 465 pois o conteúdo da variável Nivel1, está Falso, deve estar faltando tratamento para o provedor DataSmart nesta função

  • Membros Pro
Postado

Boa tarde Italo, tudo bem?

Com as alterações que eu efetuei no arquivo pnfsLerListaNFSe.pas que está em anexo consegui ter o retorno corretamente para o provedor DataSmart.

Peço que analise as alterações que eu fiz e se achar válido, que atualize nos fontes.

Agradeço desde já pela atenção e ajuda.

pnfsLerListaNFSe.pas

  • Curtir 1
  • 2 semanas depois ...
  • Membros Pro
Postado

Bom dia, tudo bem?

Estou colocando em produção a NFSe para o município de Ibiaçá-RS que usa o provedor DataSmart, porém estou com um problema em relação ao campo Prefeitura para ambiente de produção, no qual é configurado no envelope soap. Para homologação este campo deve ser passado com o conteúdo 'BANCO_DEMONSTRACAO'. Já para produção para o município de Ibiaçá-RS deverá ser passado o  conteúdo 'B_IBIACA' e pelo que me informaram cada município será uma lógica de nomenclatura diferente. Neste caso como vocês acham de fazer? Hoje no ACBr tem no ACBrNFSeWebServices.pas +- na linha 1079 o conteúdo mostrado abaixo que transforma o código do município para o nome conforme configurado na função CodCidadeToCidade.  

...

case FProvedor of
    proDataSmart:
      begin
        if FPConfiguracoesNFSe.WebServices.Ambiente = taProducao then
          Texto := StringReplace(Texto, '%Municipio%', UpperCase(CodCidadeToCidade(FPConfiguracoesNFSe.Geral.CodigoMunicipio)), [rfReplaceAll])
        else
          Texto := StringReplace(Texto, '%Municipio%', 'BANCO_DEMONSTRACAO', [rfReplaceAll]);
      end
  else
    Texto := StringReplace(Texto, '%Municipio%', IntToStr(FPConfiguracoesNFSe.Geral.CodigoMunicipio), [rfReplaceAll]);
  end;

...

 

Porém não podemos alterar na função CodCidadeToCidade pois senão interferirá em outros locais. Neste caso o que acham de fazer?

Agradeço desde já a colaboração.

Postado

Na minha opnião, seria interessante criar um campo chamado BANCO, no cidade.ini , logo apos o nome do provedor. 

ja que toda cidade é um banco com nome diferente, estou com o mesmo problema aqui em NONOAI. 

fiz uma gambiarra pra dar certo. 

MAS É UMA GAMBIARRA rsrs. 

 

  proDataSmart:
      begin
        if FPConfiguracoesNFSe.WebServices.Ambiente = taProducao then
          Texto := StringReplace(Texto, '%Municipio%', UpperCase('B_'+Copy(CodCidadeToCidade(FPConfiguracoesNFSe.Geral.CodigoMunicipio),1,Pos('/',CodCidadeToCidade(FPConfiguracoesNFSe.Geral.CodigoMunicipio))-1)), [rfReplaceAll])
        else
          Texto := StringReplace(Texto, '%Municipio%', 'BANCO_DEMONSTRACAO', [rfReplaceAll]);
      end

  • Membros Pro
Postado

Boa tarde.

Fiz uma alteração no arquivo ACBrNFSeWebServices.pas essa alteração está em anexo. Nesta alteração busco a informação do banco de dados de produção e de homologação do arquivo Cidades.ini, conforme o Rafael D'Lima sugeriu. No Arquivo Cidades.ini deverá ter dois novos parametros, são eles: BD_Prefeitura_P e BD_Prefeitura_H. Sendo o primeiro para Produção e o outro para Homologação.

Peço que analisem se puder ser submetido a alteração nos fontes do ACBr.

 

 

ACBrNFSeWebServices.pas

  • Consultores
Postado

Bom dia Rafael e Mateus,

Primeiramente precisamos saber se em homologação sempre será: BANCO_DEMOSTRACAO não importando a cidade.

Se sim, não faz sentido criar um campo no arquivo Cidades.ini para homologação.

No caso do ambiente de produção precisamos saber se existe uma padronização na montagem do texto, pelo que notei deve ser "B_nomedacidadeUF (tudo em maiúsculo).

Se existe um padrão não vejo necessidade de criar um campo no arquivo Cidades.ini para produção.

Alguém poderia entrar em contato com o provedor e obter essas informações?

  • Curtir 1
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

  • Membros Pro
Postado

Bom dia Italo, 

Eu já entrei em contato com o provedor e me informaram que para produção não segue um padrão de nomenclatura nenhum, por exemplo, Ibiaçá é B_IBIACA, Sananduva é SANANDUVA, Água Santa é B_ASANTA, Vila Langaro é B_LANGARO. Ou seja creio que seja interessante criar um campo no Cidades.ini para a base de produção. Aí como estava criando um campo para base de produção criei também para homologação pois caso eles mudem o banco de dados de homologação futuramente, ficará fácil de modificar, não exigirá alteração nos fontes. Se quiser posso remover o campo que criei para o banco de homologação, e lhe enviar o arquivo novamente só com o banco de produção. Me avisa o que achar que fica melhor.

Obrigado pelo retorno

  • Consultores
Postado

Mateus,

Fiz uma alteração na unit ACBrNFSeConfiguracoes visando a leitura dos novos campos no arquivo Cidades.ini (Banco_P e Banco_H).

Se o campo Banco_H estiver vazio ou não existir será considerado: BANCO_DEMOSTRACAO como sendo o valor desse campo.

E alterei também a unit ACBrNFSeWebServices visando a troca da variável %Municipio% pelo valor das propriedades Banco_P ou Banco_H dependendo do ambiente setado.

  • Curtir 1
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

  • Membros Pro
Postado

Boa tarde Italo,

Quase tudo 100% só a nomenclatura do banco demonstração que está incorreta a escrita, você colocou 'BANCO_DEMOSTRACAO' ao invés de 'BANCO_DEMONSTRACAO'.

O Arquivo corrigido está em anexo.

Se puder alterar também o arquivo de cidades.ini alterando a cidade de ibiaçá já adicionando o banco homologação e também adicionando as demais cidades conforme abaixo. Acho melhor sempre deixar no arquivo Cidades.ini o banco de homologação mesmo que hoje seja o mesmo banco para todas as cidades. Mas aí você verifica o que achar melhor.

Muito obrigado pela atenção e colaboração.

 

Cidades.ini

...

[4309803]
Nome=Ibiaçá
UF=RS
Provedor=DataSmart
Banco_P=B_IBIACA
Banco_H=BANCO_DEMONSTRACAO

[4300059]
Nome=Água Santa
UF=RS
Provedor=DataSmart
Banco_P=B_ASANTA
Banco_H=BANCO_DEMONSTRACAO

[4316600]
Nome=Sananduva
UF=RS
Provedor=DataSmart
Banco_P=SANANDUVA
Banco_H=BANCO_DEMONSTRACAO

[4323358]
Nome=Vila Lângaro
UF=RS
Provedor=DataSmart
Banco_P=B_LANGARO
Banco_H=BANCO_DEMONSTRACAO

ACBrNFSeConfiguracoes.pas

  • Curtir 1
  • Consultores
Postado

Bom dia Mateus,

Muito obrigado pela correção e colaboração, já enviei tudo para o repositório.

Detalhe, no arquivo Cidades.ini não inclui o campo Banco_H, pois o componente ao ler esse arquivo se o campo Banco_H não existir ou não tiver valor é para ser considerado o valor "BANCO_DEMONSTRACAO".

Por favor atualize e faça novos testes.

  • Curtir 1
  • Obrigado 1
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á 2248 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.