qbwc_requests 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -2
  3. data/lib/qbwc_requests/{qbwc/request/v07/account.rb → account/v07/add.rb} +3 -3
  4. data/lib/qbwc_requests/account/v07/query.rb +9 -0
  5. data/lib/qbwc_requests/base.rb +76 -0
  6. data/lib/qbwc_requests/bill/v07/add.rb +11 -0
  7. data/lib/qbwc_requests/bill/v07/query.rb +9 -0
  8. data/lib/qbwc_requests/customer/v07/add.rb +39 -0
  9. data/lib/qbwc_requests/customer/v07/query.rb +9 -0
  10. data/lib/qbwc_requests/{qbwc/request/v07/estimate.rb → estimate/v07/add.rb} +5 -4
  11. data/lib/qbwc_requests/estimate/v07/query.rb +9 -0
  12. data/lib/qbwc_requests/factory.rb +32 -0
  13. data/lib/qbwc_requests/general_detail_report/v07/query.rb +9 -0
  14. data/lib/qbwc_requests/{qbwc/request/v07/invoice.rb → invoice/v07/add.rb} +5 -5
  15. data/lib/qbwc_requests/invoice/v07/query.rb +9 -0
  16. data/lib/qbwc_requests/item/v07/query.rb +9 -0
  17. data/lib/qbwc_requests/{qbwc/request/v07/item_discount.rb → item_discount/v07/add.rb} +5 -4
  18. data/lib/qbwc_requests/item_discount/v07/query.rb +9 -0
  19. data/lib/qbwc_requests/{qbwc/request/v07/item_group.rb → item_group/v07/add.rb} +4 -3
  20. data/lib/qbwc_requests/item_group/v07/query.rb +9 -0
  21. data/lib/qbwc_requests/{qbwc/request/v07/item_non_inventory.rb → item_non_inventory/v07/add.rb} +5 -4
  22. data/lib/qbwc_requests/item_non_inventory/v07/query.rb +9 -0
  23. data/lib/qbwc_requests/{qbwc/request/v07/item_other_charge.rb → item_other_charge/v07/add.rb} +4 -3
  24. data/lib/qbwc_requests/item_other_charge/v07/query.rb +9 -0
  25. data/lib/qbwc_requests/{qbwc/request/v07/item_payment.rb → item_payment/v07/add.rb} +4 -3
  26. data/lib/qbwc_requests/item_payment/v07/query.rb +9 -0
  27. data/lib/qbwc_requests/{qbwc/request/v07/item_service.rb → item_service/v07/add.rb} +4 -3
  28. data/lib/qbwc_requests/item_service/v07/query.rb +9 -0
  29. data/lib/qbwc_requests/{qbwc/request/v07/item_subtotal.rb → item_subtotal/v07/add.rb} +5 -4
  30. data/lib/qbwc_requests/item_subtotal/v07/query.rb +9 -0
  31. data/lib/qbwc_requests/ordered_fields.rb +81 -0
  32. data/lib/qbwc_requests/purchase_order/v07/add.rb +33 -0
  33. data/lib/qbwc_requests/{qbwc/request/v07/purchase_order.rb → purchase_order/v07/mod.rb} +10 -14
  34. data/lib/qbwc_requests/purchase_order/v07/query.rb +9 -0
  35. data/lib/qbwc_requests/sub_models/address.rb +27 -0
  36. data/lib/qbwc_requests/vendor/v07/add.rb +44 -0
  37. data/lib/qbwc_requests/vendor/v07/mod.rb +44 -0
  38. data/lib/qbwc_requests/vendor/v07/query.rb +9 -0
  39. data/lib/qbwc_requests/vendor/v13/add.rb +44 -0
  40. data/lib/qbwc_requests/vendor/v13/mod.rb +44 -0
  41. data/lib/qbwc_requests/vendor/v13/query.rb +9 -0
  42. data/lib/qbwc_requests/version.rb +1 -1
  43. data/lib/qbwc_requests/{qbwc/xml_actions.rb → xml_actions.rb} +2 -9
  44. data/lib/qbwc_requests.rb +51 -5
  45. data/qbwc_requests.gemspec +4 -2
  46. data/quickbook/dtd/qbxmlops60.dtd +3043 -0
  47. data/quickbook/dtd/qbxmlops60_2.dtd +3019 -0
  48. data/scripts/dtd_to_classes.rb +3 -0
  49. data/spec/account_qbxml_spec.rb +42 -0
  50. data/spec/{qbwc/request/v07/bill_spec.rb → bill_qbxml_spec.rb} +10 -5
  51. data/spec/customer_qbxml_spec.rb +57 -0
  52. data/spec/{qbwc/request/v07/estimate_spec.rb → estimate_qbxml_spec.rb} +19 -8
  53. data/spec/general_detail_report_qbxml_spec.rb +9 -0
  54. data/spec/{qbwc/request/v07/invoice_spec.rb → invoice_qbxml_spec.rb} +11 -9
  55. data/spec/{qbwc/request/v07/item_discount_spec.rb → item_discount_qbxml_spec.rb} +10 -8
  56. data/spec/{qbwc/request/v07/item_group_spec.rb → item_group_qbxml_spec.rb} +9 -7
  57. data/spec/{qbwc/request/v07/item_non_inventory_spec.rb → item_non_inventory_qbxml_spec.rb} +9 -7
  58. data/spec/{qbwc/request/v07/item_other_charge_spec.rb → item_other_charge_qbxml_spec.rb} +10 -8
  59. data/spec/{qbwc/request/v07/item_payment_spec.rb → item_payment_qbxml_spec.rb} +10 -7
  60. data/spec/item_qbxml_spec.rb +9 -0
  61. data/spec/{qbwc/request/v07/item_service_spec.rb → item_service_qbxml_spec.rb} +9 -7
  62. data/spec/{qbwc/request/v07/item_subtotal_spec.rb → item_subtotal_qbxml_spec.rb} +12 -10
  63. data/spec/job_report_qbxml_spec.rb +7 -0
  64. data/spec/{qbwc/request/v07/purchase_orders_spec.rb → purchase_order_qbxml_spec.rb} +11 -10
  65. data/spec/spec_helper.rb +5 -0
  66. data/spec/support/expectations/field_validations.rb +2 -2
  67. data/spec/support/expectations/xml_equal.rb +4 -2
  68. data/spec/support/shared_examples_for_xml_requests.rb +18 -20
  69. data/spec/vendor_qbxml_spec.rb +111 -0
  70. metadata +113 -68
  71. data/lib/qbwc_requests/qbwc/ordered_fields.rb +0 -35
  72. data/lib/qbwc_requests/qbwc/qbwc.rb +0 -2
  73. data/lib/qbwc_requests/qbwc/request/base.rb +0 -77
  74. data/lib/qbwc_requests/qbwc/request/v07/bill.rb +0 -9
  75. data/lib/qbwc_requests/qbwc/request/v07/customer.rb +0 -29
  76. data/lib/qbwc_requests/qbwc/request/v07/general_detail_report.rb +0 -11
  77. data/lib/qbwc_requests/qbwc/request/v07/item.rb +0 -11
  78. data/lib/qbwc_requests/qbwc/request/v07/job_report.rb +0 -3
  79. data/lib/qbwc_requests/qbwc/request/v07/vendor.rb +0 -31
  80. data/lib/qbwc_requests/qbwc/request/v07/vendor_address.rb +0 -17
  81. data/spec/qbwc/request/base_spec.rb +0 -61
  82. data/spec/qbwc/request/v07/account_spec.rb +0 -32
  83. data/spec/qbwc/request/v07/customer_spec.rb +0 -32
  84. data/spec/qbwc/request/v07/general_detail_report_spec.rb +0 -7
  85. data/spec/qbwc/request/v07/item_spec.rb +0 -7
  86. data/spec/qbwc/request/v07/job_report_spec.rb +0 -7
  87. data/spec/qbwc/request/v07/vendor_spec.rb +0 -31
  88. data/spec/qbwc/request/xml_actions_spec.rb +0 -28
