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
@@ -9,17 +9,17 @@ module LedgerSync
9
9
  class Contract < LedgerSync::Ledgers::Contract
10
10
  schema do
11
11
  required(:external_id).maybe(:string)
12
- optional(:account).hash(Types::Reference)
13
- optional(:amount).maybe(:integer)
14
- required(:currency).maybe(:hash, Types::Reference)
15
- optional(:customer).hash(Types::Reference)
16
- optional(:deposit_account).hash(Types::Reference)
17
- optional(:exchange_rate).maybe(:float)
12
+ optional(:ARAccount).hash(Types::Reference)
13
+ optional(:Currency).maybe(:hash, Types::Reference)
14
+ optional(:Customer).hash(Types::Reference)
15
+ optional(:DepositToAccount).hash(Types::Reference)
16
+ optional(:ExchangeRate).maybe(:float)
18
17
  required(:ledger_id).filled(:string)
19
- optional(:line_items).array(Types::Reference)
20
- optional(:memo).maybe(:string)
21
- optional(:reference_number).maybe(:string)
22
- optional(:transaction_date).maybe(:date?)
18
+ optional(:Line).array(Types::Reference)
19
+ optional(:PrivateNote).maybe(:string)
20
+ optional(:PaymentRefNum).maybe(:string)
21
+ optional(:TotalAmt).maybe(:integer)
22
+ optional(:TxnDate).maybe(:date?)
23
23
  end
24
24
  end
25
25
  end
@@ -9,17 +9,17 @@ module LedgerSync
9
9
  class Contract < LedgerSync::Ledgers::Contract
10
10
  schema do
11
11
  required(:external_id).maybe(:string)
12
- optional(:account).hash(Types::Reference)
13
- required(:amount).filled(:integer)
14
- required(:currency).filled(:hash, Types::Reference)
15
- required(:customer).hash(Types::Reference)
16
- optional(:deposit_account).hash(Types::Reference)
17
- optional(:exchange_rate).maybe(:float)
12
+ optional(:ARAccount).hash(Types::Reference)
13
+ required(:Currency).filled(:hash, Types::Reference)
14
+ required(:Customer).hash(Types::Reference)
15
+ optional(:DepositToAccount).hash(Types::Reference)
16
+ optional(:ExchangeRate).maybe(:float)
18
17
  required(:ledger_id).filled(:string)
19
- required(:line_items).array(Types::Reference)
20
- optional(:memo).filled(:string)
21
- optional(:reference_number).maybe(:string)
22
- optional(:transaction_date).filled(:date?)
18
+ required(:Line).array(Types::Reference)
19
+ optional(:PrivateNote).filled(:string)
20
+ optional(:PaymentRefNum).maybe(:string)
21
+ required(:TotalAmt).filled(:integer)
22
+ optional(:TxnDate).filled(:date?)
23
23
  end
24
24
  end
25
25
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../currency/serializer'
4
- require_relative '../payment_line_item/serializer'
3
+ require_relative '../reference/serializer'
4
+ require_relative '../payment_line/serializer'
5
5
 
6
6
  module LedgerSync
7
7
  module Ledgers
@@ -10,37 +10,31 @@ module LedgerSync
10
10
  class Serializer < QuickBooksOnline::Serializer
11
11
  id
12
12
 
13
- amount 'TotalAmt',
14
- resource_attribute: :amount
13
+ amount :TotalAmt
14
+ attribute :PaymentRefNum
15
+ attribute :PrivateNote
16
+ attribute :ExchangeRate
17
+ date :TxnDate
15
18
 
16
- references_one :CurrencyRef,
17
- resource_attribute: :currency,
18
- serializer: Currency::Serializer
19
+ references_one 'CurrencyRef',
20
+ resource_attribute: :Currency,
21
+ serializer: Reference::Serializer
19
22
 
