Class: Brcobranca::Remessa::Pagamento

Inherits:
Object
  • Object
show all
Includes:
Validations
Defined in:
lib/brcobranca/remessa/pagamento.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Validations

#errors, included, #invalid?, #valid?

Constructor Details

#initialize(campos = {}) {|_self| ... } ⇒ Pagamento

Nova instancia da classe Pagamento

Parameters:

  • campos (Hash) (defaults to: {})

Yields:

  • (_self)

Yield Parameters:


102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# File 'lib/brcobranca/remessa/pagamento.rb', line 102

def initialize(campos = {})
  padrao = {
    data_emissao: Date.current,
    data_segundo_desconto:'00-00-00',
    tipo_mora: "3",
    valor_mora: 0.0,
    valor_desconto: 0.0,
    valor_segundo_desconto: 0.0,
    valor_iof: 0.0,
    valor_abatimento: 0.0,
    nome_avalista: '',
    cod_desconto: '0',
    especie_titulo: '01',
    identificacao_ocorrencia: '01',
    codigo_multa: '0',
    percentual_multa: 0.0,
    parcela: '01',
    codigo_protesto: '3',
    dias_protesto: '00',
    codigo_baixa: '0',
    dias_baixa: '000',
    cod_primeira_instrucao: '00',
    cod_segunda_instrucao: '00'
  }

  campos = padrao.merge!(campos)
  campos.each do |campo, valor|
    send "#{campo}=", valor
  end

  yield self if block_given?
end

Instance Attribute Details

#bairro_sacadoObject

REQUERIDO: bairro do sacado (cliente)


23
24
25
# File 'lib/brcobranca/remessa/pagamento.rb', line 23

def bairro_sacado
  @bairro_sacado
end

#cep_sacadoObject

REQUERIDO: CEP do sacado (cliente)


25
26
27
# File 'lib/brcobranca/remessa/pagamento.rb', line 25

def cep_sacado
  @cep_sacado
end

#cidade_sacadoObject

REQUERIDO: cidade do sacado (cliente)


27
28
29
# File 'lib/brcobranca/remessa/pagamento.rb', line 27

def cidade_sacado
  @cidade_sacado
end

#cod_descontoObject

OPCIONAL: codigo do desconto (para CNAB240)


47
48
49
# File 'lib/brcobranca/remessa/pagamento.rb', line 47

def cod_desconto
  @cod_desconto
end

#cod_primeira_instrucaoObject

OPCIONAL: codigo da 1a instrucao


37
38
39
# File 'lib/brcobranca/remessa/pagamento.rb', line 37

def cod_primeira_instrucao
  @cod_primeira_instrucao
end

#cod_segunda_instrucaoObject

OPCIONAL: codigo da 2a instrucao


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

def cod_segunda_instrucao
  @cod_segunda_instrucao
end

#codigo_baixaObject

OPCIONAL: codigo baixa


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

def codigo_baixa
  @codigo_baixa
end

#codigo_jurosObject

OPCIONAL: codigo dos juros


77
78
79
# File 'lib/brcobranca/remessa/pagamento.rb', line 77

def codigo_juros
  @codigo_juros
end

#codigo_multaObject

OPCIONAL: código da multa


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

def codigo_multa
  @codigo_multa
end

#codigo_protestoObject

OPCIONAL: codigo do protesto


79
80
81
# File 'lib/brcobranca/remessa/pagamento.rb', line 79

def codigo_protesto
  @codigo_protesto
end

#data_descontoObject

OPCIONAL: data limite para o desconto


43
44
45
# File 'lib/brcobranca/remessa/pagamento.rb', line 43

def data_desconto
  @data_desconto
end

#data_emissaoObject

REQUERIDO: data de emissao do boleto


13
14
15
# File 'lib/brcobranca/remessa/pagamento.rb', line 13

def data_emissao
  @data_emissao
end

#data_moraObject

OPCIONAL: Data para cobrança de mora


75
76
77
# File 'lib/brcobranca/remessa/pagamento.rb', line 75

def data_mora
  @data_mora
end

#data_multaObject

OPCIONAL: Data para cobrança de multa


71
72
73
# File 'lib/brcobranca/remessa/pagamento.rb', line 71

def data_multa
  @data_multa
end

#data_segundo_descontoObject

OPCIONAL: data limite para o desconto


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

def data_segundo_desconto
  @data_segundo_desconto
end

#data_vencimentoObject

REQUERIDO: data do vencimento do boleto


11
12
13
# File 'lib/brcobranca/remessa/pagamento.rb', line 11

def data_vencimento
  @data_vencimento
end

#dias_baixaObject

OPCIONAL: dias para baixa


85
86
87
# File 'lib/brcobranca/remessa/pagamento.rb', line 85

def dias_baixa
  @dias_baixa
end

#dias_protestoObject

OPCIONAL: dias para protesto


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

