Manuel Bustillo
91bbae1c63
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 59s
Add copyright notice / copyright_notice (pull_request) Successful in 2m21s
Run unit tests / unit_tests (pull_request) Successful in 3m2s
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 25m17s
47 lines
1.0 KiB
Ruby
47 lines
1.0 KiB
Ruby
# Copyright (C) 2024 Manuel Bustillo
|
|
|
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
|
|
|
# frozen_string_literal: true
|
|
|
|
class SummaryController < ApplicationController
|
|
def index
|
|
render json: {
|
|
expenses:,
|
|
guests:
|
|
}
|
|
end
|
|
|
|
private
|
|
|
|
def guests
|
|
guest_summary = Guest.group(:status).count
|
|
|
|
{
|
|
total: guest_summary.except('considered').values.sum,
|
|
confirmed: guest_summary['confirmed'].to_i,
|
|
declined: guest_summary['declined'].to_i,
|
|
tentative: guest_summary['tentative'].to_i,
|
|
invited: guest_summary['invited'].to_i
|
|
}
|
|
end
|
|
|
|
def expenses
|
|
expense_summary = Expenses::TotalQuery.new(wedding: ActsAsTenant.current_tenant).call
|
|
|
|
{
|
|
projected: {
|
|
total: expense_summary['total_projected'],
|
|
guests: expense_summary['projected_guests']
|
|
},
|
|
confirmed: {
|
|
total: expense_summary['total_confirmed'],
|
|
guests: expense_summary['confirmed_guests']
|
|
},
|
|
status: {
|
|
paid: 0
|
|
}
|
|
}
|
|
end
|
|
end
|