merge_ruby_client 2.0.0 → 2.1.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 (159) hide show
  1. checksums.yaml +4 -4
  2. data/lib/merge_ruby_client/accounting/accounting_periods/client.rb +2 -2
  3. data/lib/merge_ruby_client/accounting/accounts/client.rb +2 -2
  4. data/lib/merge_ruby_client/accounting/attachments/client.rb +2 -2
  5. data/lib/merge_ruby_client/accounting/audit_trail/client.rb +2 -2
  6. data/lib/merge_ruby_client/accounting/balance_sheets/client.rb +2 -2
  7. data/lib/merge_ruby_client/accounting/bank_feed_accounts/client.rb +2 -2
  8. data/lib/merge_ruby_client/accounting/bank_feed_transactions/client.rb +2 -2
  9. data/lib/merge_ruby_client/accounting/cash_flow_statements/client.rb +2 -2
  10. data/lib/merge_ruby_client/accounting/client.rb +7 -0
  11. data/lib/merge_ruby_client/accounting/company_info/client.rb +2 -2
  12. data/lib/merge_ruby_client/accounting/contacts/client.rb +173 -4
  13. data/lib/merge_ruby_client/accounting/credit_notes/client.rb +2 -2
  14. data/lib/merge_ruby_client/accounting/employees/client.rb +35 -8
  15. data/lib/merge_ruby_client/accounting/expense_reports/client.rb +765 -0
  16. data/lib/merge_ruby_client/accounting/expense_reports/types/expense_reports_lines_list_request_expand.rb +73 -0
  17. data/lib/merge_ruby_client/accounting/expense_reports/types/expense_reports_list_request_expand.rb +25 -0
  18. data/lib/merge_ruby_client/accounting/expense_reports/types/expense_reports_retrieve_request_expand.rb +25 -0
  19. data/lib/merge_ruby_client/accounting/expenses/client.rb +6 -6
  20. data/lib/merge_ruby_client/accounting/general_ledger_transactions/client.rb +2 -2
  21. data/lib/merge_ruby_client/accounting/income_statements/client.rb +2 -2
  22. data/lib/merge_ruby_client/accounting/invoices/client.rb +6 -6
  23. data/lib/merge_ruby_client/accounting/issues/client.rb +2 -2
  24. data/lib/merge_ruby_client/accounting/items/client.rb +2 -2
  25. data/lib/merge_ruby_client/accounting/journal_entries/client.rb +6 -6
  26. data/lib/merge_ruby_client/accounting/linked_accounts/client.rb +2 -2
  27. data/lib/merge_ruby_client/accounting/payment_methods/client.rb +2 -2
  28. data/lib/merge_ruby_client/accounting/payment_terms/client.rb +2 -2
  29. data/lib/merge_ruby_client/accounting/payments/client.rb +6 -6
  30. data/lib/merge_ruby_client/accounting/projects/client.rb +35 -8
  31. data/lib/merge_ruby_client/accounting/purchase_orders/client.rb +6 -6
  32. data/lib/merge_ruby_client/accounting/sync_status/client.rb +2 -2
  33. data/lib/merge_ruby_client/accounting/tax_rates/client.rb +2 -2
  34. data/lib/merge_ruby_client/accounting/tracking_categories/client.rb +2 -2
  35. data/lib/merge_ruby_client/accounting/transactions/client.rb +2 -2
  36. data/lib/merge_ruby_client/accounting/transactions/types/transactions_list_request_expand.rb +32 -0
  37. data/lib/merge_ruby_client/accounting/transactions/types/transactions_retrieve_request_expand.rb +32 -0
  38. data/lib/merge_ruby_client/accounting/types/expense_report.rb +869 -0
  39. data/lib/merge_ruby_client/accounting/types/expense_report_company.rb +56 -0
  40. data/lib/merge_ruby_client/accounting/types/expense_report_line.rb +921 -0
  41. data/lib/merge_ruby_client/accounting/types/expense_report_line_account.rb +55 -0
  42. data/lib/merge_ruby_client/accounting/types/expense_report_line_company.rb +56 -0
  43. data/lib/merge_ruby_client/accounting/types/expense_report_line_contact.rb +55 -0
  44. data/lib/merge_ruby_client/accounting/types/expense_report_line_employee.rb +57 -0
  45. data/lib/merge_ruby_client/accounting/types/expense_report_line_project.rb +55 -0
  46. data/lib/merge_ruby_client/accounting/types/expense_report_line_request.rb +899 -0
  47. data/lib/merge_ruby_client/accounting/types/expense_report_line_request_account.rb +55 -0
  48. data/lib/merge_ruby_client/accounting/types/expense_report_line_request_company.rb +56 -0
  49. data/lib/merge_ruby_client/accounting/types/expense_report_line_request_contact.rb +55 -0
  50. data/lib/merge_ruby_client/accounting/types/expense_report_line_request_employee.rb +57 -0
  51. data/lib/merge_ruby_client/accounting/types/expense_report_line_request_project.rb +55 -0
  52. data/lib/merge_ruby_client/accounting/types/expense_report_line_request_tax_rate.rb +55 -0
  53. data/lib/merge_ruby_client/accounting/types/expense_report_line_tax_rate.rb +55 -0
  54. data/lib/merge_ruby_client/accounting/types/expense_report_request.rb +819 -0
  55. data/lib/merge_ruby_client/accounting/types/expense_report_request_accounting_period.rb +56 -0
  56. data/lib/merge_ruby_client/accounting/types/expense_report_request_company.rb +56 -0
  57. data/lib/merge_ruby_client/accounting/types/expense_report_request_employee.rb +57 -0
  58. data/lib/merge_ruby_client/accounting/types/expense_report_response.rb +101 -0
  59. data/lib/merge_ruby_client/accounting/types/expense_report_status_enum.rb +16 -0
  60. data/lib/merge_ruby_client/accounting/types/external_target_field_api_response.rb +12 -1
  61. data/lib/merge_ruby_client/accounting/types/field_mapping_api_instance_response.rb +12 -1
  62. data/lib/merge_ruby_client/accounting/types/item.rb +18 -1
  63. data/lib/merge_ruby_client/accounting/types/paginated_expense_report_line_list.rb +80 -0
  64. data/lib/merge_ruby_client/accounting/types/paginated_expense_report_list.rb +80 -0
  65. data/lib/merge_ruby_client/accounting/types/patched_contact_request.rb +188 -0
  66. data/lib/merge_ruby_client/accounting/types/patched_contact_request_addresses_item.rb +55 -0
  67. data/lib/merge_ruby_client/accounting/types/remote_field_class.rb +9 -1
  68. data/lib/merge_ruby_client/accounting/vendor_credits/client.rb +2 -2
  69. data/lib/merge_ruby_client/ats/activities/client.rb +2 -2
  70. data/lib/merge_ruby_client/ats/applications/client.rb +2 -2
  71. data/lib/merge_ruby_client/ats/attachments/client.rb +2 -2
  72. data/lib/merge_ruby_client/ats/audit_trail/client.rb +2 -2
  73. data/lib/merge_ruby_client/ats/candidates/client.rb +2 -2
  74. data/lib/merge_ruby_client/ats/departments/client.rb +2 -2
  75. data/lib/merge_ruby_client/ats/eeocs/client.rb +2 -2
  76. data/lib/merge_ruby_client/ats/interviews/client.rb +2 -2
  77. data/lib/merge_ruby_client/ats/issues/client.rb +2 -2
  78. data/lib/merge_ruby_client/ats/job_interview_stages/client.rb +2 -2
  79. data/lib/merge_ruby_client/ats/job_postings/client.rb +2 -2
  80. data/lib/merge_ruby_client/ats/jobs/client.rb +4 -4
  81. data/lib/merge_ruby_client/ats/linked_accounts/client.rb +2 -2
  82. data/lib/merge_ruby_client/ats/offers/client.rb +2 -2
  83. data/lib/merge_ruby_client/ats/offices/client.rb +2 -2
  84. data/lib/merge_ruby_client/ats/reject_reasons/client.rb +2 -2
  85. data/lib/merge_ruby_client/ats/scorecards/client.rb +2 -2
  86. data/lib/merge_ruby_client/ats/sync_status/client.rb +2 -2
  87. data/lib/merge_ruby_client/ats/tags/client.rb +2 -2
  88. data/lib/merge_ruby_client/ats/types/event_type_enum.rb +1 -0
  89. data/lib/merge_ruby_client/ats/users/client.rb +2 -2
  90. data/lib/merge_ruby_client/crm/accounts/client.rb +4 -4
  91. data/lib/merge_ruby_client/crm/association_types/client.rb +2 -2
  92. data/lib/merge_ruby_client/crm/associations/client.rb +10 -2
  93. data/lib/merge_ruby_client/crm/audit_trail/client.rb +2 -2
  94. data/lib/merge_ruby_client/crm/contacts/client.rb +4 -4
  95. data/lib/merge_ruby_client/crm/custom_object_classes/client.rb +2 -2
  96. data/lib/merge_ruby_client/crm/custom_objects/client.rb +4 -4
  97. data/lib/merge_ruby_client/crm/engagement_types/client.rb +4 -4
  98. data/lib/merge_ruby_client/crm/engagements/client.rb +4 -4
  99. data/lib/merge_ruby_client/crm/issues/client.rb +2 -2
  100. data/lib/merge_ruby_client/crm/leads/client.rb +4 -4
  101. data/lib/merge_ruby_client/crm/linked_accounts/client.rb +2 -2
  102. data/lib/merge_ruby_client/crm/notes/client.rb +4 -4
  103. data/lib/merge_ruby_client/crm/opportunities/client.rb +4 -4
  104. data/lib/merge_ruby_client/crm/stages/client.rb +4 -4
  105. data/lib/merge_ruby_client/crm/sync_status/client.rb +2 -2
  106. data/lib/merge_ruby_client/crm/tasks/client.rb +4 -4
  107. data/lib/merge_ruby_client/crm/types/remote_field_class.rb +9 -1
  108. data/lib/merge_ruby_client/crm/users/client.rb +4 -4
  109. data/lib/merge_ruby_client/filestorage/audit_trail/client.rb +2 -2
  110. data/lib/merge_ruby_client/filestorage/drives/client.rb +2 -2
  111. data/lib/merge_ruby_client/filestorage/files/client.rb +28 -10
  112. data/lib/merge_ruby_client/filestorage/folders/client.rb +2 -2
  113. data/lib/merge_ruby_client/filestorage/groups/client.rb +2 -2
  114. data/lib/merge_ruby_client/filestorage/issues/client.rb +2 -2
  115. data/lib/merge_ruby_client/filestorage/linked_accounts/client.rb +2 -2
  116. data/lib/merge_ruby_client/filestorage/sync_status/client.rb +2 -2
  117. data/lib/merge_ruby_client/filestorage/users/client.rb +2 -2
  118. data/lib/merge_ruby_client/hris/audit_trail/client.rb +2 -2
  119. data/lib/merge_ruby_client/hris/bank_info/client.rb +2 -2
  120. data/lib/merge_ruby_client/hris/benefits/client.rb +2 -2
  121. data/lib/merge_ruby_client/hris/companies/client.rb +2 -2
  122. data/lib/merge_ruby_client/hris/dependents/client.rb +8 -4
  123. data/lib/merge_ruby_client/hris/employee_payroll_runs/client.rb +2 -2
  124. data/lib/merge_ruby_client/hris/employees/client.rb +8 -4
  125. data/lib/merge_ruby_client/hris/employer_benefits/client.rb +2 -2
  126. data/lib/merge_ruby_client/hris/employments/client.rb +2 -2
  127. data/lib/merge_ruby_client/hris/groups/client.rb +2 -2
  128. data/lib/merge_ruby_client/hris/issues/client.rb +2 -2
  129. data/lib/merge_ruby_client/hris/linked_accounts/client.rb +2 -2
  130. data/lib/merge_ruby_client/hris/locations/client.rb +2 -2
  131. data/lib/merge_ruby_client/hris/pay_groups/client.rb +2 -2
  132. data/lib/merge_ruby_client/hris/payroll_runs/client.rb +2 -2
  133. data/lib/merge_ruby_client/hris/sync_status/client.rb +2 -2
  134. data/lib/merge_ruby_client/hris/teams/client.rb +2 -2
  135. data/lib/merge_ruby_client/hris/time_off/client.rb +2 -2
  136. data/lib/merge_ruby_client/hris/time_off_balances/client.rb +2 -2
  137. data/lib/merge_ruby_client/hris/timesheet_entries/client.rb +2 -2
  138. data/lib/merge_ruby_client/hris/types/benefit.rb +9 -9
  139. data/lib/merge_ruby_client/ticketing/accounts/client.rb +2 -2
  140. data/lib/merge_ruby_client/ticketing/attachments/client.rb +2 -2
  141. data/lib/merge_ruby_client/ticketing/audit_trail/client.rb +2 -2
  142. data/lib/merge_ruby_client/ticketing/collections/client.rb +4 -4
  143. data/lib/merge_ruby_client/ticketing/comments/client.rb +2 -2
  144. data/lib/merge_ruby_client/ticketing/contacts/client.rb +2 -2
  145. data/lib/merge_ruby_client/ticketing/issues/client.rb +2 -2
  146. data/lib/merge_ruby_client/ticketing/linked_accounts/client.rb +2 -2
  147. data/lib/merge_ruby_client/ticketing/projects/client.rb +4 -4
  148. data/lib/merge_ruby_client/ticketing/roles/client.rb +2 -2
  149. data/lib/merge_ruby_client/ticketing/sync_status/client.rb +2 -2
  150. data/lib/merge_ruby_client/ticketing/tags/client.rb +2 -2
  151. data/lib/merge_ruby_client/ticketing/teams/client.rb +2 -2
  152. data/lib/merge_ruby_client/ticketing/tickets/client.rb +14 -10
  153. data/lib/merge_ruby_client/ticketing/types/patched_ticket_request.rb +9 -9
  154. data/lib/merge_ruby_client/ticketing/types/remote_field_class.rb +9 -1
  155. data/lib/merge_ruby_client/ticketing/users/client.rb +2 -2
  156. data/lib/merge_ruby_client.rb +7 -7
  157. data/lib/requests.rb +2 -2
  158. data/lib/types_export.rb +230 -201
  159. metadata +32 -2
