Class: BrBoleto::Remessa::Pagamento

Inherits:
ActiveModelBase show all
Includes:
HavePagador
Defined in:
lib/br_boleto/remessa/pagamento.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from HavePagador

#pagador, #pagador=

Methods inherited from ActiveModelBase

#assign_attributes, #initialize

Constructor Details

This class inherits a constructor from BrBoleto::ActiveModelBase

Instance Attribute Details

#aceiteObject

Aceite título “0” = Sem aceite / “1” = Com aceite“ / Depende de ”N“ = Sem aceite / ”S“ = Com aceite” \ cada banco “N” = Sem aceite / “A” = Com aceite“ \

CNAB: 240 e 400

Setar true para Aceite e false para Não aceite



168
169
170
# File 'lib/br_boleto/remessa/pagamento.rb', line 168

def aceite
  @aceite
end

#cod_descontoObject

OPCIONAL: codigo do desconto (para CNAB240)



61
62
63
# File 'lib/br_boleto/remessa/pagamento.rb', line 61

def cod_desconto
  @cod_desconto
end

#cod_primeira_instrucaoObject

OPCIONAL: codigo da 1a instrucao



42
43
44
# File 'lib/br_boleto/remessa/pagamento.rb', line 42

def cod_primeira_instrucao
  @cod_primeira_instrucao
end

#cod_segunda_instrucaoObject

OPCIONAL: codigo da 2a instrucao



45
46
47
# File 'lib/br_boleto/remessa/pagamento.rb', line 45

def cod_segunda_instrucao
  @cod_segunda_instrucao
end

#codigo_jurosObject

OPCIONAL: Informações para Juros

Código do juros pode ser:
    - '1' Valor por Dia
    - '2' Taxa Mensal
    - '3' Isento
    - E Ainda alguns bancos como o SICOOB não conseguem seguir o padrão e usam o cód '0' para Isento


94
95
96
# File 'lib/br_boleto/remessa/pagamento.rb', line 94

def codigo_juros
  @codigo_juros
end

#codigo_moedaObject

Moeda ‘9’ = Real

CNAB: 400


173
174
175
# File 'lib/br_boleto/remessa/pagamento.rb', line 173

def codigo_moeda
  @codigo_moeda
end

#codigo_multaObject

OPCIONAL: Informações para multa

Código da multa pode ser:
    - '1' Valor por Dia
    - '2' Taxa Mensal
    - '3' Isento
    - E Ainda alguns bancos como o SICOOB não conseguem seguir o padrão e usam o cód '0' para Isento


81
82
83
# File 'lib/br_boleto/remessa/pagamento.rb', line 81

def codigo_multa
  @codigo_multa
end

#data_descontoObject

OPCIONAL: data limite para o desconto CNAB: 240 e 400



54
55
56
# File 'lib/br_boleto/remessa/pagamento.rb', line 54

def data_desconto
  @data_desconto
end

#data_emissaoObject

REQUERIDO: data de emissao do boleto CNAB: 240 e 400



28
29
30
# File 'lib/br_boleto/remessa/pagamento.rb', line 28

def data_emissao
  @data_emissao
end

#data_jurosObject

OPCIONAL: Informações para Juros

Código do juros pode ser:
    - '1' Valor por Dia
    - '2' Taxa Mensal
    - '3' Isento
    - E Ainda alguns bancos como o SICOOB não conseguem seguir o padrão e usam o cód '0' para Isento


94
95
96
# File 'lib/br_boleto/remessa/pagamento.rb', line 94

def data_juros
  @data_juros
end

#data_multaObject

OPCIONAL: Informações para multa

Código da multa pode ser:
    - '1' Valor por Dia
    - '2' Taxa Mensal
    - '3' Isento
    - E Ainda alguns bancos como o SICOOB não conseguem seguir o padrão e usam o cód '0' para Isento


81
82
83
# File 'lib/br_boleto/remessa/pagamento.rb', line 81

def data_multa
  @data_multa
end

#data_vencimentoObject

REQUERIDO: data do vencimento do boleto CNAB: 240 e 400



24
25
26
# File 'lib/br_boleto/remessa/pagamento.rb', line 24

def data_vencimento
  @data_vencimento
end

#desconto_2_codigoObject

OPCIONAL: Informações para o desconto 2



70
71
72
# File 'lib/br_boleto/remessa/pagamento.rb', line 70