20
- attribute 'CustomerRef.value',
21
- resource_attribute: 'customer.ledger_id'
23
+ references_one 'CustomerRef',
24
+ resource_attribute: :Customer,
25
+ serializer: Reference::Serializer
22
26
 
23
- attribute 'DepositToAccountRef.value',
24
- resource_attribute: 'deposit_account.ledger_id'
27
+ references_one 'DepositToAccountRef',
28
+ resource_attribute: :DepositToAccount,
29
+ serializer: Reference::Serializer
25
30
 
26
- attribute 'ARAccountRef.value',
27
- resource_attribute: 'account.ledger_id'
28
-
29
- attribute 'PaymentRefNum',
30
- resource_attribute: :reference_number
31
-
32
- attribute 'PrivateNote',
33
- resource_attribute: :memo
34
-
35
- attribute 'ExchangeRate',
36
- resource_attribute: :exchange_rate
37
-
38
- date 'TxnDate',
39
- resource_attribute: :transaction_date
31
+ references_one 'ARAccountRef',
32
+ resource_attribute: :ARAccount,
33
+ serializer: Reference::Serializer
40
34
 
41
35
  references_many 'Line',
42
- resource_attribute: :line_items,
43
- serializer: PaymentLineItem::Serializer
36
+ resource_attribute: :Line,
37
+ serializer: PaymentLine::Serializer
44
38
  end
45
39
  end
46
40
  end
@@ -3,12 +3,11 @@
3
3
  module LedgerSync
4
4
  module Ledgers
5
5
  module QuickBooksOnline
6
- class PaymentLineItem
6
+ class PaymentLine
7
7
  class Deserializer < QuickBooksOnline::Deserializer
8
- amount :amount,
9
- hash_attribute: 'Amount'
8
+ amount :Amount
10
9
 
11
- attribute :ledger_transactions,
10
+ attribute :LinkedTxn,
12
11
  hash_attribute: 'LinkedTxn',
13
12
  type: Serialization::Type::DeserializeTransactionReferenceType.new
14
13
  end
@@ -3,13 +3,12 @@
3
3
  module LedgerSync
4
4
  module Ledgers
5
5
  module QuickBooksOnline
6
- class PaymentLineItem
6
+ class PaymentLine
7
7
  class Serializer < QuickBooksOnline::Serializer
8
- amount 'Amount',
9
- resource_attribute: :amount
8
+ amount :Amount
10
9
 
11
10
  attribute 'LinkedTxn',
12
- resource_attribute: :ledger_transactions,
11
+ resource_attribute: :LinkedTxn,
13
12
  type: Serialization::Type::SerializeTransactionReferenceType.new
14
13
  end
15
14
  end
@@ -7,35 +7,16 @@ module LedgerSync
7
7
  class Deserializer < QuickBooksOnline::Deserializer
8
8
  id
9
9
 
10
- attribute :accounting_info,
11
- hash_attribute: 'AccountingInfoPrefs'
12
-
13
- attribute :product_and_services,
14
- hash_attribute: 'ProductAndServicesPrefs'
15
-
16
- attribute :sales_forms,
17
- hash_attribute: 'SalesFormsPrefs'
18
-
19
- attribute :email_messages,
20
- hash_attribute: 'EmailMessagesPrefs'
21
-
22
- attribute :vendor_and_purchases,
23
- hash_attribute: 'VendorAndPurchasesPrefs'
24
-
25
- attribute :time_tracking,
26
- hash_attribute: 'TimeTrackingPrefs'
27
-
28
- attribute :tax,
29
- hash_attribute: 'TaxPrefs'
30
-
31
- attribute :currency,
32
- hash_attribute: 'CurrencyPrefs'
33
-
34
- attribute :report,
35
- hash_attribute: 'ReportPrefs'
36
-
37
- attribute :other,
38
- hash_attribute: 'OtherPrefs'
10
+ attribute :AccountingInfoPrefs
11
+ attribute :ProductAndServicesPrefs
12
+ attribute :SalesFormsPrefs
13
+ attribute :EmailMessagesPrefs
14
+ attribute :VendorAndPurchasesPrefs
15
+ attribute :TimeTrackingPrefs
16
+ attribute :TaxPrefs
17
+ attribute :CurrencyPrefs
18
+ attribute :ReportPrefs
19
+ attribute :OtherPrefs
39
20
  end