@@ -1,24 +1,22 @@
1
- RSpec.shared_examples 'queryable' do
2
-
3
- describe 'query method' do
1
+ RSpec.shared_examples 'queryable' do |version|
4
2
 
5
- let(:xml) do
6
- <<-XML
7
- <?xml version='1.0' encoding='utf-8'?><?qbxml version="7.0"?>
8
- <QBXML>
9
- <QBXMLMsgsRq onError="stopOnError">
10
- <#{described_class.name.demodulize}QueryRq>
11
- <MaxReturned>2000</MaxReturned>
12
- </#{described_class.name.demodulize}QueryRq>
13
- </QBXMLMsgsRq>
14
- </QBXML>
15
- XML
16
- end
17
-
18
- it 'should create a query xml' do
19
- expect(described_class.query).to be_xml_equal_to xml
20
- end
3
+ let(:xml) do
4
+ name = described_class.name
5
+ <<-XML
6
+ <?xml version="1.0" encoding="ISO-8859-1"?>
7
+ <?qbxml version="#{version ? version+'.0' : '7.0'}"?>
8
+ <QBXML>
9
+ <QBXMLMsgsRq onError="stopOnError">
10
+ <#{name}QueryRq requestID="request_id">
11
+ <MaxReturned>2000</MaxReturned>
12
+ </#{name}QueryRq>
13
+ </QBXMLMsgsRq>
14
+ </QBXML>
15
+ XML
16
+ end
21
17
 