def dias_protesto
  @dias_protesto
end

#documentoObject

OPCIONAL: Número utilizado para controle do beneficiário/cedente


59
60
61
# File 'lib/brcobranca/remessa/pagamento.rb', line 59

def documento
  @documento
end

#documento_avalistaObject

OPCIONAL: documento do avalista


35
36
37
# File 'lib/brcobranca/remessa/pagamento.rb', line 35

def documento_avalista
  @documento_avalista
end

#documento_sacadoObject

REQUERIDO: documento do sacado (cliente)


17
18
19
# File 'lib/brcobranca/remessa/pagamento.rb', line 17

def documento_sacado
  @documento_sacado
end

#endereco_sacadoObject

REQUERIDO: endereco do sacado (cliente)


21
22
23
# File 'lib/brcobranca/remessa/pagamento.rb', line 21

def endereco_sacado
  @endereco_sacado
end

#especie_tituloObject

OPCIONAL: espécie do título


65
66
67
# File 'lib/brcobranca/remessa/pagamento.rb', line 65

def especie_titulo
  @especie_titulo
end

#identificacao_ocorrenciaObject

REQUERIDO: Código da ocorrência


31
32
33
# File 'lib/brcobranca/remessa/pagamento.rb', line 31

def identificacao_ocorrencia
  @identificacao_ocorrencia
end

#nome_avalistaObject

OPCIONAL: nome do avalista


33
34
35
# File 'lib/brcobranca/remessa/pagamento.rb', line 33

def nome_avalista
  @nome_avalista
end

#nome_sacadoObject

REQUERIDO: nome do sacado (cliente)


19
20
21
# File 'lib/brcobranca/remessa/pagamento.rb', line 19

def nome_sacado
  @nome_sacado
end

#nosso_numeroObject

REQUERIDO: nosso numero


9
10
11
# File 'lib/brcobranca/remessa/pagamento.rb', line 9

def nosso_numero
  @nosso_numero
end

#numeroObject

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


57
58
59
# File 'lib/brcobranca/remessa/pagamento.rb', line 57

def numero
  @numero
end

#parcelaObject

OPCIONAL: Número da Parcela


87
88
89
# File 'lib/brcobranca/remessa/pagamento.rb', line 87

def parcela
  @parcela
end

#percentual_multaObject

OPCIONAL: Percentual multa por atraso %


69
70
71
# File 'lib/brcobranca/remessa/pagamento.rb', line 69

def percentual_multa
  @percentual_multa
end

#tipo_moraObject

OPCIONAL: tipo de mora (diário, mensal)


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

def tipo_mora
  @tipo_mora
end

#uf_sacadoObject

REQUERIDO: UF do sacado (cliente)


29
30
31
# File 'lib/brcobranca/remessa/pagamento.rb', line 29

def uf_sacado
  @uf_sacado
end

#valorObject

REQUERIDO: valor do boleto


15
16
17
# File 'lib/brcobranca/remessa/pagamento.rb', line 15

def valor
  @valor
end

#valor_abatimentoObject

OPCIONAL: valor do abatimento


51
52
53
# File 'lib/brcobranca/remessa/pagamento.rb', line 51

def valor_abatimento
  @valor_abatimento
end

#valor_descontoObject

OPCIONAL: valor a ser concedido de desconto


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

def valor_desconto
  @valor_desconto
end

#valor_iofObject

OPCIONAL: valor do IOF


49
50
51
# File 'lib/brcobranca/remessa/pagamento.rb', line 49

def valor_iof
  @valor_iof
end

#valor_moraObject

OPCIONAL: valor da mora ao dia


41
42
43
# File 'lib/brcobranca/remessa/pagamento.rb', line 41

def valor_mora
  @valor_mora
end

#valor_segundo_descontoObject

OPCIONAL: valor a ser concedido de desconto


63
64
65
# File 'lib/brcobranca/remessa/pagamento.rb', line 63

def valor_segundo_desconto
  @valor_segundo_desconto
end

Instance Method Details

#documento_ou_numeroObject


199
200
201
# File 'lib/brcobranca/remessa/pagamento.rb', line 199

def documento_ou_numero
  documento.present? ? documento : numero
end

#formata_data_desconto(formato = '%d%m%y') ⇒ String

Formata a data de desconto de acordo com o formato passado

Returns:

  • (String)

139
140
141
142
143
144
145
146
147
# File 'lib/brcobranca/remessa/pagamento.rb', line 139

def formata_data_desconto(formato = '%d%m%y')
  data_desconto.strftime(formato)
rescue
  if formato == '%d%m%y'
    '000000'
  else
    '00000000'
  end
end

#formata_data_multa(formato = '%d%m%y') ⇒ String

Formata a data de cobrança da multa

Returns:

  • (String)

178
179
180
181
182
183
184
185
186
# File 'lib/brcobranca/remessa/pagamento.rb', line 178

