Ir para conteúdo
  • Cadastre-se

fernandoschulz

Membros
  • Total de ítens

    53
  • Registro em

  • Última visita

Últimos Visitantes

1.283 visualizações

fernandoschulz's Achievements

Contributor

Contributor (5/14)

  • First Post
  • Collaborator Rare
  • Conversation Starter
  • Week One Done
  • One Month Later

Recent Badges

7

Reputação

  1. Bom dia, Só para fins informativos, também tive problemas com o código de barras e linha digitável ao utilizar o cnab 240 do banco Safra do repositório, e utilizando a correção efetuada pelo João os boletos homologaram corretamente. att, Fernando Schulz.
  2. Bom dia, O erro de retorno "C2 - Aceite do título inválido" do banco Sicredi CNAB 400 não está tratado no Acbr e está acusando o erro "'C2' is not a value integer value". Tratei o C2 e aproveitei e coloquei o tratamento para os erros C1 e C3 que vi no manual e não estavam na unit também, segue unit em anexo. Obs: Atualizei o componente de boleto agora a pouco antes de efetuar as alterações. Obrigado, Fernando Schulz. ACBrBancoSicredi.pas
  3. Boa tarde @Italo Jurisato Junior Acompanhei uns dias o fórum e percebi que vocês fizeram algumas modificações após outros usuários reportarem erro na assinatura do xml de cancelamento, enfim, resolvi fazer um update e testar em Joinville pra ver se já estava funcionando, porém, ocorreu um erro novamente, mas dessa vez o erro era diferente, o acbr nem tentou enviar o xml pra prefeitura, o erro é o seguinte: Na Unit ACBrDFeXsMsXmlCapicom na parte onde faz a assinatura do xml: // Inserindo Template da Assinatura digital // if (not XmlEstaAssinado(AXml)) or (vSignatureNode <> CSIGNATURE_NODE) then AXml := AdicionarSignatureElement(AXml, False, docElement, IdSignature, IdAttr); Após ele assinar o xml por essa função acima ele perdia a tag de fechamento do xml, ficava dessa forma: <CancelarNfseEnvio xmlns="http://nfews.joinville.sc.gov.br"><Pedido>[...]</Pedido> Ou seja, como podes reparar acima ele não inseria a tag de fechamento </CancelarNfseEnvio> e dava erro na função logo abaixo dizendo que não conseguiu carregar o xml. Eu alterei a Unit ACBrNFSeWebServices na parte onde é inserido o DocElement do XML conforme o servidor, ISSJoinville estava setado para ser como: FdocElemento := FPrefixo3 + 'Pedido'; E eu alterei para ficar igual aos servidores BHISS, Betha e SystemPro: proBHISS, // proPublica, proBethav2, proSystemPro, proISSJoinville: FdocElemento := FPrefixo3 + 'Pedido></' + FTagGrupo; Após efetuar essa alteração assinou o xml corretamente e enviou a prefeitura sem problemas, conforme verifiquei no portal cancelou a nota na prefeitura. Não sei se muda algo nessa parte, mas no caso de Joinville eu teria que ter setado alguma outra configuração pra funcionar sem fazer essas alterações? Minhas configurações de certificado que utilizo em todos os servidores que tenho implementado estão da seguinte forma: ACBrNFSe1.Configuracoes.Geral.SSLCryptLib := cryCapicom; ACBrNFSe1.Configuracoes.Geral.SSLHttpLib := httpIndy; ACBrNFSe1.Configuracoes.Geral.SSLLib := libCapicom; ACBrNFSe1.Configuracoes.Geral.SSLXmlSignLib := xsMsXmlCapicom; Caso não e as alterações que fiz estão corretas, coloquei a Unit alterada em anexo. Agradeço a atenção, Fernando Schulz. ACBrNFSeWebServices.pas
  4. Ah entendi, dei azar que peguei o erro bem quando estava implementando uma nova cidade e acabei achando que era algo que eu estava fazendo errado, enfim, agradeço a resposta e fico no aguardo. Obrigado, Fernando Schulz.
  5. Boa tarde pessoal, Possuo a nfs-e de diversas cidades implementadas e funcionando com o acbr a um bom tempo, porém, a tentar implementar a cidade de Joinville/SC, no serviço de cancelamento da nfs-e sempre me retorna o erro "CheckSignature, arquivo editado apos a assinatura", já tentei debugar comparando o xml antes e depois da assinatura, mudar diversas opções, utilizei o demo do acbr, tentei enviar o xml pelo SoapUI e em todos acontece o mesmo problema, passei o xml em um validador e me retorna que a assinatura realmente está com problema, dessa forma, imagino que seja alguma configuração que estou usando errado pois o envio do lote e consulta de lote e rps consegui implementar sem problemas para esse município, e pelo que vi no Fórum alguns colegas já utilizam essa nfs-e de Joinville pelo acbr e ninguém relatou algo parecido. Alguém já teve um problema semelhante que possa me dar uma dica/ajuda? Obs: Todos os fontes estão atualizados. Agradeço a atenção, Fernando Schulz.
  6. Boa tarde, Ao importar um retorno no Sicredi ocorreu o seguinte erro: "'S4' is not a valid integer value". O problema são duas novas ocorrências de Tarifa no retorno que não estão tratadas no componente ACBR. Efetuei o download do manual atualizado do CNAB 400 do Sicredi e as ocorrências não implementadas no acbr que constam na página 18 do manual são: Antes de efetuar as alterações fiz um update no componente, porém, ainda não estavam implementadas, sendo assim implementei e anexei o fonte atualizado para serem atualizados no ACBR. O manual atualizado não consegui anexar por ser maior que 2MB, então segue link: https://www.sicredi.com.br/html/para-sua-empresa/recebimentos/cobranca/arquivos/manual-cnab-400---2018-v1.pdf Alterações: Antigo: toRetornoDebitoTarifas: //28 case AnsiIndexStr(CodMotivo,['A9', 'B1', 'B2', 'B3', 'E1', 'F5']) of 0: Result:= 'A9-Tarifa de manutenção de título vencido'; 1: Result:= 'B1-Tarifa de baixa da carteira'; 2: Result:= 'B2-Não implementado'; 3: Result:= 'B3-Tarifa de registro de entrada do título'; 4: Result:= 'E1-Não implementado'; 5: Result:= 'F5-Tarifa de entrada na rede SICREDI'; else case StrToInt(CodMotivo) of 03 : Result:= '03-Tarifa de sustação'; 04 : Result:= '04-Tarifa de protesto'; 08 : Result:= '08-Tarifa de custas de protesto'; else Result:= PadLeft(CodMotivo,2,'0') +' - Outros Motivos'; end; end; Novo: toRetornoDebitoTarifas: //28 case AnsiIndexStr(CodMotivo,['A9', 'B1', 'B2', 'B3', 'E1', 'F5', 'S4', 'S5']) of 0: Result:= 'A9-Tarifa de manutenção de título vencido'; 1: Result:= 'B1-Tarifa de baixa da carteira'; 2: Result:= 'B2-Não implementado'; 3: Result:= 'B3-Tarifa de registro de entrada do título'; 4: Result:= 'E1-Não implementado'; 5: Result:= 'F5-Tarifa de entrada na rede SICREDI'; 6: Result:= 'S4-Tarifa de inclusão negativação'; 7: Result:= 'S5-Tarifa de exclusão negativação'; else case StrToInt(CodMotivo) of 03 : Result:= '03-Tarifa de sustação'; 04 : Result:= '04-Tarifa de protesto'; 08 : Result:= '08-Tarifa de custas de protesto'; else Result:= PadLeft(CodMotivo,2,'0') +' - Outros Motivos'; end; end; Agradeço a atenção, Fernando Schulz. ACBrBancoSicredi.pas
  7. Qual o banco? Eu não vou lembrar qual é o banco agora, mas tem um que quando a remessa cnab240 não é aceita, na posição 143 do retorno que deveria voltar "2", ele volta "5" e o acbr diz que não é o layout certo, mas na verdade é só porque a remessa não foi aceita. Na Unit ACBRBoleto tem esse código aqui que da o erro, ali no if volta '5' e ele diz que o layout ta errado: 240 : begin if Copy(SlRetorno.Strings[0],143,1) <> '2' then Raise Exception.Create( ACBrStr( NomeArq + sLineBreak + 'Não é um arquivo de Retorno de cobrança com layout CNAB240') ); BancoRetorno := Copy(SlRetorno.Strings[0],0,3); LayoutRemessa := c240 ; end; Tem até um outro tópico que fala sobre isso, da uma olhada se não pode ser isso seu problema.
  8. Bom dia, Precisei implementar a propriedade CodigoMora na Unit do Banco do Brasil CNAB 240. Atualmente a programação só contemplava o código mora = 1 (Valor Diário) e 3 (Isento), conforme programação abaixo: IfThen(ValorMoraJuros > 0, '1', '3') + // 118 - Código de juros de mora: Valor por dia Conforme manual do banco do brasil existe o código 2 (Taxa Mensal) também, segue abaixo: Em anexo Unit com alterações, fiz update no acbr boleto hoje de manhã antes de efetuar as alterações. Obs: Fiz uma programação no início da função que gera o registro de transação 240 que, caso alguém não trabalhe com a propriedade CodigoMora, as alterações que fiz não irão dar problema para essa pessoa: {Código Mora} if CodigoMora = '' then begin if ValorMoraJuros > 0 then CodigoMora := '1' else CodigoMora := '3'; end; Obrigado, Fernando Schulz. ACBrBancoBrasil.pas Esqueci de falar, já mandei remessa para o banco e está tudo certo, banco aceitou normal, e impressões pelo banco e componente ficaram corretas
  9. Boa tarde @Juliana Tamizou, Então, na verdade isso foi uma especulação minha que pode vir a ter mais tipos de retornos nesse código 48 pela descrição que aparenta ser bem ampla dele, mas, até então, foi a primeira vez que peguei esse código e foi apenas com antecipações, pode inclusive, ter antecipações que venham com outro código, mas no manual do sicoob não tem nenhuma ocorrência que deixa clara ser uma antecipação, dessa forma, acabamos descobrindo quando pegamos uma situação assim nos retornos dos clientes. Referente ao porque eu tratei e não deixei como OutrasOcorrencias, é porque quando é antecipação eu preciso ter como identificar isso e tratar no meu sistema, e como OutrasOcorrencias eu não consigo fazer isso, no relatório de retornos que faço para o cliente se eu deixar só como OutrasOcorrencias acaba gerando muitas ligações de suporte porque o cliente não sabe o que isso significa, porque pode voltar qualquer coisa ali que não esteja tratado. Vale ressaltar também, que no caso de antecipações a data de crédito vem zerada, então eu usei o código 48 pra isso também, não tentar usar uma data zerada. Enfim, só por questões de tratamentos mesmo, saber o que fazer com o financeiro desse boleto. Obrigado, Fernando Schulz.
  10. Resolveu usando as minhas alterações Cleonir, ou fez alguma coisa diferente? Bom dia @Juliana Tamizou, tem como colocar essas alterações no svn, ou queres que eu faça algo diferente? Obrigado. att, Fernando Schulz.
  11. Perdão, não tinha vindo a imagem antes.. Cara, uma dica, entra na unit do Bancoob dentro da pasta fontes > Boleto no trunk2 do acbr e procura as propriedades conforme o número da posição inicial, ta tudo comentado lá, fica bem fácil achar o que vc precisa. as propriedade são: CodigoMora, ValorMoraJuros, DataMoraJuros, DataDesconto, ValorDesconto Vale ressaltar que isso aí são propriedades que tens que combinar com o banco, a taxa de juros e etc.. Esse esquema do desconto é outra regra combinada com o cliente e banco, por exemplo, o cara quer dar um desconto de 10% no boleto caso ele seja pago antes da data limite de desconto, aí vc informa essas propriedades.
  12. ACBrBoleto1.LayoutRemessa := IIF(Pos('c240', IBQBancoDS_LAYOUT.AsString) > 0, c240, c400);
  13. Não tenho essas propriedades preenchidas, isso é algo mais específico que as vezes o banco pede, mas até o momento nunca usei
  14. Tenta colocar na propriedade Cedente.CodigoCedente := 202789
  15. Se eu não me engano já tive problemas com código do cedente nos bancos, que uns usam o dígito verificador e outros não, mas posso estar te falando mentira.. chegou a tentar informar com e sem pra ver se muda algo? Outra coisa, o Sicoob tem um arquivo em excel onde ele calcula o dígito verificador pra ti, pede pra ela te passar esse excel preenchido com as informações que ela diz q ta errado pra ti comparar. Vou botar o que tenho aqui em anexo pra ti dar uma olhada. Calculo DV Nosso Numero.xlsx
×
×
  • 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.