Jump to content

Destak

Membros Pro
  • Posts

    207
  • Joined

  • Last visited

Everything posted by Destak

  1. Veja o erro esta precisamente na linha 238 da ACBrUti.DateTime
  2. Veja na imagem em anexo o erro é nessa Unit mesmo e com o componnete novo.
  3. Eu estou usando o componente novo e o erro é exatamente no mesmo local.
  4. Bom dia, É exatamente onde o colega @sergioesteves disse acima.
  5. Deletei a pasta toda do ACBr fiz novo download e instalação limpa com a opçao de deletar arquivos antigos no instalador do ACBr marcada e mesmo assim, exatamente o mesmo erro ocorre, da uma olhada i com calma se voce subiu os arquivos corretos mesmo ou algo assim.
  6. Boa tarde, Exatamente mesmo problema e ja deletei a pasta do ACBr toda e fiz um download e instalação limpas, segue em anexo imagem a XMLs em anexo. 1-env-lot.xml 1-env-lot-soap.xml 1-rec.xml 1-rec-soap.xml
  7. Boa tarde, Atualizei os fontes e reinstalei o ACBr é o que sempre faço, mas de qq forma pera ai que ja vou deletar toda a pasta ACBr e fazer um download e instalação nova e limpa para testar novamente, um momento.
  8. Fazendo mais testes descobri que o erro esta na hora de fazer um ACBrNFSeX1.NotasFiscais.LoadFromString(QryArquivoFiscal.FieldByName('ArquivoFiscal').AsString) na unit ACBrUtil.DateTime que ocorre o erro. E isso esta ocorrendo em todas as NFSe.
  9. Bom dia, Infelizmente problema não resolvido exatamente mesmo erro, repare q a principio ele baixa o XML corretamente porem essa NFSe referente a esse RPS esta cancelada no site da prefeitura, veja se isso nao tem haver com o problema, segue imagens e XMLs do teste de agora. 72MY-comp-nfse.xml 72MY-comp-nfse-soap.xml 72MY-con-nfse-rps.xml 72MY-con-nfse-rps-soap.xml
  10. Pois é então, Sei que essa questão de emissão de NFSe é um caos devido a quantidade de provedores/prefeituras em nosso pais, esses dias o @Daniel Simoes disse no video em que falava do mais novo ultimo projeto piloto para NFSe nacional que é uma bagunça e é mesmo sem duvida por diversos, varios, muitos motivos que nem vamos gastar nosso tempo para descrever aqui. Pois bem, tem algumas mazelas desse caos que o componente pode ajudar muito, um exemplo é esse caso de agora, o ideal é padronizar o comportamento do componente para situações exatamente iguais independente do provedor. No caso especifico desse topico poderia deixar padrão para todos os provedores que ao consultar o lote, ele sempre carregue as propriedades acima menciondas por voce, mesmo que o provedor X retorne a NFSe completa nessa consulta e claro se retornar a NFSe completa dai popular a lista de notas normalmente como ja ocorre hoje. Padronizando esse comportamento no componente para todos os provedores, podemos comparar e automatizar nosso codigo para comparar e fazer as ações necessarias conforme o retorno. Mas ai @Italo Giurizzato Junior voce pode ver o que é melhor fazer, sempre carrega ou não carrega as propriedades acima descritas por voce, o que precisamos é padrão comportamento igual do componente.
  11. Boa tarde, Para os demais provedores em que ao consultar o lote retorna o XML completo essas propriedades acima citadas por você são preenchidas também pelo componente?
  12. Boa noite, Ao usar o método ACBrNFSeX1.ConsultarLoteRps(Protocolo,Lote) a consulta é realizada com sucesso porem esse provedor não retorna todos os dados da NFSe ele retorna somente um resumo, porem nesse resumo tem a tag <NumeroNFe>51183</NumeroNFe> a qual o compnente não esta carregando na propriedade ACBrNFSeX1.NotasFiscais.Items[0].NFSe.Numero, segue os XMLs em anexo. 4968937-con-lot.xml 4968937-con-lot-soap.xml 4968937-lista-nfse-con-lot.xml 4968937-lista-nfse-con-lot-soap.xml
  13. Boa tarde, Se eu usar ponto ao invés de virgula retorna o erro de invalid point value ou algo assim não lembro agora, mas de qq forma vou esperar aparecer a próxima NFSe de produção do cliente apresentar o problema relatado e ai trago aqui novamente o caso concreto, enquanto isso vou pesquisar mais sobre a segunda condição de arredondamento, o que pelo que vi parece uma novidade para todos nos, favor não fechar o tópico por enquanto.
  14. Boa tarde, Ao fazer uma ACBrNFSeX1.ConsultarNFSeporRps(NumeroRpsLocal,SerieRpsLocal,TipoRpsLocal,CodVerificacaoLocal) de um RPS onde a NFSe ja foi cancelada anteriormente ocorre o erro de exceção ''28/06/2022' is not a valid date and time' segue as imagens e XMLs em anexo, pelo que vi o XML é baixado com sucesso corretamente mas o componente parece não estar tratando algum dado e por isso ocorre a exceção. 69MY-comp-nfse.xml 69MY-comp-nfse-soap.xml 69MY-con-nfse-rps.xml 69MY-con-nfse-rps-soap.xml
  15. Bom dia, Ao usar o metodo ACBrNFSeX1.Emitir(IntToStr(NumLote),meLoteAssincrono,False) o lote é recebido com sucesso pelo provedor porem o componente retorna a propriedade ACBrNFSeX1.WebService.Emite.Sucesso = False o que não esta certo pois o lote foi recebido com sucesso. segue em anexo todos os XMLs. 1-env-lot.xml 1-env-lot-soap.xml 1-rec.xml 1-rec-soap.xml
  16. @Italo Giurizzato Junior olha que curioso, reparei que quando uso essa minha função alterada o componente esta gerando a tag ValorIss>0.00</tc:ValorIss> então decidi "martelar" a propriedade do componente ValorIss := StrToFloat('1,34') e ocorre a mesma coisa o componente gera a tag zerada, seguem em anexo todos os XMLs. 1-env-lot.xml 1-env-lot-soap.xml 1-rec.xml 1-rec-soap.xml 9fdc9c7f67ef49d78a0b524df35ba368-con-lot.xml 9fdc9c7f67ef49d78a0b524df35ba368-con-lot-soap.xml 9fdc9c7f67ef49d78a0b524df35ba368-lista-nfse-con-lot.xml 9fdc9c7f67ef49d78a0b524df35ba368-lista-nfse-con-lot-soap.xml
  17. Boa noite, Então precisa ver que se o numero antes do 5 for impar dai ele arredonda para cima mas se for par dai ele arredonda para baixo, nesse trecho de codigo seu não esta sendo considerado isso.
  18. Boa noite, Fiz uma alteração na RoundTo5 para poder atender a segunda condição porem ela esta remarcando para baixo veja que o trecho do codigo que eu acrescentei esta em negrito: function RoundTo5Cond2(Valor: Double; Casas: Integer): Double; var xValor, xDecimais: String; p, nCasas: Integer; nValor: Double; begin nValor := Valor; xValor := Trim(FloatToStr(Valor)); p := pos(',', xValor); if Casas < 0 then nCasas := -Casas else nCasas := Casas; if p > 0 then begin xDecimais := Copy(xValor, p + 1, Length(xValor)); if Length(xDecimais) > nCasas then begin {if (xDecimais[nCasas + 1] = '5') and odd(StrToInt(xDecimais[nCasas])) then SetRoundMode(rmUP) else if (xDecimais[nCasas + 1] = '5') and not odd(StrToInt(xDecimais[nCasas])) then SetRoundMode(rmNearest) else} if xDecimais[nCasas + 1] >= '5' then SetRoundMode(rmUP) else SetRoundMode(rmNearest); end; nValor := RoundTo(Valor, Casas); end; Result := nValor; end; O caso concreto é valor da NFSe R$ 30,00 ISS 4,45% = R$ 1,335 usando essa função acima ele da como result R$ 1,33 onde estou errando?
  19. Não testei pq se tiver q verificar se o ultimo digito é = 5 ai ja não é a solução adequada, bom pelo visto então o jeito é criar uma nova função mesmo, acredito que da para usar com base a dai fazer os ajustes nela gerando uma nova que atenda a segunda condição.
  20. Entendi essa função não resolve, O ideal é ter uma função que faca isso automaticamente, que trabalhe como definido na segunda condição que descrevi no primeiro post desse topico ou seja se o ultimo numero for = 5 e o anterior a ele for par ele deve truncar mas se for impar entao deve arredondar. Vou pedir ajuda no Discord quem sabe alguém la ja passou por isso ou atende esse mesmo provedor/cidade em questão.
  21. Ok partindo então que eles usam essa regra, conhece ou pode me indicar uma função que trate isso dessa forma? Porque de vdd melhor eu ja resolver pois contato com provedor de NFSe quem atua nisso sabe como funciona é um parto contatar e ou resolver algum problema com a maioria deles, isso quando conseguimos algum contato direto. Se alguem tiver uma função ai p indicar que trate isso como nessa segunda condição ja resolve.
  22. Boa tarde, Pessoal é o seguinte, vejam o exemplo Valor da NFSe R$ 50,00 e ISS 4,45% = R$ 2,225(resultado da calculadora do Windows) de imposto tenho a opção em meu sistema de arredondar, truncar ou não fazer nada apenas pegar o calcula direto como feito na calculadora o que tenho percebido que nesse caso ele sempre arredonda ou seja o valor do ISS fica R$ 2,23. O problema é que somente nesse provedor dessa cidade tenho tido esse problema recorrente que se a terceira casa decimal depois da virgula for = 5 entao o provedor retorna o erro de que o valor do ISS não bate, dai se eu truncar o valor que informo para o componente passando R$ 2,22 dai o provedor aprova a emissao da NFSe. para arredondar uso a seguinte função RoundTo5(ValorISS, -2); function RoundTo5(Valor: Double; Casas: Integer): Double; var xValor, xDecimais: String; p, nCasas: Integer; nValor: Double; begin nValor := Valor; xValor := Trim(FloatToStr(Valor)); p := pos(',', xValor); if Casas < 0 then nCasas := -Casas else nCasas := Casas; if p > 0 then begin xDecimais := Copy(xValor, p + 1, Length(xValor)); if Length(xDecimais) > nCasas then begin if xDecimais[nCasas + 1] >= '5' then SetRoundMode(rmUP) else SetRoundMode(rmNearest); end; nValor := RoundTo(Valor, Casas); end; Result := nValor; end; Vejal essa informação que peguei no Google: Arredondando Números Condições Procedimentos = 5 (i) Se ao 5 seguir em qualquer casa um algarismo diferente de zero, aumenta-se uma unidade no algarismo a permanecer. = 5 (ii) Se o 5 for o último algarismo ou se ao 5 só seguirem zeros, o último algarismo a ser conservado só será aumentado de uma unidade se for ímpar. Sera que esse provedor esta trabalhando com essa segunda condição, como posso resolver isso?
×
×
  • 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.