def desconto_2_codigo
  @desconto_2_codigo
end

#desconto_2_dataObject

OPCIONAL: Informações para o desconto 2



70
71
72
# File 'lib/br_boleto/remessa/pagamento.rb', line 70

def desconto_2_data
  @desconto_2_data
end

#desconto_2_valorObject

OPCIONAL: Informações para o desconto 2



70
71
72
# File 'lib/br_boleto/remessa/pagamento.rb', line 70

def desconto_2_valor
  @desconto_2_valor
end

#desconto_3_codigoObject

OPCIONAL: Informações para o desconto 3



73
74
75
# File 'lib/br_boleto/remessa/pagamento.rb', line 73

def desconto_3_codigo
  @desconto_3_codigo
end

#desconto_3_dataObject

OPCIONAL: Informações para o desconto 3



73
74
75
# File 'lib/br_boleto/remessa/pagamento.rb', line 73

def desconto_3_data
  @desconto_3_data
end

#desconto_3_valorObject

OPCIONAL: Informações para o desconto 3



73
74
75
# File 'lib/br_boleto/remessa/pagamento.rb', line 73

def desconto_3_valor
  @desconto_3_valor
end

#distribuicao_boletoObject

Identificação da Distribuição Código adotado pela FEBRABAN para identificar o responsável pela distribuição do Boleto de Pagamento. Domínio: ‘1’ = Banco Distribui ‘2’ = Cliente Distribui ‘3’ = Banco envia e-mail ‘4’ = Banco envia SMS



203
204
205
# File 'lib/br_boleto/remessa/pagamento.rb', line 203

def distribuicao_boleto
  @distribuicao_boleto
end

#emissao_boletoObject

Identificação da Emissão do Boleto de Pagamento Código adotado pela FEBRABAN para identificar o responsável e a forma de emissão do Boleto de Pagamento. Domínio: ‘1’ = Banco Emite ‘2’ = Cliente Emite ‘3’ = Banco Pré-emite e Cliente Complementa ‘4’ = Banco Reemite ‘5’ = Banco Não Reemite ‘7’ = Banco Emitente - Aberta ‘8’ = Banco Emitente - Auto-envelopável Os códigos ‘4’ e ‘5’ só serão aceitos para código de movimento para remessa ‘31’



193
194
195
# File 'lib/br_boleto/remessa/pagamento.rb', line 193

def emissao_boleto
  @emissao_boleto
end

#especie_tituloObject

Espécie do Título: Default: 01

01 = Duplicata Mercantil
02 = Nota Promissória
03 = Nota de Seguro
05 = Recibo
06 = Duplicata Rural
08 = Letra de Câmbio
09 = Warrant
10 = Cheque
12 = Duplicata de Serviço
13 = Nota de Débito
14 = Triplicata Mercantil
15 = Triplicata de Serviço
18 = Fatura
20 = Apólice de Seguro
21 = Mensalidade Escolar
22 = Parcela de Consórcio
99 = Outros
CNAB: 240 e 400


160
161
162
# File 'lib/br_boleto/remessa/pagamento.rb', line 160

def especie_titulo
  @especie_titulo
end

#forma_cadastramentoObject

forma de cadastramento dos titulos (campo nao tratado pelo Banco do Brasil)

opcoes:
  1 - com cadastramento (cobrança registrada)
  2 - sem cadastramento (cobrança sem registro)


179
180
181
# File 'lib/br_boleto/remessa/pagamento.rb', line 179

def forma_cadastramento
  @forma_cadastramento
end

#identificacao_ocorrenciaObject

Comando/Identificação da cobrança/Movimento Default: ‘01’ Exemplos de valores 01 - Registro de títulos 02 - Solicitação de baixa 03 - Pedido de débito em conta 04 - Concessão de abatimento 05 - Cancelamento de abatimento 06 - Alteração de vencimento de título 07 - Alteração do número de controle do participante 08 - Alteração do número do titulo dado pelo cedente 09 - Instrução para protestar (Nota 09) 10 - Instrução para sustar protesto 11 - Instrução para dispensar juros 12 - Alteração de nome e endereço do Sacado 16 – Alterar Juros de Mora (Vide Observações) 31 - Conceder desconto 32 - Não conceder desconto 33 - Retificar dados da concessão de desconto 34 - Alterar data para concessão de desconto 35 - Cobrar multa (Nota 11) 36 - Dispensar multa (Nota 11) 37 - Dispensar indexador 38 - Dispensar prazo limite de recebimento (Nota 11) 39 - Alterar prazo limite de recebimento (Nota 11) 40 – Alterar modalidade (Vide Observações) CNAB: 400