18
+ it "creates a valid #{described_class.name}QueryRq xml" do
19
+ expect(described_class.factory({max_returned: 2000},version||"07").to_xml("request_id")).to be_xml_equal_to xml
22
20
  end
23
21
 
24
- end
22
+ end
@@ -0,0 +1,111 @@
1
+ require 'spec_helper'
2
+
3
+ describe VendorQbxml do
4
+
5
+ describe VendorQbxml::Query do
6
+
7
+ context "V07" do
8
+ it_behaves_like 'queryable'
9
+ end
10
+
11
+ context "V13" do
12
+ it_behaves_like 'queryable', "13"
13
+ end
14
+
15
+ end
16
+
17
+ describe VendorQbxml::Mod do
18
+
19
+ context "V07" do
20
+
21
+ it "should create an modify vendor xml" do
22
+ xml = <<-XML
23
+ <?xml version="1.0" encoding="ISO-8859-1"?>
24
+ <?qbxml version="7.0"?>
25
+ <QBXML>
26
+ <QBXMLMsgsRq onError="stopOnError">
27
+ <VendorModRq requestID="request_id">
28
+ <VendorMod>
29
+ <Name>a</Name>
30
+ </VendorMod>
31
+ </VendorModRq>
32
+ </QBXMLMsgsRq>
33
+ </QBXML>
34
+ XML
35
+ expect( subject.factory(name: "a").to_xml("request_id") )
36
+ .to be_xml_equal_to xml
37
+ end
38
+
39
+ end
40
+
41
+ context "V13" do
42
+
43
+ it "should create an modify vendor xml" do
44
+ xml = <<-XML
45
+ <?xml version="1.0" encoding="ISO-8859-1"?>
46
+ <?qbxml version="13.0"?>
47
+ <QBXML>
48
+ <QBXMLMsgsRq onError="stopOnError">
49
+ <VendorModRq requestID="request_id">
50
+ <VendorMod>
51
+ <Name>a</Name>
52
+ </VendorMod>
53
+ </VendorModRq>
54
+ </QBXMLMsgsRq>
55
+ </QBXML>
56
+ XML
57
+ expect( subject.factory({name: "a"}, "13").to_xml("request_id") )
58
+ .to be_xml_equal_to xml
59
+ end
60
+ end
61
+
62
+ end
63
+
64
+ describe VendorQbxml::Add do
65
+
66
+ context "V07" do
67
+
68
+ it "should create an add vendor xml" do
69
+ xml = <<-XML
70
+ <?xml version="1.0" encoding="ISO-8859-1"?>
71
+ <?qbxml version="7.0"?>
72
+ <QBXML>
73
+ <QBXMLMsgsRq onError="stopOnError">
74
+ <VendorAddRq requestID="request_id">
75
+ <VendorAdd>
76
+ <Name>a</Name>
77
+ </VendorAdd>
78
+ </VendorAddRq>
79
+ </QBXMLMsgsRq>
80
+ </QBXML>
81
+ XML
82
+ expect( subject.factory(name: "a").to_xml("request_id") )
83
+ .to be_xml_equal_to xml
84
+ end
85
+
86
+ end
87
+
88
+ context "V13" do
89
+
90
+ it "should create an add vendor xml" do
91
+ xml = <<-XML
92
+ <?xml version="1.0" encoding="ISO-8859-1"?>
93
+ <?qbxml version="13.0"?>
94
+ <QBXML>
95
+ <QBXMLMsgsRq onError="stopOnError">
96
+ <VendorAddRq requestID="request_id">
97
+ <VendorAdd>
98
+ <Name>a</Name>
99
+ </VendorAdd>
100
+ </VendorAddRq>
101
+ </QBXMLMsgsRq>
102
+ </QBXML>
103
+ XML
104
+ expect( subject.factory({name: "a"},"13").to_xml("request_id") )
105
+ .to be_xml_equal_to xml
106
+ end
107
+
108
+ end
109
+
110
+ end
111
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qbwc_requests
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexandre Mondaini Calvão
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-02 00:00:00.000000000 Z
11
+ date: 2015-11-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: qbxml
@@ -16,28 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.6
19
+ version: 0.3.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.1.6
26
+ version: 0.3.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activemodel
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: 4.2.4
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 4.2.4
41
+ - !ruby/object:Gem::Dependency
42
+ name: colorize
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.7.7
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
39
53
  - !ruby/object:Gem::Version
