-
Total de ítens
30 -
Registro em
-
Última visita
Últimos Visitantes
O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.
Sady Martins's Achievements
-
@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"
-
Acho que postei no lugar errado. Era em NFe. Perdão pela falha
-
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
-
Correção enum TpcnFinalidadeNFe em ACBrNFe.Conversao
um tópico no fórum postou Sady Martins ACBrNFSe
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 -
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
-
Essa alteração contempla esse caso postado pelo @Daniel InfoCotidiano
-
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çõ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
-
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!
-
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!
-
Retorno de evento no provedor Padrão Nacional
Sady Martins replied to Sady Martins's tópico in ACBrNFSe
Muitíssimo obrigado @Italo Giurizzato Junior -
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.
-
Retorno do Sicredi não está trazendo o código do erro
um tópico no fórum postou Sady Martins ACBrBoleto
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. -
Sady Martins changed their profile photo
-
Alteração no arquivo ACBrNFSeXServicos.ini
Sady Martins replied to Sady Martins's tópico in ACBrNFSe
Obrigado @Italo Giurizzato Junior e @Alexandre de Paula
