Class: RailsDbAdmin::Reports::BaseController

Inherits:
ErpApp::ApplicationController
  • Object
show all
Defined in:
app/controllers/rails_db_admin/reports/base_controller.rb

Instance Method Summary collapse

Instance Method Details

#emailObject



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'app/controllers/rails_db_admin/reports/base_controller.rb', line 60

def email
  report_helper = RailsDbAdmin::Services::ReportHelper.new
  file_attachments = report_helper.build_report(params[:iid],
                                                params[:report_format].map { |format| format.to_sym },
                                                build_report_params)

  if file_attachments.is_a? String
    render :json => {success: false, message: file_attachments}
  else
    default_name = Report.find_by_internal_identifier(params[:iid]).name

    to_email = params[:send_to]
    cc_email = params[:cc_email]
    message = params[:message].blank? ? "Attached is report #{default_name}" : params[:message]
    subject = params[:subject].blank? ? "Attached is report #{default_name}" : params[:subject]

    ReportMailer.email_report(to_email, cc_email, file_attachments, subject, message, current_user.party.dba_organization).deliver

    render json: {success: true}
  end

rescue StandardError => ex
  Rails.logger.error ex.message
  Rails.logger.error ex.backtrace.join("\n")

  # email notification
  ExceptionNotifier.notify_exception(ex) if defined? ExceptionNotifier

  render :json => {success: false, message: ex.message}
end

#showObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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
52
53
54
55
56
57
58
# File 'app/controllers/rails_db_admin/reports/base_controller.rb', line 8

def show
  report_helper = RailsDbAdmin::Services::ReportHelper.new

  respond_to do |format|

    format.html {

      result = report_helper.build_report(params[:iid],
                                          [:html],
                                          build_report_params)
      if result.is_a? String
        @error = result
        render :error_report
      else
        render inline: result.first[:data]
      end
    }

    format.pdf {
      result = report_helper.build_report(params[:iid],
                                          [:pdf],
                                          build_report_params)

      if result.is_a? String
        @error = result
        render :error_report
      else
        send_data result.first[:data],
                  filename: result.first[:name],
                  type: 'application/pdf',
                  disposition: :inline
      end
    }

    format.csv {
      result = report_helper.build_report(params[:iid],
                                          [:csv],
                                          build_report_params)
      if result.is_a? String
        @error = result
        render :error_report
      else
        send_data result.first[:data],
                  filename: result.first[:name],
                  type: 'application/csv'
      end
    }

  end

end