Ir para conteúdo
  • Cadastre-se

TiagoTecchio

Membros Pro
  • Total de ítens

    129
  • Registro em

  • Última visita

Tudo que TiagoTecchio postou

  1. Boa tarde Italo, Atualizado, testado e funcionando. Obrigado pelo presteza.
  2. Bom dia Italo, Estou tentando debugar os métodos para resolver a questão. Não sei se ajuda mas me parece que o método TACBrNFSeProviderInfisc.ProcessarMensagemErros não está lendo corretamente os retornos do webservice. Anexei um print do xml que é gerado para a consulta de RPS logo após o envio. No print do código percebi que a função FindAllAnyNs não consegue achar as tags <motivos> e <mot>
  3. Boa tarde, Atualizei esta semana o ACBR e estou observando um comportamento estranho relacionado ao componente AcbrNfseX. Já havia posto em produção e validado o provedor Infisc para a cidade de Caxias do Sul/RS (https://www.projetoacbr.com.br/forum/topic/66217-nfsex-provedor-infisc-caxias-do-sulrs/?page=2) Porém após esta última atualização alguns procedimentos não estão funcionando corretamente. 1 - a função TNotaFiscal.GravarStream não está mais gerando um stream válido. Observei que a propriedade FXmlNfse está sempre em branco, o que não ocorria anteriormente. Para contornar, utilizei a função NotasFiscais.Items[0].GerarXML 2 - a propriedade acbrNfseX.WebService.Emite.Erros.Count está sempre retornando 0 após acionar o método Emitir, mesmo que rejeições ocorram no envio. Grato por qualquer ajuda. 20220621152816-lista-nfse-con-lot.xml 20220621152815-con-lot.xml 128-env-lot.xml
  4. Bom dia, Você está passando todos os parâmetros necessários? Por exemplo o Scope, que no caso de registro de boletos deveria ser "cobrancas.boletos-info cobrancas.boletos-requisicao". Os fontes estão atualizados?
  5. Bom dia, Anexo está um ajuste no método TBoletoW_BancoBrasil_API.DefinirParametros dentro da unit ACBrBoletoW_BancoBrasil_API referente a consulta por CPF. O dígito verificador está sendo copiado errado para o parâmetro digitoCPFPagador. Fiz o ajuste, testei e retornou corretamente. ACBrBoletoW_BancoBrasil_API.pas
  6. Bom dia, Ao utilizar a LibXML2 não seria o caso de atualizar as DLLs desta biblioteca? Elas estão em C:\{Pasta_do_ACBr}\DLLs\LibXml2 Porque já tive erros estranhos relacionados a estas DLLs e só resolvi colocando os arquivos corretos na mesma pasta do executável.
  7. Bom dia Italo, Testado e funcionando. Obrigado!
  8. Bom dia Italo, Anexo o arquivo Infisc.LerXml.pas com um ajuste para carregar corretamente o nome do país do endereço da transportadora. Sem isso o webservice do Provedor retorna esta linda mensagem: E232 Ocorreu um erro no processamento do arquivo. (Validation failed for classes [br.com.gif.nfse.model.nfse.TransportadoraNotaFiscal] during persist time for groups [javax.validation.groups.Default, ] List of constraint violations:[ ConstraintViolationImpl{interpolatedMessage='tamanho deve estar entre 1 e 60', propertyPath=nomePaisTransportadora, rootBeanClass=class br.com.gif.nfse.model.nfse.TransportadoraNotaFiscal, messageTemplate='{javax.validation.constraints.Size.message}'} ]) Infisc.LerXml.pas
  9. Bom dia Italo, Testei e agora consegui realizar as operações básicas com sucesso. Obrigado pela ajuda. Um detalhe (que não muda nada), mais um preciosismo. A grafia da propriedade abaixo está errada: "Childrens" não existe - Children já é o plural.
  10. Boa tarde Italo, Segue anexo o XML. Obrigado. NFSe-000000000000026.xml
  11. Boa tarde Italo, Grato pelo retorno. Fiz as adaptações necessárias para emissão, cancelamento e consulta e parece que está OK. Somente notei um detalhe ao carregar o XML: a propriedade OutrasInformacoes não é alimentada com as tags infAdic no médoto TNFSeR_Infisc.LerInformacoesAdic: A parte destacada não retorna nenhum elemento porém a tag existe no xml (ANodes é um array maior que 0). Obrigado!
  12. Bom dia Italo, Atualizado os fontes e novas tentativas. Alguns pontos que precisariam de ajuste. O webservice valida o nome da cidade, portanto não pode ser "Caxias do Sul/RS" somente "Caxias do Sul" - tanto no endereço do tomador quando do emitente. Eu ajustei manualmente o arquivo ACBrNFSeXConversao.pas, não sei se ali é o melhor lugar para o ajuste - pessoalmente prefiro passar o nome da cidade manualmente ao invés do componente fazer isso, mas creio que essa é uma decisão sua. Outro questão: a propriedade cNFSe não está sendo carregada quando leio o XML (via arquivo ou stream) - está sendo enviada para outro campo que o provedor não utiliza. A versão do XML não pode ser 1.10 mas 1.1 - fiz um cast no provider para ajustar em tempo de execução assim : TACBrNFSeProviderInfisc101(a.acbrNFServX.Provider).ConfigWebServices.VersaoDados := '1.1'; Por fim, ao iterar sobre o resultado da consulta de lote logo após a chamada do método Emitir, a NFSe é autorizada com sucesso porém a mensagem de que a nota foi aceita é listada como se fosse um erro: // Meu teste if vNFSe.WebService.ConsultaLoteRps.Erros.Count > 0 then // vNFSe.WebService.ConsultaLoteRps.Erros[i].Descricao => Nota fiscal 8 aceita. Protocolo nr. 222481 Obrigado pela ajuda. 20220311102608-lista-nfse-con-lot.xml
  13. Bom dia Italo, Agora consegui obter a lista de rejeições acessando a lista ACBrNFSeX1.WebService.ConsultaLoteRps.Erros logo após o envio. Contudo não consigo realizar a Consulta sobre uma NFSe já emitida. Analisando o arquivo Infisc.Provider vi que a consulta é feita através do método pedidoLoteNFSe, porém uma exceção é levantada ao assinar o XML Método Executado: ConsultarNFSePorFaixa Parâmetros de Envio Num. Ini. NFSe: 5 Num. Fin. NFSe: 5 Data Inicial : 30/12/1899 Data Final : 30/12/1899 Parâmetros de Retorno Sucesso : False Erro(s): Código : X801 Mensagem: Erro ao Assinar: Nenhum elemento encontrado Correção: O erro é disparado nesta linha (função TDFeSSLXmlSignLibXml2.Assinar dentro de ACBrDFeXsLibXml2.pas)
  14. Boa tarde Italo, Fiz um novo teste agora usando o método Emitir. Veja que pela sequência o componente enviou a NFSe, recebeu a resposta, em seguida solicitou o status do Lote ao webservice e a resposta veio no arquivo 20220308171136-lista-nfse-con-lot.xml O que deve estar ocorrendo é que a lista de rejeições só vem depois de alguns segundos, a mensagem abaixo é uma fase intermediária. 20220308171136-con-lot.xml 20220308171136-lista-nfse-con-lot.xml 1-env-lot.xml 1-rec.xml
  15. Italo, Este é o ponto, eu passei True para a propriedade ConsultaLoteAposEnvio mas o resultado da consulta é este XML: <sit>100</sit> <NFSe> <sit>217</sit> <motivos> <mot>NFS-e(s) já recebida(s) e ainda não processada(s).</mot> </motivos> </NFSe> As rejeições vieram somente após eu acionar manualmente o método ConsultaLoteRps (a imagem anexa) 20220304112511-lista-nfse-con-lot.xml
  16. Bom dia Italo, Obrigado pelo esclarecimento. Então terei que modificar o processo de autorização - até então eu pensava que poderia capturar as exceções/rejeições/etc durante o envio da mesma forma como nos componentes acbrNFE, acbrMDFE e o antigo acbrNFSE. Também pelo fato de eu ativar a propriedade ConsultaLoteAposEnvio fiquei na dúvida se o componente iria executar a Consulta logo após ter Enviado. Se você me diz que agora o processo deve ser feito em duas etapas (1- envio e 2- consulta), OK vou adicionar um controle com loop para esperar as respostas. Grato.
  17. Olá Italo, OK, entendi. Mas estas rejeições não deveriam ser carregadas no componente logo após ser acionado o método Emitir ? Porque o que está acontecendo é que o método Emitir retorna OK mas não está OK, eu acabo tendo que acionar o método ConsultarLoteRps para descobrir se houve rejeição.
  18. Bom dia Italo, Segue os prints. Grato.
  19. Bom dia Italo, Atualizei os fontes mas o resultado é o mesmo. Mesmo ativando a propriedade ACBrNFSeX1.Configuracoes.Geral.ConsultaLoteAposEnvio o componente não recebe as mensagens do envio. Ele enviar, recebe que o lote está em processamento mas a consulta subsequente não é executada. Se faço manualmente uma consulta informando o número de lote recebido, neste caso recebo um retorno OK do webservice (no meu teste uma lista de rejeições). 20220304112511-con-lot.xml 20220304112511-lista-nfse-con-lot.xml 1-env-lot.xml 1-rec.xml
  20. Boa tarde Italo, Atualizei os fontes mas o retorno da consulta não aparece após o envio. Inclusive ajustei os parâmetros de intervalo. Estou esquecendo de algo? Obrigado pela ajuda. 1-env-lot.xml 1-rec.xml 20220303171919-con-lot.xml 20220303171919-lista-nfse-con-lot.xml
  21. Bom dia Italo, Não obtenho um retorno com as mensagens ou não estou sabendo como fazer. Mas como estou usando o demo penso que o resultado viria em tela. Ao tentar emitir uma NFS-e com um número já emitido o resultado é: Método Executado: Enviar Lote Parâmetros de Envio Numero do Lote: 216473 Parâmetros de Retorno Data de Envio : 03/03/2022 Numero do Prot: Numero da Nota: Link : Código Verif. : Sucesso : False Erro(s): Código : Mensagem: Correção: --------- Estou emitindo usando o comando abaixo - o modo de envio seria então meAutomatico: ACBrNFSeX1.Emitir(vNumLote); A resposta está na primeira imagem, então parece que o componente não executa a consulta após a emissão ou não grava os retornos nas propriedades corretas. Se faço uma consulta usando o número do lote que recebo no primeiro XML a resposta é a segunda imagem (com as rejeições). Por fim tentei ler a propriedade ACBrNFSeX1.WebService.ConsultaLoteRps.XmlRetorno após a emissão para identificar o retorno mas o XML refere-se ao retorno da emissão (anexo). xml-ret.xml
  22. Italo, Se ajuda localizei um problema de conversão de datas na função DataComBarra na unit ACBrXmlBase. Anexo com o ajuste. Creio que seja este o problema principal no meu caso. Mas mesmo depois de ajustado não consigo iterar sobre as rejeições que o webservice retorna. ACBrXmlBase.pas
  23. Bom dia Italo, Obrigado pela resposta. Atualizei os fontes conforme a sua orientação. Os resultados agora foram diferentes. Observando os arquivos gravados na pasta de logs, o retorno parece OK. Porém o componente está interpretando alguma coisa de forma equivocada. Método Executado: Enviar Lote Parâmetros de Envio Numero do Lote: 216445 Parâmetros de Retorno Data de Envio : 30/12/1899 Numero do Prot: Numero da Nota: Link : Código Verif. : Sucesso : False Erro(s): Código : Mensagem: Correção: --------- Código : X999 Mensagem: Erro de Conexão: '/0' is not a valid integer value Correção: Neste exemplo tentei gerar um RPS já emitido. 444-env-lot.xml 444-rec.xml 20220301085853-con-lot.xml 20220301085853-lista-nfse-con-lot.xml
  24. Boa tarde Italo, Agora utilizei os schemas da pasta que você mencionou. Porém o resultado não mudou. Ao acionar a opção Emitir no demo o resultado é este: Método Executado: Enviar Lote Parâmetros de Envio Numero do Lote: 333 Parâmetros de Retorno Data de Envio : 30/12/1899 Numero do Prot: Numero da Nota: Link : Código Verif. : Sucesso : False Erro(s): Código : Mensagem: Correção: --------- Estranhamente não há código ou mensagem na lista de erros. Um detalhe que percebi é que na segunda requisição (ao solicitar o status do lote) o componente está passando o número da RPS informado e não o número de lote recebido na primeira solicitação. Analisando os SOAPs gerados parece que a requisição de consulta não está sendo assinada. Obrigado pela ajuda. 333-env-lot-soap.xml 333-rec-soap.xml 20220224144451-con-lot-soap.xml 20220224144451-lista-nfse-con-lot-soap.xml
  25. Bom dia Renato, Modifiquei para LibXml2 e ativei a validação de schemas mas o resultado é: Erro(s): Código : X800 Mensagem: Erro de Validação: Erro: Schema inválido Os schemas estão num pasta simples: C:\doc\schemaNfse Desconfio que o arquivo de schema do provedor tenha algum bug. Utilizei um programa que eles disponibilizam para validar XML (https://nfse.caxias.rs.gov.br/site/uploads/validador-NFSe.rar) e o XML gerado pelo demo não passou pela validação. Porém também não consegui validar um XML de uma NFSe já autorizado pela prefeitura. Até troquei de certificado para tentar outra abordagem mas o problema persiste. Vou continuar tentando. Grato pela ajuda.
×
×
  • 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.

The popup will be closed in 10 segundos...