Ir para conteúdo
  • Cadastre-se

dev botao

alteração SicredI CNAB 240


Ver Solução Respondido por José M. S. Junior,
  • Este tópico foi criado há 1692 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

No segmento P para CNAB 240, na coluna 196/220 esta sendo informado o campo NumeroDocumento, conforme abaixo, so que esse campo ja esta sendo informado na coluna 63/77, o campo da coluna 196/220 no layout é um campo livre que é retornado no arquivo de retorno e não é processado pelo banco, é um campo livre, conforme layout do Sicredi, foi alterado para ser informado o campo SeuNumero, conforme todos os bancos que utilizam esse campo.

O campo SeuNumero é um campo livre não sendo processado pelo banco e é retornado no arquivo de remessa, nele qualquer informação que será passado, será retornado no arquivo de retorno

 

Antes

          ATipoBoleto                                                      + // 061 a 062 - Identificação de emissão do bloqueto + 062 a 062 - Identificação da distribuição
             PadRight(NumeroDocumento, 15)                                    + // 063 a 077 - Nº do documento de cobrança
             FormatDateTime('ddmmyyyy', Vencimento)                           + // 078 a 085 - Data de vencimento do título
             IntToStrZero(Round(ValorDocumento * 100), 15)                    + // 086 a 100 - Valor nominal do título
             '00000'                                                          + // 101 a 105 - Coop./Ag. encarregada da cobrança
             Space(1)                                                         + // 106 a 106 - Dígito verificador da coop./agência
             PadLeft(Especie, 2, '0')                                         + // 107 a 108 - Espécie do título
             AceiteStr                                                        + // 109 a 109 - Identificação de título aceito/não aceito
             FormatDateTime('ddmmyyyy', DataDocumento)                        + // 110 a 117 - Data da emissão do título
             IfThen(ValorMoraJuros = 0, '3', '1')                             + // 118 a 118 - Código do juro de mora
             '00000000'                                                       + // 119 a 126 - Data do juro de mora
             IntToStrZero(Round(ValorMoraJuros * 100), 15)                    + // 127 a 141 - Juros de mora por dia/taxa
             TipoDescontoToString(ACBrTitulo.TipoDesconto)                    + // 142 a 142 - Código do desconto 1
             IfThen(ValorDesconto = 0, '00000000', FormatDateTime('ddmmyyyy', Vencimento))                         + // 143 a 150 - Data do desconto 1
             IntToStrZero(Round(ValorDesconto * 100), 15)                     + // 151 a 165 - Valor percentual a ser concedido
             IntToStrZero(Round(ValorIOF * 100), 15)                          + // 166 a 180 - Valor do IOF a ser recolhido
             IntToStrZero(Round(ValorAbatimento * 100), 15)                   + // 181 a 195 - Valor do abatimento
             PadRight(NumeroDocumento, 25)                                    + // 196 a 220 - Identificação do título na empresa
             CodProtesto                                                      + // 221 a 221 - Código para protesto
      

Depois

            ATipoBoleto                                                      + // 061 a 062 - Identificação de emissão do bloqueto + 062 a 062 - Identificação da distribuição
             PadRight(NumeroDocumento, 15)                                    + // 063 a 077 - Nº do documento de cobrança
             FormatDateTime('ddmmyyyy', Vencimento)                           + // 078 a 085 - Data de vencimento do título
             IntToStrZero(Round(ValorDocumento * 100), 15)                    + // 086 a 100 - Valor nominal do título
             '00000'                                                          + // 101 a 105 - Coop./Ag. encarregada da cobrança
             Space(1)                                                         + // 106 a 106 - Dígito verificador da coop./agência
             PadLeft(Especie, 2, '0')                                         + // 107 a 108 - Espécie do título
             AceiteStr                                                        + // 109 a 109 - Identificação de título aceito/não aceito
             FormatDateTime('ddmmyyyy', DataDocumento)                        + // 110 a 117 - Data da emissão do título
             IfThen( (ValorMoraJuros > 0) and (CodigoMora= ''), '1', PadRight(CodigoMora, 1, '3') )   + // 118 a 118 - Código do juro de mora
             IfThen((DataMoraJuros > 0),
                     FormatDateTime('ddmmyyyy', DataMoraJuros),
                                    '00000000')                               + // 119 a 126 - Data do juro de mora
             IntToStrZero(Round(ValorMoraJuros * 100), 15)                    + // 127 a 141 - Juros de mora por dia/taxa
             TipoDescontoToString(ACBrTitulo.TipoDesconto)                    + // 142 a 142 - Código do desconto 1
             IfThen(ValorDesconto = 0, '00000000', FormatDateTime('ddmmyyyy', Vencimento))                         + // 143 a 150 - Data do desconto 1
             IntToStrZero(Round(ValorDesconto * 100), 15)                     + // 151 a 165 - Valor percentual a ser concedido
             IntToStrZero(Round(ValorIOF * 100), 15)                          + // 166 a 180 - Valor do IOF a ser recolhido
             IntToStrZero(Round(ValorAbatimento * 100), 15)                   + // 181 a 195 - Valor do abatimento
             PadRight(SeuNumero, 25)                                          + // 196 a 220 - Identificação do título na empresa
             CodProtesto                                                      + // 221 a 221 - Código para protesto
 

ACBrBancoSicredi.pas

Link para o comentário
Compartilhar em outros sites

Outra alteração feita tambem no retorno que estava tambem pegando em campo errado

Antes na leitura do retorna estava dessa forma

        NumeroDocumento      := Trim(Copy(SegT,59,15));
        SeuNumero                  := NumeroDocumento;

        Carteira             := Copy(SegT,58,1);
        NossoNumero          := Trim(Copy(SegT,38,8));
        Vencimento           := StringToDateTimeDef( Copy(SegT,74,2) +'/'+
                                                     Copy(SegT,76,2) +'/'+
                                                     Copy(SegT,78,4),
 

Tem que ficar dessa forma porque é o campo correto no layout

        NumeroDocumento      := Trim(Copy(SegT,59,15));
       SeuNumero            := Trim(Copy(SegT,106,25));
        Carteira             := Copy(SegT,58,1);
        NossoNumero          := Trim(Copy(SegT,38,8));
        Vencimento           := StringToDateTimeDef( Copy(SegT,74,2) +'/'+
                                                     Copy(SegT,76,2) +'/'+
                                                     Copy(SegT,78,4),
                                                     0, 'dd/mm/yyyy' );
 

ACBrBancoSicredi.pas

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa tarde,

Obrigada pela contribuição, adicionada para análise.

Att.

  • Curtir 1
  • Obrigado 1
Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • 2 meses depois ...
  • Este tópico foi criado há 1692 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

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