-
Total de ítens
141 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Jacinto Junior postou
-
Indicador para débito automático - Bradesco
Jacinto Junior replied to duiliolobianco's tópico in ACBrBoleto
Verifiquei que tais alterações não estão no SVN. Na revisão 11046 a unit não foi commitada, e até hoje também não. Por favor verifique. Antecipadamente agradeço.- 8 replies
-
- identifificador
- ident
- (e 3 mais)
-
Bom dia. Realizei algumas alterações/correções ref. a ocorrências na unit do BB, assinalei todas com DONE. Peço que avaliem. Antecipadamente agradeço. ACBrBancoBrasil.pas
- 16 replies
-
Indicador para débito automático - Bradesco
Jacinto Junior replied to duiliolobianco's tópico in ACBrBoleto
Bom dia. Essa informação deverá ser enviada em branco pois ao enviar como "N" e os dados de débito automático não forem informados (ainda não há suporte para isso no componente) o registro é recusado, abaixo segue detalhamento conforme manual: 094 a 094 – Condições de Registro para Débito Automático - Quando igual a “N” e os dados do débito estiverem incorretos, rejeita o registro na cobrança e não emite Boleto de cobrança; - Quando diferente de “N” e os dados do débito estiverem incorretos, registra na cobrança e emite Boleto de cobrança. Nesta condição, não ocorrerá o agendamento do debito. Em anexo segue arquivo alterado. ACBrBancoBradesco.pas- 8 replies
-
- identifificador
- ident
- (e 3 mais)
-
Bom dia. Em anexo seguem alterações no ACBrBancoSantander.pas referentes a inclusão/alterações de ocorrências e leitura da data do crédito. Todas as alterações foram assinaladas com DONE. ACBrBancoSantander.pas
-
Bom dia. Realizei uma alteração marcada como DONE devido ao fato de que quando não se faz uso de sacador/avalista o tipo de inscrição deverá ser 0 (zero). Método GerarRegistroTransacao240, linhas 463-466 e 535. Em anexo segue unit. ACBrBancoCaixa.pas
-
Erro Ao Imprimir Lista De Boletos No Fortes Report
Jacinto Junior replied to Emerson Luis's tópico in ACBrBoleto
Olá brsamn, se fizer essa mudança e fazer um build no pacto do componente Fortes Report seguramente irá resolver. O problema ocorre acima de cinco páginas devido ao fato de uma característica do próprio componente que faz armazenamento em disco para impressões maiores que cinco páginas, e o problema ocorre justamente ao recuperar esse arquivo armazenado. Como exposto pelo Juliomar, recentemente foram corrigidos alguns bugs no Fortes, então talvez esse já tenha sido sanado com outra estratégia. -
Erro Ao Imprimir Lista De Boletos No Fortes Report
Jacinto Junior replied to Emerson Luis's tópico in ACBrBoleto
Boa tarde. Enfrentei esse mesmo problema e o resolvi fazendo a seguinte alteração no Fortes Report na unit "RLMetaFile.pas" no procedimento "TRLGraphicSurface.LoadFromStream": procedure TRLGraphicSurface.LoadFromStream(AStream: TStream); procedure LoadHeaderFromStream(AStream: TStream); var data: AnsiString; ch: char; I: Integer; begin SetLength(data, MaxSurfaceHeader); I := 0; while (I < MaxSurfaceHeader) and (AStream.Read(ch, 1) = 1) do begin Inc(I); data[I] := AnsiChar(ch); if AnsiChar(ch) = #26 then // Alterado aqui. Break; end; SetLength(data, I); if data <> SurfaceHeaderStr then raise Exception.Create('File is corrupted!'); end; procedure LoadBoundsFromStream(AStream: TStream); begin AStream.Read(FWidth, SizeOf(FWidth)); AStream.Read(FHeight, SizeOf(FHeight)); end; procedure LoadMacrosFromStream(AStream: TStream); var count, len, I: Integer; ln: AnsiString; begin AStream.Read(count, SizeOf(count)); // grava símbolos e seus valores for I := 0 to count - 1 do begin // lê length + nome AStream.Read(len, SizeOf(len)); SetLength(ln, len); AStream.Read(ln[1], len); // FMacros.Add(ln); end; end; procedure LoadFontsFromStream(AStream: TStream); var count, len, I: Integer; name: AnsiString; begin AStream.Read(count, SizeOf(count)); // carrega nomes das fontes for I := 0 to count - 1 do begin AStream.Read(len, SizeOf(len)); SetLength(name, len); AStream.Read(name[1], len); FFonts.Add(name); end; end; procedure LoadObjectsFromStream(AStream: TStream); var count: Integer; size: Integer; kind: TGraphicObjectKind; creator: TRLGraphicObjectClass; I: Integer; begin AStream.Read(count, SizeOf(count)); for I := 0 to count - 1 do begin AStream.Read(kind, SizeOf(kind)); AStream.Read(size, SizeOf(size)); creator := GraphicObjectClass(kind); // se a classe não for conhecida, salta o segmento if creator <> nil then creator.Create(Self).LoadFromStream(AStream) else AStream.Position := AStream.Position + size; end; end; begin Clear; LoadHeaderFromStream(AStream); LoadBoundsFromStream(AStream); LoadMacrosFromStream(AStream); LoadFontsFromStream(AStream); LoadObjectsFromStream(AStream); end; -
Retorno Banco do Brasil - Convênio de 7 posições e Nosso Número com 17
Jacinto Junior replied to brsamn's tópico in ACBrBoleto
Boa tarde meu caro. O método abaixo deverá ser alterado, conforme: function TACBrBancoBrasil.CalcularTamMaximoNossoNumero( const Carteira: String; NossoNumero : String = ''): Integer; var wCarteira : String; wTamConvenio: Integer; begin Result := 10; if (ACBrBanco.ACBrBoleto.Cedente.Convenio = '') then raise Exception.Create(ACBrStr('Banco do Brasil requer que o Convênio do Cedente '+ 'seja informado.')); if (Carteira = '') then raise Exception.Create(ACBrStr('Banco do Brasil requer que a carteira seja '+ 'informada antes do Nosso Número.')); wCarteira:= Trim(Carteira); wTamConvenio:= Length(Trim(ACBrBanco.ACBrBoleto.Cedente.Convenio)); // DONE -oJacinto Junior: Alterado pois para os convênios de 7 posições e carteira 18 o tamanho do nosso número é 17. // if (Length(trim(NossoNumero)) > 10) and (wTamConvenio = 6) and // ((wCarteira = '16') or (wCarteira = '18')) then if (Length(Trim(NossoNumero)) > 10) and (wTamConvenio in [6, 7]) and ((wCarteira = '16') or (wCarteira = '17') or (wCarteira = '18')) then Result:= 17 else if (wTamConvenio <= 4) then Result := 7 else if ((wTamConvenio > 4) and (wTamConvenio < 6)) or ((wTamConvenio = 6) and ((wCarteira = '12') or (wCarteira = '15') or (wCarteira = '17'))) then Result := 5 else if (wTamConvenio = 6) then Result := 11 else if (wTamConvenio = 7) then Result := 10; end; Em anexo segue a unit alterada. ACBrBancoBrasil.pas -
Validação De Ct-E Com Nf-E Validada Em Contigência.
Jacinto Junior replied to Alexandre Alves's tópico in ACBrCTe
krepe, o problema somente ocorre se a NFe originária for emitida em contigência e o CTe for emitido em FS. Se o CTe for emitido no ambiente normal ou na SVC-SP não há problema. No ambiente de homologação do serviço normal já foi corrigido, provavelmente amanhã já estará disponível no ambiente de produção. Veremos... -
Melhoria Acbrbancocaixa.pas Linha 686
Jacinto Junior replied to SolivanAraujo's tópico in ACBrBoleto
Obrigado Juliana, mas fiquei com uma dúvida, o "Trim" não fará falta? Pois caso sejam lidos espaços em branco do arquivo, eles serão diferentes de "EmptyStr". -
Meu caro, seria interessante apurar essa informação com o banco. Acredito que esse não seja o código do seu convênio.
-
Basta informar o número do convêncio no atributo "ACBrBoleto.Cedente.Convenio".
-
Melhoria Acbrbancocaixa.pas Linha 686
Jacinto Junior replied to SolivanAraujo's tópico in ACBrBoleto
Boa tarde meus caros. O conteúdo do "SeuNumero" por ser de responsabilidade do cliente emissor poderá ser alfanumérico, portanto acredito que seja uma melhor solução o seguinte: if AnsiSameText(Trim(SeuNumero), EmptyStr) then begin SeuNumero := NossoNumero; NumeroDocumento := NossoNumero end; Em anexo segue a unit alterada. ACBrBancoCaixa.pas -
Boa tarde meu caro. Em que trecho do manual consta essa informação? Pois de acordo com a nota 06 do manual CBR641 (CNAB400) para as carteiras 12, 15 e 17 o nosso número contém 10 posições. PS: Por favor desconsidere meu post, me equivoquei ao observar somente o número sequencial e acabei desconsiderando o número no convênio. Desculpe.
-
Bom dia. O cobSafraBradesco é do Banco Safra porém via banco correspondente Bradesco, por isso é utilizado o 237. Acredito que cobCaixaSicob seja a mesma situação.
-
Meu caro, isso ocorre devido ao fato de na função CalcularDigitoVerificadorBradesco você fazer uso de CalcularDigitoVerificador, e este utilizar o CalculoPadrao, que por sua vez utiliza o MultiplicadorFinal igual a 9. Tente com o seguinte código: function TACBrBancoSafraBradesco.CalcularDigitoVerificadorBradesco(const ACBrTitulo: TACBrTitulo): String; begin Modulo.CalculoPadrao; Modulo.MultiplicadorInicial := 2; Modulo.Documento := ACBrTitulo.Carteira + Copy(DateToStr(ACBrTitulo.DataDocumento), 9, 2) + ACBrTitulo.NossoNumero + CalcularDigitoVerificador(ACBrTitulo); Modulo.MultiplicadorFinal := 7; Modulo.Calcular; if Modulo.ModuloFinal = 1 then Result := 'P' else Result := IntToStr(Modulo.DigitoFinal); end;
- 14 replies
-
- Banco Safra
- Banco Bradesco
- (e 1 mais)
-
Jorge, o manual que disponibilizei foi o que o suporte me forneceu na época. Realmente este trecho de código não está na unit ACBrBancoSafraBradesco.pas, acabei por utiliza-lo diretamente na aplicação. Sugiro utilizar a unit ACBrBancoSafraBradesco.pas pois acredito que o Safra também tenha o serviço de cobrança sem banco correspondente. Pode contar comigo no que precisar.
- 14 replies
-
- Banco Safra
- Banco Bradesco
- (e 1 mais)
-
Bom dia. Segue em anexo o manual utilizado, veja o item 10.2 na página 40. Cobranca Safra CNAB 400 v2010-09.pdf
- 14 replies
-
- Banco Safra
- Banco Bradesco
- (e 1 mais)
-
Tenho boletos do Safra com o Bradesco como correspondente em produção sim, desde 02/2014. Realmente tive que tratar alguma particularidades. Desculpe mas não lembro de todas de imediato. Referente ao cálculo do dígito verificador foi necessário no ato da emissão gerar o nosso número da seguinte forma: FTitulo.NossoNumero := FormatDateTime('yy', <Data_de_Vencimento>) + IntToStr(VSeqNossoNumero) + Self.CalcularDigitoVerificadorSafra(IntToStr(VSeqNossoNumero)); function CalcularDigitoVerificadorSafra(ANossoNumero: String): String; begin FACBrBoleto.Banco.BancoClass.Modulo.CalculoPadrao; FACBrBoleto.Banco.BancoClass.Modulo.Documento := ANossoNumero; FACBrBoleto.Banco.BancoClass.Modulo.Calcular; if FACBrBoleto.Banco.BancoClass.Modulo.ModuloFinal = 0 then Result := '1' else if FACBrBoleto.Banco.BancoClass.Modulo.ModuloFinal = 1 then Result := '0' else Result := IntToStr(FACBrBoleto.Banco.BancoClass.Modulo.DigitoFinal); end;
- 14 replies
-
- Banco Safra
- Banco Bradesco
- (e 1 mais)
-
Utilize cobSafraBradesco tanto para emissão do boleto quanto para geração da remessa. Provavelmente na emissão do boleto você tenha de configurar o cedente como sendo o Banco Safra. Os layouts foram homologados em 02/2014 e estão em operação desde então, porém não sei lhe informar se atualmente estão mais criteriosos quanto a homologação.
- 14 replies
-
- Banco Safra
- Banco Bradesco
- (e 1 mais)
-
Boa tarde Jorge. Você já utilizou o ACBrBoleto para algum outro banco? Pois o procedimento de configuração segue o mesmo padrão. Qual é o tipo de dificuldade que você está tendo?
- 14 replies
-
- Banco Safra
- Banco Bradesco
- (e 1 mais)
-
Erro Bradeco - Cnab400 - Conta Inválida
Jacinto Junior replied to Marcio Rossato's tópico in ACBrBoleto
Meu caro, é fato que os manuais dos bancos possuem inconsistências. É fato também que não vou me lembrar com precisão onde apurei esta informação, porém você pode certificar-se que não há agências com mais de quatro dígitos através do arquivo que contém a relação de agências e postos bancários disponibilizado de Banco Central do Brasil disponível em: http://www.bcb.gov.br/?RELAGPAB -
Mostrar Arquivo De Retorno Cnab400 - Bradesco
Jacinto Junior replied to Osmar Scobin's tópico in ACBrBoleto
Boa tarde Osmar. Você tem que implementar a exibição destas informações da lista de títulos carregada pelo componente.