138
139
140
# File 'lib/br_boleto/remessa/pagamento.rb', line 138

def identificacao_ocorrencia
  @identificacao_ocorrencia
end

#nosso_numeroObject

REQUERIDO: nosso numero CNAB: 240 e 400



12
13
14
# File 'lib/br_boleto/remessa/pagamento.rb', line 12

def nosso_numero
  @nosso_numero
end

#numero_documentoObject

OPCIONAL: Número do Documento de Cobrança - Número adotado e controlado pelo Cliente, para identificar o título de cobrança. Informação utilizada para referenciar a identificação do documento objeto de cobrança. Poderá conter número de duplicata, no caso de cobrança de duplicatas; número da apólice, no caso de cobrança de seguros, etc CNAB: 240 e 400



20
21
22
# File 'lib/br_boleto/remessa/pagamento.rb', line 20

def numero_documento
  @numero_documento
end

#parcelaObject

OPCIONAL: Número da parquela que o pagamento representa Padrão: 1 CNAB: 240 e 400



104
105
106
# File 'lib/br_boleto/remessa/pagamento.rb', line 104

def parcela
  @parcela
end

#tipo_emissaoObject

Tipo de Emissão: 1-Banco/Cooperativa 2-Cliente Banco Sicoob utiliza CNAB: 240 e 400



109
110
111
# File 'lib/br_boleto/remessa/pagamento.rb', line 109

def tipo_emissao
  @tipo_emissao
end

#tipo_impressaoObject

REQUERIDO: Tipor de impressão

1 - Frente do Bloqueto
2 - Verso do Bloauqto
3 - Corpo de instruções da Ficha de Complansação


39
40
41
# File 'lib/br_boleto/remessa/pagamento.rb', line 39

def tipo_impressao
  @tipo_impressao
end

#valid_cod_desconto_lengthObject

Returns the value of attribute valid_cod_desconto_length.



209
210
211
# File 'lib/br_boleto/remessa/pagamento.rb', line 209

def valid_cod_desconto_length
  @valid_cod_desconto_length
end

#valid_distribuicao_boleto_lengthObject

Returns the value of attribute valid_distribuicao_boleto_length.



215
216
217
# File 'lib/br_boleto/remessa/pagamento.rb', line 215

def valid_distribuicao_boleto_length
  @valid_distribuicao_boleto_length
end

#valid_emissao_boleto_lengthObject

Returns the value of attribute valid_emissao_boleto_length.



212
213
214
# File 'lib/br_boleto/remessa/pagamento.rb', line 212

def valid_emissao_boleto_length
  @valid_emissao_boleto_length
end

#valid_tipo_impressao_requiredObject

VALIDAÇÕES PERSONALIZADAS ########################



206
207
208
# File 'lib/br_boleto/remessa/pagamento.rb', line 206

def valid_tipo_impressao_required
  @valid_tipo_impressao_required
end

#valor_abatimentoObject

OPCIONAL: valor do abatimento



67
68
69
# File 'lib/br_boleto/remessa/pagamento.rb', line 67

def valor_abatimento
  @valor_abatimento
end

#valor_descontoObject

OPCIONAL: valor a ser concedido de desconto CNAB: 240 e 400



58
59
60
# File 'lib/br_boleto/remessa/pagamento.rb', line 58

def valor_desconto
  @valor_desconto
end

#valor_documentoObject

REQUERIDO: valor_documento do boleto CNAB: 240 e 400



32
33
34
# File 'lib/br_boleto/remessa/pagamento.rb', line 32

def valor_documento
  @valor_documento
end

#valor_iofObject

OPCIONAL: valor do IOF



64
65
66
# File 'lib/br_boleto/remessa/pagamento.rb', line 64

def valor_iof
  @valor_iof
end

#valor_jurosObject

Valor R$



95
96
97
# File 'lib/br_boleto/remessa/pagamento.rb', line 95

def valor_juros
  @valor_juros
end

#valor_moraObject

OPCIONAL: valor da mora ao dia Dependendo do banco será o valor percentual ou valor em reais CNAB: 240 e 400



50
51
52
# File 'lib/br_boleto/remessa/pagamento.rb', line 50

