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
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'account_based_expense_line_detail'
4
+
5
+ module LedgerSync
6
+ module Ledgers
7
+ module QuickBooksOnline
8
+ class BillLine < QuickBooksOnline::Resource
9
+ references_one :AccountBasedExpenseLineDetail, to: AccountBasedExpenseLineDetail
10
+ attribute :Amount, type: Type::Integer
11
+ attribute :Description, type: Type::String
12
+
13
+ def name
14
+ description
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -4,7 +4,9 @@ require_relative 'account'
4
4
  require_relative 'currency'
5
5
  require_relative 'department'
6
6
  require_relative 'vendor'
7
- require_relative 'bill_payment_line_item'
7
+ require_relative 'bill_payment_line'
8
+ require_relative 'check_payment'
9
+ require_relative 'credit_card_payment'
8
10
 
9
11
  module LedgerSync
10
12
  module Ledgers
@@ -16,25 +18,25 @@ module LedgerSync
16
18
  'credit_card' => 'CreditCard'
17
19
  }.freeze
18
20
 
19
- attribute :amount, type: Type::Integer
20
- attribute :memo, type: Type::String
21
- attribute :transaction_date, type: Type::Date
22
- attribute :exchange_rate, type: Type::Float
23
- attribute :reference_number, type: Type::String
24
- attribute :payment_type, type: Type::StringFromSet.new(values: PAYMENT_TYPES.keys)
21
+ attribute :TotalAmt, type: Type::Integer
22
+ attribute :PrivateNote, type: Type::String
23
+ attribute :TxnDate, type: Type::Date
24
+ attribute :ExchangeRate, type: Type::Float
25
+ attribute :DocNumber, type: Type::String
26
+ attribute :PayType, type: Type::StringFromSet.new(values: PAYMENT_TYPES.keys)
25
27
 
26
- references_one :account, to: Account
27
- references_one :currency, to: Currency
28
- references_one :department, to: Department
29
- references_one :vendor, to: Vendor
28
+ references_one :APAccount, to: Account
29
+ references_one :Currency, to: Currency
30
+ references_one :Department, to: Department
31
+ references_one :Vendor, to: Vendor
30
32
 
31
- references_one :bank_account, to: Account
32
- references_one :credit_card_account, to: Account
33
+ references_one :CheckPayment, to: CheckPayment
34
+ references_one :CreditCardPayment, to: CreditCardPayment
33
35
 
34
- references_many :line_items, to: BillPaymentLineItem
36
+ references_many :Line, to: BillPaymentLine
35
37
 
36
38
  def name
37
- "Bill Payment: #{reference_number}"
39
+ "Bill Payment: #{self.DocNumber}"
38
40
  end
39
41
  end
40
42
  end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'bill'
4
+
5
+ module LedgerSync
6
+ module Ledgers
7
+ module QuickBooksOnline
8
+ class BillPaymentLine < QuickBooksOnline::Resource
9
+ attribute :Amount, type: Type::Integer
10
+
11
+ references_many :LinkedTxn, to: [Bill]
12
+
13
+ def name
14
+ self.Amount
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module LedgerSync
4
+ module Ledgers
5
+ module QuickBooksOnline
6
+ class CheckPayment < QuickBooksOnline::Resource
7
+ references_one :BankAccount, to: Account
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module LedgerSync
4
+ module Ledgers
5
+ module QuickBooksOnline
6
+ class CreditCardPayment < QuickBooksOnline::Resource
7
+ references_one :CCAccount, to: Account
8
+ end
9
+ end
10
+ end
11
+ end
@@ -4,9 +4,13 @@ module LedgerSync
4
4
  module Ledgers
5
5
  module QuickBooksOnline
6
6
  class Currency < QuickBooksOnline::Resource
7
- attribute :exchange_rate, type: Type::Float
8
- attribute :name, type: Type::String
9
- attribute :symbol, type: Type::String
7
+ attribute :ExchangeRate, type: Type::Float
8
+ attribute :Name, type: Type::String
9
+ attribute :Symbol, type: Type::String
10
+
11
+ def ledger_id
12
+ self.Symbol
13
+ end
10
14
  end
11
15
  end
12
16
  end
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'subsidiary'
4
3
  require_relative 'primary_phone'
5
4
  require_relative 'primary_email_addr'
6
5
 
@@ -9,13 +8,15 @@ module LedgerSync
9
8
  module QuickBooksOnline
10
9
  class Customer < QuickBooksOnline::Resource
11
10
  attribute :DisplayName, type: LedgerSync::Type::String
11
+ attribute :GivenName, type: LedgerSync::Type::String
12
+ attribute :FamilyName, type: LedgerSync::Type::String
13
+ attribute :MiddleName, type: LedgerSync::Type::String
12
14
 
13
15
  references_one :PrimaryPhone, to: PrimaryPhone
14
16
  references_one :PrimaryEmailAddr, to: PrimaryEmailAddr
