Comments & Such

This commit is contained in:
2016-04-28 08:43:54 -04:00
parent c2b62fbf88
commit 847669376f

View File

@@ -10,9 +10,11 @@
class QboCustomer < ActiveRecord::Base
unloadable
has_many :issues
has_many :qbo_purchases
has_many :vehicles
attr_accessible :name
validates_presence_of :id, :name
@@ -20,38 +22,55 @@ class QboCustomer < ActiveRecord::Base
self.primary_key = :id
# returns true if the customer is active
def active?
@details.active?
@details.active? if @details
end
# returns a human readable string
def to_s
name
end
# returns the customer's email
def email
@details.primary_email_address
@details.primary_email_address if @details
end
# returns the customer's primary phone
def primary_phone
@details.primary_phone
@details.primary_phone if @details
end
# returns the customer's mobile phone
def mobile_phone
@detail.mobile_phone
@detail.mobile_phone if @details
end
# returns the customer's notes
def notes
@details.notes
@details.notes if @details
end
# updates the customer's notes in QBO
def notes (s)
customer = get_customer(self.id)
customer.notes = s
get_base.update(customer)
end
# returns the bases QBO service for customers
def get_base
Qbo.get_base(:customer)
end
# returns the QBO customer
def get_customer (id)
get_base.service.find_by_id(id)
end
# proforms a bruteforce sync operation
# This needs to be simplified
def update_all
customers = get_base.service.all
@@ -59,20 +78,33 @@ class QboCustomer < ActiveRecord::Base
# Update the customer table
customers.each { |customer|
qbo_customer = QboCustomer.find_or_create_by(id: customer.id)
qbo_customer.name = customer.display_name
qbo_customer.id = customer.id
qbo_customer.save!
# only update if diffrent
if not qbo_customer.name == customer.display_name
qbo_customer.name = customer.display_name
qbo_customer.id = customer.id
qbo_customer.save!
end
}
end
#remove deleted customers
# remove deleted customers
where.not(customers.map(&:id)).destroy_all
end
private
# init details
def get_details
@details = get_customer(self.id)
if self.id
@details = get_customer(self.id)
update
end
end
# update's the customers name
def update
self.name = @details.display_name
self.save
end
end