quickeebooks 0.1.22 → 0.1.23

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. checksums.yaml +6 -14
  2. data/lib/quickeebooks/common/addressable.rb +4 -4
  3. data/lib/quickeebooks/common/date_time.rb +2 -2
  4. data/lib/quickeebooks/common/online_entity_model.rb +1 -1
  5. data/lib/quickeebooks/online/model/account.rb +1 -1
  6. data/lib/quickeebooks/online/model/account_reference.rb +1 -1
  7. data/lib/quickeebooks/online/model/address.rb +2 -2
  8. data/lib/quickeebooks/online/model/bill_line_item.rb +2 -2
  9. data/lib/quickeebooks/online/model/clazz.rb +6 -6
  10. data/lib/quickeebooks/online/model/company_meta_data.rb +1 -1
  11. data/lib/quickeebooks/online/model/credit_card.rb +1 -1
  12. data/lib/quickeebooks/online/model/credit_charge_info.rb +1 -1
  13. data/lib/quickeebooks/online/model/credit_charge_response.rb +1 -1
  14. data/lib/quickeebooks/online/model/customer_custom_field.rb +2 -2
  15. data/lib/quickeebooks/online/model/email.rb +2 -2
  16. data/lib/quickeebooks/online/model/id.rb +8 -8
  17. data/lib/quickeebooks/online/model/intuit_type.rb +5 -5
  18. data/lib/quickeebooks/online/model/invoice.rb +2 -2
  19. data/lib/quickeebooks/online/model/invoice_header.rb +1 -1
  20. data/lib/quickeebooks/online/model/invoice_line_item.rb +1 -1
  21. data/lib/quickeebooks/online/model/item.rb +12 -4
  22. data/lib/quickeebooks/online/model/job.rb +2 -2
  23. data/lib/quickeebooks/online/model/journal_entry.rb +1 -1
  24. data/lib/quickeebooks/online/model/journal_entry_line_item.rb +2 -2
  25. data/lib/quickeebooks/online/model/meta_data.rb +2 -2
  26. data/lib/quickeebooks/online/model/open_balance.rb +1 -1
  27. data/lib/quickeebooks/online/model/payment_detail.rb +1 -1
  28. data/lib/quickeebooks/online/model/payment_header.rb +1 -1
  29. data/lib/quickeebooks/online/model/payment_line_item.rb +3 -3
  30. data/lib/quickeebooks/online/model/phone.rb +1 -1
  31. data/lib/quickeebooks/online/model/price.rb +1 -1
  32. data/lib/quickeebooks/online/model/purchase_cost.rb +1 -1
  33. data/lib/quickeebooks/online/model/sales_receipt.rb +1 -1
  34. data/lib/quickeebooks/online/model/sales_receipt_line_item.rb +2 -2
  35. data/lib/quickeebooks/online/model/time_activity.rb +13 -0
  36. data/lib/quickeebooks/online/model/time_activity_employee.rb +1 -1
  37. data/lib/quickeebooks/online/model/time_activity_vendor.rb +1 -1
  38. data/lib/quickeebooks/online/model/tracking_class.rb +1 -1
  39. data/lib/quickeebooks/online/model/unit_price.rb +1 -1
  40. data/lib/quickeebooks/online/model/web_site.rb +2 -2
  41. data/lib/quickeebooks/online/service/account.rb +1 -1
  42. data/lib/quickeebooks/online/service/clazz.rb +1 -1
  43. data/lib/quickeebooks/online/service/employee.rb +1 -1
  44. data/lib/quickeebooks/online/service/entitlement.rb +1 -1
  45. data/lib/quickeebooks/online/service/item.rb +1 -1
  46. data/lib/quickeebooks/online/service/pagination.rb +1 -1
  47. data/lib/quickeebooks/online/service/payment_method.rb +1 -1
  48. data/lib/quickeebooks/online/service/sort.rb +1 -1
  49. data/lib/quickeebooks/online/service/tracking_class.rb +1 -1
  50. data/lib/quickeebooks/shared/service/filter.rb +4 -4
  51. data/lib/quickeebooks/shared/service/operation_node.rb +8 -8
  52. data/lib/quickeebooks/shared/service/sort.rb +1 -1
  53. data/lib/quickeebooks/version.rb +1 -1
  54. data/lib/quickeebooks/windows/model/account.rb +7 -7
  55. data/lib/quickeebooks/windows/model/account_reference.rb +2 -2
  56. data/lib/quickeebooks/windows/model/address.rb +4 -4
  57. data/lib/quickeebooks/windows/model/clazz.rb +6 -6
  58. data/lib/quickeebooks/windows/model/company_meta_data.rb +1 -1
  59. data/lib/quickeebooks/windows/model/custom_field.rb +1 -1
  60. data/lib/quickeebooks/windows/model/customer.rb +9 -9
  61. data/lib/quickeebooks/windows/model/customer_msg.rb +3 -3
  62. data/lib/quickeebooks/windows/model/email.rb +6 -6
  63. data/lib/quickeebooks/windows/model/error.rb +4 -4
  64. data/lib/quickeebooks/windows/model/external_key.rb +4 -4
  65. data/lib/quickeebooks/windows/model/id.rb +7 -7
  66. data/lib/quickeebooks/windows/model/id_set.rb +6 -6
  67. data/lib/quickeebooks/windows/model/intuit_type.rb +1 -1
  68. data/lib/quickeebooks/windows/model/invoice.rb +5 -5
  69. data/lib/quickeebooks/windows/model/invoice_header.rb +1 -1
  70. data/lib/quickeebooks/windows/model/invoice_line_item.rb +4 -4
  71. data/lib/quickeebooks/windows/model/item.rb +2 -2
  72. data/lib/quickeebooks/windows/model/job.rb +8 -7
  73. data/lib/quickeebooks/windows/model/job_job_info.rb +1 -1
  74. data/lib/quickeebooks/windows/model/meta_data.rb +1 -1
  75. data/lib/quickeebooks/windows/model/ng_id.rb +6 -6
  76. data/lib/quickeebooks/windows/model/ng_id_set.rb +5 -5
  77. data/lib/quickeebooks/windows/model/object_ref.rb +3 -3
  78. data/lib/quickeebooks/windows/model/open_balance.rb +1 -1
  79. data/lib/quickeebooks/windows/model/other_name.rb +2 -2
  80. data/lib/quickeebooks/windows/model/other_name_id.rb +4 -4
  81. data/lib/quickeebooks/windows/model/party_role_ref.rb +1 -1
  82. data/lib/quickeebooks/windows/model/payment_header.rb +4 -4
  83. data/lib/quickeebooks/windows/model/payment_line_item.rb +2 -2
  84. data/lib/quickeebooks/windows/model/payment_method.rb +2 -2
  85. data/lib/quickeebooks/windows/model/phone.rb +3 -3
  86. data/lib/quickeebooks/windows/model/price.rb +2 -2
  87. data/lib/quickeebooks/windows/model/purchase_cost.rb +1 -1
  88. data/lib/quickeebooks/windows/model/rest_response.rb +6 -6
  89. data/lib/quickeebooks/windows/model/sales_receipt.rb +2 -2
  90. data/lib/quickeebooks/windows/model/sales_receipt_header.rb +1 -1
  91. data/lib/quickeebooks/windows/model/sales_receipt_line_item.rb +4 -4
  92. data/lib/quickeebooks/windows/model/sales_rep.rb +5 -5
  93. data/lib/quickeebooks/windows/model/sales_tax.rb +4 -4
  94. data/lib/quickeebooks/windows/model/ship_method.rb +3 -3
  95. data/lib/quickeebooks/windows/model/success.rb +4 -4
  96. data/lib/quickeebooks/windows/model/sync_status_param.rb +5 -5
  97. data/lib/quickeebooks/windows/model/sync_status_request.rb +6 -6
  98. data/lib/quickeebooks/windows/model/sync_status_response.rb +6 -6
  99. data/lib/quickeebooks/windows/model/tax_line.rb +1 -1
  100. data/lib/quickeebooks/windows/model/time_activity_employee.rb +1 -1
  101. data/lib/quickeebooks/windows/model/time_activity_vendor.rb +1 -1
  102. data/lib/quickeebooks/windows/model/unit_price.rb +1 -1
  103. data/lib/quickeebooks/windows/model/vendor.rb +2 -2
  104. data/lib/quickeebooks/windows/model/vendor_id.rb +4 -4
  105. data/lib/quickeebooks/windows/model/vendor_reference.rb +2 -2
  106. data/lib/quickeebooks/windows/model/web_site.rb +2 -2
  107. data/lib/quickeebooks/windows/service/access_token.rb +1 -1
  108. data/lib/quickeebooks/windows/service/account.rb +7 -2
  109. data/lib/quickeebooks/windows/service/clazz.rb +1 -1
  110. data/lib/quickeebooks/windows/service/customer.rb +1 -1
  111. data/lib/quickeebooks/windows/service/customer_msg.rb +2 -2
  112. data/lib/quickeebooks/windows/service/invoice.rb +6 -6
  113. data/lib/quickeebooks/windows/service/item.rb +7 -2
  114. data/lib/quickeebooks/windows/service/job.rb +5 -5
  115. data/lib/quickeebooks/windows/service/payment.rb +2 -2
  116. data/lib/quickeebooks/windows/service/payment_method.rb +2 -2
  117. data/lib/quickeebooks/windows/service/sales_rep.rb +1 -1
  118. data/lib/quickeebooks/windows/service/sales_tax.rb +2 -2
  119. data/lib/quickeebooks/windows/service/service_base.rb +1 -1
  120. data/lib/quickeebooks/windows/service/ship_method.rb +3 -3
  121. data/lib/quickeebooks/windows/service/sort.rb +1 -1
  122. data/lib/quickeebooks/windows/service/sync_status.rb +4 -4
  123. metadata +27 -27
