lib/eost/folhacalculo.rb in eost-0.1.7 vs lib/eost/folhacalculo.rb in eost-0.1.8

- old
+ new

@@ -1,76 +1,79 @@ # frozen_string_literal: true module Eost - HT = %w[block_num block_time contract action - from to amount symbol memo data].freeze + HT = %w[block_num block_time contract action from to amount symbol memo data].freeze R1 = '%<v5>-12.12s %<v6>-12.12s' R2 = '%<v7>10.5f %<v8>-8.8s' # trabalhar com folhas calculo bloks.io & dados no bigquery class Bigquery - # processa linhas folha calculo - def processa + # processa folha calculo + def processa_csv n = 0 folha.sheet(0).parse(header_search: HT) do |r| n += 1 - puts n == 1 ? "\n" + folha.info : processa_row(r) + puts n == 1 ? "\n#{folha.info}" : processa_row(r) end end # processa linha folha calculo para arquivo # # @param [Hash] has da linha em processamento # @return [String] texto informativo do processamento def processa_row(has) @row = has.values - sql_select - if row_naoexiste? then row_str + (sql_insert == 1 ? ' NOVA' : ' ERRO') + + # array.count = 0 ==> pode carregar esta linha + # array.count >= 1 ==> nao carregar esta linha + sql("select #{eos_fields} #{sql_where}", [{}, {}]) + + if row_naoexiste? then row_str + (eos_insert_csv == 1 ? ' NOVA' : ' ERRO') elsif row_existe? then row_existente else row_multiplas end end # @return [String] linha folha calculo formatada def row_str - "#{row[0]} #{DateTime.parse(row[1]).strftime(DF)} " + row_r1 + row_r2 + "#{row[0]} #{Time.parse(row[1]).strftime(DF)} " + row_r1 + row_r2 end # @return [String] linha folha calculo formatada def row_r1 format(R1, v5: row[4], v6: row[5]) end # @return [String] linha folha calculo formatada def row_r2 - format(R2, v7: row[6].to_f, v8: row[7]) + format(R2, v7: Float(row[6]), v8: row[7]) end # @return [String] linha folha calculo existente def row_existente - d = linha[:e] ? sql_delete : 0 - row_str + ' EXISTENTE' + str_apagadas(d) + d = linha[:e] ? dml("delete #{sql_where}") : 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) + d = linha[:m] ? dml("delete #{sql_where}") : 0 + "#{row_str} MULTIPLAS #{sql.count}#{str_apagadas(d)}" end - # @param [Integer] numero linhas apagadas + # @param [Integer] num numero linhas apagadas # @return [String] texto formatado linhas apagadas def str_apagadas(num) - num.positive? ? ' & ' + num.to_s + ' APAGADA(S) ' : ' ' + num.positive? ? " & #{num} APAGADA(S) " : ' ' end # @return [Boolean] linha folha calculo nao existe no bigquery? def row_naoexiste? - sql.count.zero? + sqr.count.zero? end # @return [Boolean] linha folha calculo existe no bigquery? def row_existe? - sql.count == 1 + sqr.count == 1 end end end