zugferd_code_lists/zugferd_2_3_2/
vatex.rs

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 VATEX {
7    /// Exempt based on article 79, point c of Council Directive 2006/112/EC
8    ///
9    /// Repayment of expenditure is not an exemption in the sense of the VAT Directive but may be handled as such in the context of the EN16931.
10    ExemptBasedOnArticle79PointCCouncilDirective2006112Ec,
11    /// Exempt based on article 132 of Council Directive 2006/112/EC
12    ExemptBasedOnArticle132CouncilDirective2006112Ec,
13    /// Exempt based on article 132, section 1 (a) of Council Directive 2006/112/EC
14    ExemptBasedOnArticle132Section1ACouncilDirective2006112Ec,
15    /// Exempt based on article 132, section 1 (b) of Council Directive 2006/112/EC
16    ExemptBasedOnArticle132Section1BCouncilDirective2006112Ec,
17    /// Exempt based on article 132, section 1 (c) of Council Directive 2006/112/EC
18    ExemptBasedOnArticle132Section1CCouncilDirective2006112Ec,
19    /// Exempt based on article 132, section 1 (d) of Council Directive 2006/112/EC
20    ExemptBasedOnArticle132Section1DCouncilDirective2006112Ec,
21    /// Exempt based on article 132, section 1 (e) of Council Directive 2006/112/EC
22    ExemptBasedOnArticle132Section1ECouncilDirective2006112Ec,
23    /// Exempt based on article 132, section 1 (f) of Council Directive 2006/112/EC
24    ExemptBasedOnArticle132Section1FCouncilDirective2006112Ec,
25    /// Exempt based on article 132, section 1 (g) of Council Directive 2006/112/EC
26    ExemptBasedOnArticle132Section1GCouncilDirective2006112Ec,
27    /// Exempt based on article 132, section 1 (h) of Council Directive 2006/112/EC
28    ExemptBasedOnArticle132Section1HCouncilDirective2006112Ec,
29    /// Exempt based on article 132, section 1 (i) of Council Directive 2006/112/EC
30    ExemptBasedOnArticle132Section1ICouncilDirective2006112Ec,
31    /// Exempt based on article 132, section 1 (j) of Council Directive 2006/112/EC
32    ExemptBasedOnArticle132Section1JCouncilDirective2006112Ec,
33    /// Exempt based on article 132, section 1 (k) of Council Directive 2006/112/EC
34    ExemptBasedOnArticle132Section1KCouncilDirective2006112Ec,
35    /// Exempt based on article 132, section 1 (l) of Council Directive 2006/112/EC
36    ExemptBasedOnArticle132Section1LCouncilDirective2006112Ec,
37    /// Exempt based on article 132, section 1 (m) of Council Directive 2006/112/EC
38    ExemptBasedOnArticle132Section1MCouncilDirective2006112Ec,
39    /// Exempt based on article 132, section 1 (n) of Council Directive 2006/112/EC
40    ExemptBasedOnArticle132Section1NCouncilDirective2006112Ec,
41    /// Exempt based on article 132, section 1 (o) of Council Directive 2006/112/EC
42    ExemptBasedOnArticle132Section1OCouncilDirective2006112Ec,
43    /// Exempt based on article 132, section 1 (p) of Council Directive 2006/112/EC
44    ExemptBasedOnArticle132Section1PCouncilDirective2006112Ec,
45    /// Exempt based on article 132, section 1 (q) of Council Directive 2006/112/EC
46    ExemptBasedOnArticle132Section1QCouncilDirective2006112Ec,
47    /// Exempt based on article 143 of Council Directive 2006/112/EC
48    ExemptBasedOnArticle143CouncilDirective2006112Ec,
49    /// Exempt based on article 143, section 1 (a) of Council Directive 2006/112/EC
50    ExemptBasedOnArticle143Section1ACouncilDirective2006112Ec,
51    /// Exempt based on article 143, section 1 (b) of Council Directive 2006/112/EC
52    ExemptBasedOnArticle143Section1BCouncilDirective2006112Ec,
53    /// Exempt based on article 143, section 1 (c) of Council Directive 2006/112/EC
54    ExemptBasedOnArticle143Section1CCouncilDirective2006112Ec,
55    /// Exempt based on article 143, section 1 (d) of Council Directive 2006/112/EC
56    ExemptBasedOnArticle143Section1DCouncilDirective2006112Ec,
57    /// Exempt based on article 143, section 1 (e) of Council Directive 2006/112/EC
58    ExemptBasedOnArticle143Section1ECouncilDirective2006112Ec,
59    /// Exempt based on article 143, section 1 (f) of Council Directive 2006/112/EC
60    ExemptBasedOnArticle143Section1FCouncilDirective2006112Ec,
61    /// Exempt based on article 143, section 1 (fa) of Council Directive 2006/112/EC
62    ExemptBasedOnArticle143Section1FaCouncilDirective2006112Ec,
63    /// Exempt based on article 143, section 1 (g) of Council Directive 2006/112/EC
64    ExemptBasedOnArticle143Section1GCouncilDirective2006112Ec,
65    /// Exempt based on article 143, section 1 (h) of Council Directive 2006/112/EC
66    ExemptBasedOnArticle143Section1HCouncilDirective2006112Ec,
67    /// Exempt based on article 143, section 1 (i) of Council Directive 2006/112/EC
68    ExemptBasedOnArticle143Section1ICouncilDirective2006112Ec,
69    /// Exempt based on article 143, section 1 (j) of Council Directive 2006/112/EC
70    ExemptBasedOnArticle143Section1JCouncilDirective2006112Ec,
71    /// Exempt based on article 143, section 1 (k) of Council Directive 2006/112/EC
72    ExemptBasedOnArticle143Section1KCouncilDirective2006112Ec,
73    /// Exempt based on article 143, section 1 (l) of Council Directive 2006/112/EC
74    ExemptBasedOnArticle143Section1LCouncilDirective2006112Ec,
75    /// Exempt based on article 144 of Council Directive 2006/112/EC
76    ExemptBasedOnArticle144CouncilDirective2006112Ec,
77    /// Exempt based on article 146 section 1 (e) of Council Directive 2006/112/EC
78    ExemptBasedOnArticle146Section1ECouncilDirective2006112Ec,
79    /// Exempt based on article 148 of Council Directive 2006/112/EC
80    ExemptBasedOnArticle148CouncilDirective2006112Ec,
81    /// Exempt based on article 148, section (a) of Council Directive 2006/112/EC
82    ExemptBasedOnArticle148SectionACouncilDirective2006112Ec,
83    /// Exempt based on article 148, section (b) of Council Directive 2006/112/EC
84    ExemptBasedOnArticle148SectionBCouncilDirective2006112Ec,
85    /// Exempt based on article 148, section (c) of Council Directive 2006/112/EC
86    ExemptBasedOnArticle148SectionCCouncilDirective2006112Ec,
87    /// Exempt based on article 148, section (d) of Council Directive 2006/112/EC
88    ExemptBasedOnArticle148SectionDCouncilDirective2006112Ec,
89    /// Exempt based on article 148, section (e) of Council Directive 2006/112/EC
90    ExemptBasedOnArticle148SectionECouncilDirective2006112Ec,
91    /// Exempt based on article 148, section (f) of Council Directive 2006/112/EC
92    ExemptBasedOnArticle148SectionFCouncilDirective2006112Ec,
93    /// Exempt based on article 148, section (g) of Council Directive 2006/112/EC
94    ExemptBasedOnArticle148SectionGCouncilDirective2006112Ec,
95    /// Exempt based on article 151 of Council Directive 2006/112/EC
96    ExemptBasedOnArticle151CouncilDirective2006112Ec,
97    /// Exempt based on article 151, section 1 (a) of Council Directive 2006/112/EC
98    ExemptBasedOnArticle151Section1ACouncilDirective2006112Ec,
99    /// Exempt based on article 151, section 1 (aa) of Council Directive 2006/112/EC
100    ExemptBasedOnArticle151Section1AaCouncilDirective2006112Ec,
101    /// Exempt based on article 151, section 1 (b) of Council Directive 2006/112/EC
102    ExemptBasedOnArticle151Section1BCouncilDirective2006112Ec,
103    /// Exempt based on article 151, section 1 (c) of Council Directive 2006/112/EC
104    ExemptBasedOnArticle151Section1CCouncilDirective2006112Ec,
105    /// Exempt based on article 151, section 1 (d) of Council Directive 2006/112/EC
106    ExemptBasedOnArticle151Section1DCouncilDirective2006112Ec,
107    /// Exempt based on article 151, section 1 (e) of Council Directive 2006/112/EC
108    ExemptBasedOnArticle151Section1ECouncilDirective2006112Ec,
109    /// Exempt based on article 159 of Council Directive 2006/112/EC
110    ExemptBasedOnArticle159CouncilDirective2006112Ec,
111    /// Exempt based on article 309 of Council Directive 2006/112/EC
112    ExemptBasedOnArticle309CouncilDirective2006112Ec,
113    /// Reverse charge
114    ///
115    /// Only use with VAT category code AE
116    ReverseCharge,
117    /// Travel agents VAT scheme.
118    ///
119    /// Only use with VAT category code E
120    TravelAgentsVatScheme,
121    /// Second hand goods VAT scheme.
122    ///
123    /// Only use with VAT category code E
124    SecondHandGoodsVatScheme,
125    /// Export outside the EU
126    ///
127    /// Only use with VAT category code G
128    ExportOutsideEu,
129    /// Works of art VAT scheme.
130    ///
131    /// Only use with VAT category code E
132    WorksArtVatScheme,
133    /// Intra-community supply
134    ///
135    /// Only use with VAT category code K
136    IntraCommunitySupply,
137    /// Collectors items and antiques VAT scheme.
138    ///
139    /// Only use with VAT category code E
140    CollectorsItemsAndAntiquesVatScheme,
141    /// Not subject to VAT
142    ///
143    /// Only use with VAT category code O
144    NotSubjectToVat,
145    /// France domestic VAT franchise in base
146    ///
147    /// For domestic invoicing in France
148    FranceDomesticVatFranchiseInBase,
149    /// France domestic Credit Notes without VAT, due to supplier forfeit of VAT for discount
150    ///
151    /// For domestic Credit Notes only in France
152    FranceDomesticCreditNotesWithoutVatDueToSupplierForfeitVatForDiscount,
153}
154
155impl std::fmt::Display for VATEX {
156    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
157        write!(f, "{}", <Self as crate::Code>::code(*self))
158    }
159}
160
161impl std::str::FromStr for VATEX {
162    type Err = crate::ParseError<Self>;
163    fn from_str(s: &str) -> Result<Self, Self::Err> {
164        <Self as crate::FromCode>::from_code(s)
165            .ok_or_else(|| crate::ParseError::<Self>::new(s.to_owned()))
166    }
167}
168
169impl crate::Code for VATEX {
170    fn code(self) -> &'static str {
171        match self {
172            VATEX::ExemptBasedOnArticle79PointCCouncilDirective2006112Ec => "VATEX-EU-79-C",
173            VATEX::ExemptBasedOnArticle132CouncilDirective2006112Ec => "VATEX-EU-132",
174            VATEX::ExemptBasedOnArticle132Section1ACouncilDirective2006112Ec => "VATEX-EU-132-1A",
175            VATEX::ExemptBasedOnArticle132Section1BCouncilDirective2006112Ec => "VATEX-EU-132-1B",
176            VATEX::ExemptBasedOnArticle132Section1CCouncilDirective2006112Ec => "VATEX-EU-132-1C",
177            VATEX::ExemptBasedOnArticle132Section1DCouncilDirective2006112Ec => "VATEX-EU-132-1D",
178            VATEX::ExemptBasedOnArticle132Section1ECouncilDirective2006112Ec => "VATEX-EU-132-1E",
179            VATEX::ExemptBasedOnArticle132Section1FCouncilDirective2006112Ec => "VATEX-EU-132-1F",
180            VATEX::ExemptBasedOnArticle132Section1GCouncilDirective2006112Ec => "VATEX-EU-132-1G",
181            VATEX::ExemptBasedOnArticle132Section1HCouncilDirective2006112Ec => "VATEX-EU-132-1H",
182            VATEX::ExemptBasedOnArticle132Section1ICouncilDirective2006112Ec => "VATEX-EU-132-1I",
183            VATEX::ExemptBasedOnArticle132Section1JCouncilDirective2006112Ec => "VATEX-EU-132-1J",
184            VATEX::ExemptBasedOnArticle132Section1KCouncilDirective2006112Ec => "VATEX-EU-132-1K",
185            VATEX::ExemptBasedOnArticle132Section1LCouncilDirective2006112Ec => "VATEX-EU-132-1L",
186            VATEX::ExemptBasedOnArticle132Section1MCouncilDirective2006112Ec => "VATEX-EU-132-1M",
187            VATEX::ExemptBasedOnArticle132Section1NCouncilDirective2006112Ec => "VATEX-EU-132-1N",
188            VATEX::ExemptBasedOnArticle132Section1OCouncilDirective2006112Ec => "VATEX-EU-132-1O",
189            VATEX::ExemptBasedOnArticle132Section1PCouncilDirective2006112Ec => "VATEX-EU-132-1P",
190            VATEX::ExemptBasedOnArticle132Section1QCouncilDirective2006112Ec => "VATEX-EU-132-1Q",
191            VATEX::ExemptBasedOnArticle143CouncilDirective2006112Ec => "VATEX-EU-143",
192            VATEX::ExemptBasedOnArticle143Section1ACouncilDirective2006112Ec => "VATEX-EU-143-1A",
193            VATEX::ExemptBasedOnArticle143Section1BCouncilDirective2006112Ec => "VATEX-EU-143-1B",
194            VATEX::ExemptBasedOnArticle143Section1CCouncilDirective2006112Ec => "VATEX-EU-143-1C",
195            VATEX::ExemptBasedOnArticle143Section1DCouncilDirective2006112Ec => "VATEX-EU-143-1D",
196            VATEX::ExemptBasedOnArticle143Section1ECouncilDirective2006112Ec => "VATEX-EU-143-1E",
197            VATEX::ExemptBasedOnArticle143Section1FCouncilDirective2006112Ec => "VATEX-EU-143-1F",
198            VATEX::ExemptBasedOnArticle143Section1FaCouncilDirective2006112Ec => "VATEX-EU-143-1FA",
199            VATEX::ExemptBasedOnArticle143Section1GCouncilDirective2006112Ec => "VATEX-EU-143-1G",
200            VATEX::ExemptBasedOnArticle143Section1HCouncilDirective2006112Ec => "VATEX-EU-143-1H",
201            VATEX::ExemptBasedOnArticle143Section1ICouncilDirective2006112Ec => "VATEX-EU-143-1I",
202            VATEX::ExemptBasedOnArticle143Section1JCouncilDirective2006112Ec => "VATEX-EU-143-1J",
203            VATEX::ExemptBasedOnArticle143Section1KCouncilDirective2006112Ec => "VATEX-EU-143-1K",
204            VATEX::ExemptBasedOnArticle143Section1LCouncilDirective2006112Ec => "VATEX-EU-143-1L",
205            VATEX::ExemptBasedOnArticle144CouncilDirective2006112Ec => "VATEX-EU-144",
206            VATEX::ExemptBasedOnArticle146Section1ECouncilDirective2006112Ec => "VATEX-EU-146-1E",
207            VATEX::ExemptBasedOnArticle148CouncilDirective2006112Ec => "VATEX-EU-148",
208            VATEX::ExemptBasedOnArticle148SectionACouncilDirective2006112Ec => "VATEX-EU-148-A",
209            VATEX::ExemptBasedOnArticle148SectionBCouncilDirective2006112Ec => "VATEX-EU-148-B",
210            VATEX::ExemptBasedOnArticle148SectionCCouncilDirective2006112Ec => "VATEX-EU-148-C",
211            VATEX::ExemptBasedOnArticle148SectionDCouncilDirective2006112Ec => "VATEX-EU-148-D",
212            VATEX::ExemptBasedOnArticle148SectionECouncilDirective2006112Ec => "VATEX-EU-148-E",
213            VATEX::ExemptBasedOnArticle148SectionFCouncilDirective2006112Ec => "VATEX-EU-148-F",
214            VATEX::ExemptBasedOnArticle148SectionGCouncilDirective2006112Ec => "VATEX-EU-148-G",
215            VATEX::ExemptBasedOnArticle151CouncilDirective2006112Ec => "VATEX-EU-151",
216            VATEX::ExemptBasedOnArticle151Section1ACouncilDirective2006112Ec => "VATEX-EU-151-1A",
217            VATEX::ExemptBasedOnArticle151Section1AaCouncilDirective2006112Ec => "VATEX-EU-151-1AA",
218            VATEX::ExemptBasedOnArticle151Section1BCouncilDirective2006112Ec => "VATEX-EU-151-1B",
219            VATEX::ExemptBasedOnArticle151Section1CCouncilDirective2006112Ec => "VATEX-EU-151-1C",
220            VATEX::ExemptBasedOnArticle151Section1DCouncilDirective2006112Ec => "VATEX-EU-151-1D",
221            VATEX::ExemptBasedOnArticle151Section1ECouncilDirective2006112Ec => "VATEX-EU-151-1E",
222            VATEX::ExemptBasedOnArticle159CouncilDirective2006112Ec => "VATEX-EU-159",
223            VATEX::ExemptBasedOnArticle309CouncilDirective2006112Ec => "VATEX-EU-309",
224            VATEX::ReverseCharge => "VATEX-EU-AE",
225            VATEX::TravelAgentsVatScheme => "VATEX-EU-D",
226            VATEX::SecondHandGoodsVatScheme => "VATEX-EU-F",
227            VATEX::ExportOutsideEu => "VATEX-EU-G",
228            VATEX::WorksArtVatScheme => "VATEX-EU-I",
229            VATEX::IntraCommunitySupply => "VATEX-EU-IC",
230            VATEX::CollectorsItemsAndAntiquesVatScheme => "VATEX-EU-J",
231            VATEX::NotSubjectToVat => "VATEX-EU-O",
232            VATEX::FranceDomesticVatFranchiseInBase => "VATEX-FR-FRANCHISE",
233            VATEX::FranceDomesticCreditNotesWithoutVatDueToSupplierForfeitVatForDiscount => {
234                "VATEX-FR-CNWVAT"
235            }
236        }
237    }
238}
239
240impl crate::Description for VATEX {
241    fn description(self) -> &'static str {
242        match self {
243            VATEX::ExemptBasedOnArticle79PointCCouncilDirective2006112Ec => "Exempt based on article 79, point c of Council Directive 2006/112/EC",
244            VATEX::ExemptBasedOnArticle132CouncilDirective2006112Ec => "Exempt based on article 132 of Council Directive 2006/112/EC",
245            VATEX::ExemptBasedOnArticle132Section1ACouncilDirective2006112Ec => "Exempt based on article 132, section 1 (a) of Council Directive 2006/112/EC",
246            VATEX::ExemptBasedOnArticle132Section1BCouncilDirective2006112Ec => "Exempt based on article 132, section 1 (b) of Council Directive 2006/112/EC",
247            VATEX::ExemptBasedOnArticle132Section1CCouncilDirective2006112Ec => "Exempt based on article 132, section 1 (c) of Council Directive 2006/112/EC",
248            VATEX::ExemptBasedOnArticle132Section1DCouncilDirective2006112Ec => "Exempt based on article 132, section 1 (d) of Council Directive 2006/112/EC",
249            VATEX::ExemptBasedOnArticle132Section1ECouncilDirective2006112Ec => "Exempt based on article 132, section 1 (e) of Council Directive 2006/112/EC",
250            VATEX::ExemptBasedOnArticle132Section1FCouncilDirective2006112Ec => "Exempt based on article 132, section 1 (f) of Council Directive 2006/112/EC",
251            VATEX::ExemptBasedOnArticle132Section1GCouncilDirective2006112Ec => "Exempt based on article 132, section 1 (g) of Council Directive 2006/112/EC",
252            VATEX::ExemptBasedOnArticle132Section1HCouncilDirective2006112Ec => "Exempt based on article 132, section 1 (h) of Council Directive 2006/112/EC",
253            VATEX::ExemptBasedOnArticle132Section1ICouncilDirective2006112Ec => "Exempt based on article 132, section 1 (i) of Council Directive 2006/112/EC",
254            VATEX::ExemptBasedOnArticle132Section1JCouncilDirective2006112Ec => "Exempt based on article 132, section 1 (j) of Council Directive 2006/112/EC",
255            VATEX::ExemptBasedOnArticle132Section1KCouncilDirective2006112Ec => "Exempt based on article 132, section 1 (k) of Council Directive 2006/112/EC",
256            VATEX::ExemptBasedOnArticle132Section1LCouncilDirective2006112Ec => "Exempt based on article 132, section 1 (l) of Council Directive 2006/112/EC",
257            VATEX::ExemptBasedOnArticle132Section1MCouncilDirective2006112Ec => "Exempt based on article 132, section 1 (m) of Council Directive 2006/112/EC",
258            VATEX::ExemptBasedOnArticle132Section1NCouncilDirective2006112Ec => "Exempt based on article 132, section 1 (n) of Council Directive 2006/112/EC",
259            VATEX::ExemptBasedOnArticle132Section1OCouncilDirective2006112Ec => "Exempt based on article 132, section 1 (o) of Council Directive 2006/112/EC",
260            VATEX::ExemptBasedOnArticle132Section1PCouncilDirective2006112Ec => "Exempt based on article 132, section 1 (p) of Council Directive 2006/112/EC",
261            VATEX::ExemptBasedOnArticle132Section1QCouncilDirective2006112Ec => "Exempt based on article 132, section 1 (q) of Council Directive 2006/112/EC",
262            VATEX::ExemptBasedOnArticle143CouncilDirective2006112Ec => "Exempt based on article 143 of Council Directive 2006/112/EC",
263            VATEX::ExemptBasedOnArticle143Section1ACouncilDirective2006112Ec => "Exempt based on article 143, section 1 (a) of Council Directive 2006/112/EC",
264            VATEX::ExemptBasedOnArticle143Section1BCouncilDirective2006112Ec => "Exempt based on article 143, section 1 (b) of Council Directive 2006/112/EC",
265            VATEX::ExemptBasedOnArticle143Section1CCouncilDirective2006112Ec => "Exempt based on article 143, section 1 (c) of Council Directive 2006/112/EC",
266            VATEX::ExemptBasedOnArticle143Section1DCouncilDirective2006112Ec => "Exempt based on article 143, section 1 (d) of Council Directive 2006/112/EC",
267            VATEX::ExemptBasedOnArticle143Section1ECouncilDirective2006112Ec => "Exempt based on article 143, section 1 (e) of Council Directive 2006/112/EC",
268            VATEX::ExemptBasedOnArticle143Section1FCouncilDirective2006112Ec => "Exempt based on article 143, section 1 (f) of Council Directive 2006/112/EC",
269            VATEX::ExemptBasedOnArticle143Section1FaCouncilDirective2006112Ec => "Exempt based on article 143, section 1 (fa) of Council Directive 2006/112/EC",
270            VATEX::ExemptBasedOnArticle143Section1GCouncilDirective2006112Ec => "Exempt based on article 143, section 1 (g) of Council Directive 2006/112/EC",
271            VATEX::ExemptBasedOnArticle143Section1HCouncilDirective2006112Ec => "Exempt based on article 143, section 1 (h) of Council Directive 2006/112/EC",
272            VATEX::ExemptBasedOnArticle143Section1ICouncilDirective2006112Ec => "Exempt based on article 143, section 1 (i) of Council Directive 2006/112/EC",
273            VATEX::ExemptBasedOnArticle143Section1JCouncilDirective2006112Ec => "Exempt based on article 143, section 1 (j) of Council Directive 2006/112/EC",
274            VATEX::ExemptBasedOnArticle143Section1KCouncilDirective2006112Ec => "Exempt based on article 143, section 1 (k) of Council Directive 2006/112/EC",
275            VATEX::ExemptBasedOnArticle143Section1LCouncilDirective2006112Ec => "Exempt based on article 143, section 1 (l) of Council Directive 2006/112/EC",
276            VATEX::ExemptBasedOnArticle144CouncilDirective2006112Ec => "Exempt based on article 144 of Council Directive 2006/112/EC",
277            VATEX::ExemptBasedOnArticle146Section1ECouncilDirective2006112Ec => "Exempt based on article 146 section 1 (e) of Council Directive 2006/112/EC",
278            VATEX::ExemptBasedOnArticle148CouncilDirective2006112Ec => "Exempt based on article 148 of Council Directive 2006/112/EC",
279            VATEX::ExemptBasedOnArticle148SectionACouncilDirective2006112Ec => "Exempt based on article 148, section (a) of Council Directive 2006/112/EC",
280            VATEX::ExemptBasedOnArticle148SectionBCouncilDirective2006112Ec => "Exempt based on article 148, section (b) of Council Directive 2006/112/EC",
281            VATEX::ExemptBasedOnArticle148SectionCCouncilDirective2006112Ec => "Exempt based on article 148, section (c) of Council Directive 2006/112/EC",
282            VATEX::ExemptBasedOnArticle148SectionDCouncilDirective2006112Ec => "Exempt based on article 148, section (d) of Council Directive 2006/112/EC",
283            VATEX::ExemptBasedOnArticle148SectionECouncilDirective2006112Ec => "Exempt based on article 148, section (e) of Council Directive 2006/112/EC",
284            VATEX::ExemptBasedOnArticle148SectionFCouncilDirective2006112Ec => "Exempt based on article 148, section (f) of Council Directive 2006/112/EC",
285            VATEX::ExemptBasedOnArticle148SectionGCouncilDirective2006112Ec => "Exempt based on article 148, section (g) of Council Directive 2006/112/EC",
286            VATEX::ExemptBasedOnArticle151CouncilDirective2006112Ec => "Exempt based on article 151 of Council Directive 2006/112/EC",
287            VATEX::ExemptBasedOnArticle151Section1ACouncilDirective2006112Ec => "Exempt based on article 151, section 1 (a) of Council Directive 2006/112/EC ",
288            VATEX::ExemptBasedOnArticle151Section1AaCouncilDirective2006112Ec => "Exempt based on article 151, section 1 (aa) of Council Directive 2006/112/EC ",
289            VATEX::ExemptBasedOnArticle151Section1BCouncilDirective2006112Ec => "Exempt based on article 151, section 1 (b) of Council Directive 2006/112/EC ",
290            VATEX::ExemptBasedOnArticle151Section1CCouncilDirective2006112Ec => "Exempt based on article 151, section 1 (c) of Council Directive 2006/112/EC ",
291            VATEX::ExemptBasedOnArticle151Section1DCouncilDirective2006112Ec => "Exempt based on article 151, section 1 (d) of Council Directive 2006/112/EC ",
292            VATEX::ExemptBasedOnArticle151Section1ECouncilDirective2006112Ec => "Exempt based on article 151, section 1 (e) of Council Directive 2006/112/EC ",
293            VATEX::ExemptBasedOnArticle159CouncilDirective2006112Ec => "Exempt based on article 159 of Council Directive 2006/112/EC",
294            VATEX::ExemptBasedOnArticle309CouncilDirective2006112Ec => "Exempt based on article 309 of Council Directive 2006/112/EC ",
295            VATEX::ReverseCharge => "Reverse charge",
296            VATEX::TravelAgentsVatScheme => "Travel agents VAT scheme.",
297            VATEX::SecondHandGoodsVatScheme => "Second hand goods VAT scheme.",
298            VATEX::ExportOutsideEu => "Export outside the EU",
299            VATEX::WorksArtVatScheme => "Works of art VAT scheme.",
300            VATEX::IntraCommunitySupply => "Intra-community supply",
301            VATEX::CollectorsItemsAndAntiquesVatScheme => "Collectors items and antiques VAT scheme.",
302            VATEX::NotSubjectToVat => "Not subject to VAT",
303            VATEX::FranceDomesticVatFranchiseInBase => "France domestic VAT franchise in base",
304            VATEX::FranceDomesticCreditNotesWithoutVatDueToSupplierForfeitVatForDiscount => "France domestic Credit Notes without VAT, due to supplier forfeit of VAT for discount",
305        }
306    }
307}
308
309impl crate::FromCode for VATEX {
310    fn from_code(code: &str) -> Option<Self>
311    where
312        Self: Sized,
313    {
314        match code {
315            "VATEX-EU-79-C" => Some(VATEX::ExemptBasedOnArticle79PointCCouncilDirective2006112Ec),
316            "VATEX-EU-132" => Some(VATEX::ExemptBasedOnArticle132CouncilDirective2006112Ec),
317            "VATEX-EU-132-1A" => {
318                Some(VATEX::ExemptBasedOnArticle132Section1ACouncilDirective2006112Ec)
319            }
320            "VATEX-EU-132-1B" => {
321                Some(VATEX::ExemptBasedOnArticle132Section1BCouncilDirective2006112Ec)
322            }
323            "VATEX-EU-132-1C" => {
324                Some(VATEX::ExemptBasedOnArticle132Section1CCouncilDirective2006112Ec)
325            }
326            "VATEX-EU-132-1D" => {
327                Some(VATEX::ExemptBasedOnArticle132Section1DCouncilDirective2006112Ec)
328            }
329            "VATEX-EU-132-1E" => {
330                Some(VATEX::ExemptBasedOnArticle132Section1ECouncilDirective2006112Ec)
331            }
332            "VATEX-EU-132-1F" => {
333                Some(VATEX::ExemptBasedOnArticle132Section1FCouncilDirective2006112Ec)
334            }
335            "VATEX-EU-132-1G" => {
336                Some(VATEX::ExemptBasedOnArticle132Section1GCouncilDirective2006112Ec)
337            }
338            "VATEX-EU-132-1H" => {
339                Some(VATEX::ExemptBasedOnArticle132Section1HCouncilDirective2006112Ec)
340            }
341            "VATEX-EU-132-1I" => {
342                Some(VATEX::ExemptBasedOnArticle132Section1ICouncilDirective2006112Ec)
343            }
344            "VATEX-EU-132-1J" => {
345                Some(VATEX::ExemptBasedOnArticle132Section1JCouncilDirective2006112Ec)
346            }
347            "VATEX-EU-132-1K" => {
348                Some(VATEX::ExemptBasedOnArticle132Section1KCouncilDirective2006112Ec)
349            }
350            "VATEX-EU-132-1L" => {
351                Some(VATEX::ExemptBasedOnArticle132Section1LCouncilDirective2006112Ec)
352            }
353            "VATEX-EU-132-1M" => {
354                Some(VATEX::ExemptBasedOnArticle132Section1MCouncilDirective2006112Ec)
355            }
356            "VATEX-EU-132-1N" => {
357                Some(VATEX::ExemptBasedOnArticle132Section1NCouncilDirective2006112Ec)
358            }
359            "VATEX-EU-132-1O" => {
360                Some(VATEX::ExemptBasedOnArticle132Section1OCouncilDirective2006112Ec)
361            }
362            "VATEX-EU-132-1P" => {
363                Some(VATEX::ExemptBasedOnArticle132Section1PCouncilDirective2006112Ec)
364            }
365            "VATEX-EU-132-1Q" => {
366                Some(VATEX::ExemptBasedOnArticle132Section1QCouncilDirective2006112Ec)
367            }
368            "VATEX-EU-143" => Some(VATEX::ExemptBasedOnArticle143CouncilDirective2006112Ec),
369            "VATEX-EU-143-1A" => {
370                Some(VATEX::ExemptBasedOnArticle143Section1ACouncilDirective2006112Ec)
371            }
372            "VATEX-EU-143-1B" => {
373                Some(VATEX::ExemptBasedOnArticle143Section1BCouncilDirective2006112Ec)
374            }
375            "VATEX-EU-143-1C" => {
376                Some(VATEX::ExemptBasedOnArticle143Section1CCouncilDirective2006112Ec)
377            }
378            "VATEX-EU-143-1D" => {
379                Some(VATEX::ExemptBasedOnArticle143Section1DCouncilDirective2006112Ec)
380            }
381            "VATEX-EU-143-1E" => {
382                Some(VATEX::ExemptBasedOnArticle143Section1ECouncilDirective2006112Ec)
383            }
384            "VATEX-EU-143-1F" => {
385                Some(VATEX::ExemptBasedOnArticle143Section1FCouncilDirective2006112Ec)
386            }
387            "VATEX-EU-143-1FA" => {
388                Some(VATEX::ExemptBasedOnArticle143Section1FaCouncilDirective2006112Ec)
389            }
390            "VATEX-EU-143-1G" => {
391                Some(VATEX::ExemptBasedOnArticle143Section1GCouncilDirective2006112Ec)
392            }
393            "VATEX-EU-143-1H" => {
394                Some(VATEX::ExemptBasedOnArticle143Section1HCouncilDirective2006112Ec)
395            }
396            "VATEX-EU-143-1I" => {
397                Some(VATEX::ExemptBasedOnArticle143Section1ICouncilDirective2006112Ec)
398            }
399            "VATEX-EU-143-1J" => {
400                Some(VATEX::ExemptBasedOnArticle143Section1JCouncilDirective2006112Ec)
401            }
402            "VATEX-EU-143-1K" => {
403                Some(VATEX::ExemptBasedOnArticle143Section1KCouncilDirective2006112Ec)
404            }
405            "VATEX-EU-143-1L" => {
406                Some(VATEX::ExemptBasedOnArticle143Section1LCouncilDirective2006112Ec)
407            }
408            "VATEX-EU-144" => Some(VATEX::ExemptBasedOnArticle144CouncilDirective2006112Ec),
409            "VATEX-EU-146-1E" => {
410                Some(VATEX::ExemptBasedOnArticle146Section1ECouncilDirective2006112Ec)
411            }
412            "VATEX-EU-148" => Some(VATEX::ExemptBasedOnArticle148CouncilDirective2006112Ec),
413            "VATEX-EU-148-A" => {
414                Some(VATEX::ExemptBasedOnArticle148SectionACouncilDirective2006112Ec)
415            }
416            "VATEX-EU-148-B" => {
417                Some(VATEX::ExemptBasedOnArticle148SectionBCouncilDirective2006112Ec)
418            }
419            "VATEX-EU-148-C" => {
420                Some(VATEX::ExemptBasedOnArticle148SectionCCouncilDirective2006112Ec)
421            }
422            "VATEX-EU-148-D" => {
423                Some(VATEX::ExemptBasedOnArticle148SectionDCouncilDirective2006112Ec)
424            }
425            "VATEX-EU-148-E" => {
426                Some(VATEX::ExemptBasedOnArticle148SectionECouncilDirective2006112Ec)
427            }
428            "VATEX-EU-148-F" => {
429                Some(VATEX::ExemptBasedOnArticle148SectionFCouncilDirective2006112Ec)
430            }
431            "VATEX-EU-148-G" => {
432                Some(VATEX::ExemptBasedOnArticle148SectionGCouncilDirective2006112Ec)
433            }
434            "VATEX-EU-151" => Some(VATEX::ExemptBasedOnArticle151CouncilDirective2006112Ec),
435            "VATEX-EU-151-1A" => {
436                Some(VATEX::ExemptBasedOnArticle151Section1ACouncilDirective2006112Ec)
437            }
438            "VATEX-EU-151-1AA" => {
439                Some(VATEX::ExemptBasedOnArticle151Section1AaCouncilDirective2006112Ec)
440            }
441            "VATEX-EU-151-1B" => {
442                Some(VATEX::ExemptBasedOnArticle151Section1BCouncilDirective2006112Ec)
443            }
444            "VATEX-EU-151-1C" => {
445                Some(VATEX::ExemptBasedOnArticle151Section1CCouncilDirective2006112Ec)
446            }
447            "VATEX-EU-151-1D" => {
448                Some(VATEX::ExemptBasedOnArticle151Section1DCouncilDirective2006112Ec)
449            }
450            "VATEX-EU-151-1E" => {
451                Some(VATEX::ExemptBasedOnArticle151Section1ECouncilDirective2006112Ec)
452            }
453            "VATEX-EU-159" => Some(VATEX::ExemptBasedOnArticle159CouncilDirective2006112Ec),
454            "VATEX-EU-309" => Some(VATEX::ExemptBasedOnArticle309CouncilDirective2006112Ec),
455            "VATEX-EU-AE" => Some(VATEX::ReverseCharge),
456            "VATEX-EU-D" => Some(VATEX::TravelAgentsVatScheme),
457            "VATEX-EU-F" => Some(VATEX::SecondHandGoodsVatScheme),
458            "VATEX-EU-G" => Some(VATEX::ExportOutsideEu),
459            "VATEX-EU-I" => Some(VATEX::WorksArtVatScheme),
460            "VATEX-EU-IC" => Some(VATEX::IntraCommunitySupply),
461            "VATEX-EU-J" => Some(VATEX::CollectorsItemsAndAntiquesVatScheme),
462            "VATEX-EU-O" => Some(VATEX::NotSubjectToVat),
463            "VATEX-FR-FRANCHISE" => Some(VATEX::FranceDomesticVatFranchiseInBase),
464            "VATEX-FR-CNWVAT" => {
465                Some(VATEX::FranceDomesticCreditNotesWithoutVatDueToSupplierForfeitVatForDiscount)
466            }
467            _ => None,
468        }
469    }
470}