UNPKG

ts-edifact

Version:
1,368 lines 81.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PercentageDetails = exports.PaymentTermsBasis = exports.PaymentInstructions = exports.Package = exports.NameAndAddress = exports.MaintenanceOperationDetails = exports.MonetaryAmount = exports.Measurements = exports.LocationIdentification = exports.LineItem = exports.InformationRequired = exports.PartiesAndInstruction = exports.ItemDescription = exports.Identity = exports.HierarchyInformation = exports.HandlingInstructions = exports.GeneralIndicator = exports.RelatedInformationNumbers = exports.GoodsIdentityNumber = exports.ProcessingInformation = exports.FreeText = exports.FinancialInstitutionInformation = exports.ApplicationErrorInformation = exports.EquipmentDetails = exports.AttachedEquipment = exports.ExternalFileLinkIdentification = exports.DateTimePeriod = exports.MessageDetails = exports.MessageSummary = exports.DeliveryLimitations = exports.DangerousGoods = exports.Currencies = exports.ContactInformation = exports.ConsignmentPackingSequence = exports.CommunicationContact = exports.ComponentDetails = exports.ControlTotal = exports.ComputerEnvironmentDetails = exports.CharacteristicClassID = exports.CharacteristicValue = exports.BusinessFunction = exports.BeginOfMessage = exports.AuthenticationResult = exports.MonetaryAmountFunction = exports.AdditionalPriceInformation = exports.AdditionalInformation = exports.AllowanceOrCharge = exports.AdjustmentDetails = exports.toSegmentObject = exports.sanitizeFloat = void 0; exports.MessageTrailer = exports.SectionControl = exports.MessageHeader = exports.TransportServiceRequirements = exports.TermsOfDeliveryOrTransport = exports.TransportMovementDetails = exports.TransportInformationD11a = exports.TransportInformationD02b = exports.DetailsOfTransport = exports.TaxDetails = exports.Status = exports.SplitGoodsPlacement = exports.SequenceDetails = exports.SchedulingConditions = exports.SealNumber = exports.RateDetails = exports.RangeDetails = exports.AccountingJournalIdentification = exports.Reference = exports.RequirementsAndConditions = exports.QuantityVariances = exports.Quantity = exports.PaymentTerms = exports.PriceDetails = exports.AdditionalProductId = exports.ProductGroupInformation = exports.PackageIdentification = void 0; function sanitizeFloat(str, decimalSymbol) { const updatedStr = str.replace(decimalSymbol, "."); return parseFloat(updatedStr); } exports.sanitizeFloat = sanitizeFloat; function toSegmentObject(data, version, decimalSeparator) { switch (data.name) { case "AJT": return new AdjustmentDetails(data); case "ALC": return new AllowanceOrCharge(data); case "ALI": return new AdditionalInformation(data); case "APR": return new AdditionalPriceInformation(data, decimalSeparator); case "ARD": return new MonetaryAmountFunction(data); case "AUT": return new AuthenticationResult(data); case "BGM": return new BeginOfMessage(data); case "BUS": return new BusinessFunction(data); case "CAV": return new CharacteristicValue(data); case "CCI": return new CharacteristicClassID(data); case "CED": return new ComputerEnvironmentDetails(data); case "CNT": return new ControlTotal(data, decimalSeparator); case "COD": return new ComponentDetails(data); case "COM": return new CommunicationContact(data); case "CPS": return new ConsignmentPackingSequence(data); case "CTA": return new ContactInformation(data); case "CUX": return new Currencies(data, decimalSeparator); case "DGS": return new DangerousGoods(data); case "DLM": return new DeliveryLimitations(data); case "DMS": return new MessageSummary(data); case "DOC": return new MessageDetails(data); case "DTM": return new DateTimePeriod(data); case "EFI": return new ExternalFileLinkIdentification(data); case "EQA": return new AttachedEquipment(data); case "EQD": return new EquipmentDetails(data); case "ERC": return new ApplicationErrorInformation(data); case "FII": return new FinancialInstitutionInformation(data); case "FTX": return new FreeText(data); case "GEI": return new ProcessingInformation(data); case "GIN": return new GoodsIdentityNumber(data); case "GIR": return new RelatedInformationNumbers(data); case "GIS": return new GeneralIndicator(data); case "HAN": return new HandlingInstructions(data); case "HYN": return new HierarchyInformation(data); case "IDE": return new Identity(data); case "IMD": return new ItemDescription(data); case "INP": return new PartiesAndInstruction(data); case "IRQ": return new InformationRequired(data); case "LIN": return new LineItem(data); case "LOC": return new LocationIdentification(data); case "MEA": return new Measurements(data); case "MOA": return new MonetaryAmount(data, decimalSeparator); case "MTD": return new MaintenanceOperationDetails(data); case "NAD": return new NameAndAddress(data); case "PAC": return new Package(data); case "PAI": return new PaymentInstructions(data); case "PAT": return new PaymentTermsBasis(data); case "PCD": return new PercentageDetails(data, decimalSeparator); case "PCI": return new PackageIdentification(data); case "PGI": return new ProductGroupInformation(data); case "PIA": return new AdditionalProductId(data); case "PRI": return new PriceDetails(data, decimalSeparator); case "PYT": return new PaymentTerms(data); case "QTY": return new Quantity(data); case "QVR": return new QuantityVariances(data, decimalSeparator); case "RCS": return new RequirementsAndConditions(data); case "RFF": return new Reference(data); case "RJL": return new AccountingJournalIdentification(data); case "RNG": return new RangeDetails(data, decimalSeparator); case "RTE": return new RateDetails(data, decimalSeparator); case "SEL": return new SealNumber(data); case "SCC": return new SchedulingConditions(data); case "SEQ": return new SequenceDetails(data); case "SGP": return new SplitGoodsPlacement(data); case "STS": return new Status(data); case "TAX": return new TaxDetails(data); case "TDT": const lversion = version.toLowerCase(); if (lversion === "d18b" || lversion === "d18a" || lversion === "d17b" || lversion === "d17a" || lversion === "d16b" || lversion === "d16a" || lversion === "d15b" || lversion === "d15a" || lversion === "d14b" || lversion === "d14a" || lversion === "d13b" || lversion === "d13a" || lversion === "d12b" || lversion === "d12a" || lversion === "d11b" || lversion === "d11a") { return new TransportInformationD11a(data); } else if (version === "d10b" || version === "d10a" || lversion === "d09b" || lversion === "d09a" || lversion === "d08b" || lversion === "d08a" || lversion === "d07b" || lversion === "d07a" || lversion === "d06b" || lversion === "d06a" || lversion === "d05b" || lversion === "d05a" || lversion === "d04b" || lversion === "d04a" || lversion === "d03b" || lversion === "d03a" || lversion === "d02b" || lversion === "d02a") { return new TransportInformationD02b(data); } else { return new DetailsOfTransport(data); } case "TMD": return new TransportMovementDetails(data); case "TOD": return new TermsOfDeliveryOrTransport(data); case "TSR": return new TransportServiceRequirements(data); case "UNH": return new MessageHeader(data); case "UNS": return new SectionControl(data); case "UNT": return new MessageTrailer(data); default: throw new Error(`Unsupported segment: ${data.name}`); } } exports.toSegmentObject = toSegmentObject; class AdjustmentDetails { constructor(data) { this.tag = "AJT"; this.adjustmentReasonDescriptionCode = data.elements[0][0]; if (data.elements.length > 1) { this.lineItemIdentifier = data.elements[1][0]; } } } exports.AdjustmentDetails = AdjustmentDetails; class AllowanceOrChargeInformation { constructor(data) { this.allowanceOrChargeIdentifier = data[0]; this.allowanceOrChargeIdentificationCode = data[1]; } } class SpecialServicesIdentification { constructor(data) { this.specialServiceDescriptionCode = data[0]; this.codeListIdentificationCode = data[1]; this.codeListResponsibleAgencyCode = data[2]; this.specialServiceDescription = data[3]; this.specialServiceDescription2 = data[4]; } } class AllowanceOrCharge { constructor(data) { this.tag = "ALC"; this.allowanceOrChargeCodeQualifier = data.elements[0][0]; if (data.elements.length > 1) { this.allowanceOrChargeInformation = new AllowanceOrChargeInformation(data.elements[1]); } if (data.elements.length > 2) { this.settlementMeansCode = data.elements[2][0]; } if (data.elements.length > 3) { this.calculationSequenceCode = data.elements[3][0]; } if (data.elements.length > 4) { this.specialServicesIdentification = new SpecialServicesIdentification(data.elements[4]); } } } exports.AllowanceOrCharge = AllowanceOrCharge; class AdditionalInformation { constructor(data) { this.tag = "ALI"; if (data.elements.length > 0) { this.countryOfOriginIdentifier = data.elements[0][0]; } if (data.elements.length > 1) { this.dutyRegimeTypeCode = data.elements[1][0]; } if (data.elements.length > 2) { this.specialConditionCode1 = data.elements[2][0]; } if (data.elements.length > 3) { this.specialConditionCode2 = data.elements[3][0]; } if (data.elements.length > 4) { this.specialConditionCode3 = data.elements[4][0]; } if (data.elements.length > 5) { this.specialConditionCode4 = data.elements[5][0]; } if (data.elements.length > 6) { this.specialConditionCode5 = data.elements[6][0]; } } } exports.AdditionalInformation = AdditionalInformation; class PriceMultiplierInformation { constructor(data, decimalSeparator) { this.priceMuliplierRate = sanitizeFloat(data[0], decimalSeparator); this.priceMuliplierTypeCodeQualifier = data[1]; } } class ReasonForChange { constructor(data) { this.changeReasonDescriptionCode = data[0]; this.codeListIdentificationCode = data[1]; this.codeListResponsibleAgencyCoe = data[2]; this.changeReasonDescription = data[3]; } } class AdditionalPriceInformation { constructor(data, decimalSeparator) { this.tag = "APR"; if (data.elements.length > 0) { this.tradeClassCode = data.elements[0][0]; } if (data.elements.length > 1) { this.priceMultiplierInformation = new PriceMultiplierInformation(data.elements[1], decimalSeparator); } if (data.elements.length > 2) { this.reasonForChange = new ReasonForChange(data.elements[2]); } } } exports.AdditionalPriceInformation = AdditionalPriceInformation; class MonetaryAmountFunctionData { constructor(data) { this.monetaryAmountFunctionDescriptionCode = data[0]; this.codeListIdentificationCode = data[1]; this.codeListResponsibleAgencyCode = data[2]; this.monetaryAmountFunctionDescription = data[3]; } } class MonetaryAmountFunctionDetail { constructor(data) { this.monetaryAmountFunctionDetailDescriptionCode = data[0]; this.codeListIdentificationCode = data[1]; this.codeListResponsibleAgencyCode = data[2]; this.monetaryAmountFunctionDetailDescription = data[3]; } } class MonetaryAmountFunction { constructor(data) { this.tag = "ARD"; if (data.elements.length > 0) { this.monetaryAmountFunction = new MonetaryAmountFunctionData(data.elements[0]); } if (data.elements.length > 1) { this.monetaryAmountFunctionDetail = new MonetaryAmountFunctionDetail(data.elements[1]); } } } exports.MonetaryAmountFunction = MonetaryAmountFunction; class AuthenticationResult { constructor(data) { this.tag = "AUT"; this.validationResultText = data.elements[0][0]; if (data.elements.length > 1) { this.validationKeyIdentifier = data.elements[1][0]; } } } exports.AuthenticationResult = AuthenticationResult; class MessageName { constructor(data) { this.documentNameCode = data[0]; this.codeListIdentificationCode = data[1]; this.codeListResponsibleAgencyCode = data[2]; this.documentName = data[3]; } } class MessageIdentification { constructor(data) { this.documentIdentifier = data[0]; this.versionIdentifier = data[1]; this.revisionIdentifier = data[2]; } } class BeginOfMessage { constructor(data) { this.tag = "BGM"; if (data.elements.length > 0) { this.messageName = new MessageName(data.elements[0]); } if (data.elements.length > 1) { this.messageIdentification = new MessageIdentification(data.elements[1]); } if (data.elements.length > 2) { this.messageFunctionCode = data.elements[2][0]; } if (data.elements.length > 3) { this.responseTypeCode = data.elements[3][0]; } if (data.elements.length > 4) { this.documentStatusCode = data.elements[4][0]; } if (data.elements.length > 5) { this.languageNameCode = data.elements[5][0]; } } } exports.BeginOfMessage = BeginOfMessage; class BusinessFunctionData { constructor(data) { this.businessFunctionTypeCodeQualifier = data[0]; this.businessFunctionCode = data[1]; this.codeListIdentificationCode = data[2]; this.codeListResponsibleAgencyCode = data[3]; this.businessDescription = data[4]; } } class BankOperation { constructor(data) { this.bankOperationCode = data[0]; this.codeListIdentificationCode = data[1]; this.codeListResponsibleAgencyCode = data[2]; } } class BusinessFunction { constructor(data) { this.tag = "BUS"; if (data.elements.length > 0) { this.businessFunction = new BusinessFunctionData(data.elements[0]); } if (data.elements.length > 1) { this.geographicAreaCode = data.elements[1][0]; } if (data.elements.length > 2) { this.financialTransactionTypeCode = data.elements[2][0]; } if (data.elements.length > 3) { this.bankOperation = new BankOperation(data.elements[3]); } if (data.elements.length > 4) { this.intraCompanyPaymentIndicatorCode = data.elements[4][0]; } } } exports.BusinessFunction = BusinessFunction; class CharacteristicValueData { constructor(data) { this.characteristicValueDescriptionCode = data[0]; this.codeListIdentificationCode = data[1]; this.codeListResponsibleAgencyCode = data[2]; this.characteristicValueDescription = data[3]; this.characteristicValueDescription2 = data[4]; } } class CharacteristicValue { constructor(data) { this.tag = "CAV"; this.characteristicValue = new CharacteristicValueData(data.elements[0]); } } exports.CharacteristicValue = CharacteristicValue; class CharacteristicDescription { constructor(data) { this.characteristicDescriptionCode = data[0]; this.codeListIdentificationCode = data[1]; this.codeListResponsibleAgencyCode = data[2]; this.characteristicDescription = data[3]; this.characteristicDescription2 = data[4]; } } class CharacteristicClassID { constructor(data) { this.tag = "CCI"; if (data.elements.length > 0) { this.classTypeCode = data.elements[0][0]; } if (data.elements.length > 1) { this.measurementDetails = new MeasurementDetails(data.elements[1]); } if (data.elements.length > 2) { this.characteristicDescription = new CharacteristicDescription(data.elements[2]); } if (data.elements.length > 3) { this.characteristicRelevanceCode = data.elements[3][0]; } } } exports.CharacteristicClassID = CharacteristicClassID; class ComputerEnviornmentIdentification { constructor(data) { this.computerEnvironmentNameCode = data[0]; this.codeListIdentificationCode = data[1]; this.codeListResponsibleAgencyCode = data[2]; this.computerEnvironmentName = data[3]; this.versionIdentifier = data[4]; this.releaseIdentifier = data[5]; this.objectIdentifier = data[6]; } } class ComputerEnvironmentDetails { constructor(data) { this.tag = "CED"; this.computerEnvironmentDetailsCodeQualifier = data.elements[0][0]; this.computerEnviornmentIdentification = new ComputerEnviornmentIdentification(data.elements[1]); if (data.elements.length > 3) { this.fileGenerationCommandName = data.elements[3][0]; } } } exports.ComputerEnvironmentDetails = ComputerEnvironmentDetails; class Control { constructor(data, decimalSeparator) { this.controlTotalTypeCodeQualifier = data[0]; this.controlTotalValue = sanitizeFloat(data[1], decimalSeparator); this.measurementUnitCode = data[2]; } } class ControlTotal { constructor(data, decimalSeparator) { this.tag = "CNT"; this.control = new Control(data.elements[0], decimalSeparator); } } exports.ControlTotal = ControlTotal; class TypeOfUnit { constructor(data) { this.unitOrComponentTypeDescriptionCode = data[0]; this.codeListIdentificationCode = data[1]; this.codeListResponsibleAgencyCode = data[2]; this.unitOrComponentTypeDescription = data[3]; } } class ComponentMaterial { constructor(data) { this.componentMaterialDescriptionCode = data[0]; this.codeListIdentificationCode = data[1]; this.codeListResponsibleAgencyCode = data[2]; this.componentMaterialDescription = data[3]; } } class ComponentDetails { constructor(data) { this.tag = "COD"; if (data.elements.length > 0) { this.typeOfUnit = new TypeOfUnit(data.elements[0]); } if (data.elements.length > 1) { this.componentMaterial = new ComponentMaterial(data.elements[1]); } } } exports.ComponentDetails = ComponentDetails; class CommunicationContactData { constructor(data) { this.communicationAddressIdentifier = data[0]; this.communicationAddressCodeQualifier = data[1]; } } class CommunicationContact { constructor(data) { this.tag = "COM"; this.communicationContact = new CommunicationContactData(data.elements[0]); } } exports.CommunicationContact = CommunicationContact; class ConsignmentPackingSequence { constructor(data) { this.tag = "CPS"; this.hierarchicalStructureLevelIdentifier = data.elements[0][0]; if (data.elements.length > 1) { this.hierarchicalStructureParentIdentifier = data.elements[1][0]; } if (data.elements.length > 2) { this.packagingLevelCode = data.elements[2][0]; } } } exports.ConsignmentPackingSequence = ConsignmentPackingSequence; class DepartmentOrEmployeeDetails { constructor(data) { this.departmentOrEmployeeNameCode = data[0]; this.departmentOrEmployeeName = data[1]; } } class ContactInformation { constructor(data) { this.tag = "CTA"; if (data.elements.length > 0) { this.contactFunctionCode = data.elements[0][0]; } if (data.elements.length > 1) { this.departmentOrEmployeeDetails = new DepartmentOrEmployeeDetails(data.elements[1]); } } } exports.ContactInformation = ContactInformation; class CurrencyDetails { constructor(data) { this.currencyUsageCodeQualifier = data[0]; this.currencyIdentificationCode = data[1]; this.currencyTypeCodeQualifier = data[2]; if (data.length > 3) { this.currencyRate = parseInt(data[3]); } } } class Currencies { constructor(data, decimalSymbol) { this.tag = "CUX"; if (data.elements.length > 0) { this.currencyDetails1 = new CurrencyDetails(data.elements[0]); } if (data.elements.length > 1) { this.currencyDetails2 = new CurrencyDetails(data.elements[1]); } if (data.elements.length > 2) { this.currencyExchangeRate = sanitizeFloat(data.elements[2][0], decimalSymbol); } if (data.elements.length > 3) { this.exchangeRateCurrencyMarketIdentifier = data.elements[3][0]; } } } exports.Currencies = Currencies; class HazardCode { constructor(data) { this.hazardIdentificationCode = data[0]; this.additionalHazardClassificationIdentifier = data[1]; this.hazardCodeVersionIdentifier = data[2]; } } class UnitedNationsDagneoursGoodsInformation { constructor(data) { if (data.length > 0) { this.unitedNationsangerousGoodsIdentifier = parseInt(data[0]); } this.dangerousGoodsFlashpointValue = data[1]; } } class DangerousGoodsShipmentFlashpoint { constructor(data) { if (data.length > 0) { this.shipmentFlashpointValue = parseInt(data[0]); } this.measurementUnitCode = data[1]; } } class HazardIdentificationPlacardDetails { constructor(data) { this.orangeHazardPlacardUpperPardIdentifier = data[0]; this.orangeHazardPlacardLowerPartIdentifier = data[1]; } } class DangerousGoodsLabel { constructor(data) { this.dangerousGoodsMarkingIdentifier1 = data[0]; this.dangerousGoodsMarkingIdentifier2 = data[1]; this.dangerousGoodsMarkingIdentifier3 = data[2]; } } class DangerousGoods { constructor(data) { this.tag = "DGS"; this.dangerousGoodsRegulationsCode = data.elements[0][0]; if (data.elements.length > 1) { this.hazardCode = new HazardCode(data.elements[1]); } if (data.elements.length > 2) { this.undgInformation = new UnitedNationsDagneoursGoodsInformation(data.elements[2]); } if (data.elements.length > 3) { this.dangerousGoodsShipmentFlashpoint = new DangerousGoodsShipmentFlashpoint(data.elements[3]); } if (data.elements.length > 4) { this.packagingDangerLevelCode = data.elements[4][0]; } if (data.elements.length > 5) { this.emergencyProcedureForShipsIdentifier = data.elements[5][0]; } if (data.elements.length > 6) { this.hazardMedicalFirstAidGuideIdentifier = data.elements[6][0]; } if (data.elements.length > 7) { this.transportEmergencyCardIdentifier = data.elements[7][0]; } if (data.elements.length > 8) { this.hazardIdentificationPlacardDetails = new HazardIdentificationPlacardDetails(data.elements[8]); } if (data.elements.length > 9) { this.dangerousGoodsLabel = new DangerousGoodsLabel(data.elements[9]); } if (data.elements.length > 10) { this.packingInstructionTypeCode = data.elements[10][0]; } if (data.elements.length > 11) { this.hazardousMeansOfTransportCategoryCode = data.elements[11][0]; } if (data.elements.length > 12) { this.hazardousCargoTransportAuthorizationCode = data.elements[12][0]; } } } exports.DangerousGoods = DangerousGoods; class DeliveryLimitations { constructor(data) { this.tag = "DLM"; if (data.elements.length > 0) { this.backOrderArrangementTypeCode = data.elements[0][0]; } if (data.elements.length > 1) { this.instruction = new Instruction(data.elements[1]); } if (data.elements.length > 2) { this.specialServicesIdentification = new SpecialServicesIdentification(data.elements[2]); } if (data.elements.length > 3) { this.substitutionConditionCode = data.elements[3][0]; } } } exports.DeliveryLimitations = DeliveryLimitations; class MessageSummary { constructor(data) { this.tag = "DMS"; if (data.elements.length > 0) { this.messageIdentification = new MessageIdentification(data.elements[0]); } if (data.elements.length > 1) { this.messageName = new MessageName(data.elements[1]); } if (data.elements.length > 2) { this.itemTotalQuantity = parseInt(data.elements[2][0]); } } } exports.MessageSummary = MessageSummary; class MessageDetailsData { constructor(data) { this.documentIdentifer = data[0]; this.documentStatusCode = data[1]; this.documentSourceDescription = data[2]; this.languageNameCode = data[3]; this.versionIdentifier = data[4]; this.revisionIdentifier = data[5]; } } class MessageDetails { constructor(data) { this.tag = "DOC"; this.messageName = new MessageName(data.elements[0]); if (data.elements.length > 1) { this.messageDetails = new MessageDetailsData(data.elements[1]); } if (data.elements.length > 2) { this.communicationMediumTypeCode = data.elements[2][0]; } if (data.elements.length > 3) { this.documentCopiesRequiredQuantity = parseInt(data.elements[3][0]); } if (data.elements.length > 4) { this.doucmentOriginalsRequiredQuantity = parseInt(data.elements[4][0]); } } } exports.MessageDetails = MessageDetails; class DateTimePeriod { constructor(data) { this.tag = "DTM"; this.dateTimeOrPeriodFunctionCodeQualifier = data.elements[0][0]; if (data.elements[0].length > 1) { this.dateTimeOrPeriodText = data.elements[0][1]; } if (data.elements[0].length > 2) { this.dateTimeOrPeriodFormatCode = data.elements[0][2]; } } } exports.DateTimePeriod = DateTimePeriod; class FileIdentification { constructor(data) { this.fileName = data[0]; this.itemDescription = data[1]; } } class FileDetails { constructor(data) { this.fileFormatName = data[0]; this.versionIdentifier = data[1]; this.dataFormatDescriptionCode = data[2]; this.dataFormatDescription = data[3]; } } class ExternalFileLinkIdentification { constructor(data) { this.tag = "EFI"; this.fileIdentification = new FileIdentification(data.elements[0]); if (data.elements.length > 1) { this.fileDetails = new FileDetails(data.elements[1]); } if (data.elements.length > 2) { this.sequencePositionIdentifier = data.elements[2][0]; } if (data.elements.length > 3) { this.fileCompressionTechniqueName = data.elements[3][0]; } } } exports.ExternalFileLinkIdentification = ExternalFileLinkIdentification; class AttachedEquipment { constructor(data) { this.tag = "EQA"; this.equipmentTypeCodeQualifier = data.elements[0][0]; if (data.elements.length > 1) { this.equipmentIdentification = new EquipmentIdentification(data.elements[1]); } } } exports.AttachedEquipment = AttachedEquipment; class EquipmentIdentification { constructor(data) { this.equipmentIdentifier = data[0]; this.codeListIdentificationCode = data[1]; this.codeListResponsibleAgencyCode = data[2]; this.countryNameCode = data[3]; } } class EquipmentSizeAndType { constructor(data) { this.equipmentSizeAndTypeDescriptionCode = data[0]; this.codeListIdentificationCode = data[1]; this.codeListResponsibleAgencyCode = data[2]; this.equipmentSizeAndTypeDescription = data[3]; } } class EquipmentDetails { constructor(data) { this.tag = "EQD"; this.equipmentTypeCodeQualifier = data.elements[0][0]; if (data.elements.length > 1) { this.equipmentIdentification = new EquipmentIdentification(data.elements[1]); } if (data.elements.length > 2) { this.equipmentSizeAndType = new EquipmentSizeAndType(data.elements[2]); } if (data.elements.length > 3) { this.equipmentSupplierCode = data.elements[3][0]; } if (data.elements.length > 4) { this.equipmentStatusCode = data.elements[4][0]; } if (data.elements.length > 5) { this.fullOrEmptyIndicatorCode = data.elements[5][0]; } } } exports.EquipmentDetails = EquipmentDetails; class ApplicationErrorDetail { constructor(data) { this.applicationErrorCode = data[0]; this.codeListIdentificationCode = data[1]; this.codeListResponsibleAgencyCode = data[2]; } } class ApplicationErrorInformation { constructor(data) { this.tag = "ERC"; this.applicationErrorDetail = new ApplicationErrorDetail(data.elements[0]); } } exports.ApplicationErrorInformation = ApplicationErrorInformation; class AccountHolderIdentification { constructor(data) { this.accountHolderIdentifier = data[0]; this.accountHolderName = data[1]; this.accountHolderName2 = data[2]; this.currencyIdentificationCode = data[3]; } } class InstitutionIdentification { constructor(data) { this.institutionNameCode = data[0]; this.codeListIdentificationCode = data[1]; this.codeListResponsibleAgencyCode = data[2]; this.institutionBranchIdentifier = data[3]; this.codeListIdentificationCode2 = data[4]; this.codeListResponsibleAgencyCode2 = data[5]; this.institutionName = data[6]; this.institutionBranchLocationName = data[7]; } } class FinancialInstitutionInformation { constructor(data) { this.tag = "FII"; this.partyFunctionCodeQualifier = data.elements[0][0]; if (data.elements.length > 1) { this.accountHolderIdentification = new AccountHolderIdentification(data.elements[1]); } if (data.elements.length > 2) { this.institutionIdentification = new InstitutionIdentification(data.elements[2]); } if (data.elements.length > 3) { this.countryNameCode = data.elements[3][0]; } } } exports.FinancialInstitutionInformation = FinancialInstitutionInformation; class TextReference { constructor(data) { this.freeTextValueCode = data[0]; this.codeListIdentificationCode = data[1]; this.codeListResponsibleAgencyCode = data[2]; } } class TextLiteral { constructor(data) { this.freeTextValue1 = data[0]; this.freeTextValue2 = data[1]; this.freeTextValue3 = data[2]; this.freeTextValue4 = data[3]; this.freeTextValue5 = data[4]; } } class FreeText { constructor(data) { this.tag = "FTX"; this.textSubjectCodeQualifier = data.elements[0][0]; this.freeTextFunctionCode = data.elements[1][0]; if (data.elements.length > 2) { this.textReference = new TextReference(data.elements[2]); } if (data.elements.length > 3) { this.textLiteral = new TextLiteral(data.elements[3]); } if (data.elements.length > 4) { this.languageNameCode = data.elements[4][0]; } if (data.elements.length > 5) { this.freeTextFormatCode = data.elements[5][0]; } } } exports.FreeText = FreeText; class ProcessingIndicator { constructor(data) { this.processingIndicatorDescriptionCode = data[0]; this.codeListIdentificationCode = data[1]; this.codeListResponsibleAgencyCode = data[2]; this.processTypeDescriptionCode = data[3]; } } class ProcessingInformation { constructor(data) { this.tag = "GEI"; this.processingInformationCodeQualifier = data.elements[0][0]; if (data.elements.length > 1) { this.processingIndicator = new ProcessingIndicator(data.elements[1]); } if (data.elements.length > 2) { this.processTypeDescriptionCode = data.elements[2][0]; } } } exports.ProcessingInformation = ProcessingInformation; class IdentityNumberRange { constructor(data) { this.objectIdentifier1 = data[0]; this.objectIdentifier2 = data[1]; } } class GoodsIdentityNumber { constructor(data) { this.tag = "GIN"; this.objectIdentificationCodeQualifier = data.elements[0][0]; this.identityNumberRange1 = new IdentityNumberRange(data.elements[1]); if (data.elements.length > 2) { this.identityNumberRange2 = new IdentityNumberRange(data.elements[2]); } if (data.elements.length > 3) { this.identityNumberRange3 = new IdentityNumberRange(data.elements[3]); } if (data.elements.length > 4) { this.identityNumberRange4 = new IdentityNumberRange(data.elements[4]); } if (data.elements.length > 5) { this.identityNumberRange5 = new IdentityNumberRange(data.elements[5]); } } } exports.GoodsIdentityNumber = GoodsIdentityNumber; class IdentificationNumber { constructor(data) { this.objectIdentifier = data[0]; this.objectIdentificationCodeQualifier = data[1]; this.statusDescriptionCode = data[2]; } } class RelatedInformationNumbers { constructor(data) { this.tag = "GIR"; this.setTypeCodeQualifier = data.elements[0][0]; this.identificationNumber1 = new IdentificationNumber(data.elements[1]); if (data.elements.length > 2) { this.identificationNumber2 = new IdentificationNumber(data.elements[2]); } if (data.elements.length > 3) { this.identificationNumber3 = new IdentificationNumber(data.elements[3]); } if (data.elements.length > 4) { this.identificationNumber4 = new IdentificationNumber(data.elements[4]); } if (data.elements.length > 5) { this.identificationNumber5 = new IdentificationNumber(data.elements[5]); } } } exports.RelatedInformationNumbers = RelatedInformationNumbers; class GeneralIndicator { constructor(data) { this.tag = "GIS"; this.processingIndicator = new ProcessingIndicator(data.elements[0]); } } exports.GeneralIndicator = GeneralIndicator; class HandlingInstructionsData { constructor(data) { this.handlingInstructionDescriptionCode = data[0]; this.codeListIdentificationCode = data[1]; this.codeListResponsibleAgencyCode = data[2]; this.handlingInstructionDescription = data[3]; } } class HazardousMaterial { constructor(data) { this.hazardousMaterialCategoryNameCode = data[0]; this.codeListIdentificationCode = data[1]; this.codeListResponsibleAgencyCode = data[2]; this.hazardousMaterialCategoryName = data[3]; } } class HandlingInstructions { constructor(data) { this.tag = "HAN"; if (data.elements.length > 0) { this.handlingInstructions = new HandlingInstructionsData(data.elements[0]); } if (data.elements.length > 1) { this.hazardousMaterial = new HazardousMaterial(data.elements[1]); } } } exports.HandlingInstructions = HandlingInstructions; class HierarchyInformation { constructor(data) { this.tag = "HYN"; this.hierarchyObjectCodeQualifier = data.elements[0][0]; if (data.elements.length > 1) { this.hierarchicalStructureRelationshipCode = data.elements[1][0]; } if (data.elements.length > 2) { this.actionCode = data.elements[2][0]; } if (data.elements.length > 3) { this.itemNumberIdentification = new ItemNumberIdentification(data.elements[3]); } if (data.elements.length > 4) { this.hierarchicalStructureParentIdentifier = data.elements[4][0]; } } } exports.HierarchyInformation = HierarchyInformation; class PositionIdentification { constructor(data) { this.hierarchicalStructureLevelIdentifier = data[0]; this.sequencePositionIdentifier = data[1]; } } class Identity { constructor(data) { this.tag = "IDE"; this.objectTypeCodeQualifier = data.elements[0][0]; if (data.elements.length > 1) { this.identificationNumber = new IdentificationNumber(data.elements[1]); } if (data.elements.length > 2) { this.partyIdentificationDetails = new PartyIdentificationDetails(data.elements[2]); } if (data.elements.length > 3) { this.statusDescriptionCode = data.elements[3][0]; } if (data.elements.length > 4) { this.configurationLevelNumber = parseInt(data.elements[4][0]); } if (data.elements.length > 5) { this.positionIdentification = new PositionIdentification(data.elements[5]); } if (data.elements.length > 6) { this.characteristicDescription = new CharacteristicDescription(data.elements[6]); } } } exports.Identity = Identity; class ItemCharacteristic { constructor(data) { this.itemCharacteristicCode = data[0]; this.codeListIdentificationCode = data[1]; this.codeListResponsibleAgencyCode = data[2]; } } class ItemDescriptionData { constructor(data) { this.itemDescriptionCode = data[0]; this.codeListIdentificationCode = data[1]; this.codeListResponsibleAgencyCode = data[2]; this.itemDescription = data[3]; this.itemDescription2 = data[4]; this.languageNameCode = data[5]; } } class ItemDescription { constructor(data) { this.tag = "IMD"; if (data.elements.length > 0) { this.descriptionFormatCode = data.elements[0][0]; } if (data.elements.length > 1) { this.itemCharacteristic = new ItemCharacteristic(data.elements[1]); } if (data.elements.length > 2) { this.itemDescription = new ItemDescriptionData(data.elements[2]); } if (data.elements.length > 3) { this.surfaceOrLayerCode = data.elements[3][0]; } } } exports.ItemDescription = ItemDescription; class PartiesToInstruction { constructor(data) { this.enactingPartyIdentifier = data[0]; this.instructionReceivingPartyIdentifier = data[1]; } } class Instruction { constructor(data) { this.instructionTypeCodeQualifier = data[0]; this.instructionDescriptionCode = data[1]; this.codeListIdentificationCode = data[2]; this.codeListResponsibleAgencyCode = data[3]; this.instructionDescription = data[4]; } } class StatusOfInstruction { constructor(data) { this.statusDescriptionCode = data[0]; this.partyName = data[1]; } } class PartiesAndInstruction { constructor(data) { this.tag = "INP"; if (data.elements.length > 0) { this.partiesToInstruction = new PartiesToInstruction(data.elements[0]); } if (data.elements.length > 1) { this.instruction = new Instruction(data.elements[1]); } if (data.elements.length > 2) { this.statusOfInstruction = new StatusOfInstruction(data.elements[2]); } if (data.elements.length > 3) { this.actionRequestNotificationDescriptionCode = data.elements[3][0]; } } } exports.PartiesAndInstruction = PartiesAndInstruction; class InformationRequest { constructor(data) { this.requestInformationDescriptionCode = data[0]; this.codeListIdentificationCode = data[1]; this.codeListResponsibleAgencyCode = data[2]; this.requestInformationDescription = data[3]; } } class InformationRequired { constructor(data) { this.tag = "IRQ"; this.informationRequest = new InformationRequest(data.elements[0]); } } exports.InformationRequired = InformationRequired; class ItemNumberIdentification { constructor(data) { this.itemIdentifier = data[0]; this.itemTypeIdentificationCode = data[1]; this.codeListIdentificationCode = data[2]; this.codeListResponsibleAgencyCode = data[3]; } } class SubLineInformation { constructor(data) { this.subLineIndicatorCode = data[0]; this.lineItemIdentifier = data[1]; } } class LineItem { constructor(data) { this.tag = "LIN"; if (data.elements.length > 0) { this.lineItemIdendifier = data.elements[0][0]; } if (data.elements.length > 1) { this.actionRequestNotificationDescriptionCode = data.elements[1][0]; } if (data.elements.length > 2) { this.itemNumberIdentification = new ItemNumberIdentification(data.elements[2]); } if (data.elements.length > 3) { this.subLineInformatin = new SubLineInformation(data.elements[3]); } if (data.elements.length > 4) { this.configurationLevelNumber = parseInt(data.elements[4][0]); } if (data.elements.length > 5) { this.configurationOperationCode = data.elements[5][0]; } } } exports.LineItem = LineItem; class LocationIdentificationData { constructor(data) { this.locationNameCode = data[0]; this.codeListIdentificationCode = data[1]; this.codeListResponsibleAgencyCode = data[2]; this.locationName = data[3]; } } class RelatedLocationOneIdentification { constructor(data) { this.firstRelatedLocationNameCode = data[0]; this.codeListIdentificationCode = data[1]; this.codeListResponsibleAgencyCode = data[2]; this.firstRelatedLocationName = data[3]; } } class RelatedLocationTwoIdentification { constructor(data) { this.secondRelatedLocationNameCode = data[0]; this.codeListIdentificationCode = data[1]; this.codeListResponsibleAgencyCode = data[2]; this.secondRelatedLocationName = data[3]; } } class LocationIdentification { constructor(data) { this.tag = "LOC"; this.locationFunctionCodeQualifier = data.elements[0][0]; if (data.elements.length > 1) { this.locationIdentification = new LocationIdentificationData(data.elements[1]); } if (data.elements.length > 2) { this.relatedLocationOneIdentification = new RelatedLocationOneIdentification(data.elements[2]); } if (data.elements.length > 3) { this.relatedLocationTwoIdentification = new RelatedLocationTwoIdentification(data.elements[3]); } if (data.elements.length > 4) { this.relationCode = data.elements[4][0]; } } } exports.LocationIdentification = LocationIdentification; class MeasurementDetails { constructor(data) { this.measuredAttributeCode = data[0]; this.measurementSignificanceCode = data[1]; this.nonDiscreteMeasurementNameCode = data[2]; this.nonDiscreteMeasurementName = data[3]; } } class ValueRange { constructor(data) { this.measurementUnitCode = data[0]; this.measure = data[1]; if (data.length > 2) { this.rangeMinimumQuantity = parseInt(data[2]); } if (data.length > 3) { this.rangeMaximumQuantity = parseInt(data[3]); } if (data.length > 4) { this.significantDigitsQuantity = parseInt(data[4]); } } } class Measurements { constructor(data) { this.tag = "MEA"; this.measurementPurposeCodeQualifier = data.elements[0][0]; if (data.elements.length > 1) { this.measurementDetails = new MeasurementDetails(data.elements[1]); } if (data.elements.length > 2) { this.valueRange = new ValueRange(data.elements[2]); } if (data.elements.length > 3) { this.surfaceOrLayerCode = data.elements[3][0]; } } } exports.Measurements = Measurements; class MonetaryAmountData { constructor(data, decimalSeparator) { this.monetaryAmountTypeCodeQualifier = data[0]; if (data.length > 1) { this.monetaryAmount = sanitizeFloat(data[1], decimalSeparator); } this.currencyIdentificationCode = data[2]; this.currencyTypeCodeQualifier = data[3]; this.statusDescriptionCode = data[4]; } } class MonetaryAmount { constructor(data, decimalSeparator) { this.tag = "MOA"; this.monetaryAmount = new MonetaryAmountData(data.elements[0], decimalSeparator); } } exports.MonetaryAmount = MonetaryAmount; class MaintenanceOperationDetails { constructor(data) { this.tag = "MTD"; this.objectTypeCodeQualifier = data.elements[0][0]; if (data.elements.length > 1) { this.maintenanceOperationCode = data.elements[1][0]; } if (data.elements.length > 2) { this.maintenanceOperationOperatorCode = data.elements[2][0]; } if (data.elements.length > 3) { this.maintenanceOperationPayerCode = data.elements[3][0]; } } } exports.MaintenanceOperationDetails = MaintenanceOperationDetails; class PartyIdentificationDetails { constructor(data) { this.partyIdentifier = data[0]; this.codeListIdentificationCode = data[1]; this.codeListResponsibleAgencyCode = data[2]; } } class NameAndAddressData { constructor(data) { this.nameAndAddressDescription1 = data[0]; this.nameAndAddressDescription2 = data[1]; this.nameAndAddressDescription3 = data[2]; this.nameAndAddressDescription4 = data[3]; this.nameAndAddressDescription5 = data[4]; } } class PartyName { constructor(data) { this.partyName1 = data[0]; this.partyName2 = data[1]; this.partyName3 = data[2]; this.partyName4 = data[3]; this.partyName5 = data[4]; this.partyNameFormatCode = data[5]; } } class Street { constructor(data) { this.streetAndNumberOrPostOfficeBoxIdentifier1 = data[0]; this.streetAndNumberOrPostOfficeBoxIdentifier2 = data[0]; this.streetAndNumberOrPostOfficeBoxIdentifier3 = data[0]; this.streetAndNumberOrPostOfficeBoxIdentifier4 = data[0]; } } class CountrySubEntityDetails { constructor(data) { this.countrySubEntityNameCode = data[0]; this.codeListIdentificationCode = data[1]; this.codeListResponsibleAgencyCode = data[2]; this.countrySubEntityName = data[3]; } } class NameAndAddress { constructor(data) { this.tag = "NAD"; this.partyFunctionCodeQualifier = data.elements[0][0]; if (data.elements.length > 1) { this.partyIdentificationDetails = new PartyIdentificationDetails(data.elements[1]); } if (data.elements.length > 2) { this.nameAndAddress = new NameAndAddressData(data.elements[2]); } if (data.elements.length > 3) { this.partyName = new PartyName(data.elements[3]); } if (data.elements.length > 4) { this.street = new Street(data.elements[4]); } if (data.elements.length > 5) { this.cityName = data.elements[5][0]; } if (data.elements.length > 6) { this.countrySubEntityDetails = new CountrySubEntityDetails(data.elements[6]); } if (data.elements.length > 7) { this.postalIdentificationCode = data.elements[7][0]; } if (data.elements.length > 8) { this.count