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