40
- version: '0'
54
+ version: 0.7.7
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: bundler
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +80,20 @@ dependencies:
66
80
  - - "~>"
67
81
  - !ruby/object:Gem::Version
68
82
  version: '10.3'
83
+ - !ruby/object:Gem::Dependency
84
+ name: codeclimate-test-reporter
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 0.4.1
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 0.4.1
69
97
  description: A qbxml request generator
70
98
  email:
71
99
  - apotema@gmail.com
@@ -82,30 +110,50 @@ files:
82
110
  - README.md
83
111
  - Rakefile
84
112
  - lib/qbwc_requests.rb
85
- - lib/qbwc_requests/qbwc/ordered_fields.rb
86
- - lib/qbwc_requests/qbwc/qbwc.rb
87
- - lib/qbwc_requests/qbwc/request/base.rb
88
- - lib/qbwc_requests/qbwc/request/v07/account.rb
89
- - lib/qbwc_requests/qbwc/request/v07/bill.rb
90
- - lib/qbwc_requests/qbwc/request/v07/customer.rb
91
- - lib/qbwc_requests/qbwc/request/v07/estimate.rb
92
- - lib/qbwc_requests/qbwc/request/v07/general_detail_report.rb
93
- - lib/qbwc_requests/qbwc/request/v07/invoice.rb
94
- - lib/qbwc_requests/qbwc/request/v07/item.rb
95
- - lib/qbwc_requests/qbwc/request/v07/item_discount.rb
96
- - lib/qbwc_requests/qbwc/request/v07/item_group.rb
97
- - lib/qbwc_requests/qbwc/request/v07/item_non_inventory.rb
98
- - lib/qbwc_requests/qbwc/request/v07/item_other_charge.rb
99
- - lib/qbwc_requests/qbwc/request/v07/item_payment.rb
100
- - lib/qbwc_requests/qbwc/request/v07/item_service.rb
101
- - lib/qbwc_requests/qbwc/request/v07/item_subtotal.rb
102
- - lib/qbwc_requests/qbwc/request/v07/job_report.rb
103
- - lib/qbwc_requests/qbwc/request/v07/purchase_order.rb
104
- - lib/qbwc_requests/qbwc/request/v07/vendor.rb
105
- - lib/qbwc_requests/qbwc/request/v07/vendor_address.rb
106
- - lib/qbwc_requests/qbwc/xml_actions.rb
113
+ - lib/qbwc_requests/account/v07/add.rb
114
+ - lib/qbwc_requests/account/v07/query.rb
115
+ - lib/qbwc_requests/base.rb
116
+ - lib/qbwc_requests/bill/v07/add.rb
117
+ - lib/qbwc_requests/bill/v07/query.rb
118
+ - lib/qbwc_requests/customer/v07/add.rb
119
+ - lib/qbwc_requests/customer/v07/query.rb
120
+ - lib/qbwc_requests/estimate/v07/add.rb
121
+ - lib/qbwc_requests/estimate/v07/query.rb
122
+ - lib/qbwc_requests/factory.rb
123
+ - lib/qbwc_requests/general_detail_report/v07/query.rb
124
+ - lib/qbwc_requests/invoice/v07/add.rb
125
+ - lib/qbwc_requests/invoice/v07/query.rb
126
+ - lib/qbwc_requests/item/v07/query.rb
127
+ - lib/qbwc_requests/item_discount/v07/add.rb
128
+ - lib/qbwc_requests/item_discount/v07/query.rb
129
+ - lib/qbwc_requests/item_group/v07/add.rb
130
+ - lib/qbwc_requests/item_group/v07/query.rb
131
+ - lib/qbwc_requests/item_non_inventory/v07/add.rb
132
+ - lib/qbwc_requests/item_non_inventory/v07/query.rb
133
+ - lib/qbwc_requests/item_other_charge/v07/add.rb
134
+ - lib/qbwc_requests/item_other_charge/v07/query.rb
135
+ - lib/qbwc_requests/item_payment/v07/add.rb
136
+ - lib/qbwc_requests/item_payment/v07/query.rb
137
+ - lib/qbwc_requests/item_service/v07/add.rb
138
+ - lib/qbwc_requests/item_service/v07/query.rb
139
+ - lib/qbwc_requests/item_subtotal/v07/add.rb
140
+ - lib/qbwc_requests/item_subtotal/v07/query.rb
141
+ - lib/qbwc_requests/ordered_fields.rb
142
+ - lib/qbwc_requests/purchase_order/v07/add.rb
143
+ - lib/qbwc_requests/purchase_order/v07/mod.rb
144
+ - lib/qbwc_requests/purchase_order/v07/query.rb
145
+ - lib/qbwc_requests/sub_models/address.rb
146
+ - lib/qbwc_requests/vendor/v07/add.rb
147
+ - lib/qbwc_requests/vendor/v07/mod.rb
148
+ - lib/qbwc_requests/vendor/v07/query.rb
149
+ - lib/qbwc_requests/vendor/v13/add.rb
150
+ - lib/qbwc_requests/vendor/v13/mod.rb
151
+ - lib/qbwc_requests/vendor/v13/query.rb
107
152
  - lib/qbwc_requests/version.rb