40
21
  end
41
22
  end
@@ -10,16 +10,16 @@ module LedgerSync
10
10
  params do
11
11
  required(:external_id).maybe(:string)
12
12
  required(:ledger_id).value(:nil)
13
- required(:accounting_info).maybe(:hash)
14
- required(:product_and_services).maybe(:hash)
15
- required(:sales_forms).maybe(:hash)
16
- required(:email_messages).maybe(:hash)
17
- required(:vendor_and_purchases).maybe(:hash)
18
- required(:time_tracking).maybe(:hash)
19
- required(:tax).maybe(:hash)
20
- required(:currency).maybe(:hash)
21
- required(:report).maybe(:hash)
22
- required(:other).maybe(:hash)
13
+ required(:AccountingInfoPrefs).maybe(:hash)
14
+ required(:ProductAndServicesPrefs).maybe(:hash)
15
+ required(:SalesFormsPrefs).maybe(:hash)
16
+ required(:EmailMessagesPrefs).maybe(:hash)
17
+ required(:VendorAndPurchasesPrefs).maybe(:hash)
18
+ required(:TimeTrackingPrefs).maybe(:hash)
19
+ required(:TaxPrefs).maybe(:hash)
20
+ required(:CurrencyPrefs).maybe(:hash)
21
+ required(:ReportPrefs).maybe(:hash)
22
+ required(:OtherPrefs).maybe(:hash)
23
23
  end
24
24
  end
25
25
  end
@@ -7,35 +7,16 @@ module LedgerSync
7
7
  class Serializer < QuickBooksOnline::Serializer
8
8
  id
9
9
 
10
- attribute 'AccountingInfoPrefs',
11
- resource_attribute: :accounting_info
12
-
13
- attribute 'ProductAndServicesPrefs',
14
- resource_attribute: :product_and_services
15
-
16
- attribute 'SalesFormsPrefs',
17
- resource_attribute: :sales_forms
18
-
19
- attribute 'EmailMessagesPrefs',
20
- resource_attribute: :email_messages
21
-
22
- attribute 'VendorAndPurchasesPrefs',
23
- resource_attribute: :vendor_and_purchases
24
-
25
- attribute 'TimeTrackingPrefs',
26
- resource_attribute: :time_tracking
27
-
28
- attribute 'TaxPrefs',
29
- resource_attribute: :tax
30
-
31
- attribute 'CurrencyPrefs',
32
- resource_attribute: :currency
33
-
34
- attribute 'ReportPrefs',
35
- resource_attribute: :report
36
-
37
- attribute 'OtherPrefs',
38
- resource_attribute: :other
10
+ attribute :AccountingInfoPrefs
11
+ attribute :ProductAndServicesPrefs
12
+ attribute :SalesFormsPrefs
13
+ attribute :EmailMessagesPrefs
14
+ attribute :VendorAndPurchasesPrefs
15
+ attribute :TimeTrackingPrefs
16
+ attribute :TaxPrefs
17
+ attribute :CurrencyPrefs
18
+ attribute :ReportPrefs
19
+ attribute :OtherPrefs
39
20
  end
40
21
  end
