Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 3733 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Boa tarde Italo,

beleza, agora ficou padronizado a carga para todos os lugares necessários. Vou fazer alguns testes e qualquer

coisa lhe aviso.

Bom, como tenho trabalhado somente com o provedor Betha, hoje resolvi fazer um teste após as mudanças que fiz no

"envelopamento" e geração das mensagens para este provedor.

Atribuí "True" para a função TProvedorBetha.GetValidarLote, e para a minha surpresa, passou na validação que faz

na TWebServicesBase.DoNFSeEnviarLoteRPS.

Italo, você sugere deixar True mesmo? Creio que poderá dar problema caso os schemas da Betha forem alterados certo?

Mas aí cabe a nós observarmos e acertarmos no componente/envio o que for necessário. Estou certo?

Aguardo uma resposta. Caso for isso mesmo, se puder acertar o result da GetValidarLote da ACBrProvedorBetha, para True.

Abraço.

Rodrigo Cantelli

Postado

Italo, retorno dos testes das consultas.

Vi que você comentou uma parte na função "TACBrNFSe.ConsutarLoteRps", e

no demo adicionou a seleção do RPS no botão Consultar Lote. Acho que temos um problema aí.

A ConsultarLote estava correta, com aquela parte que faz a carga com base no número de Lote: " aPath+ANumLote+'-env-lot.xml' ".

Creio que da forma que ficou agora não está certo... não vejo porque selecionarmos um XML de RPS, uma vez que estamos consultando um lote, e já passamos o Número (para carga do arquivo e RPSs contidos no lote) e o protocolo (este para consulta).

Estou certo?

As outras cargas de arquivos.. para cancelamento e demais consultas, pelo que vi ficou perfeito agora.

Abraço.

Rodrigo Cantelli

Postado

Beleza Italo, já baixei. Obrigado cara.

Se puder dar uma olhada no meu post, neste tópico mesmo, antes desse referente à consulta, falando da validação do lote para o provedor Betha

e me repassar o que você acha melhor...

Abraço!

Rodrigo Cantelli

Postado

Então Italo, no anexo, na pasta old são os schemas que estava usando até agora, acredito ser os mesmos que você tem.

Fora deste pasta, são os schemas que baixei agora no site da Betha.

Não encontrei os xsds de cada mensagem.

No manual da betha diz:

"O Schema XML (arquivo XSD) correspondente a cada uma das mensagens

XML de pedido e de retorno utilizadas pelo Web Service pode ser obtido na internet

acessando o Portal do Sistema de Notas Fiscais de Serviço Eletrônicas das Secretarias

Municipais de Fazenda."

Acessei o ambiente de teste, e não encontrei nada pra baixar referente aos XSDs.

Link do manual é https://e-gov.betha.com.br/e-nota/manuais/layout.pdf

Vou dar mais uma procurada nos schemas das mensagems.

Abraço.

Betha.rar

Rodrigo Cantelli

Postado

Em anexo as units que mexi, comentei com o meu nome tentando explicar o porque.

na impressão da danfe e na unit de conversão tive que mudar, pois pra minha sorte o provedor do meu cliente adotou um método de validação próprio, parecido com o abrasf mas diferente no quesito da natureza de operação, então como não manjo tanto assim do componente copiei as units para o meu projeto e alterei elas com o que precisava, está funcionando, geração e envio de lote, consulta de situação de lote.

não esta funcionando a consulta de lote, e a consulta de RPS, porém entrei em contato com a prefeitura, e falaram que consultando a situação do lote, e obtendo exito o processo está concluído, isso o sistema está fazendo, então quem sou eu pra falar o contrário hehehe

estou passando pra minha aplicação, pois o cliente tem pressa em emitir a NFS-e

se mais alguém estiver desenvolvendo para o provedor Thema, gostaria de trocar experiências, pois foi bem complicado até sair do chão, acredito que posso tanto ajudar alguém como ser ajudado.

Desde já, agradeço a todos, sem a ajuda de vocês não seria possível nada disso.

ACBRProvedorThema.rar

nfse.rar

  • Consultores
Postado

Bom dia a Todos,

Rafael, já fiz o merge das alterações realizadas por você e já esta disponivel no branches.

Notei que ainda falta finalizar algumas rotinas na unit ACBrProvedorThema.

Realizei uma alteração nos fontes, agora temos duas propriedades: Provedor e xProvedor.

A primeira contem o valor vindo do enumerador e a segunda é uma string que contem o nome do provedor, exemplo:

Provedor = proThema