def valor_mora
  @valor_mora
end

#valor_multaObject

CNAB 240 e 400



83
84
85
# File 'lib/br_boleto/remessa/pagamento.rb', line 83

def valor_multa
  @valor_multa
end

Instance Method Details

#data_desconto_formatado(formato = '%d%m%Y') ⇒ String

Formata a data de descontos de acordo com o formato passado

Returns:

  • (String)


277
278
279
# File 'lib/br_boleto/remessa/pagamento.rb', line 277

def data_desconto_formatado(formato = '%d%m%Y')
	formata_data(data_desconto, formato)
end

#data_emissao_formatado(formato = '%d%m%Y') ⇒ Object



269
270
271
# File 'lib/br_boleto/remessa/pagamento.rb', line 269

def data_emissao_formatado(formato='%d%m%Y')
	formata_data(data_emissao, formato)
end

#data_juros_formatado(formato = '%d%m%Y') ⇒ Object

Formatação para campos da juros



296
297
298
# File 'lib/br_boleto/remessa/pagamento.rb', line 296

def data_juros_formatado(formato = '%d%m%Y')
	formata_data(data_juros, formato)
end

#data_multa_formatado(formato = '%d%m%Y') ⇒ Object

Formatação para campos da multa



288
289
290
# File 'lib/br_boleto/remessa/pagamento.rb', line 288

def data_multa_formatado(formato = '%d%m%Y')
	formata_data(data_multa, formato)
end

#data_vencimento_formatado(formato = '%d%m%Y') ⇒ Object



266
267
268
# File 'lib/br_boleto/remessa/pagamento.rb', line 266

def data_vencimento_formatado(formato='%d%m%Y')
	formata_data(data_vencimento, formato)
end

#default_valuesObject



238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
# File 'lib/br_boleto/remessa/pagamento.rb', line 238

def default_values
	{
		data_emissao:      Date.today,
		valor_mora:        0.0,
		valor_desconto:    0.0,
		valor_iof:         0.0,
		valor_abatimento:  0.0,
		cod_desconto:      '0',
		desconto_2_codigo: '0',
		desconto_2_valor:  0.0,
		desconto_3_codigo: '0',
		desconto_3_valor:  0.0,
		codigo_multa:      '3', # Isento
		codigo_juros:      '3', # Isento
		valor_multa:       0.0,
		valor_juros:       0.0,
		parcela:           '1',
		tipo_impressao:    '1',
		tipo_emissao:      '2',
		identificacao_ocorrencia: '01',
		especie_titulo:           '01',
		codigo_moeda:             '9',
		forma_cadastramento:      '0',
		emissao_boleto:           '2',
		distribuicao_boleto:      '2',
	}
end

#desconto_2_data_formatado(formato = '%d%m%Y') ⇒ Object



280
281
282
# File 'lib/br_boleto/remessa/pagamento.rb', line 280

def desconto_2_data_formatado(formato = '%d%m%Y')
	formata_data(desconto_2_data, formato)
end

#desconto_2_valor_formatado(tamanho = 13) ⇒ Object



331
332
333
# File 'lib/br_boleto/remessa/pagamento.rb', line 331

def desconto_2_valor_formatado(tamanho = 13)
	BrBoleto::Helper::Number.new(desconto_2_valor).formata_valor_monetario(tamanho) 
end

#desconto_3_data_formatado(formato = '%d%m%Y') ⇒ Object



283
284
285
# File 'lib/br_boleto/remessa/pagamento.rb', line 283

def desconto_3_data_formatado(formato = '%d%m%Y')
	formata_data(desconto_3_data, formato)
end

#desconto_3_valor_formatado(tamanho = 13) ⇒ Object



334
335
336
# File 'lib/br_boleto/remessa/pagamento.rb', line 334

def desconto_3_valor_formatado(tamanho = 13)
	BrBoleto::Helper::Number.new(desconto_3_valor).formata_valor_monetario(tamanho) 
end

#moeda_real?Boolean

Returns:

  • (Boolean)


219
220
221
# File 'lib/br_boleto/remessa/pagamento.rb', line 219

def moeda_real?
	"#{codigo_moeda}" == '9'
end

#percentual_jurosObject

É calculado em base no valor do juros



97
98
99
# File 'lib/br_boleto/remessa/pagamento.rb', line 97

