lib/abank/folhacalculo.rb in abank-0.1.8 vs lib/abank/folhacalculo.rb in abank-0.1.9

- old
+ new

@@ -2,93 +2,86 @@ module Abank HT = ['Data Lanc.', 'Data Valor', 'Descrição', 'Valor'].freeze RF = '%<v3>-50.50s %<v4>8.2f' - # folhas calculo comuns no bigquery + # classifica & arquiva dados das folhas calculo activobank no bigquery class Bigquery - # prepara linha folha calculo para processamento + # corrige linha folha calculo para processamento # # @param [Hash] has da linha em processamento def corrige_hash(has) @row = has.values @row[2] = row[2].strip - @row[3] = -1 * row[3] if num > 1 + @row[3] = -1 * row[3] if conta > 1 end - # processa linhas folha calculo + # processa linhas folha calculo & classifica bigquery def processa n = 0 - # usada somente a primeira sheet - book.sheet(0).parse(header_search: HT) do |r| + folha.sheet(0).parse(header_search: HT) do |r| n += 1 - puts n == 1 ? "\n" + book.info : processa_row(r) + puts n == 1 ? "\n" + folha.info : processa_row(r) end - sql_update + classifica end - # mostra linhas folha calculo - def show - n = 0 - # usada somente a primeira sheet - book.sheet(0).parse(header_search: HT) do |r| - n += 1 - puts n == 1 ? "\n" + book.info : show_row(r) - end - end - # processa linha folha calculo para arquivo # # @param (see corrige_hash) - # @return [String] linha folha calculo processada + # @return [String] texto informativo do processamento def processa_row(has) corrige_hash(has) sql_select - if rnaoexiste? then row_str + (sql_insert == 1 ? ' NOVA' : ' ERRO') - elsif rsimila? then row_similar - elsif rexiste? then row_existente + if row_naoexiste? then row_str + (sql_insert == 1 ? ' NOVA' : ' ERRO') + elsif row_simila? then row_similar + elsif row_existe? then row_existente + else row_multiplas end end - # obtem linha folha calculo para apresentacao - # - # @param (see corrige_hash) - # @return (see row_str) - def show_row(has) - corrige_hash(has) - row_str - end - # @return [String] linha folha calculo formatada def row_str "#{row[0].strftime(DF)} #{row[1].strftime(DF)} " \ "#{format(RF, v3: row[2], v4: row[3])}" end # @return [String] linha folha calculo similar def row_similar - d = apaga['s'] ? sql_delete : 0 - row_str + " SIMILAR#{d.zero? ? ' ' : ' APAGADA '}#{sql.first[:ds].strip}" + d = linha[:s] ? sql_delete : 0 + row_str + ' SIMILAR' + str_apagadas(d) + sql.first[:ds].strip end # @return [String] linha folha calculo existente def row_existente - d = apaga['e'] ? sql_delete : 0 - row_str + " EXISTENTE#{d.zero? ? '' : ' APAGADA'}" + d = linha[:e] ? sql_delete : 0 + row_str + ' EXISTENTE' + str_apagadas(d) end + # @return [String] linha folha calculo existencia multipla + def row_multiplas + d = linha[:m] ? sql_delete : 0 + row_str + ' MULTIPLAS ' + sql.count.to_s + str_apagadas(d) + end + + # @param [Integer] numero linhas apagadas + # @return [String] texto formatado linhas apagadas + def str_apagadas(num) + num.positive? ? ' & ' + num.to_s + ' APAGADA(S) ' : ' ' + end + # @return [Boolean] linha folha calculo nao existe no bigquery? - def rnaoexiste? + def row_naoexiste? sql.count.zero? end # @return [Boolean] linha folha calculo existe no bigquery? - def rexiste? + def row_existe? sql.count == 1 && sql.first[:ds].strip == row[2] end - # @return [Boolean] linha folha calculo parecida no bigquery? - def rsimila? + # @return [Boolean] linha folha calculo existe parecida no bigquery? + def row_simila? sql.count == 1 && sql.first[:ds].strip != row[2] end end end