@@ -1,5 +1,5 @@
1
- module Quickeebooks
2
- module Online
1
+ module Quickeebooks
2
+ module Online
3
3
  module Model
4
4
  class SalesReceiptLineItem < Quickeebooks::Online::Model::IntuitType
5
5
  xml_name 'Line'
@@ -37,6 +37,8 @@ module Quickeebooks
37
37
  xml_accessor :description, :from => 'Description'
38
38
 
39
39
  validates_inclusion_of :name_of, :in => %w(Employee Vendor)
40
+ validate :has_vendor_node, :if => Proc.new { |c| c.name_of == 'Vendor' }
41
+ validate :has_employee_node, :if => Proc.new { |c| c.name_of == 'Employee' }
40
42
  validates_presence_of :customer_id, :if => Proc.new { |c| c.billable_status == 'Billable' }
41
43
  validates_presence_of :hourly_rate, :if => Proc.new { |c| c.billable_status == 'Billable' }
42
44
  validates_inclusion_of :billable_status, :in => %w(Billable NotBillable HasBeenBilled),
@@ -52,6 +54,17 @@ module Quickeebooks
52
54
  end
53
55
  end
54
56
 
57
+ def has_vendor_node
58
+ unless self.vendor.is_a?(Quickeebooks::Online::Model::TimeActivityVendor)
59
+ errors.add(:vendor, "can't be blank")
60
+ end
61
+ end
62
+
63
+ def has_employee_node
64
+ unless self.vendor.is_a?(Quickeebooks::Online::Model::TimeActivityEmployee)
65
+ errors.add(:employee, "can't be blank")
66
+ end
67
+ end
55
68
 
