Ir para conteúdo
  • Cadastre-se

dev botao

Problemas Ao Gerar E Enviar Lote E Nfse Rio De Janeiro


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

Recommended Posts

Postado

Prezados,

 

Estou com algumas dúvidas, hoje nós usamos uma certificação para a NFe, e gostaria de saber se a mesma certificação pode ser usada para NFSe(Rio de Janeiro), pergunto isso porque ao testar as funções para a geração/enviar Lote ou NFSe, o sistema me retorna uma mensagem de erro(anexo01). Os componentes do Acbr formam instalados corretamente, assim como os arquivos de schemas do Rio de Janeiro.  

Na aba de configuração os dados formam preenchidos corretamente como pode ser visto nos  anexos02,03,04 e 05.

 

O que percebi debugando o código, é que a rotina só enxerga o schema nfse.xsd, e não os outros, além disso, na Unit ACBrNFSeConficuraçoes, procedure SetConfigMunicipio as duas rotinas retonam false para assinatura de lote e rps.

 

A rotina gera o lote normalmente(em anexo), porém, sem a assinatura, invalidando o lote.

 

Gostaria de alguma ajuda sobre este assunto.

 

Desde já agradeço a atenção e compreensão de todos.

  

Alexandre Trajano

 

post-8449-0-56639600-1367519145.jpg

 

post-8449-0-60474500-1367519147.jpg

 

post-8449-0-79542000-1367519148.jpg

 

post-8449-0-48080200-1367519170.jpg

 

post-8449-0-81362000-1367519173.jpg

 

0001-lot-rps.xml

 

 

 

post-8449-0-56639600-1367519145.jpg

post-8449-0-60474500-1367519147.jpg

post-8449-0-79542000-1367519148.jpg

post-8449-0-48080200-1367519170.jpg

post-8449-0-81362000-1367519173.jpg

0001-lot-rps.xml

Postado

Ítalo,

 

Muito obrigado pela sua ajuda.

 

Mas os fontes que instalei são de 16/04/2013, acho que são os mais recentes.

 

Não sei se isso faz alguma diferença mas o certificado digital na qual faço o uso do nº de série, é de uma empresa que não está incluída na lista de prestadores(disponibilizado no site da prefeitura), neste caso, independente de ser produção ou homologação, não poderei enviar e validar qualquer lote! Correto?

 Pude observar quando estava debugando o código e que ao entrar na função assinar ou na função SetConfigMunicipio;  tanto ConfigCidade1.AssinaRPS e ConfigCidade1.AssinaLote retonam false. Com isso na função Assinar também fica false e não gera nod de assinatura no arq. XML. creio que isso esteja invalidado o lote.
 
Mais uma vez agradeço a sua ajuda.
Postado

Boa noite Italo,

 

Fiz o que você recomendou de atualizar os fontes, e funcionou perfeitamente. Agora está gerando o Lote com seus respectivos RPS.

 

Agora ao gerar e enviar lote, creio que eu esteja esquecendo de de alguma coisa, só que não consigo identificar. Ao gerar e enviar lote, a rotina gera perfeitamente o lote com seus RPS, mas no final me exibe uma mensagem que o XML de Pedido do servico sem conteudo. O que pode ser?  No trecho em vermelho realmente não está sendo preenchido.

 

Muito obrigado pela sua ajuda!

 

 

 

 

segue abaixo a procedure de configuração

 

 

