ledger_sync 1.4.2 → 1.4.4

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.
Files changed (165) hide show
  1. checksums.yaml +4 -4
  2. data/.overcommit.yml +30 -0
  3. data/.travis.yml +6 -1
  4. data/Gemfile +2 -0
  5. data/Gemfile.lock +11 -5
  6. data/Rakefile +2 -0
  7. data/bin/console +1 -0
  8. data/bin/quickbooks_online_oauth_server.rb +5 -4
  9. data/documentation/generators/generator.rb +4 -4
  10. data/documentation/site/LICENSE.md +14 -14
  11. data/documentation/site/_includes/header.html +34 -34
  12. data/documentation/site/_includes/section_content.html +25 -30
  13. data/documentation/site/_includes/section_cta.html +20 -24
  14. data/documentation/site/_includes/section_grid.html +39 -54
  15. data/documentation/site/_includes/section_hero.html +19 -24
  16. data/documentation/site/_includes/submenu.html +6 -7
  17. data/documentation/site/_layouts/advanced.html +0 -1
  18. data/documentation/site/_layouts/guides.html +2 -2
  19. data/documentation/site/_layouts/page.html +2 -2
  20. data/documentation/site/_plugins/filters.rb +3 -3
  21. data/documentation/site/_templates/reference/resources/resource.md.erb +14 -0
  22. data/documentation/site/assets/js/plugins.js +1 -1
  23. data/documentation/site/guides/architecture/searchers.md +3 -3
  24. data/documentation/site/reference/netsuite/resources/account.md +6 -0
  25. data/documentation/site/reference/netsuite/resources/check.md +6 -0
  26. data/documentation/site/reference/netsuite/resources/check_line_item.md +4 -0
  27. data/documentation/site/reference/netsuite/resources/currency.md +4 -0
  28. data/documentation/site/reference/netsuite/resources/customer.md +6 -0
  29. data/documentation/site/reference/netsuite/resources/customer_deposit.md +6 -0
  30. data/documentation/site/reference/netsuite/resources/department.md +6 -0
  31. data/documentation/site/reference/netsuite/resources/deposit.md +4 -0
  32. data/documentation/site/reference/netsuite/resources/deposit_line_item.md +4 -0
  33. data/documentation/site/reference/netsuite/resources/invoice.md +4 -0
  34. data/documentation/site/reference/netsuite/resources/invoice_line_item.md +4 -0
  35. data/documentation/site/reference/netsuite/resources/item.md +4 -0
  36. data/documentation/site/reference/netsuite/resources/journal_entry.md +4 -0
  37. data/documentation/site/reference/netsuite/resources/journal_entry_line_item.md +4 -0
  38. data/documentation/site/reference/netsuite/resources/ledger_class.md +6 -0
  39. data/documentation/site/reference/netsuite/resources/location.md +6 -0
  40. data/documentation/site/reference/netsuite/resources/resource.md +4 -0
  41. data/documentation/site/reference/netsuite/resources/subsidiary.md +6 -0
  42. data/documentation/site/reference/netsuite/resources/vendor.md +6 -0
  43. data/documentation/site/reference/netsuite_soap/resources/customer.md +4 -0
  44. data/documentation/site/reference/netsuite_soap/resources/resource.md +4 -0
  45. data/documentation/site/reference/netsuite_soap/resources/subsidiary.md +4 -0
  46. data/documentation/site/reference/quickbooks_online/resources/account.md +6 -0
  47. data/documentation/site/reference/quickbooks_online/resources/bill.md +6 -0
  48. data/documentation/site/reference/quickbooks_online/resources/bill_line_item.md +4 -0
  49. data/documentation/site/reference/quickbooks_online/resources/bill_payment.md +4 -0
  50. data/documentation/site/reference/quickbooks_online/resources/bill_payment_line_item.md +4 -0
  51. data/documentation/site/reference/quickbooks_online/resources/currency.md +4 -0
  52. data/documentation/site/reference/quickbooks_online/resources/customer.md +6 -0
  53. data/documentation/site/reference/quickbooks_online/resources/department.md +6 -0
  54. data/documentation/site/reference/quickbooks_online/resources/deposit.md +6 -0
  55. data/documentation/site/reference/quickbooks_online/resources/deposit_line_item.md +4 -0
  56. data/documentation/site/reference/quickbooks_online/resources/expense.md +6 -0
  57. data/documentation/site/reference/quickbooks_online/resources/expense_line_item.md +4 -0
  58. data/documentation/site/reference/quickbooks_online/resources/invoice.md +4 -0
  59. data/documentation/site/reference/quickbooks_online/resources/invoice_sales_line_item.md +4 -0
  60. data/documentation/site/reference/quickbooks_online/resources/item.md +4 -0
  61. data/documentation/site/reference/quickbooks_online/resources/journal_entry.md +6 -0
  62. data/documentation/site/reference/quickbooks_online/resources/journal_entry_line_item.md +4 -0
  63. data/documentation/site/reference/quickbooks_online/resources/ledger_class.md +6 -0
  64. data/documentation/site/reference/quickbooks_online/resources/payment.md +4 -0
  65. data/documentation/site/reference/quickbooks_online/resources/payment_line_item.md +4 -0
  66. data/documentation/site/reference/quickbooks_online/resources/preferences.md +4 -0
  67. data/documentation/site/reference/quickbooks_online/resources/primary_email_addr.md +4 -0
  68. data/documentation/site/reference/quickbooks_online/resources/primary_phone.md +4 -0
  69. data/documentation/site/reference/quickbooks_online/resources/resource.md +4 -0
  70. data/documentation/site/reference/quickbooks_online/resources/subsidiary.md +4 -0
  71. data/documentation/site/reference/quickbooks_online/resources/transfer.md +4 -0
  72. data/documentation/site/reference/quickbooks_online/resources/vendor.md +6 -0
  73. data/documentation/site/reference/stripe/resources/customer.md +4 -0
  74. data/documentation/site/reference/stripe/resources/resource.md +4 -0
  75. data/ledger_sync.gemspec +3 -1
  76. data/lib/ledger_sync.rb +3 -1
  77. data/lib/ledger_sync/concerns/validatable.rb +2 -0
  78. data/lib/ledger_sync/error/operation_errors.rb +1 -1
  79. data/lib/ledger_sync/error/resource_errors.rb +3 -2
  80. data/lib/ledger_sync/ledger_configuration_store.rb +5 -1
  81. data/lib/ledger_sync/ledgers/client.rb +12 -4
  82. data/lib/ledger_sync/ledgers/mixins/infer_serializer_mixin.rb +3 -1
  83. data/lib/ledger_sync/ledgers/netsuite/account/operations/find.rb +1 -1
  84. data/lib/ledger_sync/ledgers/netsuite/client.rb +2 -2
  85. data/lib/ledger_sync/ledgers/netsuite/dashboard_url_helper.rb +1 -1
  86. data/lib/ledger_sync/ledgers/netsuite/error.rb +1 -0
  87. data/lib/ledger_sync/ledgers/netsuite/journal_entry_line_item/deserializer.rb +0 -3
  88. data/lib/ledger_sync/ledgers/netsuite/resources/account.rb +1 -2
  89. data/lib/ledger_sync/ledgers/netsuite/searcher.rb +3 -1
  90. data/lib/ledger_sync/ledgers/netsuite/token.rb +1 -1
  91. data/lib/ledger_sync/ledgers/netsuite/type/deserializer_entity_type.rb +6 -6
  92. data/lib/ledger_sync/ledgers/netsuite/vendor/operations/create.rb +1 -1
  93. data/lib/ledger_sync/ledgers/netsuite/vendor/operations/delete.rb +1 -1
  94. data/lib/ledger_sync/ledgers/netsuite/vendor/operations/find.rb +1 -1
  95. data/lib/ledger_sync/ledgers/netsuite/vendor/operations/update.rb +1 -1
  96. data/lib/ledger_sync/ledgers/netsuite_soap/client.rb +15 -21
  97. data/lib/ledger_sync/ledgers/netsuite_soap/customer/operations/create.rb +2 -0
  98. data/lib/ledger_sync/ledgers/operation.rb +5 -3
  99. data/lib/ledger_sync/ledgers/quickbooks_online/account/operations/create.rb +2 -0
  100. data/lib/ledger_sync/ledgers/quickbooks_online/account/operations/find.rb +2 -0
  101. data/lib/ledger_sync/ledgers/quickbooks_online/bill/operations/create.rb +2 -0
  102. data/lib/ledger_sync/ledgers/quickbooks_online/bill/operations/find.rb +2 -0
  103. data/lib/ledger_sync/ledgers/quickbooks_online/bill/operations/update.rb +2 -0
  104. data/lib/ledger_sync/ledgers/quickbooks_online/client.rb +12 -4
  105. data/lib/ledger_sync/ledgers/quickbooks_online/customer/searcher.rb +2 -0
  106. data/lib/ledger_sync/ledgers/quickbooks_online/dashboard_url_helper.rb +22 -22
  107. data/lib/ledger_sync/ledgers/quickbooks_online/department/operations/create.rb +2 -0
  108. data/lib/ledger_sync/ledgers/quickbooks_online/department/operations/find.rb +2 -0
  109. data/lib/ledger_sync/ledgers/quickbooks_online/deposit/operations/create.rb +2 -0
  110. data/lib/ledger_sync/ledgers/quickbooks_online/deposit/operations/find.rb +2 -0
  111. data/lib/ledger_sync/ledgers/quickbooks_online/deposit/searcher.rb +1 -0
  112. data/lib/ledger_sync/ledgers/quickbooks_online/deserializer.rb +4 -2
  113. data/lib/ledger_sync/ledgers/quickbooks_online/expense/deserializer.rb +3 -2
  114. data/lib/ledger_sync/ledgers/quickbooks_online/expense/operations/create.rb +2 -0
  115. data/lib/ledger_sync/ledgers/quickbooks_online/expense/operations/find.rb +2 -0
  116. data/lib/ledger_sync/ledgers/quickbooks_online/expense/operations/update.rb +2 -0
  117. data/lib/ledger_sync/ledgers/quickbooks_online/invoice/operations/find.rb +2 -0
  118. data/lib/ledger_sync/ledgers/quickbooks_online/invoice/operations/update.rb +2 -0
  119. data/lib/ledger_sync/ledgers/quickbooks_online/journal_entry/operations/create.rb +2 -0
  120. data/lib/ledger_sync/ledgers/quickbooks_online/journal_entry/operations/find.rb +2 -0
  121. data/lib/ledger_sync/ledgers/quickbooks_online/journal_entry/operations/update.rb +2 -0
  122. data/lib/ledger_sync/ledgers/quickbooks_online/ledger_class/deserializer.rb +0 -1
  123. data/lib/ledger_sync/ledgers/quickbooks_online/ledger_class/operations/create.rb +2 -0
  124. data/lib/ledger_sync/ledgers/quickbooks_online/ledger_class/operations/find.rb +2 -0
  125. data/lib/ledger_sync/ledgers/quickbooks_online/operation.rb +1 -1
  126. data/lib/ledger_sync/ledgers/quickbooks_online/payment/operations/find.rb +2 -0
  127. data/lib/ledger_sync/ledgers/quickbooks_online/payment/operations/update.rb +2 -0
  128. data/lib/ledger_sync/ledgers/quickbooks_online/resources/customer.rb +4 -0
  129. data/lib/ledger_sync/ledgers/quickbooks_online/transfer/operations/create.rb +2 -0
  130. data/lib/ledger_sync/ledgers/quickbooks_online/transfer/operations/find.rb +2 -0
  131. data/lib/ledger_sync/ledgers/quickbooks_online/util/error_matcher.rb +8 -5
  132. data/lib/ledger_sync/ledgers/quickbooks_online/util/ledger_error_parser.rb +3 -3
  133. data/lib/ledger_sync/ledgers/quickbooks_online/util/operation_error_parser.rb +2 -2
  134. data/lib/ledger_sync/ledgers/quickbooks_online/webhook_event.rb +3 -1
  135. data/lib/ledger_sync/ledgers/quickbooks_online/webhook_notification.rb +4 -3
  136. data/lib/ledger_sync/ledgers/response.rb +3 -1
  137. data/lib/ledger_sync/ledgers/stripe/client.rb +1 -1
  138. data/lib/ledger_sync/ledgers/stripe/dashboard_url_helper.rb +1 -1
  139. data/lib/ledger_sync/ledgers/stripe/operation/create.rb +0 -2
  140. data/lib/ledger_sync/ledgers/stripe/operation/delete.rb +0 -2
  141. data/lib/ledger_sync/ledgers/stripe/operation/update.rb +0 -2
  142. data/lib/ledger_sync/resource.rb +3 -1
  143. data/lib/ledger_sync/resource_attribute/dirty_mixin.rb +1 -1
  144. data/lib/ledger_sync/resource_attribute/mixin.rb +3 -3
  145. data/lib/ledger_sync/resource_attribute_set.rb +1 -1
  146. data/lib/ledger_sync/result.rb +7 -12
  147. data/lib/ledger_sync/serialization/deserializer_attribute.rb +6 -2
  148. data/lib/ledger_sync/serializer.rb +3 -1
  149. data/lib/ledger_sync/type/reference_one.rb +1 -1
  150. data/lib/ledger_sync/util/hash_helpers.rb +12 -2
  151. data/lib/ledger_sync/util/mixins/delegate_iterable_methods_mixin.rb +1 -0
  152. data/lib/ledger_sync/util/read_only_object.rb +1 -1
  153. data/lib/ledger_sync/util/resource_converter.rb +12 -8
  154. data/lib/ledger_sync/util/resource_converter/attribute.rb +3 -1
  155. data/lib/ledger_sync/util/resource_converter/attribute_set.rb +2 -1
  156. data/lib/ledger_sync/util/resources_builder.rb +5 -5
  157. data/lib/ledger_sync/version.rb +3 -1
  158. metadata +17 -10
  159. data/documentation/site/reference/architecture/clients.md +0 -33
  160. data/documentation/site/reference/architecture/index.md +0 -14
  161. data/documentation/site/reference/architecture/operations.md +0 -6
  162. data/documentation/site/reference/architecture/resources.md +0 -38
  163. data/documentation/site/reference/architecture/results.md +0 -6
  164. data/documentation/site/reference/architecture/searchers.md +0 -6
  165. data/documentation/site/reference/architecture/serialization.md +0 -6
