quickbooks-ruby 1.0.12 → 1.0.17

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: a1eba3497acedc2c117a231b48c93ba08b99fa4571d667f5b78d62c5774ed3fd
4
- data.tar.gz: ba1ee66b0ba3be2a95b245f1f3dd06fbc34179ed9d5df34472adcc435c8f4544
3
+ metadata.gz: d00435e6aa26f37d76b42d6a00c347da7d2933711d227873b6b388edf6eb414a
4
+ data.tar.gz: 11a9e8052e7d3881d721c8c1ec8fe557d56d0942f96afe6b6ec510b4cfd1517d
5
5
  SHA512:
6
- metadata.gz: 92102915fcc2196839be5e5935265a8622b282af1db0459b23fc7cfe3546e23ab28aa82c414c2ebb2a2e4b51f96384cb976929c3dba0d1df7ee1812ce3e2e546
7
- data.tar.gz: 65772e607f93e278811b71c8db7db9235c0fbc1a9304677c3e62a51c4a96b776adb448201c804f13d0f6a8fe968f932bcba829dc79bec91df5d2fa416d44f2d3
6
+ metadata.gz: 5819adb0f281036ad55ef6d259587ceddffc0d9159db04ec34d5ce66ea1cb85b0c3d82afa6309967f94b3c258c168ad113f2db71ece92d07952126896069098f
7
+ data.tar.gz: fad37ada44e92bc81f437b8e9b3276bcc5dce68c92f7e85e7e4709b554b48b421ebec5fc08ba98a1935d6d8f7c9c24ae3d6f896fdceac65542e82abea56c6aed
@@ -124,6 +124,7 @@ require 'quickbooks/model/item_change'
124
124
  require 'quickbooks/model/report'
125
125
  require 'quickbooks/model/credit_memo_change'
126
126
  require 'quickbooks/model/payment_change'
127
+ require 'quickbooks/model/purchase_change'
127
128
  require 'quickbooks/model/transfer'
128
129
  require 'quickbooks/model/change_data_capture'
129
130
  require 'quickbooks/model/refund_receipt_change'
@@ -181,6 +182,7 @@ require 'quickbooks/service/item_change'
181
182
  require 'quickbooks/service/reports'
182
183
  require 'quickbooks/service/credit_memo_change'
183
184
  require 'quickbooks/service/payment_change'
185
+ require 'quickbooks/service/purchase_change'
184
186
  require 'quickbooks/service/transfer'
185
187
  require 'quickbooks/service/change_data_capture'
186
188
  require 'quickbooks/service/refund_receipt_change'
@@ -192,6 +194,7 @@ module Quickbooks
192
194
  @@sandbox_mode = false
193
195
  @@logger = nil
194
196
  @@minorversion = 47
197
+ @@http_adapter = :net_http
195
198
 
196
199
  class << self
197
200
  def sandbox_mode
@@ -218,6 +221,14 @@ module Quickbooks
218
221
  @@logger = logger
219
222
  end
220
223
 
224
+ def http_adapter
225
+ @@http_adapter
226
+ end
227
+
228
+ def http_adapter=(adapter)
229
+ @@http_adapter = adapter
230
+ end
231
+
221
232
  # set logging on or off
222
233
  attr_writer :log, :log_xml_pretty_print
223
234
 
@@ -56,6 +56,7 @@ module Quickbooks
56
56
  xml_accessor :tax_exemption_reason_id, :from => 'TaxExemptionReasonId'
57
57
  xml_accessor :primary_tax_identifier, :from => 'PrimaryTaxIdentifier'
58
58
  xml_accessor :customer_type_ref, :from => 'CustomerTypeRef', :as => BaseReference
59
+ xml_accessor :isproject?, :from => 'IsProject'
59
60
 
60
61
  #== Validations
61
62
  validate :names_cannot_contain_invalid_characters
@@ -36,6 +36,7 @@ module Quickbooks
36
36
  xml_accessor :customer_memo, :from => 'CustomerMemo'