_CtrlNFSE20.Configuracoes.Certificados.NumeroSerie := edtNumSerie.Text;
 _CtrlNFSE20.Configuracoes.Arquivos.AdicionarLiteral:=True;
 _CtrlNFSE20.Configuracoes.Arquivos.EmissaoPathNFSe:=True;
 _CtrlNFSE20.Configuracoes.Arquivos.PastaMensal:=True;
 _CtrlNFSE20.Configuracoes.Arquivos.PathCan:=edtPathLogs.Text;
 _CtrlNFSE20.Configuracoes.Arquivos.PathNFSe:=edtPathLogs.Text;
 _CtrlNFSE20.Configuracoes.Arquivos.PathGer:= edtPathLogs.Text;
 _CtrlNFSE20.Configuracoes.Arquivos.PathRPS:= edtPathLogs.Text;
 _CtrlNFSE20.Configuracoes.Arquivos.Salvar:=True;
 
 PathMensal:=_CtrlNFSE20.Configuracoes.Arquivos.GetPathNFSe(0);
 
 _CtrlNFSE20.Configuracoes.Geral.PathSchemas := edtSchemas.Text;
 _CtrlNFSE20.Configuracoes.Geral.Salvar      := ckSalvar.Checked;
 _CtrlNFSE20.Configuracoes.Geral.PathSalvar  := edtPathLogs.Text;
 
 _CtrlNFSE20.Configuracoes.WebServices.CodigoMunicipio := StrToIntDef(edtCodCidade.Text, 0);
 _CtrlNFSE20.Configuracoes.WebServices.Ambiente        := StrToTpAmb(Ok, IntToStr(rgTipoAmb.ItemIndex+1));
 _CtrlNFSE20.Configuracoes.WebServices.Visualizar      := ckVisualizar.Checked;
 _CtrlNFSE20.Configuracoes.WebServices.SenhaWeb        := edtSenhaWeb.Text; 
 
 
 //_CtrlNFSE20.Configuracoes.WebServices.ServicoEnviar; 
 
 
 _CtrlNFSE20.Configuracoes.WebServices.ProxyHost := edtProxyHost.Text;
 _CtrlNFSE20.Configuracoes.WebServices.ProxyPort := edtProxyPorta.Text;
 _CtrlNFSE20.Configuracoes.WebServices.ProxyUser := edtProxyUser.Text;
 _CtrlNFSE20.Configuracoes.WebServices.ProxyPass := edtProxySenha.Text;
 
 
 
 _CtrlNFSE20.Configuracoes.WebServices.SetConfigMunicipio(_CtrlNFSE20.Configuracoes.Geral.PathSchemas);
 
 if _CtrlNFSE20.DANFSe <> nil then
  begin
   _CtrlNFSE20.DANFSe.Logo       := edtLogoMarca.Text;
   _CtrlNFSE20.DANFSe.PrestLogo  := edtPrestLogo.Text;
   _CtrlNFSE20.DANFSe.Prefeitura := edtPrefeitura.Text;
  end;
 
 lblSchemas.Caption := _CtrlNFSE20.Configuracoes.WebServices.xProvedor;

 

 

 

post-8449-0-43852800-1367876598.jpg

Postado

Ítalo, boa tarde!

 

Ontem, gerei o 0001-env-lot-c.xml  mas mesmo assim ainda me retorna  a mensagem de "XML de Pedido de Serviço sem Conteúdo". 

Mas como eu já havia comentado, os arquivos foram validados! Não sei porque a rotina me retorna esta mensagem.

 

Segue em anexo os arquivos que são gerados ao acionar "Gerar e Enviar Lote"

 

Muito obrigado pela a ajuda e atenção!

Postado

Ítalo, boa noite!

 

Fiz  as atualizações e não deu mais a mensagem de erro informando que o XML estava sem conteúdo! Muito obrigado!

 

Nos testes(em ambiente de homologação), estou utilizando um certificado de uma empresa que está cadastrada na prefeitura como prestador de serviço, o CNPJ dela que aparece no site é o mesmo que está cadastrado no sistema e no certificado. Agora fico na dúvida se poder ser um problema do provedor, ou do certificado!!

Tô mandando um print do retorno e da mensagem!

 

Mais uma vez obrigado!

 

post-8449-0-78691900-1368138453.jpg

post-8449-0-72542400-1368138454.jpg

  • Consultores
Postado

Bom dia Alexandre,

 

Que bom, estamos progredindo.

 

Alguns provedores requerem dois cadastros, um para emitir a NFS-e via site e outro para emitir via webservices.

 

Favor checar junto ao provedor se o problema não é esse.

 

Note que uma das mensagens diz: CNPJ não autorizado a realizar o serviço

Isse me leva a crer que há necessidade de realizar um cadastro.

 

Fiz mais alguns ajustes, acredito que agora deve inclusive resolver o problema da primeira mensagem de erro,

 

Favor baixar os fontes e testar novamente.

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

Ìtalo, boa tarde!!

 

Fiz as atualizações, mas tem um coisa que não mencionei antes, quando você me pediu para atualizar os fontes a 1ª vez, quando fui compiliar, algumas variaves não foram reconhecidas! Segue a relação da unit com os as funções estão com variaves que não forma identificadas.

 

As variaveis destacadas em vermelho ou foram comentadas e outras substituidas. Depois destas alterações a rotina funciona. Não sei se por conta disso está    a rotina me retorna informando que o CNPJ não está autorizado.

 

De qualquer forma agradeço novamente a sua ajuda!!

 

Unit: ACBRPROCVEDOR4R

   

      Função: GetAssinarXML

                  acRecSincrono

 

    Função:Gera_TagI

                 acRecSincrono

 

     Função:Gera_TagF

                 acRecSincrono

 

     Função:GetSoapAction

                 acRecSincrono

 

      Função:GetRetornoWS

                 acRecSincrono

 

