quickbooks-ruby 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5e0e5a4d254a49ea8f633ba0b70a4b20c11a7a29
4
- data.tar.gz: bb4b11ecdaf0d0b98b9074102b175a0954c3b386
3
+ metadata.gz: 333d4d3a664eb7b3b48294bdcd2de31071593403
4
+ data.tar.gz: f67d64f084bec1975705b7aaa19148716f82ed37
5
5
  SHA512:
6
- metadata.gz: 78b84c571e4b68904be22000788b7240ad9ca6154cd49cd30af99e30b31a953a4250a7cd74a9ad30a770b943707b643a4b5dc82ce46b0e1d59c8120f51b9c994
7
- data.tar.gz: b759d252cffacd0466c4d9d98adecf900e262814fd3ec697423e899291fd0685a4ba1f5f7f4c8077b7cf570cee551e778636b5edfe48f367fcb4d1939e560492
6
+ metadata.gz: 83df4ff5537f43d8066a62804fe31781a7ab95be145c599fbf0b10ae27faf493d7615c1f53ca7454e60a86ec3a2e1f0aab6f3f0576852e1ca10fecd6872e4d1c
7
+ data.tar.gz: 676423da97728dfde65cf08f9750aaf26ec093f32138b2b6be979c651fe51eda8efd26c9cc6cb36b1ad0f2d46cdd75af14dfea739a6669ddcc4316702047037f
@@ -17,6 +17,7 @@ class Quickbooks::Model::BatchRequest < Quickbooks::Model::BaseModel
17
17
  xml_accessor :bill_payment, from: "BillPayment", as: Quickbooks::Model::BillPayment
18
18
  xml_accessor :purchase, from: "Purchase", as: Quickbooks::Model::Purchase
19
19
  xml_accessor :credit_memo, from: "CreditMemo", as: Quickbooks::Model::CreditMemo
20
+ xml_accessor :payment, from: "Payment", as: Quickbooks::Model::Payment
20
21
  end
21
22
 
22
23
  XML_COLLECTION_NODE = "IntuitBatchRequest"
@@ -16,6 +16,7 @@ class Quickbooks::Model::BatchResponse < Quickbooks::Model::BaseModel
16
16
  xml_accessor :bill_payment, from: "BillPayment", as: Quickbooks::Model::BillPayment
17
17
  xml_accessor :purchase, from: "Purchase", as: Quickbooks::Model::Purchase
18
18
  xml_accessor :credit_memo, from: "CreditMemo", as: Quickbooks::Model::CreditMemo
19
+ xml_accessor :payment, from: "Payment", as: Quickbooks::Model::Payment
19
20
 
20
21
  def fault?
21
22
  fault
@@ -11,9 +11,7 @@ module Quickbooks
11
11
  xml_accessor :meta_data, :from => 'MetaData', :as => MetaData
12
12
  xml_accessor :auto_doc_number, :from => 'AutoDocNumber' # See auto_doc_number! method below for usage
13
13
  xml_accessor :doc_number, :from => 'DocNumber'
14
- #xml_accessor :txn_date, :from => 'TxnDate', :as => Date
15
- # TODO: Next major version 'placed_on' should be replaced by 'txn_date'
16
- xml_accessor :placed_on, :from => 'TxnDate', :as => Date
14
+ xml_accessor :txn_date, :from => 'TxnDate', :as => Date
17
15
  xml_accessor :department_ref, :from => 'DepartmentRef', :as => BaseReference
18
16
 
19
17
  xml_accessor :line_items, :from => 'Line', :as => [Line]
@@ -31,6 +29,9 @@ module Quickbooks
31
29
  # readonly
32
30
  xml_accessor :total, :from => 'TotalAmt', :as => BigDecimal
33
31
 
32
+ # backward-compatible alias
33
+ alias_attribute :placed_on, :txn_date
34
+
34
35
  validate :line_item_size
35
36
  validate :document_numbering
36
37
 
@@ -27,7 +27,7 @@ module Quickbooks
27
27
  xml_accessor :primary_phone, :from => 'PrimaryPhone', :as => TelephoneNumber
28
28
  xml_accessor :mobile_phone, :from => 'Mobile', :as => TelephoneNumber
29
29
  xml_accessor :primary_email_address, :from => 'PrimaryEmailAddr', :as => EmailAddress
