Jump to content

Compre o Delphi
Com até 30% de desconto
e parcelado em até 12x sem juros

Saiba Mais

Balança SM100 performance surpreendente

Tecnologia Japonesa   Teclado e Visor resistentes a água
Consumo inteligente de etiquetas   Baixo custo de manutenção
Comunicação Ethernet e WIFI independentes

Saiba mais

Impressora de Etiquetas ELGIN - L42 PRO

Protocolos PPLA, PPLB, ZPL, EPL (automático)
Porta USB padrão Opcionais: Ethernet, Serial, Paralela
Sensor de Etiquetas Móvel Garantia de 18 meses

Saiba mais

Italo Jurisato Junior

Novos Fontes do ACBrNFSe

Recommended Posts

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Rodrigo,

Poste como anexo os schemas que você esta usando para validar os Lotes de RPS para o provedor Betha.

Acredito que os que tenho estão errados ou desatualizados.


Consultor SAC ACBr Italo Jurisato 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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Fiz algumas mudanças na unit do provedor Thema, como faço pra mandar minha alteração para o projeto?

havia algumas informações faltando e fiz umas correções

Share this post


Link to post
Share on other sites

Boa tarde Rafael,

Desde já muito obrigado pela colaboração.

Faça como o Rodrigo faz, compacta os arquivos usando o WinRar e poste como anexo.


Consultor SAC ACBr Italo Jurisato 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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

Boa tarde Rogério,

Esta disponivel no branches varios schemas por favor utilize no seu caso o que esta na pasta:

...\NFSe_Novos_Fontes\Exemplos\ACBrNFSe\Schemas\Abrasf_v01


Consultor SAC ACBr Italo Jurisato 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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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?


Endrigo Rodrigues de Moraes
Fantastsoft Sistemas Ltda.

Delphi XE2
Belo Horizonte/MG

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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.


Endrigo Rodrigues de Moraes
Fantastsoft Sistemas Ltda.

Delphi XE2
Belo Horizonte/MG

Share this post


Link to post
Share on other sites

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.


Endrigo Rodrigues de Moraes
Fantastsoft Sistemas Ltda.

Delphi XE2
Belo Horizonte/MG

Share this post


Link to post
Share on other sites

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.


Endrigo Rodrigues de Moraes
Fantastsoft Sistemas Ltda.

Delphi XE2
Belo Horizonte/MG

Share this post


Link to post
Share on other sites

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.


Endrigo Rodrigues de Moraes
Fantastsoft Sistemas Ltda.

Delphi XE2
Belo Horizonte/MG

Share this post


Link to post
Share on other sites

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].


Consultor SAC ACBr Italo Jurisato 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

Share this post


Link to post
Share on other sites

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?


Endrigo Rodrigues de Moraes
Fantastsoft Sistemas Ltda.

Delphi XE2
Belo Horizonte/MG

Share this post


Link to post
Share on other sites

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.


Endrigo Rodrigues de Moraes
Fantastsoft Sistemas Ltda.

Delphi XE2
Belo Horizonte/MG

Share this post


Link to post
Share on other sites

Í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?


Endrigo Rodrigues de Moraes
Fantastsoft Sistemas Ltda.

Delphi XE2
Belo Horizonte/MG

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×
×
  • Create New...