001/*
002 * Copyright (C) 2014 konik.io
003 *
004 * This file is part of Konik library.
005 *
006 * Konik library is free software: you can redistribute it and/or modify
007 * it under the terms of the GNU Affero General Public License as published by
008 * the Free Software Foundation, either version 3 of the License, or
009 * (at your option) any later version.
010 *
011 * Konik library is distributed in the hope that it will be useful,
012 * but WITHOUT ANY WARRANTY; without even the implied warranty of
013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
014 * GNU Affero General Public License for more details.
015 *
016 * You should have received a copy of the GNU Affero General Public License
017 * along with Konik library.  If not, see <http://www.gnu.org/licenses/>.
018 */
019package io.konik.zugferd.unece.codes;
020
021import javax.xml.bind.annotation.XmlEnum;
022import javax.xml.bind.annotation.XmlType;
023
024/**
025 * = Tax Code
026 * 
027 * Code specifying a type of duty, tax or fee.
028 * 
029 * 
030 * @see http://www.unece.org/trade/untdid/d13b/tred/tred5153.htm[UN/EDIFACT 5153 Duty or tax or fee type name code]
031 */
032@XmlType(name = "TaxTypeCodeType")
033@XmlEnum
034public enum TaxCode {
035
036   /**
037    * A tax levied on the volume of petroleum being
038    * transacted.
039    */
040   AAA("Petroleum tax"),
041   /**
042    * Countervailing duty paid in cash prior to a formal
043    * finding of subsidization by Customs.
044    */
045   AAB("Provisional countervailing duty cash"),
046   /**
047    * Countervailing duty paid by posting a bond during an
048    * investigation period prior to a formal decision on
049    * subsidization by Customs.
050    */
051   AAC("Provisional countervailing duty bond"),
052   /**
053    * A tax levied on tobacco products.
054    */
055   AAD("Tobacco tax"),
056   /**
057    * General fee or tax for the use of energy.
058    */
059   AAE("Energy fee"),
060   /**
061    * A tax levied specifically on coffee products.
062    */
063   AAF("Coffee tax"),
064   /**
065    * A harmonized sales tax consisting of a goods and service
066    * tax, a Canadian provincial sales tax and, as applicable,
067    * a Quebec sales tax which is recoverable.
068    */
069   AAG("Harmonised sales tax, Canadian"),
070   /**
071    * A sales tax charged within the Canadian province of
072    * Quebec which is recoverable.
073    */
074   AAH("Quebec sales tax"),
075   /**
076    * A sales tax charged within Canadian provinces which is
077    * non-recoverable.
078    */
079   AAI("Canadian provincial sales tax"),
080   /**
081    * A tax levied on a replacement part, where the original
082    * part is returned.
083    */
084   AAJ("Tax on replacement part"),
085   /**
086    * Tax that is levied specifically on products containing
087    * mineral oil.
088    */
089   AAK("Mineral oil tax"),
090   /**
091    * To indicate a special type of tax.
092    */
093   AAL("Special tax"),
094   /**
095    * Duty applied to goods ruled to have been dumped in an
096    * import market at a price lower than that in the
097    * exporter's domestic market.
098    */
099   ADD("Anti-dumping duty"),
100   /**
101    * Tax required in Italy, which may be fixed or graduated
102    * in various circumstances (e.g. VAT exempt documents or
103    * bank receipts).
104    */
105   BOL("Stamp duty (Imposta di Bollo)"),
106   /**
107    * Levy imposed on agricultural products where there is a
108    * difference between the selling price between trading
109    * countries.
110    */
111   CAP("Agricultural levy"),
112   /**
113    * A tax that is levied on the value of the automobile.
114    */
115   CAR("Car tax"),
116   /**
117    * Italian Paper consortium tax.
118    */
119   COC("Paper consortium tax (Italy)"),
120   /**
121    * Tax related to a specified commodity, e.g. illuminants,
122    * salts.
123    */
124   CST("Commodity specific tax"),
125   /**
126    * Duties laid down in the Customs tariff, to which goods
127    * are liable on entering or leaving the Customs territory
128    * (CCC).
129    */
130   CUD("Customs duty"),
131   /**
132    * A duty on imported goods applied for compensate for
133    * subsidies granted to those goods in the exporting
134    * country.
135    */
136   CVD("Countervailing duty"),
137   /**
138    * Tax assessed for funding or assuring environmental
139    * protection or clean-up.
140    */
141   ENV("Environmental tax"),
142   /**
143    * Customs or fiscal authorities code to identify a
144    * specific or ad valorem levy on a specific commodity,
145    * applied either domestically or at time of importation.
146    */
147   EXC("Excise duty"),
148   /**
149    * Monetary rebate given to the seller in certain
150    * circumstances when agricultural products are exported.
151    */
152   EXP("Agricultural export rebate"),
153   /**
154    * Tax levied by the federal government on the manufacture
155    * of specific items.
156    */
157   FET("Federal excise tax"),
158   /**
159    * No tax levied.
160    */
161   FRE("Free"),
162   /**
163    * General tax for construction.
164    */
165   GCN("General construction tax"),
166   /**
167    * Tax levied on the final consumption of goods and
168    * services throughout the production and distribution
169    * chain.
170    */
171   GST("Goods and services tax"),
172   /**
173    * Tax of illuminants.
174    */
175   ILL("Illuminants tax"),
176   /**
177    * Tax assessed on imports.
178    */
179   IMP("Import tax"),
180   /**
181    * A tax levied based on an individual's ability to pay.
182    */
183   IND("Individual tax"),
184   /**
185    * Government assessed charge for permit to do business.
186    */
187   LAC("Business license fee"),
188   /**
189    * Local tax for construction.
190    */
191   LCN("Local construction tax"),
192   /**
193    * Fee levied on a vessel to pay for port navigation
194    * lights.
195    */
196   LDP("Light dues payable"),
197   /**
198    * Assessment charges on sale of goods or services by city,
199    * borough country or other taxing authorities below state
200    * or provincial level.
201    */
202   LOC("Local sales tax"),
203   /**
204    * Tax imposed for clean-up of leaky underground storage
205    * tanks.
206    */
207   LST("Lust tax"),
208   /**
209    * Levy on Common Agricultural Policy (European Union)
210    * goods used to compensate for fluctuating currencies
211    * between member states.
212    */
213   MCA("Monetary compensatory amount"),
214   /**
215    * Duty paid and held on deposit, by Customs, during an
216    * investigation period prior to a final decision being
217    * made on any aspect related to imported goods (except
218    * valuation) by Customs.
219    */
220   MCD("Miscellaneous cash deposit"),
221   /**
222    * Unspecified, miscellaneous tax charges.
223    */
224   OTH("Other taxes"),
225   /**
226    * Anti-dumping duty paid by posting a bond during an
227    * investigation period prior to a formal decision on
228    * dumping by Customs.
229    */
230   PDB("Provisional duty bond"),
231   /**
232    * Anti-dumping duty paid in cash prior to a formal finding
233    * of dumping by Customs.
234    */
235   PDC("Provisional duty cash"),
236   /**
237    * Duties laid down in the Customs tariff, to which goods
238    * are liable on entering or leaving the Customs territory
239    * falling under a preferential regime such as Generalised
240    * System of Preferences (GSP).
241    */
242   PRF("Preference duty"),
243   /**
244    * Special tax for construction.
245    */
246   SCN("Special construction tax"),
247   /**
248    * Social securities share of the invoice amount to be paid
249    * directly to the social securities collector.
250    */
251   SSS("Shifted social securities"),
252   /**
253    * All applicable sale taxes by authorities at the state or
254    * provincial level, below national level.
255    */
256   STT("State/provincial sales tax"),
257   /**
258    * Duty suspended or deferred from payment.
259    */
260   SUP("Suspended duty"),
261   /**
262    * A tax or duty applied on and in addition to existing
263    * duties and taxes.
264    */
265   SUR("Surtax"),
266   /**
267    * Wage tax share of the invoice amount to be paid directly
268    * to the tax collector(s office).
269    */
270   SWT("Shifted wage tax"),
271   /**
272    * A tax levied based on the type of alcohol being
273    * obtained.
274    */
275   TAC("Alcohol mark tax"),
276   /**
277    * The summary amount of all taxes.
278    */
279   TOT("Total"),
280   /**
281    * Tax levied on the total sales/turnover of a corporation.
282    */
283   TOX("Turnover tax"),
284   /**
285    * Tax levied based on the vessel's net tonnage.
286    */
287   TTA("Tonnage taxes"),
288   /**
289    * Duty paid and held on deposit, by Customs, during an
290    * investigation period prior to a formal decision on
291    * valuation of the goods being made.
292    */
293   VAD("Valuation deposit"),
294   /**
295    * A tax on domestic or imported goods applied to the value
296    * added at each stage in the production/distribution
297    * cycle.
298    */
299   VAT("Value added tax");
300
301   /** The description for the tax code */
302   private final String description;
303   
304   private TaxCode(String description) {
305      this.description = description;
306   }
307   /**
308    * Gets the code.
309    *
310    * @return the code
311    */
312   public String getCode() {
313      return name();
314   }
315   
316   /**
317    * Gets the description.
318    *
319    * @return the description
320    */
321   public String getDescription() {
322      return description;
323   }
324   /**
325    * Gets the type by code.
326    *
327    * @param description the enum code
328    * @return the type by code or {@link IllegalArgumentException}
329    */
330   public static TaxCode getByCode(String description) {
331      return valueOf(description);
332   }
333
334   @Override
335   public String toString() {
336      return new StringBuilder().append("[").append(getCode()).append("] ").append(description).toString();
337   }
338}