mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-28 17:49:38 +02:00
* Budgeting V1 * Basic UI template * Fully scaffolded budgeting v1 * Basic working budget * Finalize donut chart for budgets * Allow categorization of loan payments for budget * Include loan payments in incomes_and_expenses scope * Add budget allocations progress * Empty states * Clean up budget methods * Category aggregation queries * Handle overage scenarios in form * Finalize budget donut chart controller * Passing tests * Fix allocation naming * Add income category migration * Native support for uncategorized budget category * Formatting * Fix subcategory sort order, padding * Fix calculation for category rollups in budget
30 lines
1,010 B
Ruby
30 lines
1,010 B
Ruby
class TransactionsController < ApplicationController
|
|
layout :with_sidebar
|
|
|
|
def index
|
|
@q = search_params
|
|
search_query = Current.family.transactions.search(@q).reverse_chronological
|
|
@pagy, @transaction_entries = pagy(search_query, limit: params[:per_page] || "50")
|
|
|
|
totals_query = search_query.incomes_and_expenses
|
|
family_currency = Current.family.currency
|
|
count_with_transfers = search_query.count
|
|
count_without_transfers = totals_query.count
|
|
|
|
@totals = {
|
|
count: ((count_with_transfers - count_without_transfers) / 2) + count_without_transfers,
|
|
income: totals_query.income_total(family_currency).abs,
|
|
expense: totals_query.expense_total(family_currency)
|
|
}
|
|
end
|
|
|
|
private
|
|
def search_params
|
|
params.fetch(:q, {})
|
|
.permit(
|
|
:start_date, :end_date, :search, :amount,
|
|
:amount_operator, accounts: [], account_ids: [],
|
|
categories: [], merchants: [], types: [], tags: []
|
|
)
|
|
end
|
|
end
|