xero-ruby 3.4.0 → 3.7.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 (226) hide show
  1. checksums.yaml +4 -4
  2. data/lib/xero-ruby/api/finance_api.rb +961 -0
  3. data/lib/xero-ruby/api/payroll_uk_api.rb +2 -2
  4. data/lib/xero-ruby/api_client.rb +12 -1
  5. data/lib/xero-ruby/configuration.rb +2 -0
  6. data/lib/xero-ruby/models/accounting/account.rb +34 -34
  7. data/lib/xero-ruby/models/accounting/account_type.rb +22 -22
  8. data/lib/xero-ruby/models/accounting/action.rb +2 -2
  9. data/lib/xero-ruby/models/accounting/address.rb +2 -2
  10. data/lib/xero-ruby/models/accounting/address_for_organisation.rb +3 -3
  11. data/lib/xero-ruby/models/accounting/bank_transaction.rb +11 -11
  12. data/lib/xero-ruby/models/accounting/batch_payment.rb +4 -4
  13. data/lib/xero-ruby/models/accounting/branding_theme.rb +1 -1
  14. data/lib/xero-ruby/models/accounting/budget.rb +2 -2
  15. data/lib/xero-ruby/models/accounting/contact.rb +89 -4
  16. data/lib/xero-ruby/models/accounting/contact_group.rb +2 -2
  17. data/lib/xero-ruby/models/accounting/country_code.rb +240 -240
  18. data/lib/xero-ruby/models/accounting/credit_note.rb +8 -8
  19. data/lib/xero-ruby/models/accounting/currency_code.rb +166 -166
  20. data/lib/xero-ruby/models/accounting/employee.rb +4 -4
  21. data/lib/xero-ruby/models/accounting/expense_claim.rb +5 -5
  22. data/lib/xero-ruby/models/accounting/external_link.rb +5 -5
  23. data/lib/xero-ruby/models/accounting/invoice.rb +14 -14
  24. data/lib/xero-ruby/models/accounting/journal.rb +25 -25
  25. data/lib/xero-ruby/models/accounting/line_amount_types.rb +3 -3
  26. data/lib/xero-ruby/models/accounting/line_item.rb +11 -1
  27. data/lib/xero-ruby/models/accounting/line_item_item.rb +272 -0
  28. data/lib/xero-ruby/models/accounting/linked_transaction.rb +8 -8
  29. data/lib/xero-ruby/models/accounting/manual_journal.rb +5 -5
  30. data/lib/xero-ruby/models/accounting/organisation.rb +70 -70
  31. data/lib/xero-ruby/models/accounting/overpayment.rb +6 -6
  32. data/lib/xero-ruby/models/accounting/payment.rb +10 -10
  33. data/lib/xero-ruby/models/accounting/payment_term_type.rb +4 -4
  34. data/lib/xero-ruby/models/accounting/phone.rb +5 -5
  35. data/lib/xero-ruby/models/accounting/prepayment.rb +7 -7
  36. data/lib/xero-ruby/models/accounting/purchase_order.rb +5 -5
  37. data/lib/xero-ruby/models/accounting/quote_line_amount_types.rb +3 -3
  38. data/lib/xero-ruby/models/accounting/quote_status_codes.rb +6 -6
  39. data/lib/xero-ruby/models/accounting/receipt.rb +5 -5
  40. data/lib/xero-ruby/models/accounting/repeating_invoice.rb +5 -5
  41. data/lib/xero-ruby/models/accounting/report.rb +1 -1
  42. data/lib/xero-ruby/models/accounting/row_type.rb +4 -4
  43. data/lib/xero-ruby/models/accounting/schedule.rb +8 -8
  44. data/lib/xero-ruby/models/accounting/tax_rate.rb +78 -78
  45. data/lib/xero-ruby/models/accounting/tax_type.rb +59 -59
  46. data/lib/xero-ruby/models/accounting/time_zone.rb +109 -109
  47. data/lib/xero-ruby/models/accounting/tracking_category.rb +3 -3
  48. data/lib/xero-ruby/models/accounting/tracking_option.rb +3 -3
  49. data/lib/xero-ruby/models/accounting/user.rb +7 -7
  50. data/lib/xero-ruby/models/app_store/plan.rb +6 -5
  51. data/lib/xero-ruby/models/app_store/product.rb +2 -2
  52. data/lib/xero-ruby/models/app_store/subscription.rb +37 -0
  53. data/lib/xero-ruby/models/app_store/subscription_item.rb +53 -1
  54. data/lib/xero-ruby/models/assets/asset_status.rb +3 -3
  55. data/lib/xero-ruby/models/assets/asset_status_query_param.rb +3 -3
  56. data/lib/xero-ruby/models/assets/book_depreciation_setting.rb +11 -11
  57. data/lib/xero-ruby/models/files/object_group.rb +12 -11
  58. data/lib/xero-ruby/models/files/object_type.rb +56 -55
  59. data/lib/xero-ruby/models/finance/account_usage.rb +342 -0
  60. data/lib/xero-ruby/models/finance/account_usage_response.rb +254 -0
  61. data/lib/xero-ruby/models/finance/balance_sheet_account_detail.rb +262 -0
  62. data/lib/xero-ruby/models/finance/balance_sheet_account_group.rb +234 -0
  63. data/lib/xero-ruby/models/finance/balance_sheet_account_type.rb +244 -0
  64. data/lib/xero-ruby/models/finance/balance_sheet_response.rb +252 -0
  65. data/lib/xero-ruby/models/finance/bank_statement_accounting_response.rb +254 -0
  66. data/lib/xero-ruby/models/finance/bank_statement_response.rb +232 -0
  67. data/lib/xero-ruby/models/finance/bank_transaction_response.rb +274 -0
  68. data/lib/xero-ruby/models/finance/cash_account_response.rb +262 -0
  69. data/lib/xero-ruby/models/finance/cash_balance.rb +242 -0
  70. data/lib/xero-ruby/models/finance/cash_validation_response.rb +262 -0
  71. data/lib/xero-ruby/models/finance/cashflow_account.rb +282 -0
  72. data/lib/xero-ruby/models/finance/cashflow_activity.rb +244 -0
  73. data/lib/xero-ruby/models/finance/cashflow_response.rb +254 -0
  74. data/lib/xero-ruby/models/finance/cashflow_type.rb +244 -0
  75. data/lib/xero-ruby/models/finance/contact_detail.rb +274 -0
  76. data/lib/xero-ruby/models/finance/contact_response.rb +232 -0
  77. data/lib/xero-ruby/models/finance/contact_total_detail.rb +242 -0
  78. data/lib/xero-ruby/models/finance/contact_total_other.rb +252 -0
  79. data/lib/xero-ruby/models/finance/credit_note_response.rb +254 -0
  80. data/lib/xero-ruby/models/finance/current_statement_response.rb +272 -0
  81. data/lib/xero-ruby/models/finance/data_source_response.rb +362 -0
  82. data/lib/xero-ruby/models/finance/history_record_response.rb +262 -0
  83. data/lib/xero-ruby/models/finance/income_by_contact_response.rb +284 -0
  84. data/lib/xero-ruby/models/finance/invoice_response.rb +254 -0
  85. data/lib/xero-ruby/models/finance/line_item_response.rb +252 -0
  86. data/lib/xero-ruby/models/finance/lock_history_model.rb +242 -0
  87. data/lib/xero-ruby/models/finance/lock_history_response.rb +244 -0
  88. data/lib/xero-ruby/models/finance/manual_journal_total.rb +222 -0
  89. data/lib/xero-ruby/models/finance/overpayment_response.rb +254 -0
  90. data/lib/xero-ruby/models/finance/payment_response.rb +312 -0
  91. data/lib/xero-ruby/models/finance/pnl_account.rb +272 -0
  92. data/lib/xero-ruby/models/finance/pnl_account_class.rb +234 -0
  93. data/lib/xero-ruby/models/finance/pnl_account_type.rb +244 -0
  94. data/lib/xero-ruby/models/finance/practice_response.rb +262 -0
  95. data/lib/xero-ruby/models/finance/prepayment_response.rb +254 -0
  96. data/lib/xero-ruby/models/finance/problem.rb +252 -0
  97. data/lib/xero-ruby/models/finance/problem_type.rb +44 -0
  98. data/lib/xero-ruby/models/finance/profit_and_loss_response.rb +262 -0
  99. data/lib/xero-ruby/models/finance/report_history_model.rb +242 -0
  100. data/lib/xero-ruby/models/finance/report_history_response.rb +244 -0
  101. data/lib/xero-ruby/models/finance/statement_balance_response.rb +232 -0
  102. data/lib/xero-ruby/models/finance/statement_line_response.rb +346 -0
  103. data/lib/xero-ruby/models/finance/statement_lines_response.rb +382 -0
  104. data/lib/xero-ruby/models/finance/statement_response.rb +274 -0
  105. data/lib/xero-ruby/models/finance/total_detail.rb +242 -0
  106. data/lib/xero-ruby/models/finance/total_other.rb +242 -0
  107. data/lib/xero-ruby/models/finance/trial_balance_account.rb +312 -0
  108. data/lib/xero-ruby/models/finance/trial_balance_entry.rb +232 -0
  109. data/lib/xero-ruby/models/finance/trial_balance_movement.rb +252 -0
  110. data/lib/xero-ruby/models/finance/trial_balance_response.rb +244 -0
  111. data/lib/xero-ruby/models/finance/user_activities_response.rb +244 -0
  112. data/lib/xero-ruby/models/finance/user_response.rb +336 -0
  113. data/lib/xero-ruby/models/payroll_au/account_type.rb +23 -23
  114. data/lib/xero-ruby/models/payroll_au/allowance_category.rb +41 -0
  115. data/lib/xero-ruby/models/payroll_au/allowance_type.rb +10 -7
  116. data/lib/xero-ruby/models/payroll_au/calendar_type.rb +6 -6
  117. data/lib/xero-ruby/models/payroll_au/deduction_type.rb +3 -3
  118. data/lib/xero-ruby/models/payroll_au/deduction_type_calculation_type.rb +3 -3
  119. data/lib/xero-ruby/models/payroll_au/earnings_rate.rb +14 -4
  120. data/lib/xero-ruby/models/payroll_au/earnings_rate_calculation_type.rb +3 -3
  121. data/lib/xero-ruby/models/payroll_au/earnings_type.rb +12 -12
  122. data/lib/xero-ruby/models/payroll_au/employee.rb +11 -11
  123. data/lib/xero-ruby/models/payroll_au/employee_status.rb +2 -2
  124. data/lib/xero-ruby/models/payroll_au/employment_basis.rb +5 -5
  125. data/lib/xero-ruby/models/payroll_au/employment_termination_payment_type.rb +2 -2
  126. data/lib/xero-ruby/models/payroll_au/entitlement_final_pay_payout_type.rb +2 -2
  127. data/lib/xero-ruby/models/payroll_au/leave_line_calculation_type.rb +5 -5
  128. data/lib/xero-ruby/models/payroll_au/leave_period_status.rb +2 -2
  129. data/lib/xero-ruby/models/payroll_au/leave_type_contribution_type.rb +4 -4
  130. data/lib/xero-ruby/models/payroll_au/manual_tax_type.rb +6 -6
  131. data/lib/xero-ruby/models/payroll_au/pay_run_status.rb +2 -2
  132. data/lib/xero-ruby/models/payroll_au/payment_frequency_type.rb +7 -7
  133. data/lib/xero-ruby/models/payroll_au/rate_type.rb +3 -3
  134. data/lib/xero-ruby/models/payroll_au/residency_status.rb +3 -3
  135. data/lib/xero-ruby/models/payroll_au/state.rb +8 -8
  136. data/lib/xero-ruby/models/payroll_au/super_fund_type.rb +2 -2
  137. data/lib/xero-ruby/models/payroll_au/superannuation_calculation_type.rb +3 -3
  138. data/lib/xero-ruby/models/payroll_au/superannuation_contribution_type.rb +4 -4
  139. data/lib/xero-ruby/models/payroll_au/tfn_exemption_type.rb +4 -4
  140. data/lib/xero-ruby/models/payroll_au/timesheet_status.rb +5 -5
  141. data/lib/xero-ruby/models/payroll_nz/account.rb +4 -4
  142. data/lib/xero-ruby/models/payroll_nz/bank_account.rb +2 -2
  143. data/lib/xero-ruby/models/payroll_nz/benefit.rb +5 -5
  144. data/lib/xero-ruby/models/payroll_nz/calendar_type.rb +7 -7
  145. data/lib/xero-ruby/models/payroll_nz/deduction.rb +4 -4
  146. data/lib/xero-ruby/models/payroll_nz/earnings_rate.rb +18 -18
  147. data/lib/xero-ruby/models/payroll_nz/employee.rb +2 -2
  148. data/lib/xero-ruby/models/payroll_nz/employee_leave_type.rb +4 -4
  149. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_balance.rb +6 -6
  150. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_summary.rb +8 -8
  151. data/lib/xero-ruby/models/payroll_nz/employee_tax.rb +5 -5
  152. data/lib/xero-ruby/models/payroll_nz/leave_period.rb +2 -2
  153. data/lib/xero-ruby/models/payroll_nz/pay_run.rb +5 -5
  154. data/lib/xero-ruby/models/payroll_nz/pay_slip.rb +3 -3
  155. data/lib/xero-ruby/models/payroll_nz/payment_method.rb +3 -3
  156. data/lib/xero-ruby/models/payroll_nz/reimbursement.rb +8 -8
  157. data/lib/xero-ruby/models/payroll_nz/salary_and_wage.rb +5 -5
  158. data/lib/xero-ruby/models/payroll_nz/statutory_deduction_category.rb +11 -11
  159. data/lib/xero-ruby/models/payroll_nz/tax_code.rb +19 -19
  160. data/lib/xero-ruby/models/payroll_nz/tax_settings.rb +2 -2
  161. data/lib/xero-ruby/models/payroll_nz/timesheet.rb +4 -4
  162. data/lib/xero-ruby/models/payroll_uk/account.rb +7 -7
  163. data/lib/xero-ruby/models/payroll_uk/benefit.rb +4 -4
  164. data/lib/xero-ruby/models/payroll_uk/deduction.rb +12 -12
  165. data/lib/xero-ruby/models/payroll_uk/earnings_rate.rb +26 -26
  166. data/lib/xero-ruby/models/payroll_uk/employee.rb +16 -6
  167. data/lib/xero-ruby/models/payroll_uk/employee_leave_type.rb +4 -4
  168. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_balance.rb +6 -6
  169. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_summary.rb +8 -8
  170. data/lib/xero-ruby/models/payroll_uk/employment.rb +8 -8
  171. data/lib/xero-ruby/models/payroll_uk/leave_period.rb +2 -2
  172. data/lib/xero-ruby/models/payroll_uk/pay_run.rb +11 -11
  173. data/lib/xero-ruby/models/payroll_uk/pay_run_calendar.rb +6 -6
  174. data/lib/xero-ruby/models/payroll_uk/payment_method.rb +3 -3
  175. data/lib/xero-ruby/models/payroll_uk/payslip.rb +3 -3
  176. data/lib/xero-ruby/models/payroll_uk/salary_and_wage.rb +5 -5
  177. data/lib/xero-ruby/models/payroll_uk/statutory_deduction_category.rb +14 -14
  178. data/lib/xero-ruby/models/payroll_uk/timesheet.rb +3 -3
  179. data/lib/xero-ruby/models/projects/charge_type.rb +3 -3
  180. data/lib/xero-ruby/models/projects/currency_code.rb +164 -164
  181. data/lib/xero-ruby/models/projects/project_status.rb +2 -2
  182. data/lib/xero-ruby/models/projects/task.rb +3 -3
  183. data/lib/xero-ruby/models/projects/time_entry.rb +3 -3
  184. data/lib/xero-ruby/version.rb +2 -2
  185. data/lib/xero-ruby.rb +57 -0
  186. data/spec/api_client_spec.rb +3 -0
  187. data/spec/app_store/api/app_store_api_spec.rb +1 -1
  188. data/spec/configuration_spec.rb +1 -0
  189. data/spec/finance/api/finance_api_spec.rb +156 -0
  190. data/spec/finance/models/account_usage_response_spec.rb +58 -0
  191. data/spec/finance/models/account_usage_spec.rb +112 -0
  192. data/spec/finance/models/balance_sheet_account_detail_spec.rb +64 -0
  193. data/spec/finance/models/balance_sheet_account_group_spec.rb +46 -0
  194. data/spec/finance/models/balance_sheet_account_type_spec.rb +52 -0
  195. data/spec/finance/models/balance_sheet_response_spec.rb +58 -0
  196. data/spec/finance/models/bank_statement_response_spec.rb +46 -0
  197. data/spec/finance/models/cash_account_response_spec.rb +64 -0
  198. data/spec/finance/models/cash_balance_spec.rb +52 -0
  199. data/spec/finance/models/cash_validation_response_spec.rb +64 -0
  200. data/spec/finance/models/cashflow_account_spec.rb +76 -0
  201. data/spec/finance/models/cashflow_activity_spec.rb +52 -0
  202. data/spec/finance/models/cashflow_response_spec.rb +58 -0
  203. data/spec/finance/models/cashflow_type_spec.rb +52 -0
  204. data/spec/finance/models/current_statement_response_spec.rb +70 -0
  205. data/spec/finance/models/data_source_response_spec.rb +124 -0
  206. data/spec/finance/models/history_record_response_spec.rb +64 -0
  207. data/spec/finance/models/lock_history_model_spec.rb +52 -0
  208. data/spec/finance/models/lock_history_response_spec.rb +52 -0
  209. data/spec/finance/models/pnl_account_class_spec.rb +46 -0
  210. data/spec/finance/models/pnl_account_spec.rb +70 -0
  211. data/spec/finance/models/pnl_account_type_spec.rb +52 -0
  212. data/spec/finance/models/practice_response_spec.rb +64 -0
  213. data/spec/finance/models/problem_spec.rb +58 -0
  214. data/spec/finance/models/problem_type_spec.rb +34 -0
  215. data/spec/finance/models/profit_and_loss_response_spec.rb +64 -0
  216. data/spec/finance/models/report_history_model_spec.rb +52 -0
  217. data/spec/finance/models/report_history_response_spec.rb +52 -0
  218. data/spec/finance/models/statement_balance_response_spec.rb +46 -0
  219. data/spec/finance/models/statement_lines_response_spec.rb +136 -0
  220. data/spec/finance/models/trial_balance_account_spec.rb +94 -0
  221. data/spec/finance/models/trial_balance_entry_spec.rb +46 -0
  222. data/spec/finance/models/trial_balance_movement_spec.rb +58 -0
  223. data/spec/finance/models/trial_balance_response_spec.rb +52 -0
  224. data/spec/finance/models/user_activities_response_spec.rb +52 -0
  225. data/spec/finance/models/user_response_spec.rb +106 -0
  226. metadata +133 -2
