class Sunnyside::ManualPayment

Attributes

check[R]
denied_invoices[R]
paid_invoices[R]
payment_id[R]
post_date[R]
provider[R]
total[R]

Public Class Methods

new(invoices, post_date, prov, check) click to toggle source
# File lib/sunnyside/cash_receipts/cash_receipt.rb, line 130
def initialize(invoices, post_date, prov, check)
  @denied_invoices = invoices.select { |inv| inv.include?('-d') }.map { |inv| Invoice[inv.gsub(/-d/, '')] }
  @paid_invoices   = invoices.reject { |inv| inv.include?('-d') }.map { |inv| Invoice[inv] }
  @post_date       = post_date
  @provider        = prov
  @check           = check
  @payment_id      = Payment.insert(check_number: check, post_date: post_date, provider_id: prov.id)
  @total           = 0.0
end

Public Instance Methods

adjust_claim(inv) click to toggle source
# File lib/sunnyside/cash_receipts/cash_receipt.rb, line 218
def adjust_claim(inv)
  service_sum = Service.where(payment_id: payment_id, invoice_id: inv.invoice_number).sum(:paid).round(2)
  Claim.where(invoice_id: inv.invoice_number, payment_id: payment_id).update(:paid => service_sum)
end
check_total() click to toggle source
# File lib/sunnyside/cash_receipts/cash_receipt.rb, line 223
def check_total
  Claim.where(payment_id: payment_id).sum(:paid).round(2)
end
claims() click to toggle source
# File lib/sunnyside/cash_receipts/cash_receipt.rb, line 161
def claims
  (denied_invoices + paid_invoices).map { |inv| Claim.where(invoice_id: inv.invoice_number, payment_id: payment_id).first }
end
create_claim(invoice) click to toggle source
# File lib/sunnyside/cash_receipts/cash_receipt.rb, line 165
def create_claim(invoice)
  paid =  if invoice.provider_id == 22  # for the stupid rate that village care max pays
            (invoice.amount * 0.999365).round(2)
          else
            invoice.amount
          end

  Claim.insert(
    :invoice_id   => invoice.invoice_number, 
    :client_id    => invoice.client_id, 
    :billed       => invoice.amount, 
    :paid         => paid, 
    :payment_id   => payment_id, 
    :provider_id  => invoice.provider_id
  )
end
create_csv() click to toggle source
# File lib/sunnyside/cash_receipts/cash_receipt.rb, line 152
def create_csv
  claims.each { |clm| 
    if clm.paid > 0.0 
      self.receivable_csv(clm, Payment[payment_id], post_date) 
    end
  }
  Payment[payment_id].update(check_total: check_total)
end
create_services(invoice, claim_id) click to toggle source
# File lib/sunnyside/cash_receipts/cash_receipt.rb, line 182
def create_services(invoice, claim_id)
  visits(invoice).each { |visit| 
    Service.insert(
      :invoice_id   => visit.invoice_id, 
      :payment_id   => payment_id, 
      :claim_id     => claim_id, 
      :service_code => visit.service_code, 
      :paid         => visit.amount, 
      :billed       => visit.amount, 
      :dos          => visit.dos,
      :units        => visit.units,
      :client_id    => Claim[claim_id].client_id
    )
  }
end
edit_services() click to toggle source
# File lib/sunnyside/cash_receipts/cash_receipt.rb, line 202
def edit_services
  denied_invoices.each { |inv| 
    services     = Service.where(invoice_id: inv.invoice_number, payment_id: payment_id)
    edit_service = EditService.new(services) 
    edit_service.show_all

    edit_service.adjust
    
    adjust_claim(inv)
  }
end
not_fully_paid?(clm) click to toggle source
# File lib/sunnyside/cash_receipts/cash_receipt.rb, line 148
def not_fully_paid?(clm)
  Claim.where(invoice_id: clm.invoice_id).sum(:paid).round(2) < Invoice[clm.invoice_id].amount
end
seed_claims_and_services() click to toggle source
# File lib/sunnyside/cash_receipts/cash_receipt.rb, line 140
def seed_claims_and_services
  (denied_invoices + paid_invoices).each do |invoice|
    claim_id = create_claim(invoice)
    create_services(invoice, claim_id)
  end
  edit_services if denied_invoices.length > 0
end
visits(invoice) click to toggle source
# File lib/sunnyside/cash_receipts/cash_receipt.rb, line 198
def visits(invoice)
  Visit.where(invoice_id: invoice.invoice_number).all
end