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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...