def percentual_juros # Valor % Ex: 2.5% = 2.5
	BrBoleto::Helper::Number.new(valor_juros).get_percent_by_total(valor_documento)
end

#percentual_juros_formatado(tamanho = 6) ⇒ Object

Formata o valor percentual do juros Ex:

2.5%    = 2.5  = 025000
21.567% = 21.5 = 215670


370
371
372
# File 'lib/br_boleto/remessa/pagamento.rb', line 370

def percentual_juros_formatado(tamanho = 6)
	BrBoleto::Helper::Number.new(percentual_juros).formata_valor_percentual(tamanho).adjust_size_to(tamanho, '0')
end

#percentual_multaObject

Valor % Ex: 2.5% = 2.5



84
85
86
# File 'lib/br_boleto/remessa/pagamento.rb', line 84

def percentual_multa # Valor % Ex: 2.5% = 2.5
	BrBoleto::Helper::Number.new(valor_multa).get_percent_by_total(valor_documento)
end

#percentual_multa_formatado(tamanho = 6) ⇒ Object

Formata o valor percentual da multa Ex:

2.5%    = 2.5  = 025000
21.567% = 21.5 = 215670


361
362
363
# File 'lib/br_boleto/remessa/pagamento.rb', line 361

def percentual_multa_formatado(tamanho = 6)
	BrBoleto::Helper::Number.new(percentual_multa).formata_valor_percentual(tamanho).adjust_size_to(tamanho, '0')
end

#valor_abatimento_formatado(tamanho = 13) ⇒ Object

Formata o campo valor do IOF

CNAB: 240 e 400

Parameters:

  • tamanho (Integer) (defaults to: 13)

    quantidade de caracteres a ser retornado



352
353
354
# File 'lib/br_boleto/remessa/pagamento.rb', line 352

def valor_abatimento_formatado(tamanho = 13)
	BrBoleto::Helper::Number.new(valor_abatimento).formata_valor_monetario(tamanho) 
end

#valor_desconto_formatado(tamanho = 13) ⇒ Object

Formata o campo valor dos descontos

Parameters:

  • tamanho (Integer) (defaults to: 13)

    quantidade de caracteres a ser retornado



328
329
330
# File 'lib/br_boleto/remessa/pagamento.rb', line 328

def valor_desconto_formatado(tamanho = 13)
	BrBoleto::Helper::Number.new(valor_desconto).formata_valor_monetario(tamanho) 
end

#valor_documento_formatado(tamanho = 13) ⇒ Object

Formata o campo valor referentes as casas decimais exe. R$199,90 => 0000000019990

Parameters:

  • tamanho (Integer) (defaults to: 13)

    quantidade de caracteres a ser retornado



310
311
312
# File 'lib/br_boleto/remessa/pagamento.rb', line 310

def valor_documento_formatado(tamanho = 13)
	BrBoleto::Helper::Number.new(valor_documento).formata_valor_monetario(tamanho) 
end

#valor_iof_formatado(tamanho = 13) ⇒ Object

Formata o campo valor do IOF

Parameters:

  • tamanho (Integer) (defaults to: 13)

    quantidade de caracteres a ser retornado



343
344
345
# File 'lib/br_boleto/remessa/pagamento.rb', line 343

def valor_iof_formatado(tamanho = 13)
	BrBoleto::Helper::Number.new(valor_iof).formata_valor_monetario(tamanho) 
end

#valor_juros_formatado(tamanho = 13) ⇒ Object



299
300
301
# File 'lib/br_boleto/remessa/pagamento.rb', line 299

def valor_juros_formatado(tamanho=13)
	BrBoleto::Helper::Number.new(valor_juros).formata_valor_monetario(tamanho) 
end

#valor_mora_formatado(tamanho = 13) ⇒ Object

Formata o campo valor da mora

Parameters:

  • tamanho (Integer) (defaults to: 13)

    quantidade de caracteres a ser retornado



319
320
321
# File 'lib/br_boleto/remessa/pagamento.rb', line 319

def valor_mora_formatado(tamanho = 13)
	BrBoleto::Helper::Number.new(valor_mora).formata_valor_monetario(tamanho) 
end

#valor_multa_formatado(tamanho = 13) ⇒ Object



291
292
293
# File 'lib/br_boleto/remessa/pagamento.rb', line 291

def valor_multa_formatado(tamanho=13)
	BrBoleto::Helper::Number.new(valor_multa).formata_valor_monetario(tamanho) 
end