quickbooks-ruby 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
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