@@ -0,0 +1,272 @@
1
+ =begin
2
+ #Xero Accounting API
3
+
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
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::Accounting
16
+ require 'bigdecimal'
17
+
18
+ class LineItemItem
19
+ # User defined item code (max length = 30)
20
+ attr_accessor :code
21
+
22
+ # The name of the item (max length = 50)
23
+ attr_accessor :name
24
+
25
+ # The Xero identifier for an Item
26
+ attr_accessor :item_id
27
+
28
+ # Attribute mapping from ruby-style variable name to JSON key.
29
+ def self.attribute_map
30
+ {
31
+ :'code' => :'Code',
32
+ :'name' => :'Name',
33
+ :'item_id' => :'ItemID'
34
+ }
35
+ end
36
+
37
+ # Attribute type mapping.
38
+ def self.openapi_types
39
+ {
40
+ :'code' => :'String',
41
+ :'name' => :'String',
42
+ :'item_id' => :'String'
43
+ }
44
+ end
45
+
46
+ # Initializes the object
47
+ # @param [Hash] attributes Model attributes in the form of hash
48
+ def initialize(attributes = {})
49
+ if (!attributes.is_a?(Hash))
50
+ fail ArgumentError, "The input argument (attributes) must be a hash in `XeroRuby::Accounting::LineItemItem` initialize method"
51
+ end
52
+
53
+ # check to see if the attribute exists and convert string to symbol for hash key
54
+ attributes = attributes.each_with_object({}) { |(k, v), h|
55
+ if (!self.class.attribute_map.key?(k.to_sym))
56
+ fail ArgumentError, "`#{k}` is not a valid attribute in `XeroRuby::Accounting::LineItemItem`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
57
+ end
58
+ h[k.to_sym] = v
59
+ }
60
+
61
+ if attributes.key?(:'code')
62
+ self.code = attributes[:'code']
63
+ end
64
+
65
+ if attributes.key?(:'name')
66
+ self.name = attributes[:'name']
67
+ end
68
+
69
+ if attributes.key?(:'item_id')
70
+ self.item_id = attributes[:'item_id']
71
+ end
72
+ end
73
+
74
+ # Show invalid properties with the reasons. Usually used together with valid?
75
+ # @return Array for valid properties with the reasons
76
+ def list_invalid_properties
77
+ invalid_properties = Array.new
78
+ if !@code.nil? && @code.to_s.length > 30
79
+ invalid_properties.push('invalid value for "code", the character length must be smaller than or equal to 30.')
80
+ end
81
+
82
+ if !@name.nil? && @name.to_s.length > 50
83
+ invalid_properties.push('invalid value for "name", the character length must be smaller than or equal to 50.')
84
+ end
85
+
86
+ invalid_properties
87
+ end
88
+
89
+ # Check to see if the all the properties in the model are valid
90
+ # @return true if the model is valid
91
+ def valid?
92
+ return false if !@code.nil? && @code.to_s.length > 30
93
+ return false if !@name.nil? && @name.to_s.length > 50
94
+ true
95
+ end
96
+
97
+ # Custom attribute writer method with validation
98
+ # @param [Object] code Value to be assigned
99
+ def code=(code)
100
+ if !code.nil? && code.to_s.length > 30
101
+ fail ArgumentError, 'invalid value for "code", the character length must be smaller than or equal to 30.'
102
+ end
103
+
104
+ @code = code
105
+ end
106
+
107
+ # Custom attribute writer method with validation
108
+ # @param [Object] name Value to be assigned
109
+ def name=(name)
110
+ if !name.nil? && name.to_s.length > 50
111
+ fail ArgumentError, 'invalid value for "name", the character length must be smaller than or equal to 50.'
112
+ end
113
+
114
+ @name = name
115
+ end
116
+
117
+ # Checks equality by comparing each attribute.
118
+ # @param [Object] Object to be compared
119
+ def ==(o)
120
+ return true if self.equal?(o)
121
+ self.class == o.class &&
122
+ code == o.code &&
123
+ name == o.name &&
124
+ item_id == o.item_id
125
+ end
126
+
127
+ # @see the `==` method
128
+ # @param [Object] Object to be compared
129
+ def eql?(o)
130
+ self == o
131
+ end
132
+
133
+ # Calculates hash code according to all attributes.
134
+ # @return [Integer] Hash code
135
+ def hash
136
+ [code, name, item_id].hash
137
+ end
138
+
139
+ # Builds the object from hash
140
+ # @param [Hash] attributes Model attributes in the form of hash
141
+ # @return [Object] Returns the model itself
142
+ def self.build_from_hash(attributes)
143
+ new.build_from_hash(attributes)
144
+ end
145
+
146
+ # Builds the object from hash
147
+ # @param [Hash] attributes Model attributes in the form of hash
148
+ # @return [Object] Returns the model itself
149
+ def build_from_hash(attributes)
150
+ return nil unless attributes.is_a?(Hash)
151
+ self.class.openapi_types.each_pair do |key, type|
152
+ if type =~ /\AArray<(.*)>/i
153
+ # check to ensure the input is an array given that the attribute
154
+ # is documented as an array but the input is not
155
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
156
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
157
+ end
158
+ elsif !attributes[self.class.attribute_map[key]].nil?
159
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
160
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
161
+ end
162
+
163
+ self
164
+ end
165
+
166
+ # Deserializes the data based on type
167
+ # @param string type Data type
168
+ # @param string value Value to be deserialized
169
+ # @return [Object] Deserialized data
170
+ def _deserialize(type, value)
171
+ case type.to_sym
172
+ when :DateTime
173
+ DateTime.parse(parse_date(value))
174
+ when :Date
175
+ Date.parse(parse_date(value))
176
+ when :String
177
+ value.to_s
178
+ when :Integer
179
+ value.to_i
180
+ when :Float
181
+ value.to_f
182
+ when :BigDecimal
183
+ BigDecimal(value.to_s)
184
+ when :Boolean
185
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
186
+ true
187
+ else
188
+ false
189
+ end
190
+ when :Object
191
+ # generic object (usually a Hash), return directly
192
+ value
193
+ when /\AArray<(?<inner_type>.+)>\z/
194
+ inner_type = Regexp.last_match[:inner_type]
195
+ value.map { |v| _deserialize(inner_type, v) }
196
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
197
+ k_type = Regexp.last_match[:k_type]
198
+ v_type = Regexp.last_match[:v_type]
199
+ {}.tap do |hash|
200
+ value.each do |k, v|
201
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
202
+ end
203
+ end
204
+ else # model
205
+ XeroRuby::Accounting.const_get(type).build_from_hash(value)
206
+ end
207
+ end
208
+
209
+ # Returns the string representation of the object
210
+ # @return [String] String presentation of the object
211
+ def to_s
212
+ to_hash.to_s
213
+ end
214
+
215
+ # to_body is an alias to to_hash (backward compatibility)
216
+ # @return [Hash] Returns the object in the form of hash
217
+ def to_body
218
+ to_hash
219
+ end
220
+
221
+ # Returns the object in the form of hash
222
+ # @return [Hash] Returns the object in the form of hash
223
+ def to_hash(downcase: false)
224
+ hash = {}
225
+ self.class.attribute_map.each_pair do |attr, param|
226
+ value = self.send(attr)
227
+ next if value.nil?
228
+ key = downcase ? attr : param
229
+ hash[key] = _to_hash(value, downcase: downcase)
230
+ end
231
+ hash
232
+ end
233
+
234
+ # Returns the object in the form of hash with snake_case
235
+ def to_attributes
236
+ to_hash(downcase: true)
237
+ end
238
+
239
+ # Outputs non-array value in the form of hash
240
+ # For object, use to_hash. Otherwise, just return the value
241
+ # @param [Object] value Any valid value
242
+ # @return [Hash] Returns the value in the form of hash
243
+ def _to_hash(value, downcase: false)
244
+ if value.is_a?(Array)
245
+ value.map do |v|
246
+ v.to_hash(downcase: downcase)
247
+ end
248
+ elsif value.is_a?(Hash)
249
+ {}.tap do |hash|
250
+ value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
251
+ end
252
+ elsif value.respond_to? :to_hash
253
+ value.to_hash(downcase: downcase)
254
+ else
255
+ value
256
+ end
257
+ end
258
+
259
+ def parse_date(datestring)
260
+ if datestring.include?('Date')
261
+ date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
262
+ original, date, timezone = *date_pattern.match(datestring)
263
+ date = (date.to_i / 1000)
264
+ Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
265
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
266
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
267
+ else # handle date 'types' for small subset of payroll API's
268
+ Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
269
+ end
270
+ end
271
+ end
272
+ end
@@ -36,23 +36,23 @@ module XeroRuby::Accounting
36
36
 
