Files
timeoverflow/app/controllers/reports_controller.rb
Marc Anguera Insa ea4f9deb70 add Transfers report
2021-03-13 01:05:25 +01:00

68 lines
2.1 KiB
Ruby

class ReportsController < ApplicationController
before_action :authenticate_user!
layout "report"
def user_list
@members = current_organization.members.active.
includes(:user).
order("members.member_uid")
respond_to do |format|
format.html
format.csv do
report = Report::Csv::Member.new(current_organization, @members)
send_data report.run, filename: report.name, type: report.mime_type
end
format.pdf do
report = Report::Pdf::Member.new(current_organization, @members)
send_data report.run, filename: report.name, type: report.mime_type
end
end
end
def post_list
@post_type = (params[:type] || "offer").capitalize.constantize
@posts = current_organization.posts.
of_active_members.
active.
merge(@post_type.all).
includes(:user, :category).
group_by(&:category).
to_a.
sort_by { |category, _| category.try(:name).to_s }
respond_to do |format|
format.html
format.csv do
report = Report::Csv::Post.new(current_organization, @posts, @post_type)
send_data report.run, filename: report.name, type: report.mime_type
end
format.pdf do
report = Report::Pdf::Post.new(current_organization, @posts, @post_type)
send_data report.run, filename: report.name, type: report.mime_type
end
end
end
def transfer_list
@transfers = current_organization.
all_transfers.
includes(movements: { account: :accountable }).
order("transfers.created_at DESC").
uniq
respond_to do |format|
format.html
format.csv do
report = Report::Csv::Transfer.new(current_organization, @transfers)
send_data report.run, filename: report.name, type: report.mime_type
end
format.pdf do
report = Report::Pdf::Transfer.new(current_organization, @transfers)
send_data report.run, filename: report.name, type: report.mime_type
end
end
end
end