zugferd_code_lists/zugferd_2_3_3/
charge.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 Charge {
7    /// Advertising
8    Advertising,
9    /// Telecommunication
10    Telecommunication,
11    /// Technical modification
12    TechnicalModification,
13    /// Job-order production
14    JobOrderProduction,
15    /// Outlays
16    Outlays,
17    /// Off-premises
18    OffPremises,
19    /// Additional processing
20    AdditionalProcessing,
21    /// Attesting
22    Attesting,
23    /// Acceptance
24    Acceptance,
25    /// Rush delivery
26    RushDelivery,
27    /// Special construction
28    SpecialConstruction,
29    /// Airport facilities
30    AirportFacilities,
31    /// Concession
32    Concession,
33    /// Compulsory storage
34    CompulsoryStorage,
35    /// Fuel removal
36    FuelRemoval,
37    /// Into plane
38    IntoPlane,
39    /// Overtime
40    Overtime,
41    /// Tooling
42    Tooling,
43    /// Miscellaneous
44    Miscellaneous,
45    /// Additional packaging
46    AdditionalPackaging,
47    /// Dunnage
48    Dunnage,
49    /// Containerisation
50    Containerisation,
51    /// Carton packing
52    CartonPacking,
53    /// Hessian wrapped
54    HessianWrapped,
55    /// Polyethylene wrap packing
56    PolyethyleneWrapPacking,
57    /// Miscellaneous treatment
58    MiscellaneousTreatment,
59    /// Enamelling treatment
60    EnamellingTreatment,
61    /// Heat treatment
62    HeatTreatment,
63    /// Plating treatment
64    PlatingTreatment,
65    /// Painting
66    Painting,
67    /// Polishing
68    Polishing,
69    /// Priming
70    Priming,
71    /// Preservation treatment
72    PreservationTreatment,
73    /// Fitting
74    Fitting,
75    /// Consolidation
76    Consolidation,
77    /// Bill of lading
78    BillLading,
79    /// Airbag
80    Airbag,
81    /// Transfer
82    Transfer,
83    /// Slipsheet
84    Slipsheet,
85    /// Binding
86    Binding,
87    /// Repair or replacement of broken returnable package
88    RepairOrReplacementBrokenReturnablePackage,
89    /// Efficient logistics
90    EfficientLogistics,
91    /// Merchandising
92    Merchandising,
93    /// Product mix
94    ProductMix,
95    /// Other services
96    OtherServices,
97    /// Pick-up
98    PickUp,
99    /// Chronic illness
100    ChronicIllness,
101    /// New product introduction
102    NewProductIntroduction,
103    /// Direct delivery
104    DirectDelivery,
105    /// Diversion
106    Diversion,
107    /// Disconnect
108    Disconnect,
109    /// Distribution
110    Distribution,
111    /// Handling of hazardous cargo
112    HandlingHazardousCargo,
113    /// Rents and leases
114    RentsAndLeases,
115    /// Location differential
116    LocationDifferential,
117    /// Aircraft refueling
118    AircraftRefueling,
119    /// Fuel shipped into storage
120    FuelShippedIntoStorage,
121    /// Cash on delivery
122    CashOnDelivery,
123    /// Small order processing service
124    SmallOrderProcessingService,
125    /// Clerical or administrative services
126    ClericalOrAdministrativeServices,
127    /// Guarantee
128    Guarantee,
129    /// Collection and recycling
130    CollectionAndRecycling,
131    /// Copyright fee collection
132    CopyrightFeeCollection,
133    /// Veterinary inspection service
134    VeterinaryInspectionService,
135    /// Pensioner service
136    PensionerService,
137    /// Medicine free pass holder
138    MedicineFreePassHolder,
139    /// Environmental protection service
140    EnvironmentalProtectionService,
141    /// Environmental clean-up service
142    EnvironmentalCleanUpService,
143    /// National cheque processing service outside account area
144    NationalChequeProcessingServiceOutsideAccountArea,
145    /// National payment service outside account area
146    NationalPaymentServiceOutsideAccountArea,
147    /// National payment service within account area
148    NationalPaymentServiceWithinAccountArea,
149    /// Adjustments
150    Adjustments,
151    /// Authentication
152    Authentication,
153    /// Cataloguing
154    Cataloguing,
155    /// Cartage
156    Cartage,
157    /// Certification
158    Certification,
159    /// Certificate of conformance
160    CertificateConformance,
161    /// Certificate of origin
162    CertificateOrigin,
163    /// Cutting
164    Cutting,
165    /// Consular service
166    ConsularService,
167    /// Customer collection
168    CustomerCollection,
169    /// Payroll payment service
170    PayrollPaymentService,
171    /// Cash transportation
172    CashTransportation,
173    /// Home banking service
174    HomeBankingService,
175    /// Bilateral agreement service
176    BilateralAgreementService,
177    /// Insurance brokerage service
178    InsuranceBrokerageService,
179    /// Cheque generation
180    ChequeGeneration,
181    /// Preferential merchandising location
182    PreferentialMerchandisingLocation,
183    /// Crane
184    Crane,
185    /// Special colour service
186    SpecialColourService,
187    /// Sorting
188    Sorting,
189    /// Battery collection and recycling
190    BatteryCollectionAndRecycling,
191    /// Product take back fee
192    ProductTakeBackFee,
193    /// Quality control released
194    QualityControlReleased,
195    /// Quality control held
196    QualityControlHeld,
197    /// Quality control embargo
198    QualityControlEmbargo,
199    /// Car loading
200    CarLoading,
201    /// Cleaning
202    Cleaning,
203    /// Cigarette stamping
204    CigaretteStamping,
205    /// Count and recount
206    CountAndRecount,
207    /// Layout/design
208    LayoutDesign,
209    /// Assortment allowance
210    AssortmentAllowance,
211    /// Driver assigned unloading
212    DriverAssignedUnloading,
213    /// Debtor bound
214    DebtorBound,
215    /// Dealer allowance
216    DealerAllowance,
217    /// Allowance transferable to the consumer
218    AllowanceTransferableToConsumer,
219    /// Growth of business
220    GrowthBusiness,
221    /// Introduction allowance
222    IntroductionAllowance,
223    /// Multi-buy promotion
224    MultiBuyPromotion,
225    /// Partnership
226    Partnership,
227    /// Return handling
228    ReturnHandling,
229    /// Minimum order not fulfilled charge
230    MinimumOrderNotFulfilledCharge,
231    /// Point of sales threshold allowance
232    PointSalesThresholdAllowance,
233    /// Wholesaling discount
234    WholesalingDiscount,
235    /// Documentary credits transfer commission
236    DocumentaryCreditsTransferCommission,
237    /// Delivery
238    Delivery,
239    /// Engraving
240    Engraving,
241    /// Expediting
242    Expediting,
243    /// Exchange rate guarantee
244    ExchangeRateGuarantee,
245    /// Fabrication
246    Fabrication,
247    /// Freight equalization
248    FreightEqualization,
249    /// Freight extraordinary handling
250    FreightExtraordinaryHandling,
251    /// Freight service
252    FreightService,
253    /// Filling/handling
254    FillingHandling,
255    /// Financing
256    Financing,
257    /// Grinding
258    Grinding,
259    /// Hose
260    Hose,
261    /// Handling
262    Handling,
263    /// Hoisting and hauling
264    HoistingAndHauling,
265    /// Installation
266    Installation,
267    /// Installation and warranty
268    InstallationAndWarranty,
269    /// Inside delivery
270    InsideDelivery,
271    /// Inspection
272    Inspection,
273    /// Installation and training
274    InstallationAndTraining,
275    /// Invoicing
276    Invoicing,
277    /// Koshering
278    Koshering,
279    /// Carrier count
280    CarrierCount,
281    /// Labelling
282    Labelling,
283    /// Labour
284    Labour,
285    /// Repair and return
286    RepairAndReturn,
287    /// Legalisation
288    Legalisation,
289    /// Mounting
290    Mounting,
291    /// Mail invoice
292    MailInvoice,
293    /// Mail invoice to each location
294    MailInvoiceToEachLocation,
295    /// Non-returnable containers
296    NonReturnableContainers,
297    /// Outside cable connectors
298    OutsideCableConnectors,
299    /// Invoice with shipment
300    InvoiceWithShipment,
301    /// Phosphatizing (steel treatment)
302    PhosphatizingSteelTreatment,
303    /// Packing
304    Packing,
305    /// Palletizing
306    Palletizing,
307    /// Price variation
308    PriceVariation,
309    /// Repacking
310    Repacking,
311    /// Repair
312    Repair,
313    /// Returnable container
314    ReturnableContainer,
315    /// Restocking
316    Restocking,
317    /// Re-delivery
318    ReDelivery,
319    /// Refurbishing
320    Refurbishing,
321    /// Rail wagon hire
322    RailWagonHire,
323    /// Loading
324    Loading,
325    /// Salvaging
326    Salvaging,
327    /// Shipping and handling
328    ShippingAndHandling,
329    /// Special packaging
330    SpecialPackaging,
331    /// Stamping
332    Stamping,
333    /// Consignee unload
334    ConsigneeUnload,
335    /// Shrink-wrap
336    ShrinkWrap,
337    /// Special handling
338    SpecialHandling,
339    /// Special finish
340    SpecialFinish,
341    /// Set-up
342    SetUp,
343    /// Tank renting
344    TankRenting,
345    /// Testing
346    Testing,
347    /// Transportation - third party billing
348    TransportationThirdPartyBilling,
349    /// Transportation by vendor
350    TransportationByVendor,
351    /// Drop yard
352    DropYard,
353    /// Drop dock
354    DropDock,
355    /// Warehousing
356    Warehousing,
357    /// Combine all same day shipment
358    CombineAllSameDayShipment,
359    /// Split pick-up
360    SplitPickUp,
361    /// Mutually defined
362    MutuallyDefined,
363}
364
365impl std::fmt::Display for Charge {
366    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
367        write!(f, "{}", <Self as crate::Code>::code(*self))
368    }
369}
370
371impl std::str::FromStr for Charge {
372    type Err = ();
373    fn from_str(s: &str) -> Result<Self, Self::Err> {
374        <Self as crate::FromCode>::from_code(s).ok_or(())
375    }
376}
377
378impl crate::Code for Charge {
379    fn code(self) -> &'static str {
380        match self {
381            Charge::Advertising => "AA",
382            Charge::Telecommunication => "AAA",
383            Charge::TechnicalModification => "AAC",
384            Charge::JobOrderProduction => "AAD",
385            Charge::Outlays => "AAE",
386            Charge::OffPremises => "AAF",
387            Charge::AdditionalProcessing => "AAH",
388            Charge::Attesting => "AAI",
389            Charge::Acceptance => "AAS",
390            Charge::RushDelivery => "AAT",
391            Charge::SpecialConstruction => "AAV",
392            Charge::AirportFacilities => "AAY",
393            Charge::Concession => "AAZ",
394            Charge::CompulsoryStorage => "ABA",
395            Charge::FuelRemoval => "ABB",
396            Charge::IntoPlane => "ABC",
397            Charge::Overtime => "ABD",
398            Charge::Tooling => "ABF",
399            Charge::Miscellaneous => "ABK",
400            Charge::AdditionalPackaging => "ABL",
401            Charge::Dunnage => "ABN",
402            Charge::Containerisation => "ABR",
403            Charge::CartonPacking => "ABS",
404            Charge::HessianWrapped => "ABT",
405            Charge::PolyethyleneWrapPacking => "ABU",
406            Charge::MiscellaneousTreatment => "ACF",
407            Charge::EnamellingTreatment => "ACG",
408            Charge::HeatTreatment => "ACH",
409            Charge::PlatingTreatment => "ACI",
410            Charge::Painting => "ACJ",
411            Charge::Polishing => "ACK",
412            Charge::Priming => "ACL",
413            Charge::PreservationTreatment => "ACM",
414            Charge::Fitting => "ACS",
415            Charge::Consolidation => "ADC",
416            Charge::BillLading => "ADE",
417            Charge::Airbag => "ADJ",
418            Charge::Transfer => "ADK",
419            Charge::Slipsheet => "ADL",
420            Charge::Binding => "ADM",
421            Charge::RepairOrReplacementBrokenReturnablePackage => "ADN",
422            Charge::EfficientLogistics => "ADO",
423            Charge::Merchandising => "ADP",
424            Charge::ProductMix => "ADQ",
425            Charge::OtherServices => "ADR",
426            Charge::PickUp => "ADT",
427            Charge::ChronicIllness => "ADW",
428            Charge::NewProductIntroduction => "ADY",
429            Charge::DirectDelivery => "ADZ",
430            Charge::Diversion => "AEA",
431            Charge::Disconnect => "AEB",
432            Charge::Distribution => "AEC",
433            Charge::HandlingHazardousCargo => "AED",
434            Charge::RentsAndLeases => "AEF",
435            Charge::LocationDifferential => "AEH",
436            Charge::AircraftRefueling => "AEI",
437            Charge::FuelShippedIntoStorage => "AEJ",
438            Charge::CashOnDelivery => "AEK",
439            Charge::SmallOrderProcessingService => "AEL",
440            Charge::ClericalOrAdministrativeServices => "AEM",
441            Charge::Guarantee => "AEN",
442            Charge::CollectionAndRecycling => "AEO",
443            Charge::CopyrightFeeCollection => "AEP",
444            Charge::VeterinaryInspectionService => "AES",
445            Charge::PensionerService => "AET",
446            Charge::MedicineFreePassHolder => "AEU",
447            Charge::EnvironmentalProtectionService => "AEV",
448            Charge::EnvironmentalCleanUpService => "AEW",
449            Charge::NationalChequeProcessingServiceOutsideAccountArea => "AEX",
450            Charge::NationalPaymentServiceOutsideAccountArea => "AEY",
451            Charge::NationalPaymentServiceWithinAccountArea => "AEZ",
452            Charge::Adjustments => "AJ",
453            Charge::Authentication => "AU",
454            Charge::Cataloguing => "CA",
455            Charge::Cartage => "CAB",
456            Charge::Certification => "CAD",
457            Charge::CertificateConformance => "CAE",
458            Charge::CertificateOrigin => "CAF",
459            Charge::Cutting => "CAI",
460            Charge::ConsularService => "CAJ",
461            Charge::CustomerCollection => "CAK",
462            Charge::PayrollPaymentService => "CAL",
463            Charge::CashTransportation => "CAM",
464            Charge::HomeBankingService => "CAN",
465            Charge::BilateralAgreementService => "CAO",
466            Charge::InsuranceBrokerageService => "CAP",
467            Charge::ChequeGeneration => "CAQ",
468            Charge::PreferentialMerchandisingLocation => "CAR",
469            Charge::Crane => "CAS",
470            Charge::SpecialColourService => "CAT",
471            Charge::Sorting => "CAU",
472            Charge::BatteryCollectionAndRecycling => "CAV",
473            Charge::ProductTakeBackFee => "CAW",
474            Charge::QualityControlReleased => "CAX",
475            Charge::QualityControlHeld => "CAY",
476            Charge::QualityControlEmbargo => "CAZ",
477            Charge::CarLoading => "CD",
478            Charge::Cleaning => "CG",
479            Charge::CigaretteStamping => "CS",
480            Charge::CountAndRecount => "CT",
481            Charge::LayoutDesign => "DAB",
482            Charge::AssortmentAllowance => "DAC",
483            Charge::DriverAssignedUnloading => "DAD",
484            Charge::DebtorBound => "DAF",
485            Charge::DealerAllowance => "DAG",
486            Charge::AllowanceTransferableToConsumer => "DAH",
487            Charge::GrowthBusiness => "DAI",
488            Charge::IntroductionAllowance => "DAJ",
489            Charge::MultiBuyPromotion => "DAK",
490            Charge::Partnership => "DAL",
491            Charge::ReturnHandling => "DAM",
492            Charge::MinimumOrderNotFulfilledCharge => "DAN",
493            Charge::PointSalesThresholdAllowance => "DAO",
494            Charge::WholesalingDiscount => "DAP",
495            Charge::DocumentaryCreditsTransferCommission => "DAQ",
496            Charge::Delivery => "DL",
497            Charge::Engraving => "EG",
498            Charge::Expediting => "EP",
499            Charge::ExchangeRateGuarantee => "ER",
500            Charge::Fabrication => "FAA",
501            Charge::FreightEqualization => "FAB",
502            Charge::FreightExtraordinaryHandling => "FAC",
503            Charge::FreightService => "FC",
504            Charge::FillingHandling => "FH",
505            Charge::Financing => "FI",
506            Charge::Grinding => "GAA",
507            Charge::Hose => "HAA",
508            Charge::Handling => "HD",
509            Charge::HoistingAndHauling => "HH",
510            Charge::Installation => "IAA",
511            Charge::InstallationAndWarranty => "IAB",
512            Charge::InsideDelivery => "ID",
513            Charge::Inspection => "IF",
514            Charge::InstallationAndTraining => "IR",
515            Charge::Invoicing => "IS",
516            Charge::Koshering => "KO",
517            Charge::CarrierCount => "L1",
518            Charge::Labelling => "LA",
519            Charge::Labour => "LAA",
520            Charge::RepairAndReturn => "LAB",
521            Charge::Legalisation => "LF",
522            Charge::Mounting => "MAE",
523            Charge::MailInvoice => "MI",
524            Charge::MailInvoiceToEachLocation => "ML",
525            Charge::NonReturnableContainers => "NAA",
526            Charge::OutsideCableConnectors => "OA",
527            Charge::InvoiceWithShipment => "PA",
528            Charge::PhosphatizingSteelTreatment => "PAA",
529            Charge::Packing => "PC",
530            Charge::Palletizing => "PL",
531            Charge::PriceVariation => "PRV",
532            Charge::Repacking => "RAB",
533            Charge::Repair => "RAC",
534            Charge::ReturnableContainer => "RAD",
535            Charge::Restocking => "RAF",
536            Charge::ReDelivery => "RE",
537            Charge::Refurbishing => "RF",
538            Charge::RailWagonHire => "RH",
539            Charge::Loading => "RV",
540            Charge::Salvaging => "SA",
541            Charge::ShippingAndHandling => "SAA",
542            Charge::SpecialPackaging => "SAD",
543            Charge::Stamping => "SAE",
544            Charge::ConsigneeUnload => "SAI",
545            Charge::ShrinkWrap => "SG",
546            Charge::SpecialHandling => "SH",
547            Charge::SpecialFinish => "SM",
548            Charge::SetUp => "SU",
549            Charge::TankRenting => "TAB",
550            Charge::Testing => "TAC",
551            Charge::TransportationThirdPartyBilling => "TT",
552            Charge::TransportationByVendor => "TV",
553            Charge::DropYard => "V1",
554            Charge::DropDock => "V2",
555            Charge::Warehousing => "WH",
556            Charge::CombineAllSameDayShipment => "XAA",
557            Charge::SplitPickUp => "YY",
558            Charge::MutuallyDefined => "ZZZ",
559        }
560    }
561}
562
563impl crate::Description for Charge {
564    fn description(self) -> &'static str {
565        match self {
566            Charge::Advertising => "Advertising",
567            Charge::Telecommunication => "Telecommunication",
568            Charge::TechnicalModification => "Technical modification",
569            Charge::JobOrderProduction => "Job-order production",
570            Charge::Outlays => "Outlays",
571            Charge::OffPremises => "Off-premises",
572            Charge::AdditionalProcessing => "Additional processing",
573            Charge::Attesting => "Attesting",
574            Charge::Acceptance => "Acceptance",
575            Charge::RushDelivery => "Rush delivery",
576            Charge::SpecialConstruction => "Special construction",
577            Charge::AirportFacilities => "Airport facilities",
578            Charge::Concession => "Concession",
579            Charge::CompulsoryStorage => "Compulsory storage",
580            Charge::FuelRemoval => "Fuel removal",
581            Charge::IntoPlane => "Into plane",
582            Charge::Overtime => "Overtime",
583            Charge::Tooling => "Tooling",
584            Charge::Miscellaneous => "Miscellaneous",
585            Charge::AdditionalPackaging => "Additional packaging",
586            Charge::Dunnage => "Dunnage",
587            Charge::Containerisation => "Containerisation",
588            Charge::CartonPacking => "Carton packing",
589            Charge::HessianWrapped => "Hessian wrapped",
590            Charge::PolyethyleneWrapPacking => "Polyethylene wrap packing",
591            Charge::MiscellaneousTreatment => "Miscellaneous treatment",
592            Charge::EnamellingTreatment => "Enamelling treatment",
593            Charge::HeatTreatment => "Heat treatment",
594            Charge::PlatingTreatment => "Plating treatment",
595            Charge::Painting => "Painting",
596            Charge::Polishing => "Polishing",
597            Charge::Priming => "Priming",
598            Charge::PreservationTreatment => "Preservation treatment",
599            Charge::Fitting => "Fitting",
600            Charge::Consolidation => "Consolidation",
601            Charge::BillLading => "Bill of lading",
602            Charge::Airbag => "Airbag",
603            Charge::Transfer => "Transfer",
604            Charge::Slipsheet => "Slipsheet",
605            Charge::Binding => "Binding",
606            Charge::RepairOrReplacementBrokenReturnablePackage => {
607                "Repair or replacement of broken returnable package"
608            }
609            Charge::EfficientLogistics => "Efficient logistics",
610            Charge::Merchandising => "Merchandising",
611            Charge::ProductMix => "Product mix",
612            Charge::OtherServices => "Other services",
613            Charge::PickUp => "Pick-up",
614            Charge::ChronicIllness => "Chronic illness",
615            Charge::NewProductIntroduction => "New product introduction",
616            Charge::DirectDelivery => "Direct delivery",
617            Charge::Diversion => "Diversion",
618            Charge::Disconnect => "Disconnect",
619            Charge::Distribution => "Distribution",
620            Charge::HandlingHazardousCargo => "Handling of hazardous cargo",
621            Charge::RentsAndLeases => "Rents and leases",
622            Charge::LocationDifferential => "Location differential",
623            Charge::AircraftRefueling => "Aircraft refueling",
624            Charge::FuelShippedIntoStorage => "Fuel shipped into storage",
625            Charge::CashOnDelivery => "Cash on delivery",
626            Charge::SmallOrderProcessingService => "Small order processing service",
627            Charge::ClericalOrAdministrativeServices => "Clerical or administrative services",
628            Charge::Guarantee => "Guarantee",
629            Charge::CollectionAndRecycling => "Collection and recycling",
630            Charge::CopyrightFeeCollection => "Copyright fee collection",
631            Charge::VeterinaryInspectionService => "Veterinary inspection service",
632            Charge::PensionerService => "Pensioner service",
633            Charge::MedicineFreePassHolder => "Medicine free pass holder",
634            Charge::EnvironmentalProtectionService => "Environmental protection service",
635            Charge::EnvironmentalCleanUpService => "Environmental clean-up service",
636            Charge::NationalChequeProcessingServiceOutsideAccountArea => {
637                "National cheque processing service outside account area"
638            }
639            Charge::NationalPaymentServiceOutsideAccountArea => {
640                "National payment service outside account area"
641            }
642            Charge::NationalPaymentServiceWithinAccountArea => {
643                "National payment service within account area"
644            }
645            Charge::Adjustments => "Adjustments",
646            Charge::Authentication => "Authentication",
647            Charge::Cataloguing => "Cataloguing",
648            Charge::Cartage => "Cartage",
649            Charge::Certification => "Certification",
650            Charge::CertificateConformance => "Certificate of conformance",
651            Charge::CertificateOrigin => "Certificate of origin",
652            Charge::Cutting => "Cutting",
653            Charge::ConsularService => "Consular service",
654            Charge::CustomerCollection => "Customer collection",
655            Charge::PayrollPaymentService => "Payroll payment service",
656            Charge::CashTransportation => "Cash transportation",
657            Charge::HomeBankingService => "Home banking service",
658            Charge::BilateralAgreementService => "Bilateral agreement service",
659            Charge::InsuranceBrokerageService => "Insurance brokerage service",
660            Charge::ChequeGeneration => "Cheque generation",
661            Charge::PreferentialMerchandisingLocation => "Preferential merchandising location",
662            Charge::Crane => "Crane",
663            Charge::SpecialColourService => "Special colour service",
664            Charge::Sorting => "Sorting",
665            Charge::BatteryCollectionAndRecycling => "Battery collection and recycling",
666            Charge::ProductTakeBackFee => "Product take back fee",
667            Charge::QualityControlReleased => "Quality control released",
668            Charge::QualityControlHeld => "Quality control held",
669            Charge::QualityControlEmbargo => "Quality control embargo",
670            Charge::CarLoading => "Car loading",
671            Charge::Cleaning => "Cleaning",
672            Charge::CigaretteStamping => "Cigarette stamping",
673            Charge::CountAndRecount => "Count and recount",
674            Charge::LayoutDesign => "Layout/design",
675            Charge::AssortmentAllowance => "Assortment allowance",
676            Charge::DriverAssignedUnloading => "Driver assigned unloading",
677            Charge::DebtorBound => "Debtor bound",
678            Charge::DealerAllowance => "Dealer allowance",
679            Charge::AllowanceTransferableToConsumer => "Allowance transferable to the consumer",
680            Charge::GrowthBusiness => "Growth of business",
681            Charge::IntroductionAllowance => "Introduction allowance",
682            Charge::MultiBuyPromotion => "Multi-buy promotion",
683            Charge::Partnership => "Partnership",
684            Charge::ReturnHandling => "Return handling",
685            Charge::MinimumOrderNotFulfilledCharge => "Minimum order not fulfilled charge",
686            Charge::PointSalesThresholdAllowance => "Point of sales threshold allowance",
687            Charge::WholesalingDiscount => "Wholesaling discount",
688            Charge::DocumentaryCreditsTransferCommission => {
689                "Documentary credits transfer commission"
690            }
691            Charge::Delivery => "Delivery",
692            Charge::Engraving => "Engraving",
693            Charge::Expediting => "Expediting",
694            Charge::ExchangeRateGuarantee => "Exchange rate guarantee",
695            Charge::Fabrication => "Fabrication",
696            Charge::FreightEqualization => "Freight equalization",
697            Charge::FreightExtraordinaryHandling => "Freight extraordinary handling",
698            Charge::FreightService => "Freight service",
699            Charge::FillingHandling => "Filling/handling",
700            Charge::Financing => "Financing",
701            Charge::Grinding => "Grinding",
702            Charge::Hose => "Hose",
703            Charge::Handling => "Handling",
704            Charge::HoistingAndHauling => "Hoisting and hauling",
705            Charge::Installation => "Installation",
706            Charge::InstallationAndWarranty => "Installation and warranty",
707            Charge::InsideDelivery => "Inside delivery",
708            Charge::Inspection => "Inspection",
709            Charge::InstallationAndTraining => "Installation and training",
710            Charge::Invoicing => "Invoicing",
711            Charge::Koshering => "Koshering",
712            Charge::CarrierCount => "Carrier count",
713            Charge::Labelling => "Labelling",
714            Charge::Labour => "Labour",
715            Charge::RepairAndReturn => "Repair and return",
716            Charge::Legalisation => "Legalisation",
717            Charge::Mounting => "Mounting",
718            Charge::MailInvoice => "Mail invoice",
719            Charge::MailInvoiceToEachLocation => "Mail invoice to each location",
720            Charge::NonReturnableContainers => "Non-returnable containers",
721            Charge::OutsideCableConnectors => "Outside cable connectors",
722            Charge::InvoiceWithShipment => "Invoice with shipment",
723            Charge::PhosphatizingSteelTreatment => "Phosphatizing (steel treatment)",
724            Charge::Packing => "Packing",
725            Charge::Palletizing => "Palletizing",
726            Charge::PriceVariation => "Price variation",
727            Charge::Repacking => "Repacking",
728            Charge::Repair => "Repair",
729            Charge::ReturnableContainer => "Returnable container",
730            Charge::Restocking => "Restocking",
731            Charge::ReDelivery => "Re-delivery",
732            Charge::Refurbishing => "Refurbishing",
733            Charge::RailWagonHire => "Rail wagon hire",
734            Charge::Loading => "Loading",
735            Charge::Salvaging => "Salvaging",
736            Charge::ShippingAndHandling => "Shipping and handling",
737            Charge::SpecialPackaging => "Special packaging",
738            Charge::Stamping => "Stamping",
739            Charge::ConsigneeUnload => "Consignee unload",
740            Charge::ShrinkWrap => "Shrink-wrap",
741            Charge::SpecialHandling => "Special handling",
742            Charge::SpecialFinish => "Special finish",
743            Charge::SetUp => "Set-up",
744            Charge::TankRenting => "Tank renting",
745            Charge::Testing => "Testing",
746            Charge::TransportationThirdPartyBilling => "Transportation - third party billing",
747            Charge::TransportationByVendor => "Transportation by vendor",
748            Charge::DropYard => "Drop yard",
749            Charge::DropDock => "Drop dock",
750            Charge::Warehousing => "Warehousing",
751            Charge::CombineAllSameDayShipment => "Combine all same day shipment",
752            Charge::SplitPickUp => "Split pick-up",
753            Charge::MutuallyDefined => "Mutually defined",
754        }
755    }
756}
757
758impl crate::FromCode for Charge {
759    fn from_code(code: &str) -> Option<Self>
760    where
761        Self: Sized,
762    {
763        match code {
764            "AA" => Some(Charge::Advertising),
765            "AAA" => Some(Charge::Telecommunication),
766            "AAC" => Some(Charge::TechnicalModification),
767            "AAD" => Some(Charge::JobOrderProduction),
768            "AAE" => Some(Charge::Outlays),
769            "AAF" => Some(Charge::OffPremises),
770            "AAH" => Some(Charge::AdditionalProcessing),
771            "AAI" => Some(Charge::Attesting),
772            "AAS" => Some(Charge::Acceptance),
773            "AAT" => Some(Charge::RushDelivery),
774            "AAV" => Some(Charge::SpecialConstruction),
775            "AAY" => Some(Charge::AirportFacilities),
776            "AAZ" => Some(Charge::Concession),
777            "ABA" => Some(Charge::CompulsoryStorage),
778            "ABB" => Some(Charge::FuelRemoval),
779            "ABC" => Some(Charge::IntoPlane),
780            "ABD" => Some(Charge::Overtime),
781            "ABF" => Some(Charge::Tooling),
782            "ABK" => Some(Charge::Miscellaneous),
783            "ABL" => Some(Charge::AdditionalPackaging),
784            "ABN" => Some(Charge::Dunnage),
785            "ABR" => Some(Charge::Containerisation),
786            "ABS" => Some(Charge::CartonPacking),
787            "ABT" => Some(Charge::HessianWrapped),
788            "ABU" => Some(Charge::PolyethyleneWrapPacking),
789            "ACF" => Some(Charge::MiscellaneousTreatment),
790            "ACG" => Some(Charge::EnamellingTreatment),
791            "ACH" => Some(Charge::HeatTreatment),
792            "ACI" => Some(Charge::PlatingTreatment),
793            "ACJ" => Some(Charge::Painting),
794            "ACK" => Some(Charge::Polishing),
795            "ACL" => Some(Charge::Priming),
796            "ACM" => Some(Charge::PreservationTreatment),
797            "ACS" => Some(Charge::Fitting),
798            "ADC" => Some(Charge::Consolidation),
799            "ADE" => Some(Charge::BillLading),
800            "ADJ" => Some(Charge::Airbag),
801            "ADK" => Some(Charge::Transfer),
802            "ADL" => Some(Charge::Slipsheet),
803            "ADM" => Some(Charge::Binding),
804            "ADN" => Some(Charge::RepairOrReplacementBrokenReturnablePackage),
805            "ADO" => Some(Charge::EfficientLogistics),
806            "ADP" => Some(Charge::Merchandising),
807            "ADQ" => Some(Charge::ProductMix),
808            "ADR" => Some(Charge::OtherServices),
809            "ADT" => Some(Charge::PickUp),
810            "ADW" => Some(Charge::ChronicIllness),
811            "ADY" => Some(Charge::NewProductIntroduction),
812            "ADZ" => Some(Charge::DirectDelivery),
813            "AEA" => Some(Charge::Diversion),
814            "AEB" => Some(Charge::Disconnect),
815            "AEC" => Some(Charge::Distribution),
816            "AED" => Some(Charge::HandlingHazardousCargo),
817            "AEF" => Some(Charge::RentsAndLeases),
818            "AEH" => Some(Charge::LocationDifferential),
819            "AEI" => Some(Charge::AircraftRefueling),
820            "AEJ" => Some(Charge::FuelShippedIntoStorage),
821            "AEK" => Some(Charge::CashOnDelivery),
822            "AEL" => Some(Charge::SmallOrderProcessingService),
823            "AEM" => Some(Charge::ClericalOrAdministrativeServices),
824            "AEN" => Some(Charge::Guarantee),
825            "AEO" => Some(Charge::CollectionAndRecycling),
826            "AEP" => Some(Charge::CopyrightFeeCollection),
827            "AES" => Some(Charge::VeterinaryInspectionService),
828            "AET" => Some(Charge::PensionerService),
829            "AEU" => Some(Charge::MedicineFreePassHolder),
830            "AEV" => Some(Charge::EnvironmentalProtectionService),
831            "AEW" => Some(Charge::EnvironmentalCleanUpService),
832            "AEX" => Some(Charge::NationalChequeProcessingServiceOutsideAccountArea),
833            "AEY" => Some(Charge::NationalPaymentServiceOutsideAccountArea),
834            "AEZ" => Some(Charge::NationalPaymentServiceWithinAccountArea),
835            "AJ" => Some(Charge::Adjustments),
836            "AU" => Some(Charge::Authentication),
837            "CA" => Some(Charge::Cataloguing),
838            "CAB" => Some(Charge::Cartage),
839            "CAD" => Some(Charge::Certification),
840            "CAE" => Some(Charge::CertificateConformance),
841            "CAF" => Some(Charge::CertificateOrigin),
842            "CAI" => Some(Charge::Cutting),
843            "CAJ" => Some(Charge::ConsularService),
844            "CAK" => Some(Charge::CustomerCollection),
845            "CAL" => Some(Charge::PayrollPaymentService),
846            "CAM" => Some(Charge::CashTransportation),
847            "CAN" => Some(Charge::HomeBankingService),
848            "CAO" => Some(Charge::BilateralAgreementService),
849            "CAP" => Some(Charge::InsuranceBrokerageService),
850            "CAQ" => Some(Charge::ChequeGeneration),
851            "CAR" => Some(Charge::PreferentialMerchandisingLocation),
852            "CAS" => Some(Charge::Crane),
853            "CAT" => Some(Charge::SpecialColourService),
854            "CAU" => Some(Charge::Sorting),
855            "CAV" => Some(Charge::BatteryCollectionAndRecycling),
856            "CAW" => Some(Charge::ProductTakeBackFee),
857            "CAX" => Some(Charge::QualityControlReleased),
858            "CAY" => Some(Charge::QualityControlHeld),
859            "CAZ" => Some(Charge::QualityControlEmbargo),
860            "CD" => Some(Charge::CarLoading),
861            "CG" => Some(Charge::Cleaning),
862            "CS" => Some(Charge::CigaretteStamping),
863            "CT" => Some(Charge::CountAndRecount),
864            "DAB" => Some(Charge::LayoutDesign),
865            "DAC" => Some(Charge::AssortmentAllowance),
866            "DAD" => Some(Charge::DriverAssignedUnloading),
867            "DAF" => Some(Charge::DebtorBound),
868            "DAG" => Some(Charge::DealerAllowance),
869            "DAH" => Some(Charge::AllowanceTransferableToConsumer),
870            "DAI" => Some(Charge::GrowthBusiness),
871            "DAJ" => Some(Charge::IntroductionAllowance),
872            "DAK" => Some(Charge::MultiBuyPromotion),
873            "DAL" => Some(Charge::Partnership),
874            "DAM" => Some(Charge::ReturnHandling),
875            "DAN" => Some(Charge::MinimumOrderNotFulfilledCharge),
876            "DAO" => Some(Charge::PointSalesThresholdAllowance),
877            "DAP" => Some(Charge::WholesalingDiscount),
878            "DAQ" => Some(Charge::DocumentaryCreditsTransferCommission),
879            "DL" => Some(Charge::Delivery),
880            "EG" => Some(Charge::Engraving),
881            "EP" => Some(Charge::Expediting),
882            "ER" => Some(Charge::ExchangeRateGuarantee),
883            "FAA" => Some(Charge::Fabrication),
884            "FAB" => Some(Charge::FreightEqualization),
885            "FAC" => Some(Charge::FreightExtraordinaryHandling),
886            "FC" => Some(Charge::FreightService),
887            "FH" => Some(Charge::FillingHandling),
888            "FI" => Some(Charge::Financing),
889            "GAA" => Some(Charge::Grinding),
890            "HAA" => Some(Charge::Hose),
891            "HD" => Some(Charge::Handling),
892            "HH" => Some(Charge::HoistingAndHauling),
893            "IAA" => Some(Charge::Installation),
894            "IAB" => Some(Charge::InstallationAndWarranty),
895            "ID" => Some(Charge::InsideDelivery),
896            "IF" => Some(Charge::Inspection),
897            "IR" => Some(Charge::InstallationAndTraining),
898            "IS" => Some(Charge::Invoicing),
899            "KO" => Some(Charge::Koshering),
900            "L1" => Some(Charge::CarrierCount),
901            "LA" => Some(Charge::Labelling),
902            "LAA" => Some(Charge::Labour),
903            "LAB" => Some(Charge::RepairAndReturn),
904            "LF" => Some(Charge::Legalisation),
905            "MAE" => Some(Charge::Mounting),
906            "MI" => Some(Charge::MailInvoice),
907            "ML" => Some(Charge::MailInvoiceToEachLocation),
908            "NAA" => Some(Charge::NonReturnableContainers),
909            "OA" => Some(Charge::OutsideCableConnectors),
910            "PA" => Some(Charge::InvoiceWithShipment),
911            "PAA" => Some(Charge::PhosphatizingSteelTreatment),
912            "PC" => Some(Charge::Packing),
913            "PL" => Some(Charge::Palletizing),
914            "PRV" => Some(Charge::PriceVariation),
915            "RAB" => Some(Charge::Repacking),
916            "RAC" => Some(Charge::Repair),
917            "RAD" => Some(Charge::ReturnableContainer),
918            "RAF" => Some(Charge::Restocking),
919            "RE" => Some(Charge::ReDelivery),
920            "RF" => Some(Charge::Refurbishing),
921            "RH" => Some(Charge::RailWagonHire),
922            "RV" => Some(Charge::Loading),
923            "SA" => Some(Charge::Salvaging),
924            "SAA" => Some(Charge::ShippingAndHandling),
925            "SAD" => Some(Charge::SpecialPackaging),
926            "SAE" => Some(Charge::Stamping),
927            "SAI" => Some(Charge::ConsigneeUnload),
928            "SG" => Some(Charge::ShrinkWrap),
929            "SH" => Some(Charge::SpecialHandling),
930            "SM" => Some(Charge::SpecialFinish),
931            "SU" => Some(Charge::SetUp),
932            "TAB" => Some(Charge::TankRenting),
933            "TAC" => Some(Charge::Testing),
934            "TT" => Some(Charge::TransportationThirdPartyBilling),
935            "TV" => Some(Charge::TransportationByVendor),
936            "V1" => Some(Charge::DropYard),
937            "V2" => Some(Charge::DropDock),
938            "WH" => Some(Charge::Warehousing),
939            "XAA" => Some(Charge::CombineAllSameDayShipment),
940            "YY" => Some(Charge::SplitPickUp),
941            "ZZZ" => Some(Charge::MutuallyDefined),
942            _ => None,
943        }
944    }
945}