effective_qb_online 0.8.3 → 0.8.4

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: adc0a0db4e6705bc04ff27340d8ba7b74ee9c0734472268af41120a5d30b124b
4
- data.tar.gz: 0af6528d535d6cc97c46758a9f553814214bcf2c83c9820cdc5afffbbec9c985
3
+ metadata.gz: e4a6e26114f3805b82bdbcbc34318059adb74df98bb512ae0615e007afbd51ea
4
+ data.tar.gz: f53a3c1ce92f2c00173b9c6f546f73c857aee00727804cd58e92dcfef51b6f2f
5
5
  SHA512:
6
- metadata.gz: 7ddd6803d1cf235625bd8b77cecd3ce90ddf4e7166e79dabe1f3e1aba7de25b3d85a21411247b692c956046123f59dbe6fe773580f4bcfc64f308c34d4552d0f
7
- data.tar.gz: 342abd4b14a36c93f66fce106a5d55cc50b7c1dc9bc6e1b979f8d1bb2a0e14fa4f65bcaac6dba3d2cc17462d7e86f9ead435496d46708065a6949c37c215b9d8
6
+ metadata.gz: 87d0bebfa848203a06341107077234f66d1c3a54aa749c210c270770af4d42d2e66b258c181dc33cc142e3441e6fab7aab32c938317266f16f1725f8f95d84ee
7
+ data.tar.gz: 6470e477febff32df0df7a648df3521f6ea65f1433f244f99ce095a56c1f76f1e1d68ed58b2abd32ad8a3a00f98980cdeb8c459bf751359b1f50a307c111758f
@@ -105,7 +105,25 @@ module Effective
105
105
  raise('expected an Effective::Order') unless order.kind_of?(Effective::Order)
106
106
 
107
107
  with_service('Customer') do |service|
108
- service.find_by(:display_name, scrub(order.billing_name))&.first
108
+ util = Quickbooks::Util::QueryBuilder.new
109
+
110
+ # Find by display name
111
+ customer = service.find_by(:display_name, scrub(order.qb_online_customer_display_name))&.first
112
+
113
+ # Find by email
114
+ customer ||= if order.email.present?
115
+ email = util.clause("PrimaryEmailAddr", "LIKE", order.email)
116
+ service.query("SELECT * FROM Customer WHERE #{email}")&.first
117
+ end
118
+
119
+ # Find by first name and last name
120
+ customer ||= if order.billing_first_name.present? && order.billing_last_name.present?
121
+ first_name = util.clause("GivenName", "LIKE", order.billing_first_name)
122
+ last_name = util.clause("FamilyName", "LIKE", order.billing_last_name)
123
+ service.query("SELECT * FROM Customer WHERE #{first_name} AND #{last_name}")&.first
124
+ end
125
+
126
+ customer
109
127
  end
110
128
  end
111
129
 
@@ -116,7 +134,7 @@ module Effective
116
134
  with_service('Customer') do |service|
117
135
  customer = Quickbooks::Model::Customer.new(
118
136
  primary_email_address: Quickbooks::Model::EmailAddress.new(order.email),
119
- display_name: scrub(order.billing_name)
137
+ display_name: scrub(order.qb_online_customer_display_name)
120
138
  )
121
139
 
122
140
  service.create(customer)
@@ -1,3 +1,3 @@
1
1
  module EffectiveQbOnline
2
- VERSION = '0.8.3'.freeze
2
+ VERSION = '0.8.4'.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.8.3
4
+ version: 0.8.4
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: 2025-12-08 00:00:00.000000000 Z
11
+ date: 2025-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails