xero-ruby 3.3.0 → 3.9.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 (231) hide show
  1. checksums.yaml +4 -4
  2. data/lib/xero-ruby/api/accounting_api.rb +86 -2
  3. data/lib/xero-ruby/api/finance_api.rb +961 -0
  4. data/lib/xero-ruby/api/payroll_au_api.rb +14 -14
  5. data/lib/xero-ruby/api/payroll_nz_api.rb +18 -12
  6. data/lib/xero-ruby/api/payroll_uk_api.rb +16 -4
  7. data/lib/xero-ruby/api_client.rb +13 -2
  8. data/lib/xero-ruby/configuration.rb +2 -0
  9. data/lib/xero-ruby/models/accounting/account.rb +34 -34
  10. data/lib/xero-ruby/models/accounting/account_type.rb +22 -22
  11. data/lib/xero-ruby/models/accounting/action.rb +2 -2
  12. data/lib/xero-ruby/models/accounting/address.rb +2 -2
  13. data/lib/xero-ruby/models/accounting/address_for_organisation.rb +3 -3
  14. data/lib/xero-ruby/models/accounting/bank_transaction.rb +11 -11
  15. data/lib/xero-ruby/models/accounting/bank_transfer.rb +35 -1
  16. data/lib/xero-ruby/models/accounting/batch_payment.rb +4 -4
  17. data/lib/xero-ruby/models/accounting/branding_theme.rb +1 -1
  18. data/lib/xero-ruby/models/accounting/budget.rb +2 -2
  19. data/lib/xero-ruby/models/accounting/budget_balance.rb +2 -2
  20. data/lib/xero-ruby/models/accounting/contact.rb +89 -4
  21. data/lib/xero-ruby/models/accounting/contact_group.rb +2 -2
  22. data/lib/xero-ruby/models/accounting/country_code.rb +240 -240
  23. data/lib/xero-ruby/models/accounting/credit_note.rb +8 -8
  24. data/lib/xero-ruby/models/accounting/currency_code.rb +166 -166
  25. data/lib/xero-ruby/models/accounting/employee.rb +4 -4
  26. data/lib/xero-ruby/models/accounting/expense_claim.rb +5 -5
  27. data/lib/xero-ruby/models/accounting/external_link.rb +5 -5
  28. data/lib/xero-ruby/models/accounting/invoice.rb +14 -14
  29. data/lib/xero-ruby/models/accounting/journal.rb +25 -25
  30. data/lib/xero-ruby/models/accounting/line_amount_types.rb +3 -3
  31. data/lib/xero-ruby/models/accounting/line_item.rb +11 -1
  32. data/lib/xero-ruby/models/accounting/line_item_item.rb +272 -0
  33. data/lib/xero-ruby/models/accounting/linked_transaction.rb +8 -8
  34. data/lib/xero-ruby/models/accounting/manual_journal.rb +5 -5
  35. data/lib/xero-ruby/models/accounting/organisation.rb +79 -76
  36. data/lib/xero-ruby/models/accounting/overpayment.rb +6 -6
  37. data/lib/xero-ruby/models/accounting/payment.rb +10 -10
  38. data/lib/xero-ruby/models/accounting/payment_term_type.rb +4 -4
  39. data/lib/xero-ruby/models/accounting/phone.rb +5 -5
  40. data/lib/xero-ruby/models/accounting/prepayment.rb +7 -7
  41. data/lib/xero-ruby/models/accounting/purchase_order.rb +5 -5
  42. data/lib/xero-ruby/models/accounting/quote_line_amount_types.rb +3 -3
  43. data/lib/xero-ruby/models/accounting/quote_status_codes.rb +6 -6
  44. data/lib/xero-ruby/models/accounting/receipt.rb +5 -5
  45. data/lib/xero-ruby/models/accounting/repeating_invoice.rb +5 -5
  46. data/lib/xero-ruby/models/accounting/report.rb +1 -1
  47. data/lib/xero-ruby/models/accounting/row_type.rb +4 -4
  48. data/lib/xero-ruby/models/accounting/schedule.rb +8 -8
  49. data/lib/xero-ruby/models/accounting/tax_rate.rb +87 -80
  50. data/lib/xero-ruby/models/accounting/tax_type.rb +66 -59
  51. data/lib/xero-ruby/models/accounting/time_zone.rb +109 -109
  52. data/lib/xero-ruby/models/accounting/tracking_category.rb +3 -3
  53. data/lib/xero-ruby/models/accounting/tracking_option.rb +3 -3
  54. data/lib/xero-ruby/models/accounting/user.rb +7 -7
  55. data/lib/xero-ruby/models/app_store/plan.rb +6 -5
  56. data/lib/xero-ruby/models/app_store/product.rb +30 -9
  57. data/lib/xero-ruby/models/app_store/subscription.rb +37 -0
  58. data/lib/xero-ruby/models/app_store/subscription_item.rb +63 -1
  59. data/lib/xero-ruby/models/assets/asset_status.rb +3 -3
  60. data/lib/xero-ruby/models/assets/asset_status_query_param.rb +3 -3
  61. data/lib/xero-ruby/models/assets/book_depreciation_setting.rb +11 -11
  62. data/lib/xero-ruby/models/files/object_group.rb +12 -11
  63. data/lib/xero-ruby/models/files/object_type.rb +56 -55
  64. data/lib/xero-ruby/models/finance/account_usage.rb +342 -0
  65. data/lib/xero-ruby/models/finance/account_usage_response.rb +254 -0
  66. data/lib/xero-ruby/models/finance/balance_sheet_account_detail.rb +262 -0
  67. data/lib/xero-ruby/models/finance/balance_sheet_account_group.rb +234 -0
  68. data/lib/xero-ruby/models/finance/balance_sheet_account_type.rb +244 -0
  69. data/lib/xero-ruby/models/finance/balance_sheet_response.rb +252 -0
  70. data/lib/xero-ruby/models/finance/bank_statement_accounting_response.rb +254 -0
  71. data/lib/xero-ruby/models/finance/bank_statement_response.rb +232 -0
  72. data/lib/xero-ruby/models/finance/bank_transaction_response.rb +274 -0
  73. data/lib/xero-ruby/models/finance/cash_account_response.rb +262 -0
  74. data/lib/xero-ruby/models/finance/cash_balance.rb +242 -0
  75. data/lib/xero-ruby/models/finance/cash_validation_response.rb +262 -0
  76. data/lib/xero-ruby/models/finance/cashflow_account.rb +282 -0
  77. data/lib/xero-ruby/models/finance/cashflow_activity.rb +244 -0
  78. data/lib/xero-ruby/models/finance/cashflow_response.rb +254 -0
  79. data/lib/xero-ruby/models/finance/cashflow_type.rb +244 -0
  80. data/lib/xero-ruby/models/finance/contact_detail.rb +274 -0
  81. data/lib/xero-ruby/models/finance/contact_response.rb +232 -0
  82. data/lib/xero-ruby/models/finance/contact_total_detail.rb +242 -0
  83. data/lib/xero-ruby/models/finance/contact_total_other.rb +252 -0
  84. data/lib/xero-ruby/models/finance/credit_note_response.rb +254 -0
  85. data/lib/xero-ruby/models/finance/current_statement_response.rb +272 -0
  86. data/lib/xero-ruby/models/finance/data_source_response.rb +362 -0
  87. data/lib/xero-ruby/models/finance/history_record_response.rb +262 -0
  88. data/lib/xero-ruby/models/finance/income_by_contact_response.rb +284 -0
  89. data/lib/xero-ruby/models/finance/invoice_response.rb +254 -0
  90. data/lib/xero-ruby/models/finance/line_item_response.rb +252 -0
  91. data/lib/xero-ruby/models/finance/lock_history_model.rb +242 -0
  92. data/lib/xero-ruby/models/finance/lock_history_response.rb +244 -0
  93. data/lib/xero-ruby/models/finance/manual_journal_total.rb +222 -0
  94. data/lib/xero-ruby/models/finance/overpayment_response.rb +254 -0
  95. data/lib/xero-ruby/models/finance/payment_response.rb +312 -0
  96. data/lib/xero-ruby/models/finance/pnl_account.rb +272 -0
  97. data/lib/xero-ruby/models/finance/pnl_account_class.rb +234 -0
  98. data/lib/xero-ruby/models/finance/pnl_account_type.rb +244 -0
  99. data/lib/xero-ruby/models/finance/practice_response.rb +262 -0
  100. data/lib/xero-ruby/models/finance/prepayment_response.rb +254 -0
  101. data/lib/xero-ruby/models/finance/problem.rb +252 -0
  102. data/lib/xero-ruby/models/finance/problem_type.rb +44 -0
  103. data/lib/xero-ruby/models/finance/profit_and_loss_response.rb +262 -0
  104. data/lib/xero-ruby/models/finance/report_history_model.rb +242 -0
  105. data/lib/xero-ruby/models/finance/report_history_response.rb +244 -0
  106. data/lib/xero-ruby/models/finance/statement_balance_response.rb +232 -0
  107. data/lib/xero-ruby/models/finance/statement_line_response.rb +346 -0
  108. data/lib/xero-ruby/models/finance/statement_lines_response.rb +382 -0
  109. data/lib/xero-ruby/models/finance/statement_response.rb +294 -0
  110. data/lib/xero-ruby/models/finance/total_detail.rb +242 -0
  111. data/lib/xero-ruby/models/finance/total_other.rb +242 -0
  112. data/lib/xero-ruby/models/finance/trial_balance_account.rb +312 -0
  113. data/lib/xero-ruby/models/finance/trial_balance_entry.rb +232 -0
  114. data/lib/xero-ruby/models/finance/trial_balance_movement.rb +252 -0
  115. data/lib/xero-ruby/models/finance/trial_balance_response.rb +244 -0
  116. data/lib/xero-ruby/models/finance/user_activities_response.rb +244 -0
  117. data/lib/xero-ruby/models/finance/user_response.rb +336 -0
  118. data/lib/xero-ruby/models/payroll_au/account_type.rb +23 -23
  119. data/lib/xero-ruby/models/payroll_au/allowance_category.rb +41 -0
  120. data/lib/xero-ruby/models/payroll_au/allowance_type.rb +10 -7
  121. data/lib/xero-ruby/models/payroll_au/calendar_type.rb +6 -6
  122. data/lib/xero-ruby/models/payroll_au/deduction_type.rb +3 -3
  123. data/lib/xero-ruby/models/payroll_au/deduction_type_calculation_type.rb +3 -3
  124. data/lib/xero-ruby/models/payroll_au/earnings_rate.rb +14 -4
  125. data/lib/xero-ruby/models/payroll_au/earnings_rate_calculation_type.rb +3 -3
  126. data/lib/xero-ruby/models/payroll_au/earnings_type.rb +12 -10
  127. data/lib/xero-ruby/models/payroll_au/employee.rb +11 -11
  128. data/lib/xero-ruby/models/payroll_au/employee_status.rb +2 -2
  129. data/lib/xero-ruby/models/payroll_au/employment_basis.rb +5 -5
  130. data/lib/xero-ruby/models/payroll_au/employment_termination_payment_type.rb +2 -2
  131. data/lib/xero-ruby/models/payroll_au/entitlement_final_pay_payout_type.rb +2 -2
  132. data/lib/xero-ruby/models/payroll_au/leave_line_calculation_type.rb +5 -5
  133. data/lib/xero-ruby/models/payroll_au/leave_period_status.rb +2 -2
  134. data/lib/xero-ruby/models/payroll_au/leave_type_contribution_type.rb +4 -4
  135. data/lib/xero-ruby/models/payroll_au/manual_tax_type.rb +6 -5
  136. data/lib/xero-ruby/models/payroll_au/pay_run_status.rb +2 -2
  137. data/lib/xero-ruby/models/payroll_au/payment_frequency_type.rb +7 -7
  138. data/lib/xero-ruby/models/payroll_au/rate_type.rb +3 -3
  139. data/lib/xero-ruby/models/payroll_au/residency_status.rb +3 -3
  140. data/lib/xero-ruby/models/payroll_au/state.rb +8 -8
  141. data/lib/xero-ruby/models/payroll_au/super_fund_type.rb +2 -2
  142. data/lib/xero-ruby/models/payroll_au/superannuation_calculation_type.rb +3 -3
  143. data/lib/xero-ruby/models/payroll_au/superannuation_contribution_type.rb +4 -4
  144. data/lib/xero-ruby/models/payroll_au/tfn_exemption_type.rb +4 -4
  145. data/lib/xero-ruby/models/payroll_au/timesheet_status.rb +5 -5
  146. data/lib/xero-ruby/models/payroll_nz/account.rb +4 -4
  147. data/lib/xero-ruby/models/payroll_nz/bank_account.rb +2 -2
  148. data/lib/xero-ruby/models/payroll_nz/benefit.rb +5 -5
  149. data/lib/xero-ruby/models/payroll_nz/calendar_type.rb +7 -7
  150. data/lib/xero-ruby/models/payroll_nz/deduction.rb +4 -4
  151. data/lib/xero-ruby/models/payroll_nz/earnings_rate.rb +18 -18
  152. data/lib/xero-ruby/models/payroll_nz/employee.rb +2 -2
  153. data/lib/xero-ruby/models/payroll_nz/employee_leave_type.rb +4 -4
  154. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_balance.rb +6 -6
  155. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_summary.rb +8 -8
  156. data/lib/xero-ruby/models/payroll_nz/employee_tax.rb +5 -5
  157. data/lib/xero-ruby/models/payroll_nz/leave_period.rb +2 -2
  158. data/lib/xero-ruby/models/payroll_nz/pay_run.rb +5 -5
  159. data/lib/xero-ruby/models/payroll_nz/pay_slip.rb +3 -3
  160. data/lib/xero-ruby/models/payroll_nz/payment_method.rb +3 -3
  161. data/lib/xero-ruby/models/payroll_nz/reimbursement.rb +8 -8
  162. data/lib/xero-ruby/models/payroll_nz/salary_and_wage.rb +5 -5
  163. data/lib/xero-ruby/models/payroll_nz/statutory_deduction_category.rb +11 -11
  164. data/lib/xero-ruby/models/payroll_nz/tax_code.rb +19 -19
  165. data/lib/xero-ruby/models/payroll_nz/tax_settings.rb +2 -2
  166. data/lib/xero-ruby/models/payroll_nz/timesheet.rb +4 -4
  167. data/lib/xero-ruby/models/payroll_uk/account.rb +7 -7
  168. data/lib/xero-ruby/models/payroll_uk/benefit.rb +4 -4
  169. data/lib/xero-ruby/models/payroll_uk/deduction.rb +12 -12
  170. data/lib/xero-ruby/models/payroll_uk/earnings_rate.rb +28 -28
  171. data/lib/xero-ruby/models/payroll_uk/employee.rb +16 -6
  172. data/lib/xero-ruby/models/payroll_uk/employee_leave_type.rb +4 -4
  173. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_balance.rb +6 -6
  174. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_summary.rb +8 -8
  175. data/lib/xero-ruby/models/payroll_uk/employment.rb +15 -10
  176. data/lib/xero-ruby/models/payroll_uk/leave_period.rb +2 -2
  177. data/lib/xero-ruby/models/payroll_uk/pay_run.rb +11 -11
  178. data/lib/xero-ruby/models/payroll_uk/pay_run_calendar.rb +6 -6
  179. data/lib/xero-ruby/models/payroll_uk/payment_method.rb +3 -3
  180. data/lib/xero-ruby/models/payroll_uk/payslip.rb +3 -3
  181. data/lib/xero-ruby/models/payroll_uk/salary_and_wage.rb +5 -5
  182. data/lib/xero-ruby/models/payroll_uk/statutory_deduction_category.rb +14 -14
  183. data/lib/xero-ruby/models/payroll_uk/timesheet.rb +3 -3
  184. data/lib/xero-ruby/models/projects/charge_type.rb +3 -3
  185. data/lib/xero-ruby/models/projects/currency_code.rb +164 -164
  186. data/lib/xero-ruby/models/projects/project_status.rb +2 -2
  187. data/lib/xero-ruby/models/projects/task.rb +3 -3
  188. data/lib/xero-ruby/models/projects/time_entry.rb +3 -3
  189. data/lib/xero-ruby/version.rb +2 -2
  190. data/lib/xero-ruby.rb +57 -0
  191. data/spec/api_client_spec.rb +3 -0
  192. data/spec/app_store/api/app_store_api_spec.rb +1 -1
  193. data/spec/configuration_spec.rb +1 -0
  194. data/spec/finance/api/finance_api_spec.rb +156 -0
  195. data/spec/finance/models/account_usage_response_spec.rb +58 -0
  196. data/spec/finance/models/account_usage_spec.rb +112 -0
  197. data/spec/finance/models/balance_sheet_account_detail_spec.rb +64 -0
  198. data/spec/finance/models/balance_sheet_account_group_spec.rb +46 -0
  199. data/spec/finance/models/balance_sheet_account_type_spec.rb +52 -0
  200. data/spec/finance/models/balance_sheet_response_spec.rb +58 -0
  201. data/spec/finance/models/bank_statement_response_spec.rb +46 -0
  202. data/spec/finance/models/cash_account_response_spec.rb +64 -0
  203. data/spec/finance/models/cash_balance_spec.rb +52 -0
  204. data/spec/finance/models/cash_validation_response_spec.rb +64 -0
  205. data/spec/finance/models/cashflow_account_spec.rb +76 -0
  206. data/spec/finance/models/cashflow_activity_spec.rb +52 -0
  207. data/spec/finance/models/cashflow_response_spec.rb +58 -0
  208. data/spec/finance/models/cashflow_type_spec.rb +52 -0
  209. data/spec/finance/models/current_statement_response_spec.rb +70 -0
  210. data/spec/finance/models/data_source_response_spec.rb +124 -0
  211. data/spec/finance/models/history_record_response_spec.rb +64 -0
  212. data/spec/finance/models/lock_history_model_spec.rb +52 -0
  213. data/spec/finance/models/lock_history_response_spec.rb +52 -0
  214. data/spec/finance/models/pnl_account_class_spec.rb +46 -0
  215. data/spec/finance/models/pnl_account_spec.rb +70 -0
  216. data/spec/finance/models/pnl_account_type_spec.rb +52 -0
  217. data/spec/finance/models/practice_response_spec.rb +64 -0
  218. data/spec/finance/models/problem_spec.rb +58 -0
  219. data/spec/finance/models/problem_type_spec.rb +34 -0
  220. data/spec/finance/models/profit_and_loss_response_spec.rb +64 -0
  221. data/spec/finance/models/report_history_model_spec.rb +52 -0
  222. data/spec/finance/models/report_history_response_spec.rb +52 -0
  223. data/spec/finance/models/statement_balance_response_spec.rb +46 -0
  224. data/spec/finance/models/statement_lines_response_spec.rb +136 -0
  225. data/spec/finance/models/trial_balance_account_spec.rb +94 -0
  226. data/spec/finance/models/trial_balance_entry_spec.rb +46 -0
  227. data/spec/finance/models/trial_balance_movement_spec.rb +58 -0
  228. data/spec/finance/models/trial_balance_response_spec.rb +52 -0
  229. data/spec/finance/models/user_activities_response_spec.rb +52 -0
  230. data/spec/finance/models/user_response_spec.rb +106 -0
  231. metadata +134 -3
