class Sunnyside::ReportPDF

Attributes

check[R]
claims[R]
pdf[R]
provider[R]
services[R]

Public Class Methods

new(pdf, data = {}) click to toggle source
# File lib/sunnyside/reports/pdf_report_draft.rb, line 50
def initialize(pdf, data = {})
  @pdf      = pdf
  @claims   = data[:claim_data]
  @services = data[:service_data]
  @provider = data[:provider]
  @check    = data[:check]
end

Public Instance Methods

check_total() click to toggle source
# File lib/sunnyside/reports/pdf_report_draft.rb, line 63
def check_total
  services.sum(:amount_paid)
end
claim_header(claim) click to toggle source
# File lib/sunnyside/reports/pdf_report_draft.rb, line 109
def claim_header(claim)
  puts claim.control_number
  pdf.move_down 10
  claim_data = [[claim.control_number, client(claim.invoice_number), claim.invoice_number, currency(claim.amount_charged), currency(claim.amount_paid), claim.denial_reason]]
  pdf.table(claim_data, :column_widths => [85, 75, 75, 75, 75, 150], :cell_style => {
                                                                                    :align => :center,
                                                                                    :overflow => :shrink_to_fit,
                                                                                    :size => 12,
                                                                                    :height => 30
                                                                                  }) # SHOULD ONLY HAVE ONE CLAIM
  pdf.move_down 10
  create_service_table(claim.id)
end
claim_table() click to toggle source
# File lib/sunnyside/reports/pdf_report_draft.rb, line 144
def claim_table
  claims.exclude(denial_reason: ['22', '4']).all.each { |clm| claim_header(clm) }
end
client(inv) click to toggle source
# File lib/sunnyside/reports/pdf_report_draft.rb, line 105
def client(inv)
  Invoice.where(invoice_number: inv).get(:client_name)
end
create_check_header() click to toggle source
# File lib/sunnyside/reports/pdf_report_draft.rb, line 58
def create_check_header
  pdf.text "CLAIMS FOR #{provider} - CHECK NUMBER: #{check} - CHECK TOTAL: #{currency(check_total)}"
  pdf.move_down 20
end
create_service_table(id) click to toggle source
# File lib/sunnyside/reports/pdf_report_draft.rb, line 135
def create_service_table(id)
  pdf.table(service_data(id), :column_widths => [85, 75, 75, 75, 75, 150], :cell_style => {
                                                                              :align => :center,
                                                                              :overflow => :shrink_to_fit,
                                                                              :size => 12,
                                                                              :height => 30
                                                                            }) # SHOULD ONLY HAVE ONE CLAIM
end
currency(amt) click to toggle source
# File lib/sunnyside/reports/pdf_report_draft.rb, line 67
def currency(amt)
  Money.new(amt * 100, 'USD').format
end
denial_table() click to toggle source
# File lib/sunnyside/reports/pdf_report_draft.rb, line 84
def denial_table
  pdf.start_new_page
  pdf.move_down 10
  pdf.text 'CLAIMS WITH DENIALS'
  pdf.move_down 10
  claims.where(denial_reason: '4').all.each { |clm| claim_header(clm) }
end
denials() click to toggle source
# File lib/sunnyside/reports/pdf_report_draft.rb, line 80
def denials
  claims.exclude(denial_reason: '22').where('amount_charged > amount_paid')
end
service_data(id) click to toggle source
# File lib/sunnyside/reports/pdf_report_draft.rb, line 123
def service_data(id)
  services.where(claim_id: id).map { |svc| ['', svc.dos, svc_code(svc), svc.units, currency(svc.amount_charged), currency(svc.amount_paid), svc.denial_reason] }
end
svc_code(svc) click to toggle source
# File lib/sunnyside/reports/pdf_report_draft.rb, line 127
def svc_code(svc)
  if svc.mod_1
    svc.service_code + ':' + svc.mod_1
  else
    svc.service_code
  end
end
table_create() click to toggle source
# File lib/sunnyside/reports/pdf_report_draft.rb, line 100
def table_create
  pdf.text 'asdasds'
  and_this_too_please
end
takeback_header() click to toggle source
# File lib/sunnyside/reports/pdf_report_draft.rb, line 92
def takeback_header
  pdf.start_new_page
  pdf.move_down 10
  pdf.text 'ADJUSTED CLAIMS'
  pdf.move_down 10
  claims.where(denial_reason: '22').all.each { |clm| claim_header(clm) }
end
takeback_table() click to toggle source
# File lib/sunnyside/reports/pdf_report_draft.rb, line 75
def takeback_table
  takeback_header
  takebacks.all.each { |clm| claim_header(clm) }
end
takebacks() click to toggle source
# File lib/sunnyside/reports/pdf_report_draft.rb, line 71
def takebacks
  claims.where(denial_reason: '22')
end