@@ -3,7 +3,7 @@
3
3
  module LedgerSync
4
4
  module Ledgers
5
5
  module NetSuite
6
- class Vendor
6
+ class Vendor
7
7
  module Operations
8
8
  class Find < NetSuite::Operation::Find
9
9
  class Contract < LedgerSync::Ledgers::Contract
@@ -3,7 +3,7 @@
3
3
  module LedgerSync
4
4
  module Ledgers
5
5
  module NetSuite
6
- class Vendor
6
+ class Vendor
7
7
  module Operations
8
8
  class Update < NetSuite::Operation::Update
9
9
  class Contract < LedgerSync::Ledgers::Contract
@@ -1,33 +1,27 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'oauth2'
2
4
 
3
5
  module LedgerSync
4
6
  module Ledgers
5
7
  module NetSuiteSOAP
6
8
  class Client < Ledgers::Client
7
- DEFAULT_API_VERSION = '2016_2'.freeze
9
+ DEFAULT_API_VERSION = '2016_2'
8
10
 
9
11
  attr_reader :account_id,
10
12
  :api_version,
11
13
  :consumer_key,
12
14
  :consumer_secret,
13
- :account_id,
14
15
  :token_id,
15
16
  :token_secret
16
17
 
17
- def initialize(
18
- account_id:,
19
- api_version: nil,
20
- consumer_key:,
21
- consumer_secret:,
22
- token_id:,
23
- token_secret:
24
- )
25
- @account_id = account_id
26
- @api_version = api_version || DEFAULT_API_VERSION
27
- @consumer_key = consumer_key
28
- @consumer_secret = consumer_secret
29
- @token_id = token_id
30
- @token_secret = token_secret
18
+ def initialize(args = {})
19
+ @account_id = args.fetch(:account_id)
20
+ @api_version = args.fetch(:api_version, DEFAULT_API_VERSION)
21
+ @consumer_key = args.fetch(:consumer_key)
22
+ @consumer_secret = args.fetch(:consumer_secret)
23
+ @token_id = args.fetch(:token_id)
24
+ @token_secret = args.fetch(:token_secret)
31
25
  end
