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 = crate::ParseError<Self>;
373    fn from_str(s: &str) -> Result<Self, Self::Err> {
374        <Self as crate::FromCode>::from_code(s)
375            .ok_or_else(|| crate::ParseError::<Self>::new(s.to_owned()))
376    }
377}
378
379impl crate::Code for Charge {
380    fn code(self) -> &'static str {
381        match self {
382            Charge::Advertising => "AA",
383            Charge::Telecommunication => "AAA",
384            Charge::TechnicalModification => "AAC",
385            Charge::JobOrderProduction => "AAD",
386            Charge::Outlays => "AAE",
387            Charge::OffPremises => "AAF",
388            Charge::AdditionalProcessing => "AAH",
389            Charge::Attesting => "AAI",
390            Charge::Acceptance => "AAS",
391            Charge::RushDelivery => "AAT",
392            Charge::SpecialConstruction => "AAV",
393            Charge::AirportFacilities => "AAY",
394            Charge::Concession => "AAZ",
395            Charge::CompulsoryStorage => "ABA",
396            Charge::FuelRemoval => "ABB",
397            Charge::IntoPlane => "ABC",
398            Charge::Overtime => "ABD",
399            Charge::Tooling => "ABF",
400            Charge::Miscellaneous => "ABK",
401            Charge::AdditionalPackaging => "ABL",
402            Charge::Dunnage => "ABN",
403            Charge::Containerisation => "ABR",
404            Charge::CartonPacking => "ABS",
405            Charge::HessianWrapped => "ABT",
406            Charge::PolyethyleneWrapPacking => "ABU",
407            Charge::MiscellaneousTreatment => "ACF",
408            Charge::EnamellingTreatment => "ACG",
409            Charge::HeatTreatment => "ACH",
410            Charge::PlatingTreatment => "ACI",
411            Charge::Painting => "ACJ",
412            Charge::Polishing => "ACK",
413            Charge::Priming => "ACL",
414            Charge::PreservationTreatment => "ACM",
415            Charge::Fitting => "ACS",
416            Charge::Consolidation => "ADC",
417            Charge::BillLading => "ADE",
418            Charge::Airbag => "ADJ",
419            Charge::Transfer => "ADK",
420            Charge::Slipsheet => "ADL",
421            Charge::Binding => "ADM",
422            Charge::RepairOrReplacementBrokenReturnablePackage => "ADN",
423            Charge::EfficientLogistics => "ADO",
424            Charge::Merchandising => "ADP",
425            Charge::ProductMix => "ADQ",
426            Charge::OtherServices => "ADR",
427            Charge::PickUp => "ADT",
428            Charge::ChronicIllness => "ADW",
429            Charge::NewProductIntroduction => "ADY",
430            Charge::DirectDelivery => "ADZ",
431            Charge::Diversion => "AEA",
432            Charge::Disconnect => "AEB",
433            Charge::Distribution => "AEC",
434            Charge::HandlingHazardousCargo => "AED",
435            Charge::RentsAndLeases => "AEF",
436            Charge::LocationDifferential => "AEH",
437            Charge::AircraftRefueling => "AEI",
438            Charge::FuelShippedIntoStorage => "AEJ",
439            Charge::CashOnDelivery => "AEK",
440            Charge::SmallOrderProcessingService => "AEL",
441            Charge::ClericalOrAdministrativeServices => "AEM",
442            Charge::Guarantee => "AEN",
443            Charge::CollectionAndRecycling => "AEO",
444            Charge::CopyrightFeeCollection => "AEP",
445            Charge::VeterinaryInspectionService => "AES",
446            Charge::PensionerService => "AET",
447            Charge::MedicineFreePassHolder => "AEU",
448            Charge::EnvironmentalProtectionService => "AEV",
449            Charge::EnvironmentalCleanUpService => "AEW",
450            Charge::NationalChequeProcessingServiceOutsideAccountArea => "AEX",
451            Charge::NationalPaymentServiceOutsideAccountArea => "AEY",
452            Charge::NationalPaymentServiceWithinAccountArea => "AEZ",
453            Charge::Adjustments => "AJ",
454            Charge::Authentication => "AU",
455            Charge::Cataloguing => "CA",
456            Charge::Cartage => "CAB",
457            Charge::Certification => "CAD",
458            Charge::CertificateConformance => "CAE",
459            Charge::CertificateOrigin => "CAF",
460            Charge::Cutting => "CAI",
461            Charge::ConsularService => "CAJ",
462            Charge::CustomerCollection => "CAK",
463            Charge::PayrollPaymentService => "CAL",
464            Charge::CashTransportation => "CAM",
465            Charge::HomeBankingService => "CAN",
466            Charge::BilateralAgreementService => "CAO",
467            Charge::InsuranceBrokerageService => "CAP",
468            Charge::ChequeGeneration => "CAQ",
469            Charge::PreferentialMerchandisingLocation => "CAR",
470            Charge::Crane => "CAS",
471            Charge::SpecialColourService => "CAT",
472            Charge::Sorting => "CAU",
473            Charge::BatteryCollectionAndRecycling => "CAV",
474            Charge::ProductTakeBackFee => "CAW",
475            Charge::QualityControlReleased => "CAX",
476            Charge::QualityControlHeld => "CAY",
477            Charge::QualityControlEmbargo => "CAZ",
478            Charge::CarLoading => "CD",
479            Charge::Cleaning => "CG",
480            Charge::CigaretteStamping => "CS",
481            Charge::CountAndRecount => "CT",
482            Charge::LayoutDesign => "DAB",
483            Charge::AssortmentAllowance => "DAC",
484            Charge::DriverAssignedUnloading => "DAD",
485            Charge::DebtorBound => "DAF",
486            Charge::DealerAllowance => "DAG",
487            Charge::AllowanceTransferableToConsumer => "DAH",
488            Charge::GrowthBusiness => "DAI",
489            Charge::IntroductionAllowance => "DAJ",
490            Charge::MultiBuyPromotion => "DAK",
491            Charge::Partnership => "DAL",
492            Charge::ReturnHandling => "DAM",
493            Charge::MinimumOrderNotFulfilledCharge => "DAN",
494            Charge::PointSalesThresholdAllowance => "DAO",
495            Charge::WholesalingDiscount => "DAP",
496            Charge::DocumentaryCreditsTransferCommission => "DAQ",
497            Charge::Delivery => "DL",
498            Charge::Engraving => "EG",
499            Charge::Expediting => "EP",
500            Charge::ExchangeRateGuarantee => "ER",
501            Charge::Fabrication => "FAA",
502            Charge::FreightEqualization => "FAB",
503            Charge::FreightExtraordinaryHandling => "FAC",
504            Charge::FreightService => "FC",
505            Charge::FillingHandling => "FH",
506            Charge::Financing => "FI",
507            Charge::Grinding => "GAA",
508            Charge::Hose => "HAA",
509            Charge::Handling => "HD",
510            Charge::HoistingAndHauling => "HH",
511            Charge::Installation => "IAA",
512            Charge::InstallationAndWarranty => "IAB",
513            Charge::InsideDelivery => "ID",
514            Charge::Inspection => "IF",
515            Charge::InstallationAndTraining => "IR",
516            Charge::Invoicing => "IS",
517            Charge::Koshering => "KO",
518            Charge::CarrierCount => "L1",
519            Charge::Labelling => "LA",
520            Charge::Labour => "LAA",
521            Charge::RepairAndReturn => "LAB",
522            Charge::Legalisation => "LF",
523            Charge::Mounting => "MAE",
524            Charge::MailInvoice => "MI",
525            Charge::MailInvoiceToEachLocation => "ML",
526            Charge::NonReturnableContainers => "NAA",
527            Charge::OutsideCableConnectors => "OA",
528            Charge::InvoiceWithShipment => "PA",
529            Charge::PhosphatizingSteelTreatment => "PAA",
530            Charge::Packing => "PC",
531            Charge::Palletizing => "PL",
532            Charge::PriceVariation => "PRV",
533            Charge::Repacking => "RAB",
534            Charge::Repair => "RAC",
535            Charge::ReturnableContainer => "RAD",
536            Charge::Restocking => "RAF",
537            Charge::ReDelivery => "RE",
538            Charge::Refurbishing => "RF",
539            Charge::RailWagonHire => "RH",
540            Charge::Loading => "RV",
541            Charge::Salvaging => "SA",
542            Charge::ShippingAndHandling => "SAA",
543            Charge::SpecialPackaging => "SAD",
544            Charge::Stamping => "SAE",
545            Charge::ConsigneeUnload => "SAI",
546            Charge::ShrinkWrap => "SG",
547            Charge::SpecialHandling => "SH",
548            Charge::SpecialFinish => "SM",
549            Charge::SetUp => "SU",
550            Charge::TankRenting => "TAB",
551            Charge::Testing => "TAC",
552            Charge::TransportationThirdPartyBilling => "TT",
553            Charge::TransportationByVendor => "TV",
554            Charge::DropYard => "V1",
555            Charge::DropDock => "V2",
556            Charge::Warehousing => "WH",
557            Charge::CombineAllSameDayShipment => "XAA",
558            Charge::SplitPickUp => "YY",
559            Charge::MutuallyDefined => "ZZZ",
560        }
561    }
562}
563
564impl crate::Description for Charge {
565    fn description(self) -> &'static str {
566        match self {
567            Charge::Advertising => "Advertising",
568            Charge::Telecommunication => "Telecommunication",
569            Charge::TechnicalModification => "Technical modification",
570            Charge::JobOrderProduction => "Job-order production",
571            Charge::Outlays => "Outlays",
572            Charge::OffPremises => "Off-premises",
573            Charge::AdditionalProcessing => "Additional processing",
574            Charge::Attesting => "Attesting",
575            Charge::Acceptance => "Acceptance",
576            Charge::RushDelivery => "Rush delivery",
577            Charge::SpecialConstruction => "Special construction",
578            Charge::AirportFacilities => "Airport facilities",
579            Charge::Concession => "Concession",
580            Charge::CompulsoryStorage => "Compulsory storage",
581            Charge::FuelRemoval => "Fuel removal",
582            Charge::IntoPlane => "Into plane",
583            Charge::Overtime => "Overtime",
584            Charge::Tooling => "Tooling",
585            Charge::Miscellaneous => "Miscellaneous",
586            Charge::AdditionalPackaging => "Additional packaging",
587            Charge::Dunnage => "Dunnage",
588            Charge::Containerisation => "Containerisation",
589            Charge::CartonPacking => "Carton packing",
590            Charge::HessianWrapped => "Hessian wrapped",
591            Charge::PolyethyleneWrapPacking => "Polyethylene wrap packing",
592            Charge::MiscellaneousTreatment => "Miscellaneous treatment",
593            Charge::EnamellingTreatment => "Enamelling treatment",
594            Charge::HeatTreatment => "Heat treatment",
595            Charge::PlatingTreatment => "Plating treatment",
596            Charge::Painting => "Painting",
597            Charge::Polishing => "Polishing",
598            Charge::Priming => "Priming",
599            Charge::PreservationTreatment => "Preservation treatment",
600            Charge::Fitting => "Fitting",
601            Charge::Consolidation => "Consolidation",
602            Charge::BillLading => "Bill of lading",
603            Charge::Airbag => "Airbag",
604            Charge::Transfer => "Transfer",
605            Charge::Slipsheet => "Slipsheet",
606            Charge::Binding => "Binding",
607            Charge::RepairOrReplacementBrokenReturnablePackage => {
608                "Repair or replacement of broken returnable package"
609            }
610            Charge::EfficientLogistics => "Efficient logistics",
611            Charge::Merchandising => "Merchandising",
612            Charge::ProductMix => "Product mix",
613            Charge::OtherServices => "Other services",
614            Charge::PickUp => "Pick-up",
615            Charge::ChronicIllness => "Chronic illness",
616            Charge::NewProductIntroduction => "New product introduction",
617            Charge::DirectDelivery => "Direct delivery",
618            Charge::Diversion => "Diversion",
619            Charge::Disconnect => "Disconnect",
620            Charge::Distribution => "Distribution",
621            Charge::HandlingHazardousCargo => "Handling of hazardous cargo",
622            Charge::RentsAndLeases => "Rents and leases",
623            Charge::LocationDifferential => "Location differential",
624            Charge::AircraftRefueling => "Aircraft refueling",
625            Charge::FuelShippedIntoStorage => "Fuel shipped into storage",
626            Charge::CashOnDelivery => "Cash on delivery",
627            Charge::SmallOrderProcessingService => "Small order processing service",
628            Charge::ClericalOrAdministrativeServices => "Clerical or administrative services",
629            Charge::Guarantee => "Guarantee",
630            Charge::CollectionAndRecycling => "Collection and recycling",
631            Charge::CopyrightFeeCollection => "Copyright fee collection",
632            Charge::VeterinaryInspectionService => "Veterinary inspection service",
633            Charge::PensionerService => "Pensioner service",
634            Charge::MedicineFreePassHolder => "Medicine free pass holder",
635            Charge::EnvironmentalProtectionService => "Environmental protection service",
636            Charge::EnvironmentalCleanUpService => "Environmental clean-up service",
637            Charge::NationalChequeProcessingServiceOutsideAccountArea => {
638                "National cheque processing service outside account area"
639            }
640            Charge::NationalPaymentServiceOutsideAccountArea => {
641                "National payment service outside account area"
642            }
643            Charge::NationalPaymentServiceWithinAccountArea => {
644                "National payment service within account area"
645            }
646            Charge::Adjustments => "Adjustments",
647            Charge::Authentication => "Authentication",
648            Charge::Cataloguing => "Cataloguing",
649            Charge::Cartage => "Cartage",
650            Charge::Certification => "Certification",
651            Charge::CertificateConformance => "Certificate of conformance",
652            Charge::CertificateOrigin => "Certificate of origin",
653            Charge::Cutting => "Cutting",
654            Charge::ConsularService => "Consular service",
655            Charge::CustomerCollection => "Customer collection",
656            Charge::PayrollPaymentService => "Payroll payment service",
657            Charge::CashTransportation => "Cash transportation",
658            Charge::HomeBankingService => "Home banking service",
659            Charge::BilateralAgreementService => "Bilateral agreement service",
660            Charge::InsuranceBrokerageService => "Insurance brokerage service",
661            Charge::ChequeGeneration => "Cheque generation",
662            Charge::PreferentialMerchandisingLocation => "Preferential merchandising location",
663            Charge::Crane => "Crane",
664            Charge::SpecialColourService => "Special colour service",
665            Charge::Sorting => "Sorting",
666            Charge::BatteryCollectionAndRecycling => "Battery collection and recycling",
667            Charge::ProductTakeBackFee => "Product take back fee",
668            Charge::QualityControlReleased => "Quality control released",
669            Charge::QualityControlHeld => "Quality control held",
670            Charge::QualityControlEmbargo => "Quality control embargo",
671            Charge::CarLoading => "Car loading",
672            Charge::Cleaning => "Cleaning",
673            Charge::CigaretteStamping => "Cigarette stamping",
674            Charge::CountAndRecount => "Count and recount",
675            Charge::LayoutDesign => "Layout/design",
676            Charge::AssortmentAllowance => "Assortment allowance",
677            Charge::DriverAssignedUnloading => "Driver assigned unloading",
678            Charge::DebtorBound => "Debtor bound",
679            Charge::DealerAllowance => "Dealer allowance",
680            Charge::AllowanceTransferableToConsumer => "Allowance transferable to the consumer",
681            Charge::GrowthBusiness => "Growth of business",
682            Charge::IntroductionAllowance => "Introduction allowance",
683            Charge::MultiBuyPromotion => "Multi-buy promotion",
684            Charge::Partnership => "Partnership",
685            Charge::ReturnHandling => "Return handling",
686            Charge::MinimumOrderNotFulfilledCharge => "Minimum order not fulfilled charge",
687            Charge::PointSalesThresholdAllowance => "Point of sales threshold allowance",
688            Charge::WholesalingDiscount => "Wholesaling discount",
689            Charge::DocumentaryCreditsTransferCommission => {
690                "Documentary credits transfer commission"
691            }
692            Charge::Delivery => "Delivery",
693            Charge::Engraving => "Engraving",
694            Charge::Expediting => "Expediting",
695            Charge::ExchangeRateGuarantee => "Exchange rate guarantee",
696            Charge::Fabrication => "Fabrication",
697            Charge::FreightEqualization => "Freight equalization",
698            Charge::FreightExtraordinaryHandling => "Freight extraordinary handling",
699            Charge::FreightService => "Freight service",
700            Charge::FillingHandling => "Filling/handling",
701            Charge::Financing => "Financing",
702            Charge::Grinding => "Grinding",
703            Charge::Hose => "Hose",
704            Charge::Handling => "Handling",
705            Charge::HoistingAndHauling => "Hoisting and hauling",
706            Charge::Installation => "Installation",
707            Charge::InstallationAndWarranty => "Installation and warranty",
708            Charge::InsideDelivery => "Inside delivery",
709            Charge::Inspection => "Inspection",
710            Charge::InstallationAndTraining => "Installation and training",
711            Charge::Invoicing => "Invoicing",
712            Charge::Koshering => "Koshering",
713            Charge::CarrierCount => "Carrier count",
714            Charge::Labelling => "Labelling",
715            Charge::Labour => "Labour",
716            Charge::RepairAndReturn => "Repair and return",
717            Charge::Legalisation => "Legalisation",
718            Charge::Mounting => "Mounting",
719            Charge::MailInvoice => "Mail invoice",
720            Charge::MailInvoiceToEachLocation => "Mail invoice to each location",
721            Charge::NonReturnableContainers => "Non-returnable containers",
722            Charge::OutsideCableConnectors => "Outside cable connectors",
723            Charge::InvoiceWithShipment => "Invoice with shipment",
724            Charge::PhosphatizingSteelTreatment => "Phosphatizing (steel treatment)",
725            Charge::Packing => "Packing",
726            Charge::Palletizing => "Palletizing",
727            Charge::PriceVariation => "Price variation",
728            Charge::Repacking => "Repacking",
729            Charge::Repair => "Repair",
730            Charge::ReturnableContainer => "Returnable container",
731            Charge::Restocking => "Restocking",
732            Charge::ReDelivery => "Re-delivery",
733            Charge::Refurbishing => "Refurbishing",
734            Charge::RailWagonHire => "Rail wagon hire",
735            Charge::Loading => "Loading",
736            Charge::Salvaging => "Salvaging",
737            Charge::ShippingAndHandling => "Shipping and handling",
738            Charge::SpecialPackaging => "Special packaging",
739            Charge::Stamping => "Stamping",
740            Charge::ConsigneeUnload => "Consignee unload",
741            Charge::ShrinkWrap => "Shrink-wrap",
742            Charge::SpecialHandling => "Special handling",
743            Charge::SpecialFinish => "Special finish",
744            Charge::SetUp => "Set-up",
745            Charge::TankRenting => "Tank renting",
746            Charge::Testing => "Testing",
747            Charge::TransportationThirdPartyBilling => "Transportation - third party billing",
748            Charge::TransportationByVendor => "Transportation by vendor",
749            Charge::DropYard => "Drop yard",
750            Charge::DropDock => "Drop dock",
751            Charge::Warehousing => "Warehousing",
752            Charge::CombineAllSameDayShipment => "Combine all same day shipment",
753            Charge::SplitPickUp => "Split pick-up",
754            Charge::MutuallyDefined => "Mutually defined",
755        }
756    }
757}
758
759impl crate::FromCode for Charge {
760    fn from_code(code: &str) -> Option<Self>
761    where
762        Self: Sized,
763    {
764        match code {
765            "AA" => Some(Charge::Advertising),
766            "AAA" => Some(Charge::Telecommunication),
767            "AAC" => Some(Charge::TechnicalModification),
768            "AAD" => Some(Charge::JobOrderProduction),
769            "AAE" => Some(Charge::Outlays),
770            "AAF" => Some(Charge::OffPremises),
771            "AAH" => Some(Charge::AdditionalProcessing),
772            "AAI" => Some(Charge::Attesting),
773            "AAS" => Some(Charge::Acceptance),
774            "AAT" => Some(Charge::RushDelivery),
775            "AAV" => Some(Charge::SpecialConstruction),
776            "AAY" => Some(Charge::AirportFacilities),
777            "AAZ" => Some(Charge::Concession),
778            "ABA" => Some(Charge::CompulsoryStorage),
779            "ABB" => Some(Charge::FuelRemoval),
780            "ABC" => Some(Charge::IntoPlane),
781            "ABD" => Some(Charge::Overtime),
782            "ABF" => Some(Charge::Tooling),
783            "ABK" => Some(Charge::Miscellaneous),
784            "ABL" => Some(Charge::AdditionalPackaging),
785            "ABN" => Some(Charge::Dunnage),
786            "ABR" => Some(Charge::Containerisation),
787            "ABS" => Some(Charge::CartonPacking),
788            "ABT" => Some(Charge::HessianWrapped),
789            "ABU" => Some(Charge::PolyethyleneWrapPacking),
790            "ACF" => Some(Charge::MiscellaneousTreatment),
791            "ACG" => Some(Charge::EnamellingTreatment),
792            "ACH" => Some(Charge::HeatTreatment),
793            "ACI" => Some(Charge::PlatingTreatment),
794            "ACJ" => Some(Charge::Painting),
795            "ACK" => Some(Charge::Polishing),
796            "ACL" => Some(Charge::Priming),
797            "ACM" => Some(Charge::PreservationTreatment),
798            "ACS" => Some(Charge::Fitting),
799            "ADC" => Some(Charge::Consolidation),
800            "ADE" => Some(Charge::BillLading),
801            "ADJ" => Some(Charge::Airbag),
802            "ADK" => Some(Charge::Transfer),
803            "ADL" => Some(Charge::Slipsheet),
804            "ADM" => Some(Charge::Binding),
805            "ADN" => Some(Charge::RepairOrReplacementBrokenReturnablePackage),
806            "ADO" => Some(Charge::EfficientLogistics),
807            "ADP" => Some(Charge::Merchandising),
808            "ADQ" => Some(Charge::ProductMix),
809            "ADR" => Some(Charge::OtherServices),
810            "ADT" => Some(Charge::PickUp),
811            "ADW" => Some(Charge::ChronicIllness),
812            "ADY" => Some(Charge::NewProductIntroduction),
813            "ADZ" => Some(Charge::DirectDelivery),
814            "AEA" => Some(Charge::Diversion),
815            "AEB" => Some(Charge::Disconnect),
816            "AEC" => Some(Charge::Distribution),
817            "AED" => Some(Charge::HandlingHazardousCargo),
818            "AEF" => Some(Charge::RentsAndLeases),
819            "AEH" => Some(Charge::LocationDifferential),
820            "AEI" => Some(Charge::AircraftRefueling),
821            "AEJ" => Some(Charge::FuelShippedIntoStorage),
822            "AEK" => Some(Charge::CashOnDelivery),
823            "AEL" => Some(Charge::SmallOrderProcessingService),
824            "AEM" => Some(Charge::ClericalOrAdministrativeServices),
825            "AEN" => Some(Charge::Guarantee),
826            "AEO" => Some(Charge::CollectionAndRecycling),
827            "AEP" => Some(Charge::CopyrightFeeCollection),
828            "AES" => Some(Charge::VeterinaryInspectionService),
829            "AET" => Some(Charge::PensionerService),
830            "AEU" => Some(Charge::MedicineFreePassHolder),
831            "AEV" => Some(Charge::EnvironmentalProtectionService),
832            "AEW" => Some(Charge::EnvironmentalCleanUpService),
833            "AEX" => Some(Charge::NationalChequeProcessingServiceOutsideAccountArea),
834            "AEY" => Some(Charge::NationalPaymentServiceOutsideAccountArea),
835            "AEZ" => Some(Charge::NationalPaymentServiceWithinAccountArea),
836            "AJ" => Some(Charge::Adjustments),
837            "AU" => Some(Charge::Authentication),
838            "CA" => Some(Charge::Cataloguing),
839            "CAB" => Some(Charge::Cartage),
840            "CAD" => Some(Charge::Certification),
841            "CAE" => Some(Charge::CertificateConformance),
842            "CAF" => Some(Charge::CertificateOrigin),
843            "CAI" => Some(Charge::Cutting),
844            "CAJ" => Some(Charge::ConsularService),
845            "CAK" => Some(Charge::CustomerCollection),
846            "CAL" => Some(Charge::PayrollPaymentService),
847            "CAM" => Some(Charge::CashTransportation),
848            "CAN" => Some(Charge::HomeBankingService),
849            "CAO" => Some(Charge::BilateralAgreementService),
850            "CAP" => Some(Charge::InsuranceBrokerageService),
851            "CAQ" => Some(Charge::ChequeGeneration),
852            "CAR" => Some(Charge::PreferentialMerchandisingLocation),
853            "CAS" => Some(Charge::Crane),
854            "CAT" => Some(Charge::SpecialColourService),
855            "CAU" => Some(Charge::Sorting),
856            "CAV" => Some(Charge::BatteryCollectionAndRecycling),
857            "CAW" => Some(Charge::ProductTakeBackFee),
858            "CAX" => Some(Charge::QualityControlReleased),
859            "CAY" => Some(Charge::QualityControlHeld),
860            "CAZ" => Some(Charge::QualityControlEmbargo),
861            "CD" => Some(Charge::CarLoading),
862            "CG" => Some(Charge::Cleaning),
863            "CS" => Some(Charge::CigaretteStamping),
864            "CT" => Some(Charge::CountAndRecount),
865            "DAB" => Some(Charge::LayoutDesign),
866            "DAC" => Some(Charge::AssortmentAllowance),
867            "DAD" => Some(Charge::DriverAssignedUnloading),
868            "DAF" => Some(Charge::DebtorBound),
869            "DAG" => Some(Charge::DealerAllowance),
870            "DAH" => Some(Charge::AllowanceTransferableToConsumer),
871            "DAI" => Some(Charge::GrowthBusiness),
872            "DAJ" => Some(Charge::IntroductionAllowance),
873            "DAK" => Some(Charge::MultiBuyPromotion),
874            "DAL" => Some(Charge::Partnership),
875            "DAM" => Some(Charge::ReturnHandling),
876            "DAN" => Some(Charge::MinimumOrderNotFulfilledCharge),
877            "DAO" => Some(Charge::PointSalesThresholdAllowance),
878            "DAP" => Some(Charge::WholesalingDiscount),
879            "DAQ" => Some(Charge::DocumentaryCreditsTransferCommission),
880            "DL" => Some(Charge::Delivery),
881            "EG" => Some(Charge::Engraving),
882            "EP" => Some(Charge::Expediting),
883            "ER" => Some(Charge::ExchangeRateGuarantee),
884            "FAA" => Some(Charge::Fabrication),
885            "FAB" => Some(Charge::FreightEqualization),
886            "FAC" => Some(Charge::FreightExtraordinaryHandling),
887            "FC" => Some(Charge::FreightService),
888            "FH" => Some(Charge::FillingHandling),
889            "FI" => Some(Charge::Financing),
890            "GAA" => Some(Charge::Grinding),
891            "HAA" => Some(Charge::Hose),
892            "HD" => Some(Charge::Handling),
893            "HH" => Some(Charge::HoistingAndHauling),
894            "IAA" => Some(Charge::Installation),
895            "IAB" => Some(Charge::InstallationAndWarranty),
896            "ID" => Some(Charge::InsideDelivery),
897            "IF" => Some(Charge::Inspection),
898            "IR" => Some(Charge::InstallationAndTraining),
899            "IS" => Some(Charge::Invoicing),
900            "KO" => Some(Charge::Koshering),
901            "L1" => Some(Charge::CarrierCount),
902            "LA" => Some(Charge::Labelling),
903            "LAA" => Some(Charge::Labour),
904            "LAB" => Some(Charge::RepairAndReturn),
905            "LF" => Some(Charge::Legalisation),
906            "MAE" => Some(Charge::Mounting),
907            "MI" => Some(Charge::MailInvoice),
908            "ML" => Some(Charge::MailInvoiceToEachLocation),
909            "NAA" => Some(Charge::NonReturnableContainers),
910            "OA" => Some(Charge::OutsideCableConnectors),
911            "PA" => Some(Charge::InvoiceWithShipment),
912            "PAA" => Some(Charge::PhosphatizingSteelTreatment),
913            "PC" => Some(Charge::Packing),
914            "PL" => Some(Charge::Palletizing),
915            "PRV" => Some(Charge::PriceVariation),
916            "RAB" => Some(Charge::Repacking),
917            "RAC" => Some(Charge::Repair),
918            "RAD" => Some(Charge::ReturnableContainer),
919            "RAF" => Some(Charge::Restocking),
920            "RE" => Some(Charge::ReDelivery),
921            "RF" => Some(Charge::Refurbishing),
922            "RH" => Some(Charge::RailWagonHire),
923            "RV" => Some(Charge::Loading),
924            "SA" => Some(Charge::Salvaging),
925            "SAA" => Some(Charge::ShippingAndHandling),
926            "SAD" => Some(Charge::SpecialPackaging),
927            "SAE" => Some(Charge::Stamping),
928            "SAI" => Some(Charge::ConsigneeUnload),
929            "SG" => Some(Charge::ShrinkWrap),
930            "SH" => Some(Charge::SpecialHandling),
931            "SM" => Some(Charge::SpecialFinish),
932            "SU" => Some(Charge::SetUp),
933            "TAB" => Some(Charge::TankRenting),
934            "TAC" => Some(Charge::Testing),
935            "TT" => Some(Charge::TransportationThirdPartyBilling),
936            "TV" => Some(Charge::TransportationByVendor),
937            "V1" => Some(Charge::DropYard),
938            "V2" => Some(Charge::DropDock),
939            "WH" => Some(Charge::Warehousing),
940            "XAA" => Some(Charge::CombineAllSameDayShipment),
941            "YY" => Some(Charge::SplitPickUp),
942            "ZZZ" => Some(Charge::MutuallyDefined),
943            _ => None,
944        }
945    }
946}