class Sunnyside::Reporter

Attributes

check[R]
claims[R]
payment[R]
pdf[R]
post_date[R]
provider[R]
services[R]
total[R]

Public Class Methods

new(payment, post_date, provider) click to toggle source
# File lib/sunnyside/reports/pdf_report.rb, line 19
def initialize(payment, post_date, provider)
  @provider  = provider
  @payment   = payment
  @post_date = post_date
  @claims    = Claim.where(payment_id: payment.id)
  @pdf       = Prawn::Document.new(:page_layout => :landscape) # generate("#{DRIVE}/sunnyside-files/pdf-reports/#{provider.name}-#{payment.check_number}.PDF", :page_layout => :landscape)
  @total     = Money.new(payment.check_total * 100, 'USD').format
end

Public Instance Methods

check_header() click to toggle source
# File lib/sunnyside/reports/pdf_report.rb, line 28
def check_header
  puts "creating report for #{provider.name} - Check Number: #{payment.check_number} - posted on: #{post_date}"
  pdf.text "CLAIMS FOR #{provider.name} - CHECK NUMBER: #{payment.check_number} - CHECK TOTAL: #{total}"
  pdf.move_down 50

  pdf.text "Claims with payments."

  paid_claims do |clm|
    pdf.move_down 10
    claim = ClaimEOP.new(clm, post_date, pdf, clm.paid, clm.billed)
    claim.create_block
  end

  if claims.where(status: '4').count > 0
    pdf.start_new_page
    pdf.text "Claims with denials."

    denied_claims do |clm|
      pdf.move_down 10
      claim = ClaimEOP.new(clm, post_date, pdf, clm.paid, clm.billed)
      claim.create_block
    end
  end

  if claims.where(status: '22').count > 0
    pdf.start_new_page
    pdf.text "Claims with takebacks."

    takeback_claims do |clm|
      pdf.move_down 10
      claim = ClaimEOP.new(clm, post_date, pdf, clm.paid, clm.billed)
      claim.create_block
    end
  end

  page_numbering

  pdf.render_file("#{DRIVE}/sunnyside-files/pdf-reports/#{provider.name.gsub(/[\.\/]/, '')}-#{payment.check_number}.PDF")
end
create_pdf() click to toggle source
# File lib/sunnyside/reports/pdf_report_draft.rb, line 28
def create_pdf
  Prawn::Document.generate("#{provider}_CHECK_#{check}.pdf", :page_layout => :landscape) do |pdf| 
    report = ReportPDF.new(
              pdf, 
              { :claim_data => claims, 
                :service_data => services, 
                :provider => provider, 
                :check => check 
              })

    report.create_check_header
    report.claim_table
    if takeback_present?
      report.takeback_table
    elsif denials_present?
      report.denial_table
    end
  end
end
denials_present?() click to toggle source
# File lib/sunnyside/reports/pdf_report_draft.rb, line 24
def denials_present?
  claims.where(denial_reason: '4').count > 0
end
denied_claims() { |claim| ... } click to toggle source
# File lib/sunnyside/reports/pdf_report.rb, line 72
def denied_claims
  claims.where(status: '4').order(:invoice_id).all.each { |claim| yield claim if !claim.nil?}
end
page_numbering() click to toggle source
# File lib/sunnyside/reports/pdf_report.rb, line 68
def page_numbering
  pdf.number_pages('Page <page> of <total>', { :at => [pdf.bounds.right - 150, - 10], :width => 150, :align => :center, :start_count_at => 1 } )
end
paid_claims() { |claim| ... } click to toggle source
takeback_claims() { |claim| ... } click to toggle source
# File lib/sunnyside/reports/pdf_report.rb, line 80
def takeback_claims
  claims.where(status: '22').order(:invoice_id).all.each { |claim| yield claim if !claim.nil?}
end
takeback_present?() click to toggle source
# File lib/sunnyside/reports/pdf_report_draft.rb, line 20
def takeback_present?
  claims.where(denial_reason: '22').count > 0
end