37
37
  # Filter by the combination of ContactID and Status. Get all the linked transactions that have been assigned to a particular customer and have a particular status e.g. GET /LinkedTransactions?ContactID=4bb34b03-3378-4bb2-a0ed-6345abf3224e&Status=APPROVED.
38
38
  attr_accessor :status
39
- APPROVED = "APPROVED".freeze
40
- DRAFT = "DRAFT".freeze
41
- ONDRAFT = "ONDRAFT".freeze
42
- BILLED = "BILLED".freeze
43
- VOIDED = "VOIDED".freeze
39
+ APPROVED ||= "APPROVED".freeze
40
+ DRAFT ||= "DRAFT".freeze
41
+ ONDRAFT ||= "ONDRAFT".freeze
42
+ BILLED ||= "BILLED".freeze
43
+ VOIDED ||= "VOIDED".freeze
44
44
 
45
45
  # This will always be BILLABLEEXPENSE. More types may be added in future.
46
46
  attr_accessor :type
47
- BILLABLEEXPENSE = "BILLABLEEXPENSE".freeze
47
+ BILLABLEEXPENSE ||= "BILLABLEEXPENSE".freeze
48
48
 
49
49
  # The last modified date in UTC format
50
50
  attr_accessor :updated_date_utc
51
51
 