56
69
  def self.resource_for_collection
57
70
  'time-activities'
@@ -9,4 +9,4 @@ module Quickeebooks
9
9
  end
10
10
  end
11
11
  end
12
- end
12
+ end
@@ -9,4 +9,4 @@ module Quickeebooks
9
9
  end
10
10
  end
11
11
  end
12
- end
12
+ end
@@ -40,4 +40,4 @@ module Quickeebooks
40
40
  end
41
41
  end
42
42
  end
43
- end
43
+ end
@@ -8,4 +8,4 @@ module Quickeebooks
8
8
  end
9
9
  end
10
10
  end
11
- end
11
+ end
@@ -9,7 +9,7 @@ module Quickeebooks
9
9
  def initialize(uri = nil)
10
10
  self.uri = uri if uri
11
11
  end
12
-
12
+
13
13
  def to_xml(options = {})
14
14
  return "" if uri.to_s.empty?
15
15
  super(options)
@@ -18,4 +18,4 @@ module Quickeebooks
18
18
  end
19
19
  end
20
20
  end
21
- end
21
+ end
@@ -9,4 +9,4 @@ module Quickeebooks
9
9
  end
10
10
  end
11
11
  end
12
- end
12
+ end
@@ -9,4 +9,4 @@ module Quickeebooks
9
9
  end
