Ir para conteúdo
  • Cadastre-se

windsoft

Membros Pro
  • Total de ítens

    394
  • Registro em

  • Última visita

  • Days Won

    1

Tudo que windsoft postou

  1. Tenta postar o XML do CTe para análise. Abre este XML no IE por exemplo e veja se ele é aberto corretamente, se ele tiver truncado pode ser que tenha algum caractere inválido no arquivo.
  2. Boa tarde Ítalo, obrigado pela atenção, estou continuando os testes aqui, mas ainda está um pouco instável, estou recebendo retorno "Unknown" no envio de NFSe (GINFES), as vezes vai as vezes retorna isso. Aproveitando a mensagem: Eu fiz uma versão do DANFSe para fastreport com a mesma "cara" do DANFSe do FortesReport, pra isso eu tive que criar uns campos no DMDanfSe: cdsParametrosNaturezaOperacao: TStringField; cdsParametrosRegimeEspecialTributacao: TStringField; cdsParametrosOptanteSimplesNacional: TStringField; cdsParametrosIncentivadorCultural: TStringField; Você acha interessante disponibilizar isso pra todos? Se sim coloco neste mesmo topico ou crio um novo pra lhe enviar?
  3. Ola Ítalo bom dia! To debugando o código aqui mas tá difícil de encontrar onde ele está o problema. Vou colocar trechos do código aqui pra ver se você pode, com sua boa vontade, me ajudar. Primeiramente chamo: if not ( ACBrNFSe1.Enviar(iLote,False) ) then raise Exception.Create(ACBrNFSe1.WebServices.EnvioWebService.Msg); O componente chama o método: function TWebServices.Envia(ALote: String): Boolean; begin FEnviarLoteRPS.FNumeroLote := ALote; Result := FEnviarLoteRPS.Executar; ... if (TACBrNFSe(FACBrNFSe).Configuracoes.Geral.ConsultaLoteAposEnvio) and (Result) then begin if not (TACBrNFSe(FACBrNFSe).Configuracoes.Geral.Provedor in [proDigifred, proProdata, proVitoria, proPVH, profintelISS, proSaatri, proSisPMJP, proCoplan, proISSDigital, proISSDSF, proFiorilli, proFreire, proTecnos, proDBSeller]) then begin Result := FConsSitLoteRPS.Executar; if not (Result) then FConsSitLoteRPS.GerarException( FConsSitLoteRPS.Msg ); end; if TACBrNFSe(FACBrNFSe).Configuracoes.Geral.Provedor = proInfisc then Result := True else Result := FConsLote.Executar; if not (Result) then FConsLote.GerarException( FConsLote.Msg ); end; Neste trecho, o consultarloteaposenvio está false. Eu tenho que definir isso? (Na trunk1 não precisava). Outro detalhe no if que está em vermelho, não deveria ser um else if? (Eu já até tinha perguntado isso em outro tópico). Tentei enviar propositalmente um lote que já tinha sido recusado anteriormente, no trecho em azul, está me gerando a exceção "unknown" e FConsLote.Msg = '' Se não tiver erro nenhum na NF que está sendo enviada, eu consigo enviar normalmente.
  4. Olá amigos bom dia! Estou testando a NFSe na trunk2 e tentando resolver algumas dificuldades. Debugando encontrei um possível erro na unit ACBrNFeWebServices.pas na função TWebServices.Envia No trecho de código: if (TACBrNFSe(FACBrNFSe).Configuracoes.Geral.ConsultaLoteAposEnvio) and (Result) then begin if not (TACBrNFSe(FACBrNFSe).Configuracoes.Geral.Provedor in [proDigifred, proProdata, proVitoria, proPVH, profintelISS, proSaatri, proSisPMJP, proCoplan, proISSDigital, proISSDSF, proFiorilli, proFreire, proTecnos, proDBSeller]) then begin Result := FConsSitLoteRPS.Executar; if not (Result) then FConsSitLoteRPS.GerarException( FConsSitLoteRPS.Msg ); end; if TACBrNFSe(FACBrNFSe).Configuracoes.Geral.Provedor = proInfisc then Result := True else Result := FConsLote.Executar; if not (Result) then FConsLote.GerarException( FConsLote.Msg ); end; Na parte destacada em vermelho, não seria um ELSE IF? Outra sugestão seria unificar a função Envia, pois existem 2 funções que fazem a mesma coisa e (pelo que percebi) a única diferença é que uma função recebe um Integer como parâmetro e outra uma String. Se eu estiver correto e desejarem que eu faça as modificações eu faço e envio por aqui, caso eu esteja errado, por favor, me esclareçam. Abraço e obrigado a todos.
  5. Puta merda, não tinha percebido a cagada, tem hora que a cabeça dá um nó. Valeu @Juliomar Marchetti Não tem como corrigir o titulo mais, o que faço? Abro outro?
  6. Não tenho certeza mas me parece o mesmo problema que estou tendo. Ao enviar a NFe para o provedor GINFES na trunk1, se a NF era recusada a função ACBrNFSe.Enviar( retornava false e eu conseguia pegar o erro que aconteceu, agora na trunk2 ela sempre retorna true e a nota não é confirmada, mas eu não consigo capturar o motivo da recusa.
  7. @Italo Jurisato Junior bom dia! Chegou a ver esta mensagem?
  8. Olá Amigos bom dia! Estou enviando anexo a correção para o problema no envio de e-mail do MDFe na trunk2 e fastreport. Eu já tinha relatado e corrigido este problema na trunk1 mas o problema voltou a acontecer na trunk2, o arquivo XML é salvo com o ID do MFFe + '-mdfe.xml' mas o PDF é salvo só com o ID + '.pdf' diferente do padrão que ocorre nos demais projetos (NFe, CTe). Segue anexo a unit corrigida bem como o patch para ser disponibilizado para todos. ACBrMDFeDAMDFEFR.pas ACBrMDFeDAMDFEFR.pas.patch
  9. Esquece amigo, me desculpe, fiz um teste aqui mas acabei pegando uma nota antiga, (onde o cstat era atualizado no XML) e achei que tinha funcionado. Testando nas notas fiscais mais recentes não funcionou porque ao carregar a NFe para impressão, os eventos não são carregados. Até dá pra fazer mas acho que não vale o custo/benefício.
  10. Olá @Juliomar Marchetti Bom dia! Fiz uma alteração na impressão do DANFE para FASTREPORT, onde ele verifica se nos eventos carregados no componente há um evento de cancelamento para a NFe, se houver a tarja de "CANCELADA" é exibida automaticamente. Também fiz uma pequena redução nos códigos que estavam duplicados. Por favor, analise se acha conveniente disponibilizar a alteração para todos, a Unit alterada e o Patch para aplicar as alterações estão anexo. ACBrNFeDANFEFRDM.pas.patch ACBrNFeDANFEFRDM.pas
  11. Não seria legal você enviar o LOG para tentarmos te ajudar?
  12. Olá Ítalo bom dia! Nós só temos clientes que utilizam o provedor GINFES por enquanto e estamos fazendo testes com este provedor, infelizmente não consigo testar com outros, em outra postagem eu lhe enviei a correção de um problema que eu achei no método LoadFromStream dá uma olhada lá depois e verifique se minha análise está correta para disponibilizar para todos por favor. Abraço
  13. Só é possível você fazer isso utilizando uma máquina virtual para a trunk2 e outra para a trunk, é o que eu faço aqui até que tudo esteja concluído. Mas seria importante começar a usar a NFSe para testes e ajudar no desenvolvimento, testes e correção de BUGs.
  14. Olá amigos bom dia! Estou testando a NFSe na trunk2 e tentando resolver algumas dificuldades. Debugando encontrei um possível erro na unit ACBrNFeWebServices.pas na função TWebServices.Envia No trecho de código: if (TACBrNFSe(FACBrNFSe).Configuracoes.Geral.ConsultaLoteAposEnvio) and (Result) then begin if not (TACBrNFSe(FACBrNFSe).Configuracoes.Geral.Provedor in [proDigifred, proProdata, proVitoria, proPVH, profintelISS, proSaatri, proSisPMJP, proCoplan, proISSDigital, proISSDSF, proFiorilli, proFreire, proTecnos, proDBSeller]) then begin Result := FConsSitLoteRPS.Executar; if not (Result) then FConsSitLoteRPS.GerarException( FConsSitLoteRPS.Msg ); end; if TACBrNFSe(FACBrNFSe).Configuracoes.Geral.Provedor = proInfisc then Result := True else Result := FConsLote.Executar; if not (Result) then FConsLote.GerarException( FConsLote.Msg ); end; Na parte destacada em vermelho, não seria um ELSE IF? Outra sugestão seria unificar a função Envia, pois existem 2 funções que fazem a mesma coisa e (pelo que percebi) a única diferença é que uma função recebe um Integer como parâmetro e outra uma String. Se eu estiver correto e desejarem que eu faça as modificações eu faço e envio por aqui, caso eu esteja errado, por favor, me esclareçam. Abraço e obrigado a todos.
  15. Olá amigos, estou testando a NFSe na trunk2 e não estou conseguindo capturar a mensagem de erro, (o motivo da recusa) da NFSe no momento da transmissão. Na trunk1 eu estava usando da seguinte forma: ACBrNFSe1.NotasFiscais.Assinar( ACBrNFSe1.Configuracoes.Certificados.AssinaRPS ); if not ( ACBrNFSe1.WebServices.Envia(iLote) ) then raise Exception.Create(ACBrNFSe1.WebServices.Enviar.Msg); Na trunk2 estou usando da seguinte forma: ACBrNFSe1.GerarLote( iLote ); if not ( ACBrNFSe1.WebServices.Envia(iLote) ) then raise Exception.Create(ACBrNFSe1.WebServices.EnvioWebService.Msg); Mas quando a NFSe é recusada, na trunk1 o método Webservices.envia retornava false e o motivo da recusa vinha nesta propriedade Msg, na trunk2 o método Webservices.Envia está retornando True mesmo que haja erro e a Msg retorna em branco. Agradeço muito quem puder me esclarecer o que estou fazendo de errado.
  16. Realmente o código estava diferente depois da trunk2. Faltava incluir a função RetirarPrefixos na função LoadFromString. Segue anexo a unit corrigida bem como o Patch da correção. Por favor @Italo Jurisato Junior disponibilize a correção para todos. Abraço e obrigado! ACBrNFSeNotasFiscais.pas.patch ACBrNFSeNotasFiscais.pas
  17. Amigo, primeiramente você deve baixar a trunk2, na trunk2 o ravereports não é mais suportado. somente fastreport e fortesreport. Se o "erro" que você está relatando acontecer na trunk2 poste aqui que tentaremos te ajudar.
  18. Percebi que se eu usar o LoadFromFile ao invés de utilizar LoadFromStream o problema não acontece. Debugando o código percebi que no LoadFromFile existe uma função RetirarPrefixos e no LoadFromStream não. Alguém poderia me esclarecer isso? Sou eu que estou fazendo algo errado ou realmente tem algum erro que precisa ser corrigido? Att.
  19. Olá amigos boa tarde! Terminei a migração para trunk2 e agora comecei os testes da NFSe em trunk2, estou tendo um problema ao carregar o XML do RPS que está salvo no banco para transmitir a NFSe. Falha na validação dos dados do lote: '' violates length constraint of '14'. The element '{http://www.ginfes.com.br/tipos_v03.xsd}Cnpj' with value '' failed to parse. Ao analisar os fontes, verifiquei que neste trecho de código o RPS não está sendo carregado do banco, o XML correto é passado para a STREAM mas o método LoadFromStream parece que não reconhece o XML. ss := TStringStream.Create(''); try TMemoField(qryNF.FieldByName('NFE_XML')).SaveToStream( ss ); ACBrNFSe1.NotasFiscais.LoadFromStream( ss ); Debugando cheguei até a unit pnfsNFSeR e percebi que o problema acontece porque o Leitor não consegue identificar o código do município e desta forma não consegue identificar o provedor que está sendo utilizado. O XML que estou tentando ler está anexo, por favor se alguém puder me dar uma luz fico muito grato. RPS.XML
  20. @Italo Jurisato Junior Estou migrando para a trunk2, como é que vocês andam fazendo para utilizar a NFe na trunk2 e a NFSe na trunk? Pelo que você diz na sua mensagem você não recomenda utilizar a NFSe em produção ainda né?
  21. O correto não seria ler: (xmlassinado) ? acbrnfe1.notasfiscais.loadfromstring(acbrnfe1.notasfiscais[0].xmlassinado,true);
  22. Poste o XML do MDFe que você está tentando transmitir, talvez traga alguma luz.
  23. Desculpe Juliomar, acabei escrevendo em duplicidade porque eu já tinha abrido este tópico e coincidentemente outro usuário tinha abrido um tópico parecido, eu quis ajudar colocando a suposta solução nos 2 tópicos.
  24. Opa melhor ainda... Aprendi mais uma. Valeu
  25. Além do que você já faz eu informo também a máscara: ACBrNfe1.DANFE.CasasDecimais._Mask_qCom := ',0.#####'; ACBrNfe1.DANFE.CasasDecimais._Mask_vUnCom := ',0.00##';
×
×
  • 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...