Ir para conteúdo
  • Cadastre-se

vinicius_santos

Membros
  • Total de ítens

    6
  • Registro em

  • Última visita

Posts postados por vinicius_santos

  1. Um exemplo é a documentação do Sicredi. Veja a página 48 do manual do Sicredi. Não está dizendo que é obrigatória, mas me parece que todos os bancos usam este padrão. Poderíamos colocar uma propriedade "ImprimirCPF", ou alguma coisa assim com default False, para manter o padrão atual de funcionamento. Acho que ficaria flexível.

     

     

  2. Boa noite.

    Ao que me parece é padrão colocar o CPF ou CNPJ do nome do pagador. Fiz uma homologação recentemente, e uma das recomendações foram essa. A homologação passou, mesmo sem o CPF ou CNPJ, mas fizeram esta ressalva.

    Não deveríamos incluir esta alteração? Ou talvez fazer uma propriedade no componente. Cheguei a fazer a alteração para o boleto do Fortes Report.

    Em anexo um boleto emitido pelo site do Banco do Brasil.

    exemplo.png

  3. Boa tarde,

    A geração do código de barras na Unit "ACBrBancoSicredi.pas" está ficando errada.

    Segue a função modificada. Acabei de homologar os boletos em meu cliente e só passaram nos testes com esta modificação.

     

    function TACBrBancoSicredi.MontarCodigoBarras ( const ACBrTitulo: TACBrTitulo) : String;
    var
      CodigoBarras, FatorVencimento, DigitoCodBarras, CampoLivre, Modalidade:String;
      DigitoNum: Integer;
    begin
       with ACBrTitulo.ACBrBoleto do
       begin
          FatorVencimento := CalcularFatorVencimento(ACBrTitulo.Vencimento);
          Modalidade := IfThen(Cedente.Modalidade='','1',Copy(trim(Cedente.Modalidade),1,1));
          // wNossoNumeroCompleto := OnlyNumber(MontarCampoNossoNumero(ACBrTitulo));
          { Monta o campo livre }
          CampoLivre :=   Modalidade                              + { 1-Com registro ou 3-Sem registro. Por enquanto vou deixar 1 mais tenho que tratar menhor essa informação }
                          '1'                                     + { 1-Carteira simples }
                          OnlyNumber(MontarCampoNossoNumero(ACBrTitulo)) +
                          //padR(ACBrTitulo.NossoNumero,8,'0')      + { Nosso número + DV }
                          //CalcularDigitoVerificador(ACBrTitulo)   + { Dígito verificador do nosso número }
                          padR(OnlyNumber(Cedente.Agencia),4,'0') + { Código agência (cooperativa) }
                          padR(Cedente.AgenciaDigito,2,'0')       + { Dígito da agência (posto da cooperativa) }
                          padR(OnlyNumber(Cedente.CodigoCedente),5,'0')   + { Código cedente }  //  Ver manual página 86 - CNAB240 ou 51 - CNAB400
                          '1'                                     + { Filler - zero. Obs: Será 1 quando o valor do documento for diferente se zero }
                          '0';                                    { Filler - zero }
          { Calcula o dígito do campo livre }
          Modulo.CalculoPadrao;
          Modulo.MultiplicadorFinal := 9;
          Modulo.Documento := CampoLivre;
          Modulo.Calcular;
          CampoLivre := CampoLivre + IntToStr(Modulo.DigitoFinal);

          { Monta o código de barras }
          CodigoBarras := IntToStr( Numero )                                     + { Código do banco 748 }
                          '9'                                                    + { Fixo '9' }
                          FatorVencimento                                        + { Fator de vencimento, não obrigatório }
                          IntToStrZero(Round(ACBrTitulo.ValorDocumento*100),10)  + { valor do documento }
                          CampoLivre;                                              { Campo Livre }

     

          DigitoCodBarras := CalcularDigitoCodigoBarras(CodigoBarras);
          DigitoNum := StrToIntDef(DigitoCodBarras,0);

          if (DigitoNum = 0) or (DigitoNum > 9) then
             DigitoCodBarras:= '1';
       end;

       Result:= IntToStr(Numero) + '9'+ DigitoCodBarras + Copy(CodigoBarras,5,39);
    end;

  4. Boa tarde Juliana,

    Na procedure TACBrBancoSicredi.GerarRegistroTransacao400, existe a seguinte linha:

         if trim(CodigoMora) = '' then
           CodigoMora := 'A';

    Porém a classe TACBrTitulo no construtor da classe já seta o fCodigoMora = 12.

    Se o usuário não preencher o CodigoMora os arquivos de remessa do Sicred ficam errados já que o CodigoMora fica com 2 caracteres ao invés de um.

    Fiz a seguinte alteração:

     

    if (trim(CodigoMora) = '') or ( ( trim(CodigoMora) <> 'A' ) and ( trim(CodigoMora) <> 'B' ) ) then

      CodigoMora := 'A';

     

    Deixando como está o arquivo de remessa está ficando com 401 posições no arquivo de remessa.

     

×
×
  • 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.