30
- xml_accessor :number, :from => 'EmployeeNumber', :as => Integer
30
+ xml_accessor :number, :from => 'EmployeeNumber'
31
31
  xml_accessor :ssn, :from => 'SSN'
32
32
  xml_accessor :address, :from => 'PrimaryAddr', :as => PhysicalAddress
33
33
  xml_accessor :billable?, :from => 'BillableTime'
@@ -25,7 +25,7 @@ module Quickbooks
25
25
  xml_accessor :department_ref, :from => 'DepartmentRef', :as => BaseReference
26
26
  xml_accessor :linked_transactions, :from => 'LinkedTxn', :as => [LinkedTransaction]
27
27
  xml_accessor :line_items, :from => 'Line', :as => [InvoiceLineItem]
28
- xml_accessor :txn_tax_detail, :from => 'TxnTaxDetail'
28
+ xml_accessor :txn_tax_detail, :from => 'TxnTaxDetail', :as => TransactionTaxDetail
29
29
  xml_accessor :txn_status, :from => 'TxnStatus'
30
30
 
31
31
  xml_accessor :customer_ref, :from => 'CustomerRef', :as => BaseReference
@@ -21,19 +21,47 @@ module Quickbooks
21
21
  xml_accessor :payment_line_detail, :from => 'PaymentLineDetail', :as => PaymentLineDetail
22
22
  xml_accessor :discount_line_detail, :from => 'DiscountLineDetail', :as => DiscountOverride
23
23
  xml_accessor :journal_entry_line_detail, :from => 'JournalEntryLineDetail', :as => JournalEntryLineDetail
24
- xml_accessor :linked_transaction, :from => 'LinkedTxn', :as => LinkedTransaction
25
24
 
26
- def invoice_id=(invoice_id)
27
- self.linked_transaction = LinkedTransaction.new(txn_id: invoice_id,
28
- txn_type: "Invoice")
25
+ def initialize(*args)
26
+ super
27
+ self.linked_transactions ||= []
29
28
  end
30
29
 
30
+ def invoice_id=(id)
31
+ update_linked_transactions([id], 'Invoice')
32
+ end
33
+ alias_method :invoice_ids=, :invoice_id=
34
+
35
+ def credit_memo_id=(id)
36
+ update_linked_transactions([id], 'CreditMemo')
37
+ end
38
+ alias_method :credit_memo_ids=, :credit_memo_id=
39
+
31
40
  def sales_item!
32
41
  self.detail_type = SALES_LINE_ITEM_DETAIL
33
42
  self.sales_item_line_detail = SalesItemLineDetail.new
34
43
 
35
44
  yield self.sales_item_line_detail if block_given?
36
45
  end
46
+
47
+
48
+ private
49
+
50
+ def update_linked_transactions(txn_ids, txn_type)
51
+ remove_linked_transactions(txn_type)
52
+ txn_ids.flatten.compact.each do |id|
53
+ add_linked_transaction(id, txn_type)
54
+ end
55
+ end
56
+
57
+ def remove_linked_transactions(txn_type)
58
+ self.linked_transactions.delete_if { |lt| lt.txn_type == txn_type }
59
+ end
60
+
61
+ def add_linked_transaction(txn_id, txn_type)
62
+ self.linked_transactions << LinkedTransaction.new(txn_id: txn_id,
63
+ txn_type: txn_type)
64
+ end
37
65
  end
38
66
  end
39
67
  end
@@ -29,6 +29,11 @@ module Quickbooks
29
29
 
30
30
  validate :existence_of_customer_ref
31
31
 
32
+ def initialize(*args)
33
+ ensure_line_items_initialization
34
+ super
35
+ end
36
+
32
37
  private
33
38
 
34
39
  def existence_of_customer_ref
@@ -10,7 +10,6 @@ module Quickbooks
10
10
  xml_accessor :meta_data, :from => 'MetaData', :as => MetaData
11
11
  xml_accessor :auto_doc_number, :from => 'AutoDocNumber' # See auto_doc_number! method below for usage
12
12
  xml_accessor :doc_number, :from => 'DocNumber'
13
- xml_accessor :placed_on, :from => 'TxnDate', :as => Time
14
13
  xml_accessor :line_items, :from => 'Line', :as => [Line]
