Jump to content

dev botao

NFSeX Substituição Pelotas/RS


Go to solution Solved by Italo Giurizzato Junior,
  • Este tópico foi criado há 135 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Bom dia.
Enviei uma nota fiscal no. 5 (numero retornado pelo provedor) lote rps 25 etc... 
Depois enviei a nota fiscal 6 (numero retornado pelo provedor) lote 26 ...

Então executo a função observando que todos os dados são da nota no. 5 a qual eu quero cancelar ... 

ret = nfse.SubstituirNFSe("5", "NFSe", "1", "TESTE DE HOMOLOGACAO", "25", "xxxxxx")

 

Ao executar a função no proprio exemplo demo me retorna o seguinte erro:

image.thumb.png.ee357358b0a5cbc82faac27658049c12.png

Link to comment
Share on other sites

  • Consultores

Bom dia @Daniel Weber,

Não é assim que funciona o serviço de SubstituicaoNFSe.

Você enviou um RPS que resultou na nota de numero 5, ok.

Agora você necessita cancelar a nota de numero 5 e emitir outra em substituição a que foi cancelada.

Como fazer esse procedimento?

Muito simples:

Primeiramente alimentar o componente com os dados de um novo RPS que vai resultar em uma nova nota, nota esta que vai substituir a outra.

Ao executarmos o método SubstituicaoNFSe devemos informar o numero da nota a ser cancelada, serie da nota (para o provedor iiBrasil), código do cancelamento, motivo do cancelamento (para os provedores: Agili, Conam, Equiplano, Governa, IPM, ISSDSF, ISSLencois, ModernizacaoPublica, Publica, Siat, SigISS, SmarAPD, WebFisco, Sudoeste e Bauhaus), numero do lote (para o provedor AssessorPublico) e Código de verificação (para os provedores: ISSLencois, Governa, Siat, Sigep, Elotech).

O método SubstituirNFSe se encarrega de efetuar o cancelamento da nota emitida anteriormente (no seu caso a nota de numero 5) e enviar o novo RPS que vai resultar em uma nova nota, nota esta que é a nota substituta da que foi cancelada.

Por fim o erro que você recebeu é justamente o primeiro passo para poder usar o método em questão, você não alimentou o componente com os dados do novo RPS.

  • Like 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

Link to comment
Share on other sites

  • Membros Pro

Boa tarde ..
Fiz o seguinte procedimento.
 

Gerei o arquivo.ini da nova nota (que irá substituir)
nfse.LimparLista
nfse.CarregarINI "arquivo ini gerado"
e então apos executei o seguinte comando

Tentei da seguinte maneira
dados da nota a ser substituida
no. 6
rps numero 9
rps lote 27
codigo verificacao D12E.722D.6790.9471.6D19.2C54.7717.FE38

image.png.c6ec5dd6247a8ed92254e1bd801687b7.png

xml da nota q estou tentando cancelar 
image.png.3101d7b44416c10e897f071ddb40471c.png

tentei:

nfse.SubstituirNFSe("numero nota no caso 6", "", "1", "motivo",  "numero do rps no caso 9", nEmissao_cod_verificacao)

nfse.SubstituirNFSe("numero rps no caso 9", "", "1", "motivo",  "numero do lote rps no caso 27", nEmissao_cod_verificacao)

nfse.SubstituirNFSe("numero nota no caso 6", "", "1", "motivo",  "novo lote a ser enviado na substituição", nEmissao_cod_verificacao)

nfse.SubstituirNFSe("numero rps no caso 9", "", "1", "motivo",  "novo lote a ser enviado na substituição", nEmissao_cod_verificacao)

 

Sempre me retornando um erro, será que é o ambiente de homologação ?:
image.thumb.png.6eeb23f3efcf82d36670519bedc0cff5.png

Link to comment
Share on other sites

  • Consultores

Boa tarde @Daniel Weber,

Vou repetir exatamente o paragrafo da minha postagem anterior só que com os parâmetros um em cada linha.

Ao executarmos o método SubstituicaoNFSe devemos informar 

o numero da nota a ser cancelada, 

serie da nota (para o provedor iiBrasil), 

código do cancelamento, 

motivo do cancelamento (para os provedores: Agili, Conam, Equiplano, Governa, IPM, ISSDSF, ISSLencois, ModernizacaoPublica, Publica, Siat, SigISS, SmarAPD, WebFisco, Sudoeste e Bauhaus), 

