quickbooks-ruby 0.2.2 → 0.2.3
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/lib/quickbooks-ruby.rb +3 -0
- data/lib/quickbooks/model/base_model.rb +1 -0
- data/lib/quickbooks/model/definition.rb +42 -0
- data/lib/quickbooks/model/fault.rb +1 -0
- data/lib/quickbooks/model/reports.rb +17 -0
- data/lib/quickbooks/service/base_service.rb +10 -1
- data/lib/quickbooks/service/reports.rb +28 -0
- data/lib/quickbooks/util/collection.rb +2 -0
- data/lib/quickbooks/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 24d6dec4cc2648c1f89dbae32ce9420d39fe9349
|
4
|
+
data.tar.gz: 8f26780aa09b6fafaf97cb828f004268f03403be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1d0f9f637b9feadba851884ebaeb5108a8a88ef8b7b1f78fbb72537b87156dd8095f251e8c3655381e8d64df6876f3f87491e34c3a32bc2a68337c2b506d66f6
|
7
|
+
data.tar.gz: 20850df806e99bb8acb64f2a0590a1d9059f2ecc44c5bd9951eabe970a4124175329d867884c25ca3cbd8dac86ae92ef90c25854915898fcc259d3ac4148261d
|
data/lib/quickbooks-ruby.rb
CHANGED
@@ -15,6 +15,7 @@ require 'quickbooks/util/name_entity'
|
|
15
15
|
require 'quickbooks/util/query_builder'
|
16
16
|
|
17
17
|
#== Models
|
18
|
+
require 'quickbooks/model/definition'
|
18
19
|
require 'quickbooks/model/validator'
|
19
20
|
require 'quickbooks/model/base_model'
|
20
21
|
require 'quickbooks/model/base_reference'
|
@@ -100,6 +101,7 @@ require 'quickbooks/model/invoice_change'
|
|
100
101
|
require 'quickbooks/model/customer_change'
|
101
102
|
require 'quickbooks/model/vendor_change'
|
102
103
|
require 'quickbooks/model/item_change'
|
104
|
+
require 'quickbooks/model/reports'
|
103
105
|
|
104
106
|
|
105
107
|
#== Services
|
@@ -142,6 +144,7 @@ require 'quickbooks/service/upload'
|
|
142
144
|
require 'quickbooks/util/multipart'
|
143
145
|
require 'quickbooks/service/vendor_change'
|
144
146
|
require 'quickbooks/service/item_change'
|
147
|
+
require 'quickbooks/service/reports'
|
145
148
|
|
146
149
|
module Quickbooks
|
147
150
|
@@sandbox_mode = false
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module Definition
|
2
|
+
|
3
|
+
def self.included(base)
|
4
|
+
base.extend(ClassMethods)
|
5
|
+
end
|
6
|
+
|
7
|
+
module ClassMethods
|
8
|
+
# https://developer.intuit.com/docs/0025_quickbooksapi/0050_data_services
|
9
|
+
TRANSACTION_ENTITIES = %w{
|
10
|
+
Bill
|
11
|
+
BillPayment
|
12
|
+
CreditMemo
|
13
|
+
Estimate
|
14
|
+
Invoice
|
15
|
+
JournalEntry
|
16
|
+
Payment
|
17
|
+
Purchase
|
18
|
+
PurchaseOrder
|
19
|
+
RefundReceipt
|
20
|
+
SalesReceipt
|
21
|
+
TimeActivity
|
22
|
+
VendorCredit
|
23
|
+
}
|
24
|
+
|
25
|
+
def is_transaction_entity?
|
26
|
+
TRANSACTION_ENTITIES.include?(self.name.demodulize)
|
27
|
+
end
|
28
|
+
|
29
|
+
def is_name_list_entity?
|
30
|
+
!self.is_transaction_entity?
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def is_transaction_entity?
|
35
|
+
self.class.is_transaction_entity?
|
36
|
+
end
|
37
|
+
|
38
|
+
def is_name_list_entity?
|
39
|
+
self.class.is_name_list_entity?
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Quickbooks
|
2
|
+
module Model
|
3
|
+
class Reports < BaseModel
|
4
|
+
XML_COLLECTION_NODE = "Reports"
|
5
|
+
XML_NODE = "Reports"
|
6
|
+
REST_RESOURCE = 'reports'
|
7
|
+
|
8
|
+
REPORTS = ['BalanceSheet', 'ProfitandLoss', 'ProfitandLossDetail', 'CashFlow']
|
9
|
+
|
10
|
+
xml_name XML_NODE
|
11
|
+
|
12
|
+
xml_accessor :currency, :from => 'Header/Currency'
|
13
|
+
xml_accessor :body
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -85,6 +85,7 @@ module Quickbooks
|
|
85
85
|
|
86
86
|
start_position = ((page - 1) * per_page) + 1 # page=2, per_page=10 then we want to start at 11
|
87
87
|
max_results = per_page
|
88
|
+
|
88
89
|
response = do_http_get(url_for_query(query, start_position, max_results))
|
89
90
|
|
90
91
|
parse_collection(response, model)
|
@@ -121,9 +122,13 @@ module Quickbooks
|
|
121
122
|
if collection.count > 0
|
122
123
|
xml.xpath(path_to_nodes).each do |xa|
|
123
124
|
entry = model.from_xml(xa)
|
125
|
+
addition = xml.xpath(path_to_nodes)[0].xpath("//xmlns:Currency").children.to_s if "#{model::XML_NODE}" == "Reports"
|
126
|
+
entry.currency = addition if "#{model::XML_NODE}" == "Reports"
|
127
|
+
collection.body = response.body if "#{model::XML_NODE}" == "Reports"
|
124
128
|
results << entry
|
125
129
|
end
|
126
|
-
end
|
130
|
+
end
|
131
|
+
|
127
132
|
collection.entries = results
|
128
133
|
rescue => ex
|
129
134
|
raise Quickbooks::IntuitRequestException.new("Error parsing XML: #{ex.message}")
|
@@ -286,6 +291,10 @@ module Quickbooks
|
|
286
291
|
if code_attr
|
287
292
|
error[:code] = code_attr.value
|
288
293
|
end
|
294
|
+
element_attr = error_element.attributes['element']
|
295
|
+
if code_attr
|
296
|
+
error[:element] = code_attr.value
|
297
|
+
end
|
289
298
|
error[:message] = error_element.xpath("//xmlns:Message").text
|
290
299
|
error[:detail] = error_element.xpath("//xmlns:Detail").text
|
291
300
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Quickbooks
|
2
|
+
module Service
|
3
|
+
class Reports < BaseService
|
4
|
+
|
5
|
+
def url_for_query(which_report = 'BalanceSheet', date_macro = 'This Fiscal Year-to-date')
|
6
|
+
"#{url_for_base}/reports/#{which_report}?date_macro=#{URI.encode_www_form_component(date_macro)}"
|
7
|
+
end
|
8
|
+
|
9
|
+
def fetch_collection(model, date_macro, object_query)
|
10
|
+
response = do_http_get(url_for_query(object_query, date_macro))
|
11
|
+
|
12
|
+
parse_collection(response, model)
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
def query(object_query = 'BalanceSheet', date_macro = 'This Fiscal Year-to-date')
|
17
|
+
fetch_collection(model, date_macro , object_query)
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def model
|
23
|
+
Quickbooks::Model::Reports
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/lib/quickbooks/version.rb
CHANGED
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: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cody Caughlan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: oauth
|
@@ -209,6 +209,7 @@ files:
|
|
209
209
|
- lib/quickbooks/model/custom_field.rb
|
210
210
|
- lib/quickbooks/model/customer.rb
|
211
211
|
- lib/quickbooks/model/customer_change.rb
|
212
|
+
- lib/quickbooks/model/definition.rb
|
212
213
|
- lib/quickbooks/model/delivery_info.rb
|
213
214
|
- lib/quickbooks/model/department.rb
|
214
215
|
- lib/quickbooks/model/deposit.rb
|
@@ -250,6 +251,7 @@ files:
|
|
250
251
|
- lib/quickbooks/model/purchase_order.rb
|
251
252
|
- lib/quickbooks/model/purchase_tax_rate_list.rb
|
252
253
|
- lib/quickbooks/model/refund_receipt.rb
|
254
|
+
- lib/quickbooks/model/reports.rb
|
253
255
|
- lib/quickbooks/model/sales_item_line_detail.rb
|
254
256
|
- lib/quickbooks/model/sales_receipt.rb
|
255
257
|
- lib/quickbooks/model/sales_tax_rate_list.rb
|
@@ -297,6 +299,7 @@ files:
|
|
297
299
|
- lib/quickbooks/service/purchase.rb
|
298
300
|
- lib/quickbooks/service/purchase_order.rb
|
299
301
|
- lib/quickbooks/service/refund_receipt.rb
|
302
|
+
- lib/quickbooks/service/reports.rb
|
300
303
|
- lib/quickbooks/service/sales_receipt.rb
|
301
304
|
- lib/quickbooks/service/service_crud.rb
|
302
305
|
- lib/quickbooks/service/tax_code.rb
|