Ir para conteúdo
  • Cadastre-se

dev botao

Gerar e Assinar Lote sem enviar.


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

Recommended Posts

Boa tarde pessoal,

Uma dúvida, como faço para gerar e assinar o XML de um lote sem envia-lo?

Pergunto isso pois sempre salvo o XML de envio na base de dados antes de enviar.

Até o momento se não me falha a memória, estava utilizando o método GerarNFSe,  no qual preenchia as propriedades XMLLoteAssinado ou XMLLoteOriginal.

Porém, realizei alguns teste aqui agora e não está preenchendo essas propriedades.

É este o método correto? 

Obrigado

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia João,

Você salva no banco de dados o XML do lote de RPS a ser enviado?

Em vez disso porque não salva o XML do RPS a ser enviado?

E caso ele venha ser processado com sucesso em um outro campo você salva o XML da NFS-e retornada pelo provedor.

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

Então, na verdade salvamos aqui o XML válido a ser enviado, no caso o Lote do XML assinado.

O objetivo de salvarmos esse lote de RPS válido, é pensando na possibilidade de o fiscal solicitar ao cliente o XML de envio contendo a assinatura.

Fiz alguns teste aqui e se não estou enganado, quando salvo o XML do RPS é salvo apenas a TAG do RPS e as suas sub-tags, ou seja não possui a assinatura do XML que seria o objetivo.

Sendo que para esses provedores que estou desenvolvendo nenhum possui assinatura por RPS, apenas no lote.

Após o lote ser enviado e processado com sucesso salvamos também o XML da NFS-e.

 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

João,

Sim, existem provedores que não devemos assinar o RPS somente o Lote.

Mas se a questão é validade jurídica em salvar o Lote pois esta contem a assinatura, como que fica o XML da NFS-e que em muitos os casos também não tem assinatura?

Você vai salvar o XML da NFS-e sem assinatura da mesma forma, ou não?

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

Boa tarde Italo,

Sim concordo, o XML de retorno não vem assinado, por isso salvamos o XML de envio e de retorno. 

Assim juntamos todos os dados. XML de envio assinado e o XML de retorno que é a NFS-e do XML válido (Assinado).

Inclusive após a nota ser autorizada é enviado os dois XMLs ao cliente.

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde João,

O XML da NFS-e por não ter assinatura digital não serve para nada, a unica informação valida que consta no XML é o código de verificação.

Se o tomador desejar verificar se a nota foi realmente enviada, basta entrar no site e consulta-la através do código de verificação.

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 noite João,

Como não existe uma padronização referente a assinatura, o método Enviar com base na parametrização do componente através dos arquivos INI é assinado ou não o XML do RPS, bem como é assinado ou não o Lote de envio.

No caso do método Gerar (método de envio usado por alguns provedores) a assinatura pode ser uma só e dois lugares diferentes ou até mesmo 2 assinaturas.

Como você pode ver no caso da NFS-e fica complicado separar o GerarXML, assinar dos métodos de envio (Enviar, EnviarSincrono e Gerar).

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

Bom dia João,

Como foi dito anteriormente, temos provedores que não se deve assinar o XML do RPS, somente o Lote, temos ainda provedores que não se assina nada.

Em uma postagem anterior, você diz se aparecer um fiscal e solicitar o XML de envio, lembre-se o que é enviado é um RPS - Recibo Provisório de Serviço.

Se algum fiscal aparecer vai querer ver o XML da NFS-e e não de um Recibo Provisório.

No meu entendimento se você deseja guardar algum XML, pensando em uma possível fiscalização, o XML a ser guardado é o da NFS-e, pois este possui uma informação importante que é o código de verificação que podemos utiliza-lo para confirmar a autenticidade da nota junto a 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

Boa tarde Italo, compreendo seu ponto de vista.

O detalhe é que seguimos como regra aqui na empresa sempre salvar o XML de envio e retororno, até mesmo para suporte posteriormente.

Há a possibilidade de eu pegar o XML (Mesmo que não seja assinado) antes do envio para gravar no banco?

Possui algum método no qual eu consigo Gerar o Lote e obter o XML, mesmo que o XML não venha assinado?

Conforme comentei anteriormente, utilizávamos um método (se não me engano "GerarLote") que retornava o XML na propriedade XMLLoteAssinado ou XMLLoteOriginal, porém fui realizar uma manutenção no modulo e percebi que após atualizar a ACBR essas propriedades estão vindo vazias.

 

Obrigado e desculpa o incomodo.

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde João,

