effective_qb_online 0.4.0 → 0.5.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d0a57f6214297b86608b3cddc41885a14093371ccf8246471177e83adca31c93
4
- data.tar.gz: e5035d9267de8cf24a5ce0431a051e41621797b2c9ffbbdebade41f07b324d1a
3
+ metadata.gz: 57216dcf3ae7c167d41dad7c56b0f6f625b428646efccfe7d3c03149377276f3
4
+ data.tar.gz: 8a6174d2268d4301a432a52b1dac6ff0fce077f7e3eb830b42899a17a5d810e8
5
5
  SHA512:
6
- metadata.gz: d69dbad553ff14cd2e1cc75e32b25f39f0b900afafc8197a4efd43ddc718eb2df7e6df455b93aca8d44ff964654eacdc77195f2324a8b0882f1a72aa49b116e5
7
- data.tar.gz: c855c58edfb05b3b1bd767b9a92fa40f9f281e1c98ba3c484e33d74bb2f6175f208954fdd66d61dd3e414b539ca0c586c2a3540a5243e886a674921eb7470bcb
6
+ metadata.gz: dd06c85052e13213874e0e70d6830b35b2e3f6c34f670eb289e0d2ac0ab712b24b47fd1f9eee199d61c6c1e8250d5f3c74ac676204cc2bf1856d65e5b70db945
7
+ data.tar.gz: e6d6c68c7354f14b8bd951d6f203e6a4e1f2ab9901f1f58b790004da95a2ec95bbff6de9f89c3666c0e6a16c19b2a6d0c8223ff32ff1dff582a1d4aedd2664a1
@@ -97,36 +97,30 @@ 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(user:)
101
- find_customer(user: user) || create_customer(user: user)
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(user:)
105
- raise('expected a user that responds to email') unless user.respond_to?(:email)
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
108
  # Find by email
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
109
+ customer = service.find_by(:PrimaryEmailAddr, order.email)&.first
115
110
 
116
111
  # Find by display name
117
- customer || service.find_by(:display_name, scrub(user.to_s))&.first
112
+ customer || service.find_by(:display_name, scrub(order.billing_name))&.first
118
113
  end
119
114
  end
120
115
 
121
- def create_customer(user:)
122
- raise('expected a user that responds to email') unless user.respond_to?(:email)
116
+ # https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/customer#create-a-customer
117
+ def create_customer(order:)
118
+ raise('expected an Effective::Order') unless order.kind_of?(Effective::Order)
123
119
 
124
120
  with_service('Customer') do |service|
125
121
  customer = Quickbooks::Model::Customer.new(
126
- primary_email_address: Quickbooks::Model::EmailAddress.new(user.email),
127
- display_name: scrub(user.to_s),
128
- given_name: scrub(user.try(:first_name)),
129
- family_name: scrub(user.try(:last_name))
122
+ primary_email_address: Quickbooks::Model::EmailAddress.new(order.email),
123
+ display_name: scrub(order.billing_name)
130
124
  )
131
125
 
132
126
  service.create(customer)
@@ -68,7 +68,7 @@ module Effective
68
68
 
69
69
  # Find or build customer
70
70
  if receipt.customer_id.blank?
71
- customer = api.find_or_create_customer(user: user)
71
+ customer = api.find_or_create_customer(order: order)
72
72
  receipt.update!(customer_id: customer.id)
73
73
  end
74
74
 
@@ -1,3 +1,3 @@
1
1
  module EffectiveQbOnline
2
- VERSION = '0.4.0'.freeze
2
+ VERSION = '0.5.0'.freeze
3
3
  end
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.0
4
+ version: 0.5.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: 2023-08-24 00:00:00.000000000 Z
11
+ date: 2023-12-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails