Ir para conteúdo
  • Cadastre-se

Sady Martins

Membros
  • Total de ítens

    30
  • Registro em

  • Última visita

Tudo que Sady Martins postou

  1. @Diego Foliene Acho que não estamos entendendo da mesma forma. Alí diz que se o emitente for "NÃO OPTANTE" os campos não podem existir No trecho de código if NFSe.Servico.Valores.totTrib.indTotTrib <> indSim then Result.AppendChild(AddNode(tcStr, '#1', 'indTotTrib', 1, 1, 1, indTotTribToStr(NFSe.Servico.Valores.totTrib.indTotTrib), '')); Ele diz que: Se indTotTrib <> indSim (não é diferente de indSim) então ele grava o campo Mas a regra diz que SE FOR NÃO os campos não podem aparecer Já quanto a essa parte: Alí diz que, se a tag indTotTrib for informada (ao contrário do caso anterior onde ela não é informada) então ela deve obrigatoriamente ter valor 0. E, segundo meu entendimento, esse valor 0 nela indica que o cara opta pelo SN mas não quer informar os VALORES ESTIMADOS, que é outra coisa. Mas refere-se apenas a "valores estimados"
  2. Acho interessante abrir sim e também colocar no título algo como Erro NFS-e Padrão Nacional. Me parece que quando tem ERRO no título a resposta é mais rápida
  3. Solução corretíssima meu caro @Paulo Alexandre Hostert. Só falta o pessoal do ACBr aplicar a alteração. Já mandou pra eles? Obrigado!
  4. Acho que postei no lugar errado. Era em NFe. Perdão pela falha
  5. Na função ManterXPedNItemPed faltou inicializar Result. Se não entra no IF, Result não é inicializado e dá o erro apresentado na imagem em anexo. Arquivo ACBrDFeDANFeReport.pas com a correção em anexo.ACBrDFeDANFeReport.pas
  6. Bom dia! Foi alterado o enum TpcnFinalidadeNFe no pcnConversao mas faltou no ACBrNFe.Conversao. TpcnFinalidadeNFe = (fnNormal, fnComplementar, fnAjuste, fnDevolucao, fnCredito, fnDebito); implementação de fnCredito e fnDebito conforme NT 2005/002-RTC ACBrNFe.Conversao.pas
  7. Bom dia pessoal! Estou com um XML de Francisco Beltrão/PR (anexo) baixado no site da Prefeitura de uma nota emitida em 05/12/2025 e que eu estou tomando como versão oficial. Só que o layout dele não é o que está atualmente no ACBr, e sim uma versão anterior. Não consegui ver quando ocorreu essa alteração no ACBR. Segundo o XSD da Equiplano que eu baixei no link indicado por eles no manual, o arquivo a ser gerado para envio é um RPS. Essa parte está 100% no ABCr. Mas o arquivo baixado no site (anexo) é um XML que inicia com a TAG <nfs qualquer coisa> O ACBr atual tenta ler <nfse qualquer coisa>, não encontra e não retorna nada, porque tenta ler como RPS, o que ele não é. Posso fazer o ajuste no Equiplano.LerXML.pas pra ler o padrão <nfs qualquer coisa> (antigo) e também o <nfse qualquer coisa> existente ? Até pensei em controlar isso através da versão do XML, mas como não vi nenhum XML com o padrão que o ACBr espera, prefiro não mexer no que vocês fizeram. Ou vocês tem outra sugestão? Obrigado! Sady MarTIns 44FA5440D440980A978DF95A6FA5A7B5_68020.xml
  8. Essa alteração contempla esse caso postado pelo @Daniel InfoCotidiano
  9. Bom dia! Ocorreu algum problema com os nossos arquivos de certificação (extraídos do certificado do cliente) que ainda não identificamos, mas ao que nos parece foram corrompidos. Isso gerou erro de autenticação junto ao Siccob. Porém, o arquivo do retorno do banco (RetWS) não é um JSON e sim uma String, e isso gera erro na hora do parse e o ACBrBoleto.Enviar retorna false, mas sem nenhuma referência do que aconteceu. RetWS: O seu acesso nao foi autorizado. Verifique as suas credenciais, incluindo a validade do seu certificado. Para mais informa&#231;&#245;es, acesse o portal Developers: https://developers.sicoob.com.br/ Fiz uma alteração no tratamento do retorno (linha 341) e estou postando o arquivo alterado com sugestão. O objetivo é retornar o RetWS do jeito que ele veio como uma rejeição que pode ser tratada pelo usuário. ACBrBoletoRet_Sicoob_V3.pas
  10. Bom dia @Juliomar Marchetti Baixei um arquivo ACBrNFe.XmlReader.pas atualizado e notei que já implementaram a alteração: aValor := ObterConteudo(AuxNode.Childrens.Find('cRegTrib'), tcStr); if aValor = '' then aValor := '0'; NFe.Total.ISSQNtot.cRegTrib := StrToRegTribISSQN(Ok, aValor); Só não concordei com terem atribuído como nenhum, já que quando acontece esse problema não é nota de serviço. Mas de qualquer forma vou deixar o código assim mesmo. Obrigado meu caro!
  11. Encontrei um XML mal gerado que contém a seguinte tag: <ISSQNtot> <dCompet>2025-05-20</dCompet> </ISSQNtot> E no arquivo ACBrNFe.XmlReader tem o seguinte trecho: AuxNode := ANode.Childrens.Find('ISSQNtot'); if (AuxNode <> nil) then begin NFe.Total.ISSQNtot.vServ := ObterConteudo(AuxNode.Childrens.Find('vServ'), tcDe2); NFe.Total.ISSQNtot.vBC := ObterConteudo(AuxNode.Childrens.Find('vBC'), tcDe2); NFe.Total.ISSQNtot.vISS := ObterConteudo(AuxNode.Childrens.Find('vISS'), tcDe2); NFe.Total.ISSQNtot.vPIS := ObterConteudo(AuxNode.Childrens.Find('vPIS'), tcDe2); NFe.Total.ISSQNtot.vCOFINS := ObterConteudo(AuxNode.Childrens.Find('vCOFINS'), tcDe2); if NFe.infNFe.Versao >= 3 then begin NFe.Total.ISSQNtot.dCompet := ObterConteudo(AuxNode.Childrens.Find('dCompet'), tcDat); NFe.Total.ISSQNtot.vDeducao := ObterConteudo(AuxNode.Childrens.Find('vDeducao'), tcDe2); NFe.Total.ISSQNtot.vOutro := ObterConteudo(AuxNode.Childrens.Find('vOutro'), tcDe2); NFe.Total.ISSQNtot.vDescIncond := ObterConteudo(AuxNode.Childrens.Find('vDescIncond'), tcDe2); NFe.Total.ISSQNtot.vDescCond := ObterConteudo(AuxNode.Childrens.Find('vDescCond'), tcDe2); NFe.Total.ISSQNtot.vISSRet := ObterConteudo(AuxNode.Childrens.Find('vISSRet'), tcDe2); NFe.Total.ISSQNtot.cRegTrib := StrToRegTribISSQN(Ok, ObterConteudo(AuxNode.Childrens.Find('cRegTrib'), tcStr)); end; end; Quando chega na leitura da tag cRegTrib dá erro ao tentar converter com StrToRegTribISSQN(), já que a tag cRegTrib não existe. Fiz a seguinte alteração: cRegTrib := ObterConteudo(AuxNode.Childrens.Find('cRegTrib'), tcStr); if (cRegTrib <> EmptyStr) then begin NFe.Total.ISSQNtot.cRegTrib := StrToRegTribISSQN(Ok, cRegTrib); end; Não quis atribuir RTISSNenhum porque não se trata de serviço e, no meu entendimento, seria gerar uma informação que não existe. Tanto que as outras tags não recebem valor algum. Valeu!
  12. Muitíssimo obrigado @Italo Giurizzato Junior
  13. Bom dia No arquivo PadraoNacional.Provider.pas, nas procedures TratarRetornoConsultarDFe, TratarRetornoEnviarEvento e TratarRetornoConsultarEvento tem essa linha em comum: Response.tpEvento := StrTotpEvento(Ok, Copy(IDEvento, 51, 6)); Dessa forma o ACBr está devolvendo o tpEvnto sempre como teCancelamento. Mas pra StrTotpEvento funcionar corretamente falta o 'e' junto com o copy(): Response.tpEvento := StrTotpEvento(Ok, 'e' + Copy(IDEvento, 51, 6)); Aí o retorno fica Ok.
  14. Na unit ACBrBoletoRet_Sicredi_APIV2.aps, no tratamento de retorno com erro, o código está buscando status, mas conforme json abaixo (retornado do banco) o nome da label é code. { "timestamp": "2025-08-25T19:32:00.307+00:00", "error": "UNPROCESSABLE_ENTITY", "code": "422", "message": "Negócio: Nosso número já existe." } Após fazer a alteração aqui (imagem anexo) passou a trazer corretamente o código 422. Não subo a alteração porque meu ACBr está meio desatualizado.
  15. Obrigado @Italo Giurizzato Junior e @Alexandre de Paula
  16. Boa tarde@Italo Giurizzato Junior Obrigado pela dica. Nós já usamos o NFSeX. Só que a função antiga ainda buscava o provedor do Cidades.Ini e eu não tinha me tocado que esse arquivo é da versão antiga. Já mudei pra ler o ACBrNFSeXServicos.ini Valeu
  17. Sady Martins

    Alterar Cidades.ini

    Bom dia! O município de Balsas/MA está com servidor como Fiorilli, mas na verdade é CTAConsult. [2101400] Nome=Balsas UF=MA Provedor=CTAConsult Obrigado!
  18. Boa tarde! No município de Balsas/MA (2101400), acrescentar: HomRecepcionar=http://stm.balsas.d2ti.com.br:80/wsnfselote/RecepcaoNFSePort Outros municípios que utilizam o provedor CTAConsult tem essa opção no mesmo arquivo e o município de Balsas/MA tem ambiente de homologação.
  19. Bom dia @danilozix Pelo tempo do post eu creio que você já obteve a resposta, mas SIM. No Sicoob existe um limite de 25 boletos no retorno da consulta. Então você vai ter que ajustar seu código para consultar de 25 em 25.
  20. Problema resolvido. Faltava atualizar o pacote e os fontes do ACBrComum. O erro estava ocorrendo na hora de montar o JSON dentro ao arquivo ACBrBoletoW_Sicredi_APIV2. Quando passava os valores com decimais no JSON o valor ficava com estouro de tamanho. Após a atualização do ACBrComum o boleto foi registrado.
  21. Sim. Depois que eu criei esse tópico me lembrei do Discord e acabei copiando a pergunta pra lá. Eu já verifiquei os dados a serem informados e, a princípio, estão todos preenchidos corretamente. Mas nesse momento fiz uma pausa no desenvolvimento para fazer o curso Dominando o ACBrBoleto que tem na Nutror. Se não conseguir evoluir daí vou logar com a conta Pro daqui da Oniun e buscar ajuda no Discord novamente. A propósito, e por favor não é uma crítica, estava olhando o doc Particularidades e observei que no caso do Sicredi especificamente talvez esteja precisando de alguma revisão. Digo isso porque lá diz que o Código do Cedente não é utilizado, mas ele deve ser informado conforme descrito em https://www.projetoacbr.com.br/forum/topic/57991-acbrboleto-via-webservice/#comment-426542 Vou continuar meu treinamento aqui e depois volto a reportar se consegui evoluir ou não. Quando descobrir qual erro estou comentendo reporto aqui para talvez ajudar outros.
  22. Boa tarde! Estou utilizando os fontes e pacotes do ACBrBoleto para Lazarus e habilitando o envio do boleto via API para o Sicredi. Ocorre que está retornando o erro O valor do boleto deve ter até 16 dígitos, sendo dois deles para a casa decimal ou então O valor de juros do boleto deve ter até 16 dígitos, sendo dois deles para a casa decimal. O boleto é sempre o mesmo. Sempre com os mesmos dados. Mas o erro está alternando. Encontrei o link https://www.projetoacbr.com.br/forum/topic/49530-duvida-sobre-preenchimento-do-juros/ e lá a solução foi atualizar a lib. No meu caso eu atualizei todos os arquivos via svn, recompilei e reinstalei o pacote ACBrBoleto, mas continuo com o erro em questão. O trecho de código que está alimentando o componente ACBrBoleto é o seguinte: Titulo.ValorDocumento := RoundTo(ATituloList.Items[I].valor, -2); if (ATituloList.Items[I].valormulta > 0) then begin Titulo.PercentualMulta := ATituloList.Items[I].valormulta; Titulo.DataMulta := IncDay(ATituloList.Items[I].datavencimento, 1); Titulo.MultaValorFixo := UpperCase(ATituloList.Items[I].tipomulta) = 'V'; end; if (ATituloList.Items[I].valorjuro > 0) then begin if (ATituloList.Items[I].tipojuros = 'V') then begin if (AACBrBoleto.Banco.Numero = 748) then begin Titulo.CodigoMoraJuros:= cjValorDia; Titulo.CodigoMora := 'A'; Titulo.ValorMoraJuros := RoundTo(ATituloList.Items[I].valorjuro, -2); end else begin Titulo.ValorMoraJuros := ATituloList.Items[I].valorjuro; end; end else begin if (AACBrBoleto.Banco.Numero = 748) then begin Titulo.CodigoMoraJuros:= cjTaxaDiaria; Titulo.CodigoMora := 'B'; Titulo.ValorMoraJuros := RoundTo(ATituloList.Items[I].valorjuro, -2); // Titulo.ValorMoraJuros := RoundTo(ATituloList.Items[I].valor * (ATituloList.Items[I].valorjuro / 100), -2); end else begin Titulo.ValorMoraJuros := RoundTo(ATituloList.Items[I].valor * (ATituloList.Items[I].valorjuro / 100), -6); end; end; Titulo.DataMoraJuros := IncDay(ATituloList.Items[I].datavencimento, 1); end; Desculpem-me pelos IFs, mas são em decorrência dos vários testes que já fiz pra tentar corrigir o problema. Agradeço a atenção!
  23. Olá meus caros. Esse post ainda encontra-se em aberto e não vi solução para a questão do Scanner. E já se passaram 8 anos. Também estou com esse problema. Será que alguém tem uma solução prática para mostrar como fazer isso? @Juliomar Marchetti Com todo respeito, sei que você já ajudou muita gente aqui e inclusive a mim. Mas a sua resposta para esse problema foi bem típica de quem não pode ou não quer ajudar. KKKKKKKKK É melhor nem postar esse tipo de comentário. A propósito, eu não achei nenhum post com essa solução mencionada por você. Beijos! Se alguém tiver uma luz, ou melhor, um farol, vou ficar eternamente agradecido.
  24. Boa tarde! Silvio Eu baixei os fontes atualizados do ACBr e ainda não tem tratativa para o registro Y750. Ao menos não para Delphi. Qual linguagem você usa?
  25. Será um grande prazer poder ajudar. Só preciso da autorização do chefe pra fazer isso daqui do trabalho hehehehehehe Senão vou implementar de casa. Obrigado pela resposta.
×
×
  • 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.