effective_qb_online 0.3.6 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: af4c52461f0378d8b68ce63a75523a729b94ff217279a2e5c3f4f38f842bc470
4
- data.tar.gz: 9188a00558f0c1eb254f91c7a95e69f9aacdff13d61617cd7e8eb8767f679b0f
3
+ metadata.gz: 57216dcf3ae7c167d41dad7c56b0f6f625b428646efccfe7d3c03149377276f3
4
+ data.tar.gz: 8a6174d2268d4301a432a52b1dac6ff0fce077f7e3eb830b42899a17a5d810e8
5
5
  SHA512:
6
- metadata.gz: 1dfb6a10786272862f188f6b15d5dc864cb3d5e7b2582818b6629f0d9d86aa416046cbb4cd07b4bc526c4e38aae4641adede2d01289d7dca21290da551ff17e5
7
- data.tar.gz: bd9bedd6b1dfb1c10de29e37cc6ce122eb6b2d499de34def2c0796eac6d01cef63c71c4082cb3b9616b1df626fdac1169186cf82ef1eb30e3a245232baae6c95
6
+ metadata.gz: dd06c85052e13213874e0e70d6830b35b2e3f6c34f670eb289e0d2ac0ab712b24b47fd1f9eee199d61c6c1e8250d5f3c74ac676204cc2bf1856d65e5b70db945
7
+ data.tar.gz: e6d6c68c7354f14b8bd951d6f203e6a4e1f2ab9901f1f58b790004da95a2ec95bbff6de9f89c3666c0e6a16c19b2a6d0c8223ff32ff1dff582a1d4aedd2664a1
data/MIT-LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright 2022 Code and Effect Inc.
1
+ Copyright 2023 Code and Effect Inc.
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
@@ -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,8 +1,4 @@
1
1
  EffectiveQbOnline.setup do |config|
2
- config.qb_realms_table_name = :qb_realms
3
- config.qb_receipts_table_name = :qb_receipts
4
- config.qb_receipt_items_table_name = :qb_receipt_items
5
-
6
2
  # Layout Settings
7
3
  # Configure the Layout per controller, or all at once
8
4
  # config.layout = { application: 'application', admin: 'admin' }
@@ -1,6 +1,6 @@
1
- class CreateEffectiveQbOnline < ActiveRecord::Migration[6.1]
1
+ class CreateEffectiveQbOnline < ActiveRecord::Migration[6.0]
2
2
  def change
3
- create_table <%= @qb_realms_table_name %> do |t|
3
+ create_table :qb_realms do |t|
4
4
  t.string :realm_id
5
5
 
6
6
  t.integer :deposit_to_account_id
@@ -15,7 +15,7 @@ class CreateEffectiveQbOnline < ActiveRecord::Migration[6.1]
15
15
  t.timestamps
16
16
  end
17
17
 
18
- create_table <%= @qb_receipts_table_name %> do |t|
18
+ create_table :qb_receipts do |t|
19
19
  t.integer :order_id
20
20
  t.integer :customer_id
21
21
 
@@ -27,9 +27,9 @@ class CreateEffectiveQbOnline < ActiveRecord::Migration[6.1]
27
27
  t.timestamps
28
28
  end
29
29
 
30
- add_index <%= @qb_receipts_table_name %>, :order_id
30
+ add_index :qb_receipts, :order_id
31
31
 
32
- create_table <%= @qb_receipt_items_name %> do |t|
32
+ create_table :qb_receipt_items_name do |t|
33
33
  t.integer :qb_receipt_id
34
34
  t.integer :order_item_id
35
35
 
@@ -1,3 +1,3 @@
1
1
  module EffectiveQbOnline
2
- VERSION = '0.3.6'.freeze
2
+ VERSION = '0.5.0'.freeze
3
3
  end
@@ -20,11 +20,7 @@ module EffectiveQbOnline
20
20
  end
21
21
 
22
22
  def create_migration_file
23
- @qb_realms_table_name = ':' + EffectiveQbOnline.qb_realms_table_name.to_s
24
- @qb_receipts_table_name = ':' + EffectiveQbOnline.qb_receipts_table_name.to_s
25
- @qb_receipt_items_table_name = ':' + EffectiveQbOnline.qb_receipt_items_table_name.to_s
26
-
27
- migration_template ('../' * 3) + 'db/migrate/01_create_effective_qb_online.rb.erb', 'db/migrate/create_effective_qb_online.rb'
23
+ migration_template ('../' * 3) + 'db/migrate/101_create_effective_qb_online.rb', 'db/migrate/create_effective_qb_online.rb'
28
24
  end
29
25
 
30
26
  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.3.6
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-05-23 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
@@ -137,7 +137,7 @@ dependencies:
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  - !ruby/object:Gem::Dependency
140
- name: haml-rails
140
+ name: haml
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - ">="
@@ -231,7 +231,7 @@ files:
231
231
  - app/views/admin/qb_receipts/new.html.haml
232
232
  - config/effective_qb_online.rb
233
233
  - config/routes.rb
234
- - db/migrate/01_create_effective_qb_online.rb.erb
234
+ - db/migrate/101_create_effective_qb_online.rb
235
235
  - db/seeds.rb
236
236
  - lib/effective_qb_online.rb
237
237
  - lib/effective_qb_online/engine.rb
@@ -258,7 +258,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
258
258
  - !ruby/object:Gem::Version
259
259
  version: '0'
260
260
  requirements: []
261
- rubygems_version: 3.1.2
261
+ rubygems_version: 3.3.7
262
262
  signing_key:
263
263
  specification_version: 4
264
264
  summary: Create QuickBooks Online SalesReceipts for purchased effective orders