Membros Pro Daniel Weber Postado 26 Junho Membros Pro Compartilhar Postado 26 Junho 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: Link para o comentário Compartilhar em outros sites More sharing options...
Consultores Italo Giurizzato Junior Postado 26 Junho Consultores Compartilhar Postado 26 Junho 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. 1 Italo Giurizzato Junior Ajude o Projeto ACBr crescer - Assine o SAC Analista de Sistemas / Araraquara-SP Araraquara - A era dos Trólebus Link para o comentário Compartilhar em outros sites More sharing options...
Membros Pro Daniel Weber Postado 26 Junho Autor Membros Pro Compartilhar Postado 26 Junho 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 xml da nota q estou tentando cancelar 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 ?: Link para o comentário Compartilhar em outros sites More sharing options...
Consultores Italo Giurizzato Junior Postado 26 Junho Consultores Compartilhar Postado 26 Junho 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]") 1 Italo Giurizzato Junior Ajude o Projeto ACBr crescer - Assine o SAC Analista de Sistemas / Araraquara-SP Araraquara - A era dos Trólebus Link para o comentário Compartilhar em outros sites More sharing options...
Membros Pro Daniel Weber Postado 27 Junho Autor Membros Pro Compartilhar Postado 27 Junho 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 Link para o comentário Compartilhar em outros sites More sharing options...
Consultores Solution Italo Giurizzato Junior Postado 28 Junho Consultores Solution Compartilhar Postado 28 Junho 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. Italo Giurizzato Junior Ajude o Projeto ACBr crescer - Assine o SAC Analista de Sistemas / Araraquara-SP Araraquara - A era dos Trólebus Link para o comentário Compartilhar em outros sites More sharing options...
Membros Pro Daniel Weber Postado 28 Junho Autor Membros Pro Compartilhar Postado 28 Junho 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. capture-1.mp4 Link para o comentário Compartilhar em outros sites More sharing options...
Recommended Posts