effective_qb_online 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/models/effective/qb_api.rb +10 -20
- data/app/models/effective/qb_sales_receipt.rb +2 -4
- data/lib/effective_qb_online/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f42e44d9f6b787e46abb8e3db985571748f0f559baa9ec3d3b4ceede2887248e
|
4
|
+
data.tar.gz: 88234f6aff15286412e4bef9d63873f9377e05e05dccc20be7c50316207ec120
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 883700d09bf524af8e7430a7d82214762a02d76c7a145de99258c0e13a08440c6cc771ae1576ff9bd5fb78781174ca092ef31635ca6b84fdbae8a5531d797594
|
7
|
+
data.tar.gz: 359e604dcb62e8a09a018f125672f8ab797da4676d31953cbd19bee4fe7da5d116da957ec2fc42a6e14530ab9542e9ae4835a0cdae357d3bef1c6fec0c1e495e
|
@@ -97,36 +97,26 @@ module Effective
|
|
97
97
|
payment_methods.sort_by(&:name).map { |payment_method| [payment_method.name, payment_method.id] }
|
98
98
|
end
|
99
99
|
|
100
|
-
def find_or_create_customer(
|
101
|
-
find_customer(
|
100
|
+
def find_or_create_customer(order:)
|
101
|
+
find_customer(order: order) || create_customer(order: order)
|
102
102
|
end
|
103
103
|
|
104
|
-
def find_customer(
|
105
|
-
raise('expected
|
104
|
+
def find_customer(order:)
|
105
|
+
raise('expected an Effective::Order') unless order.kind_of?(Effective::Order)
|
106
106
|
|
107
107
|
with_service('Customer') do |service|
|
108
|
-
|
109
|
-
customer = service.find_by(:PrimaryEmailAddr, user.email)&.first
|
110
|
-
|
111
|
-
# Find by given name and family name
|
112
|
-
customer ||= if user.respond_to?(:first_name) && user.respond_to?(:last_name)
|
113
|
-
service.query("SELECT * FROM Customer WHERE GivenName LIKE '#{scrub(user.first_name, sql: true)}' AND FamilyName LIKE '#{scrub(user.last_name, sql: true)}'")&.first
|
114
|
-
end
|
115
|
-
|
116
|
-
# Find by display name
|
117
|
-
customer || service.find_by(:display_name, scrub(user.to_s))&.first
|
108
|
+
service.find_by(:display_name, scrub(order.billing_name))&.first
|
118
109
|
end
|
119
110
|
end
|
120
111
|
|
121
|
-
|
122
|
-
|
112
|
+
# https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/customer#create-a-customer
|
113
|
+
def create_customer(order:)
|
114
|
+
raise('expected an Effective::Order') unless order.kind_of?(Effective::Order)
|
123
115
|
|
124
116
|
with_service('Customer') do |service|
|
125
117
|
customer = Quickbooks::Model::Customer.new(
|
126
|
-
primary_email_address: Quickbooks::Model::EmailAddress.new(
|
127
|
-
display_name: scrub(
|
128
|
-
given_name: scrub(user.try(:first_name)),
|
129
|
-
family_name: scrub(user.try(:last_name))
|
118
|
+
primary_email_address: Quickbooks::Model::EmailAddress.new(order.email),
|
119
|
+
display_name: scrub(order.billing_name)
|
130
120
|
)
|
131
121
|
|
132
122
|
service.create(customer)
|
@@ -10,9 +10,7 @@ module Effective
|
|
10
10
|
|
11
11
|
order = receipt.order
|
12
12
|
raise('Expected a purchased Effective::Order') unless order.purchased?
|
13
|
-
|
14
|
-
user = order.user
|
15
|
-
raise('Expected a user with an email') unless user.respond_to?(:email)
|
13
|
+
raise('Expected an order with billing name') unless order.billing_name.present?
|
16
14
|
|
17
15
|
realm = api.realm
|
18
16
|
raise('Missing Deposit to Account') unless realm.deposit_to_account_id.present?
|
@@ -68,7 +66,7 @@ module Effective
|
|
68
66
|
|
69
67
|
# Find or build customer
|
70
68
|
if receipt.customer_id.blank?
|
71
|
-
customer = api.find_or_create_customer(
|
69
|
+
customer = api.find_or_create_customer(order: order)
|
72
70
|
receipt.update!(customer_id: customer.id)
|
73
71
|
end
|
74
72
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: effective_qb_online
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Code and Effect
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-03-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|