use std::fmt;
use serde::{de, Deserialize, ser, Serialize};
#[derive(Debug, Clone, Copy, PartialEq)]
pub enum PriceIdentifierCode {
AllowedAmountFlat,
Actual,
AverageGenericProductPrice,
AlternatePrice,
AverageWholesalePrice,
BalanceBasedPrice,
BaseCharge,
BidPrice,
ContractTier1,
ContractTier2,
ContractTier3,
ContractTier4,
ContractTier5,
ContractTier6,
ContractTier7,
ContractTier8,
ContractTier9,
ContractTier10,
ContractTier11,
ContractTier12,
ContractTier13,
ContractTier14,
ContractTier15,
ContractTier16,
ContractTier17,
ContractTier18,
ContractTier19,
ContractTier20,
ContractTier21,
ContractTier22,
ContractTier23,
ContractTier24,
ContractTier25,
ContractTier26,
ContractTier27,
ContractTier28,
ContractTier29,
ContractTier30,
CancellationCharge,
CatalogPrice,
CodeCDF,
CurrentDomesticValue,
ChangedPrice,
ContractPrice,
ConfirmedUnitPrice,
DeclaredCustomsUnitValue,
CodeD01,
DepotPrice,
CodeD03,
DistributorCost,
DistributorCostPriceBreak1,
DistributorCostPriceBreak2,
DistributorCostPriceBreak3,
DistributorCostPriceBreak4,
DistributorCostPriceBreak5,
DealerAdjustedPrice,
DepositAmount,
DistributorsPrice,
DiscountPrice,
DiscountAmountAllowed,
DirectStoreDelivery,
DirectShipProgramPrice,
CodeEDM,
EmergencyDirectShipPrice,
CodeEDS,
CodeEDW,
EstimatedLandedCost,
EstimatedPrice,
ExpectedUnitPrice,
FlatCharge,
FirstCostPrice,
FrequentDeliveryService,
FederalExciseTax,
FreeGoodsPrice,
FormulaPrice,
FreeServicePrice,
CodeFUL,
FirmPriceDoNotAdvise,
AdvertisingPrice,
DisplayPrice,
GovernmentPrice,
ShelfPrice,
TemporaryPriceReductionPrice,
UnitPriceThroughQuantity,
IndustrialPrice,
InstitutionalPrice,
InvoiceBillingPrice,
LaborRate,
LastCostPrice,
LeaseToPurchasePrice,
ListPrice,
MinimumAdvertisedPrice,
MovingAverageCost,
MandatoryToAdviseUnitPrice,
MinimumActivitySurcharge,
MaximumOrderQuantityPrice,
MinimumOrderQuantityPrice,
MinimumInternetAdvertisedPrice,
MinimumCharge,
MinimumReleaseQuantityPrice,
ModalPremium,
MaximumPriceReduction,
ManufacturersSuggestedRetail,
MaximumReleaseQuantityPrice,
NoncontractTier1,
NoncontractTier2,
NoncontractTier3,
NoncontractTier4,
NoncontractTier5,
NoncontractTier6,
NoncontractTier7,
NoncontractTier8,
NoncontractTier9,
NoncontractTier10,
NoncontractTier11,
NoncontractTier12,
NoncontractTier13,
NoncontractTier14,
NoncontractTier15,
NoncontractTier16,
NoncontractTier17,
NoncontractTier18,
NoncontractTier19,
NoncontractTier20,
NoncontractTier21,
NoncontractTier22,
NoncontractTier23,
NoncontractTier24,
NoncontractTier25,
NoncontractTier26,
NoncontractTier27,
NoncontractTier28,
NoncontractTier29,
NoncontractTier30,
NoCharge,
NetItemPrice,
OptionalToAdviseUnitPrice,
OriginalPurchaseOrderPrice,
PriceGroupCode1,
PriceGroupCode2,
PriceGroupCode3,
BusinessReportGroupCode1,
BusinessReportGroupCode2,
BusinessReportGroupCode3,
SellerClassCode,
SellerSubClassCode,
ProtectionLevelPrice,
CodePAQ,
UnitPriceBeginningQuantity,
PriceBreakPurchaseOrderCount,
PublicHealthServicePrice,
PriceInEffectAtTimeOfShipment,
ProducingPlantPrice,
PackingLevelPrice,
PrepaidFreightCharges,
ProfessionalPrice,
ProducersPrice,
PromotionalPrice,
Purchase,
QuotePrice,
SuggestedResalePrice,
SuggestedResalePriceBreak1,
SuggestedResalePriceBreak2,
SuggestedResalePriceBreak3,
SuggestedResalePriceBreak4,
SuggestedResalePriceBreak5,
RegularCharge,
Resale,
CodeRPA,
CodeRPM,
ReplacementPrice,
RushCharge,
Retail,
ServiceAttemptedCharge,
SuggestedDealerNetPrice,
SuggestedFleetPrice,
ShipAndDebit,
SuggestedListPrice,
SpecialPrice,
CodeSPE,
SecondarySupplyPlant,
StandardPrice,
SumOfLineItems,
SuggestedWholesalePrice,
ThresholdPrice,
TotalInvoiceAmountDue,
Transfer,
UnitAllowedAmount,
UnitCostPrice,
UnsalableItemListCost,
PublicWarehousePrice,
Wholesale,
WaivedServicePrice,
ZonePrice,
}
impl PriceIdentifierCode {
pub fn code(&self) -> &str {
{
use PriceIdentifierCode::*;
match self {
AllowedAmountFlat => "AAF",
Actual => "ACT",
AverageGenericProductPrice => "AGC",
AlternatePrice => "ALT",
AverageWholesalePrice => "AWP",
BalanceBasedPrice => "BBP",
BaseCharge => "BCH",
BidPrice => "BID",
ContractTier1 => "C01",
ContractTier2 => "C02",
ContractTier3 => "C03",
ContractTier4 => "C04",
ContractTier5 => "C05",
ContractTier6 => "C06",
ContractTier7 => "C07",
ContractTier8 => "C08",
ContractTier9 => "C09",
ContractTier10 => "C10",
ContractTier11 => "C11",
ContractTier12 => "C12",
ContractTier13 => "C13",
ContractTier14 => "C14",
ContractTier15 => "C15",
ContractTier16 => "C16",
ContractTier17 => "C17",
ContractTier18 => "C18",
ContractTier19 => "C19",
ContractTier20 => "C20",
ContractTier21 => "C21",
ContractTier22 => "C22",
ContractTier23 => "C23",
ContractTier24 => "C24",
ContractTier25 => "C25",
ContractTier26 => "C26",
ContractTier27 => "C27",
ContractTier28 => "C28",
ContractTier29 => "C29",
ContractTier30 => "C30",
CancellationCharge => "CAN",
CatalogPrice => "CAT",
CodeCDF => "CDF",
CurrentDomesticValue => "CDV",
ChangedPrice => "CHG",
ContractPrice => "CON",
ConfirmedUnitPrice => "CUP",
DeclaredCustomsUnitValue => "CUS",
CodeD01 => "D01",
DepotPrice => "D02",
CodeD03 => "D03",
DistributorCost => "DAA",
DistributorCostPriceBreak1 => "DAB",
DistributorCostPriceBreak2 => "DAC",
DistributorCostPriceBreak3 => "DAD",
DistributorCostPriceBreak4 => "DAE",
DistributorCostPriceBreak5 => "DAF",
DealerAdjustedPrice => "DAP",
DepositAmount => "DEP",
DistributorsPrice => "DIS",
DiscountPrice => "DPR",
DiscountAmountAllowed => "DSC",
DirectStoreDelivery => "DSD",
DirectShipProgramPrice => "DSP",
CodeEDM => "EDM",
EmergencyDirectShipPrice => "EDP",
CodeEDS => "EDS",
CodeEDW => "EDW",
EstimatedLandedCost => "ELC",
EstimatedPrice => "EST",
ExpectedUnitPrice => "EUP",
FlatCharge => "FCH",
FirstCostPrice => "FCP",
FrequentDeliveryService => "FDS",
FederalExciseTax => "FET",
FreeGoodsPrice => "FGP",
FormulaPrice => "FOR",
FreeServicePrice => "FSP",
CodeFUL => "FUL",
FirmPriceDoNotAdvise => "FUP",
AdvertisingPrice => "GAP",
DisplayPrice => "GDP",
GovernmentPrice => "GOV",
ShelfPrice => "GSP",
TemporaryPriceReductionPrice => "GTP",
UnitPriceThroughQuantity => "ICL",
IndustrialPrice => "IND",
InstitutionalPrice => "INS",
InvoiceBillingPrice => "INV",
LaborRate => "LAR",
LastCostPrice => "LCP",
LeaseToPurchasePrice => "LPP",
ListPrice => "LPR",
MinimumAdvertisedPrice => "MAA",
MovingAverageCost => "MAC",
MandatoryToAdviseUnitPrice => "MAP",
MinimumActivitySurcharge => "MAS",
MaximumOrderQuantityPrice => "MAX",
MinimumOrderQuantityPrice => "MIN",
MinimumInternetAdvertisedPrice => "MIP",
MinimumCharge => "MNC",
MinimumReleaseQuantityPrice => "MNR",
ModalPremium => "MOD",
MaximumPriceReduction => "MPR",
ManufacturersSuggestedRetail => "MSR",
MaximumReleaseQuantityPrice => "MXR",
NoncontractTier1 => "N01",
NoncontractTier2 => "N02",
NoncontractTier3 => "N03",
NoncontractTier4 => "N04",
NoncontractTier5 => "N05",
NoncontractTier6 => "N06",
NoncontractTier7 => "N07",
NoncontractTier8 => "N08",
NoncontractTier9 => "N09",
NoncontractTier10 => "N10",
NoncontractTier11 => "N11",
NoncontractTier12 => "N12",
NoncontractTier13 => "N13",
NoncontractTier14 => "N14",
NoncontractTier15 => "N15",
NoncontractTier16 => "N16",
NoncontractTier17 => "N17",
NoncontractTier18 => "N18",
NoncontractTier19 => "N19",
NoncontractTier20 => "N20",
NoncontractTier21 => "N21",
NoncontractTier22 => "N22",
NoncontractTier23 => "N23",
NoncontractTier24 => "N24",
NoncontractTier25 => "N25",
NoncontractTier26 => "N26",
NoncontractTier27 => "N27",
NoncontractTier28 => "N28",
NoncontractTier29 => "N29",
NoncontractTier30 => "N30",
NoCharge => "N31",
NetItemPrice => "NET",
OptionalToAdviseUnitPrice => "OAP",
OriginalPurchaseOrderPrice => "OPP",
PriceGroupCode1 => "PAA",
PriceGroupCode2 => "PAB",
PriceGroupCode3 => "PAC",
BusinessReportGroupCode1 => "PAD",
BusinessReportGroupCode2 => "PAE",
BusinessReportGroupCode3 => "PAF",
SellerClassCode => "PAG",
SellerSubClassCode => "PAH",
ProtectionLevelPrice => "PAP",
CodePAQ => "PAQ",
UnitPriceBeginningQuantity => "PBQ",
PriceBreakPurchaseOrderCount => "PBR",
PublicHealthServicePrice => "PHS",
PriceInEffectAtTimeOfShipment => "PIE",
ProducingPlantPrice => "PLT",
PackingLevelPrice => "PPA",
PrepaidFreightCharges => "PPD",
ProfessionalPrice => "PRF",
ProducersPrice => "PRO",
PromotionalPrice => "PRP",
Purchase => "PUR",
QuotePrice => "QTE",
SuggestedResalePrice => "RAA",
SuggestedResalePriceBreak1 => "RAB",
SuggestedResalePriceBreak2 => "RAC",
SuggestedResalePriceBreak3 => "RAD",
SuggestedResalePriceBreak4 => "RAE",
SuggestedResalePriceBreak5 => "RAF",
RegularCharge => "REG",
Resale => "RES",
CodeRPA => "RPA",
CodeRPM => "RPM",
ReplacementPrice => "RPP",
RushCharge => "RSH",
Retail => "RTL",
ServiceAttemptedCharge => "SAC",
SuggestedDealerNetPrice => "SDP",
SuggestedFleetPrice => "SFP",
ShipAndDebit => "SHD",
SuggestedListPrice => "SLP",
SpecialPrice => "SPC",
CodeSPE => "SPE",
SecondarySupplyPlant => "SSP",
StandardPrice => "STA",
SumOfLineItems => "SUM",
SuggestedWholesalePrice => "SWP",
ThresholdPrice => "THP",
TotalInvoiceAmountDue => "TOT",
Transfer => "TRF",
UnitAllowedAmount => "UAA",
UnitCostPrice => "UCP",
UnsalableItemListCost => "ULC",
PublicWarehousePrice => "WAR",
Wholesale => "WHL",
WaivedServicePrice => "WSP",
ZonePrice => "ZNP",
}
}
}
pub fn from_code(code: &[u8]) -> Option<PriceIdentifierCode> {
use PriceIdentifierCode::*;
match code {
b"AAF" => Some(AllowedAmountFlat),
b"ACT" => Some(Actual),
b"AGC" => Some(AverageGenericProductPrice),
b"ALT" => Some(AlternatePrice),
b"AWP" => Some(AverageWholesalePrice),
b"BBP" => Some(BalanceBasedPrice),
b"BCH" => Some(BaseCharge),
b"BID" => Some(BidPrice),
b"C01" => Some(ContractTier1),
b"C02" => Some(ContractTier2),
b"C03" => Some(ContractTier3),
b"C04" => Some(ContractTier4),
b"C05" => Some(ContractTier5),
b"C06" => Some(ContractTier6),
b"C07" => Some(ContractTier7),
b"C08" => Some(ContractTier8),
b"C09" => Some(ContractTier9),
b"C10" => Some(ContractTier10),
b"C11" => Some(ContractTier11),
b"C12" => Some(ContractTier12),
b"C13" => Some(ContractTier13),
b"C14" => Some(ContractTier14),
b"C15" => Some(ContractTier15),
b"C16" => Some(ContractTier16),
b"C17" => Some(ContractTier17),
b"C18" => Some(ContractTier18),
b"C19" => Some(ContractTier19),
b"C20" => Some(ContractTier20),
b"C21" => Some(ContractTier21),
b"C22" => Some(ContractTier22),
b"C23" => Some(ContractTier23),
b"C24" => Some(ContractTier24),
b"C25" => Some(ContractTier25),
b"C26" => Some(ContractTier26),
b"C27" => Some(ContractTier27),
b"C28" => Some(ContractTier28),
b"C29" => Some(ContractTier29),
b"C30" => Some(ContractTier30),
b"CAN" => Some(CancellationCharge),
b"CAT" => Some(CatalogPrice),
b"CDF" => Some(CodeCDF),
b"CDV" => Some(CurrentDomesticValue),
b"CHG" => Some(ChangedPrice),
b"CON" => Some(ContractPrice),
b"CUP" => Some(ConfirmedUnitPrice),
b"CUS" => Some(DeclaredCustomsUnitValue),
b"D01" => Some(CodeD01),
b"D02" => Some(DepotPrice),
b"D03" => Some(CodeD03),
b"DAA" => Some(DistributorCost),
b"DAB" => Some(DistributorCostPriceBreak1),
b"DAC" => Some(DistributorCostPriceBreak2),
b"DAD" => Some(DistributorCostPriceBreak3),
b"DAE" => Some(DistributorCostPriceBreak4),
b"DAF" => Some(DistributorCostPriceBreak5),
b"DAP" => Some(DealerAdjustedPrice),
b"DEP" => Some(DepositAmount),
b"DIS" => Some(DistributorsPrice),
b"DPR" => Some(DiscountPrice),
b"DSC" => Some(DiscountAmountAllowed),
b"DSD" => Some(DirectStoreDelivery),
b"DSP" => Some(DirectShipProgramPrice),
b"EDM" => Some(CodeEDM),
b"EDP" => Some(EmergencyDirectShipPrice),
b"EDS" => Some(CodeEDS),
b"EDW" => Some(CodeEDW),
b"ELC" => Some(EstimatedLandedCost),
b"EST" => Some(EstimatedPrice),
b"EUP" => Some(ExpectedUnitPrice),
b"FCH" => Some(FlatCharge),
b"FCP" => Some(FirstCostPrice),
b"FDS" => Some(FrequentDeliveryService),
b"FET" => Some(FederalExciseTax),
b"FGP" => Some(FreeGoodsPrice),
b"FOR" => Some(FormulaPrice),
b"FSP" => Some(FreeServicePrice),
b"FUL" => Some(CodeFUL),
b"FUP" => Some(FirmPriceDoNotAdvise),
b"GAP" => Some(AdvertisingPrice),
b"GDP" => Some(DisplayPrice),
b"GOV" => Some(GovernmentPrice),
b"GSP" => Some(ShelfPrice),
b"GTP" => Some(TemporaryPriceReductionPrice),
b"ICL" => Some(UnitPriceThroughQuantity),
b"IND" => Some(IndustrialPrice),
b"INS" => Some(InstitutionalPrice),
b"INV" => Some(InvoiceBillingPrice),
b"LAR" => Some(LaborRate),
b"LCP" => Some(LastCostPrice),
b"LPP" => Some(LeaseToPurchasePrice),
b"LPR" => Some(ListPrice),
b"MAA" => Some(MinimumAdvertisedPrice),
b"MAC" => Some(MovingAverageCost),
b"MAP" => Some(MandatoryToAdviseUnitPrice),
b"MAS" => Some(MinimumActivitySurcharge),
b"MAX" => Some(MaximumOrderQuantityPrice),
b"MIN" => Some(MinimumOrderQuantityPrice),
b"MIP" => Some(MinimumInternetAdvertisedPrice),
b"MNC" => Some(MinimumCharge),
b"MNR" => Some(MinimumReleaseQuantityPrice),
b"MOD" => Some(ModalPremium),
b"MPR" => Some(MaximumPriceReduction),
b"MSR" => Some(ManufacturersSuggestedRetail),
b"MXR" => Some(MaximumReleaseQuantityPrice),
b"N01" => Some(NoncontractTier1),
b"N02" => Some(NoncontractTier2),
b"N03" => Some(NoncontractTier3),
b"N04" => Some(NoncontractTier4),
b"N05" => Some(NoncontractTier5),
b"N06" => Some(NoncontractTier6),
b"N07" => Some(NoncontractTier7),
b"N08" => Some(NoncontractTier8),
b"N09" => Some(NoncontractTier9),
b"N10" => Some(NoncontractTier10),
b"N11" => Some(NoncontractTier11),
b"N12" => Some(NoncontractTier12),
b"N13" => Some(NoncontractTier13),
b"N14" => Some(NoncontractTier14),
b"N15" => Some(NoncontractTier15),
b"N16" => Some(NoncontractTier16),
b"N17" => Some(NoncontractTier17),
b"N18" => Some(NoncontractTier18),
b"N19" => Some(NoncontractTier19),
b"N20" => Some(NoncontractTier20),
b"N21" => Some(NoncontractTier21),
b"N22" => Some(NoncontractTier22),
b"N23" => Some(NoncontractTier23),
b"N24" => Some(NoncontractTier24),
b"N25" => Some(NoncontractTier25),
b"N26" => Some(NoncontractTier26),
b"N27" => Some(NoncontractTier27),
b"N28" => Some(NoncontractTier28),
b"N29" => Some(NoncontractTier29),
b"N30" => Some(NoncontractTier30),
b"N31" => Some(NoCharge),
b"NET" => Some(NetItemPrice),
b"OAP" => Some(OptionalToAdviseUnitPrice),
b"OPP" => Some(OriginalPurchaseOrderPrice),
b"PAA" => Some(PriceGroupCode1),
b"PAB" => Some(PriceGroupCode2),
b"PAC" => Some(PriceGroupCode3),
b"PAD" => Some(BusinessReportGroupCode1),
b"PAE" => Some(BusinessReportGroupCode2),
b"PAF" => Some(BusinessReportGroupCode3),
b"PAG" => Some(SellerClassCode),
b"PAH" => Some(SellerSubClassCode),
b"PAP" => Some(ProtectionLevelPrice),
b"PAQ" => Some(CodePAQ),
b"PBQ" => Some(UnitPriceBeginningQuantity),
b"PBR" => Some(PriceBreakPurchaseOrderCount),
b"PHS" => Some(PublicHealthServicePrice),
b"PIE" => Some(PriceInEffectAtTimeOfShipment),
b"PLT" => Some(ProducingPlantPrice),
b"PPA" => Some(PackingLevelPrice),
b"PPD" => Some(PrepaidFreightCharges),
b"PRF" => Some(ProfessionalPrice),
b"PRO" => Some(ProducersPrice),
b"PRP" => Some(PromotionalPrice),
b"PUR" => Some(Purchase),
b"QTE" => Some(QuotePrice),
b"RAA" => Some(SuggestedResalePrice),
b"RAB" => Some(SuggestedResalePriceBreak1),
b"RAC" => Some(SuggestedResalePriceBreak2),
b"RAD" => Some(SuggestedResalePriceBreak3),
b"RAE" => Some(SuggestedResalePriceBreak4),
b"RAF" => Some(SuggestedResalePriceBreak5),
b"REG" => Some(RegularCharge),
b"RES" => Some(Resale),
b"RPA" => Some(CodeRPA),
b"RPM" => Some(CodeRPM),
b"RPP" => Some(ReplacementPrice),
b"RSH" => Some(RushCharge),
b"RTL" => Some(Retail),
b"SAC" => Some(ServiceAttemptedCharge),
b"SDP" => Some(SuggestedDealerNetPrice),
b"SFP" => Some(SuggestedFleetPrice),
b"SHD" => Some(ShipAndDebit),
b"SLP" => Some(SuggestedListPrice),
b"SPC" => Some(SpecialPrice),
b"SPE" => Some(CodeSPE),
b"SSP" => Some(SecondarySupplyPlant),
b"STA" => Some(StandardPrice),
b"SUM" => Some(SumOfLineItems),
b"SWP" => Some(SuggestedWholesalePrice),
b"THP" => Some(ThresholdPrice),
b"TOT" => Some(TotalInvoiceAmountDue),
b"TRF" => Some(Transfer),
b"UAA" => Some(UnitAllowedAmount),
b"UCP" => Some(UnitCostPrice),
b"ULC" => Some(UnsalableItemListCost),
b"WAR" => Some(PublicWarehousePrice),
b"WHL" => Some(Wholesale),
b"WSP" => Some(WaivedServicePrice),
b"ZNP" => Some(ZonePrice),
_ => None,
}
}
fn description(&self) -> &str {
use PriceIdentifierCode::*;
match self {
AllowedAmountFlat => "Allowed Amount - Flat",
Actual => "Actual",
AverageGenericProductPrice => "Average Generic Product Price",
AlternatePrice => "Alternate Price",
AverageWholesalePrice => "Average Wholesale Price",
BalanceBasedPrice => "Balance-Based Price",
BaseCharge => "Base Charge",
BidPrice => "Bid Price",
ContractTier1 => "Contract Tier 1",
ContractTier2 => "Contract Tier 2",
ContractTier3 => "Contract Tier 3",
ContractTier4 => "Contract Tier 4",
ContractTier5 => "Contract Tier 5",
ContractTier6 => "Contract Tier 6",
ContractTier7 => "Contract Tier 7",
ContractTier8 => "Contract Tier 8",
ContractTier9 => "Contract Tier 9",
ContractTier10 => "Contract Tier 10",
ContractTier11 => "Contract Tier 11",
ContractTier12 => "Contract Tier 12",
ContractTier13 => "Contract Tier 13",
ContractTier14 => "Contract Tier 14",
ContractTier15 => "Contract Tier 15",
ContractTier16 => "Contract Tier 16",
ContractTier17 => "Contract Tier 17",
ContractTier18 => "Contract Tier 18",
ContractTier19 => "Contract Tier 19",
ContractTier20 => "Contract Tier 20",
ContractTier21 => "Contract Tier 21",
ContractTier22 => "Contract Tier 22",
ContractTier23 => "Contract Tier 23",
ContractTier24 => "Contract Tier 24",
ContractTier25 => "Contract Tier 25",
ContractTier26 => "Contract Tier 26",
ContractTier27 => "Contract Tier 27",
ContractTier28 => "Contract Tier 28",
ContractTier29 => "Contract Tier 29",
ContractTier30 => "Contract Tier 30",
CancellationCharge => "Cancellation Charge",
CatalogPrice => "Catalog Price",
CodeCDF => "Central Distribution Facility (Warehouse)",
CurrentDomesticValue => "Current Domestic Value",
ChangedPrice => "Changed Price",
ContractPrice => "Contract Price",
ConfirmedUnitPrice => "Confirmed Unit Price",
DeclaredCustomsUnitValue => "Declared Customs Unit Value",
CodeD01 => "Federal Supply Schedule (FSS) Price",
DepotPrice => "Depot Price",
CodeD03 => "Distribution and Pricing Agreement (DAPA) Price",
DistributorCost => "Distributor Cost",
DistributorCostPriceBreak1 => "Distributor Cost Price Break 1",
DistributorCostPriceBreak2 => "Distributor Cost Price Break 2",
DistributorCostPriceBreak3 => "Distributor Cost Price Break 3",
DistributorCostPriceBreak4 => "Distributor Cost Price Break 4",
DistributorCostPriceBreak5 => "Distributor Cost Price Break 5",
DealerAdjustedPrice => "Dealer Adjusted Price",
DepositAmount => "Deposit Amount",
DistributorsPrice => "Distributor's Price",
DiscountPrice => "Discount Price",
DiscountAmountAllowed => "Discount Amount Allowed",
DirectStoreDelivery => "Direct Store Delivery",
DirectShipProgramPrice => "Direct Ship Program Price",
CodeEDM => "Emergency Direct Ship Price (Original Equipment Manufacturer)",
EmergencyDirectShipPrice => "Emergency Direct Ship Price",
CodeEDS => "Emergency Direct Ship Price (Supplier)",
CodeEDW => "Emergency Direct Ship Price (Warehouse)",
EstimatedLandedCost => "Estimated Landed Cost",
EstimatedPrice => "Estimated Price",
ExpectedUnitPrice => "Expected Unit Price",
FlatCharge => "Flat Charge",
FirstCostPrice => "First Cost Price",
FrequentDeliveryService => "Frequent Delivery Service",
FederalExciseTax => "Federal Excise Tax",
FreeGoodsPrice => "Free Goods Price",
FormulaPrice => "Formula Price",
FreeServicePrice => "Free Service Price",
CodeFUL => {
"Federal Upper Limit Price (Maximum Allowable Cost Pricing for Drugs)"
}
FirmPriceDoNotAdvise => "Firm Price - Do Not Advise",
AdvertisingPrice => "Advertising Price",
DisplayPrice => "Display Price",
GovernmentPrice => "Government Price",
ShelfPrice => "Shelf Price",
TemporaryPriceReductionPrice => "Temporary Price Reduction Price",
UnitPriceThroughQuantity => "Unit Price Through Quantity",
IndustrialPrice => "Industrial Price",
InstitutionalPrice => "Institutional Price",
InvoiceBillingPrice => "Invoice Billing Price",
LaborRate => "Labor Rate",
LastCostPrice => "Last Cost Price",
LeaseToPurchasePrice => "Lease to Purchase Price",
ListPrice => "List Price",
MinimumAdvertisedPrice => "Minimum Advertised Price",
MovingAverageCost => "Moving Average Cost",
MandatoryToAdviseUnitPrice => "Mandatory to Advise Unit Price",
MinimumActivitySurcharge => "Minimum Activity Surcharge",
MaximumOrderQuantityPrice => "Maximum Order Quantity Price",
MinimumOrderQuantityPrice => "Minimum Order Quantity Price",
MinimumInternetAdvertisedPrice => "Minimum Internet Advertised Price",
MinimumCharge => "Minimum Charge",
MinimumReleaseQuantityPrice => "Minimum Release Quantity Price",
ModalPremium => "Modal Premium",
MaximumPriceReduction => "Maximum Price Reduction",
ManufacturersSuggestedRetail => "Manufacturer's Suggested Retail",
MaximumReleaseQuantityPrice => "Maximum Release Quantity Price",
NoncontractTier1 => "Noncontract Tier 1",
NoncontractTier2 => "Noncontract Tier 2",
NoncontractTier3 => "Noncontract Tier 3",
NoncontractTier4 => "Noncontract Tier 4",
NoncontractTier5 => "Noncontract Tier 5",
NoncontractTier6 => "Noncontract Tier 6",
NoncontractTier7 => "Noncontract Tier 7",
NoncontractTier8 => "Noncontract Tier 8",
NoncontractTier9 => "Noncontract Tier 9",
NoncontractTier10 => "Noncontract Tier 10",
NoncontractTier11 => "Noncontract Tier 11",
NoncontractTier12 => "Noncontract Tier 12",
NoncontractTier13 => "Noncontract Tier 13",
NoncontractTier14 => "Noncontract Tier 14",
NoncontractTier15 => "Noncontract Tier 15",
NoncontractTier16 => "Noncontract Tier 16",
NoncontractTier17 => "Noncontract Tier 17",
NoncontractTier18 => "Noncontract Tier 18",
NoncontractTier19 => "Noncontract Tier 19",
NoncontractTier20 => "Noncontract Tier 20",
NoncontractTier21 => "Noncontract Tier 21",
NoncontractTier22 => "Noncontract Tier 22",
NoncontractTier23 => "Noncontract Tier 23",
NoncontractTier24 => "Noncontract Tier 24",
NoncontractTier25 => "Noncontract Tier 25",
NoncontractTier26 => "Noncontract Tier 26",
NoncontractTier27 => "Noncontract Tier 27",
NoncontractTier28 => "Noncontract Tier 28",
NoncontractTier29 => "Noncontract Tier 29",
NoncontractTier30 => "Noncontract Tier 30",
NoCharge => "No Charge",
NetItemPrice => "Net Item Price",
OptionalToAdviseUnitPrice => "Optional to Advise Unit Price",
OriginalPurchaseOrderPrice => "Original Purchase Order Price",
PriceGroupCode1 => "Price Group Code 1",
PriceGroupCode2 => "Price Group Code 2",
PriceGroupCode3 => "Price Group Code 3",
BusinessReportGroupCode1 => "Business Report Group Code 1",
BusinessReportGroupCode2 => "Business Report Group Code 2",
BusinessReportGroupCode3 => "Business Report Group Code 3",
SellerClassCode => "Seller Class Code",
SellerSubClassCode => "Seller Sub-Class Code",
ProtectionLevelPrice => "Protection Level Price",
CodePAQ => "Price Break Quantity(s)",
UnitPriceBeginningQuantity => "Unit Price Beginning Quantity",
PriceBreakPurchaseOrderCount => "Price Break Purchase Order Count",
PublicHealthServicePrice => "Public Health Service Price",
PriceInEffectAtTimeOfShipment => "Price in Effect at Time of Shipment",
ProducingPlantPrice => "Producing Plant Price",
PackingLevelPrice => "Packing Level Price",
PrepaidFreightCharges => "Prepaid Freight Charges",
ProfessionalPrice => "Professional Price",
ProducersPrice => "Producer's Price",
PromotionalPrice => "Promotional price",
Purchase => "Purchase",
QuotePrice => "Quote Price",
SuggestedResalePrice => "Suggested Resale Price",
SuggestedResalePriceBreak1 => "Suggested Resale Price Break 1",
SuggestedResalePriceBreak2 => "Suggested Resale Price Break 2",
SuggestedResalePriceBreak3 => "Suggested Resale Price Break 3",
SuggestedResalePriceBreak4 => "Suggested Resale Price Break 4",
SuggestedResalePriceBreak5 => "Suggested Resale Price Break 5",
RegularCharge => "Regular Charge",
Resale => "Resale",
CodeRPA => "Rental Price, Annual",
CodeRPM => "Rental Price, Monthly",
ReplacementPrice => "Replacement Price",
RushCharge => "Rush Charge",
Retail => "Retail",
ServiceAttemptedCharge => "Service Attempted Charge",
SuggestedDealerNetPrice => "Suggested Dealer Net Price",
SuggestedFleetPrice => "Suggested Fleet Price",
ShipAndDebit => "Ship and Debit",
SuggestedListPrice => "Suggested List Price",
SpecialPrice => "Special Price",
CodeSPE => "Single Price (Factors Equalized)",
SecondarySupplyPlant => "Secondary Supply Plant",
StandardPrice => "Standard Price",
SumOfLineItems => "Sum of Line Items",
SuggestedWholesalePrice => "Suggested Wholesale Price",
ThresholdPrice => "Threshold Price",
TotalInvoiceAmountDue => "Total Invoice Amount Due",
Transfer => "Transfer",
UnitAllowedAmount => "Unit Allowed Amount",
UnitCostPrice => "Unit cost price",
UnsalableItemListCost => "Unsalable Item List Cost",
PublicWarehousePrice => "Public Warehouse Price",
Wholesale => "Wholesale",
WaivedServicePrice => "Waived Service Price",
ZonePrice => "Zone Price",
}
}
fn from_description(description: &str) -> Option<PriceIdentifierCode> {
{
use PriceIdentifierCode::*;
match description {
"Allowed Amount - Flat" => Some(AllowedAmountFlat),
"Actual" => Some(Actual),
"Average Generic Product Price" => Some(AverageGenericProductPrice),
"Alternate Price" => Some(AlternatePrice),
"Average Wholesale Price" => Some(AverageWholesalePrice),
"Balance-Based Price" => Some(BalanceBasedPrice),
"Base Charge" => Some(BaseCharge),
"Bid Price" => Some(BidPrice),
"Contract Tier 1" => Some(ContractTier1),
"Contract Tier 2" => Some(ContractTier2),
"Contract Tier 3" => Some(ContractTier3),
"Contract Tier 4" => Some(ContractTier4),
"Contract Tier 5" => Some(ContractTier5),
"Contract Tier 6" => Some(ContractTier6),
"Contract Tier 7" => Some(ContractTier7),
"Contract Tier 8" => Some(ContractTier8),
"Contract Tier 9" => Some(ContractTier9),
"Contract Tier 10" => Some(ContractTier10),
"Contract Tier 11" => Some(ContractTier11),
"Contract Tier 12" => Some(ContractTier12),
"Contract Tier 13" => Some(ContractTier13),
"Contract Tier 14" => Some(ContractTier14),
"Contract Tier 15" => Some(ContractTier15),
"Contract Tier 16" => Some(ContractTier16),
"Contract Tier 17" => Some(ContractTier17),
"Contract Tier 18" => Some(ContractTier18),
"Contract Tier 19" => Some(ContractTier19),
"Contract Tier 20" => Some(ContractTier20),
"Contract Tier 21" => Some(ContractTier21),
"Contract Tier 22" => Some(ContractTier22),
"Contract Tier 23" => Some(ContractTier23),
"Contract Tier 24" => Some(ContractTier24),
"Contract Tier 25" => Some(ContractTier25),
"Contract Tier 26" => Some(ContractTier26),
"Contract Tier 27" => Some(ContractTier27),
"Contract Tier 28" => Some(ContractTier28),
"Contract Tier 29" => Some(ContractTier29),
"Contract Tier 30" => Some(ContractTier30),
"Cancellation Charge" => Some(CancellationCharge),
"Catalog Price" => Some(CatalogPrice),
"Central Distribution Facility (Warehouse)" => Some(CodeCDF),
"Current Domestic Value" => Some(CurrentDomesticValue),
"Changed Price" => Some(ChangedPrice),
"Contract Price" => Some(ContractPrice),
"Confirmed Unit Price" => Some(ConfirmedUnitPrice),
"Declared Customs Unit Value" => Some(DeclaredCustomsUnitValue),
"Federal Supply Schedule (FSS) Price" => Some(CodeD01),
"Depot Price" => Some(DepotPrice),
"Distribution and Pricing Agreement (DAPA) Price" => Some(CodeD03),
"Distributor Cost" => Some(DistributorCost),
"Distributor Cost Price Break 1" => Some(DistributorCostPriceBreak1),
"Distributor Cost Price Break 2" => Some(DistributorCostPriceBreak2),
"Distributor Cost Price Break 3" => Some(DistributorCostPriceBreak3),
"Distributor Cost Price Break 4" => Some(DistributorCostPriceBreak4),
"Distributor Cost Price Break 5" => Some(DistributorCostPriceBreak5),
"Dealer Adjusted Price" => Some(DealerAdjustedPrice),
"Deposit Amount" => Some(DepositAmount),
"Distributor's Price" => Some(DistributorsPrice),
"Discount Price" => Some(DiscountPrice),
"Discount Amount Allowed" => Some(DiscountAmountAllowed),
"Direct Store Delivery" => Some(DirectStoreDelivery),
"Direct Ship Program Price" => Some(DirectShipProgramPrice),
"Emergency Direct Ship Price (Original Equipment Manufacturer)" => {
Some(CodeEDM)
}
"Emergency Direct Ship Price" => Some(EmergencyDirectShipPrice),
"Emergency Direct Ship Price (Supplier)" => Some(CodeEDS),
"Emergency Direct Ship Price (Warehouse)" => Some(CodeEDW),
"Estimated Landed Cost" => Some(EstimatedLandedCost),
"Estimated Price" => Some(EstimatedPrice),
"Expected Unit Price" => Some(ExpectedUnitPrice),
"Flat Charge" => Some(FlatCharge),
"First Cost Price" => Some(FirstCostPrice),
"Frequent Delivery Service" => Some(FrequentDeliveryService),
"Federal Excise Tax" => Some(FederalExciseTax),
"Free Goods Price" => Some(FreeGoodsPrice),
"Formula Price" => Some(FormulaPrice),
"Free Service Price" => Some(FreeServicePrice),
"Federal Upper Limit Price (Maximum Allowable Cost Pricing for Drugs)" => {
Some(CodeFUL)
}
"Firm Price - Do Not Advise" => Some(FirmPriceDoNotAdvise),
"Advertising Price" => Some(AdvertisingPrice),
"Display Price" => Some(DisplayPrice),
"Government Price" => Some(GovernmentPrice),
"Shelf Price" => Some(ShelfPrice),
"Temporary Price Reduction Price" => Some(TemporaryPriceReductionPrice),
"Unit Price Through Quantity" => Some(UnitPriceThroughQuantity),
"Industrial Price" => Some(IndustrialPrice),
"Institutional Price" => Some(InstitutionalPrice),
"Invoice Billing Price" => Some(InvoiceBillingPrice),
"Labor Rate" => Some(LaborRate),
"Last Cost Price" => Some(LastCostPrice),
"Lease to Purchase Price" => Some(LeaseToPurchasePrice),
"List Price" => Some(ListPrice),
"Minimum Advertised Price" => Some(MinimumAdvertisedPrice),
"Moving Average Cost" => Some(MovingAverageCost),
"Mandatory to Advise Unit Price" => Some(MandatoryToAdviseUnitPrice),
"Minimum Activity Surcharge" => Some(MinimumActivitySurcharge),
"Maximum Order Quantity Price" => Some(MaximumOrderQuantityPrice),
"Minimum Order Quantity Price" => Some(MinimumOrderQuantityPrice),
"Minimum Internet Advertised Price" => {
Some(MinimumInternetAdvertisedPrice)
}
"Minimum Charge" => Some(MinimumCharge),
"Minimum Release Quantity Price" => Some(MinimumReleaseQuantityPrice),
"Modal Premium" => Some(ModalPremium),
"Maximum Price Reduction" => Some(MaximumPriceReduction),
"Manufacturer's Suggested Retail" => Some(ManufacturersSuggestedRetail),
"Maximum Release Quantity Price" => Some(MaximumReleaseQuantityPrice),
"Noncontract Tier 1" => Some(NoncontractTier1),
"Noncontract Tier 2" => Some(NoncontractTier2),
"Noncontract Tier 3" => Some(NoncontractTier3),
"Noncontract Tier 4" => Some(NoncontractTier4),
"Noncontract Tier 5" => Some(NoncontractTier5),
"Noncontract Tier 6" => Some(NoncontractTier6),
"Noncontract Tier 7" => Some(NoncontractTier7),
"Noncontract Tier 8" => Some(NoncontractTier8),
"Noncontract Tier 9" => Some(NoncontractTier9),
"Noncontract Tier 10" => Some(NoncontractTier10),
"Noncontract Tier 11" => Some(NoncontractTier11),
"Noncontract Tier 12" => Some(NoncontractTier12),
"Noncontract Tier 13" => Some(NoncontractTier13),
"Noncontract Tier 14" => Some(NoncontractTier14),
"Noncontract Tier 15" => Some(NoncontractTier15),
"Noncontract Tier 16" => Some(NoncontractTier16),
"Noncontract Tier 17" => Some(NoncontractTier17),
"Noncontract Tier 18" => Some(NoncontractTier18),
"Noncontract Tier 19" => Some(NoncontractTier19),
"Noncontract Tier 20" => Some(NoncontractTier20),
"Noncontract Tier 21" => Some(NoncontractTier21),
"Noncontract Tier 22" => Some(NoncontractTier22),
"Noncontract Tier 23" => Some(NoncontractTier23),
"Noncontract Tier 24" => Some(NoncontractTier24),
"Noncontract Tier 25" => Some(NoncontractTier25),
"Noncontract Tier 26" => Some(NoncontractTier26),
"Noncontract Tier 27" => Some(NoncontractTier27),
"Noncontract Tier 28" => Some(NoncontractTier28),
"Noncontract Tier 29" => Some(NoncontractTier29),
"Noncontract Tier 30" => Some(NoncontractTier30),
"No Charge" => Some(NoCharge),
"Net Item Price" => Some(NetItemPrice),
"Optional to Advise Unit Price" => Some(OptionalToAdviseUnitPrice),
"Original Purchase Order Price" => Some(OriginalPurchaseOrderPrice),
"Price Group Code 1" => Some(PriceGroupCode1),
"Price Group Code 2" => Some(PriceGroupCode2),
"Price Group Code 3" => Some(PriceGroupCode3),
"Business Report Group Code 1" => Some(BusinessReportGroupCode1),
"Business Report Group Code 2" => Some(BusinessReportGroupCode2),
"Business Report Group Code 3" => Some(BusinessReportGroupCode3),
"Seller Class Code" => Some(SellerClassCode),
"Seller Sub-Class Code" => Some(SellerSubClassCode),
"Protection Level Price" => Some(ProtectionLevelPrice),
"Price Break Quantity(s)" => Some(CodePAQ),
"Unit Price Beginning Quantity" => Some(UnitPriceBeginningQuantity),
"Price Break Purchase Order Count" => Some(PriceBreakPurchaseOrderCount),
"Public Health Service Price" => Some(PublicHealthServicePrice),
"Price in Effect at Time of Shipment" => {
Some(PriceInEffectAtTimeOfShipment)
}
"Producing Plant Price" => Some(ProducingPlantPrice),
"Packing Level Price" => Some(PackingLevelPrice),
"Prepaid Freight Charges" => Some(PrepaidFreightCharges),
"Professional Price" => Some(ProfessionalPrice),
"Producer's Price" => Some(ProducersPrice),
"Promotional price" => Some(PromotionalPrice),
"Purchase" => Some(Purchase),
"Quote Price" => Some(QuotePrice),
"Suggested Resale Price" => Some(SuggestedResalePrice),
"Suggested Resale Price Break 1" => Some(SuggestedResalePriceBreak1),
"Suggested Resale Price Break 2" => Some(SuggestedResalePriceBreak2),
"Suggested Resale Price Break 3" => Some(SuggestedResalePriceBreak3),
"Suggested Resale Price Break 4" => Some(SuggestedResalePriceBreak4),
"Suggested Resale Price Break 5" => Some(SuggestedResalePriceBreak5),
"Regular Charge" => Some(RegularCharge),
"Resale" => Some(Resale),
"Rental Price, Annual" => Some(CodeRPA),
"Rental Price, Monthly" => Some(CodeRPM),
"Replacement Price" => Some(ReplacementPrice),
"Rush Charge" => Some(RushCharge),
"Retail" => Some(Retail),
"Service Attempted Charge" => Some(ServiceAttemptedCharge),
"Suggested Dealer Net Price" => Some(SuggestedDealerNetPrice),
"Suggested Fleet Price" => Some(SuggestedFleetPrice),
"Ship and Debit" => Some(ShipAndDebit),
"Suggested List Price" => Some(SuggestedListPrice),
"Special Price" => Some(SpecialPrice),
"Single Price (Factors Equalized)" => Some(CodeSPE),
"Secondary Supply Plant" => Some(SecondarySupplyPlant),
"Standard Price" => Some(StandardPrice),
"Sum of Line Items" => Some(SumOfLineItems),
"Suggested Wholesale Price" => Some(SuggestedWholesalePrice),
"Threshold Price" => Some(ThresholdPrice),
"Total Invoice Amount Due" => Some(TotalInvoiceAmountDue),
"Transfer" => Some(Transfer),
"Unit Allowed Amount" => Some(UnitAllowedAmount),
"Unit cost price" => Some(UnitCostPrice),
"Unsalable Item List Cost" => Some(UnsalableItemListCost),
"Public Warehouse Price" => Some(PublicWarehousePrice),
"Wholesale" => Some(Wholesale),
"Waived Service Price" => Some(WaivedServicePrice),
"Zone Price" => Some(ZonePrice),
_ => None,
}
}
}
}
impl Serialize for PriceIdentifierCode {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: ser::Serializer,
{
let value = if serializer.is_human_readable() {
self.description()
} else {
self.code()
};
serializer.serialize_str(value)
}
}
struct Visitor;
impl<'de> de::Visitor<'de> for Visitor {
type Value = PriceIdentifierCode;
fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
formatter.write_str("Price Identifier Code")
}
fn visit_str<E>(self, v: &str) -> Result<Self::Value, E>
where
E: de::Error,
{
PriceIdentifierCode::from_description(v)
.ok_or_else(|| E::custom(format!("Invalid Price Identifier Code: {}", v)))
}
fn visit_bytes<E>(self, v: &[u8]) -> Result<Self::Value, E>
where
E: de::Error,
{
PriceIdentifierCode::from_code(v)
.ok_or_else(|| E::custom(
format!(
"Invalid Price Identifier Code: {}", std::str::from_utf8(v).unwrap()
),
))
}
}
impl<'de> Deserialize<'de> for PriceIdentifierCode {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: de::Deserializer<'de>,
{
if deserializer.is_human_readable() {
deserializer.deserialize_str(Visitor)
} else {
deserializer.deserialize_bytes(Visitor)
}
}
}