xProvedor = 'Thema'

Obrigado a todos por colaborarem com testes e implementação de códigos.

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

Postado

Bom dia Senhores,

Estou utilizando o Provedor GovBR e Prefeitura de Contagem-MG. Depous desta ultima atualização, estou com o seguinte erro :

nfse.xsd#/schema

O espaço para nome 'http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd' fornecido difere do targetNamespace

'http://www.abrasf.org.br/nfse.xsd' do esquema.

O erro ocorre na seguinte condição do arquivo ACBrNFSeUtil.pas.

if RightStr(URL, 1) = '/'

then Schema.add( URL + Servico, schema_filename )

else Schema.add( URL, schema_filename );

Desde ja agradeço pela atenção.

Um abraço.

Postado

Boa tarde Italo,

Primeiramente, obrigado por me responder.

O erro relacionado ao namespace foi resolvido com o novo schema, obrigado. Mas agora estou tendo o seguinte erro na validação do schema:

Falha na validação do Lote 12 O nó não é válido nem inválido, pois nenhuma declaração de DTD ou esquema foi encontrada.

Este erro ocorre no arquivo ACBrNFSeWebServices.pas

// Sugestão de Rodrigo Cantelli

if FProvedorClass.GetValidarLote

then begin

if not(NotaUtil.Valida(FDadosMsg, FMsg,

FConfiguracoes.Geral.PathSchemas,

FConfiguracoes.WebServices.URL,

FConfiguracoes.WebServices.ServicoEnviar,

FConfiguracoes.WebServices.Prefixo4))

then raise Exception.Create('Falha na validação do Lote ' +

IntToStr(TNFSeEnviarLoteRps(Self).NumeroLote) + sLineBreak + FMsg);

end;

Muito Obrigado.

  • Membros Pro
Postado

Boa noite Endrigo,

O que é que esta vindo trocado, a informação ou a sequencia das NFSe?

Desculpe não ficou claro para mim.

Desculpe a demora para responder Ítalo, estive ausente da empresa nesses dias. Bom, o problema que estou tendo é que quando mando gravar o número da NFS-e e o número do protocolo para o número de RPS enviado por mim está vindo de outra nota de outro RPS. Como mando um lote de 20 notas sempre, os retornos de número da NFSe e número de protocolo está vindo trocado entre as notas enviadas no mesmo lote.

Ficou claro?

945757316_FantastsoftLogotipo100px.png.20c116e19bad4f7436640307ee0fa01a.png   Endrigo Rodrigues
Fantastsoft Sistemas

Node / Delphi 11.2
Cabo Frio/RJ

 

  • Consultores
Postado

Bom dia a todos,

Realizei algumas alterações nos fontes do componente ACBrNFSe.

Baixem as atualizações.

Quem utiliza o provedor Thema, favor testar todas as funcionalidades.

Favor reportar aqui no fórum os eventuais erros.

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 Endrigo,

Pelo que entendi as NFSe retornadas não estão na mesma ordem dos RPS enviados.

Me parece pior um pouco Ítalo. Não vir na mesma ordem não seria problema algum, o problema que observei é que o número e o protocolo da NFSe está sendo gravado no registro de outro RPS.

945757316_FantastsoftLogotipo100px.png.20c116e19bad4f7436640307ee0fa01a.png   Endrigo Rodrigues
Fantastsoft Sistemas

Node / Delphi 11.2
Cabo Frio/RJ

 

  • Membros Pro
Postado

Depois que atualizei passei a ter o seguinte erro:

Falha na validação do Lote 483

Element '{http://www.abrasf.org.br/nfse.xsd}Cidade' is unexpected according to content model of parent element '{http://www.abrasf.org.br/nfse.xsd}Endereco'.