10
10
  end
11
11
  end
12
- end
12
+ end
@@ -10,4 +10,4 @@ module Quickeebooks
10
10
  end
11
11
  end
12
12
  end
13
- end
13
+ end
@@ -12,4 +12,4 @@ module Quickeebooks
12
12
  end
13
13
  end
14
14
  end
15
- end
15
+ end
@@ -9,4 +9,4 @@ module Quickeebooks
9
9
  end
10
10
  end
11
11
  end
12
- end
12
+ end
@@ -16,4 +16,4 @@ module Quickeebooks
16
16
  end
17
17
  end
18
18
  end
19
- end
19
+ end
@@ -9,4 +9,4 @@ module Quickeebooks
9
9
  end
10
10
  end
11
11
  end
12
- end
12
+ end
@@ -5,4 +5,4 @@ module Quickeebooks
5
5
  end
6
6
  end
7
7
  end
8
- end
8
+ end
@@ -10,4 +10,4 @@ module Quickeebooks
10
10
  end
11
11
  end
12
12
  end
13
- end
13
+ end
@@ -73,7 +73,7 @@ module Quickeebooks
73
73
  end
74
74
  clauses.join(" :AND: ")
75
75
  end
76
-
76
+
77
77
  def date_to_s
78
78
  clauses = []
79
79
  if @before
@@ -129,7 +129,7 @@ module Quickeebooks
129
129
  def number_to_xml
130
130
  "<#{@field}>#{CGI::escapeHTML(@value.to_s)}</#{@field}>"
131
131
  end
132
-
132
+
133
133
  def date_to_xml
134
134
  "<#{@field}>#{formatted_date(@value)}</#{@field}>"
135
135
  end
@@ -137,7 +137,7 @@ module Quickeebooks
137
137
  def datetime_to_xml
138
138
  "<#{@field}>#{formatted_datetime(@value)}</#{@field}>"
139
139
  end
140
-
140
+
141
141
  def formatted_date(date)
142
142
  date.strftime(DATE_FORMAT)
143
143
  end
@@ -145,7 +145,7 @@ module Quickeebooks
145
145
  def formatted_datetime(datetime)
146
146
  datetime.strftime(DATE_TIME_FORMAT)
147
147
  end
148
-
148
+
149
149
  def valid_datetime?(value)
150
150
  value.respond_to?(:strftime)
151
151
  end
@@ -3,13 +3,13 @@ require 'securerandom'
3
3
  module Quickeebooks
4
4
  module Shared
5
5
  module Service
6
-
6
+
7
7
  class OperationNode
8
-
8
+
9
9
  def add(&block)
10
10
  node("Add", &block)
11
11
  end
12
-
12
+
13
13
  def mod(&block)
14
14
  node("Mod", &block)
15
15
  end
@@ -17,9 +17,9 @@ module Quickeebooks
17
17
  def guid
18
18
  SecureRandom.hex(16)
19
19
  end
20
-
20
+
21
21
  private
22
-
22
+
23
23
  def node(type, &block)