153
+ - lib/qbwc_requests/xml_actions.rb
108
154
  - qbwc_requests.gemspec
155
+ - quickbook/dtd/qbxmlops60.dtd
156
+ - quickbook/dtd/qbxmlops60_2.dtd
109
157
  - quickbook/xml/qbxml/examples/xmlfiles/AccountQueryRq.xml
110
158
  - quickbook/xml/qbxml/examples/xmlfiles/BillQueryRq.xml
111
159
  - quickbook/xml/qbxml/examples/xmlfiles/CheckQueryRq.xml
@@ -156,29 +204,28 @@ files:
156
204
  - quickbook/xml/qbxml/examples/xmlfiles/legacy/VendorAddRq.xml
157
205
  - quickbook/xml/qbxmlops130.xml
158
206
  - quickbook/xml/qbxmlops70.xml
159
- - spec/qbwc/request/base_spec.rb
160
- - spec/qbwc/request/v07/account_spec.rb
161
- - spec/qbwc/request/v07/bill_spec.rb
162
- - spec/qbwc/request/v07/customer_spec.rb
163
- - spec/qbwc/request/v07/estimate_spec.rb
164
- - spec/qbwc/request/v07/general_detail_report_spec.rb
165
- - spec/qbwc/request/v07/invoice_spec.rb
166
- - spec/qbwc/request/v07/item_discount_spec.rb
167
- - spec/qbwc/request/v07/item_group_spec.rb
168
- - spec/qbwc/request/v07/item_non_inventory_spec.rb
169
- - spec/qbwc/request/v07/item_other_charge_spec.rb
170
- - spec/qbwc/request/v07/item_payment_spec.rb
171
- - spec/qbwc/request/v07/item_service_spec.rb
172
- - spec/qbwc/request/v07/item_spec.rb
173
- - spec/qbwc/request/v07/item_subtotal_spec.rb
174
- - spec/qbwc/request/v07/job_report_spec.rb
175
- - spec/qbwc/request/v07/purchase_orders_spec.rb
176
- - spec/qbwc/request/v07/vendor_spec.rb
177
- - spec/qbwc/request/xml_actions_spec.rb
207
+ - scripts/dtd_to_classes.rb
208
+ - spec/account_qbxml_spec.rb
209
+ - spec/bill_qbxml_spec.rb
210
+ - spec/customer_qbxml_spec.rb
211
+ - spec/estimate_qbxml_spec.rb
212
+ - spec/general_detail_report_qbxml_spec.rb
213
+ - spec/invoice_qbxml_spec.rb
214
+ - spec/item_discount_qbxml_spec.rb
215
+ - spec/item_group_qbxml_spec.rb
216
+ - spec/item_non_inventory_qbxml_spec.rb
217
+ - spec/item_other_charge_qbxml_spec.rb
218
+ - spec/item_payment_qbxml_spec.rb
219
+ - spec/item_qbxml_spec.rb
220
+ - spec/item_service_qbxml_spec.rb
221
+ - spec/item_subtotal_qbxml_spec.rb
222
+ - spec/job_report_qbxml_spec.rb
223
+ - spec/purchase_order_qbxml_spec.rb
178
224
  - spec/spec_helper.rb
