node-zugferd
Version:
A Node.js library for creating ZUGFeRD/Factur-X compliant documents. Generating XML and embedding it into PDF/A files, enabling seamless e-invoicing and digital document compliance.
385 lines (383 loc) • 14.1 kB
JavaScript
// src/codelists/index.ts
var getByPath = (obj, path) => path.split(".").reduce((acc, key) => acc?.[key], obj);
var createEnum = (data, options) => {
return Object.fromEntries(
data.map((item) => [
getByPath(item, options.keyProp),
getByPath(item, options.valueProp)
])
);
};
// src/codelists/charge.gen.ts
var PUBLISHED = "24A";
var CHARGE = [
{ key: "ADVERTISING", name: "Advertising", value: "AA" },
{ key: "TELECOMMUNICATION", name: "Telecommunication", value: "AAA" },
{
key: "TECHNICAL_MODIFICATION",
name: "Technical modification",
value: "AAC"
},
{ key: "JOB_ORDER_PRODUCTION", name: "Job-order production", value: "AAD" },
{ key: "OUTLAYS", name: "Outlays", value: "AAE" },
{ key: "OFF_PREMISES", name: "Off-premises", value: "AAF" },
{ key: "ADDITIONAL_PROCESSING", name: "Additional processing", value: "AAH" },
{ key: "ATTESTING", name: "Attesting", value: "AAI" },
{ key: "ACCEPTANCE", name: "Acceptance", value: "AAS" },
{ key: "RUSH_DELIVERY", name: "Rush delivery", value: "AAT" },
{ key: "SPECIAL_CONSTRUCTION", name: "Special construction", value: "AAV" },
{ key: "AIRPORT_FACILITIES", name: "Airport facilities", value: "AAY" },
{ key: "CONCESSION", name: "Concession", value: "AAZ" },
{ key: "COMPULSORY_STORAGE", name: "Compulsory storage", value: "ABA" },
{ key: "FUEL_REMOVAL", name: "Fuel removal", value: "ABB" },
{ key: "INTO_PLANE", name: "Into plane", value: "ABC" },
{ key: "OVERTIME", name: "Overtime", value: "ABD" },
{ key: "TOOLING", name: "Tooling", value: "ABF" },
{ key: "MISCELLANEOUS", name: "Miscellaneous", value: "ABK" },
{ key: "ADDITIONAL_PACKAGING", name: "Additional packaging", value: "ABL" },
{ key: "DUNNAGE", name: "Dunnage", value: "ABN" },
{ key: "CONTAINERISATION", name: "Containerisation", value: "ABR" },
{ key: "CARTON_PACKING", name: "Carton packing", value: "ABS" },
{ key: "HESSIAN_WRAPPED", name: "Hessian wrapped", value: "ABT" },
{
key: "POLYETHYLENE_WRAP_PACKING",
name: "Polyethylene wrap packing",
value: "ABU"
},
{
key: "MISCELLANEOUS_TREATMENT",
name: "Miscellaneous treatment",
value: "ACF"
},
{ key: "ENAMELLING_TREATMENT", name: "Enamelling treatment", value: "ACG" },
{ key: "HEAT_TREATMENT", name: "Heat treatment", value: "ACH" },
{ key: "PLATING_TREATMENT", name: "Plating treatment", value: "ACI" },
{ key: "PAINTING", name: "Painting", value: "ACJ" },
{ key: "POLISHING", name: "Polishing", value: "ACK" },
{ key: "PRIMING", name: "Priming", value: "ACL" },
{
key: "PRESERVATION_TREATMENT",
name: "Preservation treatment",
value: "ACM"
},
{ key: "FITTING", name: "Fitting", value: "ACS" },
{ key: "CONSOLIDATION", name: "Consolidation", value: "ADC" },
{ key: "BILL_OF_LADING", name: "Bill of lading", value: "ADE" },
{ key: "AIRBAG", name: "Airbag", value: "ADJ" },
{ key: "TRANSFER", name: "Transfer", value: "ADK" },
{ key: "SLIPSHEET", name: "Slipsheet", value: "ADL" },
{ key: "BINDING", name: "Binding", value: "ADM" },
{
key: "REPAIR_OR_REPLACEMENT_OF_BROKEN_RETURNABLE_PACKAGE",
name: "Repair or replacement of broken returnable package",
value: "ADN"
},
{ key: "EFFICIENT_LOGISTICS", name: "Efficient logistics", value: "ADO" },
{ key: "MERCHANDISING", name: "Merchandising", value: "ADP" },
{ key: "PRODUCT_MIX", name: "Product mix", value: "ADQ" },
{ key: "OTHER_SERVICES", name: "Other services", value: "ADR" },
{ key: "PICK_UP", name: "Pick-up", value: "ADT" },
{ key: "CHRONIC_ILLNESS", name: "Chronic illness", value: "ADW" },
{
key: "NEW_PRODUCT_INTRODUCTION",
name: "New product introduction",
value: "ADY"
},
{ key: "DIRECT_DELIVERY", name: "Direct delivery", value: "ADZ" },
{ key: "DIVERSION", name: "Diversion", value: "AEA" },
{ key: "DISCONNECT", name: "Disconnect", value: "AEB" },
{ key: "DISTRIBUTION", name: "Distribution", value: "AEC" },
{
key: "HANDLING_OF_HAZARDOUS_CARGO",
name: "Handling of hazardous cargo",
value: "AED"
},
{ key: "RENTS_AND_LEASES", name: "Rents and leases", value: "AEF" },
{ key: "LOCATION_DIFFERENTIAL", name: "Location differential", value: "AEH" },
{ key: "AIRCRAFT_REFUELING", name: "Aircraft refueling", value: "AEI" },
{
key: "FUEL_SHIPPED_INTO_STORAGE",
name: "Fuel shipped into storage",
value: "AEJ"
},
{ key: "CASH_ON_DELIVERY", name: "Cash on delivery", value: "AEK" },
{
key: "SMALL_ORDER_PROCESSING_SERVICE",
name: "Small order processing service",
value: "AEL"
},
{
key: "CLERICAL_OR_ADMINISTRATIVE_SERVICES",
name: "Clerical or administrative services",
value: "AEM"
},
{ key: "GUARANTEE", name: "Guarantee", value: "AEN" },
{
key: "COLLECTION_AND_RECYCLING",
name: "Collection and recycling",
value: "AEO"
},
{
key: "COPYRIGHT_FEE_COLLECTION",
name: "Copyright fee collection",
value: "AEP"
},
{
key: "VETERINARY_INSPECTION_SERVICE",
name: "Veterinary inspection service",
value: "AES"
},
{ key: "PENSIONER_SERVICE", name: "Pensioner service", value: "AET" },
{
key: "MEDICINE_FREE_PASS_HOLDER",
name: "Medicine free pass holder",
value: "AEU"
},
{
key: "ENVIRONMENTAL_PROTECTION_SERVICE",
name: "Environmental protection service",
value: "AEV"
},
{
key: "ENVIRONMENTAL_CLEAN_UP_SERVICE",
name: "Environmental clean-up service",
value: "AEW"
},
{
key: "NATIONAL_CHEQUE_PROCESSING_SERVICE_OUTSIDE_ACCOUNT_AREA",
name: "National cheque processing service outside account area",
value: "AEX"
},
{
key: "NATIONAL_PAYMENT_SERVICE_OUTSIDE_ACCOUNT_AREA",
name: "National payment service outside account area",
value: "AEY"
},
{
key: "NATIONAL_PAYMENT_SERVICE_WITHIN_ACCOUNT_AREA",
name: "National payment service within account area",
value: "AEZ"
},
{ key: "ADJUSTMENTS", name: "Adjustments", value: "AJ" },
{ key: "AUTHENTICATION", name: "Authentication", value: "AU" },
{ key: "CATALOGUING", name: "Cataloguing", value: "CA" },
{ key: "CARTAGE", name: "Cartage", value: "CAB" },
{ key: "CERTIFICATION", name: "Certification", value: "CAD" },
{
key: "CERTIFICATE_OF_CONFORMANCE",
name: "Certificate of conformance",
value: "CAE"
},
{ key: "CERTIFICATE_OF_ORIGIN", name: "Certificate of origin", value: "CAF" },
{ key: "CUTTING", name: "Cutting", value: "CAI" },
{ key: "CONSULAR_SERVICE", name: "Consular service", value: "CAJ" },
{ key: "CUSTOMER_COLLECTION", name: "Customer collection", value: "CAK" },
{
key: "PAYROLL_PAYMENT_SERVICE",
name: "Payroll payment service",
value: "CAL"
},
{ key: "CASH_TRANSPORTATION", name: "Cash transportation", value: "CAM" },
{ key: "HOME_BANKING_SERVICE", name: "Home banking service", value: "CAN" },
{
key: "BILATERAL_AGREEMENT_SERVICE",
name: "Bilateral agreement service",
value: "CAO"
},
{
key: "INSURANCE_BROKERAGE_SERVICE",
name: "Insurance brokerage service",
value: "CAP"
},
{ key: "CHEQUE_GENERATION", name: "Cheque generation", value: "CAQ" },
{
key: "PREFERENTIAL_MERCHANDISING_LOCATION",
name: "Preferential merchandising location",
value: "CAR"
},
{ key: "CRANE", name: "Crane", value: "CAS" },
{
key: "SPECIAL_COLOUR_SERVICE",
name: "Special colour service",
value: "CAT"
},
{ key: "SORTING", name: "Sorting", value: "CAU" },
{
key: "BATTERY_COLLECTION_AND_RECYCLING",
name: "Battery collection and recycling",
value: "CAV"
},
{ key: "PRODUCT_TAKE_BACK_FEE", name: "Product take back fee", value: "CAW" },
{
key: "QUALITY_CONTROL_RELEASED",
name: "Quality control released",
value: "CAX"
},
{ key: "QUALITY_CONTROL_HELD", name: "Quality control held", value: "CAY" },
{
key: "QUALITY_CONTROL_EMBARGO",
name: "Quality control embargo",
value: "CAZ"
},
{ key: "CAR_LOADING", name: "Car loading", value: "CD" },
{ key: "CLEANING", name: "Cleaning", value: "CG" },
{ key: "CIGARETTE_STAMPING", name: "Cigarette stamping", value: "CS" },
{ key: "COUNT_AND_RECOUNT", name: "Count and recount", value: "CT" },
{ key: "LAYOUTDESIGN", name: "Layout/design", value: "DAB" },
{ key: "ASSORTMENT_ALLOWANCE", name: "Assortment allowance", value: "DAC" },
{
key: "DRIVER_ASSIGNED_UNLOADING",
name: "Driver assigned unloading",
value: "DAD"
},
{ key: "DEBTOR_BOUND", name: "Debtor bound", value: "DAF" },
{ key: "DEALER_ALLOWANCE", name: "Dealer allowance", value: "DAG" },
{
key: "ALLOWANCE_TRANSFERABLE_TO_THE_CONSUMER",
name: "Allowance transferable to the consumer",
value: "DAH"
},
{ key: "GROWTH_OF_BUSINESS", name: "Growth of business", value: "DAI" },
{
key: "INTRODUCTION_ALLOWANCE",
name: "Introduction allowance",
value: "DAJ"
},
{ key: "MULTI_BUY_PROMOTION", name: "Multi-buy promotion", value: "DAK" },
{ key: "PARTNERSHIP", name: "Partnership", value: "DAL" },
{ key: "RETURN_HANDLING", name: "Return handling", value: "DAM" },
{
key: "MINIMUM_ORDER_NOT_FULFILLED_CHARGE",
name: "Minimum order not fulfilled charge",
value: "DAN"
},
{
key: "POINT_OF_SALES_THRESHOLD_ALLOWANCE",
name: "Point of sales threshold allowance",
value: "DAO"
},
{ key: "WHOLESALING_DISCOUNT", name: "Wholesaling discount", value: "DAP" },
{
key: "DOCUMENTARY_CREDITS_TRANSFER_COMMISSION",
name: "Documentary credits transfer commission",
value: "DAQ"
},
{ key: "DELIVERY", name: "Delivery", value: "DL" },
{ key: "ENGRAVING", name: "Engraving", value: "EG" },
{ key: "EXPEDITING", name: "Expediting", value: "EP" },
{
key: "EXCHANGE_RATE_GUARANTEE",
name: "Exchange rate guarantee",
value: "ER"
},
{ key: "FABRICATION", name: "Fabrication", value: "FAA" },
{ key: "FREIGHT_EQUALIZATION", name: "Freight equalization", value: "FAB" },
{
key: "FREIGHT_EXTRAORDINARY_HANDLING",
name: "Freight extraordinary handling",
value: "FAC"
},
{ key: "FREIGHT_SERVICE", name: "Freight service", value: "FC" },
{ key: "FILLINGHANDLING", name: "Filling/handling", value: "FH" },
{ key: "FINANCING", name: "Financing", value: "FI" },
{ key: "GRINDING", name: "Grinding", value: "GAA" },
{ key: "HOSE", name: "Hose", value: "HAA" },
{ key: "HANDLING", name: "Handling", value: "HD" },
{ key: "HOISTING_AND_HAULING", name: "Hoisting and hauling", value: "HH" },
{ key: "INSTALLATION", name: "Installation", value: "IAA" },
{
key: "INSTALLATION_AND_WARRANTY",
name: "Installation and warranty",
value: "IAB"
},
{ key: "INSIDE_DELIVERY", name: "Inside delivery", value: "ID" },
{ key: "INSPECTION", name: "Inspection", value: "IF" },
{
key: "INSTALLATION_AND_TRAINING",
name: "Installation and training",
value: "IR"
},
{ key: "INVOICING", name: "Invoicing", value: "IS" },
{ key: "KOSHERING", name: "Koshering", value: "KO" },
{ key: "CARRIER_COUNT", name: "Carrier count", value: "L1" },
{ key: "LABELLING", name: "Labelling", value: "LA" },
{ key: "LABOUR", name: "Labour", value: "LAA" },
{ key: "REPAIR_AND_RETURN", name: "Repair and return", value: "LAB" },
{ key: "LEGALISATION", name: "Legalisation", value: "LF" },
{ key: "MOUNTING", name: "Mounting", value: "MAE" },
{ key: "MAIL_INVOICE", name: "Mail invoice", value: "MI" },
{
key: "MAIL_INVOICE_TO_EACH_LOCATION",
name: "Mail invoice to each location",
value: "ML"
},
{
key: "NON_RETURNABLE_CONTAINERS",
name: "Non-returnable containers",
value: "NAA"
},
{
key: "OUTSIDE_CABLE_CONNECTORS",
name: "Outside cable connectors",
value: "OA"
},
{ key: "INVOICE_WITH_SHIPMENT", name: "Invoice with shipment", value: "PA" },
{
key: "PHOSPHATIZING_STEEL_TREATMENT",
name: "Phosphatizing (steel treatment)",
value: "PAA"
},
{ key: "PACKING", name: "Packing", value: "PC" },
{ key: "PALLETIZING", name: "Palletizing", value: "PL" },
{ key: "PRICE_VARIATION", name: "Price variation", value: "PRV" },
{ key: "REPACKING", name: "Repacking", value: "RAB" },
{ key: "REPAIR", name: "Repair", value: "RAC" },
{ key: "RETURNABLE_CONTAINER", name: "Returnable container", value: "RAD" },
{ key: "RESTOCKING", name: "Restocking", value: "RAF" },
{ key: "RE_DELIVERY", name: "Re-delivery", value: "RE" },
{ key: "REFURBISHING", name: "Refurbishing", value: "RF" },
{ key: "RAIL_WAGON_HIRE", name: "Rail wagon hire", value: "RH" },
{ key: "LOADING", name: "Loading", value: "RV" },
{ key: "SALVAGING", name: "Salvaging", value: "SA" },
{ key: "SHIPPING_AND_HANDLING", name: "Shipping and handling", value: "SAA" },
{ key: "SPECIAL_PACKAGING", name: "Special packaging", value: "SAD" },
{ key: "STAMPING", name: "Stamping", value: "SAE" },
{ key: "CONSIGNEE_UNLOAD", name: "Consignee unload", value: "SAI" },
{ key: "SHRINK_WRAP", name: "Shrink-wrap", value: "SG" },
{ key: "SPECIAL_HANDLING", name: "Special handling", value: "SH" },
{ key: "SPECIAL_FINISH", name: "Special finish", value: "SM" },
{ key: "SET_UP", name: "Set-up", value: "SU" },
{ key: "TANK_RENTING", name: "Tank renting", value: "TAB" },
{ key: "TESTING", name: "Testing", value: "TAC" },
{
key: "TRANSPORTATION_THIRD_PARTY_BILLING",
name: "Transportation - third party billing",
value: "TT"
},
{
key: "TRANSPORTATION_BY_VENDOR",
name: "Transportation by vendor",
value: "TV"
},
{ key: "DROP_YARD", name: "Drop yard", value: "V1" },
{ key: "DROP_DOCK", name: "Drop dock", value: "V2" },
{ key: "WAREHOUSING", name: "Warehousing", value: "WH" },
{
key: "COMBINE_ALL_SAME_DAY_SHIPMENT",
name: "Combine all same day shipment",
value: "XAA"
},
{ key: "SPLIT_PICK_UP", name: "Split pick-up", value: "YY" },
{ key: "MUTUALLY_DEFINED", name: "Mutually defined", value: "ZZZ" }
];
var chargeCode = CHARGE.map(({ value }) => value);
var Charge = createEnum(CHARGE, {
keyProp: "key",
valueProp: "value"
});
export {
CHARGE,
Charge,
PUBLISHED,
chargeCode
};