@@ -18,17 +18,17 @@ module XeroRuby::Assets
18
18
  class BookDepreciationSetting
19
19
  # The method of depreciation applied to this asset. See Depreciation Methods
20
20
  attr_accessor :depreciation_method
21
- NO_DEPRECIATION = "NoDepreciation".freeze
22
- STRAIGHT_LINE = "StraightLine".freeze
23
- DIMINISHING_VALUE100 = "DiminishingValue100".freeze
24
- DIMINISHING_VALUE150 = "DiminishingValue150".freeze
25
- DIMINISHING_VALUE200 = "DiminishingValue200".freeze
26
- FULL_DEPRECIATION = "FullDepreciation".freeze
21
+ NO_DEPRECIATION ||= "NoDepreciation".freeze
22
+ STRAIGHT_LINE ||= "StraightLine".freeze
23
+ DIMINISHING_VALUE100 ||= "DiminishingValue100".freeze
24
+ DIMINISHING_VALUE150 ||= "DiminishingValue150".freeze
25
+ DIMINISHING_VALUE200 ||= "DiminishingValue200".freeze
26
+ FULL_DEPRECIATION ||= "FullDepreciation".freeze
27
27
 
28
28
  # The method of averaging applied to this asset. See Averaging Methods
29
29
  attr_accessor :averaging_method
