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:



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
134
135
136
137
138
139
# File 'lib/brcobranca/remessa/pagamento.rb', line 106

def initialize(campos = {})
  padrao = {
    data_emissao: Date.current,
    data_segundo_desconto: '00-00-00',
    data_terceiro_desconto: '00-00-00',
    tipo_mora: '3',
    valor_mora: 0.0,
    valor_desconto: 0.0,
    valor_segundo_desconto: 0.0,
    valor_terceiro_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



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

def codigo_baixa
  @codigo_baixa
end

#codigo_jurosObject

OPCIONAL: codigo dos juros



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

def codigo_juros
  @codigo_juros
end

#codigo_multaObject

OPCIONAL: código da multa



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

def codigo_multa
  @codigo_multa
end

#codigo_protestoObject

OPCIONAL: codigo do protesto



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

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



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

def data_mora
  @data_mora
end

#data_multaObject

OPCIONAL: Data para cobrança de multa



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

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_terceiro_descontoObject

OPCIONAL: data limite para o terceiro desconto



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

def data_terceiro_desconto
  @data_terceiro_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



89
90
91
# File 'lib/brcobranca/remessa/pagamento.rb', line 89

def dias_baixa
  @dias_baixa
end

#dias_protestoObject

OPCIONAL: dias para protesto



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

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



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

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



91
92
93
# File 'lib/brcobranca/remessa/pagamento.rb', line 91

def parcela
  @parcela
end

#percentual_multaObject

OPCIONAL: Percentual multa por atraso %



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

def percentual_multa
  @percentual_multa
end

#tipo_moraObject

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



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

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

#valor_terceiro_descontoObject

OPCIONAL: valor a ser concedido de desconto



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

def valor_terceiro_desconto
  @valor_terceiro_desconto
end

Instance Method Details

#documento_ou_numeroObject



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

def documento_ou_numero
  documento || numero
end

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

Formata a data de desconto de acordo com o formato passado

Returns:

  • (String)


145
146
147
148
149
150
151
152
153
# File 'lib/brcobranca/remessa/pagamento.rb', line 145

def formata_data_desconto(formato = '%d%m%y')
  data_desconto.strftime(formato)
rescue StandardError
  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)


198
199
200
201
202
203
204
205
206
# File 'lib/brcobranca/remessa/pagamento.rb', line 198

def formata_data_multa(formato = '%d%m%y')
  data_multa.strftime(formato)
rescue StandardError
  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)


159
160
161
162
163
164
165
166
167
# File 'lib/brcobranca/remessa/pagamento.rb', line 159

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

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

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

Returns:

  • (String)


173
174
175
176
177
178
179
180
181
# File 'lib/brcobranca/remessa/pagamento.rb', line 173

def formata_data_terceiro_desconto(formato = '%d%m%y')
  data_terceiro_desconto.strftime(formato)
rescue StandardError
  if formato == '%d%m%y'
    '000000'
  else
    '00000000'
  end
end

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



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

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)


190
191
192
# File 'lib/brcobranca/remessa/pagamento.rb', line 190

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



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

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



287
288
289
# File 'lib/brcobranca/remessa/pagamento.rb', line 287

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



251
252
253
# File 'lib/brcobranca/remessa/pagamento.rb', line 251

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



278
279
280
# File 'lib/brcobranca/remessa/pagamento.rb', line 278

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



233
234
235
# File 'lib/brcobranca/remessa/pagamento.rb', line 233

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



242
243
244
# File 'lib/brcobranca/remessa/pagamento.rb', line 242

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



260
261
262
# File 'lib/brcobranca/remessa/pagamento.rb', line 260

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

#formata_valor_terceiro_desconto(tamanho = 13) ⇒ Object

Formata o campo valor do terceiro desconto

Parameters:

  • tamanho (Integer) (defaults to: 13)

    quantidade de caracteres a ser retornado



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

def formata_valor_terceiro_desconto(tamanho = 13)
  format_value(:valor_terceiro_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



303
304
305
306
307
# File 'lib/brcobranca/remessa/pagamento.rb', line 303

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



295
296
297
# File 'lib/brcobranca/remessa/pagamento.rb', line 295

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