1#![allow(non_camel_case_types)]
2
3#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
4#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy, Hash)]
5pub enum VATCAT {
6 PetroleumTax,
10 ProvisionalCountervailingDutyCash,
14 ProvisionalCountervailingDutyBond,
18 TobaccoTax,
22 EnergyFee,
26 CoffeeTax,
30 HarmonisedSalesTaxCanadian,
34 QuebecSalesTax,
38 CanadianProvincialSalesTax,
42 TaxOnReplacementPart,
46 MineralOilTax,
50 SpecialTax,
54 InsuranceTax,
58 ProvincialCannabisTax,
62 OutstandingDutyInterest,
66 AntiDumpingDuty,
70 StampDutyImpostaDiBollo,
74 AgriculturalLevy,
78 CarTax,
82 PaperConsortiumTaxItaly,
86 CommoditySpecificTax,
90 CustomsDuty,
94 CountervailingDuty,
98 EnvironmentalTax,
102 ExciseDuty,
106 AgriculturalExportRebate,
110 FederalExciseTax,
114 Free,
118 GeneralConstructionTax,
122 GoodsAndServicesTax,
126 IlluminantsTax,
130 ImportTax,
134 IndividualTax,
138 BusinessLicenseFee,
142 LocalConstructionTax,
146 LightDuesPayable,
150 LocalSalesTax,
154 LustTax,
158 MonetaryCompensatoryAmount,
162 MiscellaneousCashDeposit,
166 OtherTaxes,
170 ProvisionalDutyBond,
174 ProvisionalDutyCash,
178 PreferenceDuty,
182 SpecialConstructionTax,
186 ShiftedSocialSecurities,
190 StateProvincialSalesTax,
194 SuspendedDuty,
198 Surtax,
202 ShiftedWageTax,
206 AlcoholMarkTax,
210 Total,
214 TurnoverTax,
218 TonnageTaxes,
222 ValuationDeposit,
226 ValueAddedTax,
230}
231
232impl crate::Code for VATCAT {
233 fn code(self) -> &'static str {
234 match self {
235 VATCAT::PetroleumTax => "AAA",
236 VATCAT::ProvisionalCountervailingDutyCash => "AAB",
237 VATCAT::ProvisionalCountervailingDutyBond => "AAC",
238 VATCAT::TobaccoTax => "AAD",
239 VATCAT::EnergyFee => "AAE",
240 VATCAT::CoffeeTax => "AAF",
241 VATCAT::HarmonisedSalesTaxCanadian => "AAG",
242 VATCAT::QuebecSalesTax => "AAH",
243 VATCAT::CanadianProvincialSalesTax => "AAI",
244 VATCAT::TaxOnReplacementPart => "AAJ",
245 VATCAT::MineralOilTax => "AAK",
246 VATCAT::SpecialTax => "AAL",
247 VATCAT::InsuranceTax => "AAM",
248 VATCAT::ProvincialCannabisTax => "AAO",
249 VATCAT::OutstandingDutyInterest => "AAP",
250 VATCAT::AntiDumpingDuty => "ADD",
251 VATCAT::StampDutyImpostaDiBollo => "BOL",
252 VATCAT::AgriculturalLevy => "CAP",
253 VATCAT::CarTax => "CAR",
254 VATCAT::PaperConsortiumTaxItaly => "COC",
255 VATCAT::CommoditySpecificTax => "CST",
256 VATCAT::CustomsDuty => "CUD",
257 VATCAT::CountervailingDuty => "CVD",
258 VATCAT::EnvironmentalTax => "ENV",
259 VATCAT::ExciseDuty => "EXC",
260 VATCAT::AgriculturalExportRebate => "EXP",
261 VATCAT::FederalExciseTax => "FET",
262 VATCAT::Free => "FRE",
263 VATCAT::GeneralConstructionTax => "GCN",
264 VATCAT::GoodsAndServicesTax => "GST",
265 VATCAT::IlluminantsTax => "ILL",
266 VATCAT::ImportTax => "IMP",
267 VATCAT::IndividualTax => "IND",
268 VATCAT::BusinessLicenseFee => "LAC",
269 VATCAT::LocalConstructionTax => "LCN",
270 VATCAT::LightDuesPayable => "LDP",
271 VATCAT::LocalSalesTax => "LOC",
272 VATCAT::LustTax => "LST",
273 VATCAT::MonetaryCompensatoryAmount => "MCA",
274 VATCAT::MiscellaneousCashDeposit => "MCD",
275 VATCAT::OtherTaxes => "OTH",
276 VATCAT::ProvisionalDutyBond => "PDB",
277 VATCAT::ProvisionalDutyCash => "PDC",
278 VATCAT::PreferenceDuty => "PRF",
279 VATCAT::SpecialConstructionTax => "SCN",
280 VATCAT::ShiftedSocialSecurities => "SSS",
281 VATCAT::StateProvincialSalesTax => "STT",
282 VATCAT::SuspendedDuty => "SUP",
283 VATCAT::Surtax => "SUR",
284 VATCAT::ShiftedWageTax => "SWT",
285 VATCAT::AlcoholMarkTax => "TAC",
286 VATCAT::Total => "TOT",
287 VATCAT::TurnoverTax => "TOX",
288 VATCAT::TonnageTaxes => "TTA",
289 VATCAT::ValuationDeposit => "VAD",
290 VATCAT::ValueAddedTax => "VAT",
291 }
292 }
293}
294
295impl crate::Description for VATCAT {
296 fn description(self) -> &'static str {
297 match self {
298 VATCAT::PetroleumTax => "Petroleum tax",
299 VATCAT::ProvisionalCountervailingDutyCash => "Provisional countervailing duty cash",
300 VATCAT::ProvisionalCountervailingDutyBond => "Provisional countervailing duty bond",
301 VATCAT::TobaccoTax => "Tobacco tax",
302 VATCAT::EnergyFee => "Energy fee",
303 VATCAT::CoffeeTax => "Coffee tax",
304 VATCAT::HarmonisedSalesTaxCanadian => "Harmonised sales tax, Canadian",
305 VATCAT::QuebecSalesTax => "Quebec sales tax",
306 VATCAT::CanadianProvincialSalesTax => "Canadian provincial sales tax",
307 VATCAT::TaxOnReplacementPart => "Tax on replacement part",
308 VATCAT::MineralOilTax => "Mineral oil tax",
309 VATCAT::SpecialTax => "Special tax",
310 VATCAT::InsuranceTax => "Insurance tax",
311 VATCAT::ProvincialCannabisTax => "Provincial Cannabis Tax",
312 VATCAT::OutstandingDutyInterest => "Outstanding duty interest",
313 VATCAT::AntiDumpingDuty => "Anti-dumping duty",
314 VATCAT::StampDutyImpostaDiBollo => "Stamp duty (Imposta di Bollo)",
315 VATCAT::AgriculturalLevy => "Agricultural levy",
316 VATCAT::CarTax => "Car tax",
317 VATCAT::PaperConsortiumTaxItaly => "Paper consortium tax (Italy)",
318 VATCAT::CommoditySpecificTax => "Commodity specific tax",
319 VATCAT::CustomsDuty => "Customs duty",
320 VATCAT::CountervailingDuty => "Countervailing duty",
321 VATCAT::EnvironmentalTax => "Environmental tax",
322 VATCAT::ExciseDuty => "Excise duty",
323 VATCAT::AgriculturalExportRebate => "Agricultural export rebate",
324 VATCAT::FederalExciseTax => "Federal excise tax",
325 VATCAT::Free => "Free",
326 VATCAT::GeneralConstructionTax => "General construction tax",
327 VATCAT::GoodsAndServicesTax => "Goods and services tax",
328 VATCAT::IlluminantsTax => "Illuminants tax",
329 VATCAT::ImportTax => "Import tax",
330 VATCAT::IndividualTax => "Individual tax",
331 VATCAT::BusinessLicenseFee => "Business license fee",
332 VATCAT::LocalConstructionTax => "Local construction tax",
333 VATCAT::LightDuesPayable => "Light dues payable",
334 VATCAT::LocalSalesTax => "Local sales tax",
335 VATCAT::LustTax => "Lust tax",
336 VATCAT::MonetaryCompensatoryAmount => "Monetary compensatory amount",
337 VATCAT::MiscellaneousCashDeposit => "Miscellaneous cash deposit",
338 VATCAT::OtherTaxes => "Other taxes",
339 VATCAT::ProvisionalDutyBond => "Provisional duty bond",
340 VATCAT::ProvisionalDutyCash => "Provisional duty cash",
341 VATCAT::PreferenceDuty => "Preference duty",
342 VATCAT::SpecialConstructionTax => "Special construction tax",
343 VATCAT::ShiftedSocialSecurities => "Shifted social securities",
344 VATCAT::StateProvincialSalesTax => "State/provincial sales tax",
345 VATCAT::SuspendedDuty => "Suspended duty",
346 VATCAT::Surtax => "Surtax",
347 VATCAT::ShiftedWageTax => "Shifted wage tax",
348 VATCAT::AlcoholMarkTax => "Alcohol mark tax",
349 VATCAT::Total => "Total",
350 VATCAT::TurnoverTax => "Turnover tax",
351 VATCAT::TonnageTaxes => "Tonnage taxes",
352 VATCAT::ValuationDeposit => "Valuation deposit",
353 VATCAT::ValueAddedTax => "Value added tax",
354 }
355 }
356}
357
358impl crate::FromCode for VATCAT {
359 fn from_code(code: &str) -> Option<Self>
360 where
361 Self: Sized,
362 {
363 match code {
364 "AAA" => Some(VATCAT::PetroleumTax),
365 "AAB" => Some(VATCAT::ProvisionalCountervailingDutyCash),
366 "AAC" => Some(VATCAT::ProvisionalCountervailingDutyBond),
367 "AAD" => Some(VATCAT::TobaccoTax),
368 "AAE" => Some(VATCAT::EnergyFee),
369 "AAF" => Some(VATCAT::CoffeeTax),
370 "AAG" => Some(VATCAT::HarmonisedSalesTaxCanadian),
371 "AAH" => Some(VATCAT::QuebecSalesTax),
372 "AAI" => Some(VATCAT::CanadianProvincialSalesTax),
373 "AAJ" => Some(VATCAT::TaxOnReplacementPart),
374 "AAK" => Some(VATCAT::MineralOilTax),
375 "AAL" => Some(VATCAT::SpecialTax),
376 "AAM" => Some(VATCAT::InsuranceTax),
377 "AAO" => Some(VATCAT::ProvincialCannabisTax),
378 "AAP" => Some(VATCAT::OutstandingDutyInterest),
379 "ADD" => Some(VATCAT::AntiDumpingDuty),
380 "BOL" => Some(VATCAT::StampDutyImpostaDiBollo),
381 "CAP" => Some(VATCAT::AgriculturalLevy),
382 "CAR" => Some(VATCAT::CarTax),
383 "COC" => Some(VATCAT::PaperConsortiumTaxItaly),
384 "CST" => Some(VATCAT::CommoditySpecificTax),
385 "CUD" => Some(VATCAT::CustomsDuty),
386 "CVD" => Some(VATCAT::CountervailingDuty),
387 "ENV" => Some(VATCAT::EnvironmentalTax),
388 "EXC" => Some(VATCAT::ExciseDuty),
389 "EXP" => Some(VATCAT::AgriculturalExportRebate),
390 "FET" => Some(VATCAT::FederalExciseTax),
391 "FRE" => Some(VATCAT::Free),
392 "GCN" => Some(VATCAT::GeneralConstructionTax),
393 "GST" => Some(VATCAT::GoodsAndServicesTax),
394 "ILL" => Some(VATCAT::IlluminantsTax),
395 "IMP" => Some(VATCAT::ImportTax),
396 "IND" => Some(VATCAT::IndividualTax),
397 "LAC" => Some(VATCAT::BusinessLicenseFee),
398 "LCN" => Some(VATCAT::LocalConstructionTax),
399 "LDP" => Some(VATCAT::LightDuesPayable),
400 "LOC" => Some(VATCAT::LocalSalesTax),
401 "LST" => Some(VATCAT::LustTax),
402 "MCA" => Some(VATCAT::MonetaryCompensatoryAmount),
403 "MCD" => Some(VATCAT::MiscellaneousCashDeposit),
404 "OTH" => Some(VATCAT::OtherTaxes),
405 "PDB" => Some(VATCAT::ProvisionalDutyBond),
406 "PDC" => Some(VATCAT::ProvisionalDutyCash),
407 "PRF" => Some(VATCAT::PreferenceDuty),
408 "SCN" => Some(VATCAT::SpecialConstructionTax),
409 "SSS" => Some(VATCAT::ShiftedSocialSecurities),
410 "STT" => Some(VATCAT::StateProvincialSalesTax),
411 "SUP" => Some(VATCAT::SuspendedDuty),
412 "SUR" => Some(VATCAT::Surtax),
413 "SWT" => Some(VATCAT::ShiftedWageTax),
414 "TAC" => Some(VATCAT::AlcoholMarkTax),
415 "TOT" => Some(VATCAT::Total),
416 "TOX" => Some(VATCAT::TurnoverTax),
417 "TTA" => Some(VATCAT::TonnageTaxes),
418 "VAD" => Some(VATCAT::ValuationDeposit),
419 "VAT" => Some(VATCAT::ValueAddedTax),
420 _ => None,
421 }
422 }
423}