15
- references_one :subsidiary, to: Subsidiary
16
17
 
17
18
  def name
18
- self.DisplayName
19
+ self.DisplayName || [self.GivenName, self.FamilyName].join(' ')
19
20
  end
20
21
  end
21
22
  end
@@ -4,12 +4,16 @@ module LedgerSync
4
4
  module Ledgers
5
5
  module QuickBooksOnline
6
6
  class Department < QuickBooksOnline::Resource
7
- attribute :name, type: Type::String
8
- attribute :fully_qualified_name, type: Type::String
9
- attribute :active, type: Type::Boolean
10
- attribute :sub_department, type: Type::Boolean
7
+ attribute :Name, type: Type::String
8
+ attribute :FullyQualifiedName, type: Type::String
9
+ attribute :Active, type: Type::Boolean
10
+ attribute :SubDepartment, type: Type::Boolean
11
11
 
12
- references_one :parent, to: Department
12
+ references_one :Parent, to: Department
13
+
14
+ def name
15
+ self.Name
16
+ end
13
17
  end
14
18
  end
15
19
  end
@@ -3,24 +3,24 @@
3
3
  require_relative 'account'
4
4
  require_relative 'currency'
5
5
  require_relative 'department'
6
- require_relative 'deposit_line_item'
6
+ require_relative 'deposit_line'
7
7
 
8
8
  module LedgerSync
9
9
  module Ledgers
10
10
  module QuickBooksOnline
11
11
  class Deposit < QuickBooksOnline::Resource
12
- attribute :memo, type: Type::String
13
- attribute :transaction_date, type: Type::Date
14
- attribute :exchange_rate, type: Type::Float
12
+ attribute :PrivateNote, type: Type::String
13
+ attribute :TxnDate, type: Type::Date
14
+ attribute :ExchangeRate, type: Type::Float
15
15
 
16
- references_one :account, to: Account
17
- references_one :department, to: Department
18
- references_one :currency, to: Currency
16
+ references_one :DepositToAccount, to: Account
17
+ references_one :Department, to: Department
18
+ references_one :Currency, to: Currency
19
19
 
20
- references_many :line_items, to: DepositLineItem
20
+ references_many :Line, to: DepositLine
21
21
 
22
22
  def name
23
- "Deposit: #{currency}"
23
+ "Deposit: #{self.Currency.try(:symbol)}"
24
24
  end
25
25
  end
26
26
  end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'deposit_line_detail'
4
+
5
+ module LedgerSync
6
+ module Ledgers
7
+ module QuickBooksOnline
8
+ class DepositLine < QuickBooksOnline::Resource
9
+ references_one :DepositLineDetail, to: DepositLineDetail
10
+ attribute :Amount, type: Type::Integer
11
+ attribute :Description, type: Type::String
12
+
13
+ def name
14
+ description
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,22 @@
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 DepositLineDetail < QuickBooksOnline::Resource
12
+ references_one :Account, to: Account
13
+ references_one :Class, to: LedgerClass
14
+ references_one :Entity, to: [Customer, Vendor]
15
+
16
+ def name
17
+ "#{self.Account.try(:name)} - #{self.Class.try(:name)}"
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -4,7 +4,7 @@ require_relative 'account'
4
4
  require_relative 'currency'
5
5
  require_relative 'customer'
6
6
  require_relative 'department'
7
- require_relative 'expense_line_item'
7
+ require_relative 'expense_line'
8
8
  require_relative 'vendor'
9
9
  require_relative 'bill_payment'
10
10
 
@@ -14,25 +14,25 @@ module LedgerSync
14
14
  class Expense < QuickBooksOnline::Resource
15
15
  PAYMENT_TYPES = BillPayment::PAYMENT_TYPES
16
16
 
17
- attribute :memo, type: Type::String
18
- attribute :payment_type, type: Type::StringFromSet.new(values: PAYMENT_TYPES.keys)
19
- attribute :transaction_date, type: Type::Date
20
- attribute :exchange_rate, type: Type::Float
21
- attribute :reference_number, type: Type::String
17
+ attribute :PrivateNote, type: Type::String
18
+ attribute :PaymentType, type: Type::StringFromSet.new(values: PAYMENT_TYPES.keys)
19
+ attribute :TxnDate, type: Type::Date
20
+ attribute :ExchangeRate, type: Type::Float
21
+ attribute :DocNumber, type: Type::String
22
22
 
23
- references_one :entity, to: [Customer, Vendor]
24
- references_one :account, to: Account
25
- references_one :department, to: Department
26
- references_one :currency, to: Currency
23
+ references_one :Entity, to: [Customer, Vendor]
24
+ references_one :Account, to: Account
25
+ references_one :Department, to: Department
26
+ references_one :Currency, to: Currency
27
27
 
28
- references_many :line_items, to: ExpenseLineItem
28
+ references_many :Line, to: ExpenseLine
29
29
 
30
30
  def amount
31
31
  line_items.map(&:amount).sum
32
32
  end