24
24
  content = %Q{<#{type} xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"}
25
25
  content << %Q{ RequestId="#{guid}" xmlns="http://www.intuit.com/sb/cdm/v2">}
@@ -27,9 +27,9 @@ module Quickeebooks
27
27
  content << "</#{type}>"
28
28
  content
29
29
  end
30
-
30
+
31
31
  end
32
-
32
+
33
33
  end
34
34
  end
35
- end
35
+ end
@@ -19,4 +19,4 @@ module Quickeebooks
19
19
  end
20
20
  end
21
21
  end
22
- end
22
+ end
@@ -1,5 +1,5 @@
1
1
  module Quickeebooks
2
2
 
3
- VERSION = "0.1.22"
3
+ VERSION = "0.1.23"
4
4
 
5
5
  end
@@ -7,15 +7,15 @@ module Quickeebooks
7
7
  module Model
8
8
  class Account < Quickeebooks::Windows::Model::IntuitType
9
9
  include ActiveModel::Validations
10
-
10
+
11
11
  XML_COLLECTION_NODE = 'Accounts'
12
12
  XML_NODE = 'Account'
13
-
13
+
14
14
  # https://services.intuit.com/sb/account/v2/<realmID>
15
15
  REST_RESOURCE = "account"
16
-
16
+
17
17
  xml_convention :camelcase
18
- xml_accessor :id, :from => 'Id'
18
+ xml_accessor :id, :from => 'Id', :as => Quickeebooks::Windows::Model::Id
19
19
  xml_accessor :sync_token, :from => 'SyncToken', :as => Integer
20
20
  xml_accessor :meta_data, :from => 'MetaData', :as => Quickeebooks::Windows::Model::MetaData
21
21
  xml_accessor :external_key, :from => 'ExternalKey'
@@ -55,9 +55,9 @@ module Quickeebooks
55
55
  return false if(id.nil? || sync_token.nil?)
56
56
  id.to_i > 0 && !sync_token.to_s.empty? && sync_token.to_i >= 0
57
57
  end
58
-
58
+
59
59
  private
60
-
60
+
61
61
  def ensure_name_is_valid
62
62
  if name.nil?
63
63
  errors.add(:name, "Missing required attribute: name")
@@ -71,4 +71,4 @@ module Quickeebooks
71
71
 
72
72
  end
73
73
  end
74
- end
74
+ end
@@ -4,7 +4,7 @@ module Quickeebooks
4
4
  module Windows
5
5
  module Model
6
6
  class AccountReference < Quickeebooks::Windows::Model::IntuitType
7
- xml_accessor :account_id, :from => 'AccountId'
7
+ xml_accessor :account_id, :from => 'AccountId', :as => Quickeebooks::Windows::Model::Id
8
8
  xml_accessor :account_name, :from => 'AccountName'
9
9
  xml_accessor :account_type, :from => 'AccountType'
10
10
 
@@ -20,4 +20,4 @@ module Quickeebooks
20
20
  end
21
21
  end
22
22
  end
23
- end
23
+ end
@@ -25,15 +25,15 @@ module Quickeebooks
25
25
  def to_xml_ns
26
26
  to_xml
27
27
  end
28
-
28
+
29
29
  def default?
30
30
  default == "true"
31
31
  end
32
-
32
+
33
33
  def state
34
34
  country_sub_division_code
35
35
  end
36
-
36
+
37
37
  def state=(new_state)
38
38
  self.country_sub_division_code = new_state
39
39
  end
@@ -41,4 +41,4 @@ module Quickeebooks
41
41
  end
42
42
  end
43
43
  end
44
- end
44
+ end
@@ -12,10 +12,10 @@ module Quickeebooks
12
12
 
13
13
  XML_COLLECTION_NODE = 'Classes'
14
14
  XML_NODE = 'Class'
15
-
15
+
16
16
  # https://services.intuit.com/sb/customer/v2/<realmID>
17
17
  REST_RESOURCE = "class"
18
-
18
+
19
19
  xml_convention :camelcase
20
20
  xml_accessor :id, :from => 'Id', :as => Quickeebooks::Windows::Model::Id
21
21
  xml_accessor :sync_token, :from => 'SyncToken', :as => Integer
@@ -28,20 +28,20 @@ module Quickeebooks
28
28
  xml_accessor :active
29
29
  xml_accessor :class_parent_id, :from => 'ClassParentId', :as => Quickeebooks::Windows::Model::Id
30
30
  xml_accessor :class_parent_name, :from => 'ClassParentName'
31
-
31
+
32
32
  validates_length_of :name, :minimum => 1, :maximum => 256
33
-
33
+
34
34
  def active?
35
35
  active == 'true'
36
36
  end
37
-
37
+
38
38
  def valid_for_update?
39
39
  if sync_token.nil?
40
40
  errors.add(:sync_token, "Missing required attribute SyncToken for update")
41
41
  end
42
42
  errors.empty?
43
43
  end
44
-
44
+
45
45
  def valid_for_create?
46
46
  valid?
47
47
  if type_of.nil?
@@ -12,7 +12,7 @@ module Quickeebooks
12
12
 
13
13
  XML_COLLECTION_NODE = 'CompaniesMetaData'
14
14
  XML_NODE = 'CompanyMetaData'
15
-
15
+
16
16
  REST_RESOURCE = "company"
17
17
 
18
18
  xml_convention :camelcase
@@ -10,4 +10,4 @@ module Quickeebooks
10
10
  end
11
11
  end
12
12
  end
13
- end
13
+ end
@@ -18,10 +18,10 @@ module Quickeebooks
18
18
  DEFAULT_TYPE_OF = 'Person'
19
19
  XML_COLLECTION_NODE = 'Customers'
20
20
  XML_NODE = 'Customer'
21
-
21
+
22
22
  # https://services.intuit.com/sb/customer/v2/<realmID>
23
23
  REST_RESOURCE = "customer"
24
-
24
+
25
25
  xml_convention :camelcase
26
26
  xml_accessor :id, :from => 'Id', :as => Quickeebooks::Windows::Model::Id
27
27
  xml_accessor :sync_token, :from => 'SyncToken', :as => Integer
@@ -77,18 +77,18 @@ module Quickeebooks
77
77
  validate :require_an_address
78
78
  validate :name_cannot_contain_invalid_characters
79
79
  validate :email_address_is_valid
80
-
80
+
81
81
  def active?
82
82
  active == 'true'
83
83
  end
84
-
84
+
85
85
  def valid_for_update?
86
86
  if sync_token.nil?
87
87
  errors.add(:sync_token, "Missing required attribute SyncToken for update")
88
88
  end
89
89
  errors.empty?
90
90
  end
91
-
91
+
92
92
  def valid_for_create?
93
93
  valid?
94
94
  if type_of.nil?
@@ -104,20 +104,20 @@ module Quickeebooks
104
104
  def email_address=(email_address)
105
105
  self.email = Quickeebooks::Windows::Model::Email.new(email_address)
106
106
  end
107
-
107
+
108
108
 
109
109
  # To delete an account Intuit requires we provide Id and SyncToken fields
110
110
  def valid_for_deletion?
111
111
  return false if(id.nil? || sync_token.nil?)
112
112
  id.to_i > 0 && !sync_token.to_s.empty? && sync_token.to_i >= 0
113
113
  end
114
-
114
+
115
115
  def name_cannot_contain_invalid_characters
116
116
  if name.to_s.index(':')
117
117
  errors.add(:name, "Name cannot contain a colon (:)")
118
118
  end
119
119
  end
120
-
120
+
121
121
  def email_address_is_valid
122
122
  if email
123
123
  address = email.address
@@ -126,7 +126,7 @@ module Quickeebooks
126
126
  end
127
127
  end
128
128
  end
129
-
129
+
130
130
  def require_an_address
131
131
  if addresses.nil? || (addresses.is_a?(Array) && addresses.empty?)
132
132
  errors.add(:addresses, "Must provide at least one address for this Customer.")
@@ -11,10 +11,10 @@ module Quickeebooks
11
11
 
12
12
  XML_COLLECTION_NODE = 'CustomerMsgs'
13
13
  XML_NODE = 'CustomerMsg'
14
-
14
+
15
15
  # https://services.intuit.com/sb/customermsg/v2/<realmID>
16
16
  REST_RESOURCE = "customermsg"
17
-
17
+
18
18
  xml_convention :camelcase
19
19
  xml_accessor :id, :as => Quickeebooks::Windows::Model::Id
20
20
  xml_accessor :sync_token
@@ -28,4 +28,4 @@ module Quickeebooks
28
28
  end
29
29
  end
30
30
  end
31
- end
31
+ end