15
14
  xml_accessor :customer_ref, :from => 'CustomerRef', :as => BaseReference
16
15
  xml_accessor :department_ref, :from => 'DepartmentRef', :as => BaseReference
@@ -39,6 +38,9 @@ module Quickbooks
39
38
  xml_accessor :total, :from => 'TotalAmt', :as => BigDecimal
40
39
  xml_accessor :home_total, :from => 'HomeTotalAmt', :as => BigDecimal, :to_xml => to_xml_big_decimal
41
40
 
41
+ # backward-compatible alias
42
+ alias_attribute :placed_on, :txn_date
43
+
42
44
  include DocumentNumbering
43
45
  reference_setters :customer_ref, :payment_method_ref, :deposit_to_account_ref, :department_ref, :currency_ref, :class_ref
44
46
 
@@ -11,7 +11,7 @@ module Quickbooks
11
11
  xml_accessor :meta_data, :from => 'MetaData', :as => MetaData
12
12
  xml_accessor :auto_doc_number, :from => 'AutoDocNumber' # See auto_doc_number! method below for usage
13
13
  xml_accessor :doc_number, :from => 'DocNumber'
14
- xml_accessor :placed_on, :from => 'TxnDate', :as => Time
14
+ xml_accessor :txn_date, :from => 'TxnDate', :as => Time
15
15
  xml_accessor :line_items, :from => 'Line', :as => [Line]
16
16
  xml_accessor :customer_ref, :from => 'CustomerRef', :as => BaseReference
17
17
  xml_accessor :bill_email, :from => 'BillEmail', :as => EmailAddress
@@ -30,6 +30,9 @@ module Quickbooks
30
30
  # readonly
31
31
  xml_accessor :total, :from => 'TotalAmt', :as => BigDecimal
32
32
 
33
+ # backward-compatible alias
34
+ alias_attribute :placed_on, :txn_date
35
+
33
36
  reference_setters :customer_ref, :payment_method_ref, :deposit_to_account_ref
34
37
 
35
38
  validate :line_item_size
@@ -20,6 +20,7 @@ module Quickbooks
20
20
  xml_accessor :vendor_ref, :from => 'VendorRef', :as => BaseReference
21
21
  xml_accessor :customer_ref, :from => 'CustomerRef', :as => BaseReference
22
22
  xml_accessor :item_ref, :from => 'ItemRef', :as => BaseReference
23
+ xml_accessor :class_ref, :from => 'ClassRef', :as => BaseReference
23
24
 
24
25
  xml_accessor :billable_status, :from => 'BillableStatus'
25
26
  xml_accessor :taxable, :from => 'Taxable'
@@ -10,12 +10,26 @@ module Quickbooks
10
10
  end
11
11
 
12
12
  def clause(field, operator, value)
13
- # escape single quotes with an escaped backslash
14
- value = value.gsub("'", "\\\\'")
13
+ value = case value
14
+ when DateTime, Time
15
+ value.iso8601
16
+ when Date
17
+ value.strftime('%Y-%m-%d')
18
+ when Array
19
+ value = value.map{|v| v.to_s.gsub("'", "\\\\'") }
20
+ else
21
+ # escape single quotes with an escaped backslash
22
+ value = value.gsub("'", "\\\\'")
23
+ end
15
24
 
16
- "#{field} #{operator} #{VALUE_QUOTE}#{value}#{VALUE_QUOTE}"
25
+ if operator.downcase == 'in' && value.is_a?(Array)
26
+ value = value.map{|v| "#{VALUE_QUOTE}#{v}#{VALUE_QUOTE}"}
27
+ "#{field} #{operator} (#{value.join(', ')})"
28
+ else
29
+ "#{field} #{operator} #{VALUE_QUOTE}#{value}#{VALUE_QUOTE}"
30
+ end
17
31
  end
18
32
 
19
33
  end
20
34
  end
21
- end
35
+ end
@@ -1,5 +1,5 @@
1
1
  module Quickbooks
2
2
 
3
- VERSION = "0.1.4"
3
+ VERSION = "0.1.5"
4
4
 
5
5
  end
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.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cody Caughlan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-16 00:00:00.000000000 Z
11
+ date: 2014-09-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oauth