quickbooks-ruby 0.2.2 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|