52
52
  # The Type of the source tranasction. This will be ACCPAY if the linked transaction was created from an invoice and SPEND if it was created from a bank transaction.
53
53
  attr_accessor :source_transaction_type_code
54
- ACCPAY = "ACCPAY".freeze
55
- SPEND = "SPEND".freeze
54
+ ACCPAY ||= "ACCPAY".freeze
55
+ SPEND ||= "SPEND".freeze
56
56
 
57
57
  # Displays array of validation error messages from the API
58
58
  attr_accessor :validation_errors
@@ -30,11 +30,11 @@ module XeroRuby::Accounting
30
30
 
31
31
  # See Manual Journal Status Codes
32
32
  attr_accessor :status
33
- DRAFT = "DRAFT".freeze
34
- POSTED = "POSTED".freeze
35
- DELETED = "DELETED".freeze
36
- VOIDED = "VOIDED".freeze
37
- ARCHIVED = "ARCHIVED".freeze
33
+ DRAFT ||= "DRAFT".freeze
34
+ POSTED ||= "POSTED".freeze
35
+ DELETED ||= "DELETED".freeze
36
+ VOIDED ||= "VOIDED".freeze
37
+ ARCHIVED ||= "ARCHIVED".freeze
38
38
 
39
39
  # Url link to a source document – shown as “Go to [appName]” in the Xero app
