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,
9 Telecommunication,
11 TechnicalModification,
13 JobOrderProduction,
15 Outlays,
17 OffPremises,
19 AdditionalProcessing,
21 Attesting,
23 Acceptance,
25 RushDelivery,
27 SpecialConstruction,
29 AirportFacilities,
31 Concession,
33 CompulsoryStorage,
35 FuelRemoval,
37 IntoPlane,
39 Overtime,
41 Tooling,
43 Miscellaneous,
45 AdditionalPackaging,
47 Dunnage,
49 Containerisation,
51 CartonPacking,
53 HessianWrapped,
55 PolyethyleneWrapPacking,
57 MiscellaneousTreatment,
59 EnamellingTreatment,
61 HeatTreatment,
63 PlatingTreatment,
65 Painting,
67 Polishing,
69 Priming,
71 PreservationTreatment,
73 Fitting,
75 Consolidation,
77 BillLading,
79 Airbag,
81 Transfer,
83 Slipsheet,
85 Binding,
87 RepairOrReplacementBrokenReturnablePackage,
89 EfficientLogistics,
91 Merchandising,
93 ProductMix,
95 OtherServices,
97 PickUp,
99 ChronicIllness,
101 NewProductIntroduction,
103 DirectDelivery,
105 Diversion,
107 Disconnect,
109 Distribution,
111 HandlingHazardousCargo,
113 RentsAndLeases,
115 LocationDifferential,
117 AircraftRefueling,
119 FuelShippedIntoStorage,
121 CashOnDelivery,
123 SmallOrderProcessingService,
125 ClericalOrAdministrativeServices,
127 Guarantee,
129 CollectionAndRecycling,
131 CopyrightFeeCollection,
133 VeterinaryInspectionService,
135 PensionerService,
137 MedicineFreePassHolder,
139 EnvironmentalProtectionService,
141 EnvironmentalCleanUpService,
143 NationalChequeProcessingServiceOutsideAccountArea,
145 NationalPaymentServiceOutsideAccountArea,
147 NationalPaymentServiceWithinAccountArea,
149 Adjustments,
151 Authentication,
153 Cataloguing,
155 Cartage,
157 Certification,
159 CertificateConformance,
161 CertificateOrigin,
163 Cutting,
165 ConsularService,
167 CustomerCollection,
169 PayrollPaymentService,
171 CashTransportation,
173 HomeBankingService,
175 BilateralAgreementService,
177 InsuranceBrokerageService,
179 ChequeGeneration,
181 PreferentialMerchandisingLocation,
183 Crane,
185 SpecialColourService,
187 Sorting,
189 BatteryCollectionAndRecycling,
191 ProductTakeBackFee,
193 QualityControlReleased,
195 QualityControlHeld,
197 QualityControlEmbargo,
199 CarLoading,
201 Cleaning,
203 CigaretteStamping,
205 CountAndRecount,
207 LayoutDesign,
209 AssortmentAllowance,
211 DriverAssignedUnloading,
213 DebtorBound,
215 DealerAllowance,
217 AllowanceTransferableToConsumer,
219 GrowthBusiness,
221 IntroductionAllowance,
223 MultiBuyPromotion,
225 Partnership,
227 ReturnHandling,
229 MinimumOrderNotFulfilledCharge,
231 PointSalesThresholdAllowance,
233 WholesalingDiscount,
235 DocumentaryCreditsTransferCommission,
237 Delivery,
239 Engraving,
241 Expediting,
243 ExchangeRateGuarantee,
245 Fabrication,
247 FreightEqualization,
249 FreightExtraordinaryHandling,
251 FreightService,
253 FillingHandling,
255 Financing,
257 Grinding,
259 Hose,
261 Handling,
263 HoistingAndHauling,
265 Installation,
267 InstallationAndWarranty,
269 InsideDelivery,
271 Inspection,
273 InstallationAndTraining,
275 Invoicing,
277 Koshering,
279 CarrierCount,
281 Labelling,
283 Labour,
285 RepairAndReturn,
287 Legalisation,
289 Mounting,
291 MailInvoice,
293 MailInvoiceToEachLocation,
295 NonReturnableContainers,
297 OutsideCableConnectors,
299 InvoiceWithShipment,
301 PhosphatizingSteelTreatment,
303 Packing,
305 Palletizing,
307 PriceVariation,
309 Repacking,
311 Repair,
313 ReturnableContainer,
315 Restocking,
317 ReDelivery,
319 Refurbishing,
321 RailWagonHire,
323 Loading,
325 Salvaging,
327 ShippingAndHandling,
329 SpecialPackaging,
331 Stamping,
333 ConsigneeUnload,
335 ShrinkWrap,
337 SpecialHandling,
339 SpecialFinish,
341 SetUp,
343 TankRenting,
345 Testing,
347 TransportationThirdPartyBilling,
349 TransportationByVendor,
351 DropYard,
353 DropDock,
355 Warehousing,
357 CombineAllSameDayShipment,
359 SplitPickUp,
361 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}