179
225
  - spec/support/expectations/field_validations.rb
180
226
  - spec/support/expectations/xml_equal.rb
181
227
  - spec/support/shared_examples_for_xml_requests.rb
228
+ - spec/vendor_qbxml_spec.rb
182
229
  homepage: ''
183
230
  licenses:
184
231
  - MIT
@@ -204,26 +251,24 @@ signing_key:
204
251
  specification_version: 4
205
252
  summary: This gem helps you generate Qbxml requests
206
253
  test_files:
207
- - spec/qbwc/request/base_spec.rb
208
- - spec/qbwc/request/v07/account_spec.rb
209
- - spec/qbwc/request/v07/bill_spec.rb
210
- - spec/qbwc/request/v07/customer_spec.rb
211
- - spec/qbwc/request/v07/estimate_spec.rb
212
- - spec/qbwc/request/v07/general_detail_report_spec.rb
213
- - spec/qbwc/request/v07/invoice_spec.rb
214
- - spec/qbwc/request/v07/item_discount_spec.rb
215
- - spec/qbwc/request/v07/item_group_spec.rb
216
- - spec/qbwc/request/v07/item_non_inventory_spec.rb
217
- - spec/qbwc/request/v07/item_other_charge_spec.rb
218
- - spec/qbwc/request/v07/item_payment_spec.rb
219
- - spec/qbwc/request/v07/item_service_spec.rb
220
- - spec/qbwc/request/v07/item_spec.rb
221
- - spec/qbwc/request/v07/item_subtotal_spec.rb
222
- - spec/qbwc/request/v07/job_report_spec.rb
223
- - spec/qbwc/request/v07/purchase_orders_spec.rb
224
- - spec/qbwc/request/v07/vendor_spec.rb
225
- - spec/qbwc/request/xml_actions_spec.rb
254
+ - spec/account_qbxml_spec.rb
255
+ - spec/bill_qbxml_spec.rb
256
+ - spec/customer_qbxml_spec.rb
257
+ - spec/estimate_qbxml_spec.rb
258
+ - spec/general_detail_report_qbxml_spec.rb
259
+ - spec/invoice_qbxml_spec.rb
260
+ - spec/item_discount_qbxml_spec.rb
261
+ - spec/item_group_qbxml_spec.rb
262
+ - spec/item_non_inventory_qbxml_spec.rb
263
+ - spec/item_other_charge_qbxml_spec.rb
264
+ - spec/item_payment_qbxml_spec.rb
265
+ - spec/item_qbxml_spec.rb
266
+ - spec/item_service_qbxml_spec.rb
267
+ - spec/item_subtotal_qbxml_spec.rb
268
+ - spec/job_report_qbxml_spec.rb
269
+ - spec/purchase_order_qbxml_spec.rb
226
270
  - spec/spec_helper.rb