@@ -0,0 +1,869 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "date"
4
+ require_relative "expense_report_status_enum"
5
+ require_relative "expense_report_line"
6
+ require_relative "transaction_currency_enum"
7
+ require_relative "expense_report_company"
8
+ require_relative "remote_data"
9
+ require_relative "remote_field"
10
+ require "ostruct"
11
+ require "json"
12
+
13
+ module Merge
14
+ module Accounting
15
+ # # The ExpenseReport Object
16
+ # ### Description
17
+ # The `ExpenseReport` object represents a collection of expenses submitted for
18
+ # review and reimbursement.
19
+ # It includes details about the submitter, status, amounts, and associated
20
+ # metadata.
21
+ # ### Usage Example
22
+ # Fetch from the `GET ExpenseReport` endpoint to view details of expense reports
23
+ # and their line items.
24
+ class ExpenseReport
25
+ # @return [String]
26
+ attr_reader :id
27
+ # @return [String] The third-party API ID of the matching object.
28
+ attr_reader :remote_id
29
+ # @return [DateTime] The datetime that this object was created by Merge.
30
+ attr_reader :created_at
31
+ # @return [DateTime] The datetime that this object was modified by Merge.
32
+ attr_reader :modified_at
33
+ # @return [DateTime] The date of the expense report.
34
+ attr_reader :report_date
35
+ # @return [String] Human-readable expense report identifier.
36
+ attr_reader :report_identifier
37
+ # @return [String] Identifier for the employee who submitted or is associated with the expense
38
+ # report
39
+ attr_reader :employee
40
+ # @return [Merge::Accounting::ExpenseReportStatusEnum] Overall status of the expense report. One of DRAFT, SUBMITTED, APPROVED,
41
+ # REJECTED
42
+ # * `DRAFT` - DRAFT
43
+ # * `SUBMITTED` - SUBMITTED
44
+ # * `APPROVED` - APPROVED
45
+ # * `REJECTED` - REJECTED
46
+ attr_reader :status
47
+ # @return [Float] Total amount of the expense report
48
+ attr_reader :total_amount
49
+ # @return [Array<Merge::Accounting::ExpenseReportLine>]
50
+ attr_reader :lines
51
+ # @return [Merge::Accounting::TransactionCurrencyEnum] Currency code for the expense report
52
+ # * `XUA` - ADB Unit of Account
53
+ # * `AFN` - Afghan Afghani
54
+ # * `AFA` - Afghan Afghani (1927–2002)
55
+ # * `ALL` - Albanian Lek
56
+ # * `ALK` - Albanian Lek (1946–1965)
57
+ # * `DZD` - Algerian Dinar
58
+ # * `ADP` - Andorran Peseta
59
+ # * `AOA` - Angolan Kwanza
60
+ # * `AOK` - Angolan Kwanza (1977–1991)
61
+ # * `AON` - Angolan New Kwanza (1990–2000)
62
+ # * `AOR` - Angolan Readjusted Kwanza (1995–1999)
63
+ # * `ARA` - Argentine Austral
64
+ # * `ARS` - Argentine Peso
65
+ # * `ARM` - Argentine Peso (1881–1970)
66
+ # * `ARP` - Argentine Peso (1983–1985)
67
+ # * `ARL` - Argentine Peso Ley (1970–1983)
68
+ # * `AMD` - Armenian Dram
69
+ # * `AWG` - Aruban Florin
70
+ # * `AUD` - Australian Dollar
71
+ # * `ATS` - Austrian Schilling
72
+ # * `AZN` - Azerbaijani Manat
73
+ # * `AZM` - Azerbaijani Manat (1993–2006)
74
+ # * `BSD` - Bahamian Dollar
75
+ # * `BHD` - Bahraini Dinar
76
+ # * `BDT` - Bangladeshi Taka
77
+ # * `BBD` - Barbadian Dollar
78
+ # * `BYN` - Belarusian Ruble
79
+ # * `BYB` - Belarusian Ruble (1994–1999)
80
+ # * `BYR` - Belarusian Ruble (2000–2016)
81
+ # * `BEF` - Belgian Franc
82
+ # * `BEC` - Belgian Franc (convertible)
83
+ # * `BEL` - Belgian Franc (financial)
84
+ # * `BZD` - Belize Dollar
85
+ # * `BMD` - Bermudan Dollar
86
+ # * `BTN` - Bhutanese Ngultrum
87
+ # * `BOB` - Bolivian Boliviano
88
+ # * `BOL` - Bolivian Boliviano (1863–1963)
89
+ # * `BOV` - Bolivian Mvdol
90
+ # * `BOP` - Bolivian Peso
91
+ # * `BAM` - Bosnia-Herzegovina Convertible Mark
92
+ # * `BAD` - Bosnia-Herzegovina Dinar (1992–1994)
93
+ # * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997)
94
+ # * `BWP` - Botswanan Pula
95
+ # * `BRC` - Brazilian Cruzado (1986–1989)
96
+ # * `BRZ` - Brazilian Cruzeiro (1942–1967)
97
+ # * `BRE` - Brazilian Cruzeiro (1990–1993)
98
+ # * `BRR` - Brazilian Cruzeiro (1993–1994)
99
+ # * `BRN` - Brazilian New Cruzado (1989–1990)
100
+ # * `BRB` - Brazilian New Cruzeiro (1967–1986)
101
+ # * `BRL` - Brazilian Real
102
+ # * `GBP` - British Pound
103
+ # * `BND` - Brunei Dollar
104
+ # * `BGL` - Bulgarian Hard Lev
105
+ # * `BGN` - Bulgarian Lev
106
+ # * `BGO` - Bulgarian Lev (1879–1952)
107
+ # * `BGM` - Bulgarian Socialist Lev
108
+ # * `BUK` - Burmese Kyat
109
+ # * `BIF` - Burundian Franc
110
+ # * `XPF` - CFP Franc
111
+ # * `KHR` - Cambodian Riel
112
+ # * `CAD` - Canadian Dollar
113
+ # * `CVE` - Cape Verdean Escudo
114
+ # * `KYD` - Cayman Islands Dollar
115
+ # * `XAF` - Central African CFA Franc
116
+ # * `CLE` - Chilean Escudo
117
+ # * `CLP` - Chilean Peso
118
+ # * `CLF` - Chilean Unit of Account (UF)
119
+ # * `CNX` - Chinese People’s Bank Dollar
120
+ # * `CNY` - Chinese Yuan
121
+ # * `CNH` - Chinese Yuan (offshore)
122
+ # * `COP` - Colombian Peso
123
+ # * `COU` - Colombian Real Value Unit
124
+ # * `KMF` - Comorian Franc
125
+ # * `CDF` - Congolese Franc
126
+ # * `CRC` - Costa Rican Colón
127
+ # * `HRD` - Croatian Dinar
128
+ # * `HRK` - Croatian Kuna
129
+ # * `CUC` - Cuban Convertible Peso
130
+ # * `CUP` - Cuban Peso
131
+ # * `CYP` - Cypriot Pound
132
+ # * `CZK` - Czech Koruna
133
+ # * `CSK` - Czechoslovak Hard Koruna
134
+ # * `DKK` - Danish Krone
135
+ # * `DJF` - Djiboutian Franc
136
+ # * `DOP` - Dominican Peso
137
+ # * `NLG` - Dutch Guilder
138
+ # * `XCD` - East Caribbean Dollar
139
+ # * `DDM` - East German Mark
140
+ # * `ECS` - Ecuadorian Sucre
141
+ # * `ECV` - Ecuadorian Unit of Constant Value
142
+ # * `EGP` - Egyptian Pound
143
+ # * `GQE` - Equatorial Guinean Ekwele
144
+ # * `ERN` - Eritrean Nakfa
145
+ # * `EEK` - Estonian Kroon
146
+ # * `ETB` - Ethiopian Birr
147
+ # * `EUR` - Euro
148
+ # * `XBA` - European Composite Unit
149
+ # * `XEU` - European Currency Unit
150
+ # * `XBB` - European Monetary Unit
151
+ # * `XBC` - European Unit of Account (XBC)
152
+ # * `XBD` - European Unit of Account (XBD)
153
+ # * `FKP` - Falkland Islands Pound
154
+ # * `FJD` - Fijian Dollar
155
+ # * `FIM` - Finnish Markka
156
+ # * `FRF` - French Franc
157
+ # * `XFO` - French Gold Franc
158
+ # * `XFU` - French UIC-Franc
159
+ # * `GMD` - Gambian Dalasi
160
+ # * `GEK` - Georgian Kupon Larit
161
+ # * `GEL` - Georgian Lari
162
+ # * `DEM` - German Mark
163
+ # * `GHS` - Ghanaian Cedi
164
+ # * `GHC` - Ghanaian Cedi (1979–2007)
165
+ # * `GIP` - Gibraltar Pound
166
+ # * `XAU` - Gold
167
+ # * `GRD` - Greek Drachma
168
+ # * `GTQ` - Guatemalan Quetzal
169
+ # * `GWP` - Guinea-Bissau Peso
170
+ # * `GNF` - Guinean Franc
171
+ # * `GNS` - Guinean Syli
172
+ # * `GYD` - Guyanaese Dollar
173
+ # * `HTG` - Haitian Gourde
174
+ # * `HNL` - Honduran Lempira
175
+ # * `HKD` - Hong Kong Dollar
176
+ # * `HUF` - Hungarian Forint
177
+ # * `IMP` - IMP
178
+ # * `ISK` - Icelandic Króna
179
+ # * `ISJ` - Icelandic Króna (1918–1981)
180
+ # * `INR` - Indian Rupee
181
+ # * `IDR` - Indonesian Rupiah
182
+ # * `IRR` - Iranian Rial
183
+ # * `IQD` - Iraqi Dinar
184
+ # * `IEP` - Irish Pound
185
+ # * `ILS` - Israeli New Shekel
186
+ # * `ILP` - Israeli Pound
187
+ # * `ILR` - Israeli Shekel (1980–1985)
188
+ # * `ITL` - Italian Lira
189
+ # * `JMD` - Jamaican Dollar
190
+ # * `JPY` - Japanese Yen
191
+ # * `JOD` - Jordanian Dinar
192
+ # * `KZT` - Kazakhstani Tenge
193
+ # * `KES` - Kenyan Shilling
194
+ # * `KWD` - Kuwaiti Dinar
195
+ # * `KGS` - Kyrgystani Som
196
+ # * `LAK` - Laotian Kip
197
+ # * `LVL` - Latvian Lats
198
+ # * `LVR` - Latvian Ruble
199
+ # * `LBP` - Lebanese Pound
200
+ # * `LSL` - Lesotho Loti
201
+ # * `LRD` - Liberian Dollar
202
+ # * `LYD` - Libyan Dinar
203
+ # * `LTL` - Lithuanian Litas
204
+ # * `LTT` - Lithuanian Talonas
205
+ # * `LUL` - Luxembourg Financial Franc
206
+ # * `LUC` - Luxembourgian Convertible Franc
207
+ # * `LUF` - Luxembourgian Franc
208
+ # * `MOP` - Macanese Pataca
209
+ # * `MKD` - Macedonian Denar
210
+ # * `MKN` - Macedonian Denar (1992–1993)
211
+ # * `MGA` - Malagasy Ariary
212
+ # * `MGF` - Malagasy Franc
213
+ # * `MWK` - Malawian Kwacha
214
+ # * `MYR` - Malaysian Ringgit
215
+ # * `MVR` - Maldivian Rufiyaa
216
+ # * `MVP` - Maldivian Rupee (1947–1981)
217
+ # * `MLF` - Malian Franc
218
+ # * `MTL` - Maltese Lira
219
+ # * `MTP` - Maltese Pound
220
+ # * `MRU` - Mauritanian Ouguiya
221
+ # * `MRO` - Mauritanian Ouguiya (1973–2017)
222
+ # * `MUR` - Mauritian Rupee
223
+ # * `MXV` - Mexican Investment Unit
224
+ # * `MXN` - Mexican Peso
225
+ # * `MXP` - Mexican Silver Peso (1861–1992)
226
+ # * `MDC` - Moldovan Cupon
227
+ # * `MDL` - Moldovan Leu
228
+ # * `MCF` - Monegasque Franc
229
+ # * `MNT` - Mongolian Tugrik
230
+ # * `MAD` - Moroccan Dirham
231
+ # * `MAF` - Moroccan Franc
232
+ # * `MZE` - Mozambican Escudo
233
+ # * `MZN` - Mozambican Metical
234
+ # * `MZM` - Mozambican Metical (1980–2006)
235
+ # * `MMK` - Myanmar Kyat
236
+ # * `NAD` - Namibian Dollar
237
+ # * `NPR` - Nepalese Rupee
238
+ # * `ANG` - Netherlands Antillean Guilder
239
+ # * `TWD` - New Taiwan Dollar
240
+ # * `NZD` - New Zealand Dollar
241
+ # * `NIO` - Nicaraguan Córdoba
242
+ # * `NIC` - Nicaraguan Córdoba (1988–1991)
243
+ # * `NGN` - Nigerian Naira
244
+ # * `KPW` - North Korean Won
245
+ # * `NOK` - Norwegian Krone
246
+ # * `OMR` - Omani Rial
247
+ # * `PKR` - Pakistani Rupee
248
+ # * `XPD` - Palladium
249
+ # * `PAB` - Panamanian Balboa
250
+ # * `PGK` - Papua New Guinean Kina
251
+ # * `PYG` - Paraguayan Guarani
252
+ # * `PEI` - Peruvian Inti
253
+ # * `PEN` - Peruvian Sol
254
+ # * `PES` - Peruvian Sol (1863–1965)
255
+ # * `PHP` - Philippine Peso
256
+ # * `XPT` - Platinum
257
+ # * `PLN` - Polish Zloty
258
+ # * `PLZ` - Polish Zloty (1950–1995)
259
+ # * `PTE` - Portuguese Escudo
260
+ # * `GWE` - Portuguese Guinea Escudo
261
+ # * `QAR` - Qatari Rial
262
+ # * `XRE` - RINET Funds
263
+ # * `RHD` - Rhodesian Dollar
264
+ # * `RON` - Romanian Leu
265
+ # * `ROL` - Romanian Leu (1952–2006)
266
+ # * `RUB` - Russian Ruble
267
+ # * `RUR` - Russian Ruble (1991–1998)
268
+ # * `RWF` - Rwandan Franc
269
+ # * `SVC` - Salvadoran Colón
270
+ # * `WST` - Samoan Tala
271
+ # * `SAR` - Saudi Riyal
272
+ # * `RSD` - Serbian Dinar
273
+ # * `CSD` - Serbian Dinar (2002–2006)
274
+ # * `SCR` - Seychellois Rupee
275
+ # * `SLL` - Sierra Leonean Leone
276
+ # * `XAG` - Silver
277
+ # * `SGD` - Singapore Dollar
278
+ # * `SKK` - Slovak Koruna
279
+ # * `SIT` - Slovenian Tolar
280
+ # * `SBD` - Solomon Islands Dollar
281
+ # * `SOS` - Somali Shilling
282
+ # * `ZAR` - South African Rand
283
+ # * `ZAL` - South African Rand (financial)
284
+ # * `KRH` - South Korean Hwan (1953–1962)
285
+ # * `KRW` - South Korean Won
286
+ # * `KRO` - South Korean Won (1945–1953)
287
+ # * `SSP` - South Sudanese Pound
288
+ # * `SUR` - Soviet Rouble
289
+ # * `ESP` - Spanish Peseta
290
+ # * `ESA` - Spanish Peseta (A account)
291
+ # * `ESB` - Spanish Peseta (convertible account)
292
+ # * `XDR` - Special Drawing Rights
293
+ # * `LKR` - Sri Lankan Rupee
294
+ # * `SHP` - St. Helena Pound
295
+ # * `XSU` - Sucre
296
+ # * `SDD` - Sudanese Dinar (1992–2007)
297
+ # * `SDG` - Sudanese Pound
298
+ # * `SDP` - Sudanese Pound (1957–1998)
299
+ # * `SRD` - Surinamese Dollar
300
+ # * `SRG` - Surinamese Guilder
301
+ # * `SZL` - Swazi Lilangeni
302
+ # * `SEK` - Swedish Krona
303
+ # * `CHF` - Swiss Franc
304
+ # * `SYP` - Syrian Pound
305
+ # * `STN` - São Tomé & Príncipe Dobra
306
+ # * `STD` - São Tomé & Príncipe Dobra (1977–2017)
307
+ # * `TVD` - TVD
308
+ # * `TJR` - Tajikistani Ruble
309
+ # * `TJS` - Tajikistani Somoni
310
+ # * `TZS` - Tanzanian Shilling
311
+ # * `XTS` - Testing Currency Code
312
+ # * `THB` - Thai Baht
313
+ # * `XXX` - The codes assigned for transactions where no currency is involved
314
+ # * `TPE` - Timorese Escudo
315
+ # * `TOP` - Tongan Paʻanga
316
+ # * `TTD` - Trinidad & Tobago Dollar
317
+ # * `TND` - Tunisian Dinar
318
+ # * `TRY` - Turkish Lira
319
+ # * `TRL` - Turkish Lira (1922–2005)
320
+ # * `TMT` - Turkmenistani Manat
321
+ # * `TMM` - Turkmenistani Manat (1993–2009)
322
+ # * `USD` - US Dollar
323
+ # * `USN` - US Dollar (Next day)
324
+ # * `USS` - US Dollar (Same day)
325
+ # * `UGX` - Ugandan Shilling
326
+ # * `UGS` - Ugandan Shilling (1966–1987)
327
+ # * `UAH` - Ukrainian Hryvnia
328
+ # * `UAK` - Ukrainian Karbovanets
329
+ # * `AED` - United Arab Emirates Dirham
330
+ # * `UYW` - Uruguayan Nominal Wage Index Unit
331
+ # * `UYU` - Uruguayan Peso
332
+ # * `UYP` - Uruguayan Peso (1975–1993)
333
+ # * `UYI` - Uruguayan Peso (Indexed Units)
334
+ # * `UZS` - Uzbekistani Som
335
+ # * `VUV` - Vanuatu Vatu
336
+ # * `VES` - Venezuelan Bolívar
337
+ # * `VEB` - Venezuelan Bolívar (1871–2008)
338
+ # * `VEF` - Venezuelan Bolívar (2008–2018)
339
+ # * `VND` - Vietnamese Dong
340
+ # * `VNN` - Vietnamese Dong (1978–1985)
341
+ # * `CHE` - WIR Euro
342
+ # * `CHW` - WIR Franc
343
+ # * `XOF` - West African CFA Franc
344
+ # * `YDD` - Yemeni Dinar
345
+ # * `YER` - Yemeni Rial
346
+ # * `YUN` - Yugoslavian Convertible Dinar (1990–1992)
347
+ # * `YUD` - Yugoslavian Hard Dinar (1966–1990)
348
+ # * `YUM` - Yugoslavian New Dinar (1994–2002)
349
+ # * `YUR` - Yugoslavian Reformed Dinar (1992–1993)
350
+ # * `ZWN` - ZWN
351
+ # * `ZRN` - Zairean New Zaire (1993–1998)
352
+ # * `ZRZ` - Zairean Zaire (1971–1993)
353
+ # * `ZMW` - Zambian Kwacha
354
+ # * `ZMK` - Zambian Kwacha (1968–2012)
355
+ # * `ZWD` - Zimbabwean Dollar (1980–2008)
356
+ # * `ZWR` - Zimbabwean Dollar (2008)
357
+ # * `ZWL` - Zimbabwean Dollar (2009)
358
+ attr_reader :currency
359
+ # @return [String] A brief description or purpose for the expense report
360
+ attr_reader :description
361
+ # @return [String] The accounting period the report was posted in
362
+ attr_reader :accounting_period
363
+ # @return [Merge::Accounting::ExpenseReportCompany] The subsidiary that the expense report is created in
364
+ attr_reader :company
365
+ # @return [Array<String>] The related tracking categories associated with the expense report
366
+ attr_reader :tracking_categories
367
+ # @return [Boolean] Indicates whether or not this object has been deleted in the third party
368
+ # platform. Full coverage deletion detection is a premium add-on. Native deletion
369
+ # detection is offered for free with limited coverage. [Learn
370
+ # more](https://docs.merge.dev/integrations/hris/supported-features/).
371
+ attr_reader :remote_was_deleted
372
+ # @return [Hash{String => Object}]
373
+ attr_reader :field_mappings
374
+ # @return [Array<Merge::Accounting::RemoteData>]
375
+ attr_reader :remote_data
376
+ # @return [Array<Merge::Accounting::RemoteField>]
377
+ attr_reader :remote_fields
378
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
379
+ attr_reader :additional_properties
380
+ # @return [Object]
381
+ attr_reader :_field_set
382
+ protected :_field_set
383
+
384
+ OMIT = Object.new
385
+
386
+ # @param id [String]
387
+ # @param remote_id [String] The third-party API ID of the matching object.
388
+ # @param created_at [DateTime] The datetime that this object was created by Merge.
389
+ # @param modified_at [DateTime] The datetime that this object was modified by Merge.
390
+ # @param report_date [DateTime] The date of the expense report.
391
+ # @param report_identifier [String] Human-readable expense report identifier.
392
+ # @param employee [String] Identifier for the employee who submitted or is associated with the expense
393
+ # report
394
+ # @param status [Merge::Accounting::ExpenseReportStatusEnum] Overall status of the expense report. One of DRAFT, SUBMITTED, APPROVED,
395
+ # REJECTED
396
+ # * `DRAFT` - DRAFT
397
+ # * `SUBMITTED` - SUBMITTED
398
+ # * `APPROVED` - APPROVED
399
+ # * `REJECTED` - REJECTED
400
+ # @param total_amount [Float] Total amount of the expense report
401
+ # @param lines [Array<Merge::Accounting::ExpenseReportLine>]
402
+ # @param currency [Merge::Accounting::TransactionCurrencyEnum] Currency code for the expense report
403
+ # * `XUA` - ADB Unit of Account
404
+ # * `AFN` - Afghan Afghani
405
+ # * `AFA` - Afghan Afghani (1927–2002)
406
+ # * `ALL` - Albanian Lek
407
+ # * `ALK` - Albanian Lek (1946–1965)
408
+ # * `DZD` - Algerian Dinar
409
+ # * `ADP` - Andorran Peseta
410
+ # * `AOA` - Angolan Kwanza
411
+ # * `AOK` - Angolan Kwanza (1977–1991)
412
+ # * `AON` - Angolan New Kwanza (1990–2000)
413
+ # * `AOR` - Angolan Readjusted Kwanza (1995–1999)
414
+ # * `ARA` - Argentine Austral
415
+ # * `ARS` - Argentine Peso
416
+ # * `ARM` - Argentine Peso (1881–1970)
417
+ # * `ARP` - Argentine Peso (1983–1985)
418
+ # * `ARL` - Argentine Peso Ley (1970–1983)
419
+ # * `AMD` - Armenian Dram
420
+ # * `AWG` - Aruban Florin
421
+ # * `AUD` - Australian Dollar
422
+ # * `ATS` - Austrian Schilling
423
+ # * `AZN` - Azerbaijani Manat
424
+ # * `AZM` - Azerbaijani Manat (1993–2006)
425
+ # * `BSD` - Bahamian Dollar
426
+ # * `BHD` - Bahraini Dinar
427
+ # * `BDT` - Bangladeshi Taka
428
+ # * `BBD` - Barbadian Dollar
429
+ # * `BYN` - Belarusian Ruble
430
+ # * `BYB` - Belarusian Ruble (1994–1999)
431
+ # * `BYR` - Belarusian Ruble (2000–2016)
432
+ # * `BEF` - Belgian Franc
433
+ # * `BEC` - Belgian Franc (convertible)
434
+ # * `BEL` - Belgian Franc (financial)
435
+ # * `BZD` - Belize Dollar
436
+ # * `BMD` - Bermudan Dollar
437
+ # * `BTN` - Bhutanese Ngultrum
438
+ # * `BOB` - Bolivian Boliviano
439
+ # * `BOL` - Bolivian Boliviano (1863–1963)
440
+ # * `BOV` - Bolivian Mvdol
441
+ # * `BOP` - Bolivian Peso
442
+ # * `BAM` - Bosnia-Herzegovina Convertible Mark
443
+ # * `BAD` - Bosnia-Herzegovina Dinar (1992–1994)
444
+ # * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997)
445
+ # * `BWP` - Botswanan Pula
446
+ # * `BRC` - Brazilian Cruzado (1986–1989)
447
+ # * `BRZ` - Brazilian Cruzeiro (1942–1967)
448
+ # * `BRE` - Brazilian Cruzeiro (1990–1993)
449
+ # * `BRR` - Brazilian Cruzeiro (1993–1994)
450
+ # * `BRN` - Brazilian New Cruzado (1989–1990)
451
+ # * `BRB` - Brazilian New Cruzeiro (1967–1986)
452
+ # * `BRL` - Brazilian Real
453
+ # * `GBP` - British Pound
454
+ # * `BND` - Brunei Dollar
455
+ # * `BGL` - Bulgarian Hard Lev
456
+ # * `BGN` - Bulgarian Lev
457
+ # * `BGO` - Bulgarian Lev (1879–1952)
458
+ # * `BGM` - Bulgarian Socialist Lev
459
+ # * `BUK` - Burmese Kyat
460
+ # * `BIF` - Burundian Franc
461
+ # * `XPF` - CFP Franc
462
+ # * `KHR` - Cambodian Riel
463
+ # * `CAD` - Canadian Dollar
464
+ # * `CVE` - Cape Verdean Escudo
465
+ # * `KYD` - Cayman Islands Dollar
466
+ # * `XAF` - Central African CFA Franc
467
+ # * `CLE` - Chilean Escudo
468
+ # * `CLP` - Chilean Peso
469
+ # * `CLF` - Chilean Unit of Account (UF)
470
+ # * `CNX` - Chinese People’s Bank Dollar
471
+ # * `CNY` - Chinese Yuan
472
+ # * `CNH` - Chinese Yuan (offshore)
473
+ # * `COP` - Colombian Peso
474
+ # * `COU` - Colombian Real Value Unit
475
+ # * `KMF` - Comorian Franc
476
+ # * `CDF` - Congolese Franc
477
+ # * `CRC` - Costa Rican Colón
478
+ # * `HRD` - Croatian Dinar
479
+ # * `HRK` - Croatian Kuna
480
+ # * `CUC` - Cuban Convertible Peso
481
+ # * `CUP` - Cuban Peso
482
+ # * `CYP` - Cypriot Pound
483
+ # * `CZK` - Czech Koruna
484
+ # * `CSK` - Czechoslovak Hard Koruna
485
+ # * `DKK` - Danish Krone
486
+ # * `DJF` - Djiboutian Franc
487
+ # * `DOP` - Dominican Peso
488
+ # * `NLG` - Dutch Guilder
489
+ # * `XCD` - East Caribbean Dollar
490
+ # * `DDM` - East German Mark
491
+ # * `ECS` - Ecuadorian Sucre
492
+ # * `ECV` - Ecuadorian Unit of Constant Value
493
+ # * `EGP` - Egyptian Pound
494
+ # * `GQE` - Equatorial Guinean Ekwele
495
+ # * `ERN` - Eritrean Nakfa
496
+ # * `EEK` - Estonian Kroon
497
+ # * `ETB` - Ethiopian Birr
498
+ # * `EUR` - Euro
499
+ # * `XBA` - European Composite Unit
500
+ # * `XEU` - European Currency Unit
501
+ # * `XBB` - European Monetary Unit
502
+ # * `XBC` - European Unit of Account (XBC)
503
+ # * `XBD` - European Unit of Account (XBD)
504
+ # * `FKP` - Falkland Islands Pound
505
+ # * `FJD` - Fijian Dollar
506
+ # * `FIM` - Finnish Markka
507
+ # * `FRF` - French Franc
508
+ # * `XFO` - French Gold Franc
509
+ # * `XFU` - French UIC-Franc
510
+ # * `GMD` - Gambian Dalasi
511
+ # * `GEK` - Georgian Kupon Larit
512
+ # * `GEL` - Georgian Lari
513
+ # * `DEM` - German Mark
514
+ # * `GHS` - Ghanaian Cedi
515
+ # * `GHC` - Ghanaian Cedi (1979–2007)
516
+ # * `GIP` - Gibraltar Pound
517
+ # * `XAU` - Gold
518
+ # * `GRD` - Greek Drachma
519
+ # * `GTQ` - Guatemalan Quetzal
520
+ # * `GWP` - Guinea-Bissau Peso
521
+ # * `GNF` - Guinean Franc
522
+ # * `GNS` - Guinean Syli
523
+ # * `GYD` - Guyanaese Dollar
524
+ # * `HTG` - Haitian Gourde
525
+ # * `HNL` - Honduran Lempira
526
+ # * `HKD` - Hong Kong Dollar
527
+ # * `HUF` - Hungarian Forint
528
+ # * `IMP` - IMP
529
+ # * `ISK` - Icelandic Króna
530
+ # * `ISJ` - Icelandic Króna (1918–1981)
531
+ # * `INR` - Indian Rupee
532
+ # * `IDR` - Indonesian Rupiah
533
+ # * `IRR` - Iranian Rial
534
+ # * `IQD` - Iraqi Dinar
535
+ # * `IEP` - Irish Pound
536
+ # * `ILS` - Israeli New Shekel
537
+ # * `ILP` - Israeli Pound
538
+ # * `ILR` - Israeli Shekel (1980–1985)
539
+ # * `ITL` - Italian Lira
540
+ # * `JMD` - Jamaican Dollar
541
+ # * `JPY` - Japanese Yen
542
+ # * `JOD` - Jordanian Dinar
543
+ # * `KZT` - Kazakhstani Tenge
544
+ # * `KES` - Kenyan Shilling
545
+ # * `KWD` - Kuwaiti Dinar
546
+ # * `KGS` - Kyrgystani Som
547
+ # * `LAK` - Laotian Kip
548
+ # * `LVL` - Latvian Lats
549
+ # * `LVR` - Latvian Ruble
550
+ # * `LBP` - Lebanese Pound
551
+ # * `LSL` - Lesotho Loti
552
+ # * `LRD` - Liberian Dollar
553
+ # * `LYD` - Libyan Dinar
554
+ # * `LTL` - Lithuanian Litas
555
+ # * `LTT` - Lithuanian Talonas
556
+ # * `LUL` - Luxembourg Financial Franc
557
+ # * `LUC` - Luxembourgian Convertible Franc
558
+ # * `LUF` - Luxembourgian Franc
559
+ # * `MOP` - Macanese Pataca
560
+ # * `MKD` - Macedonian Denar
561
+ # * `MKN` - Macedonian Denar (1992–1993)
562
+ # * `MGA` - Malagasy Ariary
563
+ # * `MGF` - Malagasy Franc
564
+ # * `MWK` - Malawian Kwacha
565
+ # * `MYR` - Malaysian Ringgit
566
+ # * `MVR` - Maldivian Rufiyaa
567
+ # * `MVP` - Maldivian Rupee (1947–1981)
568
+ # * `MLF` - Malian Franc
569
+ # * `MTL` - Maltese Lira
570
+ # * `MTP` - Maltese Pound
571
+ # * `MRU` - Mauritanian Ouguiya
572
+ # * `MRO` - Mauritanian Ouguiya (1973–2017)
573
+ # * `MUR` - Mauritian Rupee
574
+ # * `MXV` - Mexican Investment Unit
575
+ # * `MXN` - Mexican Peso
576
+ # * `MXP` - Mexican Silver Peso (1861–1992)
577
+ # * `MDC` - Moldovan Cupon
578
+ # * `MDL` - Moldovan Leu
579
+ # * `MCF` - Monegasque Franc
580
+ # * `MNT` - Mongolian Tugrik
581
+ # * `MAD` - Moroccan Dirham
582
+ # * `MAF` - Moroccan Franc
583
+ # * `MZE` - Mozambican Escudo
584
+ # * `MZN` - Mozambican Metical
585
+ # * `MZM` - Mozambican Metical (1980–2006)
586
+ # * `MMK` - Myanmar Kyat
587
+ # * `NAD` - Namibian Dollar
588
+ # * `NPR` - Nepalese Rupee
589
+ # * `ANG` - Netherlands Antillean Guilder
590
+ # * `TWD` - New Taiwan Dollar
591
+ # * `NZD` - New Zealand Dollar
592
+ # * `NIO` - Nicaraguan Córdoba
593
+ # * `NIC` - Nicaraguan Córdoba (1988–1991)
594
+ # * `NGN` - Nigerian Naira
595
+ # * `KPW` - North Korean Won
596
+ # * `NOK` - Norwegian Krone
597
+ # * `OMR` - Omani Rial
598
+ # * `PKR` - Pakistani Rupee
599
+ # * `XPD` - Palladium
600
+ # * `PAB` - Panamanian Balboa
601
+ # * `PGK` - Papua New Guinean Kina
602
+ # * `PYG` - Paraguayan Guarani
603
+ # * `PEI` - Peruvian Inti
604
+ # * `PEN` - Peruvian Sol
605
+ # * `PES` - Peruvian Sol (1863–1965)
606
+ # * `PHP` - Philippine Peso
607
+ # * `XPT` - Platinum
608
+ # * `PLN` - Polish Zloty
609
+ # * `PLZ` - Polish Zloty (1950–1995)
610
+ # * `PTE` - Portuguese Escudo
611
+ # * `GWE` - Portuguese Guinea Escudo
612
+ # * `QAR` - Qatari Rial
613
+ # * `XRE` - RINET Funds
614
+ # * `RHD` - Rhodesian Dollar
615
+ # * `RON` - Romanian Leu
616
+ # * `ROL` - Romanian Leu (1952–2006)
617
+ # * `RUB` - Russian Ruble
618
+ # * `RUR` - Russian Ruble (1991–1998)
619
+ # * `RWF` - Rwandan Franc
620
+ # * `SVC` - Salvadoran Colón
621
+ # * `WST` - Samoan Tala
622
+ # * `SAR` - Saudi Riyal
623
+ # * `RSD` - Serbian Dinar
624
+ # * `CSD` - Serbian Dinar (2002–2006)
625
+ # * `SCR` - Seychellois Rupee
626
+ # * `SLL` - Sierra Leonean Leone
627
+ # * `XAG` - Silver
628
+ # * `SGD` - Singapore Dollar
629
+ # * `SKK` - Slovak Koruna
630
+ # * `SIT` - Slovenian Tolar
631
+ # * `SBD` - Solomon Islands Dollar
632
+ # * `SOS` - Somali Shilling
633
+ # * `ZAR` - South African Rand
634
+ # * `ZAL` - South African Rand (financial)
635
+ # * `KRH` - South Korean Hwan (1953–1962)
636
+ # * `KRW` - South Korean Won
637
+ # * `KRO` - South Korean Won (1945–1953)
638
+ # * `SSP` - South Sudanese Pound
639
+ # * `SUR` - Soviet Rouble
640
+ # * `ESP` - Spanish Peseta
641
+ # * `ESA` - Spanish Peseta (A account)
642
+ # * `ESB` - Spanish Peseta (convertible account)
643
+ # * `XDR` - Special Drawing Rights
644
+ # * `LKR` - Sri Lankan Rupee
645
+ # * `SHP` - St. Helena Pound
646
+ # * `XSU` - Sucre
647
+ # * `SDD` - Sudanese Dinar (1992–2007)
648
+ # * `SDG` - Sudanese Pound
649
+ # * `SDP` - Sudanese Pound (1957–1998)
650
+ # * `SRD` - Surinamese Dollar
651
+ # * `SRG` - Surinamese Guilder
652
+ # * `SZL` - Swazi Lilangeni
653
+ # * `SEK` - Swedish Krona
654
+ # * `CHF` - Swiss Franc
655
+ # * `SYP` - Syrian Pound
656
+ # * `STN` - São Tomé & Príncipe Dobra
657
+ # * `STD` - São Tomé & Príncipe Dobra (1977–2017)
658
+ # * `TVD` - TVD
659
+ # * `TJR` - Tajikistani Ruble
660
+ # * `TJS` - Tajikistani Somoni
661
+ # * `TZS` - Tanzanian Shilling
662
+ # * `XTS` - Testing Currency Code
663
+ # * `THB` - Thai Baht
664
+ # * `XXX` - The codes assigned for transactions where no currency is involved
665
+ # * `TPE` - Timorese Escudo
666
+ # * `TOP` - Tongan Paʻanga
667
+ # * `TTD` - Trinidad & Tobago Dollar
668
+ # * `TND` - Tunisian Dinar
669
+ # * `TRY` - Turkish Lira
670
+ # * `TRL` - Turkish Lira (1922–2005)
671
+ # * `TMT` - Turkmenistani Manat
672
+ # * `TMM` - Turkmenistani Manat (1993–2009)
673
+ # * `USD` - US Dollar
674
+ # * `USN` - US Dollar (Next day)
675
+ # * `USS` - US Dollar (Same day)
676
+ # * `UGX` - Ugandan Shilling
677
+ # * `UGS` - Ugandan Shilling (1966–1987)
678
+ # * `UAH` - Ukrainian Hryvnia
679
+ # * `UAK` - Ukrainian Karbovanets
680
+ # * `AED` - United Arab Emirates Dirham
681
+ # * `UYW` - Uruguayan Nominal Wage Index Unit
682
+ # * `UYU` - Uruguayan Peso
683
+ # * `UYP` - Uruguayan Peso (1975–1993)
684
+ # * `UYI` - Uruguayan Peso (Indexed Units)
685
+ # * `UZS` - Uzbekistani Som
686
+ # * `VUV` - Vanuatu Vatu
687
+ # * `VES` - Venezuelan Bolívar
688
+ # * `VEB` - Venezuelan Bolívar (1871–2008)
689
+ # * `VEF` - Venezuelan Bolívar (2008–2018)
690
+ # * `VND` - Vietnamese Dong
691
+ # * `VNN` - Vietnamese Dong (1978–1985)
692
+ # * `CHE` - WIR Euro
693
+ # * `CHW` - WIR Franc
694
+ # * `XOF` - West African CFA Franc
695
+ # * `YDD` - Yemeni Dinar
696
+ # * `YER` - Yemeni Rial
697
+ # * `YUN` - Yugoslavian Convertible Dinar (1990–1992)
698
+ # * `YUD` - Yugoslavian Hard Dinar (1966–1990)
699
+ # * `YUM` - Yugoslavian New Dinar (1994–2002)
700
+ # * `YUR` - Yugoslavian Reformed Dinar (1992–1993)
701
+ # * `ZWN` - ZWN
702
+ # * `ZRN` - Zairean New Zaire (1993–1998)
703
+ # * `ZRZ` - Zairean Zaire (1971–1993)
704
+ # * `ZMW` - Zambian Kwacha
705
+ # * `ZMK` - Zambian Kwacha (1968–2012)
706
+ # * `ZWD` - Zimbabwean Dollar (1980–2008)
707
+ # * `ZWR` - Zimbabwean Dollar (2008)
708
+ # * `ZWL` - Zimbabwean Dollar (2009)
709
+ # @param description [String] A brief description or purpose for the expense report
710
+ # @param accounting_period [String] The accounting period the report was posted in
711
+ # @param company [Merge::Accounting::ExpenseReportCompany] The subsidiary that the expense report is created in
712
+ # @param tracking_categories [Array<String>] The related tracking categories associated with the expense report
713
+ # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party
714
+ # platform. Full coverage deletion detection is a premium add-on. Native deletion
715
+ # detection is offered for free with limited coverage. [Learn
716
+ # more](https://docs.merge.dev/integrations/hris/supported-features/).
717
+ # @param field_mappings [Hash{String => Object}]
718
+ # @param remote_data [Array<Merge::Accounting::RemoteData>]
719
+ # @param remote_fields [Array<Merge::Accounting::RemoteField>]
720
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
721
+ # @return [Merge::Accounting::ExpenseReport]
722
+ def initialize(tracking_categories:, id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, report_date: OMIT,
723
+ report_identifier: OMIT, employee: OMIT, status: OMIT, total_amount: OMIT, lines: OMIT, currency: OMIT, description: OMIT, accounting_period: OMIT, company: OMIT, remote_was_deleted: OMIT, field_mappings: OMIT, remote_data: OMIT, remote_fields: OMIT, additional_properties: nil)
724
+ @id = id if id != OMIT
725
+ @remote_id = remote_id if remote_id != OMIT
726
+ @created_at = created_at if created_at != OMIT
727
+ @modified_at = modified_at if modified_at != OMIT
728
+ @report_date = report_date if report_date != OMIT
729
+ @report_identifier = report_identifier if report_identifier != OMIT
730
+ @employee = employee if employee != OMIT
731
+ @status = status if status != OMIT
732
+ @total_amount = total_amount if total_amount != OMIT
733
+ @lines = lines if lines != OMIT
734
+ @currency = currency if currency != OMIT
735
+ @description = description if description != OMIT
736
+ @accounting_period = accounting_period if accounting_period != OMIT
737
+ @company = company if company != OMIT
738
+ @tracking_categories = tracking_categories
739
+ @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT
740
+ @field_mappings = field_mappings if field_mappings != OMIT
741
+ @remote_data = remote_data if remote_data != OMIT
742
+ @remote_fields = remote_fields if remote_fields != OMIT
743
+ @additional_properties = additional_properties
744
+ @_field_set = {
745
+ "id": id,
746
+ "remote_id": remote_id,
747
+ "created_at": created_at,
748
+ "modified_at": modified_at,
749
+ "report_date": report_date,
750
+ "report_identifier": report_identifier,
751
+ "employee": employee,
752
+ "status": status,
753
+ "total_amount": total_amount,
754
+ "lines": lines,
755
+ "currency": currency,
756
+ "description": description,
757
+ "accounting_period": accounting_period,
758
+ "company": company,
759
+ "tracking_categories": tracking_categories,
760
+ "remote_was_deleted": remote_was_deleted,
761
+ "field_mappings": field_mappings,
762
+ "remote_data": remote_data,
763
+ "remote_fields": remote_fields
764
+ }.reject do |_k, v|
765
+ v == OMIT
766
+ end
767
+ end
768
+
769
+ # Deserialize a JSON object to an instance of ExpenseReport
770
+ #
771
+ # @param json_object [String]
772
+ # @return [Merge::Accounting::ExpenseReport]
773
+ def self.from_json(json_object:)
774
+ struct = JSON.parse(json_object, object_class: OpenStruct)
775
+ parsed_json = JSON.parse(json_object)
776
+ id = parsed_json["id"]
777
+ remote_id = parsed_json["remote_id"]
778
+ created_at = (DateTime.parse(parsed_json["created_at"]) unless parsed_json["created_at"].nil?)
779
+ modified_at = (DateTime.parse(parsed_json["modified_at"]) unless parsed_json["modified_at"].nil?)
780
+ report_date = (DateTime.parse(parsed_json["report_date"]) unless parsed_json["report_date"].nil?)
781
+ report_identifier = parsed_json["report_identifier"]
782
+ employee = parsed_json["employee"]
783
+ status = parsed_json["status"]
784
+ total_amount = parsed_json["total_amount"]
785
+ lines = parsed_json["lines"]&.map do |item|
786
+ item = item.to_json
787
+ Merge::Accounting::ExpenseReportLine.from_json(json_object: item)
788
+ end
789
+ currency = parsed_json["currency"]
790
+ description = parsed_json["description"]
791
+ accounting_period = parsed_json["accounting_period"]
792
+ if parsed_json["company"].nil?
793
+ company = nil
794
+ else
795
+ company = parsed_json["company"].to_json
796
+ company = Merge::Accounting::ExpenseReportCompany.from_json(json_object: company)
797
+ end
798
+ tracking_categories = parsed_json["tracking_categories"]
799
+ remote_was_deleted = parsed_json["remote_was_deleted"]
800
+ field_mappings = parsed_json["field_mappings"]
801
+ remote_data = parsed_json["remote_data"]&.map do |item|
802
+ item = item.to_json
803
+ Merge::Accounting::RemoteData.from_json(json_object: item)
804
+ end
805
+ remote_fields = parsed_json["remote_fields"]&.map do |item|
806
+ item = item.to_json
807
+ Merge::Accounting::RemoteField.from_json(json_object: item)
808
+ end
809
+ new(
810
+ id: id,
811
+ remote_id: remote_id,
812
+ created_at: created_at,
813
+ modified_at: modified_at,
814
+ report_date: report_date,
815
+ report_identifier: report_identifier,
816
+ employee: employee,
817
+ status: status,
818
+ total_amount: total_amount,
819
+ lines: lines,
820
+ currency: currency,
821
+ description: description,
822
+ accounting_period: accounting_period,
823
+ company: company,
824
+ tracking_categories: tracking_categories,
825
+ remote_was_deleted: remote_was_deleted,
826
+ field_mappings: field_mappings,
827
+ remote_data: remote_data,
828
+ remote_fields: remote_fields,
829
+ additional_properties: struct
830
+ )
831
+ end
832
+
833
+ # Serialize an instance of ExpenseReport to a JSON object
834
+ #
835
+ # @return [String]
836
+ def to_json(*_args)
837
+ @_field_set&.to_json
838
+ end
839
+
840
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
841
+ # hash and check each fields type against the current object's property
842
+ # definitions.
843
+ #
844
+ # @param obj [Object]
845
+ # @return [Void]
846
+ def self.validate_raw(obj:)
847
+ obj.id&.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
848
+ obj.remote_id&.is_a?(String) != false || raise("Passed value for field obj.remote_id is not the expected type, validation failed.")
849
+ obj.created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.")
850
+ obj.modified_at&.is_a?(DateTime) != false || raise("Passed value for field obj.modified_at is not the expected type, validation failed.")
851
+ obj.report_date&.is_a?(DateTime) != false || raise("Passed value for field obj.report_date is not the expected type, validation failed.")
852
+ obj.report_identifier&.is_a?(String) != false || raise("Passed value for field obj.report_identifier is not the expected type, validation failed.")
853
+ obj.employee&.is_a?(String) != false || raise("Passed value for field obj.employee is not the expected type, validation failed.")
854
+ obj.status&.is_a?(Merge::Accounting::ExpenseReportStatusEnum) != false || raise("Passed value for field obj.status is not the expected type, validation failed.")
855
+ obj.total_amount&.is_a?(Float) != false || raise("Passed value for field obj.total_amount is not the expected type, validation failed.")
856
+ obj.lines&.is_a?(Array) != false || raise("Passed value for field obj.lines is not the expected type, validation failed.")
857
+ obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.")
858
+ obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.")
859
+ obj.accounting_period&.is_a?(String) != false || raise("Passed value for field obj.accounting_period is not the expected type, validation failed.")
860
+ obj.company.nil? || Merge::Accounting::ExpenseReportCompany.validate_raw(obj: obj.company)
861
+ obj.tracking_categories.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.")
862
+ obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.")
863
+ obj.field_mappings&.is_a?(Hash) != false || raise("Passed value for field obj.field_mappings is not the expected type, validation failed.")
864
+ obj.remote_data&.is_a?(Array) != false || raise("Passed value for field obj.remote_data is not the expected type, validation failed.")
865
+ obj.remote_fields&.is_a?(Array) != false || raise("Passed value for field obj.remote_fields is not the expected type, validation failed.")
866
+ end
867
+ end
868
+ end
869
+ end