37
37
  xml_accessor :billing_address, :from => 'BillAddr', :as => PhysicalAddress
38
38
  xml_accessor :shipping_address, :from => 'ShipAddr', :as => PhysicalAddress
39
+ xml_accessor :ship_from_address, :from => 'ShipFromAddr', :as => PhysicalAddress
39
40
  xml_accessor :class_ref, :from => 'ClassRef', :as => BaseReference
40
41
  xml_accessor :sales_term_ref, :from => 'SalesTermRef', :as => BaseReference
41
42
  xml_accessor :due_date, :from => 'DueDate', :as => Date
@@ -59,6 +60,7 @@ module Quickbooks
59
60
  xml_accessor :allow_online_credit_card_payment?, :from => 'AllowOnlineCreditCardPayment'
60
61
  xml_accessor :allow_online_ach_payment?, :from => 'AllowOnlineACHPayment'
61
62
  xml_accessor :deposit_to_account_ref, :from => 'DepositToAccountRef', :as => BaseReference
63
+ xml_accessor :bill_email_cc, :from => 'BillEmailCc', :as => EmailAddress
62
64
 
63
65
 
64
66
  reference_setters
@@ -87,6 +89,9 @@ module Quickbooks
87
89
  self.bill_email = EmailAddress.new(email_address_string)
88
90
  end
89
91
 
92
+ def billing_email_cc_address=(email_address_string)
93
+ self.bill_email_cc = EmailAddress.new(email_address_string)
94
+ end
90
95
 
91
96
  def wants_billing_email_sent!
92
97
  self.email_status = EMAIL_STATUS_NEED_TO_SEND
@@ -96,7 +101,6 @@ module Quickbooks
96
101
  email_status == EMAIL_STATUS_NEED_TO_SEND
97
102
  end
98
103
 
99
-
100
104
  def existence_of_customer_ref
101
105
  if customer_ref.nil? || (customer_ref && customer_ref.value == 0)
102
106
  errors.add(:customer_ref, "CustomerRef is required and must be a non-zero value.")
@@ -0,0 +1,7 @@
1
+ module Quickbooks
2
+ module Model
3
+ class PurchaseChange < ChangeModel
4
+ XML_NODE = "Purchase"
5
+ end
6
+ end
7
+ end
@@ -24,10 +24,11 @@ module Quickbooks
24
24
  xml_accessor :attachable_ref, :from => 'AttachableRef', :as => BaseReference
25
25
  xml_accessor :vendor_ref, :from => 'VendorRef', :as => BaseReference
26
26
  xml_accessor :ap_account_ref, :from => 'APAccountRef', :as => BaseReference
27
+ xml_accessor :po_email, from: "POEmail", as: EmailAddress
27
28
  xml_accessor :class_ref, :from => 'ClassRef', :as => BaseReference
28
29
  xml_accessor :sales_term_ref, :from => 'SalesTermRef', :as => BaseReference
29
30
 
30
- xml_accessor :total, :from => 'TotalAmt', :as => BigDecimal, :to_xml => Proc.new { |val| val.to_f }
31
+ xml_accessor :total, :from => 'TotalAmt', :as => BigDecimal, :to_xml => to_xml_big_decimal
31
32
  xml_accessor :due_date, :from => 'DueDate', :as => Date
32
33
  xml_accessor :vendor_address, :from => 'VendorAddr', :as => PhysicalAddress
33
34
  xml_accessor :ship_address, :from => 'ShipAddr', :as => PhysicalAddress
@@ -38,9 +38,20 @@ module Quickbooks
38
38
  value = el.attr('value')
39
39
 
40
40
  next nil if value.blank?
41
- next value if value.to_s.match(/^\d+$|^\d+\.\d+$|^-\d+|^-\d+\.\d+$|^\.\d+$/).nil?
41
+
42
+ parse_row_value(value)
43
+ end
44
+ end
45
+
46
+ def parse_row_value(value)
47
+ # does it look like a number?
48
+ if value =~ /\A\-?[0-9\.]+\Z/
42
49
  BigDecimal(value)
