Class: Avmtrf1::Tools::Runner::Forponto::Saldo
- Inherits:
-
EacRubyUtils::Console::DocoptRunner
- Object
- EacRubyUtils::Console::DocoptRunner
- Avmtrf1::Tools::Runner::Forponto::Saldo
- Includes:
- EacRubyUtils::Console::Speaker, EacRubyUtils::SimpleCache
- Defined in:
- lib/avmtrf1/tools/runner/forponto/saldo.rb
Constant Summary collapse
- DOC =
<<~DOCOPT Calcula saldo de horas atual. Usage: __PROGRAM__ [options] __PROGRAM__ -h | --help Options: -h --help Show this screen. -d --details Show details. DOCOPT
Instance Method Summary collapse
- #balance_uncached ⇒ Object
- #end_banner ⇒ Object
- #left_status(mba) ⇒ Object
- #minutes_to_s(minutes) ⇒ Object
- #run ⇒ Object
- #show_balance_month(balance_month) ⇒ Object
- #show_month_attr_balance(mba, label) ⇒ Object
- #show_month_end_resume(mba) ⇒ Object
- #show_month_requests(mba) ⇒ Object
- #show_month_withdrawals(mba) ⇒ Object
Instance Method Details
#balance_uncached ⇒ Object
95 96 97 |
# File 'lib/avmtrf1/tools/runner/forponto/saldo.rb', line 95 def balance_uncached ::Avmtrf1::Forponto::User::Balance.new(context(:user)) end |
#end_banner ⇒ Object
34 35 36 37 38 |
# File 'lib/avmtrf1/tools/runner/forponto/saldo.rb', line 34 def infov 'Crédito final', minutes_to_s(balance.credito_left) infov 'Débito final', minutes_to_s(balance.debito_left) infov 'Saldo final', minutes_to_s(balance.saldo_left) end |
#left_status(mba) ⇒ Object
77 78 79 80 81 82 83 |
# File 'lib/avmtrf1/tools/runner/forponto/saldo.rb', line 77 def left_status(mba) if mba.left.positive? && mba.owner_month.lost '[LOST]'.red else '[OK]' end end |
#minutes_to_s(minutes) ⇒ Object
85 86 87 88 89 90 91 92 93 |
# File 'lib/avmtrf1/tools/runner/forponto/saldo.rb', line 85 def minutes_to_s(minutes) signal = '' if minutes.negative? signal = '-' minutes = -minutes end time = [minutes / 60, minutes % 60].map { |x| x.to_s.rjust(2, '0') }.join(':') "#{signal}#{time} / #{signal}#{minutes} minutes" end |
#run ⇒ Object
27 28 29 30 31 32 |
# File 'lib/avmtrf1/tools/runner/forponto/saldo.rb', line 27 def run balance.months_balances.each do |mb| show_balance_month(mb) end end |
#show_balance_month(balance_month) ⇒ Object
40 41 42 43 44 45 46 |
# File 'lib/avmtrf1/tools/runner/forponto/saldo.rb', line 40 def show_balance_month(balance_month) infov 'Month', balance_month.month show_month_attr_balance(balance_month.credito, 'Crédito') show_month_attr_balance(balance_month.debito, 'Débito') infov ' * After trigger', minutes_to_s(balance_month.after_trigger) infov ' * After trigger acum.', minutes_to_s(balance_month.after_trigger_acum) end |
#show_month_attr_balance(mba, label) ⇒ Object
48 49 50 51 52 53 54 55 |
# File 'lib/avmtrf1/tools/runner/forponto/saldo.rb', line 48 def show_month_attr_balance(mba, label) infov " * #{label}", minutes_to_s(mba.initial_value) return unless .fetch('--details') show_month_withdrawals(mba) show_month_requests(mba) show_month_end_resume(mba) end |
#show_month_end_resume(mba) ⇒ Object
71 72 73 74 75 |
# File 'lib/avmtrf1/tools/runner/forponto/saldo.rb', line 71 def show_month_end_resume(mba) infov ' * Left', minutes_to_s(mba.left) + ' ' + left_status(mba) infov ' * After trigger', minutes_to_s(mba.after_trigger) infov ' * After trigger acum.', minutes_to_s(mba.after_trigger_acum) end |
#show_month_requests(mba) ⇒ Object
64 65 66 67 68 69 |
# File 'lib/avmtrf1/tools/runner/forponto/saldo.rb', line 64 def show_month_requests(mba) infov ' * Requests', mba.requests.count mba.requests.each do |r| infov " * #{r.month.month}", minutes_to_s(r.value) end end |
#show_month_withdrawals(mba) ⇒ Object
57 58 59 60 61 62 |
# File 'lib/avmtrf1/tools/runner/forponto/saldo.rb', line 57 def show_month_withdrawals(mba) infov ' * Withdrawals', mba.withdrawals.count mba.withdrawals.each do |w| infov " * #{w.month.month}", minutes_to_s(w.value) end end |