30
- FULL_MONTH = "FullMonth".freeze
31
- ACTUAL_DAYS = "ActualDays".freeze
30
+ FULL_MONTH ||= "FullMonth".freeze
31
+ ACTUAL_DAYS ||= "ActualDays".freeze
32
32
 
33
33
  # The rate of depreciation (e.g. 0.05)
34
34
  attr_accessor :depreciation_rate
@@ -38,9 +38,9 @@ module XeroRuby::Assets
38
38
 
39
39
  # See Depreciation Calculation Methods
40
40
  attr_accessor :depreciation_calculation_method
41
- RATE = "Rate".freeze
42
- LIFE = "Life".freeze
43
- NONE = "None".freeze
41
+ RATE ||= "Rate".freeze
42
+ LIFE ||= "Life".freeze
43
+ NONE ||= "None".freeze
44
44
 
45
45
  # Unique Xero identifier for the depreciable object
46
46
  attr_accessor :depreciable_object_id
@@ -14,17 +14,18 @@ require 'date'
14
14
 
15
15
  module XeroRuby::Files
16
16
  class ObjectGroup
17
- ACCOUNT = "Account".freeze
18
- BANK_TRANSACTION = "BankTransaction".freeze
19
- CONTACT = "Contact".freeze
20
- CREDIT_NOTE = "CreditNote".freeze
21
- INVOICE = "Invoice".freeze
22
- ITEM = "Item".freeze
23
- MANUAL_JOURNAL = "ManualJournal".freeze
24
- OVERPAYMENT = "Overpayment".freeze
25
- PAYMENT = "Payment".freeze
26
- PREPAYMENT = "Prepayment".freeze
27
- RECEIPT = "Receipt".freeze
17
+ ACCOUNT ||= "Account".freeze
18
+ BANK_TRANSACTION ||= "BankTransaction".freeze
19
+ CONTACT ||= "Contact".freeze
20
+ CREDIT_NOTE ||= "CreditNote".freeze
21
+ INVOICE ||= "Invoice".freeze
22
+ ITEM ||= "Item".freeze
23
+ MANUAL_JOURNAL ||= "ManualJournal".freeze
24
+ OVERPAYMENT ||= "Overpayment".freeze
25
+ PAYMENT ||= "Payment".freeze
26
+ PREPAYMENT ||= "Prepayment".freeze
27
+ QUOTE ||= "Quote".freeze
28
+ RECEIPT ||= "Receipt".freeze
28
29
 