227
271
  - spec/support/expectations/field_validations.rb
228
272
  - spec/support/expectations/xml_equal.rb
229
273
  - spec/support/shared_examples_for_xml_requests.rb
274
+ - spec/vendor_qbxml_spec.rb
@@ -1,35 +0,0 @@
1
- module Qbwc
2
- module OrderedFields
3
-
4
- module ClassMethods
5
- def field attribute_name
6
- @attr_order ||= []
7
- @attr_order << attribute_name
8
- attr_accessor attribute_name
9
- end
10
- def attr_order
11
- @attr_order
12
- end
13
- end
14
-
15
- def self.included(base)
16
- base.extend(ClassMethods)
17
- end
18
-
19
- def ordered_fields
20
- new_hash = {}
21
- for attribute in self.class.attr_order
22
- value = send(attribute)
23
- if value.present?
24
- if value.respond_to?(:ordered_fields)
25
- new_hash[attribute] = value.ordered_fields
26
- else
27
- new_hash[attribute] = value
28
- end
29
- end
30
- end
31
- new_hash
32
- end
33
-
34
- end
35
- end
@@ -1,2 +0,0 @@
1
- module Qbwc
2
- end
@@ -1,77 +0,0 @@
1
- module Qbwc
2
- module Request
3
- class Base
4
-
5
- include Qbwc::OrderedFields
6
- extend ActiveModel::Naming
7
- include ActiveModel::Validations
8
- include ActiveModel::Conversion
9
-
10
- def self.query options = nil, header = nil
11
- options = { max_returned: 2000 } if options == nil or options.empty?
12
- XmlActions.query "#{underscore self.name.demodulize}_query_rq", options, header
13
- end
14
-
15
- def modify request_id
16
- modify_xml request_id
17
- end
18
-
19
- def add request_id
20
- self.valid? ? add_xml(request_id) : self
21
- end
22
-
23
- def initialize(attributes = {})
24
- @attributes = compact(attributes)
25
- @attributes.each do |name, value|
26
- self.instance_variable_set("@#{name}", value) if value.present?
27
- end
28
- end
29
-
30
- def class_name
31
- self.class.underscore self.class.name.demodulize
32
- end
33
-
34
- def persisted?
35
- false
36
- end
37
-
38
- private
39
-
40
- def self.underscore string
41
- string.gsub(/::/, '/').
42
- gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
43
- gsub(/([a-z\d])([A-Z])/,'\1_\2').
44
- tr("-", "_").
45
- downcase
46
- end
47
-
48
- def compact opts={}
49
- # I pass two times to avoid {v: '1',k: {}}, gotta find a better algorithm (recursive)
50
- return {} if opts.nil?
51
- proc = Proc.new { |k, v| v.kind_of?(Hash) ? (v.delete_if(&proc); nil) : (v == nil || (v.respond_to?(:empty) && v.empty?)) };
52
- hash = opts.delete_if(&proc)
53
- hash.delete_if { |k, v| (v == nil || (v.respond_to?(:empty) && v.empty?)) }
54
- end
55
-
56
- def add_xml request_id
57
- req = XmlActions.header
58
- req['qbxml']['qbxml_msgs_rq']["#{class_name}_add_rq"] = {"xml_attributes"=>
59
- {"requestID"=>"#{request_id}"},
60
- "#{class_name}_add"=> self.ordered_fields
61
- }
62
- XmlActions.to_xml(req)
63
- end
64
-
65
-
66
- def modify_xml request_id
67
- req = XmlActions.header
68
- req['qbxml']['qbxml_msgs_rq']["#{class_name}_mod_rq"] = {"xml_attributes"=>
69
- {"requestID"=>"#{request_id}"},
70
- "#{class_name}_mod"=> self.ordered_fields
71
- }
72
- XmlActions.to_xml(req)
73
- end
74
-
75
- end
76
- end
77
- end
@@ -1,9 +0,0 @@
1
- module Qbwc
2
- module Request
3
- module V07
4
- class Bill < Qbwc::Request::Base
5
- field :vendor_ref
6
- end
7
- end
8
- end
9
- end
@@ -1,29 +0,0 @@
1
- module Qbwc
2
- module Request
3
- module V07
4
- class Customer < Qbwc::Request::Base
5
-
6
- field :name
7
- field :is_active
8
- field :company_name
9
- field :salutation
10
- field :first_name
11
- field :middle_name
12
- field :last_name
13
- field :suffix
14
- field :job_title
15
- field :phone
16
- field :mobile
17
- field :pager
18
- field :alt_phone
19
- field :fax
20
- field :email
21
- field :cc
22
- field :contact
23
- field :parent_ref
24
-
25
- validates :name, presence: true
26
- end
27
- end
28
- end
29
- end
@@ -1,11 +0,0 @@
1
- module Qbwc
2
- module Request
3
- module V07
4
- class GeneralDetailReport < Qbwc::Request::Base
5
-
6
-
7
-
8
- end
9
- end
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- module Qbwc
2
- module Request
3
- module V07
4
- class Item
5
- def self.query
6
- XmlActions.query "item_query_rq", {max_returned: 2000}, {}
7
- end
8
- end
9
- end
10
- end
11
- end
@@ -1,3 +0,0 @@
1
- class Qbwc::Request::V07::JobReport < Qbwc::Request::Base
2
-
3
- end
@@ -1,31 +0,0 @@
1
- module Qbwc
2
- module Request
3
- module V07
4
- class Vendor < Qbwc::Request::Base
5
-
6
- field :name
7
- field :is_active
8
- field :company_name
9
- field :salutation
10
- field :first_name
11
- field :middle_name
12
- field :last_name
13
- field :vendor_address
14
- field :phone
15
- field :alt_phone
16
- field :fax
17
- field :email
18
- field :contact
19
- field :alt_contact
20
- field :name_on_check
21
- field :account_number
22
- field :notes
23
- field :is_vendor_eligible_for_1099
24
- field :open_balance
25
-
26
- validates :name, presence: true
27
-
28
- end
29
- end
30
- end
31
- end
@@ -1,17 +0,0 @@
1
- module Qbwc
2
- module Request
3
- module V07
4
- class VendorAddress < Qbwc::Request::Base
5
-
6
- field :addr1
7
- field :addr2
8
- field :addr3
9
- field :addr4
10
- field :city
11
- field :state
12
- field :postal_code
13
-
14
- end
15
- end
16
- end
17
- end