class CnabRb::Layouts::Cnab240::Generic::HeaderFile
Public Instance Methods
init_fields()
click to toggle source
# File lib/cnab_rb/layouts/cnab240/generic/header_file.rb, line 3 def init_fields field :bank_code, pos: 1..3, picture: '9(3)' field :service_batch, # Se registro for Header do Arquivo = '0000' pos: 4..7, picture: '9(4)', default: 0 field :registry_type, # Código adotado pela FEBRABAN para identificar o tipo de registro. # '0' = Header de Arquivo pos: 8..8, picture: '9(1)', default: '0' field :exclusive_use_febraban_1, pos: 9..17, picture: 'X(9)', default: '' field :registration_code, # '1' = CPF # '2' = CGC / CNPJ pos: 18..18, picture: '9(1)' field :registration_number, # CNPJ ou CPF pos: 19..32, picture: '9(14)' field :agreement_code, # Código do Convênio no Banco (Código do Cedente) # Código fornecido pela CAIXA, através da agência de relacionamento do cliente, específico para # identificar determinados tipos de serviços / produtos. # O campo CÓDIGO DO CEDENTE deverá ser preenchido da seguinte forma: # AAAAOOOCCCCCCCCD, onde: # AAAA = código da Agência CAIXA de relacionamento do cliente / cedente # OOO = Operação # CCCCCCCC = Número da Conta Corrente ou seqüencial # D = Dígito Verificador pos: 33..48, picture: '9(16)' field :exclusive_use_bank_1, # Padrão: deixar em branco pos: 49..52, picture: 'X(4)', default: '' field :agency, # Código da Agência mantenedora da conta, fornecido pela CAIXA. pos: 53..57, picture: '9(5)' field :agency_cd, # Dígito Verificador da Agência mantendedora da conta, fornecido pela CAIXA. pos: 58..58, picture: '9(1)' field :transferor_code, # Código do Cedente # Remessa: Código do Convênio no Banco (sem operação), tamanho: 12 posições, no formato # 0000CCCCCCCC. # Retorno: Código do Convênio no Banco (com operação), tamanho: 12 posições, no formato # 0OOOCCCCCCCC. # Onde: # 0 = zero # OOO = Operação # CCCCCCCC = Cedente pos: 59..70, picture: '9(12)' field :transferor_code_cd, # Dígito Verificador do Cedente # Código adotado pela CAIXA, para verificação da autenticidade do Código do Cedente. Calculado # através do módulo 11. # Exemplo de como calcular o DV do Cedente: # Agência/Código do Cedente: 0012.870.00000575-1 # Para Remessa – Cedente sem operação e sem DV: 00000575 # Para Retorno – Cedente com operação e sem DV: 87000000575 # 0 0 0 0 0 5 7 5 # 9 8 7 6 5 4 3 2 # 0 0 0 0 0 20 21 10 # 1ª linha – Código do Cedente # 2ª linha – Índice multiplicação, preencher sequencialmente de 2 a 9 da direita para a esquerda # 3ª linha – Multiplicação coluna por coluna (0x9, 0x8, 0x7, 0x6, 0x5, 0x4, 3x3, 3x2) # Soma-se os valores da 3ª linha: 0+0+0+0+0+20+21+10 = 51 # Dividir o resultado da soma por onze: 51/11 = 4 (resto 7) # Subtrair onze pelo resto da divisão: 11 – 7 = 4 # O Dígito Verificador calculado para o Código de Cedente acima é 4 # Obs.: se o resultado da subtração for maior que 9 (nove) o dígito será 0 (zero) pos: 71..71, picture: '9(1)' field :agency_transferor_cd, # Dígito Verificador da Agência / Código do Cedente # Código adotado pela CAIXA para verificação da autenticidade do par Código da Agência / Código do # Cedente. Calculado através do módulo 11. # Obs: Para o Retorno é o mesmo DV do Código do Cedente, fornecido pela CAIXA. # Exemplo de como calcular o DV da Agência/Código do Cedente (Remessa): # Agência/Código do Cedente: 0012.870.00000575-1 # Agência (sem DV): 0012 # Cedente (sem operação e sem DV) – tamanho 8 posições: 00000575 # 0 0 1 2 0 0 0 0 0 5 7 5 # 5 4 3 2 9 8 7 6 5 4 3 2 # 0 0 3 4 0 0 0 0 0 20 21 10 # 1ª Linha – Agência/Código do Cedente # 2ª Linha – Ìndice multiplicação, preencher sequencialmente de 2 a 9 da direita para a esquerda # 3ª Linha – Multiplicação coluna por coluna # Soma-se os valores da 3ª linha: 0+0+3+4+0+0+0+0+0+20+21+10 = 58 # Dividir o resultado da soma por onze: 58/11 = 5 (RESTO 3) # Subtrair onze pelo resto da divisão: 11 – 3 = 8 # O Dígito Verificador calculado para o Código de Cedente acima é 8 # Obs.: se o resultado da subtração for maior que 9 (nove) o dígito será 0 (zero) # No Banco do Brasil, é o Dígito verificador da Ag/Conta pos: 72..72, picture: '9(1)' field :company_name, # Nome que identifica a pessoa, física ou jurídica, a qual se quer fazer referência pos: 73..102, picture: 'X(30)' field :bank_name, # Nome que identifica o banco que está recebendo ou enviando o arquivo. # Informar: CAIXA ECONÔMICA FEDERAL (se o banco for a caixa) pos: 103..132, picture: 'X(30)' field :exclusive_use_febraban_2, # Texto de observações destinado para uso exclusivo da FEBRABAN. Preencher com Brancos. pos: 133..142, picture: 'X(10)', default: '' field :remittance_return_code, # Código Remessa / Retorno # Código adotado pela febraban para qualificar o envio ou devolução de arquivo entre a empresa # cliente e o banco prestador dos serviços. informar: # '1' = remessa (cliente banco) # '2' = retorno (banco cliente) pos: 143..143, picture: '9(1)' field :generation_date, # Data da criação do arquivo. utilizar o formato DDMMAAAA, onde : dd = dia, mm = mês, aa = ano pos: 144..151, picture: '9(8)', date_format: '%d%m%Y' field :generation_time, # Hora da criação do arquivo. utilizar o formato hhmmss, onde : HH = hora, MM = minuto, SS = segundo pos: 152..157, picture: '9(6)', date_format: '%H%M%S' field :sequential_number_file, # Número seqüencial adotado e controlado pelo responsável pela geração do arquivo para ordenar a # disposição dos arquivos encaminhados. # Evoluir um número seqüencial a cada header de arquivo. pos: 158..163, picture: '9(6)' field :layout_version, # Código adotado pela FEBRABAN para identificar qual a versão de layout do arquivo encaminhado. O # código é composto de: # Versão = 2 dígitos # Release = 1 dígito # Padrão: 030 pos: 164..166, picture: '9(3)', default: '030' field :density_file, # Densidade de gravação (bpi), do arquivo encaminhado. Pode ser: # 1600 BPI # 6250 BPI # Pode ser informado ‘0’. (Padrão) pos: 167..171, picture: '9(5)', default: '0' field :exclusive_use_bank, # Para Uso Reservado do Banco # Texto de observações destinado para uso exclusivo da caixa econômica federal. # Durante a fase de testes (simulado) deverá conter a literal ‘RETORNO-TESTE’ pos: 172..191, picture: 'X(20)', default: '' field :exclusive_use_company, # Campo utilizado pelo cliente/cedente. Na fase de testes (simulado), deverá conter a literal # ‘REMESSA-TESTE’ e na fase de produção deverá conter a literal ‘REMESSA-PRODUÇÃO’ pos: 192..211, picture: 'X(20)', default: 'REMESSA-PRODUCAO' field :exclusive_use_febraban_3, # Texto de observações destinado para uso exclusivo da FEBRABAN. Preencher com Brancos. pos: 212..240, picture: 'X(29)', default: '' end