40
40
  attr_accessor :url
@@ -33,31 +33,31 @@ module XeroRuby::Accounting
33
33
 
34
34
  # See Version Types
35
35
  attr_accessor :version
36
- AU = "AU".freeze
37
- NZ = "NZ".freeze
38
- GLOBAL = "GLOBAL".freeze
39
- UK = "UK".freeze
40
- US = "US".freeze
41
- AUONRAMP = "AUONRAMP".freeze
42
- NZONRAMP = "NZONRAMP".freeze
43
- GLOBALONRAMP = "GLOBALONRAMP".freeze
44
- UKONRAMP = "UKONRAMP".freeze
45
- USONRAMP = "USONRAMP".freeze
36
+ AU ||= "AU".freeze
37
+ NZ ||= "NZ".freeze
38
+ GLOBAL ||= "GLOBAL".freeze
39
+ UK ||= "UK".freeze
40
+ US ||= "US".freeze
41
+ AUONRAMP ||= "AUONRAMP".freeze
42
+ NZONRAMP ||= "NZONRAMP".freeze
43
+ GLOBALONRAMP ||= "GLOBALONRAMP".freeze
44
+ UKONRAMP ||= "UKONRAMP".freeze
45
+ USONRAMP ||= "USONRAMP".freeze
46
46
 
47
47
  # Organisation Type
48
48
  attr_accessor :organisation_type