def formata_data_multa(formato = '%d%m%y')
  data_multa.strftime(formato)
rescue
  if formato == '%d%m%y'
    '000000'
  else
    '00000000'
  end
end

#formata_data_segundo_desconto(formato = '%d%m%y') ⇒ String

Formata a data de segundo desconto de acordo com o formato passado

Returns:

  • (String)

153
154
155
156
157
158
159
160
161
# File 'lib/brcobranca/remessa/pagamento.rb', line 153

def formata_data_segundo_desconto(formato = '%d%m%y')
  data_segundo_desconto.strftime(formato)
rescue
  if formato == '%d%m%y'
    '000000'
  else
    '00000000'
  end
end

#formata_documento_ou_numero(tamanho = 25, caracter = ' ') ⇒ Object


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

def formata_documento_ou_numero(tamanho = 25, caracter = ' ')
  doc = documento_ou_numero.to_s.gsub(/[^0-9A-Za-z ]/, '')
  doc.rjust(tamanho, caracter)[0...tamanho]
end

#formata_percentual_multa(tamanho = 4) ⇒ String

Formata a valor do percentual da multa

Parameters:

  • tamanho (Integer) (defaults to: 4)

    quantidade de caracteres a ser retornado

Returns:

  • (String)

170
171
172
# File 'lib/brcobranca/remessa/pagamento.rb', line 170

def formata_percentual_multa(tamanho = 4)
  format_value(percentual_multa, tamanho)
end

#formata_valor(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


195
196
197
# File 'lib/brcobranca/remessa/pagamento.rb', line 195

def formata_valor(tamanho = 13)
  format_value(valor, tamanho)
end

#formata_valor_abatimento(tamanho = 13) ⇒ Object

Formata o campo valor do IOF

Parameters:

  • tamanho (Integer) (defaults to: 13)

    quantidade de caracteres a ser retornado


258
259
260
# File 'lib/brcobranca/remessa/pagamento.rb', line 258

def formata_valor_abatimento(tamanho = 13)
  format_value(valor_abatimento, tamanho)
end

#formata_valor_desconto(tamanho = 13) ⇒ Object

Formata o campo valor do desconto

Parameters:

  • tamanho (Integer) (defaults to: 13)

    quantidade de caracteres a ser retornado


231
232
233
# File 'lib/brcobranca/remessa/pagamento.rb', line 231

def formata_valor_desconto(tamanho = 13)
  format_value(valor_desconto, tamanho)
end

#formata_valor_iof(tamanho = 13) ⇒ Object

Formata o campo valor do IOF

Parameters:

  • tamanho (Integer) (defaults to: 13)

    quantidade de caracteres a ser retornado


249
250
251
# File 'lib/brcobranca/remessa/pagamento.rb', line 249

def formata_valor_iof(tamanho = 13)
  format_value(valor_iof, tamanho)
end

#formata_valor_mora(tamanho = 13) ⇒ Object

Formata o campo valor da mora

Parameters:

  • tamanho (Integer) (defaults to: 13)

    quantidade de caracteres a ser retornado


213
214
215
# File 'lib/brcobranca/remessa/pagamento.rb', line 213

def formata_valor_mora(tamanho = 13)
  format_value(valor_mora, tamanho)
end

#formata_valor_multa(tamanho = 6) ⇒ Object

Formata o campo valor da multa

Parameters:

  • tamanho (Integer) (defaults to: 6)

    quantidade de caracteres a ser retornado


222
223
224
# File 'lib/brcobranca/remessa/pagamento.rb', line 222

def formata_valor_multa(tamanho = 6)
  format_value(percentual_multa, tamanho)
end

#formata_valor_segundo_desconto(tamanho = 13) ⇒ Object

Formata o campo valor do segundo desconto

Parameters:

  • tamanho (Integer) (defaults to: 13)

    quantidade de caracteres a ser retornado


240
241
242
# File 'lib/brcobranca/remessa/pagamento.rb', line 240

def formata_valor_segundo_desconto(tamanho = 13)
  format_value(valor_segundo_desconto, tamanho)
end

#identificacao_avalista(zero = true) ⇒ Object

Retorna a identificacao do avalista Se for pessoa fisica (CPF com 11 digitos) é 1 Se for juridica (CNPJ com 14 digitos) é 2


274
275
276
277
# File 'lib/brcobranca/remessa/pagamento.rb', line 274

def identificacao_avalista(zero = true)
  return '0' if documento_avalista.nil?
  Brcobranca::Util::Empresa.new(documento_avalista, zero).tipo
end

#identificacao_sacado(zero = true) ⇒ Object

Retorna a identificacao do pagador Se for pessoa fisica (CPF com 11 digitos) é 1 Se for juridica (CNPJ com 14 digitos) é 2


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

def identificacao_sacado(zero = true)
  Brcobranca::Util::Empresa.new(documento_sacado, zero).tipo
end