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