Unit: ACBRNFSEWEBSERVICE

 

        function GetLastErrorText:

                       pro4R

      

        procedure TWebServicesBase.LoadMsgEntrada

                          pro4R

                          proGovDigital

 

      procedure TWebServicesBase.DoNFSeEnviarLoteRPS;

                           pro4R

 

       procedure TWebServicesBase.DoNFSeGerarNFSe;

                          pro4R

 

       procedure TWebServicesBase.DoNFSeGerarLote;

                          pro4R

 

     procedure TWebServicesBase.DoNFSeEnviarSincrono;

                         pro4R

 

    function TNFSeEnviarSincrono.Executar:

                  acRecSincrono Substituido por acRecepcionar

 

 

    Unit: ACBRNFSEUTIL

 

          function AssinarMSXML

                        pro4R

 

   Unit:ACBRNFSECONFIGURAÇÕES

 

         Procedure TWebServicesConf.SetConfigMunicipio

                             pro4R

                             proGovDigital

  • Consultores
Postado

Boa tarde Alexandre,

 

Se os identificadores que você comentou estão no código é porque eles existem.

 

Elas estão definidas na unit: pnfsConversao.pas, se elas não existem no respectivo fonte que encontra-se na sua maquina, é porque ela esta desatualizada, ou foi alterada e o Tortoise não consegue atualizar.

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

Ítalo, bom dia!!

 

Baixei o fonte em questão e descomentei e foi tudo OK!

 

Acho que a única coisa que falta é a o retorno do provedor, a rotina envia o lote e acusa o recebimento, mas logo depois me retorna com erro de Lote inválido(Verifique a assinatura dos RPS).

Porém o certificado que estamos utilizando é de uma empresa (nosso cliente inclusive ) que está cadastrada na lista de prestadores cujo o mesmo CNPJ consta na lista, e o certificado foi validado no SEFAZ. A empresa utiliza o mesmo certificado para entrar no site para a nota carioca.

Estamos enviando o lote para o ambiente de homologação. 
Você já viu este caso com outra pessoa? 
 
Obrigado pela ajuda novamente!!
Postado

Ítalo, boa tarde!

 

Consegui na prefeitura do Rio de Janeiro os exemplos dos XML´s para NFSe carioca.

 

No arquivo EnviarLoteRpsEnvio.XML, realmente há várias diferenças na assinatura, hoje o componente gera a assinatura somente para o RPS, no exemplo da prefeitura, o lote também deve ser assinado. 

 

Segue em anexo, todos os exemplos para a alteração do componente! 

 

Obrigado!

exemplos (1).zip

Postado

Ítalo, boa tarde!

 

Segui as suas recomendações e baixei os fontes atualizados. Com os fontes atualizados, o arquivo env-lot.xml está com a mesma estrutura do arquivo da prefeitura do Rio de Janeiro enviada como exemplo(segue em anexo), porém o retorno é o mesmo, exibe a mensagem que diz que é uma assinatura inválida! Realmente já não sei o que fazer, estou desesperado pois o arquivo é gerado certinho comparando com o arquivo de exemplo da Prefeitura. O certificado que estou usando é o mesmo que utilizo para acessar a site da nota carioca e acessar o sistema!

 

Não seria de repente na hora de gera criptografar a assinatura possa está com algum problema? 

 

Uma outra coisa! Na alteração que você fez na unit ACBrNFSeUtil, função AssinarMSXML, você incluiu o proRJ na lista de provedor, mas ao gerar a assinatura para o lote é verificado se provedor é diferente de ProRecife, e como proRJ é diferente ele cai nesta linha xmldsig.signature := xmldoc.selectSingleNode('.//ds:Signature[@' + Identificador + '=AssLote_' + URI + ']'), só que para o ProRJ não há identificador AssLote_. Da forma que está ele me retorna mldsig.signature = nil e exibe a mensagemÉ preciso carregar o template antes de assinar." 

 

Então fiz a seguinte alteração:

if ALote

  then begin
    if (URI <> '') and ((AProvedor <> proRecife) and (AProvedor <> proRJ))
    then xmldsig.signature := xmldoc.selectSingleNode('.//ds:Signature[@' + Identificador + '=AssLote_' + URI + ']')
    else begin
     xmldsig.signature := xmldoc.selectSingleNode('.//ds1:' + EnviarLoteRps + '/ds:Signature');
    end;
  end
  else xmldsig.signature := xmldoc.selectSingleNode('.//ds:Signature');

 

Desta forma a  mldsig.signature não retorna nill.

 

OBS: Estou querendo fazer alguns tutoriais para as pessoas que estão começando a lidar com a geração de NFSe. Se não houver problemas como posso para contribuir com o Projeto ACBR!!

 

Ítalo, desculpe mais uma vez, mas realmente não estou encontrando solução, estou debugando todo o código para poder encontrar o motivo do provedor invalidar a assinatura! Se poder me ajudar novamente fico eternamente agradecido!!

 

 

Att.

 

 

 

 

 

1-env-lot.xml

EnviarLoteRpsEnvio_Prefeitura.xml

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