32
26
 
33
27
  #
@@ -51,11 +45,11 @@ module LedgerSync
51
45
  def setup
52
46
  setup_account_id_for_gem = account_id_for_gem
53
47
  setup_account_id_for_url = account_id_for_url
54
- setup_api_version = api_version
55
- setup_consumer_key = consumer_key
56
- setup_consumer_secret = consumer_secret
57
- setup_token_id = token_id
58
- setup_token_secret = token_secret
48
+ setup_api_version = api_version
49
+ setup_consumer_key = consumer_key
50
+ setup_consumer_secret = consumer_secret
51
+ setup_token_id = token_id
52
+ setup_token_secret = token_secret
59
53
 
60
54
  ::NetSuite.configure do
61
55
  reset!
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module LedgerSync
2
4
  module Ledgers
3
5
  module NetSuiteSOAP
@@ -3,7 +3,7 @@
3
3
  module LedgerSync
4
4
  module Ledgers
5
5
  module Operation
6
- module Mixin
6
+ module Mixin # rubocop:disable Metrics/ModuleLength
7
7
  module ClassMethods
8
8
  def client_class
9
9
  @client_class ||= Class.const_get("#{name.split('::')[0..2].join('::')}::Ledger")
@@ -57,14 +57,16 @@ module LedgerSync
57
57
  @validation_contract = args.fetch(:validation_contract, nil)