49
- ACCOUNTING_PRACTICE = "ACCOUNTING_PRACTICE".freeze
50
- COMPANY = "COMPANY".freeze
51
- CHARITY = "CHARITY".freeze
52
- CLUB_OR_SOCIETY = "CLUB_OR_SOCIETY".freeze
53
- LOOK_THROUGH_COMPANY = "LOOK_THROUGH_COMPANY".freeze
54
- NOT_FOR_PROFIT = "NOT_FOR_PROFIT".freeze
55
- PARTNERSHIP = "PARTNERSHIP".freeze
56
- S_CORPORATION = "S_CORPORATION".freeze
57
- SELF_MANAGED_SUPERANNUATION_FUND = "SELF_MANAGED_SUPERANNUATION_FUND".freeze
58
- SOLE_TRADER = "SOLE_TRADER".freeze
59
- SUPERANNUATION_FUND = "SUPERANNUATION_FUND".freeze
60
- TRUST = "TRUST".freeze
49
+ ACCOUNTING_PRACTICE ||= "ACCOUNTING_PRACTICE".freeze
50
+ COMPANY ||= "COMPANY".freeze
51
+ CHARITY ||= "CHARITY".freeze
52
+ CLUB_OR_SOCIETY ||= "CLUB_OR_SOCIETY".freeze
53
+ LOOK_THROUGH_COMPANY ||= "LOOK_THROUGH_COMPANY".freeze
54
+ NOT_FOR_PROFIT ||= "NOT_FOR_PROFIT".freeze
55
+ PARTNERSHIP ||= "PARTNERSHIP".freeze
56
+ S_CORPORATION ||= "S_CORPORATION".freeze
57
+ SELF_MANAGED_SUPERANNUATION_FUND ||= "SELF_MANAGED_SUPERANNUATION_FUND".freeze
58
+ SOLE_TRADER ||= "SOLE_TRADER".freeze
59
+ SUPERANNUATION_FUND ||= "SUPERANNUATION_FUND".freeze
60
+ TRUST ||= "TRUST".freeze
61
61
 
62
62
 
63
63
  attr_accessor :base_currency
@@ -88,32 +88,32 @@ module XeroRuby::Accounting
88
88
 
89
89
  # The accounting basis used for tax returns. See Sales Tax Basis
90
90
  attr_accessor :sales_tax_basis
91
- PAYMENTS = "PAYMENTS".freeze
92
- INVOICE = "INVOICE".freeze
93
- NONE = "NONE".freeze
94
- CASH = "CASH".freeze
95
- ACCRUAL = "ACCRUAL".freeze
96
- FLATRATECASH = "FLATRATECASH".freeze
97
- FLATRATEACCRUAL = "FLATRATEACCRUAL".freeze
98
- ACCRUALS = "ACCRUALS".freeze
91
+ PAYMENTS ||= "PAYMENTS".freeze
92
+ INVOICE ||= "INVOICE".freeze
93
+ NONE ||= "NONE".freeze
94
+ CASH ||= "CASH".freeze
95
+ ACCRUAL ||= "ACCRUAL".freeze
96
+ FLATRATECASH ||= "FLATRATECASH".freeze
97
+ FLATRATEACCRUAL ||= "FLATRATEACCRUAL".freeze
98
+ ACCRUALS ||= "ACCRUALS".freeze
99
99
 
100
100
  # The frequency with which tax returns are processed. See Sales Tax Period
101
101
  attr_accessor :sales_tax_period
102
- MONTHLY = "MONTHLY".freeze
103
- QUARTERLY1 = "QUARTERLY1".freeze
104
- QUARTERLY2 = "QUARTERLY2".freeze
105
- QUARTERLY3 = "QUARTERLY3".freeze
106
- ANNUALLY = "ANNUALLY".freeze
107
- ONEMONTHS = "ONEMONTHS".freeze
108
- TWOMONTHS = "TWOMONTHS".freeze
109
- SIXMONTHS = "SIXMONTHS".freeze
110
- N1_MONTHLY = "1MONTHLY".freeze
111
- N2_MONTHLY = "2MONTHLY".freeze
112
- N3_MONTHLY = "3MONTHLY".freeze
113
- N6_MONTHLY = "6MONTHLY".freeze
114
- QUARTERLY = "QUARTERLY".freeze
115
- YEARLY = "YEARLY".freeze
116
- # NONE = "NONE".freeze
102
+ MONTHLY ||= "MONTHLY".freeze
103
+ QUARTERLY1 ||= "QUARTERLY1".freeze
104
+ QUARTERLY2 ||= "QUARTERLY2".freeze
105
+ QUARTERLY3 ||= "QUARTERLY3".freeze
106
+ ANNUALLY ||= "ANNUALLY".freeze
107
+ ONEMONTHS ||= "ONEMONTHS".freeze
108
+ TWOMONTHS ||= "TWOMONTHS".freeze
109
+ SIXMONTHS ||= "SIXMONTHS".freeze
110
+ N1_MONTHLY ||= "1MONTHLY".freeze
111
+ N2_MONTHLY ||= "2MONTHLY".freeze
112
+ N3_MONTHLY ||= "3MONTHLY".freeze
113
+ N6_MONTHLY ||= "6MONTHLY".freeze
114
+ QUARTERLY ||= "QUARTERLY".freeze
115
+ YEARLY ||= "YEARLY".freeze
116
+ NONE ||= "NONE".freeze
117
117
 
118
118
  # The default for LineAmountTypes on sales transactions
119
119
  attr_accessor :default_sales_tax
@@ -135,40 +135,40 @@ module XeroRuby::Accounting
135
135
 
136
136
  # Organisation Entity Type
137
137
  attr_accessor :organisation_entity_type
