Class: Brcobranca::Remessa::Cnab240::Sicredi
- Defined in:
- lib/brcobranca/remessa/cnab240/sicredi.rb
Constant Summary
Constants inherited from Base
Instance Attribute Summary collapse
-
#byte_idt ⇒ Object
Returns the value of attribute byte_idt.
-
#modalidade_carteira ⇒ Object
Returns the value of attribute modalidade_carteira.
-
#parcela ⇒ Object
Returns the value of attribute parcela.
-
#posto ⇒ Object
Returns the value of attribute posto.
Attributes inherited from Base
#codigo_carteira, #convenio, #distribuicao_boleto, #emissao_boleto, #especie_titulo, #forma_cadastramento, #mensagem_1, #mensagem_2, #tipo_documento
Attributes inherited from Base
#aceite, #agencia, #carteira, #conta_corrente, #digito_conta, #documento_cedente, #empresa_mae, #pagamentos, #sequencial_remessa
Instance Method Summary collapse
- #cod_banco ⇒ Object
- #codigo_baixa(_pagamento) ⇒ Object
- #codigo_convenio ⇒ Object (also: #convenio_lote)
-
#codigo_desconto(pagamento) ⇒ Object
Campo 30.3P - Codigo do desconto 1.
- #complemento_header ⇒ Object
- #complemento_p(pagamento) ⇒ Object
- #complemento_trailer ⇒ Object
- #data_mora(pagamento) ⇒ Object
- #densidade_gravacao ⇒ Object
-
#dias_baixa(_pagamento) ⇒ Object
Campo 39.3P - No de dias para baixa/devolucao.
- #digito_agencia ⇒ Object
- #dv_agencia_cobradora ⇒ Object
-
#formata_nosso_numero(nosso_numero) ⇒ String
Retorna o nosso numero.
- #info_conta ⇒ Object
-
#initialize(campos = {}) ⇒ Sicredi
constructor
A new instance of Sicredi.
-
#monta_segmento_q(pagamento, nro_lote, sequencial) ⇒ Object
Campos 17.3Q, 18.3Q e 19.3Q - Beneficiario Final.
-
#monta_trailer_arquivo(nro_lotes, sequencial) ⇒ String
Monta o registro trailer do arquivo.
- #nome_banco ⇒ Object
-
#numero(pagamento) ⇒ Object
Campo 19.3P - Seu Numero (posicoes 63-77).
- #uso_exclusivo_banco ⇒ Object
- #uso_exclusivo_empresa ⇒ Object
- #versao_layout_arquivo ⇒ Object
- #versao_layout_lote ⇒ Object
Methods inherited from Base
#complemento_r, #data_geracao, #data_multa, #exclusivo_servico, #gera_arquivo, #hora_geracao, #identificacao_titulo_empresa, #monta_header_arquivo, #monta_header_lote, #monta_lote, #monta_segmento_p, #monta_segmento_r, #monta_trailer_lote, #total_segmentos
Methods inherited from Base
#quantidade_titulos_cobranca, #totaliza_valor_titulos, #valor_titulos_carteira
Methods included from Validations
#errors, included, #invalid?, #valid?
Constructor Details
#initialize(campos = {}) ⇒ Sicredi
Returns a new instance of Sicredi.
23 24 25 26 27 28 29 30 31 32 |
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 23 def initialize(campos = {}) campos = { emissao_boleto: '2', distribuicao_boleto: '2', especie_titulo: '03', parcela: '01', modalidade_carteira: '01', forma_cadastramento: '1', tipo_documento: '1' }.merge!(campos) super(campos) end |
Instance Attribute Details
#byte_idt ⇒ Object
Returns the value of attribute byte_idt.
7 8 9 |
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 7 def byte_idt @byte_idt end |
#modalidade_carteira ⇒ Object
Returns the value of attribute modalidade_carteira.
7 8 9 |
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 7 def modalidade_carteira @modalidade_carteira end |
#parcela ⇒ Object
Returns the value of attribute parcela.
7 8 9 |
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 7 def parcela @parcela end |
#posto ⇒ Object
Returns the value of attribute posto.
7 8 9 |
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 7 def posto @posto end |
Instance Method Details
#cod_banco ⇒ Object
34 35 36 |
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 34 def cod_banco '748' end |
#codigo_baixa(_pagamento) ⇒ Object
167 168 169 |
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 167 def codigo_baixa(_pagamento) '1' end |
#codigo_convenio ⇒ Object Also known as: convenio_lote
70 71 72 73 74 |
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 70 def codigo_convenio # CAMPO TAMANHO # num. convenio 20 BRANCOS ''.rjust(20, ' ') end |
#codigo_desconto(pagamento) ⇒ Object
Campo 30.3P - Codigo do desconto 1. Manual Sicredi: '0' - Sem desconto | '1' - Valor fixo ate a data informada | '2' - Percentual ate a data informada. Para o codigo '0' o valor e a data do desconto devem ser zerados. Deve respeitar o valor informado pelo beneficiario.
159 160 161 162 163 164 165 |
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 159 def codigo_desconto(pagamento) if pagamento.cod_desconto == '0' pagamento.data_desconto = nil pagamento.valor_desconto = 0.0 end pagamento.cod_desconto end |
#complemento_header ⇒ Object
88 89 90 |
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 88 def complemento_header ''.rjust(29, ' ') end |
#complemento_p(pagamento) ⇒ Object
138 139 140 141 142 143 144 145 |
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 138 def complemento_p(pagamento) # CAMPO TAMANHO # conta corrente 12 # digito conta 1 # digito agencia/conta 1 # ident. titulo no banco 20 "#{conta_corrente.rjust(12, '0')}#{digito_conta} #{formata_nosso_numero(pagamento.nosso_numero)}" end |
#complemento_trailer ⇒ Object
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 92 def complemento_trailer # CAMPO TAMANHO # Qt. Títulos em Cobrança Simples 6 # Vl. Títulos em Carteira Simples 15 + 2 decimais # Qt. Títulos em Cobrança Vinculada 6 # Vl. Títulos em Carteira Vinculada 15 + 2 decimais # Qt. Títulos em Cobrança Caucionada 6 # Vl. Títulos em Carteira Caucionada 15 + 2 decimais # Qt. Títulos em Cobrança Descontada 6 # Vl. Títulos em Carteira Descontada 15 + 2 decimais total_cobranca_simples = ''.rjust(23, '0') total_cobranca_vinculada = ''.rjust(23, '0') total_cobranca_caucionada = ''.rjust(23, '0') total_cobranca_descontada = ''.rjust(23, '0') "#{total_cobranca_simples}#{total_cobranca_vinculada}#{total_cobranca_caucionada}" \ "#{total_cobranca_descontada}".ljust(217, ' ') end |
#data_mora(pagamento) ⇒ Object
199 200 201 202 203 |
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 199 def data_mora(pagamento) return ''.rjust(8, '0') unless %w[1 2].include? pagamento.tipo_mora pagamento.data_vencimento.next_day.strftime('%d%m%Y') end |
#densidade_gravacao ⇒ Object
50 51 52 |
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 50 def densidade_gravacao '01600' end |
#dias_baixa(_pagamento) ⇒ Object
Campo 39.3P - No de dias para baixa/devolucao. Manual Sicredi: o Sicredi nao utiliza esse campo, preencher com zeros.
173 174 175 |
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 173 def dias_baixa(_pagamento) '000' end |
#digito_agencia ⇒ Object
54 55 56 |
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 54 def digito_agencia ' ' end |
#dv_agencia_cobradora ⇒ Object
58 59 60 |
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 58 def dv_agencia_cobradora ' ' end |
#formata_nosso_numero(nosso_numero) ⇒ String
Retorna o nosso numero
150 151 152 |
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 150 def formata_nosso_numero(nosso_numero) nosso_numero.somente_numeros.ljust(20, ' ') end |
#info_conta ⇒ Object
78 79 80 81 82 83 84 85 86 |
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 78 def info_conta # CAMPO TAMANHO # agencia 5 # digito agencia 1 # conta corrente 12 # digito conta 1 # digito agencia/conta 1 "#{agencia.rjust(5, '0')}#{digito_agencia}#{conta_corrente.rjust(12, '0')}#{digito_conta} " end |
#monta_segmento_q(pagamento, nro_lote, sequencial) ⇒ Object
Campos 17.3Q, 18.3Q e 19.3Q - Beneficiario Final. Manual Sicredi: nao havendo Beneficiario Final o tipo deve ser "0" e o campo CPF/CNPJ (posicoes 155-169) deve ficar em branco. O BRCobranca preenche o CPF/CNPJ com zeros quando nao informado.
191 192 193 194 195 196 197 |
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 191 def monta_segmento_q(pagamento, nro_lote, sequencial) segmento_q = super return segmento_q unless pagamento.documento_avalista.to_s.strip.empty? segmento_q[153, 16] = "0#{''.rjust(15, ' ')}" segmento_q end |
#monta_trailer_arquivo(nro_lotes, sequencial) ⇒ String
Monta o registro trailer do arquivo
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 120 def monta_trailer_arquivo(nro_lotes, sequencial) # CAMPO TAMANHO # codigo banco 3 # lote de servico 4 # tipo de registro 1 # uso FEBRABAN 9 # nro de lotes 6 # nro de registros(linhas) 6 # uso FEBRABAN 211 "#{cod_banco}99999#{''.rjust(9, ' ')}#{nro_lotes.to_s.rjust(6, '0')}#{sequencial.to_s.rjust(6, '0')}#{''.rjust(6, '0')}#{''.rjust( 205, ' ' )}" end |
#nome_banco ⇒ Object
38 39 40 |
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 38 def nome_banco 'SICREDI'.ljust(30, ' ') end |
#numero(pagamento) ⇒ Object
Campo 19.3P - Seu Numero (posicoes 63-77). Manual Sicredi: "Embora no layout constem 15 posicoes, o Sicredi apenas validara as 10 primeiras (campos 63-72), ou seja, da esquerda para a direita. Nao pode conter espaco." O numero deve entao ser alinhado a esquerda e o restante preenchido com zeros (o campo nao pode conter espaco).
183 184 185 |
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 183 def numero(pagamento) pagamento.documento_ou_numero.to_s.gsub(/[^0-9A-Za-z]/, '').ljust(15, '0')[0...15] end |
#uso_exclusivo_banco ⇒ Object
62 63 64 |
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 62 def uso_exclusivo_banco ''.rjust(20, ' ') end |
#uso_exclusivo_empresa ⇒ Object
66 67 68 |
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 66 def uso_exclusivo_empresa ''.rjust(20, ' ') end |
#versao_layout_arquivo ⇒ Object
42 43 44 |
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 42 def versao_layout_arquivo '081' end |
#versao_layout_lote ⇒ Object
46 47 48 |
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 46 def versao_layout_lote '040' end |