58
58
 
59
59
  # self.class.raise_if_unexpected_class(expected: self.class.inferred_resource_class, given: @resource.class)
60
- self.class.raise_if_unexpected_class(expected: LedgerSync::Ledgers::Contract, given: validation_contract) unless @validation_contract.nil?
60
+ return if @validation_contract.nil?
61
+
62
+ self.class.raise_if_unexpected_class(expected: LedgerSync::Ledgers::Contract, given: validation_contract)
61
63
  end
62
64
 
63
65
  def perform
64
66
  failure(LedgerSync::Error::OperationError::PerformedOperationError.new(operation: self)) if @performed
65
67
 
66
68
  @result = begin
67
- operate
69
+ operate
68
70
  rescue LedgerSync::Error => e
69
71
  failure(e)
70
72
  rescue StandardError => e
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module LedgerSync
2
4
  module Ledgers
3
5
  module QuickBooksOnline
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module LedgerSync
2
4
  module Ledgers
3
5
  module QuickBooksOnline
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module LedgerSync
2
4
  module Ledgers
3
5
  module QuickBooksOnline
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module LedgerSync
2
4
  module Ledgers
3
5
  module QuickBooksOnline
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module LedgerSync
2
4
  module Ledgers
3
5
  module QuickBooksOnline
@@ -96,7 +96,8 @@ module LedgerSync
96
96
  ledger_resource_type = self.class.ledger_resource_type_for(
97
97
  resource_class: resource_class
98
98
  ).classify