29
30
  # Builds the enum from string
30
31
  # @param [String] The enum value in the form of the string
@@ -14,61 +14,62 @@ require 'date'
14
14
 
15
15
  module XeroRuby::Files
16
16
  class ObjectType
17
- UNKNOWN = "Unknown".freeze
18
- ACCPAY = "Accpay".freeze
19
- ACC_PAY_CREDIT = "AccPayCredit".freeze
20
- ACC_PAY_PAYMENT = "AccPayPayment".freeze
21
- ACC_REC = "AccRec".freeze
22
- ACC_REC_CREDIT = "AccRecCredit".freeze
23
- ACC_REC_PAYMENT = "AccRecPayment".freeze
24
- ADJUSTMENT = "Adjustment".freeze
25
- AP_CREDIT_PAYMENT = "ApCreditPayment".freeze
26
- AP_OVER_PAYMENT = "ApOverPayment".freeze
27
- AP_OVER_PAYMENT_PAYMENT = "ApOverPaymentPayment".freeze
28
- AP_OVER_PAYMENT_SOURCE_PAYMENT = "ApOverPaymentSourcePayment".freeze
29
- AP_PREPAYMENT = "ApPrepayment".freeze
30
- AP_PREPAYMENT_PAYMENT = "ApPrepaymentPayment".freeze
31
- AP_PREPAYMENT_SOURCE_PAYMENT = "ApPrepaymentSourcePayment".freeze
32
- AR_CREDIT_PAYMENT = "ArCreditPayment".freeze
33
- AR_OVER_PAYMENT = "ArOverPayment".freeze
34
- AR_OVERPAYMENT_PAYMENT = "ArOverpaymentPayment".freeze
35
- AR_OVERPAYMENT_SOURCE_PAYMENT = "ArOverpaymentSourcePayment".freeze
36
- AR_PREPAYMENT = "ArPrepayment".freeze
37
- AR_PREPAYMENT_PAYMENT = "ArPrepaymentPayment".freeze
38
- AR_PREPAYMENT_SOURCE_PAYMENT = "ArPrepaymentSourcePayment".freeze
39
- CASH_PAID = "CashPaid".freeze
40
- CASH_REC = "CashRec".freeze
41
- EXP_PAYMENT = "ExpPayment".freeze
42
- MAN_JOURNAL = "ManJournal".freeze
43
- PURCHASE_ORDER = "PurchaseOrder".freeze
44
- RECEIPT = "Receipt".freeze
45
- TRANSFER = "Transfer".freeze
46
- ACCOUNT = "Account".freeze
47
- CONTACT = "Contact".freeze
48
- BUSINESS = "Business".freeze
49
- EMPLOYEE = "Employee".freeze
50
- PERSON = "Person".freeze
51
- USER = "User".freeze
52
- ORG = "Org".freeze
53
- FIXED_ASSET = "FixedAsset".freeze
54
- PAY_RUN = "PayRun".freeze
55
- PRICE_LIST_ITEM = "PriceListItem".freeze
56
- BANK = "Bank".freeze
57
- CURRENT = "Current".freeze
58
- EQUITY = "Equity".freeze
59
- EXPENSE = "Expense".freeze
60
- FIXED = "Fixed".freeze
61
- LIABILITY = "Liability".freeze
62
- PREPAYMENT = "Prepayment".freeze
63
- REVENUE = "Revenue".freeze
64
- SALES = "Sales".freeze
65
- OVERHEADS = "Overheads".freeze
66
- DEPRECIATN = "Depreciatn".freeze
67
- OTHER_INCOME = "OtherIncome".freeze
68
- DIRECT_COSTS = "DirectCosts".freeze
69
- CURRLIAB = "Currliab".freeze
70
- TERMLIAB = "Termliab".freeze
71
- NON_CURRENT = "NonCurrent".freeze
17
+ UNKNOWN ||= "Unknown".freeze
18
+ ACCPAY ||= "Accpay".freeze
19
+ ACC_PAY_CREDIT ||= "AccPayCredit".freeze
20
+ ACC_PAY_PAYMENT ||= "AccPayPayment".freeze
21
+ ACC_REC ||= "AccRec".freeze
22
+ ACC_REC_CREDIT ||= "AccRecCredit".freeze
23
+ ACC_REC_PAYMENT ||= "AccRecPayment".freeze
24
+ ADJUSTMENT ||= "Adjustment".freeze
25
+ AP_CREDIT_PAYMENT ||= "ApCreditPayment".freeze
26
+ AP_OVER_PAYMENT ||= "ApOverPayment".freeze
27
+ AP_OVER_PAYMENT_PAYMENT ||= "ApOverPaymentPayment".freeze
28
+ AP_OVER_PAYMENT_SOURCE_PAYMENT ||= "ApOverPaymentSourcePayment".freeze
29
+ AP_PREPAYMENT ||= "ApPrepayment".freeze
30
+ AP_PREPAYMENT_PAYMENT ||= "ApPrepaymentPayment".freeze
31
+ AP_PREPAYMENT_SOURCE_PAYMENT ||= "ApPrepaymentSourcePayment".freeze
32
+ AR_CREDIT_PAYMENT ||= "ArCreditPayment".freeze
33
+ AR_OVER_PAYMENT ||= "ArOverPayment".freeze
34
+ AR_OVERPAYMENT_PAYMENT ||= "ArOverpaymentPayment".freeze
35
+ AR_OVERPAYMENT_SOURCE_PAYMENT ||= "ArOverpaymentSourcePayment".freeze
36
+ AR_PREPAYMENT ||= "ArPrepayment".freeze
37
+ AR_PREPAYMENT_PAYMENT ||= "ArPrepaymentPayment".freeze
38
+ AR_PREPAYMENT_SOURCE_PAYMENT ||= "ArPrepaymentSourcePayment".freeze
39
+ CASH_PAID ||= "CashPaid".freeze
40
+ CASH_REC ||= "CashRec".freeze
41
+ EXP_PAYMENT ||= "ExpPayment".freeze
42
+ MAN_JOURNAL ||= "ManJournal".freeze
43
+ PURCHASE_ORDER ||= "PurchaseOrder".freeze
44
+ RECEIPT ||= "Receipt".freeze
45
+ TRANSFER ||= "Transfer".freeze
46
+ ACCOUNT ||= "Account".freeze
47
+ CONTACT ||= "Contact".freeze
48
+ BUSINESS ||= "Business".freeze
49
+ EMPLOYEE ||= "Employee".freeze
50
+ PERSON ||= "Person".freeze
51
+ USER ||= "User".freeze
52
+ ORG ||= "Org".freeze
53
+ FIXED_ASSET ||= "FixedAsset".freeze
54
+ PAY_RUN ||= "PayRun".freeze
55
+ PRICE_LIST_ITEM ||= "PriceListItem".freeze
56
+ BANK ||= "Bank".freeze
57
+ CURRENT ||= "Current".freeze
58
+ EQUITY ||= "Equity".freeze
59
+ EXPENSE ||= "Expense".freeze
60
+ FIXED ||= "Fixed".freeze
61
+ LIABILITY ||= "Liability".freeze
62
+ PREPAYMENT ||= "Prepayment".freeze
63
+ REVENUE ||= "Revenue".freeze
64
+ SALES ||= "Sales".freeze
65
+ OVERHEADS ||= "Overheads".freeze
66
+ DEPRECIATN ||= "Depreciatn".freeze
67
+ OTHER_INCOME ||= "OtherIncome".freeze
68
+ DIRECT_COSTS ||= "DirectCosts".freeze
69
+ CURRLIAB ||= "Currliab".freeze
70
+ TERMLIAB ||= "Termliab".freeze
71
+ NON_CURRENT ||= "NonCurrent".freeze
72
+ SALES_QUOTE ||= "SalesQuote".freeze
72
73
 