Expecting: {http://www.abrasf.org.br/nfse.xsd}CodigoMunicipio, {http://www.abrasf.org.br/nfse.xsd}Uf, {http://www.abrasf.org.br/nfse.xs....

Meu município é Belo Horizonte/MG.

945757316_FantastsoftLogotipo100px.png.20c116e19bad4f7436640307ee0fa01a.png   Endrigo Rodrigues
Fantastsoft Sistemas

Node / Delphi 11.2
Cabo Frio/RJ

 

  • Membros Pro
Postado

Bom dia Endrigo,

Fiz a correção, favor atualizar e testar.

Deu certo Ítalo. Mas estou tendo problemas na função ConsutarNFSeporRps(), se estou passando o RPS como parâmetro para que você está verificando NotasFiscais.Count? Não tenho a Nota Fiscal, estou consultando o RPS.

Para a consulta Ítalo, vejo que deveria ter NotasFiscais.Clear e NotasFiscais.Add automaticamente no código. Pois não tem como eu abrir uma NFSe sendo que não possuo a mesma.

945757316_FantastsoftLogotipo100px.png.20c116e19bad4f7436640307ee0fa01a.png   Endrigo Rodrigues
Fantastsoft Sistemas

Node / Delphi 11.2
Cabo Frio/RJ

 

  • Membros Pro
Postado

Boa tarde Endrigo,

Pelo que entendi as NFSe retornadas não estão na mesma ordem dos RPS enviados.

Me parece pior um pouco Ítalo. Não vir na mesma ordem não seria problema algum, o problema que observei é que o número e o protocolo da NFSe está sendo gravado no registro de outro RPS.

Ítalo, veja bem. O meu sistema só possui o número do RPS antes de enviar o lote de NFSe, portanto, para atualizar o lote de notas enviadas preciso de procurar o RPS no meu banco de dados para atualizar as outras informações (número da NFSe, código de verificação, protocolo e o XML). Porém quando mando procurar o RPS que está em NotasFiscais.Items[x].NFSe.IdentificacaoRps.Numero, não condiz com as outras informações.

Um exemplo que acabei de fazer agora, enviei um lote com 3 notas (RPS 25907, 25908 e 25909).

Os retornos no componente foram trocados, veja abaixo:

Para o NotasFiscais.Items[x].NFSe.IdentificacaoRps.Numero = 25907 obtive NotasFiscais.Items[x].NFSe.Numero = 201200000004214, sendo que o correto deveria ser 201200000004216.

Para o NotasFiscais.Items[x].NFSe.IdentificacaoRps.Numero = 25908 obtive NotasFiscais.Items[x].NFSe.Numero = 201200000004216, sendo que o correto deveria ser 201200000004214.

Para o NotasFiscais.Items[x].NFSe.IdentificacaoRps.Numero = 25909 obtive NotasFiscais.Items[x].NFSe.Numero = 201200000004215, está correto.

Mas já fiz um teste onde as três vieram trocadas. Espero que tenha ficado claro agora.

945757316_FantastsoftLogotipo100px.png.20c116e19bad4f7436640307ee0fa01a.png   Endrigo Rodrigues
Fantastsoft Sistemas

Node / Delphi 11.2
Cabo Frio/RJ

 

  • Membros Pro
Postado

Boa tarde Endrigo,

Neste caso você deve carregar para o componente o XML do RPS, conforme programa exemplo.

De uma olhada no código que é executado ao clicar no botão [Consultar NFSe por RPS].

Em qual caso Ítalo?

945757316_FantastsoftLogotipo100px.png.20c116e19bad4f7436640307ee0fa01a.png   Endrigo Rodrigues
Fantastsoft Sistemas

Node / Delphi 11.2
Cabo Frio/RJ

 

  • Membros Pro
Postado

Boa tarde Endrigo,

Neste caso você deve carregar para o componente o XML do RPS, conforme programa exemplo.

De uma olhada no código que é executado ao clicar no botão [Consultar NFSe por RPS].

Em qual caso Ítalo?

Se você estiver falando da questão que citei da função ConsutarNFSeporRps() vejo como redundante carregar o XML sendo que no caso em que utilizo, é exatamente quando não possuo o XML, como no caso de conseguir enviar o lote e não ter conseguido concluir a gravação no meu banco de dados por algum problema específico. Eu não abro telas para o usuário procurar NFSe ou RPS, tento fazer tudo automaticamente, e no caso da função ConsutarNFSeporRps() não é necessário ler o XML, veja que no exemplo a leitura do XML foi feita somente para pegar os dados do RPS para passar no parâmetro, o XML da NFSe será retornada pelo WebService.

945757316_FantastsoftLogotipo100px.png.20c116e19bad4f7436640307ee0fa01a.png   Endrigo Rodrigues
Fantastsoft Sistemas

Node / Delphi 11.2
Cabo Frio/RJ

 

  • Membros Pro
Postado

Ítalo, só um esclarecimento.

Para gerar o PDF da NFS-e preciso de ter o QuickReport pago, somente dessa forma é que consigo gerar o PDF?

945757316_FantastsoftLogotipo100px.png.20c116e19bad4f7436640307ee0fa01a.png   Endrigo Rodrigues
Fantastsoft Sistemas

Node / Delphi 11.2
Cabo Frio/RJ

 

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