50
+ else
51
+ value
43
52
  end
53
+ rescue ArgumentError
54
+ value
44
55
  end
45
56
 
46
57
  end
@@ -41,6 +41,7 @@ module Quickbooks
41
41
  xml_accessor :account_number, :from => 'AcctNum'
42
42
  xml_accessor :is_1099?, :from => 'Vendor1099'
43
43
  xml_accessor :currency_ref, :from => 'CurrencyRef', :as => BaseReference
44
+ xml_accessor :bill_rate, from: "BillRate", as: BigDecimal, to_xml: to_xml_big_decimal
44
45
 
45
46
  #== Validations
46
47
  validate :names_cannot_contain_invalid_characters
@@ -1,7 +1,6 @@
1
1
  module Quickbooks
2
2
  module Service
3
3
  class AccessToken < BaseService
4
-
5
4
  RENEW_URL = "https://appcenter.intuit.com/api/v1/connection/reconnect"
6
5
  DISCONNECT_URL = "https://developer.api.intuit.com/v2/oauth2/tokens/revoke"
7
6
 
@@ -21,10 +20,15 @@ module Quickbooks
21
20
 
22
21
  # https://developer.intuit.com/docs/0025_quickbooksapi/0053_auth_auth/oauth_management_api#Disconnect
23
22
  def disconnect
24
- conn = Faraday.new
25
- conn.basic_auth oauth.client.id, oauth.client.secret
23
+ connection = Faraday.new(headers: { 'Content-Type' => 'application/json' }) do |f|
24
+ f.adapter(::Quickbooks.http_adapter)
25
+ f.basic_auth(oauth.client.id, oauth.client.secret)
26
+ end
27
+
26
28
  url = "#{DISCONNECT_URL}?minorversion=#{Quickbooks.minorversion}"
27
- response = conn.post(url, token: oauth.refresh_token || oauth.token)
29
+ response = connection.post(url) do |request|
30
+ request.body = JSON.generate({ token: oauth.refresh_token || oauth.token })
31
+ end
28
32
 
29
33
  if response.success?
30
34
  Quickbooks::Model::AccessTokenResponse.new(error_code: "0")
@@ -54,7 +54,7 @@ module Quickbooks
54
54
  builder.use :gzip
55
55
  builder.request :multipart
56
56
  builder.request :url_encoded
57
- builder.adapter :net_http
57
+ builder.adapter ::Quickbooks.http_adapter
58
58
  end
59
59
  end
60
60
 
@@ -0,0 +1,16 @@
1
+ module Quickbooks
2
+ module Service
3
+ class PurchaseChange < ChangeService
4
+
5
+ private
6
+
7
+ def entity
8
+ "Purchase"
9
+ end
10
+
11
+ def model
12
+ Quickbooks::Model::PurchaseChange
13
+ end
14
+ end
15
+ end
16
+ end
@@ -16,6 +16,12 @@ module Quickbooks
16
16
  "#{url}&minorversion=#{Quickbooks.minorversion}"
17
17
  end
18
18
 
19
+ def pdf(purchase_order)
20
+ url = "#{url_for_resource(model::REST_RESOURCE)}/#{purchase_order.id}/pdf"
21
+ response = do_http_raw_get(url, {}, {'Accept' => 'application/pdf'})
22
+ response.plain_body
23
+ end
24
+
19
25
  private
20
26
 
21
27
  def model
@@ -1,5 +1,5 @@
1
1
  module Quickbooks
2
2
 
3
- VERSION = "1.0.12"
3
+ VERSION = "1.0.17"
4
4
 
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quickbooks-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.12
4
+ version: 1.0.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cody Caughlan
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-10 00:00:00.000000000 Z
11
+ date: 2021-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oauth2
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - ">"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '4.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: net-http-persistent
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: nokogiri
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -98,44 +112,44 @@ dependencies:
98
112
  name: simplecov
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
- - - '='
115
+ - - ">="
102
116
  - !ruby/object:Gem::Version
