quickeebooks 0.1.22 → 0.1.23
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +6 -14
- data/lib/quickeebooks/common/addressable.rb +4 -4
- data/lib/quickeebooks/common/date_time.rb +2 -2
- data/lib/quickeebooks/common/online_entity_model.rb +1 -1
- data/lib/quickeebooks/online/model/account.rb +1 -1
- data/lib/quickeebooks/online/model/account_reference.rb +1 -1
- data/lib/quickeebooks/online/model/address.rb +2 -2
- data/lib/quickeebooks/online/model/bill_line_item.rb +2 -2
- data/lib/quickeebooks/online/model/clazz.rb +6 -6
- data/lib/quickeebooks/online/model/company_meta_data.rb +1 -1
- data/lib/quickeebooks/online/model/credit_card.rb +1 -1
- data/lib/quickeebooks/online/model/credit_charge_info.rb +1 -1
- data/lib/quickeebooks/online/model/credit_charge_response.rb +1 -1
- data/lib/quickeebooks/online/model/customer_custom_field.rb +2 -2
- data/lib/quickeebooks/online/model/email.rb +2 -2
- data/lib/quickeebooks/online/model/id.rb +8 -8
- data/lib/quickeebooks/online/model/intuit_type.rb +5 -5
- data/lib/quickeebooks/online/model/invoice.rb +2 -2
- data/lib/quickeebooks/online/model/invoice_header.rb +1 -1
- data/lib/quickeebooks/online/model/invoice_line_item.rb +1 -1
- data/lib/quickeebooks/online/model/item.rb +12 -4
- data/lib/quickeebooks/online/model/job.rb +2 -2
- data/lib/quickeebooks/online/model/journal_entry.rb +1 -1
- data/lib/quickeebooks/online/model/journal_entry_line_item.rb +2 -2
- data/lib/quickeebooks/online/model/meta_data.rb +2 -2
- data/lib/quickeebooks/online/model/open_balance.rb +1 -1
- data/lib/quickeebooks/online/model/payment_detail.rb +1 -1
- data/lib/quickeebooks/online/model/payment_header.rb +1 -1
- data/lib/quickeebooks/online/model/payment_line_item.rb +3 -3
- data/lib/quickeebooks/online/model/phone.rb +1 -1
- data/lib/quickeebooks/online/model/price.rb +1 -1
- data/lib/quickeebooks/online/model/purchase_cost.rb +1 -1
- data/lib/quickeebooks/online/model/sales_receipt.rb +1 -1
- data/lib/quickeebooks/online/model/sales_receipt_line_item.rb +2 -2
- data/lib/quickeebooks/online/model/time_activity.rb +13 -0
- data/lib/quickeebooks/online/model/time_activity_employee.rb +1 -1
- data/lib/quickeebooks/online/model/time_activity_vendor.rb +1 -1
- data/lib/quickeebooks/online/model/tracking_class.rb +1 -1
- data/lib/quickeebooks/online/model/unit_price.rb +1 -1
- data/lib/quickeebooks/online/model/web_site.rb +2 -2
- data/lib/quickeebooks/online/service/account.rb +1 -1
- data/lib/quickeebooks/online/service/clazz.rb +1 -1
- data/lib/quickeebooks/online/service/employee.rb +1 -1
- data/lib/quickeebooks/online/service/entitlement.rb +1 -1
- data/lib/quickeebooks/online/service/item.rb +1 -1
- data/lib/quickeebooks/online/service/pagination.rb +1 -1
- data/lib/quickeebooks/online/service/payment_method.rb +1 -1
- data/lib/quickeebooks/online/service/sort.rb +1 -1
- data/lib/quickeebooks/online/service/tracking_class.rb +1 -1
- data/lib/quickeebooks/shared/service/filter.rb +4 -4
- data/lib/quickeebooks/shared/service/operation_node.rb +8 -8
- data/lib/quickeebooks/shared/service/sort.rb +1 -1
- data/lib/quickeebooks/version.rb +1 -1
- data/lib/quickeebooks/windows/model/account.rb +7 -7
- data/lib/quickeebooks/windows/model/account_reference.rb +2 -2
- data/lib/quickeebooks/windows/model/address.rb +4 -4
- data/lib/quickeebooks/windows/model/clazz.rb +6 -6
- data/lib/quickeebooks/windows/model/company_meta_data.rb +1 -1
- data/lib/quickeebooks/windows/model/custom_field.rb +1 -1
- data/lib/quickeebooks/windows/model/customer.rb +9 -9
- data/lib/quickeebooks/windows/model/customer_msg.rb +3 -3
- data/lib/quickeebooks/windows/model/email.rb +6 -6
- data/lib/quickeebooks/windows/model/error.rb +4 -4
- data/lib/quickeebooks/windows/model/external_key.rb +4 -4
- data/lib/quickeebooks/windows/model/id.rb +7 -7
- data/lib/quickeebooks/windows/model/id_set.rb +6 -6
- data/lib/quickeebooks/windows/model/intuit_type.rb +1 -1
- data/lib/quickeebooks/windows/model/invoice.rb +5 -5
- data/lib/quickeebooks/windows/model/invoice_header.rb +1 -1
- data/lib/quickeebooks/windows/model/invoice_line_item.rb +4 -4
- data/lib/quickeebooks/windows/model/item.rb +2 -2
- data/lib/quickeebooks/windows/model/job.rb +8 -7
- data/lib/quickeebooks/windows/model/job_job_info.rb +1 -1
- data/lib/quickeebooks/windows/model/meta_data.rb +1 -1
- data/lib/quickeebooks/windows/model/ng_id.rb +6 -6
- data/lib/quickeebooks/windows/model/ng_id_set.rb +5 -5
- data/lib/quickeebooks/windows/model/object_ref.rb +3 -3
- data/lib/quickeebooks/windows/model/open_balance.rb +1 -1
- data/lib/quickeebooks/windows/model/other_name.rb +2 -2
- data/lib/quickeebooks/windows/model/other_name_id.rb +4 -4
- data/lib/quickeebooks/windows/model/party_role_ref.rb +1 -1
- data/lib/quickeebooks/windows/model/payment_header.rb +4 -4
- data/lib/quickeebooks/windows/model/payment_line_item.rb +2 -2
- data/lib/quickeebooks/windows/model/payment_method.rb +2 -2
- data/lib/quickeebooks/windows/model/phone.rb +3 -3
- data/lib/quickeebooks/windows/model/price.rb +2 -2
- data/lib/quickeebooks/windows/model/purchase_cost.rb +1 -1
- data/lib/quickeebooks/windows/model/rest_response.rb +6 -6
- data/lib/quickeebooks/windows/model/sales_receipt.rb +2 -2
- data/lib/quickeebooks/windows/model/sales_receipt_header.rb +1 -1
- data/lib/quickeebooks/windows/model/sales_receipt_line_item.rb +4 -4
- data/lib/quickeebooks/windows/model/sales_rep.rb +5 -5
- data/lib/quickeebooks/windows/model/sales_tax.rb +4 -4
- data/lib/quickeebooks/windows/model/ship_method.rb +3 -3
- data/lib/quickeebooks/windows/model/success.rb +4 -4
- data/lib/quickeebooks/windows/model/sync_status_param.rb +5 -5
- data/lib/quickeebooks/windows/model/sync_status_request.rb +6 -6
- data/lib/quickeebooks/windows/model/sync_status_response.rb +6 -6
- data/lib/quickeebooks/windows/model/tax_line.rb +1 -1
- data/lib/quickeebooks/windows/model/time_activity_employee.rb +1 -1
- data/lib/quickeebooks/windows/model/time_activity_vendor.rb +1 -1
- data/lib/quickeebooks/windows/model/unit_price.rb +1 -1
- data/lib/quickeebooks/windows/model/vendor.rb +2 -2
- data/lib/quickeebooks/windows/model/vendor_id.rb +4 -4
- data/lib/quickeebooks/windows/model/vendor_reference.rb +2 -2
- data/lib/quickeebooks/windows/model/web_site.rb +2 -2
- data/lib/quickeebooks/windows/service/access_token.rb +1 -1
- data/lib/quickeebooks/windows/service/account.rb +7 -2
- data/lib/quickeebooks/windows/service/clazz.rb +1 -1
- data/lib/quickeebooks/windows/service/customer.rb +1 -1
- data/lib/quickeebooks/windows/service/customer_msg.rb +2 -2
- data/lib/quickeebooks/windows/service/invoice.rb +6 -6
- data/lib/quickeebooks/windows/service/item.rb +7 -2
- data/lib/quickeebooks/windows/service/job.rb +5 -5
- data/lib/quickeebooks/windows/service/payment.rb +2 -2
- data/lib/quickeebooks/windows/service/payment_method.rb +2 -2
- data/lib/quickeebooks/windows/service/sales_rep.rb +1 -1
- data/lib/quickeebooks/windows/service/sales_tax.rb +2 -2
- data/lib/quickeebooks/windows/service/service_base.rb +1 -1
- data/lib/quickeebooks/windows/service/ship_method.rb +3 -3
- data/lib/quickeebooks/windows/service/sort.rb +1 -1
- data/lib/quickeebooks/windows/service/sync_status.rb +4 -4
- metadata +27 -27
@@ -12,7 +12,7 @@ module Quickeebooks
|
|
12
12
|
|
13
13
|
validates_length_of :address, :minimum => 1
|
14
14
|
validate :ensure_valid_format
|
15
|
-
|
15
|
+
|
16
16
|
def to_xml(options = {})
|
17
17
|
return "" if address.to_s.empty?
|
18
18
|
super
|
@@ -23,13 +23,13 @@ module Quickeebooks
|
|
23
23
|
self.address = email_address
|
24
24
|
end
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
27
|
def default?
|
28
28
|
default == "true"
|
29
29
|
end
|
30
|
-
|
30
|
+
|
31
31
|
private
|
32
|
-
|
32
|
+
|
33
33
|
def ensure_valid_format
|
34
34
|
# address must contain both @ and .
|
35
35
|
if !address.include?('@') || !address.include?('.')
|
@@ -40,5 +40,5 @@ module Quickeebooks
|
|
40
40
|
end
|
41
41
|
end
|
42
42
|
end
|
43
|
-
|
44
|
-
end
|
43
|
+
|
44
|
+
end
|
@@ -3,17 +3,17 @@ module Quickeebooks
|
|
3
3
|
module Windows
|
4
4
|
module Model
|
5
5
|
class Error < Quickeebooks::Windows::Model::IntuitType
|
6
|
-
|
6
|
+
|
7
7
|
xml_convention :camelcase
|
8
|
-
|
8
|
+
|
9
9
|
xml_accessor :request_id, :from => '@RequestId'
|
10
10
|
xml_accessor :object_ref, :as => Quickeebooks::Windows::Model::ObjectRef
|
11
11
|
xml_accessor :request_name
|
12
12
|
xml_accessor :processed_time, :as => Time
|
13
13
|
xml_accessor :code, :from => 'ErrorCode'
|
14
14
|
xml_accessor :desc, :from => 'ErrorDesc'
|
15
|
-
|
15
|
+
|
16
16
|
end
|
17
17
|
end
|
18
18
|
end
|
19
|
-
end
|
19
|
+
end
|
@@ -4,13 +4,13 @@ module Quickeebooks
|
|
4
4
|
module Windows
|
5
5
|
module Model
|
6
6
|
class ExternalKey < Quickeebooks::Windows::Model::IntuitType
|
7
|
-
|
7
|
+
|
8
8
|
DOMAIN = "QB"
|
9
|
-
|
9
|
+
|
10
10
|
xml_convention :camelcase
|
11
11
|
xml_accessor :idDomain, :from => '@idDomain' # Attribute with name 'idDomain'
|
12
12
|
xml_accessor :value, :from => :content
|
13
|
-
|
13
|
+
|
14
14
|
def initialize(value = nil)
|
15
15
|
self.idDomain = DOMAIN
|
16
16
|
self.value = value
|
@@ -18,4 +18,4 @@ module Quickeebooks
|
|
18
18
|
end
|
19
19
|
end
|
20
20
|
end
|
21
|
-
end
|
21
|
+
end
|
@@ -4,29 +4,29 @@ module Quickeebooks
|
|
4
4
|
module Windows
|
5
5
|
module Model
|
6
6
|
class Id < Quickeebooks::Windows::Model::IntuitType
|
7
|
-
|
7
|
+
|
8
8
|
DOMAIN = "QB"
|
9
|
-
|
9
|
+
|
10
10
|
xml_convention :camelcase
|
11
11
|
xml_accessor :idDomain, :from => '@idDomain' # Attribute with name 'idDomain'
|
12
12
|
xml_accessor :value, :from => :content
|
13
|
-
|
13
|
+
|
14
14
|
def initialize(value = nil, suppress_domain_attribute = false)
|
15
15
|
unless suppress_domain_attribute
|
16
16
|
self.idDomain = DOMAIN
|
17
17
|
end
|
18
18
|
self.value = value
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
def to_i
|
22
22
|
self.value.to_i
|
23
23
|
end
|
24
|
-
|
24
|
+
|
25
25
|
def to_s
|
26
26
|
self.value.to_s
|
27
27
|
end
|
28
|
-
|
28
|
+
|
29
29
|
end
|
30
30
|
end
|
31
31
|
end
|
32
|
-
end
|
32
|
+
end
|
@@ -2,23 +2,23 @@ module Quickeebooks
|
|
2
2
|
module Windows
|
3
3
|
module Model
|
4
4
|
class IdSet < Quickeebooks::Windows::Model::IntuitType
|
5
|
-
|
5
|
+
|
6
6
|
xml_convention :camelcase
|
7
7
|
xml_accessor :id, :from => 'Id', :as => Quickeebooks::Windows::Model::Id
|
8
|
-
|
8
|
+
|
9
9
|
def initialize(value = nil)
|
10
10
|
self.id = Quickeebooks::Windows::Model::Id.new(value, true)
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
def to_i
|
14
14
|
id ? id.to_i : "__uninitialized__"
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
def to_s
|
18
18
|
id ? id.to_s : "__uninitialized__"
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
end
|
22
22
|
end
|
23
23
|
end
|
24
|
-
end
|
24
|
+
end
|
@@ -10,13 +10,13 @@ module Quickeebooks
|
|
10
10
|
module Model
|
11
11
|
class Invoice < Quickeebooks::Windows::Model::IntuitType
|
12
12
|
include ActiveModel::Validations
|
13
|
-
|
13
|
+
|
14
14
|
XML_COLLECTION_NODE = 'Invoices'
|
15
15
|
XML_NODE = 'Invoice'
|
16
|
-
|
16
|
+
|
17
17
|
# https://services.intuit.com/sb/invoice/v2/<realmID>
|
18
18
|
REST_RESOURCE = "invoice"
|
19
|
-
|
19
|
+
|
20
20
|
xml_convention :camelcase
|
21
21
|
xml_accessor :id, :from => 'Id', :as => Quickeebooks::Windows::Model::Id
|
22
22
|
xml_accessor :sync_token, :from => 'SyncToken', :as => Integer
|
@@ -35,7 +35,7 @@ module Quickeebooks
|
|
35
35
|
def initialize
|
36
36
|
ensure_line_items_initialization
|
37
37
|
end
|
38
|
-
|
38
|
+
|
39
39
|
private
|
40
40
|
|
41
41
|
def after_parse
|
@@ -49,4 +49,4 @@ module Quickeebooks
|
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
52
|
-
end
|
52
|
+
end
|
@@ -13,7 +13,7 @@ module Quickeebooks
|
|
13
13
|
xml_accessor :taxable, :from => 'Taxable'
|
14
14
|
xml_accessor :item_id, :from => 'ItemId', :as => Quickeebooks::Windows::Model::Id
|
15
15
|
xml_accessor :item_name, :from => 'ItemName'
|
16
|
-
xml_accessor :item_type, :from => 'ItemType'
|
16
|
+
xml_accessor :item_type, :from => 'ItemType'
|
17
17
|
xml_accessor :unit_price, :from => 'UnitPrice', :as => Float
|
18
18
|
xml_accessor :rate_percent, :from => 'RatePercent', :as => Float
|
19
19
|
xml_accessor :price_level_id, :from => 'PriceLevelId', :as => Quickeebooks::Windows::Model::Id
|
@@ -25,10 +25,10 @@ module Quickeebooks
|
|
25
25
|
xml_accessor :discount_id, :from => 'DiscountId', :as => Quickeebooks::Windows::Model::Id
|
26
26
|
xml_accessor :discount_name, :from => 'DiscountName'
|
27
27
|
xml_accessor :quantity, :from => 'Qty', :as => Float
|
28
|
-
|
28
|
+
|
29
29
|
#xml_accessor :discount_amount, :from => 'DiscountAmount', :as => Float
|
30
30
|
#xml_accessor :discount_rate_percent, :from => 'DiscountRatePercent', :as => Float
|
31
|
-
|
31
|
+
|
32
32
|
xml_accessor :sales_tax_code_id, :from => 'SalesTaxCodeId', :as => Quickeebooks::Windows::Model::Id
|
33
33
|
xml_accessor :sales_tax_code_name, :from => 'SalesTaxCodeName'
|
34
34
|
xml_accessor :service_date, :from => 'ServiceDate', :as => Time
|
@@ -39,4 +39,4 @@ module Quickeebooks
|
|
39
39
|
end
|
40
40
|
end
|
41
41
|
end
|
42
|
-
end
|
42
|
+
end
|
@@ -14,16 +14,17 @@ module Quickeebooks
|
|
14
14
|
module Model
|
15
15
|
class Job < Quickeebooks::Windows::Model::IntuitType
|
16
16
|
include ActiveModel::Validations
|
17
|
-
|
17
|
+
include Quickeebooks::Model::Addressable
|
18
|
+
|
18
19
|
XML_COLLECTION_NODE = 'Jobs'
|
19
20
|
XML_NODE = 'Job'
|
20
|
-
|
21
|
+
|
21
22
|
# https://services.intuit.com/sb/job/v2/<realmId>
|
22
23
|
|
23
24
|
REST_RESOURCE = "job"
|
24
|
-
|
25
|
+
|
25
26
|
xml_convention :camelcase
|
26
|
-
xml_accessor :id, :from => 'Id'
|
27
|
+
xml_accessor :id, :from => 'Id', :as => Quickeebooks::Windows::Model::Id
|
27
28
|
xml_accessor :sync_token, :from => 'SyncToken', :as => Integer
|
28
29
|
xml_accessor :meta_data, :from => 'MetaData', :as => Quickeebooks::Windows::Model::MetaData
|
29
30
|
xml_accessor :external_key, :from => 'ExternalKey'
|
@@ -34,7 +35,7 @@ module Quickeebooks
|
|
34
35
|
xml_accessor :type_of, :from => 'TypeOf'
|
35
36
|
xml_accessor :name, :from => 'Name'
|
36
37
|
xml_accessor :addresses, :from => 'Address', :as => [Quickeebooks::Windows::Model::Address]
|
37
|
-
xml_accessor :
|
38
|
+
xml_accessor :phones, :from => 'Phone', :as => [Quickeebooks::Windows::Model::Phone]
|
38
39
|
xml_accessor :web_site, :from => 'WebSite', :as => Quickeebooks::Windows::Model::WebSite
|
39
40
|
xml_accessor :email, :from => 'Email', :as => Quickeebooks::Windows::Model::Email
|
40
41
|
xml_accessor :external_id, :from => 'ExternalId'
|
@@ -88,9 +89,9 @@ module Quickeebooks
|
|
88
89
|
def shipping_address
|
89
90
|
addresses.detect { |address| address.tag == "Shipping" }
|
90
91
|
end
|
91
|
-
|
92
|
+
|
92
93
|
end
|
93
94
|
|
94
95
|
end
|
95
96
|
end
|
96
|
-
end
|
97
|
+
end
|
@@ -2,23 +2,23 @@ module Quickeebooks
|
|
2
2
|
module Windows
|
3
3
|
module Model
|
4
4
|
class NgId < Quickeebooks::Windows::Model::IntuitType
|
5
|
-
|
5
|
+
|
6
6
|
xml_convention :camelcase
|
7
7
|
xml_accessor :value, :from => :content
|
8
|
-
|
8
|
+
|
9
9
|
def initialize(value = nil)
|
10
10
|
self.value = value
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
def to_i
|
14
14
|
self.value.to_i
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
def to_s
|
18
18
|
self.value.to_s
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
end
|
22
22
|
end
|
23
23
|
end
|
24
|
-
end
|
24
|
+
end
|
@@ -9,20 +9,20 @@ module Quickeebooks
|
|
9
9
|
xml_accessor :sync_token, :from => 'SyncToken'
|
10
10
|
xml_accessor :ng_object_type, :from => 'NgObjectType'
|
11
11
|
xml_accessor :party_id, :from => 'PartyId'
|
12
|
-
|
12
|
+
|
13
13
|
def initialize(value = nil)
|
14
14
|
self.ng_id = Quickeebooks::Windows::Model::NgId.new(value)
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
def to_i
|
18
18
|
self.ng_id ? self.ng_id.to_i : "__uninitialized__"
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
def to_s
|
22
22
|
self.ng_id ? self.ng_id.to_s : "__uninitialized__"
|
23
23
|
end
|
24
|
-
|
24
|
+
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
28
|
-
end
|
28
|
+
end
|
@@ -2,13 +2,13 @@ module Quickeebooks
|
|
2
2
|
module Windows
|
3
3
|
module Model
|
4
4
|
class ObjectRef < Quickeebooks::Windows::Model::IntuitType
|
5
|
-
|
5
|
+
|
6
6
|
xml_convention :camelcase
|
7
7
|
xml_accessor :id, :as => Quickeebooks::Windows::Model::Id
|
8
8
|
xml_accessor :sync_token, :as => Integer
|
9
9
|
xml_accessor :last_updated_time, :as => Time
|
10
|
-
|
10
|
+
|
11
11
|
end
|
12
12
|
end
|
13
13
|
end
|
14
|
-
end
|
14
|
+
end
|
@@ -5,7 +5,7 @@ module Quickeebooks
|
|
5
5
|
module Windows
|
6
6
|
module Model
|
7
7
|
class OtherName < Quickeebooks::Windows::Model::IntuitType
|
8
|
-
|
8
|
+
|
9
9
|
xml_convention :camelcase
|
10
10
|
xml_accessor :other_name_id, :from => 'OtherNameId', :as => Quickeebooks::Windows::Model::OtherNameId
|
11
11
|
xml_accessor :other_name_name
|
@@ -13,4 +13,4 @@ module Quickeebooks
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
end
|
16
|
-
end
|
16
|
+
end
|
@@ -4,13 +4,13 @@ module Quickeebooks
|
|
4
4
|
module Windows
|
5
5
|
module Model
|
6
6
|
class OtherNameId < Quickeebooks::Windows::Model::IntuitType
|
7
|
-
|
7
|
+
|
8
8
|
DOMAIN = "QB"
|
9
|
-
|
9
|
+
|
10
10
|
xml_convention :camelcase
|
11
11
|
xml_accessor :idDomain, :from => '@idDomain' # Attribute with name 'idDomain'
|
12
12
|
xml_accessor :value, :from => :content
|
13
|
-
|
13
|
+
|
14
14
|
def initialize(value = nil)
|
15
15
|
self.idDomain = DOMAIN
|
16
16
|
self.value = value
|
@@ -18,4 +18,4 @@ module Quickeebooks
|
|
18
18
|
end
|
19
19
|
end
|
20
20
|
end
|
21
|
-
end
|
21
|
+
end
|
@@ -28,11 +28,11 @@ module Quickeebooks
|
|
28
28
|
xml_accessor :detail, :from => 'Detail', :as => Quickeebooks::Windows::Model::PaymentDetail
|
29
29
|
xml_accessor :total_amount, :from => 'TotalAmt', :as => Float
|
30
30
|
xml_accessor :process_payment, :from => 'ProcessPayment'
|
31
|
-
|
31
|
+
|
32
32
|
validate :customer_is_valid
|
33
|
-
|
33
|
+
|
34
34
|
private
|
35
|
-
|
35
|
+
|
36
36
|
def customer_is_valid
|
37
37
|
if customer_id.nil?
|
38
38
|
errors.add(:customer_id, "Missing customer_id")
|
@@ -43,7 +43,7 @@ module Quickeebooks
|
|
43
43
|
end
|
44
44
|
end
|
45
45
|
end
|
46
|
-
|
46
|
+
|
47
47
|
end
|
48
48
|
end
|
49
49
|
end
|