138
- # ACCOUNTING_PRACTICE = "ACCOUNTING_PRACTICE".freeze
139
- # COMPANY = "COMPANY".freeze
140
- # CHARITY = "CHARITY".freeze
141
- # CLUB_OR_SOCIETY = "CLUB_OR_SOCIETY".freeze
142
- # LOOK_THROUGH_COMPANY = "LOOK_THROUGH_COMPANY".freeze
143
- # NOT_FOR_PROFIT = "NOT_FOR_PROFIT".freeze
144
- # PARTNERSHIP = "PARTNERSHIP".freeze
145
- # S_CORPORATION = "S_CORPORATION".freeze
146
- # SELF_MANAGED_SUPERANNUATION_FUND = "SELF_MANAGED_SUPERANNUATION_FUND".freeze
147
- # SOLE_TRADER = "SOLE_TRADER".freeze
148
- # SUPERANNUATION_FUND = "SUPERANNUATION_FUND".freeze
149
- # TRUST = "TRUST".freeze
138
+ ACCOUNTING_PRACTICE ||= "ACCOUNTING_PRACTICE".freeze
139
+ COMPANY ||= "COMPANY".freeze
140
+ CHARITY ||= "CHARITY".freeze
141
+ CLUB_OR_SOCIETY ||= "CLUB_OR_SOCIETY".freeze
142
+ LOOK_THROUGH_COMPANY ||= "LOOK_THROUGH_COMPANY".freeze
143
+ NOT_FOR_PROFIT ||= "NOT_FOR_PROFIT".freeze
144
+ PARTNERSHIP ||= "PARTNERSHIP".freeze
145
+ S_CORPORATION ||= "S_CORPORATION".freeze
146
+ SELF_MANAGED_SUPERANNUATION_FUND ||= "SELF_MANAGED_SUPERANNUATION_FUND".freeze
147
+ SOLE_TRADER ||= "SOLE_TRADER".freeze
148
+ SUPERANNUATION_FUND ||= "SUPERANNUATION_FUND".freeze
149
+ TRUST ||= "TRUST".freeze
150
150
 
151
151
  # A unique identifier for the organisation. Potential uses.
152
152
  attr_accessor :short_code
153
153
 
154
154
  # Organisation Classes describe which plan the Xero organisation is on (e.g. DEMO, TRIAL, PREMIUM)
155
155
  attr_accessor :_class
156
- DEMO = "DEMO".freeze
157
- TRIAL = "TRIAL".freeze
158
- STARTER = "STARTER".freeze
159
- STANDARD = "STANDARD".freeze
160
- PREMIUM = "PREMIUM".freeze
161
- PREMIUM_20 = "PREMIUM_20".freeze
162
- PREMIUM_50 = "PREMIUM_50".freeze
163
- PREMIUM_100 = "PREMIUM_100".freeze
164
- LEDGER = "LEDGER".freeze
165
- GST_CASHBOOK = "GST_CASHBOOK".freeze
166
- NON_GST_CASHBOOK = "NON_GST_CASHBOOK".freeze
156
+ DEMO ||= "DEMO".freeze
157
+ TRIAL ||= "TRIAL".freeze
158
+ STARTER ||= "STARTER".freeze
159
+ STANDARD ||= "STANDARD".freeze
160
+ PREMIUM ||= "PREMIUM".freeze
161
+ PREMIUM_20 ||= "PREMIUM_20".freeze
162
+ PREMIUM_50 ||= "PREMIUM_50".freeze
163
+ PREMIUM_100 ||= "PREMIUM_100".freeze
164
+ LEDGER ||= "LEDGER".freeze
165
+ GST_CASHBOOK ||= "GST_CASHBOOK".freeze
166
+ NON_GST_CASHBOOK ||= "NON_GST_CASHBOOK".freeze
167
167
 
168
168
  # BUSINESS or PARTNER. Partner edition organisations are sold exclusively through accounting partners and have restricted functionality (e.g. no access to invoicing)
169
169
  attr_accessor :edition
170
- BUSINESS = "BUSINESS".freeze
171
- PARTNER = "PARTNER".freeze
170
+ BUSINESS ||= "BUSINESS".freeze
171
+ PARTNER ||= "PARTNER".freeze
172
172
 
173
173
  # Description of business type as defined in Organisation settings
174
174
  attr_accessor :line_of_business
@@ -18,9 +18,9 @@ module XeroRuby::Accounting
18
18
  class Overpayment
19
19
  # See Overpayment Types
20
20
  attr_accessor :type
21
- RECEIVE_OVERPAYMENT = "RECEIVE-OVERPAYMENT".freeze
22
- SPEND_OVERPAYMENT = "SPEND-OVERPAYMENT".freeze
23
- AROVERPAYMENT = "AROVERPAYMENT".freeze
21
+ RECEIVE_OVERPAYMENT ||= "RECEIVE-OVERPAYMENT".freeze
22
+ SPEND_OVERPAYMENT ||= "SPEND-OVERPAYMENT".freeze
23
+ AROVERPAYMENT ||= "AROVERPAYMENT".freeze
24
24
 
25
25
 
26
26
  attr_accessor :contact
@@ -30,9 +30,9 @@ module XeroRuby::Accounting
30
30
 
31
31
  # See Overpayment Status Codes
32
32
  attr_accessor :status
33
- AUTHORISED = "AUTHORISED".freeze
34
- PAID = "PAID".freeze
35
- VOIDED = "VOIDED".freeze
33
+ AUTHORISED ||= "AUTHORISED".freeze
34
+ PAID ||= "PAID".freeze
35
+ VOIDED ||= "VOIDED".freeze
36
36
 
37
37
 
38
38
  attr_accessor :line_amount_types
@@ -60,19 +60,19 @@ module XeroRuby::Accounting
60
60
 
61
61
  # The status of the payment.
62
62
  attr_accessor :status
63
- AUTHORISED = "AUTHORISED".freeze
64
- DELETED = "DELETED".freeze
63
+ AUTHORISED ||= "AUTHORISED".freeze
64
+ DELETED ||= "DELETED".freeze
65
65
 
66
66
  # See Payment Types.
67
67
  attr_accessor :payment_type
68
- ACCRECPAYMENT = "ACCRECPAYMENT".freeze
69
- ACCPAYPAYMENT = "ACCPAYPAYMENT".freeze
70
- ARCREDITPAYMENT = "ARCREDITPAYMENT".freeze
71
- APCREDITPAYMENT = "APCREDITPAYMENT".freeze
72
- AROVERPAYMENTPAYMENT = "AROVERPAYMENTPAYMENT".freeze
73
- ARPREPAYMENTPAYMENT = "ARPREPAYMENTPAYMENT".freeze
74
- APPREPAYMENTPAYMENT = "APPREPAYMENTPAYMENT".freeze
75
- APOVERPAYMENTPAYMENT = "APOVERPAYMENTPAYMENT".freeze
68
+ ACCRECPAYMENT ||= "ACCRECPAYMENT".freeze
69
+ ACCPAYPAYMENT ||= "ACCPAYPAYMENT".freeze
70
+ ARCREDITPAYMENT ||= "ARCREDITPAYMENT".freeze
71
+ APCREDITPAYMENT ||= "APCREDITPAYMENT".freeze
72
+ AROVERPAYMENTPAYMENT ||= "AROVERPAYMENTPAYMENT".freeze
73
+ ARPREPAYMENTPAYMENT ||= "ARPREPAYMENTPAYMENT".freeze
74
+ APPREPAYMENTPAYMENT ||= "APPREPAYMENTPAYMENT".freeze
75
+ APOVERPAYMENTPAYMENT ||= "APOVERPAYMENTPAYMENT".freeze
76
76
 
