Files
grecia/app/controllers/budgets/executions_controller.rb
2018-11-05 18:04:38 +01:00

40 lines
1.0 KiB
Ruby

module Budgets
class ExecutionsController < ApplicationController
before_action :load_budget
before_action :load_heading
before_action :load_investments
load_and_authorize_resource :budget
def show
authorize! :read_executions, @budget
@statuses = ::Budget::Investment::Status.all
end
private
def load_budget
@budget = Budget.find_by(slug: params[:id]) || Budget.find_by(id: params[:id])
end
def load_heading
@heading = if params[:heading_id].present?
@budget.headings.find_by(slug: params[:heading_id])
else
@heading = @budget.headings.first
end
end
def load_investments
@investments = Budget::Result.new(@budget, @heading).investments.joins(:milestones)
if params[:status].present?
@investments.where('budget_investment_milestones.status_id = ?', params[:status])
else
@investments
end
end
end
end