41
22
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module LedgerSync
4
+ module Ledgers
5
+ module QuickBooksOnline
6
+ class PrimaryEmailAddr
7
+ class Deserializer < QuickBooksOnline::Deserializer
8
+ attribute :Address
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module LedgerSync
4
+ module Ledgers
5
+ module QuickBooksOnline
6
+ class PrimaryEmailAddr
7
+ class Serializer < QuickBooksOnline::Serializer
8
+ attribute :Address
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module LedgerSync
4
+ module Ledgers
5
+ module QuickBooksOnline
6
+ class PrimaryPhone
7
+ class Deserializer < QuickBooksOnline::Deserializer
8
+ attribute :FreeFormNumber
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module LedgerSync
4
+ module Ledgers
5
+ module QuickBooksOnline
6
+ class PrimaryPhone
7
+ class Serializer < QuickBooksOnline::Serializer
8
+ attribute :FreeFormNumber
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module LedgerSync
4
+ module Ledgers
5
+ module QuickBooksOnline
6
+ class Reference
7
+ class Deserializer < QuickBooksOnline::Deserializer
8
+ attribute :ledger_id, hash_attribute: :value
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module LedgerSync
4
+ module Ledgers
5
+ module QuickBooksOnline
6
+ class Reference
7
+ class Serializer < QuickBooksOnline::Serializer
8
+ attribute :value, resource_attribute: :ledger_id
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -340,15 +340,19 @@ module LedgerSync
340
340
  'revenue' => 'Revenue'
341
341
  }.freeze
342
342
 
343
- attribute :name, type: Type::String
344
- attribute :classification, type: Type::String
345
- attribute :account_type, type: Type::StringFromSet.new(values: TYPES.keys)
346
- attribute :account_sub_type, type: Type::String
347
- attribute :number, type: Type::String
348
- attribute :description, type: Type::String
349
- attribute :active, type: Type::Boolean
343
+ attribute :Name, type: Type::String
344
+ attribute :Classification, type: Type::String
345
+ attribute :AccountType, type: Type::StringFromSet.new(values: TYPES.keys)
346
+ attribute :AccountSubType, type: Type::String
347
+ attribute :AcctNum, type: Type::String
348
+ attribute :Description, type: Type::String
349
+ attribute :Active, type: Type::Boolean
350
350
 
351
- references_one :currency, to: Currency
351
+ references_one :Currency, to: Currency
352
+
353
+ def name
354
+ self.Name
355
+ end
352
356
  end
353
357
  end
354
358
  end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module LedgerSync
4
+ module Ledgers
5
+ module QuickBooksOnline
6
+ class AccountBasedExpenseLineDetail < QuickBooksOnline::Resource
7
+ references_one :Account, to: Account
8
+ references_one :Class, to: LedgerClass
9
+
10
+ def name
11
+ "#{self.Account.try(:name)} - #{self.Class.try(:name)}"
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative 'account'
4
- require_relative 'bill_line_item'
4
+ require_relative 'bill_line'
5
5
  require_relative 'currency'
6
6
  require_relative 'department'
7
7
  require_relative 'vendor'
@@ -10,20 +10,20 @@ module LedgerSync
10
10
  module Ledgers
11
11
  module QuickBooksOnline
12
12
  class Bill < QuickBooksOnline::Resource
13
- attribute :memo, type: Type::String
14
- attribute :transaction_date, type: Type::Date
15
- attribute :due_date, type: Type::Date
16
- attribute :reference_number, type: Type::String
13
+ attribute :PrivateNote, type: Type::String
14
+ attribute :TxnDate, type: Type::Date
15
+ attribute :DueDate, type: Type::Date
16
+ attribute :DocNumber, type: Type::String
17
17
 
18
- references_one :vendor, to: Vendor
19
- references_one :account, to: Account
20
- references_one :department, to: Department
21
- references_one :currency, to: Currency
18
+ references_one :Vendor, to: Vendor
19
+ references_one :APAccount, to: Account
20
+ references_one :Department, to: Department
21
+ references_one :Currency, to: Currency
22
22
 
23
- references_many :line_items, to: BillLineItem
23
+ references_many :Line, to: BillLine
24
24
 
25
25
  def name
26
- "Bill: #{transaction_date}"
26
+ "Bill: #{self.TxnDate}"
27
27
  end
28
28
  end
29
29
  end