Class: Report::AccountsPayableCommand
- Inherits:
-
BaseCommand
- Object
- BaseCommand
- Report::AccountsPayableCommand
- Defined in:
- app/services/report/accounts_payable_command.rb
Overview
Service object: accounts payable command.
Class Method Summary collapse
Instance Method Summary collapse
- #execute ⇒ Object
-
#payee_count ⇒ Object
Summary totals computed from results.
- #success? ⇒ Boolean
- #total_current ⇒ Object
- #total_days30 ⇒ Object
- #total_days60 ⇒ Object
- #total_open ⇒ Object
- #total_original ⇒ Object
- #total_over60 ⇒ Object
Class Method Details
.company_options ⇒ Object
31 32 33 |
# File 'app/services/report/accounts_payable_command.rb', line 31 def self. Company. end |
Instance Method Details
#execute ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'app/services/report/accounts_payable_command.rb', line 7 def execute return unless valid? @results = VoucherItem .joins(joins_sql) .select(select_sql) .where( "V.state in ('unpaid','paid') " \ "AND (case when payment.amount is null then voucher_items.gross_amount " \ "else voucher_items.gross_amount - coalesce(payment.amount) end) <> 0 " \ "AND V.company_id = :company_id " \ "AND V.supplier_id <> 295241 " \ "AND (voucher_items.gl_offset_account_id in (19,20) OR voucher_items.gl_offset_account_id is null) " \ "AND V.gl_date::date <= :picked_date", company_id: company_id.to_i, picked_date: start_date ) .order(order_sql.sql_safe) end |
#payee_count ⇒ Object
Summary totals computed from results
36 37 38 |
# File 'app/services/report/accounts_payable_command.rb', line 36 def payee_count @results&.map { |r| r["payee"] }&.uniq&.count || 0 end |
#success? ⇒ Boolean
27 28 29 |
# File 'app/services/report/accounts_payable_command.rb', line 27 def success? valid? && @results.present? end |
#total_current ⇒ Object
40 41 42 |
# File 'app/services/report/accounts_payable_command.rb', line 40 def total_current @results&.sum { |a| a["current"].to_f } || 0 end |
#total_days30 ⇒ Object
44 45 46 |
# File 'app/services/report/accounts_payable_command.rb', line 44 def total_days30 @results&.sum { |a| a["days30"].to_f } || 0 end |
#total_days60 ⇒ Object
48 49 50 |
# File 'app/services/report/accounts_payable_command.rb', line 48 def total_days60 @results&.sum { |a| a["days60"].to_f } || 0 end |
#total_open ⇒ Object
60 61 62 |
# File 'app/services/report/accounts_payable_command.rb', line 60 def total_open @results&.sum { |a| a["open_amount"].to_f } || 0 end |
#total_original ⇒ Object
56 57 58 |
# File 'app/services/report/accounts_payable_command.rb', line 56 def total_original @results&.sum { |a| a["original_amount"].to_f } || 0 end |
#total_over60 ⇒ Object
52 53 54 |
# File 'app/services/report/accounts_payable_command.rb', line 52 def total_over60 @results&.sum { |a| a["over60"].to_f } || 0 end |