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
91 92 93 |
# File 'lib/avmtrf1/tools/runner/forponto/saldo.rb', line 91 def balance_uncached ::Avmtrf1::Forponto::User::Balance.new(context(:user)) end |
#end_banner ⇒ Object
30 31 32 33 34 |
# File 'lib/avmtrf1/tools/runner/forponto/saldo.rb', line 30 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
73 74 75 76 77 78 79 |
# File 'lib/avmtrf1/tools/runner/forponto/saldo.rb', line 73 def left_status(mba) if mba.left.positive? && mba.owner_month.lost '[LOST]'.red else '[OK]' end end |
#minutes_to_s(minutes) ⇒ Object
81 82 83 84 85 86 87 88 89 |
# File 'lib/avmtrf1/tools/runner/forponto/saldo.rb', line 81 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
23 24 25 26 27 28 |
# File 'lib/avmtrf1/tools/runner/forponto/saldo.rb', line 23 def run balance.months_balances.each do |mb| show_balance_month(mb) end end |
#show_balance_month(balance_month) ⇒ Object
36 37 38 39 40 41 42 |
# File 'lib/avmtrf1/tools/runner/forponto/saldo.rb', line 36 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
44 45 46 47 48 49 50 51 |
# File 'lib/avmtrf1/tools/runner/forponto/saldo.rb', line 44 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
67 68 69 70 71 |
# File 'lib/avmtrf1/tools/runner/forponto/saldo.rb', line 67 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
60 61 62 63 64 65 |
# File 'lib/avmtrf1/tools/runner/forponto/saldo.rb', line 60 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
53 54 55 56 57 58 |
# File 'lib/avmtrf1/tools/runner/forponto/saldo.rb', line 53 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 |