73
74
  # Builds the enum from string
74
75
  # @param [String] The enum value in the form of the string
@@ -0,0 +1,342 @@
1
+ =begin
2
+ #Xero Finance API
3
+
4
+ #The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital.
5
+
6
+ Contact: api@xero.com
7
+ Generated by: https://openapi-generator.tech
8
+ OpenAPI Generator version: 4.3.1
9
+
10
+ =end
11
+
12
+ require 'time'
13
+ require 'date'
14
+
15
+ module XeroRuby::Finance
16
+ require 'bigdecimal'
17
+
18
+ class AccountUsage
19
+ # The month this usage item contains data for
20
+ attr_accessor :month
21
+
22
+ # The account this usage item contains data for
23
+ attr_accessor :account_id
24
+
25
+ # The currency code this usage item contains data for
26
+ attr_accessor :currency_code
27
+
28
+ # Total received
29
+ attr_accessor :total_received
30
+
31
+ # Count of received
32
+ attr_accessor :count_received
33
+
34
+ # Total paid
35
+ attr_accessor :total_paid
36
+
37
+ # Count of paid
38
+ attr_accessor :count_paid
39
+
40
+ # Total value of manual journals
41
+ attr_accessor :total_manual_journal
42
+
43
+ # Count of manual journals
44
+ attr_accessor :count_manual_journal
45
+
46
+ # The name of the account
47
+ attr_accessor :account_name
48
+
49
+ # Shown if set
50
+ attr_accessor :reporting_code
51
+
52
+ # Shown if set
53
+ attr_accessor :reporting_code_name
54
+
55
+ # Last modified date UTC format
56
+ attr_accessor :report_code_updated_date_utc
57
+
58
+ # Attribute mapping from ruby-style variable name to JSON key.
59
+ def self.attribute_map
60
+ {
61
+ :'month' => :'month',
62
+ :'account_id' => :'accountId',
63
+ :'currency_code' => :'currencyCode',
64
+ :'total_received' => :'totalReceived',
65
+ :'count_received' => :'countReceived',
66
+ :'total_paid' => :'totalPaid',
67
+ :'count_paid' => :'countPaid',
68
+ :'total_manual_journal' => :'totalManualJournal',
69
+ :'count_manual_journal' => :'countManualJournal',
70
+ :'account_name' => :'accountName',
71
+ :'reporting_code' => :'reportingCode',
72
+ :'reporting_code_name' => :'reportingCodeName',
73
+ :'report_code_updated_date_utc' => :'reportCodeUpdatedDateUtc'
74
+ }
75
+ end
76
+
77
+ # Attribute type mapping.
78
+ def self.openapi_types
79
+ {
80
+ :'month' => :'String',
81
+ :'account_id' => :'String',
82
+ :'currency_code' => :'String',
83
+ :'total_received' => :'BigDecimal',
84
+ :'count_received' => :'Integer',
85
+ :'total_paid' => :'BigDecimal',
86
+ :'count_paid' => :'Integer',
87
+ :'total_manual_journal' => :'BigDecimal',
88
+ :'count_manual_journal' => :'Integer',
89
+ :'account_name' => :'String',
90
+ :'reporting_code' => :'String',
91
+ :'reporting_code_name' => :'String',
92
+ :'report_code_updated_date_utc' => :'DateTime'
93
+ }
94
+ end
95
+
96
+ # Initializes the object
97
+ # @param [Hash] attributes Model attributes in the form of hash
98
+ def initialize(attributes = {})
99
+ if (!attributes.is_a?(Hash))
100
+ fail ArgumentError, "The input argument (attributes) must be a hash in `XeroRuby::Finance::AccountUsage` initialize method"
101
+ end
102
+
103
+ # check to see if the attribute exists and convert string to symbol for hash key
104
+ attributes = attributes.each_with_object({}) { |(k, v), h|
105
+ if (!self.class.attribute_map.key?(k.to_sym))
106
+ fail ArgumentError, "`#{k}` is not a valid attribute in `XeroRuby::Finance::AccountUsage`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
107
+ end
108
+ h[k.to_sym] = v
109
+ }
110
+
111
+ if attributes.key?(:'month')
112
+ self.month = attributes[:'month']
113
+ end
114
+
115
+ if attributes.key?(:'account_id')
116
+ self.account_id = attributes[:'account_id']
117
+ end
118
+
119
+ if attributes.key?(:'currency_code')
120
+ self.currency_code = attributes[:'currency_code']
121
+ end
122
+
123
+ if attributes.key?(:'total_received')
124
+ self.total_received = attributes[:'total_received']
125
+ end
126
+
127
+ if attributes.key?(:'count_received')
128
+ self.count_received = attributes[:'count_received']
129
+ end
130
+
131
+ if attributes.key?(:'total_paid')
132
+ self.total_paid = attributes[:'total_paid']
133
+ end
134
+
135
+ if attributes.key?(:'count_paid')
136
+ self.count_paid = attributes[:'count_paid']
137
+ end
138
+
139
+ if attributes.key?(:'total_manual_journal')
140
+ self.total_manual_journal = attributes[:'total_manual_journal']
141
+ end
142
+
143
+ if attributes.key?(:'count_manual_journal')
144
+ self.count_manual_journal = attributes[:'count_manual_journal']
145
+ end
146
+
147
+ if attributes.key?(:'account_name')
148
+ self.account_name = attributes[:'account_name']
149
+ end
150
+
151
+ if attributes.key?(:'reporting_code')
152
+ self.reporting_code = attributes[:'reporting_code']
153
+ end
154
+
155
+ if attributes.key?(:'reporting_code_name')
156
+ self.reporting_code_name = attributes[:'reporting_code_name']
157
+ end
158
+
159
+ if attributes.key?(:'report_code_updated_date_utc')
160
+ self.report_code_updated_date_utc = attributes[:'report_code_updated_date_utc']
161
+ end
162
+ end
163
+
164
+ # Show invalid properties with the reasons. Usually used together with valid?
165
+ # @return Array for valid properties with the reasons
166
+ def list_invalid_properties
167
+ invalid_properties = Array.new
168
+ invalid_properties
169
+ end
170
+
171
+ # Check to see if the all the properties in the model are valid
172
+ # @return true if the model is valid
173
+ def valid?
174
+ true
175
+ end
176
+
177
+ # Checks equality by comparing each attribute.
178
+ # @param [Object] Object to be compared
179
+ def ==(o)
180
+ return true if self.equal?(o)
181
+ self.class == o.class &&
182
+ month == o.month &&
183
+ account_id == o.account_id &&
184
+ currency_code == o.currency_code &&
185
+ total_received == o.total_received &&
186
+ count_received == o.count_received &&
187
+ total_paid == o.total_paid &&
188
+ count_paid == o.count_paid &&
189
+ total_manual_journal == o.total_manual_journal &&
190
+ count_manual_journal == o.count_manual_journal &&
191
+ account_name == o.account_name &&
192
+ reporting_code == o.reporting_code &&
193
+ reporting_code_name == o.reporting_code_name &&
194
+ report_code_updated_date_utc == o.report_code_updated_date_utc
195
+ end
196
+
197
+ # @see the `==` method
198
+ # @param [Object] Object to be compared
199
+ def eql?(o)
200
+ self == o
201
+ end
202
+
203
+ # Calculates hash code according to all attributes.
204
+ # @return [Integer] Hash code
205
+ def hash
206
+ [month, account_id, currency_code, total_received, count_received, total_paid, count_paid, total_manual_journal, count_manual_journal, account_name, reporting_code, reporting_code_name, report_code_updated_date_utc].hash
207
+ end
208
+
209
+ # Builds the object from hash
210
+ # @param [Hash] attributes Model attributes in the form of hash
211
+ # @return [Object] Returns the model itself
212
+ def self.build_from_hash(attributes)
213
+ new.build_from_hash(attributes)
214
+ end
215
+
216
+ # Builds the object from hash
217
+ # @param [Hash] attributes Model attributes in the form of hash
218
+ # @return [Object] Returns the model itself
219
+ def build_from_hash(attributes)
220
+ return nil unless attributes.is_a?(Hash)
221
+ self.class.openapi_types.each_pair do |key, type|
222
+ if type =~ /\AArray<(.*)>/i
223
+ # check to ensure the input is an array given that the attribute
224
+ # is documented as an array but the input is not
225
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
226
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
227
+ end
228
+ elsif !attributes[self.class.attribute_map[key]].nil?
229
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
230
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
231
+ end
232
+
233
+ self
234
+ end
235
+
236
+ # Deserializes the data based on type
237
+ # @param string type Data type
238
+ # @param string value Value to be deserialized
239
+ # @return [Object] Deserialized data
240
+ def _deserialize(type, value)
241
+ case type.to_sym
242
+ when :DateTime
243
+ DateTime.parse(parse_date(value))
244
+ when :Date
245
+ Date.parse(parse_date(value))
246
+ when :String
247
+ value.to_s
248
+ when :Integer
249
+ value.to_i
250
+ when :Float
251
+ value.to_f
252
+ when :BigDecimal
253
+ BigDecimal(value.to_s)
254
+ when :Boolean
255
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
256
+ true
257
+ else
258
+ false
259
+ end
260
+ when :Object
261
+ # generic object (usually a Hash), return directly
262
+ value
263
+ when /\AArray<(?<inner_type>.+)>\z/
264
+ inner_type = Regexp.last_match[:inner_type]
265
+ value.map { |v| _deserialize(inner_type, v) }
266
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
267
+ k_type = Regexp.last_match[:k_type]
268
+ v_type = Regexp.last_match[:v_type]
269
+ {}.tap do |hash|
270
+ value.each do |k, v|
271
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
272
+ end
273
+ end
274
+ else # model
275
+ XeroRuby::Finance.const_get(type).build_from_hash(value)
276
+ end
277
+ end
278
+
279
+ # Returns the string representation of the object
280
+ # @return [String] String presentation of the object
281
+ def to_s
282
+ to_hash.to_s
283
+ end
284
+
285
+ # to_body is an alias to to_hash (backward compatibility)
286
+ # @return [Hash] Returns the object in the form of hash
287
+ def to_body
288
+ to_hash
289
+ end
290
+
291
+ # Returns the object in the form of hash
292
+ # @return [Hash] Returns the object in the form of hash
293
+ def to_hash(downcase: false)
294
+ hash = {}
295
+ self.class.attribute_map.each_pair do |attr, param|
296
+ value = self.send(attr)
297
+ next if value.nil?
298
+ key = downcase ? attr : param
299
+ hash[key] = _to_hash(value, downcase: downcase)
300
+ end
301
+ hash
302
+ end
303
+
304
+ # Returns the object in the form of hash with snake_case
305
+ def to_attributes
306
+ to_hash(downcase: true)
307
+ end
308
+
309
+ # Outputs non-array value in the form of hash
310
+ # For object, use to_hash. Otherwise, just return the value
311
+ # @param [Object] value Any valid value
312
+ # @return [Hash] Returns the value in the form of hash
313
+ def _to_hash(value, downcase: false)
314
+ if value.is_a?(Array)
315
+ value.map do |v|
316
+ v.to_hash(downcase: downcase)
317
+ end
318
+ elsif value.is_a?(Hash)
319
+ {}.tap do |hash|
320
+ value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
321
+ end
322
+ elsif value.respond_to? :to_hash
323
+ value.to_hash(downcase: downcase)
324
+ else
325
+ value
326
+ end
327
+ end
328
+
329
+ def parse_date(datestring)
330
+ if datestring.include?('Date')
331
+ date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
332
+ original, date, timezone = *date_pattern.match(datestring)
333
+ date = (date.to_i / 1000)
334
+ Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
335
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
336
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
337
+ else # handle date 'types' for small subset of payroll API's
338
+ Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
339
+ end
340
+ end
341
+ end
342
+ end