103
- version: 0.7.1
117
+ version: '0'
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
- - - '='
122
+ - - ">="
109
123
  - !ruby/object:Gem::Version
110
- version: 0.7.1
124
+ version: '0'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: rr
113
127
  requirement: !ruby/object:Gem::Requirement
114
128
  requirements:
115
- - - "~>"
129
+ - - ">="
116
130
  - !ruby/object:Gem::Version
117
- version: 1.0.2
131
+ version: '0'
118
132
  type: :development
119
133
  prerelease: false
120
134
  version_requirements: !ruby/object:Gem::Requirement
121
135
  requirements:
122
- - - "~>"
136
+ - - ">="
123
137
  - !ruby/object:Gem::Version
124
- version: 1.0.2
138
+ version: '0'
125
139
  - !ruby/object:Gem::Dependency
126
140
  name: rspec
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
- - - "~>"
143
+ - - ">="
130
144
  - !ruby/object:Gem::Version
131
- version: '3.9'
145
+ version: '0'
132
146
  type: :development
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
- - - "~>"
150
+ - - ">="
137
151
  - !ruby/object:Gem::Version
138
- version: '3.9'
152
+ version: '0'
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: webmock
141
155
  requirement: !ruby/object:Gem::Requirement
@@ -154,16 +168,16 @@ dependencies:
154
168
  name: dotenv
155
169
  requirement: !ruby/object:Gem::Requirement
156
170
  requirements:
157
- - - '='
171
+ - - ">="
158
172
  - !ruby/object:Gem::Version
159
- version: 2.2.1
173
+ version: '0'
160
174
  type: :development
161
175
  prerelease: false
162
176
  version_requirements: !ruby/object:Gem::Requirement
163
177
  requirements:
164
- - - '='
178
+ - - ">="
165
179
  - !ruby/object:Gem::Version
166
- version: 2.2.1
180
+ version: '0'
167
181
  description: QBO V3 REST API to Quickbooks Online
168
182
  email: toolbag@gmail.com
169
183
  executables: []
@@ -249,6 +263,7 @@ files:
249
263
  - lib/quickbooks/model/physical_address.rb
250
264
  - lib/quickbooks/model/preferences.rb
251
265
  - lib/quickbooks/model/purchase.rb
266
+ - lib/quickbooks/model/purchase_change.rb
252
267
  - lib/quickbooks/model/purchase_line_item.rb
253
268
  - lib/quickbooks/model/purchase_order.rb
254
269
  - lib/quickbooks/model/purchase_tax_rate_list.rb
@@ -313,6 +328,7 @@ files:
313
328
  - lib/quickbooks/service/payment_method.rb
314
329
  - lib/quickbooks/service/preferences.rb
315
330
  - lib/quickbooks/service/purchase.rb
331
+ - lib/quickbooks/service/purchase_change.rb
316
332
  - lib/quickbooks/service/purchase_order.rb
317
333
  - lib/quickbooks/service/refund_receipt.rb
318
334
  - lib/quickbooks/service/refund_receipt_change.rb
@@ -345,7 +361,7 @@ homepage: http://github.com/ruckus/quickbooks-ruby
345
361
  licenses:
346
362
  - MIT
347
363
  metadata: {}
348
- post_install_message:
364
+ post_install_message:
349
365
  rdoc_options: []
350
366
  require_paths:
351
367
  - lib
@@ -360,9 +376,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
360
376
  - !ruby/object:Gem::Version
361
377
  version: '0'
362
378
  requirements: []
363
- rubyforge_project:
364
- rubygems_version: 2.7.8
365
- signing_key:
379
+ rubyforge_project:
380
+ rubygems_version: 2.7.6.2
381
+ signing_key:
366
382
  specification_version: 4
367
383
  summary: REST API to Quickbooks Online
368
384
  test_files: []