Class: Febraban150K
- Inherits:
-
FormatSection
- Object
- FormatSection
- Febraban150K
- Defined in:
- lib/formatos/febraban150/febraban_150_k.rb
Overview
Lei 10833, Cobrança não-cumulativa COFINS - Empresa www.planalto.gov.br/ccivil_03/leis/2003/L10.833compilado.htm
Instance Method Summary collapse
- #get_agencia_debito ⇒ Object
- #get_codigo_receita ⇒ Object
- #get_id_cliente ⇒ Object
- #get_id_cliente_banco ⇒ Object
-
#get_id_cliente_empresa ⇒ Object
——————————————————————- ——————————————————————- Getters.
- #get_tipo_id_cliente ⇒ Object
- #get_tipo_tratamento ⇒ Object
- #get_valor_debitado ⇒ Object
-
#initialize(master, versao = Febraban150::VERSAO) ⇒ Febraban150K
constructor
A new instance of Febraban150K.
-
#is_valid? ⇒ Boolean
——————————————————————- ——————————————————————- Validações.
-
#process_section(file) ⇒ Object
——————————————————————- ——————————————————————- Gerais.
- #set_agencia_debito(agencia_debito) ⇒ Object
- #set_codigo_receita(codigo) ⇒ Object
- #set_id_cliente(id_cliente) ⇒ Object
- #set_id_cliente_banco(id_cliente_banco) ⇒ Object
-
#set_id_cliente_empresa(id_cliente_empresa) ⇒ Object
——————————————————————- ——————————————————————- Setters.
- #set_reservado(reservado) ⇒ Object
- #set_tipo_id_cliente(tipo_id_cliente) ⇒ Object
- #set_tipo_tratamento(tratamento) ⇒ Object
- #set_valor_debitado(valor) ⇒ Object
Constructor Details
#initialize(master, versao = Febraban150::VERSAO) ⇒ Febraban150K
Returns a new instance of Febraban150K.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/formatos/febraban150/febraban_150_k.rb', line 7 def initialize(master, versao = Febraban150::VERSAO) super(master, false, true) @section = Section.new({ 0 => Position.new(1, 1, false, "K", true), # Código do Registro 1 => Position.new(2, 25, false), # Identificação do Cliente Empresa 2 => Position.new(3, 4, false), # Agência para Débito 3 => Position.new(4, 14, false), # Identificação do Cliente Banco 4 => Position.new(5, 2, true), # Tipo de Tratamento 5 => Position.new(6, 15, true), # Valor Débito 6 => Position.new(7, 4, false), # Código Receita 7 => Position.new(8, 1, true), # Tipo de Identificação (1-CPF, 2-CNPJ) 8 => Position.new(9, 15, true), # Identificação 9 => Position.new(10, 69, false) # Reservado pelo Sistema }, true) end |
Instance Method Details
#get_agencia_debito ⇒ Object
61 62 63 |
# File 'lib/formatos/febraban150/febraban_150_k.rb', line 61 def get_agencia_debito self.get_section_value(2) end |
#get_codigo_receita ⇒ Object
77 78 79 |
# File 'lib/formatos/febraban150/febraban_150_k.rb', line 77 def get_codigo_receita self.get_section_value(6) end |
#get_id_cliente ⇒ Object
85 86 87 |
# File 'lib/formatos/febraban150/febraban_150_k.rb', line 85 def get_id_cliente self.get_section_value(8) end |
#get_id_cliente_banco ⇒ Object
65 66 67 |
# File 'lib/formatos/febraban150/febraban_150_k.rb', line 65 def get_id_cliente_banco self.get_section_value(3) end |
#get_id_cliente_empresa ⇒ Object
Getters
57 58 59 |
# File 'lib/formatos/febraban150/febraban_150_k.rb', line 57 def get_id_cliente_empresa self.get_section_value(1) end |
#get_tipo_id_cliente ⇒ Object
81 82 83 |
# File 'lib/formatos/febraban150/febraban_150_k.rb', line 81 def get_tipo_id_cliente self.get_section_value(7).to_i end |
#get_tipo_tratamento ⇒ Object
69 70 71 |
# File 'lib/formatos/febraban150/febraban_150_k.rb', line 69 def get_tipo_tratamento self.get_section_value(4).to_i end |
#get_valor_debitado ⇒ Object
73 74 75 |
# File 'lib/formatos/febraban150/febraban_150_k.rb', line 73 def get_valor_debitado self.get_section_value(5).to_i end |
#is_valid? ⇒ Boolean
Validações
42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/formatos/febraban150/febraban_150_k.rb', line 42 def is_valid? result = (self.get_id_cliente_empresa.length > 0 and self.get_agencia_debito.length > 0 and self.get_id_cliente_banco.length > 0 and self.get_tipo_tratamento > 0 and self.get_valor_debitado > 0 and self.get_codigo_receita.length > 0 and (self.get_tipo_id_cliente == 1 or self.get_tipo_id_cliente == 2) and self.get_id_cliente.length == 15) end |
#process_section(file) ⇒ Object
Gerais
27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/formatos/febraban150/febraban_150_k.rb', line 27 def process_section file self.set_id_cliente_empresa file[1..25] self.set_agencia_debito file[26..29] self.set_id_cliente_banco file[30..43] self.set_tipo_tratamento file[41..45] self.set_valor_debitado file[46..60] self.set_codigo_receita file[61..64] self.set_tipo_id_cliente file[65..65] self.set_id_cliente file[66..80] self.set_reservado file[81..149] end |
#set_agencia_debito(agencia_debito) ⇒ Object
103 104 105 106 107 108 109 110 111 112 |
# File 'lib/formatos/febraban150/febraban_150_k.rb', line 103 def set_agencia_debito agencia_debito agencia_debito = agencia_debito.to_s if agencia_debito.length > 0 self.set_section_value(2, agencia_debito) else raise "#{self.get_id}: Agência do Débito não pode estar vazia Valor: #{agencia_debito}" end end |
#set_codigo_receita(codigo) ⇒ Object
147 148 149 150 151 152 153 154 155 156 |
# File 'lib/formatos/febraban150/febraban_150_k.rb', line 147 def set_codigo_receita codigo codigo = codigo.to_s if codigo.length > 0 self.set_section_value(6, codigo) else raise "#{self.get_id}: Valor a ser Debitado deve ser positivo ou 0 Valor: #{codigo}" end end |
#set_id_cliente(id_cliente) ⇒ Object
170 171 172 173 174 175 176 177 178 179 180 181 182 |
# File 'lib/formatos/febraban150/febraban_150_k.rb', line 170 def set_id_cliente id_cliente id_cliente = id_cliente.to_s id_cliente.to_i if id_cliente.length >= 13 or id_cliente.length == 0 self.set_section_value(9, id_cliente) else raise "#{self.get_id}: Identificação do Cliente deve ser CPF ou CNPJ: CNPJ: 999999999 = Número, 9999 = Filial, e 99 = DV CPF: 0000999999999 = Número, 99 = DV Valor: #{id_cliente}" end end |
#set_id_cliente_banco(id_cliente_banco) ⇒ Object
114 115 116 117 118 119 120 121 122 123 |
# File 'lib/formatos/febraban150/febraban_150_k.rb', line 114 def set_id_cliente_banco id_cliente_banco id_cliente_banco = id_cliente_banco.to_s if id_cliente_banco.length > 0 self.set_section_value(3, id_cliente_banco) else raise "#{self.get_id}: Identificação do Cliente do Banco não pode estar vazio Valor: #{id_cliente_banco}" end end |
#set_id_cliente_empresa(id_cliente_empresa) ⇒ Object
Setters
92 93 94 95 96 97 98 99 100 101 |
# File 'lib/formatos/febraban150/febraban_150_k.rb', line 92 def set_id_cliente_empresa id_cliente_empresa id_cliente_empresa = id_cliente_empresa.to_s if id_cliente_empresa.length > 0 self.set_section_value(1, id_cliente_empresa) else raise "#{self.get_id}: Identificação do Cliente da Empresa não pode estar vazio Valor: #{id_cliente_empresa}" end end |
#set_reservado(reservado) ⇒ Object
184 185 186 187 |
# File 'lib/formatos/febraban150/febraban_150_k.rb', line 184 def set_reservado reservado reservado = reservado.to_s self.set_section_value(9, reservado) end |
#set_tipo_id_cliente(tipo_id_cliente) ⇒ Object
158 159 160 161 162 163 164 165 166 167 168 |
# File 'lib/formatos/febraban150/febraban_150_k.rb', line 158 def set_tipo_id_cliente tipo_id_cliente tipo_id_cliente = tipo_id_cliente.to_i if tipo_id_cliente == 1 or tipo_id_cliente == 2 self.set_section_value(7, tipo_id_cliente) else raise "#{self.get_id}: Tipo de Identificação do Cliente deve ser: 1 - CNPJ; 2 - CPF Valor: #{tipo_id_cliente}" end end |
#set_tipo_tratamento(tratamento) ⇒ Object
125 126 127 128 129 130 131 132 133 134 |
# File 'lib/formatos/febraban150/febraban_150_k.rb', line 125 def set_tipo_tratamento tratamento tratamento = tratamento.to_i if tratamento > 0 self.set_section_value(4, tratamento) else raise "#{self.get_id}: Tipo de Tratamento não pode estar vazio Valor: #{tratamento}" end end |
#set_valor_debitado(valor) ⇒ Object
136 137 138 139 140 141 142 143 144 145 |
# File 'lib/formatos/febraban150/febraban_150_k.rb', line 136 def set_valor_debitado valor valor = valor.to_i if valor > 0 self.set_section_value(5, valor) else raise "#{self.get_id}: Valor a ser Debitado deve ser positivo ou 0 Valor: #{valor}" end end |