99
- full_query = "SELECT * FROM #{ledger_resource_type} WHERE #{query} STARTPOSITION #{offset} MAXRESULTS #{limit}"
99
+ full_query = "SELECT * FROM #{ledger_resource_type} WHERE #{query} STARTPOSITION #{offset} MAXRESULTS "\
100
+ "#{limit}"
100
101
  url = "#{oauth_base_uri}/query?query=#{CGI.escape(full_query)}"
101
102
 
102
103
  request(
@@ -116,7 +117,9 @@ module LedgerSync
116
117
  end
117
118
 
118
119
  def revoke_token!
119
- headers = OAUTH_HEADERS.dup.merge('Authorization' => 'Basic ' + Base64.strict_encode64(client_id + ':' + client_secret))
120
+ headers = OAUTH_HEADERS.dup.merge(
121
+ 'Authorization' => 'Basic ' + Base64.strict_encode64(client_id + ':' + client_secret)
122
+ )
120
123
  LedgerSync::Ledgers::Request.new(
121
124
  body: {
122
125
  token: access_token
@@ -141,7 +144,7 @@ module LedgerSync
141
144
  oauth_token
142
145
  end
143
146
 
144
- def update_secrets_in_dotenv
147
+ def update_secrets_in_dotenv # rubocop:disable Metrics/CyclomaticComplexity,Metrics/PerceivedComplexity
145
148
  return if ENV['TEST_ENV'] && !ENV['USE_DOTENV_ADAPTOR_SECRETS']
146
149
 
147
150
  filename = File.join(Dir.pwd, '.env')
@@ -166,6 +169,7 @@ module LedgerSync
166
169
  tempfile.puts line
167
170
  end
168
171
  end
172
+
169
173
  tempfile.close
170
174
  FileUtils.mv tempfile.path, filename
171
175
  end
@@ -243,7 +247,11 @@ module LedgerSync
243
247
  @access_token = token.token
244
248
 
245
249
  @expires_at = Time&.at(token.expires_at.to_i)&.to_datetime
246
- @refresh_token_expires_at = Time&.at(Time.now.to_i + token.params['x_refresh_token_expires_in'])&.to_datetime unless token.params['x_refresh_token_expires_in'].nil?
250
+ unless token.params['x_refresh_token_expires_in'].nil?
251
+ @refresh_token_expires_at = Time&.at(
252
+ Time.now.to_i + token.params['x_refresh_token_expires_in']
253
+ )&.to_datetime
254
+ end
247
255
 
248
256
  @previous_refresh_tokens << refresh_token if refresh_token.present?
249
257
  @refresh_token = token.refresh_token
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module LedgerSync
2
4
  module Ledgers
3
5
  module QuickBooksOnline
@@ -4,29 +4,29 @@ module LedgerSync
4
4
  module Ledgers
5
5
  module QuickBooksOnline
6
6
  class DashboardURLHelper < LedgerSync::Ledgers::DashboardURLHelper
7
- def resource_path
7
+ def resource_path # rubocop:disable Metrics/CyclomaticComplexity
8
8
  @resource_path = case resource
9
- when QuickBooksOnline::Account
10
- "/register?accountId=#{resource.ledger_id}"
11
- when QuickBooksOnline::Bill
12
- "/bill?txnId=#{resource.ledger_id}"
13
- when QuickBooksOnline::Customer
14
- "/customerdetail?nameId=#{resource.ledger_id}"
15
- when QuickBooksOnline::Deposit
16
- "/deposit?txnId=#{resource.ledger_id}"
17
- when QuickBooksOnline::Expense
18
- "/expense?txnId=#{resource.ledger_id}"
19
- when QuickBooksOnline::JournalEntry
20
- "/journal?txnId=#{resource.ledger_id}"
21
- when QuickBooksOnline::LedgerClass
22
- "/class"
23
- when QuickBooksOnline::Payment
24
- "/recvpayment?txnId=#{resource.ledger_id}"
25
- when QuickBooksOnline::Transfer
26
- "/transfer?txnId=#{resource.ledger_id}"
27
- when QuickBooksOnline::Vendor
28
- "/vendordetail?nameId=#{resource.ledger_id}"
29
- end
9
+ when QuickBooksOnline::Account
10
+ "/register?accountId=#{resource.ledger_id}"
11
+ when QuickBooksOnline::Bill
12
+ "/bill?txnId=#{resource.ledger_id}"
13
+ when QuickBooksOnline::Customer
14
+ "/customerdetail?nameId=#{resource.ledger_id}"
15
+ when QuickBooksOnline::Deposit
16
+ "/deposit?txnId=#{resource.ledger_id}"
17
+ when QuickBooksOnline::Expense
18
+ "/expense?txnId=#{resource.ledger_id}"
19
+ when QuickBooksOnline::JournalEntry
20
+ "/journal?txnId=#{resource.ledger_id}"
21
+ when QuickBooksOnline::LedgerClass
22
+ '/class'
23
+ when QuickBooksOnline::Payment
24
+ "/recvpayment?txnId=#{resource.ledger_id}"
25
+ when QuickBooksOnline::Transfer
26
+ "/transfer?txnId=#{resource.ledger_id}"
27
+ when QuickBooksOnline::Vendor
28
+ "/vendordetail?nameId=#{resource.ledger_id}"
29
+ end
30
30
  end
31
31
  end
32
32
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module LedgerSync
2
4
  module Ledgers
3
5
  module QuickBooksOnline
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module LedgerSync
2
4
  module Ledgers
3
5
  module QuickBooksOnline
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module LedgerSync
2
4
  module Ledgers
3
5
  module QuickBooksOnline
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module LedgerSync
2
4
  module Ledgers
3
5
  module QuickBooksOnline
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require_relative '../searcher'
3
4
 
4
5
  module LedgerSync
@@ -14,11 +14,13 @@ module LedgerSync
14
14
  deserialized_resource = super(hash: hash, resource: resource)
15
15
 
16
16
  # Ref: https://github.com/LedgerSync/ledger_sync/issues/86
17
- if deserialized_resource.is_a?(LedgerSync::Ledgers::QuickBooksOnline::Account) && deserialized_resource.account_type
17
+ if deserialized_resource.is_a?(LedgerSync::Ledgers::QuickBooksOnline::Account) &&
18
+ deserialized_resource.account_type &&
19
+ deserialized_resource.classification.blank?
18
20
  deserialized_resource.classification = deserialized_resource.class::TYPES_TO_CLASSIFICATION_MAPPING.fetch(
19
21
  deserialized_resource.account_type,
20
22
  nil
21
- ) if deserialized_resource.classification.blank?
23
+ )
22
24
  end
23
25
 
24
26
  return deserialized_resource unless merge_for_full_update
@@ -8,6 +8,8 @@ module LedgerSync
8
8
  module QuickBooksOnline
9
9
  class Expense
10
10
  class Deserializer < QuickBooksOnline::Deserializer
11
+ id
12
+
11
13
  references_one :currency,
12
14
  hash_attribute: :CurrencyRef,
13
15
  deserializer: Currency::Deserializer
@@ -33,8 +35,7 @@ module LedgerSync
33
35
  Client.resource_from_ledger_type(
34
36
  type: value['type']
35
37
  ).new(
36
- ledger_id: value['value'],
37
- display_name: value['name']
38
+ ledger_id: value['value']
38
39
  )
39
40
  end
40
41
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module LedgerSync
2
4
  module Ledgers
3
5
  module QuickBooksOnline
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module LedgerSync
2
4
  module Ledgers
3
5
  module QuickBooksOnline
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module LedgerSync
2
4
  module Ledgers
3
5
  module QuickBooksOnline
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module LedgerSync
2
4
  module Ledgers
3
5
  module QuickBooksOnline
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module LedgerSync
2
4
  module Ledgers
3
5
  module QuickBooksOnline
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module LedgerSync
2
4
  module Ledgers
3
5
  module QuickBooksOnline
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module LedgerSync
2
4
  module Ledgers
3
5
  module QuickBooksOnline
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module LedgerSync
2
4
  module Ledgers
3
5
  module QuickBooksOnline
@@ -21,7 +21,6 @@ module LedgerSync
21
21
 
22
22
  attribute 'parent.ledger_id',
23
23
  hash_attribute: 'ParentRef.value'
24
-
25
24
  end
26
25
  end
27
26
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module LedgerSync
2
4
  module Ledgers
3
5
  module QuickBooksOnline
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module LedgerSync
2
4
  module Ledgers
3
5
  module QuickBooksOnline
@@ -1,4 +1,4 @@
1
- # frozen_string_literal: true
1
+ # frozen_string_literal: true
2
2
 
3
3
  module LedgerSync
4
4
  module Ledgers
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module LedgerSync
2
4
  module Ledgers
3
5
  module QuickBooksOnline
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module LedgerSync
2
4
  module Ledgers
3
5
  module QuickBooksOnline
@@ -13,6 +13,10 @@ module LedgerSync
13
13
  references_one :PrimaryPhone, to: PrimaryPhone
14
14
  references_one :PrimaryEmailAddr, to: PrimaryEmailAddr
15
15
  references_one :subsidiary, to: Subsidiary
16
+
17
+ def name
18
+ self.DisplayName
19
+ end
16
20
  end
17
21
  end
18
22
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module LedgerSync
2
4
  module Ledgers
3
5
  module QuickBooksOnline