77
77
  # UTC timestamp of last update to the payment
78
78
  attr_accessor :updated_date_utc
@@ -14,10 +14,10 @@ require 'date'
14
14
 
15
15
  module XeroRuby::Accounting
16
16
  class PaymentTermType
17
- DAYSAFTERBILLDATE = "DAYSAFTERBILLDATE".freeze
18
- DAYSAFTERBILLMONTH = "DAYSAFTERBILLMONTH".freeze
19
- OFCURRENTMONTH = "OFCURRENTMONTH".freeze
20
- OFFOLLOWINGMONTH = "OFFOLLOWINGMONTH".freeze
17
+ DAYSAFTERBILLDATE ||= "DAYSAFTERBILLDATE".freeze
18
+ DAYSAFTERBILLMONTH ||= "DAYSAFTERBILLMONTH".freeze
19
+ OFCURRENTMONTH ||= "OFCURRENTMONTH".freeze
20
+ OFFOLLOWINGMONTH ||= "OFFOLLOWINGMONTH".freeze
21
21
 
22
22
  # Builds the enum from string
23
23
  # @param [String] The enum value in the form of the string
@@ -18,11 +18,11 @@ module XeroRuby::Accounting
18
18
  class Phone
19
19
 
20
20
  attr_accessor :phone_type
21
- DEFAULT = "DEFAULT".freeze
22
- DDI = "DDI".freeze
23
- MOBILE = "MOBILE".freeze
24
- FAX = "FAX".freeze
25
- OFFICE = "OFFICE".freeze
21
+ DEFAULT ||= "DEFAULT".freeze
22
+ DDI ||= "DDI".freeze
23
+ MOBILE ||= "MOBILE".freeze
24
+ FAX ||= "FAX".freeze
25
+ OFFICE ||= "OFFICE".freeze
26
26
 
27
27
  # max length = 50
28
28
  attr_accessor :phone_number
@@ -18,10 +18,10 @@ module XeroRuby::Accounting
18
18
  class Prepayment
19
19
  # See Prepayment Types
20
20
  attr_accessor :type
21
- RECEIVE_PREPAYMENT = "RECEIVE-PREPAYMENT".freeze
22
- SPEND_PREPAYMENT = "SPEND-PREPAYMENT".freeze
23
- ARPREPAYMENT = "ARPREPAYMENT".freeze
24
- APPREPAYMENT = "APPREPAYMENT".freeze
21
+ RECEIVE_PREPAYMENT ||= "RECEIVE-PREPAYMENT".freeze
22
+ SPEND_PREPAYMENT ||= "SPEND-PREPAYMENT".freeze
23
+ ARPREPAYMENT ||= "ARPREPAYMENT".freeze
24
+ APPREPAYMENT ||= "APPREPAYMENT".freeze
25
25
 
26
26
 
27
27
  attr_accessor :contact
@@ -31,9 +31,9 @@ module XeroRuby::Accounting
31
31
 
32
32
  # See Prepayment Status Codes
33
33
  attr_accessor :status
34
- AUTHORISED = "AUTHORISED".freeze
35
- PAID = "PAID".freeze
36
- VOIDED = "VOIDED".freeze
34
+ AUTHORISED ||= "AUTHORISED".freeze
35
+ PAID ||= "PAID".freeze
36
+ VOIDED ||= "VOIDED".freeze
37
37
 
38
38
 
39
39
  attr_accessor :line_amount_types
@@ -45,11 +45,11 @@ module XeroRuby::Accounting
45
45
 
46
46
  # See Purchase Order Status Codes
47
47
  attr_accessor :status
48
- DRAFT = "DRAFT".freeze
49
- SUBMITTED = "SUBMITTED".freeze
50
- AUTHORISED = "AUTHORISED".freeze
51
- BILLED = "BILLED".freeze
52
- DELETED = "DELETED".freeze
48
+ DRAFT ||= "DRAFT".freeze
49
+ SUBMITTED ||= "SUBMITTED".freeze
50
+ AUTHORISED ||= "AUTHORISED".freeze
51
+ BILLED ||= "BILLED".freeze
52
+ DELETED ||= "DELETED".freeze
53
53
 
54
54
  # Boolean to set whether the purchase order should be marked as “sent”. This can be set only on purchase orders that have been approved or billed
55
55
  attr_accessor :sent_to_contact
@@ -14,9 +14,9 @@ require 'date'
14
14
 
15
15
  module XeroRuby::Accounting
16
16
  class QuoteLineAmountTypes
17
- EXCLUSIVE = "EXCLUSIVE".freeze
18
- INCLUSIVE = "INCLUSIVE".freeze
19
- NOTAX = "NOTAX".freeze
17
+ EXCLUSIVE ||= "EXCLUSIVE".freeze
18
+ INCLUSIVE ||= "INCLUSIVE".freeze
19
+ NOTAX ||= "NOTAX".freeze
20
20
 
21
21
  # Builds the enum from string
22
22
  # @param [String] The enum value in the form of the string
@@ -14,12 +14,12 @@ require 'date'
14
14
 
15
15
  module XeroRuby::Accounting
16
16
  class QuoteStatusCodes
17
- DRAFT = "DRAFT".freeze
18
- SENT = "SENT".freeze
19
- DECLINED = "DECLINED".freeze
20
- ACCEPTED = "ACCEPTED".freeze
21
- INVOICED = "INVOICED".freeze
22
- DELETED = "DELETED".freeze
17
+ DRAFT ||= "DRAFT".freeze
18
+ SENT ||= "SENT".freeze
19
+ DECLINED ||= "DECLINED".freeze
20
+ ACCEPTED ||= "ACCEPTED".freeze
21
+ INVOICED ||= "INVOICED".freeze
22
+ DELETED ||= "DELETED".freeze
23
23
 
24
24
  # Builds the enum from string
25
25
  # @param [String] The enum value in the form of the string