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,37 +1,33 @@
1
- module Qbwc
2
- module Request
1
+ module QbwcRequests
2
+ module PurchaseOrder
3
3
  module V07
4
- class PurchaseOrder < Qbwc::Request::Base
5
-
6
- field :vendor_ref
7
- field :class_ref
8
- field :ship_to_entity_ref
9
- field :template_ref
4
+ class Mod < QbwcRequests::Base
5
+ ref_to :vendor, 41
6
+ ref_to :class, 159
7
+ ref_to :ship_to_entity, 209
8
+ ref_to :template, 31
10
9
  field :txn_date
11
10
  field :ref_number
12
11
  field :vendor_address
13
12
  field :ship_address
14
- field :terms_ref
13
+ ref_to :terms, 31
15
14
  field :due_date
16
15
  field :expected_date
17
- field :ship_method_ref
16
+ ref_to :ship_method, 15
18
17
  field :FOB
19
18
  field :memo
20
19
  field :vendor_msg
21
20
  field :is_to_be_printed
22
21
  field :is_to_be_emailed
23
22
  field :is_tax_included
24
- field :sales_tax_code_ref
23
+ ref_to :sales_tax_code, 3
25
24
  field :other1
26
25
  field :other2
27
26
  field :purchase_order_line_add
28
27
  field :purchase_order_line_group_add
29
-
30
- #MODIFICATION FIELDS
31
28
  field :purchase_order_line_mod
32
29
  field :txn_ID
33
30
  field :edit_sequence
34
-
35
31
  end
36
32
  end
37
33
  end
@@ -0,0 +1,9 @@
1
+ module QbwcRequests
2
+ module PurchaseOrder
3
+ module V07
4
+ class Query < QbwcRequests::Base
5
+ field :max_returned
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,27 @@
1
+ module QbwcRequests
2
+ module SubModels
3
+ class Address < QbwcRequests::Base
4
+ field :addr1
5
+ field :addr2
6
+ field :addr3
7
+ field :addr4
8
+ field :addr5
9
+ field :city
10
+ field :state
11
+ field :postal_code
12
+ field :country
13
+ field :note
14
+
15
+ validates :addr1, length: { maximum: 41 }
16
+ validates :addr2, length: { maximum: 41 }
17
+ validates :addr3, length: { maximum: 41 }
18
+ validates :addr4, length: { maximum: 41 }
19
+ validates :addr5, length: { maximum: 41 }
20
+ validates :city, length: { maximum: 41 }
21
+ validates :state, length: { maximum: 21 }
22
+ validates :postal_code, length: { maximum: 13 }
23
+ validates :country, length: { maximum: 31 }
24
+ validates :note, length: { maximum: 41 }
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,44 @@
1
+ module QbwcRequests
2
+ module Vendor
3
+ module V07
4
+ class Add < QbwcRequests::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, length: { maximum: 41 }
27
+ validates :company_name, length: { maximum: 41 }
28
+ validates :salutation, length: { maximum: 15 }
29
+ validates :first_name, length: { maximum: 25 }
30
+ validates :middle_name, length: { maximum: 5 }
31
+ validates :last_name, length: { maximum: 25 }
32
+ validates :phone, length: { maximum: 21 }
33
+ validates :alt_phone, length: { maximum: 21 }
34
+ validates :fax, length: { maximum: 21 }
35
+ validates :email, length: { maximum: 1023 }
36
+ validates :contact, length: { maximum: 41 }
37
+ validates :alt_contact, length: { maximum: 41 }
38
+ validates :name_on_check, length: { maximum: 41 }
39
+ validates :account_number, length: { maximum: 99 }
40
+ validates :notes, length: { maximum: 4095 }
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,44 @@
1
+ module QbwcRequests
2
+ module Vendor
3
+ module V07
4
+ class Mod < QbwcRequests::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, length: { maximum: 41 }
27
+ validates :company_name, length: { maximum: 41 }
28
+ validates :salutation, length: { maximum: 15 }
29
+ validates :first_name, length: { maximum: 25 }
30
+ validates :middle_name, length: { maximum: 5 }
31
+ validates :last_name, length: { maximum: 25 }
32
+ validates :phone, length: { maximum: 21 }
33
+ validates :alt_phone, length: { maximum: 21 }
34
+ validates :fax, length: { maximum: 21 }
35
+ validates :email, length: { maximum: 1023 }
36
+ validates :contact, length: { maximum: 41 }
37
+ validates :alt_contact, length: { maximum: 41 }
38
+ validates :name_on_check, length: { maximum: 41 }
39
+ validates :account_number, length: { maximum: 99 }
40
+ validates :notes, length: { maximum: 4095 }
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,9 @@
1
+ module QbwcRequests
2
+ module Vendor
3
+ module V07
4
+ class Query < QbwcRequests::Base
5
+ field :max_returned
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,44 @@
1
+ module QbwcRequests
2
+ module Vendor
3
+ module V13
4
+ class Add < QbwcRequests::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, length: { maximum: 41 }
27
+ validates :company_name, length: { maximum: 41 }
28
+ validates :salutation, length: { maximum: 15 }
29
+ validates :first_name, length: { maximum: 25 }
30
+ validates :middle_name, length: { maximum: 5 }
31
+ validates :last_name, length: { maximum: 25 }
32
+ validates :phone, length: { maximum: 21 }
33
+ validates :alt_phone, length: { maximum: 21 }
34
+ validates :fax, length: { maximum: 21 }
35
+ validates :email, length: { maximum: 1023 }
36
+ validates :contact, length: { maximum: 41 }
37
+ validates :alt_contact, length: { maximum: 41 }
38
+ validates :name_on_check, length: { maximum: 41 }
39
+ validates :account_number, length: { maximum: 99 }
40
+ validates :notes, length: { maximum: 4095 }
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,44 @@
1
+ module QbwcRequests
2
+ module Vendor
3
+ module V13
4
+ class Mod < QbwcRequests::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, length: { maximum: 41 }
27
+ validates :company_name, length: { maximum: 41 }
28
+ validates :salutation, length: { maximum: 15 }
29
+ validates :first_name, length: { maximum: 25 }
30
+ validates :middle_name, length: { maximum: 5 }
31
+ validates :last_name, length: { maximum: 25 }
32
+ validates :phone, length: { maximum: 21 }
33
+ validates :alt_phone, length: { maximum: 21 }
34
+ validates :fax, length: { maximum: 21 }
35
+ validates :email, length: { maximum: 1023 }
36
+ validates :contact, length: { maximum: 41 }
37
+ validates :alt_contact, length: { maximum: 41 }
38
+ validates :name_on_check, length: { maximum: 41 }
39
+ validates :account_number, length: { maximum: 99 }
40
+ validates :notes, length: { maximum: 4095 }
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,9 @@
1
+ module QbwcRequests
2
+ module Vendor
3
+ module V13
4
+ class Query < QbwcRequests::Base
5
+ field :max_returned
6
+ end
7
+ end
8
+ end
9
+ end
@@ -1,3 +1,3 @@
1
1
  module QbwcRequests
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -1,7 +1,6 @@
1
- module Qbwc
1
+ module QbwcRequests
2
2
  module XmlActions
