lib/eost/folhacalculo.rb in eost-0.1.3 vs lib/eost/folhacalculo.rb in eost-0.1.4

- old
+ new

@@ -1,32 +1,38 @@ # frozen_string_literal: true module Eost - HT = %w[block_num block_time contract action \ + HT = %w[block_num block_time contract action from to amount symbol memo data].freeze - RF = '%<v3>-50.50s %<v4>8.2f' + R1 = '%<v3>-12.12s %<v4>s %<v5>-12.12s %<v6>-12.12s' + R2 = '%<v7>10.5f %<v8>-10.10s' # folhas calculo comuns no bigquery class Bigquery - # prepara 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 + # @return [String] linha folha calculo formatada + def row_str + "#{row[0]} #{DateTime.parse(row[1]).strftime(DF)} " + row_r1 + row_r2 end + # @return [String] linha folha calculo formatada + def row_r1 + format(R1, v3: row[2], v4: row[3], v5: row[4], v6: row[5]) + end + + # @return [String] linha folha calculo formatada + def row_r2 + format(R2, v7: row[6], v8: row[7]) + end + # processa linhas folha calculo def processa n = 0 # usada somente a primeira sheet book.sheet(0).parse(header_search: HT) do |r| n += 1 puts n == 1 ? "\n" + book.info : processa_row(r) end - sql_update end # mostra linhas folha calculo def show n = 0 @@ -37,59 +43,41 @@ end end # processa linha folha calculo para arquivo # - # @param (see corrige_hash) + # @param (see show_row) # @return [String] linha folha calculo processada def processa_row(has) - corrige_hash(has) + @row = has.values sql_select if rnaoexiste? then row_str + (sql_insert == 1 ? ' NOVA' : ' ERRO') - elsif rsimila? then row_similar elsif rexiste? then row_existente end end # obtem linha folha calculo para apresentacao # - # @param (see corrige_hash) + # @param [Hash] has da linha em processamento # @return (see row_str) def show_row(has) - corrige_hash(has) + @row = has.values 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}" - end - # @return [String] linha folha calculo existente def row_existente - d = apaga['e'] ? sql_delete : 0 + d = apaga ? sql_delete : 0 row_str + " EXISTENTE#{d.zero? ? '' : ' APAGADA'}" end # @return [Boolean] linha folha calculo nao existe no bigquery? def rnaoexiste? sql.count.zero? end # @return [Boolean] linha folha calculo existe no bigquery? def rexiste? - sql.count == 1 && sql.first[:ds].strip == row[2] - end - - # @return [Boolean] linha folha calculo parecida no bigquery? - def rsimila? - sql.count == 1 && sql.first[:ds].strip != row[2] + sql.count == 1 end end end