1#![allow(non_camel_case_types)]
2
3#[cfg_attr(feature = "specta", derive(specta::Type))]
4#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
5#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy, Hash)]
6pub enum VATCAT {
7 PetroleumTax,
11 ProvisionalCountervailingDutyCash,
15 ProvisionalCountervailingDutyBond,
19 TobaccoTax,
23 EnergyFee,
27 CoffeeTax,
31 HarmonisedSalesTaxCanadian,
35 QuebecSalesTax,
39 CanadianProvincialSalesTax,
43 TaxOnReplacementPart,
47 MineralOilTax,
51 SpecialTax,
55 InsuranceTax,
59 ProvincialCannabisTax,
63 OutstandingDutyInterest,
67 AntiDumpingDuty,
71 StampDutyImpostaDiBollo,
75 AgriculturalLevy,
79 CarTax,
83 PaperConsortiumTaxItaly,
87 CommoditySpecificTax,
91 CustomsDuty,
95 CountervailingDuty,
99 EnvironmentalTax,
103 ExciseDuty,
107 AgriculturalExportRebate,
111 FederalExciseTax,
115 Free,
119 GeneralConstructionTax,
123 GoodsAndServicesTax,
127 IlluminantsTax,
131 ImportTax,
135 IndividualTax,
139 BusinessLicenseFee,
143 LocalConstructionTax,
147 LightDuesPayable,
151 LocalSalesTax,
155 LustTax,
159 MonetaryCompensatoryAmount,
163 MiscellaneousCashDeposit,
167 OtherTaxes,
171 ProvisionalDutyBond,
175 ProvisionalDutyCash,
179 PreferenceDuty,
183 SpecialConstructionTax,
187 ShiftedSocialSecurities,
191 StateProvincialSalesTax,
195 SuspendedDuty,
199 Surtax,
203 ShiftedWageTax,
207 AlcoholMarkTax,
211 Total,
215 TurnoverTax,
219 TonnageTaxes,
223 ValuationDeposit,
227 ValueAddedTax,
231}
232
233impl crate::Code for VATCAT {
234 fn code(self) -> &'static str {
235 match self {
236 VATCAT::PetroleumTax => "AAA",
237 VATCAT::ProvisionalCountervailingDutyCash => "AAB",
238 VATCAT::ProvisionalCountervailingDutyBond => "AAC",
239 VATCAT::TobaccoTax => "AAD",
240 VATCAT::EnergyFee => "AAE",
241 VATCAT::CoffeeTax => "AAF",
242 VATCAT::HarmonisedSalesTaxCanadian => "AAG",
243 VATCAT::QuebecSalesTax => "AAH",
244 VATCAT::CanadianProvincialSalesTax => "AAI",
245 VATCAT::TaxOnReplacementPart => "AAJ",
246 VATCAT::MineralOilTax => "AAK",
247 VATCAT::SpecialTax => "AAL",
248 VATCAT::InsuranceTax => "AAM",
249 VATCAT::ProvincialCannabisTax => "AAO",
250 VATCAT::OutstandingDutyInterest => "AAP",
251 VATCAT::AntiDumpingDuty => "ADD",
252 VATCAT::StampDutyImpostaDiBollo => "BOL",
253 VATCAT::AgriculturalLevy => "CAP",
254 VATCAT::CarTax => "CAR",
255 VATCAT::PaperConsortiumTaxItaly => "COC",
256 VATCAT::CommoditySpecificTax => "CST",
257 VATCAT::CustomsDuty => "CUD",
258 VATCAT::CountervailingDuty => "CVD",
259 VATCAT::EnvironmentalTax => "ENV",
260 VATCAT::ExciseDuty => "EXC",
261 VATCAT::AgriculturalExportRebate => "EXP",
262 VATCAT::FederalExciseTax => "FET",
263 VATCAT::Free => "FRE",
264 VATCAT::GeneralConstructionTax => "GCN",
265 VATCAT::GoodsAndServicesTax => "GST",
266 VATCAT::IlluminantsTax => "ILL",
267 VATCAT::ImportTax => "IMP",
268 VATCAT::IndividualTax => "IND",
269 VATCAT::BusinessLicenseFee => "LAC",
270 VATCAT::LocalConstructionTax => "LCN",
271 VATCAT::LightDuesPayable => "LDP",
272 VATCAT::LocalSalesTax => "LOC",
273 VATCAT::LustTax => "LST",
274 VATCAT::MonetaryCompensatoryAmount => "MCA",
275 VATCAT::MiscellaneousCashDeposit => "MCD",
276 VATCAT::OtherTaxes => "OTH",
277 VATCAT::ProvisionalDutyBond => "PDB",
278 VATCAT::ProvisionalDutyCash => "PDC",
279 VATCAT::PreferenceDuty => "PRF",
280 VATCAT::SpecialConstructionTax => "SCN",
281 VATCAT::ShiftedSocialSecurities => "SSS",
282 VATCAT::StateProvincialSalesTax => "STT",
283 VATCAT::SuspendedDuty => "SUP",
284 VATCAT::Surtax => "SUR",
285 VATCAT::ShiftedWageTax => "SWT",
286 VATCAT::AlcoholMarkTax => "TAC",
287 VATCAT::Total => "TOT",
288 VATCAT::TurnoverTax => "TOX",
289 VATCAT::TonnageTaxes => "TTA",
290 VATCAT::ValuationDeposit => "VAD",
291 VATCAT::ValueAddedTax => "VAT",
292 }
293 }
294}
295
296impl crate::Description for VATCAT {
297 fn description(self) -> &'static str {
298 match self {
299 VATCAT::PetroleumTax => "Petroleum tax",
300 VATCAT::ProvisionalCountervailingDutyCash => "Provisional countervailing duty cash",
301 VATCAT::ProvisionalCountervailingDutyBond => "Provisional countervailing duty bond",
302 VATCAT::TobaccoTax => "Tobacco tax",
303 VATCAT::EnergyFee => "Energy fee",
304 VATCAT::CoffeeTax => "Coffee tax",
305 VATCAT::HarmonisedSalesTaxCanadian => "Harmonised sales tax, Canadian",
306 VATCAT::QuebecSalesTax => "Quebec sales tax",
307 VATCAT::CanadianProvincialSalesTax => "Canadian provincial sales tax",
308 VATCAT::TaxOnReplacementPart => "Tax on replacement part",
309 VATCAT::MineralOilTax => "Mineral oil tax",
310 VATCAT::SpecialTax => "Special tax",
311 VATCAT::InsuranceTax => "Insurance tax",
312 VATCAT::ProvincialCannabisTax => "Provincial Cannabis Tax",
313 VATCAT::OutstandingDutyInterest => "Outstanding duty interest",
314 VATCAT::AntiDumpingDuty => "Anti-dumping duty",
315 VATCAT::StampDutyImpostaDiBollo => "Stamp duty (Imposta di Bollo)",
316 VATCAT::AgriculturalLevy => "Agricultural levy",
317 VATCAT::CarTax => "Car tax",
318 VATCAT::PaperConsortiumTaxItaly => "Paper consortium tax (Italy)",
319 VATCAT::CommoditySpecificTax => "Commodity specific tax",
320 VATCAT::CustomsDuty => "Customs duty",
321 VATCAT::CountervailingDuty => "Countervailing duty",
322 VATCAT::EnvironmentalTax => "Environmental tax",
323 VATCAT::ExciseDuty => "Excise duty",
324 VATCAT::AgriculturalExportRebate => "Agricultural export rebate",
325 VATCAT::FederalExciseTax => "Federal excise tax",
326 VATCAT::Free => "Free",
327 VATCAT::GeneralConstructionTax => "General construction tax",
328 VATCAT::GoodsAndServicesTax => "Goods and services tax",
329 VATCAT::IlluminantsTax => "Illuminants tax",
330 VATCAT::ImportTax => "Import tax",
331 VATCAT::IndividualTax => "Individual tax",
332 VATCAT::BusinessLicenseFee => "Business license fee",
333 VATCAT::LocalConstructionTax => "Local construction tax",
334 VATCAT::LightDuesPayable => "Light dues payable",
335 VATCAT::LocalSalesTax => "Local sales tax",
336 VATCAT::LustTax => "Lust tax",
337 VATCAT::MonetaryCompensatoryAmount => "Monetary compensatory amount",
338 VATCAT::MiscellaneousCashDeposit => "Miscellaneous cash deposit",
339 VATCAT::OtherTaxes => "Other taxes",
340 VATCAT::ProvisionalDutyBond => "Provisional duty bond",
341 VATCAT::ProvisionalDutyCash => "Provisional duty cash",
342 VATCAT::PreferenceDuty => "Preference duty",
343 VATCAT::SpecialConstructionTax => "Special construction tax",
344 VATCAT::ShiftedSocialSecurities => "Shifted social securities",
345 VATCAT::StateProvincialSalesTax => "State/provincial sales tax",
346 VATCAT::SuspendedDuty => "Suspended duty",
347 VATCAT::Surtax => "Surtax",
348 VATCAT::ShiftedWageTax => "Shifted wage tax",
349 VATCAT::AlcoholMarkTax => "Alcohol mark tax",
350 VATCAT::Total => "Total",
351 VATCAT::TurnoverTax => "Turnover tax",
352 VATCAT::TonnageTaxes => "Tonnage taxes",
353 VATCAT::ValuationDeposit => "Valuation deposit",
354 VATCAT::ValueAddedTax => "Value added tax",
355 }
356 }
357}
358
359impl crate::FromCode for VATCAT {
360 fn from_code(code: &str) -> Option<Self>
361 where
362 Self: Sized,
363 {
364 match code {
365 "AAA" => Some(VATCAT::PetroleumTax),
366 "AAB" => Some(VATCAT::ProvisionalCountervailingDutyCash),
367 "AAC" => Some(VATCAT::ProvisionalCountervailingDutyBond),
368 "AAD" => Some(VATCAT::TobaccoTax),
369 "AAE" => Some(VATCAT::EnergyFee),
370 "AAF" => Some(VATCAT::CoffeeTax),
371 "AAG" => Some(VATCAT::HarmonisedSalesTaxCanadian),
372 "AAH" => Some(VATCAT::QuebecSalesTax),
373 "AAI" => Some(VATCAT::CanadianProvincialSalesTax),
374 "AAJ" => Some(VATCAT::TaxOnReplacementPart),
375 "AAK" => Some(VATCAT::MineralOilTax),
376 "AAL" => Some(VATCAT::SpecialTax),
377 "AAM" => Some(VATCAT::InsuranceTax),
378 "AAO" => Some(VATCAT::ProvincialCannabisTax),
379 "AAP" => Some(VATCAT::OutstandingDutyInterest),
380 "ADD" => Some(VATCAT::AntiDumpingDuty),
381 "BOL" => Some(VATCAT::StampDutyImpostaDiBollo),
382 "CAP" => Some(VATCAT::AgriculturalLevy),
383 "CAR" => Some(VATCAT::CarTax),
384 "COC" => Some(VATCAT::PaperConsortiumTaxItaly),
385 "CST" => Some(VATCAT::CommoditySpecificTax),
386 "CUD" => Some(VATCAT::CustomsDuty),
387 "CVD" => Some(VATCAT::CountervailingDuty),
388 "ENV" => Some(VATCAT::EnvironmentalTax),
389 "EXC" => Some(VATCAT::ExciseDuty),
390 "EXP" => Some(VATCAT::AgriculturalExportRebate),
391 "FET" => Some(VATCAT::FederalExciseTax),
392 "FRE" => Some(VATCAT::Free),
393 "GCN" => Some(VATCAT::GeneralConstructionTax),
394 "GST" => Some(VATCAT::GoodsAndServicesTax),
395 "ILL" => Some(VATCAT::IlluminantsTax),
396 "IMP" => Some(VATCAT::ImportTax),
397 "IND" => Some(VATCAT::IndividualTax),
398 "LAC" => Some(VATCAT::BusinessLicenseFee),
399 "LCN" => Some(VATCAT::LocalConstructionTax),
400 "LDP" => Some(VATCAT::LightDuesPayable),
401 "LOC" => Some(VATCAT::LocalSalesTax),
402 "LST" => Some(VATCAT::LustTax),
403 "MCA" => Some(VATCAT::MonetaryCompensatoryAmount),
404 "MCD" => Some(VATCAT::MiscellaneousCashDeposit),
405 "OTH" => Some(VATCAT::OtherTaxes),
406 "PDB" => Some(VATCAT::ProvisionalDutyBond),
407 "PDC" => Some(VATCAT::ProvisionalDutyCash),
408 "PRF" => Some(VATCAT::PreferenceDuty),
409 "SCN" => Some(VATCAT::SpecialConstructionTax),
410 "SSS" => Some(VATCAT::ShiftedSocialSecurities),
411 "STT" => Some(VATCAT::StateProvincialSalesTax),
412 "SUP" => Some(VATCAT::SuspendedDuty),
413 "SUR" => Some(VATCAT::Surtax),
414 "SWT" => Some(VATCAT::ShiftedWageTax),
415 "TAC" => Some(VATCAT::AlcoholMarkTax),
416 "TOT" => Some(VATCAT::Total),
417 "TOX" => Some(VATCAT::TurnoverTax),
418 "TTA" => Some(VATCAT::TonnageTaxes),
419 "VAD" => Some(VATCAT::ValuationDeposit),
420 "VAT" => Some(VATCAT::ValueAddedTax),
421 _ => None,
422 }
423 }
424}