Update qbo_estimate.rb

This commit is contained in:
2017-04-03 22:24:04 -04:00
committed by GitHub
parent 35bf300f2d
commit 15ea3aeaa2

View File

@@ -1,6 +1,6 @@
#The MIT License (MIT) #The MIT License (MIT)
# #
#Copyright (c) 2016 rick barrette #Copyright (c) 2017 rick barrette
# #
#Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: #Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
# #
@@ -10,47 +10,49 @@
class QboEstimate < ActiveRecord::Base class QboEstimate < ActiveRecord::Base
unloadable unloadable
has_many :issues
belongs_to :customer
attr_accessible :doc_number
validates_presence_of :id, :doc_number, :customer_id
has_and_belongs_to_many :issues
belongs_to :customer
attr_accessible :doc_number, :id
validates_presence_of :doc_number, :id
self.primary_key = :id
# return the QBO Estimate service
def self.get_base def self.get_base
Qbo.get_base(:estimate) Qbo.get_base(:estimate).service
end end
# sync all estimates
def self.sync def self.sync
estimates = get_base.service.all estimates = get_base.all
estimates.each { |estimate|
# Update the item table process_estimate(estimate)
transaction do }
estimates.each { |estimate|
qbo_estimate = QboEstimate.find_or_create_by(id: estimate.id)
qbo_estimate.doc_number = estimate.doc_number
qbo_estimate.customer_id = estimate.customer_ref.value
qbo_estimate.id = estimate.id
qbo_estimate.save!
}
end
#remove deleted estimates #remove deleted estimates
where.not(estimates.map(&:id)).destroy_all where.not(estimates.map(&:id)).destroy_all
end end
# sync only one estimate
def self.sync_by_id(id) def self.sync_by_id(id)
estimate = get_base.service.fetch_by_id(id) process_estimate(get_base.fetch_by_id(id))
qbo_estimate = QboEstimate.find_or_create_by(id: estimate.id) end
# update an estimate
def self.update(id)
# Update the item table
estimate = get_base.fetch_by_id(id)
qbo_estimate = find_or_create_by(id: id)
qbo_estimate.doc_number = estimate.doc_number
qbo_estimate.save!
end
# process an estimate into the database
def process_estimate(estimate)
qbo_estimate = find_or_create_by(id: estimate.id)
qbo_estimate.doc_number = estimate.doc_number qbo_estimate.doc_number = estimate.doc_number
qbo_estimate.customer_id = estimate.customer_ref.value qbo_estimate.customer_id = estimate.customer_ref.value
qbo_estimate.id = estimate.id qbo_estimate.id = estimate.id
qbo_estimate.save! qbo_estimate.save!
end end
def self.update(id)
# Update the item table
estimate = get_base.service.fetch_by_id(id)
qbo_estimate = QboEstimate.find_or_create_by(id: id)
qbo_estimate.doc_number = estimate.doc_number
qbo_estimate.save!
end
end end