From 48edc85e2c4fff0d611713bca2eb0c7d6351d678 Mon Sep 17 00:00:00 2001 From: Rick Barrette Date: Tue, 13 Sep 2016 22:39:25 -0400 Subject: [PATCH] Update qbo_invoice.rb --- app/models/qbo_invoice.rb | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/app/models/qbo_invoice.rb b/app/models/qbo_invoice.rb index 0753780..b89f933 100644 --- a/app/models/qbo_invoice.rb +++ b/app/models/qbo_invoice.rb @@ -49,6 +49,8 @@ class QboInvoice < ActiveRecord::Base # processes the invoice into the system def self.process_invoice(invoice) + + is_changed = false # Scan the line items for hashtags and attach to the applicable issues @@ -57,8 +59,19 @@ class QboInvoice < ActiveRecord::Base line.description.scan(/#(\w+)/).flatten.each { |issue| i = Issue.find_by_id(issue.to_i) begin - i.qbo_invoices << QboInvoice.find_by_id(invoice.id) - i.save + # Load the invoice into the database + qbo_invoice = QboInvoice.find_or_create_by(id: invoice.id) + if qbo_invoice.new? + qbo_invoice.doc_number = invoice.doc_number + qbo_invoice.id = invoice.id + qbo_invoice.save! + end + + # Attach the invoice to the issue + unless i.qbo_invoices.include?(qbo_invoice) + i.qbo_invoices << qbo_invoice + i.save + end rescue puts "Something when wrong..." # do nothing, the reccord exists