numero do lote (para o provedor AssessorPublico) e 

Código de verificação (para os provedores: ISSLencois, Governa, Siat, Sigep, Elotech).

Em qual deles eu faço referencia ao numero do RPS?

Você deve ter o arquivo ACBrNFSeXServicos.ini, abra ele com o bloco de notas e procure pela cidade em questão, teremos:

[4314407]
; Atualizado em 26/10/2021
Nome=Pelotas
UF=RS
Provedor=Asten
Versao=2.02
ProRecepcionar=https://ws.pelotas.rs.gov.br/wsnfse/NfseWSISAPI.dll/soap/INfse
HomRecepcionar=https://wshomo.pelotas.rs.gov.br/wsnfse/NfseWSISAPI.dll/soap/INfse

A cidade de Pelotas/RS é atendida pelo provedor Asten que segue a versão 2.02 do layout da ABRASF.

De posse dessa informação, não precisamos informar a série da nota, o motivo do cancelamento, o numero do lote e nem o código de verificação, concorda?

Neste caso o comando a ser executado seria:

nfse.SubstituirNFSe("6", "", "1", "", "", "")

Estou me baseando na sintaxe do mesmo comando do ACBrMonitor que acredito que a sequencia dos parâmetros é exatamente a mesma da Lib.

NFSe.SubstituirNFSe

Comando para Cancelar uma NFSe já emitida substituindo a mesma por uma nova.

NFSe.SubstituirNFSe("cNumNFSe", "cSerieNFSe", "cCodCancelamento", "[cMotivoCancelamento]", "[cNumLote]", "[cCodVerificacao]")

 

  • Like 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

Link to comment
Share on other sites

  • Membros Pro

Boa tarde Italo.
Quando falei do RPS pois já fiz todas as possibilidades possíveis, o que começo a achar que a substituição não funciona no amb. homologação.

Veja

1-crio um novo arquivo ini com a nova nota que irá substituir ...
Call NFSe_gera_nota_padrao_ABRASF

2-limpo o componente e carrego o ini gerado
nfse.LimparLista
nfse.CarregarINI ACBR_Arquivo_notafiscal_ini

3-carrego os dados da nota fiscal a ser substituida que me retorna a variavel nEmissao_numero_nota a nota 6 (que testei com um msgbox para ver se estava vindo preenchida)
Call CarregaDados_NFSe(Me.subst_id.Caption)

4-implemento a funcao substituicao
ret = nfse.SubstituirNFSe(nEmissao_numero_nota, "", "1", "", "", "")

Ai agora somente informando numero da nota me gera esse erro
image.png.e4f6f67cbb05b40e50d1c2c8b27ec2e8.png
image.png.2e0c114a51a78ea65da60ee4f7bdd64f.png

Link to comment
Share on other sites

  • Consultores
  • Solution

Bom dia @Daniel Weber,

Criar o INI com os dados do RPS que vai resultar em uma nova nota, OK.

Executar o método de Limpeza e carregar o arquivo INI, OK.

Carregar dados da nota a ser substituída?

Você esta carregando os dados da nota na sua aplicação ou na Lib?

Se for na Lib esta errado, pois em nenhum momento eu escrevi que se fazia necessário isso.

Executar o método SubstituicaoNFSe, Ok. 

Ao executar:

ret = nfse.SubstituirNFSe(nEmissao_numero_nota, "", "1", "", "", "")

Você checou se a variável: nEmissao_numero_nota contem o numero da nota que vai ser cancelada/substituída ?

Pela mensagem de erro essa variável esta vazia.

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

Link to comment
Share on other sites

  • Membros Pro

Você esta carregando os dados da nota na sua aplicação ou na Lib?
quis dizer que consulto o banco de dados para ele me retornar o numero da nfse q deve ser passada na função da lib.

 

Você checou se a variável: nEmissao_numero_nota contem o numero da nota que vai ser cancelada/substituída ?
Sim coloquei inclusive um msgbox antes de executar a função

Aqui esta o print de todo procedimento, em anexo video mostrando a tela (eu só faço o carregamento desta função CarregaDados_NFSe (minha função)para obter o numero da nota, pois ainda nao tratei para o usuario informar direto o numero e sim por enquanto nos testes estou informando o indice primario da tabela.

image.thumb.png.665c678b32ab807deef702390e5307a0.png

 

 

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.