Tente desta forma:

 ACBrNFSe1.NotasFiscais.Assinar( bAssina );
 cXML := ACBrNFSe1.NotasFiscais.Items[ x ].XMLAssinado;
 ACBrNFSe1.Enviar( nLote );

A variável bAssina tem que valer True ou False, pois isso vai determinar se o XML do RPS será assinado ou não, lebre-se que essa informação depende do provedor.

A variável cXML vai conter o XML do RPS assinado ou não, a variável x é o índice do RPS dentro da lista, a propriedade XMLAssinado contem o XML do RPS após a execução do método Assinar, se o provedor não exige que o RPS seja assinado essa propriedade vai retornar o XML sem a assinatura apesar no seu nome.

A variável nLote tem o valor do numero do lote que será enviado. 

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

Boa tarde Italo,

Primeiramente obrigado pelo retorno e pela ajuda.

Esse método assinaria somente o RPS (Se necessário), na verdade eu precisaria o XML inteiro (lote) assinado.

Acredito que quase todos os provedores assinam o XML inteiro(Lote), por isso gostaria de pegar o XML assinado.

Mas, novamente, obrigado pelo retorno.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde João,

Os provedores: NFSeBrasil, SimplISS, SpeedGov, Coplan, EReceita, IssDigital, Mitra, Saatri, Siam, Virtual, Conam, EGoverneISS, EL e Governa - não devemos assinar o RPS e nem o Lote.

Os provedores: Goiania e Tecnos - só devemos assinar o RPS.

Talvez você diga, não tenho nenhum cliente cuja cidade utilize um desses provedores, tudo bem.

Lembre-se que as prefeituras realizam contratos com essas empresas através de licitação e quando vence o contrato uma nova licitação é realizada.

Ai se outra empresa ganhar como é que fica se for uma das mencionadas acima?

Agora se você deseja o XML do Lote sem realizar o seu envio, execute o método GerarLote.

Volto a dizer, que guardar no banco de dados o Lote é perda de tempo e de espaço.

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 João,

E o XML referente ao lote é salvo em disco?

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 João,

É preciso "debugar" para descobrir o que esta ocorrendo.

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

Boa tarde Italo, ao depurar, observei que na linha 362 codigo:

IsUTF8  := XmlEstaAssinado(FPDadosMsg);

a propriedade FPDadosMSg, se encontra vazia.

Devo chamar algum método antes para preencher essa propriedade?

Pelo oque observei, assim que funcionar, só sera preenchido as propriedade de XMLLoteAssina, XMLLoteorignal, se estiver habilitado para salvar em disco, confere?

É valido eu alterar para sempre que chamar o método de GeraLote, ele preencher essas propriedades mesmo não optado por salvar em disco?

Acredito que você não concordará muito com essa ideia pelo fato de não achar valido salvar o XML do RPS, mas é uma regra nossa da empresa, para fins de suporte etc.

Novamente, obrigado e desculpa o incomodo.

 

Link para o comentário
Compartilhar em outros sites

Italo, favor ignorar o comentário anterior:

1 hora atrás, João Paulo Müller disse:

Boa tarde Italo, ao depurar, observei que na linha 362 codigo:


IsUTF8  := XmlEstaAssinado(FPDadosMsg);

a propriedade FPDadosMSg, se encontra vazia.

Devo chamar algum método antes para preencher essa propriedade?

Conseguir resolver o problema da seguinte maneira,

Antes de usar o método GeraLote, utilizei o método GerarRPS,ficando da seguinte maneira:

FrmMain.ACBrNFSe.NotasFiscais.GerarNFSe;
frmmain.ACBrNFSe.WebServices.GeraLote(Lote)

No método GeraLote tive que fazer uma alteração no Execute, herdei o método da classe TNFSeWebService

Ou seja, no método execute alterei de :

 SalvarEnvio;
 Result := True;

Para:

Inherited;
SalvarEnvio;
Result := True;

Acrescentei o Inherited para herdar o método execute, depois prosseguir e salvar. 

Estão corretas as alterações?

Referente a questão baixo, o que me diz?

Citar

Pelo oque observei, assim que funcionar, só sera preenchido as propriedade de XMLLoteAssina, XMLLoteorignal, se estiver habilitado para salvar em disco, confere?

É valido eu alterar para sempre que chamar o método de GeraLote, ele preencher essas propriedades mesmo não optado por salvar em disco?

Acredito que você não concordará muito com essa ideia pelo fato de não achar valido salvar o XML do RPS, mas é uma regra nossa da empresa, para fins de suporte etc.

 

Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution

João,

Favor atualizar os fontes e para testar use o programa exemplo, botão [Gerar Lote Rps].

  • Curtir 1
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á 2787 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.