ledger_sync 1.4.4 → 1.5.0

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 (214) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +64 -1
  3. data/.travis.yml +12 -5
  4. data/Gemfile.lock +67 -65
  5. data/bin/quickbooks_online_oauth_server.rb +1 -1
  6. data/documentation/generators/reference/ledger/generator.rb +2 -0
  7. data/documentation/site/guides/contribute/deployment.md +62 -7
  8. data/documentation/site/guides/contribute/index.md +5 -1
  9. data/ledger_sync.gemspec +13 -11
  10. data/lib/ledger_sync.rb +17 -12
  11. data/lib/ledger_sync/deserializer.rb +2 -2
  12. data/lib/ledger_sync/error.rb +2 -2
  13. data/lib/ledger_sync/error/ledger_errors.rb +1 -2
  14. data/lib/ledger_sync/error/operation_errors.rb +2 -2
  15. data/lib/ledger_sync/error/resource_errors.rb +1 -1
  16. data/lib/ledger_sync/ledger_configuration.rb +16 -12
  17. data/lib/ledger_sync/ledger_configuration_store.rb +16 -7
  18. data/lib/ledger_sync/ledgers/client.rb +123 -108
  19. data/lib/ledger_sync/ledgers/mixins/infer_config_mixin.rb +37 -0
  20. data/lib/ledger_sync/ledgers/mixins/infer_resource_class_mixin.rb +5 -4
  21. data/lib/ledger_sync/ledgers/mixins/infer_serializer_mixin.rb +5 -5
  22. data/lib/ledger_sync/ledgers/mixins/serialization_mixin.rb +2 -2
  23. data/lib/ledger_sync/ledgers/netsuite/check_line_item/deserializer.rb +2 -1
  24. data/lib/ledger_sync/ledgers/netsuite/check_line_item/serializer.rb +2 -1
  25. data/lib/ledger_sync/ledgers/netsuite/client.rb +5 -1
  26. data/lib/ledger_sync/ledgers/netsuite/config.rb +3 -1
  27. data/lib/ledger_sync/ledgers/netsuite/deserializer.rb +1 -1
  28. data/lib/ledger_sync/ledgers/netsuite/type/deserializer_customer_type.rb +2 -0
  29. data/lib/ledger_sync/ledgers/netsuite/type/deserializer_subsidiary_type.rb +2 -0
  30. data/lib/ledger_sync/ledgers/netsuite_soap/client.rb +3 -1
  31. data/lib/ledger_sync/ledgers/netsuite_soap/config.rb +3 -1
  32. data/lib/ledger_sync/ledgers/operation.rb +12 -10
  33. data/lib/ledger_sync/ledgers/quickbooks_online/account/deserializer.rb +10 -22
  34. data/lib/ledger_sync/ledgers/quickbooks_online/account/operations/create.rb +8 -8
  35. data/lib/ledger_sync/ledgers/quickbooks_online/account/operations/find.rb +8 -8
  36. data/lib/ledger_sync/ledgers/quickbooks_online/account/operations/update.rb +8 -8
  37. data/lib/ledger_sync/ledgers/quickbooks_online/account/serializer.rb +11 -17
  38. data/lib/ledger_sync/ledgers/quickbooks_online/account_based_expense_line_detail/deserializer.rb +21 -0
  39. data/lib/ledger_sync/ledgers/quickbooks_online/account_based_expense_line_detail/serializer.rb +21 -0
  40. data/lib/ledger_sync/ledgers/quickbooks_online/bill/deserializer.rb +20 -24
  41. data/lib/ledger_sync/ledgers/quickbooks_online/bill/operations/create.rb +9 -9
  42. data/lib/ledger_sync/ledgers/quickbooks_online/bill/operations/find.rb +9 -9
  43. data/lib/ledger_sync/ledgers/quickbooks_online/bill/operations/update.rb +9 -9
  44. data/lib/ledger_sync/ledgers/quickbooks_online/bill/serializer.rb +20 -23
  45. data/lib/ledger_sync/ledgers/quickbooks_online/bill_line/deserializer.rb +22 -0
  46. data/lib/ledger_sync/ledgers/quickbooks_online/bill_line/serializer.rb +26 -0
  47. data/lib/ledger_sync/ledgers/quickbooks_online/bill_payment/deserializer.rb +31 -35
  48. data/lib/ledger_sync/ledgers/quickbooks_online/bill_payment/operations/create.rb +13 -13
  49. data/lib/ledger_sync/ledgers/quickbooks_online/bill_payment/operations/find.rb +13 -13
  50. data/lib/ledger_sync/ledgers/quickbooks_online/bill_payment/operations/update.rb +13 -13
  51. data/lib/ledger_sync/ledgers/quickbooks_online/bill_payment/serializer.rb +31 -53
  52. data/lib/ledger_sync/ledgers/quickbooks_online/{bill_payment_line_item → bill_payment_line}/deserializer.rb +3 -5
  53. data/lib/ledger_sync/ledgers/quickbooks_online/{bill_payment_line_item → bill_payment_line}/serializer.rb +3 -5
  54. data/lib/ledger_sync/ledgers/quickbooks_online/check_payment/deserializer.rb +17 -0
  55. data/lib/ledger_sync/ledgers/quickbooks_online/check_payment/serializer.rb +17 -0
  56. data/lib/ledger_sync/ledgers/quickbooks_online/client.rb +10 -6
  57. data/lib/ledger_sync/ledgers/quickbooks_online/config.rb +3 -1
  58. data/lib/ledger_sync/ledgers/quickbooks_online/credit_card_payment/deserializer.rb +17 -0
  59. data/lib/ledger_sync/ledgers/quickbooks_online/credit_card_payment/serializer.rb +17 -0
  60. data/lib/ledger_sync/ledgers/quickbooks_online/currency/deserializer.rb +2 -3
  61. data/lib/ledger_sync/ledgers/quickbooks_online/currency/serializer.rb +3 -2
  62. data/lib/ledger_sync/ledgers/quickbooks_online/customer/deserializer.rb +10 -3
  63. data/lib/ledger_sync/ledgers/quickbooks_online/customer/operations/create.rb +4 -4
  64. data/lib/ledger_sync/ledgers/quickbooks_online/customer/operations/find.rb +5 -5
  65. data/lib/ledger_sync/ledgers/quickbooks_online/customer/operations/update.rb +4 -4
  66. data/lib/ledger_sync/ledgers/quickbooks_online/customer/serializer.rb +10 -3
  67. data/lib/ledger_sync/ledgers/quickbooks_online/department/deserializer.rb +7 -13
  68. data/lib/ledger_sync/ledgers/quickbooks_online/department/operations/create.rb +5 -5
  69. data/lib/ledger_sync/ledgers/quickbooks_online/department/operations/find.rb +5 -5
  70. data/lib/ledger_sync/ledgers/quickbooks_online/department/operations/update.rb +5 -5
  71. data/lib/ledger_sync/ledgers/quickbooks_online/department/serializer.rb +9 -17
  72. data/lib/ledger_sync/ledgers/quickbooks_online/deposit/deserializer.rb +16 -19
  73. data/lib/ledger_sync/ledgers/quickbooks_online/deposit/operations/create.rb +7 -7
  74. data/lib/ledger_sync/ledgers/quickbooks_online/deposit/operations/find.rb +7 -7
  75. data/lib/ledger_sync/ledgers/quickbooks_online/deposit/operations/update.rb +7 -7
  76. data/lib/ledger_sync/ledgers/quickbooks_online/deposit/serializer.rb +16 -19
  77. data/lib/ledger_sync/ledgers/quickbooks_online/deposit_line/deserializer.rb +22 -0
  78. data/lib/ledger_sync/ledgers/quickbooks_online/deposit_line/serializer.rb +26 -0
  79. data/lib/ledger_sync/ledgers/quickbooks_online/deposit_line_detail/deserializer.rb +34 -0
  80. data/lib/ledger_sync/ledgers/quickbooks_online/deposit_line_detail/serializer.rb +35 -0
  81. data/lib/ledger_sync/ledgers/quickbooks_online/deserializer.rb +4 -4
  82. data/lib/ledger_sync/ledgers/quickbooks_online/expense/deserializer.rb +20 -25
  83. data/lib/ledger_sync/ledgers/quickbooks_online/expense/operations/create.rb +10 -10
  84. data/lib/ledger_sync/ledgers/quickbooks_online/expense/operations/find.rb +10 -10
  85. data/lib/ledger_sync/ledgers/quickbooks_online/expense/operations/update.rb +10 -10
  86. data/lib/ledger_sync/ledgers/quickbooks_online/expense/serializer.rb +22 -28
  87. data/lib/ledger_sync/ledgers/quickbooks_online/expense_line/deserializer.rb +22 -0
  88. data/lib/ledger_sync/ledgers/quickbooks_online/expense_line/serializer.rb +26 -0
  89. data/lib/ledger_sync/ledgers/quickbooks_online/invoice/deserializer.rb +15 -15
  90. data/lib/ledger_sync/ledgers/quickbooks_online/invoice/operations/create.rb +7 -7
  91. data/lib/ledger_sync/ledgers/quickbooks_online/invoice/operations/find.rb +7 -7
  92. data/lib/ledger_sync/ledgers/quickbooks_online/invoice/operations/update.rb +7 -7
  93. data/lib/ledger_sync/ledgers/quickbooks_online/invoice/serializer.rb +15 -15
  94. data/lib/ledger_sync/ledgers/quickbooks_online/invoice_line/deserializer.rb +21 -0
  95. data/lib/ledger_sync/ledgers/quickbooks_online/invoice_line/serializer.rb +25 -0
  96. data/lib/ledger_sync/ledgers/quickbooks_online/journal_entry/deserializer.rb +10 -15
  97. data/lib/ledger_sync/ledgers/quickbooks_online/journal_entry/operations/create.rb +5 -5
  98. data/lib/ledger_sync/ledgers/quickbooks_online/journal_entry/operations/find.rb +5 -5
  99. data/lib/ledger_sync/ledgers/quickbooks_online/journal_entry/operations/update.rb +5 -5
  100. data/lib/ledger_sync/ledgers/quickbooks_online/journal_entry/serializer.rb +10 -15
  101. data/lib/ledger_sync/ledgers/quickbooks_online/journal_entry_line/deserializer.rb +20 -0
  102. data/lib/ledger_sync/ledgers/quickbooks_online/journal_entry_line/serializer.rb +24 -0
  103. data/lib/ledger_sync/ledgers/quickbooks_online/journal_entry_line_detail/deserializer.rb +29 -0
  104. data/lib/ledger_sync/ledgers/quickbooks_online/journal_entry_line_detail/serializer.rb +29 -0
  105. data/lib/ledger_sync/ledgers/quickbooks_online/ledger_class/deserializer.rb +9 -13
  106. data/lib/ledger_sync/ledgers/quickbooks_online/ledger_class/operations/create.rb +5 -5
  107. data/lib/ledger_sync/ledgers/quickbooks_online/ledger_class/operations/find.rb +5 -5
  108. data/lib/ledger_sync/ledgers/quickbooks_online/ledger_class/operations/update.rb +5 -5
  109. data/lib/ledger_sync/ledgers/quickbooks_online/ledger_class/serializer.rb +10 -10
  110. data/lib/ledger_sync/ledgers/quickbooks_online/operation.rb +1 -3
  111. data/lib/ledger_sync/ledgers/quickbooks_online/operation/full_update.rb +1 -3
  112. data/lib/ledger_sync/ledgers/quickbooks_online/payment/deserializer.rb +21 -27
  113. data/lib/ledger_sync/ledgers/quickbooks_online/payment/operations/create.rb +10 -10
  114. data/lib/ledger_sync/ledgers/quickbooks_online/payment/operations/find.rb +10 -10
  115. data/lib/ledger_sync/ledgers/quickbooks_online/payment/operations/update.rb +10 -10
  116. data/lib/ledger_sync/ledgers/quickbooks_online/payment/serializer.rb +21 -27
  117. data/lib/ledger_sync/ledgers/quickbooks_online/{payment_line_item → payment_line}/deserializer.rb +3 -4
  118. data/lib/ledger_sync/ledgers/quickbooks_online/{payment_line_item → payment_line}/serializer.rb +3 -4
  119. data/lib/ledger_sync/ledgers/quickbooks_online/preferences/deserializer.rb +10 -29
  120. data/lib/ledger_sync/ledgers/quickbooks_online/preferences/operations/find.rb +10 -10
  121. data/lib/ledger_sync/ledgers/quickbooks_online/preferences/serializer.rb +10 -29
  122. data/lib/ledger_sync/ledgers/quickbooks_online/primary_email_addr/deserializer.rb +13 -0
  123. data/lib/ledger_sync/ledgers/quickbooks_online/primary_email_addr/serializer.rb +13 -0
  124. data/lib/ledger_sync/ledgers/quickbooks_online/primary_phone/deserializer.rb +13 -0
  125. data/lib/ledger_sync/ledgers/quickbooks_online/primary_phone/serializer.rb +13 -0
  126. data/lib/ledger_sync/ledgers/quickbooks_online/reference/deserializer.rb +13 -0
  127. data/lib/ledger_sync/ledgers/quickbooks_online/reference/serializer.rb +13 -0
  128. data/lib/ledger_sync/ledgers/quickbooks_online/resources/account.rb +12 -8
  129. data/lib/ledger_sync/ledgers/quickbooks_online/resources/account_based_expense_line_detail.rb +16 -0
  130. data/lib/ledger_sync/ledgers/quickbooks_online/resources/bill.rb +11 -11
  131. data/lib/ledger_sync/ledgers/quickbooks_online/resources/bill_line.rb +19 -0
  132. data/lib/ledger_sync/ledgers/quickbooks_online/resources/bill_payment.rb +17 -15
  133. data/lib/ledger_sync/ledgers/quickbooks_online/resources/bill_payment_line.rb +19 -0
  134. data/lib/ledger_sync/ledgers/quickbooks_online/resources/check_payment.rb +11 -0
  135. data/lib/ledger_sync/ledgers/quickbooks_online/resources/credit_card_payment.rb +11 -0
  136. data/lib/ledger_sync/ledgers/quickbooks_online/resources/currency.rb +7 -3
  137. data/lib/ledger_sync/ledgers/quickbooks_online/resources/customer.rb +4 -3
  138. data/lib/ledger_sync/ledgers/quickbooks_online/resources/department.rb +9 -5
  139. data/lib/ledger_sync/ledgers/quickbooks_online/resources/deposit.rb +9 -9
  140. data/lib/ledger_sync/ledgers/quickbooks_online/resources/deposit_line.rb +19 -0
  141. data/lib/ledger_sync/ledgers/quickbooks_online/resources/deposit_line_detail.rb +22 -0
  142. data/lib/ledger_sync/ledgers/quickbooks_online/resources/expense.rb +12 -12
  143. data/lib/ledger_sync/ledgers/quickbooks_online/resources/expense_line.rb +19 -0
  144. data/lib/ledger_sync/ledgers/quickbooks_online/resources/invoice.rb +8 -8
  145. data/lib/ledger_sync/ledgers/quickbooks_online/resources/invoice_line.rb +19 -0
  146. data/lib/ledger_sync/ledgers/quickbooks_online/resources/item.rb +1 -1
  147. data/lib/ledger_sync/ledgers/quickbooks_online/resources/journal_entry.rb +7 -7
  148. data/lib/ledger_sync/ledgers/quickbooks_online/resources/journal_entry_line.rb +20 -0
  149. data/lib/ledger_sync/ledgers/quickbooks_online/resources/journal_entry_line_detail.rb +27 -0
  150. data/lib/ledger_sync/ledgers/quickbooks_online/resources/ledger_class.rb +9 -5
  151. data/lib/ledger_sync/ledgers/quickbooks_online/resources/payment.rb +11 -11
  152. data/lib/ledger_sync/ledgers/quickbooks_online/resources/{payment_line_item.rb → payment_line.rb} +4 -4
  153. data/lib/ledger_sync/ledgers/quickbooks_online/resources/preferences.rb +10 -10
  154. data/lib/ledger_sync/ledgers/quickbooks_online/resources/sales_item_line_detail.rb +19 -0
  155. data/lib/ledger_sync/ledgers/quickbooks_online/resources/transfer.rb +7 -7
  156. data/lib/ledger_sync/ledgers/quickbooks_online/resources/vendor.rb +11 -9
  157. data/lib/ledger_sync/ledgers/quickbooks_online/sales_item_line_detail/deserializer.rb +21 -0
  158. data/lib/ledger_sync/ledgers/quickbooks_online/sales_item_line_detail/serializer.rb +21 -0
  159. data/lib/ledger_sync/ledgers/quickbooks_online/serialziation/type/mapping_type.rb +2 -0
  160. data/lib/ledger_sync/ledgers/quickbooks_online/transfer/deserializer.rb +13 -16
  161. data/lib/ledger_sync/ledgers/quickbooks_online/transfer/operations/create.rb +6 -6
  162. data/lib/ledger_sync/ledgers/quickbooks_online/transfer/operations/find.rb +6 -6
  163. data/lib/ledger_sync/ledgers/quickbooks_online/transfer/operations/update.rb +6 -6
  164. data/lib/ledger_sync/ledgers/quickbooks_online/transfer/serializer.rb +13 -16
  165. data/lib/ledger_sync/ledgers/quickbooks_online/util/error_matcher.rb +23 -10
  166. data/lib/ledger_sync/ledgers/quickbooks_online/util/operation_error_parser.rb +1 -1
  167. data/lib/ledger_sync/ledgers/quickbooks_online/vendor/deserializer.rb +12 -10
  168. data/lib/ledger_sync/ledgers/quickbooks_online/vendor/operations/create.rb +7 -7
  169. data/lib/ledger_sync/ledgers/quickbooks_online/vendor/operations/find.rb +7 -7
  170. data/lib/ledger_sync/ledgers/quickbooks_online/vendor/operations/update.rb +7 -7
  171. data/lib/ledger_sync/ledgers/quickbooks_online/vendor/serializer.rb +12 -10
  172. data/lib/ledger_sync/ledgers/quickbooks_online/webhook.rb +1 -1
  173. data/lib/ledger_sync/ledgers/quickbooks_online/webhook_event.rb +6 -6
  174. data/lib/ledger_sync/ledgers/quickbooks_online/webhook_notification.rb +1 -1
  175. data/lib/ledger_sync/ledgers/response.rb +1 -1
  176. data/lib/ledger_sync/ledgers/stripe/client.rb +5 -1
  177. data/lib/ledger_sync/resource.rb +5 -3
  178. data/lib/ledger_sync/resource_adaptor.rb +2 -0
  179. data/lib/ledger_sync/resource_attribute/reference/one.rb +2 -2
  180. data/lib/ledger_sync/resource_attribute_set.rb +4 -3
  181. data/lib/ledger_sync/serialization/type/deserializer_type.rb +2 -0
  182. data/lib/ledger_sync/serialization/type/format_date_type.rb +2 -0
  183. data/lib/ledger_sync/serialization/type/mapping_type.rb +2 -0
  184. data/lib/ledger_sync/serialization/type/parse_date_type.rb +2 -0
  185. data/lib/ledger_sync/serialization/type/serializer_type.rb +2 -0
  186. data/lib/ledger_sync/serializer.rb +2 -2
  187. data/lib/ledger_sync/test/support.rb +71 -0
  188. data/lib/ledger_sync/test/support/factory_bot.rb +157 -0
  189. data/lib/ledger_sync/type/date.rb +10 -0
  190. data/lib/ledger_sync/type/value_mixin.rb +3 -1
  191. data/lib/ledger_sync/util/resource_converter/attribute.rb +1 -1
  192. data/lib/ledger_sync/util/resource_converter/type/resource_converter_type.rb +2 -0
  193. data/lib/ledger_sync/util/signer.rb +2 -2
  194. data/lib/ledger_sync/version.rb +9 -1
  195. metadata +89 -65
  196. data/lib/ledger_sync/ledgers/mixins/infer_client_mixin.rb +0 -28
  197. data/lib/ledger_sync/ledgers/quickbooks_online/bill_line_item/deserializer.rb +0 -25
  198. data/lib/ledger_sync/ledgers/quickbooks_online/bill_line_item/serializer.rb +0 -29
  199. data/lib/ledger_sync/ledgers/quickbooks_online/deposit_line_item/deserializer.rb +0 -38
  200. data/lib/ledger_sync/ledgers/quickbooks_online/deposit_line_item/serializer.rb +0 -41
  201. data/lib/ledger_sync/ledgers/quickbooks_online/expense_line_item/deserializer.rb +0 -25
  202. data/lib/ledger_sync/ledgers/quickbooks_online/expense_line_item/serializer.rb +0 -27
  203. data/lib/ledger_sync/ledgers/quickbooks_online/invoice_sales_line_item/deserializer.rb +0 -25
  204. data/lib/ledger_sync/ledgers/quickbooks_online/invoice_sales_line_item/serializer.rb +0 -29
  205. data/lib/ledger_sync/ledgers/quickbooks_online/journal_entry_line_item/deserializer.rb +0 -32
  206. data/lib/ledger_sync/ledgers/quickbooks_online/journal_entry_line_item/serializer.rb +0 -36
  207. data/lib/ledger_sync/ledgers/quickbooks_online/resources/bill_line_item.rb +0 -21
  208. data/lib/ledger_sync/ledgers/quickbooks_online/resources/bill_payment_line_item.rb +0 -19
  209. data/lib/ledger_sync/ledgers/quickbooks_online/resources/deposit_line_item.rb +0 -25
  210. data/lib/ledger_sync/ledgers/quickbooks_online/resources/expense_line_item.rb +0 -21
  211. data/lib/ledger_sync/ledgers/quickbooks_online/resources/invoice_sales_line_item.rb +0 -21
  212. data/lib/ledger_sync/ledgers/quickbooks_online/resources/journal_entry_line_item.rb +0 -29
  213. data/lib/ledger_sync/ledgers/quickbooks_online/resources/subsidiary.rb +0 -12
  214. data/release.sh +0 -26
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module LedgerSync
4
- module Ledgers
5
- module Mixins
6
- module InferClientMixin
7
- module ClassMethods
8
- def inferred_client_class
9
- @inferred_client_class ||= begin
10
- return if name.nil?
11
-
12
- parts = name.split('::')
13
- return unless parts.include?('Ledgers')
14
-
15
- LedgerSync::Ledgers.const_get(
16
- parts[parts.index('Ledgers') + 1]
17
- )::Client
18
- end
19
- end
20
- end
21
-
22
- def self.included(base)
23
- base.extend ClassMethods
24
- end
25
- end
26
- end
27
- end
28
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module LedgerSync
4
- module Ledgers
5
- module QuickBooksOnline
6
- class BillLineItem
7
- class Deserializer < QuickBooksOnline::Deserializer
8
- id
9
-
10
- attribute 'account.ledger_id',
11
- hash_attribute: 'AccountBasedExpenseLineDetail.AccountRef.value'
12
-
13
- attribute 'ledger_class.ledger_id',
14
- hash_attribute: 'AccountBasedExpenseLineDetail.ClassRef.value'
15
-
16
- amount :amount,
17
- hash_attribute: 'Amount'
18
-
19
- attribute :description,
20
- hash_attribute: 'Description'
21
- end
22
- end
23
- end
24
- end
25
- end
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module LedgerSync
4
- module Ledgers
5
- module QuickBooksOnline
6
- class BillLineItem
7
- class Serializer < QuickBooksOnline::Serializer
8
- id
9
-
10
- attribute 'DetailType' do
11
- 'AccountBasedExpenseLineDetail'
12
- end
13
-
14
- attribute 'AccountBasedExpenseLineDetail.AccountRef.value',
15
- resource_attribute: 'account.ledger_id'
16
-
17
- attribute 'AccountBasedExpenseLineDetail.ClassRef.value',
18
- resource_attribute: 'ledger_class.ledger_id'
19
-
20
- amount 'Amount',
21
- resource_attribute: :amount
22
-
23
- attribute 'Description',
24
- resource_attribute: :description
25
- end
26
- end
27
- end
28
- end
29
- end
@@ -1,38 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module LedgerSync
4
- module Ledgers
5
- module QuickBooksOnline
6
- class DepositLineItem
7
- class Deserializer < QuickBooksOnline::Deserializer
8
- id
9
-
10
- attribute 'account.ledger_id',
11
- hash_attribute: 'DepositLineDetail.AccountRef.value'
12
-
13
- attribute 'ledger_class.ledger_id',
14
- hash_attribute: 'DepositLineDetail.ClassRef.value'
15
-
16
- attribute(:entity) do |args = {}|
17
- hash = args.fetch(:hash)
18
- value = hash.fetch('DepositLineDetail.Entity', nil)
19
-
20
- unless value.nil?
21
- Client.ledger_resource_for(
22
- type: value['type']
23
- ).new(
24
- ledger_id: value['value']
25
- )
26
- end
27
- end
28
-
29
- amount :amount,
30
- hash_attribute: 'Amount'
31
-
32
- attribute :description,
33
- hash_attribute: 'Description'
34
- end
35
- end
36
- end
37
- end
38
- end
@@ -1,41 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module LedgerSync
4
- module Ledgers
5
- module QuickBooksOnline
6
- class DepositLineItem
7
- class Serializer < QuickBooksOnline::Serializer
8
- id
9
-
10
- attribute('DetailType') { 'DepositLineDetail' }
11
-
12
- attribute 'DepositLineDetail.AccountRef.value',
13
- resource_attribute: 'account.ledger_id'
14
-
15
- attribute 'DepositLineDetail.ClassRef.value',
16
- resource_attribute: 'ledger_class.ledger_id'
17
-
18
- attribute('DepositLineDetail.Entity') do |args = {}|
19
- resource = args.fetch(:resource)
20
-
21
- if resource.entity.present?
22
- {
23
- 'name' => resource.entity.name,
24
- 'value' => resource.entity.ledger_id,
25
- 'type' => Client.ledger_resource_type_for(
26
- resource_class: resource.entity.class
27
- ).classify
28
- }
29
- end
30
- end
31
-
32
- amount 'Amount',
33
- resource_attribute: :amount
34
-
35
- attribute 'Description',
36
- resource_attribute: :description
37
- end
38
- end
39
- end
40
- end
41
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module LedgerSync
4
- module Ledgers
5
- module QuickBooksOnline
6
- class ExpenseLineItem
7
- class Deserializer < QuickBooksOnline::Deserializer
8
- id
9
-
10
- attribute 'account.ledger_id',
11
- hash_attribute: 'AccountBasedExpenseLineDetail.AccountRef.value'
12
-
13
- attribute 'ledger_class.ledger_id',
14
- hash_attribute: 'AccountBasedExpenseLineDetail.ClassRef.value'
15
-
16
- amount :amount,
17
- hash_attribute: 'Amount'
18
-
19
- attribute :description,
20
- hash_attribute: 'Description'
21
- end
22
- end
23
- end
24
- end
25
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module LedgerSync
4
- module Ledgers
5
- module QuickBooksOnline
6
- class ExpenseLineItem
7
- class Serializer < QuickBooksOnline::Serializer
8
- id
9
-
10
- attribute('DetailType') { 'AccountBasedExpenseLineDetail' }
11
-
12
- attribute 'AccountBasedExpenseLineDetail.AccountRef.value',
13
- resource_attribute: 'account.ledger_id'
14
-
15
- attribute 'AccountBasedExpenseLineDetail.ClassRef.value',
16
- resource_attribute: 'ledger_class.ledger_id'
17
-
18
- amount 'Amount',
19
- resource_attribute: :amount
20
-
21
- attribute 'Description',
22
- resource_attribute: :description
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module LedgerSync
4
- module Ledgers
5
- module QuickBooksOnline
6
- class InvoiceSalesLineItem
7
- class Deserializer < QuickBooksOnline::Deserializer
8
- id
9
-
10
- attribute 'item.ledger_id',
11
- hash_attribute: 'SalesItemLineDetail.ItemRef.value'
12
-
13
- attribute 'ledger_class.ledger_id',
14
- hash_attribute: 'SalesItemLineDetail.ClassRef.value'
15
-
16
- amount :amount,
17
- hash_attribute: 'Amount'
18
-
19
- attribute :description,
20
- hash_attribute: 'Description'
21
- end
22
- end
23
- end
24
- end
25
- end
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module LedgerSync
4
- module Ledgers
5
- module QuickBooksOnline
6
- class InvoiceSalesLineItem
7
- class Serializer < QuickBooksOnline::Serializer
8
- id
9
-
10
- attribute 'DetailType' do
11
- 'SalesItemLineDetail'
12
- end
13
-
14
- attribute 'SalesItemLineDetail.ItemRef.value',
15
- resource_attribute: 'item.ledger_id'
16
-
17
- attribute 'SalesItemLineDetail.ClassRef.value',
18
- resource_attribute: 'ledger_class.ledger_id'
19
-
20
- amount 'Amount',
21
- resource_attribute: :amount
22
-
23
- attribute 'Description',
24
- resource_attribute: :description
25
- end
26
- end
27
- end
28
- end
29
- end
@@ -1,32 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative '../expense_line_item/deserializer'
4
-
5
- module LedgerSync
6
- module Ledgers
7
- module QuickBooksOnline
8
- class JournalEntryLineItem
9
- class Deserializer < QuickBooksOnline::Deserializer
10
- amount :amount,
11
- hash_attribute: 'Amount'
12
-
13
- mapping :entry_type,
14
- hash_attribute: 'JournalEntryLineDetail.PostingType',
15
- hash: JournalEntryLineItem::TYPES.invert
16
-
17
- attribute 'account.ledger_id',
18
- hash_attribute: 'JournalEntryLineDetail.AccountRef.value'
19
-
20
- attribute 'ledger_class.ledger_id',
21
- hash_attribute: 'JournalEntryLineDetail.ClassRef.value'
22
-
23
- attribute 'department.ledger_id',
24
- hash_attribute: 'JournalEntryLineDetail.DepartmentRef.value'
25
-
26
- attribute :description,
27
- hash_attribute: 'Description'
28
- end
29
- end
30
- end
31
- end
32
- end
@@ -1,36 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative '../expense_line_item/serializer'
4
-
5
- module LedgerSync
6
- module Ledgers
7
- module QuickBooksOnline
8
- class JournalEntryLineItem
9
- class Serializer < QuickBooksOnline::Serializer
10
- attribute 'DetailType' do
11
- 'JournalEntryLineDetail'
12
- end
13
-
14
- amount 'Amount',
15
- resource_attribute: :amount
16
-
17
- mapping 'JournalEntryLineDetail.PostingType',
18
- resource_attribute: :entry_type,
19
- hash: JournalEntryLineItem::TYPES
20
-
21
- attribute 'JournalEntryLineDetail.AccountRef.value',
22
- resource_attribute: 'account.ledger_id'
23
-
24
- attribute 'JournalEntryLineDetail.ClassRef.value',
25
- resource_attribute: 'ledger_class.ledger_id'
26
-
27
- attribute 'JournalEntryLineDetail.DepartmentRef.value',
28
- resource_attribute: 'department.ledger_id'
29
-
30
- attribute 'Description',
31
- resource_attribute: :description
32
- end
33
- end
34
- end
35
- end
36
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative 'account'
4
- require_relative 'ledger_class'
5
-
6
- module LedgerSync
7
- module Ledgers
8
- module QuickBooksOnline
9
- class BillLineItem < QuickBooksOnline::Resource
10
- references_one :account, to: Account
11
- references_one :ledger_class, to: LedgerClass
12
- attribute :amount, type: Type::Integer
13
- attribute :description, type: Type::String
14
-
15
- def name
16
- description
17
- end
18
- end
19
- end
20
- end
21
- end
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative 'bill'
4
-
5
- module LedgerSync
6
- module Ledgers
7
- module QuickBooksOnline
8
- class BillPaymentLineItem < QuickBooksOnline::Resource
9
- attribute :amount, type: Type::Integer
10
-
11
- references_many :ledger_transactions, to: [Bill]
12
-
13
- def name
14
- amount
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative 'account'
4
- require_relative 'customer'
5
- require_relative 'ledger_class'
6
- require_relative 'vendor'
7
-
8
- module LedgerSync
9
- module Ledgers
10
- module QuickBooksOnline
11
- class DepositLineItem < QuickBooksOnline::Resource
12
- references_one :account, to: Account
13
- references_one :ledger_class, to: LedgerClass
14
- attribute :amount, type: Type::Integer
15
- attribute :description, type: Type::String
16
-
17
- references_one :entity, to: [Customer, Vendor]
18
-
19
- def name
20
- description
21
- end
22
- end
23
- end
24
- end
25
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative 'account'
4
- require_relative 'ledger_class'
5
-
6
- module LedgerSync
7
- module Ledgers
8
- module QuickBooksOnline
9
- class ExpenseLineItem < QuickBooksOnline::Resource
10
- references_one :account, to: Account
11
- references_one :ledger_class, to: LedgerClass
12
- attribute :amount, type: Type::Integer
13
- attribute :description, type: Type::String
14
-
15
- def name
16
- description
17
- end
18
- end
19
- end
20
- end
21
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative 'item'
4
- require_relative 'ledger_class'
5
-
6
- module LedgerSync
7
- module Ledgers
8
- module QuickBooksOnline
9
- class InvoiceSalesLineItem < QuickBooksOnline::Resource
10
- references_one :item, to: Item
11
- references_one :ledger_class, to: LedgerClass
12
- attribute :amount, type: Type::Integer
13
- attribute :description, type: Type::String
14
-
15
- def name
16
- description
17
- end
18
- end
19
- end
20
- end
21
- end