Class: PayrollVirtualWalletTransaction::View

Inherits:
ApplicationRecord show all
Includes:
PayrollVirtualWalletTransactionProcedures, RunsRawSql
Defined in:
app/models/payroll_virtual_wallet_transaction.rb

Constant Summary

Constants included from PayrollVirtualWalletTransactionProcedures

PayrollVirtualWalletTransactionProcedures::HEADERS

Class Method Summary collapse

Methods inherited from ApplicationRecord

define_decrypted_attribute, define_decrypted_attributes, #errors_in_bullet_points, primary_connection, special_connection

Class Method Details

.break_down(company_id:, payroll_year:) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'app/models/payroll_virtual_wallet_transaction.rb', line 24

def break_down(company_id:, payroll_year:)
  grouped_amounts = transactions_breakdown_procedure(company_id: company_id, payroll_year: payroll_year)

  periods = grouped_amounts.map do |a|
    {
      period_no: a['period_no'],
      period_start_date: a['period_start_date'],
      period_end_date: a['period_end_date'],
      payroll_period_id: a['payroll_period_id'],
      formatted: PayrollPeriod.format_period(
        a['period_no'], a['period_start_date'], a['period_end_date'], a['payroll_revision_no']
      ),
      amounts_sum: a['opening_balance_vw'] || 0,
      payroll_transaction_header_id: a['payroll_transaction_header_id']
    }
  end.uniq

  {
    year: payroll_year,
    remitted_to_cra: array_by_key(grouped_amounts, 'remitted_to_cra'),
    remitted_to_mrq: array_by_key(grouped_amounts, 'remitted_to_mrq'),
    remitted_to_employees: array_by_key(grouped_amounts, 'remitted_to_employee'),
    fees: array_by_key(grouped_amounts, 'fees'),
    funding: array_by_key(grouped_amounts, 'pad_amount'),
    opening_balance_vw: array_by_key(grouped_amounts, 'opening_balance_vw'),
    periods: periods
  }
end