lib/abank/rendas.rb in abank-0.2.5 vs lib/abank/rendas.rb in abank-0.2.6

- old
+ new

@@ -1,121 +1,123 @@ # frozen_string_literal: true -# @see Abank::Big -class Abank::Big - # @return [Integer] ano renda em tratamento - attr_reader :reano +module Abank + # @see Big + class Big + # @return [Integer] ano renda em tratamento + attr_reader :reano - # @return [Integer] mes renda em tratamento - attr_reader :repos + # @return [Integer] mes renda em tratamento + attr_reader :repos - # @return [Float] valor renda mensal - attr_reader :revre + # @return [Float] valor renda mensal + attr_reader :revre - # @return [String] rendas a inserir (values.re) - attr_reader :revls + # @return [String] rendas a inserir (values.re) + attr_reader :revls - # @return [Integer] movimento em tratamento - attr_reader :mvpos + # @return [Integer] movimento em tratamento + attr_reader :mvpos - # @return [Date] data lancamento movimento em tratamento - attr_reader :mvdlm + # @return [Date] data lancamento movimento em tratamento + attr_reader :mvdlm - # @return [Float] valor movimento em tratamento - attr_reader :mvvlm + # @return [Float] valor movimento em tratamento + attr_reader :mvvlm - # (see CLI#recriare) - def re_atualiza - # obtem contratos ativos - @ctlct = sel('SELECT ct from hernanilr.ab.re group by 1') + # (see CLI#recriare) + def re_atualiza + # obtem contratos ativos + @ctlct = sel('SELECT ct from hernanilr.ab.re group by 1') - # [re]cria rendas [novas|todas] - lr_apaga.cm_cria.vr_cria.re_insert - end + # [re]cria rendas [novas|todas] + lr_apaga.cm_cria.vr_cria.re_insert + end - # cria rendas associadas a lista ids contratos arrendamento - def re_work - bqnrs.zero? || ctlct.count.positive? ? cm_cria.vr_cria.re_insert : re_atualiza - end + # cria rendas associadas a lista ids contratos arrendamento + def re_work + bqnrs.zero? || ctlct.count.positive? ? cm_cria.vr_cria.re_insert : re_atualiza + end - # obtem rendas a inserir (values.re) - # - # @return [Big] acesso a base dados abank no bigquery - def vr_cria - @revls = ctlcm.map { |c| rendas_novas(c) }.flatten(1).join(',') - self - end + # obtem rendas a inserir (values.re) + # + # @return [Big] acesso a base dados abank no bigquery + def vr_cria + @revls = ctlcm.map { |c| rendas_novas(c) }.flatten(1).join(',') + self + end - # insere rendas no bigquery - def re_insert - if revls.size.zero? - puts 'NAO EXISTEM RENDAS NOVAS' - else - dml('insert hernanilr.ab.re VALUES' + revls) - puts "RENDAS #{str_lc('')} CRIADAS " + bqnrs.to_s + # insere rendas no bigquery + def re_insert + if revls.size.zero? + puts 'NAO EXISTEM RENDAS NOVAS' + else + dml('insert hernanilr.ab.re VALUES' + revls) + puts "RENDAS #{str_lc('')} CRIADAS " + bqnrs.to_s + end end - end - # @param [Hash] cmv dados contrato arrendamento (inclui lista movimentos novos) - # @return [Array<String>] lista rendas novas dum contrato arrendamento (values.re) - def rendas_novas(cmv) - return [] unless cmv[:mv].count.positive? + # @param [Hash] cmv dados contrato arrendamento (inclui lista movimentos novos) + # @return [Array<String>] lista rendas novas dum contrato arrendamento (values.re) + def rendas_novas(cmv) + return [] unless cmv[:mv].count.positive? - vars_re(cmv) - r = [] - while mvvlm >= revre && mvpos < cmv[:mv].count - r << nova_re(cmv) - proximo_mv(cmv) + vars_re(cmv) + r = [] + while mvvlm >= revre && mvpos < cmv[:mv].count + r << nova_re(cmv) + proximo_mv(cmv) + end + r end - r - end - # inicializa variaveis para processar rendas do contrato arrendamento - # @param (see rendas_novas) - def vars_re(cmv) - @reano = cmv[:ano] - @repos = cmv[:cnt] - @revre = Float(cmv[:ct][/\d+/]) / 100 - @mvpos = 0 - vars_re_mv(cmv) - end + # inicializa variaveis para processar rendas do contrato arrendamento + # @param (see rendas_novas) + def vars_re(cmv) + @reano = cmv[:ano] + @repos = cmv[:cnt] + @revre = Float(cmv[:ct][/\d+/]) / 100 + @mvpos = 0 + vars_re_mv(cmv) + end - # inicializa variaveis para processar movimentos associados ao contrato arrendamento - # @param (see rendas_novas) - def vars_re_mv(cmv) - @mvdlm = cmv[:mv][mvpos][:dl] - @mvvlm = cmv[:mv][mvpos][:vl] - end + # inicializa variaveis para processar movimentos associados ao contrato arrendamento + # @param (see rendas_novas) + def vars_re_mv(cmv) + @mvdlm = cmv[:mv][mvpos][:dl] + @mvvlm = cmv[:mv][mvpos][:vl] + end - # @param (see rendas_novas) - # @return [String] renda formatada (values.re) - def nova_re(cmv) - # inicializa proxima renda - if repos == 12 - @repos = 1 - @reano += 1 - else - @repos += 1 + # @param (see rendas_novas) + # @return [String] renda formatada (values.re) + def nova_re(cmv) + # inicializa proxima renda + if repos == 12 + @repos = 1 + @reano += 1 + else + @repos += 1 + end + "('#{cmv[:ct]}',#{reano},#{repos},'#{mvdlm.strftime(DF)}',#{dias(cmv)})" end - "('#{cmv[:ct]}',#{reano},#{repos},'#{mvdlm.strftime(DF)}',#{dias(cmv)})" - end - # @param (see rendas_novas) - # @return [Integer] dias atraso no pagamento da renda - def dias(cmv) - mvdlm.mjd - (Date.new(reano, repos, 1) >> (cmv[:dc].month - 1)).mjd - end + # @param (see rendas_novas) + # @return [Integer] dias atraso no pagamento da renda + def dias(cmv) + mvdlm.mjd - (Date.new(reano, repos, 1) >> (cmv[:dc].month - 1)).mjd + end - # inicializa variaveis para processar proximo movimento - # @param (see rendas_novas) - def proximo_mv(cmv) - # valor renda paga retirado do valor do movimento - @mvvlm -= revre - return unless mvvlm < revre + # inicializa variaveis para processar proximo movimento + # @param (see rendas_novas) + def proximo_mv(cmv) + # valor renda paga retirado do valor do movimento + @mvvlm -= revre + return unless mvvlm < revre - # avanca na lista de movimentos - @mvpos += 1 - return unless mvpos < cmv[:mv].count + # avanca na lista de movimentos + @mvpos += 1 + return unless mvpos < cmv[:mv].count - vars_re_mv(cmv) + vars_re_mv(cmv) + end end end