3
-
4
- def self.query req, options, header
3
+ def self.query req, options, header
5
4
  hash = {"qbxml"=>
6
5
  {"xml_attributes"=> {},
7
6
  "qbxml_msgs_rq"=>
@@ -11,7 +10,6 @@ module Qbwc
11
10
  }
12
11
  }
13
12
  }
14
- self.to_xml(hash)
15
13
  end
16
14
 
17
15
  def self.header_attributes attributes = {}
@@ -29,10 +27,5 @@ module Qbwc
29
27
  }
30
28
  }
31
29
  end
32
-
33
- def self.to_xml hash
34
- "<?xml version='1.0' encoding='utf-8'?>#{Qbxml.new.to_qbxml(hash)}"
35
- end
36
-
37
30
  end
38
31
  end
data/lib/qbwc_requests.rb CHANGED
@@ -1,11 +1,57 @@
1
- require "qbwc_requests/version"
2
1
  require "active_model"
2
+ require "qbwc_requests/version"
3
+ require "qbwc_requests/ordered_fields"
4
+ require "qbwc_requests/xml_actions"
5
+ require "qbwc_requests/base"
6
+ require "qbwc_requests/factory"
3
7
  require "qbxml"
4
8
 
5
- Dir["#{File.dirname(__FILE__)}/qbwc_requests/qbwc/*.rb"].each {|f| require f}
6
- Dir["#{File.dirname(__FILE__)}/qbwc_requests/qbwc/request/*.rb"].each {|f| require f}
7
- Dir["#{File.dirname(__FILE__)}/qbwc_requests/qbwc/**/*.rb"].each {|f| require f}
9
+ qbxml_models = [
10
+ "account",
11
+ "customer",
12
+ "bill",
13
+ "estimate",
14
+ "general_detail_report",
15
+ "invoice",
16
+ "item_discount",
17
+ "item_group",
18
+ "item_non_inventory",
19
+ "item_other_charge",
20
+ "item_payment",
21
+ "item",
22
+ "item_service",
23
+ "item_subtotal",
24
+ "job_report",
25
+ "purchase_order",
26
+ "vendor"
27
+ ]
28
+
29
+ def camelize name
30
+ name.split('_').collect(&:capitalize).join
31
+ end
32
+
33
+ dir_name = File.dirname(__FILE__)
34
+
35
+ for qbxml_model in qbxml_models do
36
+ Object.const_set(
37
+ camelize(qbxml_model+"_qbxml"),
38
+ Class.new { extend QbwcRequests::Factory }
39
+ )
40
+ Dir["#{dir_name}/qbwc_requests/#{qbxml_model}/**/*.rb"].each {|f| require f}
41
+ end
42
+
43
+ Dir["#{dir_name}/qbwc_requests/sub_models/*.rb"].each {|f| require f}
8
44
 
9
45
  module QbwcRequests
10
- # Your code goes here...
46
+
47
+ @@QBXML_VERSION = "07"
48
+
49
+ def self.QBXML_VERSION
50
+ @@QBXML_VERSION
51
+ end
52
+
53
+ def self.QBXML_VERSION= version
54
+ @@QBXML_VERSION = version
55
+ end
56
+
11
57
  end
@@ -18,8 +18,10 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_runtime_dependency "qbxml", "~> 0.1.6"
22
- spec.add_runtime_dependency "activemodel"
21
+ spec.add_runtime_dependency "qbxml", "~> 0.3.0"
22
+ spec.add_runtime_dependency "activemodel", "~> 4.2.4"
23
+ spec.add_development_dependency "colorize", "~> 0.7.7"
23
24
  spec.add_development_dependency "bundler", "~> 1.3"
24
25
  spec.add_development_dependency "rake", "~> 10.3"
26
+ spec.add_development_dependency "codeclimate-test-reporter", "~> 0.4.1"
25
27
  end