33
33
 
34
34
  def name
35
- "Purchase: #{amount} #{currency.try(:symbol)}"
35
+ "Purchase: #{amount} #{self.Currency.try(:symbol)}"
36
36
  end
37
37
  end
38
38
  end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'account_based_expense_line_detail'
4
+
5
+ module LedgerSync
6
+ module Ledgers
7
+ module QuickBooksOnline
8
+ class ExpenseLine < QuickBooksOnline::Resource
9
+ references_one :AccountBasedExpenseLineDetail, to: AccountBasedExpenseLineDetail
10
+ attribute :Amount, type: Type::Integer
11
+ attribute :Description, type: Type::String
12
+
13
+ def name
14
+ self.Description
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -3,21 +3,21 @@
3
3
  require_relative 'account'
4
4
  require_relative 'currency'
5
5
  require_relative 'customer'
6
- require_relative 'invoice_sales_line_item'
6
+ require_relative 'invoice_line'
7
7
 
8
8
  module LedgerSync
9
9
  module Ledgers
10
10
  module QuickBooksOnline
11
11
  class Invoice < QuickBooksOnline::Resource
12
- attribute :memo, type: Type::String
13
- attribute :transaction_date, type: Type::Date
14
- attribute :deposit, type: Type::Integer
12
+ attribute :PrivateNote, type: Type::String
13
+ attribute :TxnDate, type: Type::Date
14
+ attribute :Deposit, type: Type::Integer
15
15
 
16
- references_one :customer, to: Customer
17
- references_one :account, to: Account
18
- references_one :currency, to: Currency
16
+ references_one :Customer, to: Customer
17
+ references_one :DepositToAccount, to: Account
18
+ references_one :Currency, to: Currency
19
19
 
20
- references_many :line_items, to: InvoiceSalesLineItem
20
+ references_many :Line, to: InvoiceLine
21
21
 
22
22
  def name
23
23
  "Invoice: #{transaction_date}"
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'sales_item_line_detail'
4
+
5
+ module LedgerSync
6
+ module Ledgers
7
+ module QuickBooksOnline
8
+ class InvoiceLine < QuickBooksOnline::Resource
9
+ references_one :SalesItemLineDetail, to: SalesItemLineDetail
10
+ attribute :Amount, type: Type::Integer
11
+ attribute :Description, type: Type::String
12
+
13
+ def name
14
+ description
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -4,7 +4,7 @@ module LedgerSync
4
4
  module Ledgers
5
5
  module QuickBooksOnline
6
6
  class Item < QuickBooksOnline::Resource
7
- attribute :name, type: Type::String
7
+ attribute :Name, type: Type::String
8
8
  end
9
9
  end
10
10
  end
@@ -1,22 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative 'currency'
4
- require_relative 'journal_entry_line_item'
4
+ require_relative 'journal_entry_line'
5
5
 
6
6
  module LedgerSync
7
7
  module Ledgers
8
8
  module QuickBooksOnline
9
9
  class JournalEntry < QuickBooksOnline::Resource
10
- attribute :memo, type: Type::String
11
- attribute :transaction_date, type: Type::Date
12
- attribute :reference_number, type: Type::String
10
+ attribute :PrivateNote, type: Type::String
11
+ attribute :TxnDate, type: Type::Date
12
+ attribute :DocNumber, type: Type::String
13
13
 
14
- references_one :currency, to: Currency
14
+ references_one :Currency, to: Currency
15
15
 
16
- references_many :line_items, to: JournalEntryLineItem
16
+ references_many :Line, to: JournalEntryLine
17
17
 
18
18
  def name
19
- "JournalEntry: #{transaction_date}"
19
+ "JournalEntry: #{self.TxnDate}"
20
20
  end
21
21
  end
22
22
  end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'journal_entry_line_detail'
4
+
5
+ module LedgerSync
6
+ module Ledgers
7
+ module QuickBooksOnline
8
+ class JournalEntryLine < QuickBooksOnline::Resource
9
+ attribute :Amount, type: Type::Integer
10
+ attribute :Description, type: Type::String
11
+
12
+ references_one :JournalEntryLineDetail, to: JournalEntryLineDetail
13
+
14
+ def name
15
+ self.Description
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'account'
4
+ require_relative 'department'
5
+ require_relative 'ledger_class'
6
+
7
+ module LedgerSync
8
+ module Ledgers
9
+ module QuickBooksOnline
10
+ class JournalEntryLineDetail < QuickBooksOnline::Resource
11
+ TYPES = {
12
+ 'debit' => 'Debit',
13
+ 'credit' => 'Credit'
14
+ }.freeze
15
+
16
+ references_one :Account, to: Account
17
+ references_one :Department, to: Department
18
+ references_one :Class, to: LedgerClass
19
+ attribute :PostingType, type: Type::StringFromSet.new(values: TYPES.keys)
20
+
21
+ def name
22
+ "#{self.PostingType} #{self.Account.try(:name)}"
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end