protected void MontarMea(string calificadorAplicacionMedida6311, string calificadorUnidadMedida6411, string valorMedida6314) { var mea = new MEA(calificadorAplicacionMedida6311, null, new ValorAmplitud(calificadorUnidadMedida6411, valorMedida6314, null, null), null); Segmentos.Add(mea); Mensaje += mea.getSegmento(); }
/// <summary> /// Build purchase order. /// Original example from http://www.x12.org/examples/004010X357/tax-exempt-purchase-order/ /// </summary> public static TS850 BuildPurchaseOrder(string controlNumber) { var result = new TS850(); // Indicates the start of a purchase order transaction set and assigns a control number. result.ST = new ST(); result.ST.TransactionSetIdentifierCode_01 = "850"; result.ST.TransactionSetControlNumber_02 = controlNumber.PadLeft(9, '0'); // Indicates that this is original purchase order number XX-1234, dated March 1, 2017, and that no acknowledgment is necessary. result.BEG = new BEG(); result.BEG.TransactionSetPurposeCode_01 = "00"; result.BEG.PurchaseOrderTypeCode_02 = "SA"; result.BEG.PurchaseOrderNumber_03 = "XX-1234"; result.BEG.Date_05 = "20170301"; result.BEG.AcknowledgmentType_07 = "NA"; // Repeating PER result.PER = new List <PER>(); // Indicates that the name of the Buyer is Ed Smith, and his telephone number is (800) 123-4567. var per = new PER(); per.ContactFunctionCode_01 = "BD"; per.Name_02 = "ED SMITH"; per.CommunicationNumberQualifier_03 = "TE"; per.CommunicationNumber_04 = "8001234567"; result.PER.Add(per); // Repeating TAX result.TAX = new List <TAX>(); // Provides state tax exempt ID 53247765. var tax = new TAX(); tax.TaxIdentificationNumber_01 = "53247765"; tax.LocationQualifier_02 = "SP"; tax.LocationIdentifier_03 = "CA"; tax.TaxExemptCode_12 = "9"; result.TAX.Add(tax); // Repeating N1 Loops result.N1Loop = new List <Loop_N1_850>(); // Begin N1 Loop var n1Loop = new Loop_N1_850(); // Indicates that the buyer is ABC Aerospace. ABC's D-U-N-S+4 number is 123456789-0101. n1Loop.N1 = new N1(); n1Loop.N1.EntityIdentifierCode_01 = "BY"; n1Loop.N1.Name_02 = "ABC AEROSPACE"; n1Loop.N1.IdentificationCodeQualifier_03 = "9"; n1Loop.N1.IdentificationCode_04 = "1234567890101"; // Repeating N2 n1Loop.N2 = new List <N2>(); // Provides additional name content for the buyer. var n2 = new N2(); n2.Name_01 = "AIRCRAFT DIVISION"; n1Loop.N2.Add(n2); // Repeating N3 n1Loop.N3 = new List <N3>(); // The buyer’s street address is 2000 Jet Blvd. var n3 = new N3(); n3.AddressInformation_01 = "2000 JET BLVD"; n1Loop.N3.Add(n3); // Repeating N4 n1Loop.N4 = new List <N4>(); // The buyer’s city, state, and ZIP is Fighter Town, CA 98898. var n4 = new N4(); n4.CityName_01 = "FIGHTER TOWN"; n4.StateorProvinceCode_02 = "CA"; n4.PostalCode_03 = "98898"; n1Loop.N4.Add(n4); // End N1 Loop result.N1Loop.Add(n1Loop); // Repeating PO1 Loops result.PO1Loop = new List <Loop_PO1_850>(); // Begin PO1 Loop var pO1Loop = new Loop_PO1_850(); // Indicates Baseline item 1 is a request to purchase 25 units, with a price of $36.00 each, of manufacturer's part number XYZ-1234. pO1Loop.PO1 = new PO1(); pO1Loop.PO1.AssignedIdentification_01 = "1"; pO1Loop.PO1.QuantityOrdered_02 = "25"; pO1Loop.PO1.UnitorBasisforMeasurementCode_03 = "EA"; pO1Loop.PO1.UnitPrice_04 = "36"; pO1Loop.PO1.BasisofUnitPriceCode_05 = "PE"; pO1Loop.PO1.ProductServiceIDQualifier_06 = "MG"; pO1Loop.PO1.ProductServiceID_07 = "XYZ-1234"; // Repeating MEA pO1Loop.MEA = new List <MEA>(); // Indicates that each unit in the order weighs 10 ounces. var mea = new MEA(); mea.MeasurementReferenceIDCode_01 = "WT"; mea.MeasurementQualifier_02 = "WT"; mea.MeasurementValue_03 = "10"; mea.CompositeUnitofMeasure_04 = new C001(); mea.CompositeUnitofMeasure_04.UnitorBasisforMeasurementCode_01 = "OZ"; pO1Loop.MEA.Add(mea); // Indicates that no product substitution is allowed. pO1Loop.IT8 = new IT8(); pO1Loop.IT8.ProductServiceSubstitutionCode_07 = "B0"; // Repeating SCH Loops pO1Loop.SCHLoop = new List <Loop_SCH_850>(); // Begin SCH Loop var schLoop = new Loop_SCH_850(); // Indicates that the 25 units are required to arrive by June 15, 2017. schLoop.SCH = new SCH(); schLoop.SCH.Quantity_01 = "25"; schLoop.SCH.UnitorBasisforMeasurementCode_02 = "EA"; schLoop.SCH.DateTimeQualifier_05 = "106"; schLoop.SCH.Date_06 = "20170615"; // End SCH Loop pO1Loop.SCHLoop.Add(schLoop); // End PO1 Loop result.PO1Loop.Add(pO1Loop); // Begin CTT Loop result.CTTLoop = new Loop_CTT_850(); // Indicates that the purchase order contains 1 line item. result.CTTLoop.CTT = new CTT(); result.CTTLoop.CTT.NumberofLineItems_01 = "1"; // Indicates that the total amount of the purchase order is $900. result.CTTLoop.AMT = new AMT(); result.CTTLoop.AMT.AmountQualifierCode_01 = "TT"; result.CTTLoop.AMT.MonetaryAmount_02 = "900"; // End CTT Loop return(result); }
/// <summary> /// Build price catalogue. /// Original from https://www.gs1.org/sites/default/files/docs/eancom/s4/pricat.pdf /// </summary> static TSPRICAT BuildPriceCatalogue(string controlNumber) { var result = new TSPRICAT(); // Message header result.UNH = new UNH(); result.UNH.MessageReferenceNumber_01 = controlNumber.PadLeft(14, '0'); result.UNH.MessageIdentifier_02 = new S009(); result.UNH.MessageIdentifier_02.MessageType_01 = "PRICAT"; result.UNH.MessageIdentifier_02.MessageVersionNumber_02 = "D"; result.UNH.MessageIdentifier_02.MessageReleaseNumber_03 = "96A"; result.UNH.MessageIdentifier_02.ControllingAgencyCoded_04 = "UN"; // Price/sales catalogue number PC32458 result.BGM = new BGM(); result.BGM.DOCUMENTMESSAGENAME_01 = new C002(); result.BGM.DOCUMENTMESSAGENAME_01.Documentmessagenamecoded_01 = "9"; result.BGM.Documentmessagenumber_02 = "PC32458"; result.BGM.Messagefunctioncoded_03 = "9"; // Repeating DTM result.DTM = new List <DTM>(); // Message date 1st October 2002 var dtm1 = new DTM(); dtm1.DATETIMEPERIOD_01 = new C507(); dtm1.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 = "137"; dtm1.DATETIMEPERIOD_01.Datetimeperiod_02 = "20021001"; dtm1.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102"; result.DTM.Add(dtm1); // Repeating RFF Groups result.RFFLoop = new List <Loop_RFF_PRICAT>(); // Begin RFF Group var rffLoop1 = new Loop_RFF_PRICAT(); // Price list is related to contract number 5622ABE rffLoop1.RFF = new RFF(); rffLoop1.RFF.REFERENCE_01 = new C506(); rffLoop1.RFF.REFERENCE_01.Referencequalifier_01 = "CT"; rffLoop1.RFF.REFERENCE_01.Referencenumber_02 = "5622ABE"; // Repeating DTM rffLoop1.DTM = new List <DTM>(); // Contract date 10th of August 2002 var dtmRff1 = new DTM(); dtmRff1.DATETIMEPERIOD_01 = new C507(); dtmRff1.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 = "171"; dtmRff1.DATETIMEPERIOD_01.Datetimeperiod_02 = "20020810"; dtmRff1.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102"; rffLoop1.DTM.Add(dtmRff1); // End RFF Group result.RFFLoop.Add(rffLoop1); // Repeating NAD Groups result.NADLoop = new List <Loop_NAD_PRICAT>(); // Begin NAD Group 1 var nadLoop1 = new Loop_NAD_PRICAT(); // Buyer is identified by GLN 5412345000020 nadLoop1.NAD = new NAD(); nadLoop1.NAD.Partyqualifier_01 = "BY"; nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082(); nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01 = "5412345000020"; nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9"; // Repeating RFF NAD Groups nadLoop1.RFFLoop = new List <Loop_RFF_PRICAT>(); // Begin RFF NAD Group var rffNadLoop1 = new Loop_RFF_PRICAT(); // Buyer’s VAT number VR12345 rffNadLoop1.RFF = new RFF(); rffNadLoop1.RFF.REFERENCE_01 = new C506(); rffNadLoop1.RFF.REFERENCE_01.Referencequalifier_01 = "VA"; rffNadLoop1.RFF.REFERENCE_01.Referencenumber_02 = "VR12345"; // End RFF NAD Group nadLoop1.RFFLoop.Add(rffNadLoop1); // End NAD Group 1 result.NADLoop.Add(nadLoop1); // Begin NAD Group 2 var nadLoop2 = new Loop_NAD_PRICAT(); // Supplier is identified by GLN 4012345500004 nadLoop2.NAD = new NAD(); nadLoop2.NAD.Partyqualifier_01 = "SU"; nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082(); nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01 = "4012345500004"; nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9"; // Repeating RFF NAD Groups nadLoop2.RFFLoop = new List <Loop_RFF_PRICAT>(); // Begin RFF NAD Group var rffNadLoop2 = new Loop_RFF_PRICAT(); // Supplier’s VAT number is VR95745 rffNadLoop2.RFF = new RFF(); rffNadLoop2.RFF.REFERENCE_01 = new C506(); rffNadLoop2.RFF.REFERENCE_01.Referencequalifier_01 = "VA"; rffNadLoop2.RFF.REFERENCE_01.Referencenumber_02 = "VR95745"; // End RFF NAD Group nadLoop2.RFFLoop.Add(rffNadLoop2); // End NAD Group 2 result.NADLoop.Add(nadLoop2); // Repeating CUX Groups result.CUXLoop = new List <Loop_CUX_PRICAT>(); // Begin CUX Group var cuxLoop = new Loop_CUX_PRICAT(); // Price list currency is Euros cuxLoop.CUX = new CUX(); cuxLoop.CUX.CURRENCYDETAILS_01 = new C504(); cuxLoop.CUX.CURRENCYDETAILS_01.Currencydetailsqualifier_01 = "2"; cuxLoop.CUX.CURRENCYDETAILS_01.Currencycoded_02 = "EUR"; cuxLoop.CUX.CURRENCYDETAILS_01.Currencyqualifier_03 = "8"; // End CUX Group result.CUXLoop.Add(cuxLoop); // Repeating PGI Groups result.PGILoop = new List <Loop_PGI_PRICAT>(); // Begin PGI Group var pgiLoop1 = new Loop_PGI_PRICAT(); // Product group containing no price group pgiLoop1.PGI = new PGI(); pgiLoop1.PGI.Productgrouptypecoded_01 = "2"; // Repeating LIN PGI Groups pgiLoop1.LINLoop = new List <Loop_LIN_PRICAT>(); // Begin LIN PGI Group 1 var linPgiLoop1 = new Loop_LIN_PRICAT(); // Line item 1, an addition, is identified by GTIN 5410738377131 linPgiLoop1.LIN = new LIN(); linPgiLoop1.LIN.Lineitemnumber_01 = "1"; linPgiLoop1.LIN.Actionrequestnotificationcoded_02 = "1"; linPgiLoop1.LIN.ITEMNUMBERIDENTIFICATION_03 = new C212(); linPgiLoop1.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01 = "5410738377131"; linPgiLoop1.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRV"; // Repeating PIA linPgiLoop1.PIA = new List <PIA>(); // Supplier’s article number CU32555 is provided as an additional identification var piaLin1 = new PIA(); piaLin1.Productidfunctionqualifier_01 = "1"; piaLin1.ITEMNUMBERIDENTIFICATION_02 = new C212(); piaLin1.ITEMNUMBERIDENTIFICATION_02.Itemnumber_01 = "CU32555"; piaLin1.ITEMNUMBERIDENTIFICATION_02.Itemnumbertypecoded_02 = "SA"; linPgiLoop1.PIA.Add(piaLin1); // Repeating IMD linPgiLoop1.IMD = new List <IMD>(); // Current line item is a consumer unit var imdLin1 = new IMD(); imdLin1.Itemdescriptiontypecoded_01 = "C"; imdLin1.ITEMDESCRIPTION_03 = new C273(); imdLin1.ITEMDESCRIPTION_03.Itemdescriptionidentification_01 = "CU"; imdLin1.ITEMDESCRIPTION_03.Codelistresponsibleagencycoded_03 = "9"; linPgiLoop1.IMD.Add(imdLin1); // Product description var imdLin2 = new IMD(); imdLin2.Itemdescriptiontypecoded_01 = "F"; imdLin2.ITEMDESCRIPTION_03 = new C273(); imdLin2.ITEMDESCRIPTION_03.Itemdescription_04 = "HEALTHIEST CORN CRISPIES"; imdLin2.ITEMDESCRIPTION_03.Itemdescription_05 = "BOX"; linPgiLoop1.IMD.Add(imdLin2); // Repeating MEA linPgiLoop1.MEA = new List <MEA>(); // The net weight of the consumer unit is 250 grms var mea = new MEA(); mea.Measurementapplicationqualifier_01 = "PD"; mea.MEASUREMENTDETAILS_02 = new C502(); mea.MEASUREMENTDETAILS_02.Measurementdimensioncoded_01 = "AAA"; mea.MEASUREMENTDETAILS_02.Measurementsignificancecoded_02 = "4"; mea.VALUERANGE_03 = new C174(); mea.VALUERANGE_03.Measureunitqualifier_01 = "GRM"; mea.VALUERANGE_03.Measurementvalue_02 = "250"; linPgiLoop1.MEA.Add(mea); // Repeating HAN linPgiLoop1.HAN = new List <HAN>(); // The product is foodstuffs var hanLin1 = new HAN(); hanLin1.HANDLINGINSTRUCTIONS_01 = new C524(); hanLin1.HANDLINGINSTRUCTIONS_01.Handlinginstructionscoded_01 = "EAT"; hanLin1.HANDLINGINSTRUCTIONS_01.Codelistresponsibleagencycoded_03 = "9"; linPgiLoop1.HAN.Add(hanLin1); // Repeating TAX LIN Groups linPgiLoop1.TAXLoop = new List <Loop_TAX_PRICAT>(); // Begin TAX LIN Group var taxLin1 = new Loop_TAX_PRICAT(); // The product is subject to the standard rate of 21% VAT taxLin1.TAX = new TAX(); taxLin1.TAX.Dutytaxfeefunctionqualifier_01 = "7"; taxLin1.TAX.DUTYTAXFEETYPE_02 = new C241(); taxLin1.TAX.DUTYTAXFEETYPE_02.Dutytaxfeetypecoded_01 = "VAT"; taxLin1.TAX.DUTYTAXFEEDETAIL_05 = new C243(); taxLin1.TAX.DUTYTAXFEEDETAIL_05.Dutytaxfeerate_04 = "21"; taxLin1.TAX.Dutytaxfeecategorycoded_06 = "S"; // End TAX LIN Group linPgiLoop1.TAXLoop.Add(taxLin1); // Repeating PRI LIN Groups linPgiLoop1.PRILoop = new List <Loop_PRI_PRICAT_2>(); // Begin PRI LIN Group var priLinLoop1 = new Loop_PRI_PRICAT_2(); // The suggested retail information price, including allowances / charges and taxes, is 40 priLinLoop1.PRI = new PRI(); priLinLoop1.PRI.PRICEINFORMATION_01 = new C509(); priLinLoop1.PRI.PRICEINFORMATION_01.Pricequalifier_01 = "AAE"; priLinLoop1.PRI.PRICEINFORMATION_01.Price_02 = "40"; priLinLoop1.PRI.PRICEINFORMATION_01.Pricetypecoded_03 = "CA"; priLinLoop1.PRI.PRICEINFORMATION_01.Pricetypequalifier_04 = "SRP"; // End PRI LIN Group linPgiLoop1.PRILoop.Add(priLinLoop1); // Repeating PAC LIN Groups linPgiLoop1.PACLoop = new List <Loop_PAC_PRICAT>(); // Begin PAC LIN Group var pacLin1 = new Loop_PAC_PRICAT(); // The consumer unit is packaged in a box pacLin1.PAC = new PAC(); pacLin1.PAC.PACKAGETYPE_03 = new C202(); pacLin1.PAC.PACKAGETYPE_03.Typeofpackagesidentification_01 = "BX"; // Repeating MEA pacLin1.MEA = new List <MEA>(); // The height of the box is 200 mm var meaPac1 = new MEA(); meaPac1.Measurementapplicationqualifier_01 = "PD"; meaPac1.MEASUREMENTDETAILS_02 = new C502(); meaPac1.MEASUREMENTDETAILS_02.Measurementdimensioncoded_01 = "HT"; meaPac1.VALUERANGE_03 = new C174(); meaPac1.VALUERANGE_03.Measureunitqualifier_01 = "MMT"; meaPac1.VALUERANGE_03.Measurementvalue_02 = "200"; pacLin1.MEA.Add(meaPac1); // The length of the box is 80 mm var meaPac2 = new MEA(); meaPac2.Measurementapplicationqualifier_01 = "PD"; meaPac2.MEASUREMENTDETAILS_02 = new C502(); meaPac2.MEASUREMENTDETAILS_02.Measurementdimensioncoded_01 = "LN"; meaPac2.VALUERANGE_03 = new C174(); meaPac2.VALUERANGE_03.Measureunitqualifier_01 = "MMT"; meaPac2.VALUERANGE_03.Measurementvalue_02 = "80"; pacLin1.MEA.Add(meaPac2); // The width of the box is 30 mm var meaPac3 = new MEA(); meaPac3.Measurementapplicationqualifier_01 = "PD"; meaPac3.MEASUREMENTDETAILS_02 = new C502(); meaPac3.MEASUREMENTDETAILS_02.Measurementdimensioncoded_01 = "WD"; meaPac3.VALUERANGE_03 = new C174(); meaPac3.VALUERANGE_03.Measureunitqualifier_01 = "MMT"; meaPac3.VALUERANGE_03.Measurementvalue_02 = "30"; pacLin1.MEA.Add(meaPac3); // End PAC LIN Group linPgiLoop1.PACLoop.Add(pacLin1); // End LIN PGI Group 1 pgiLoop1.LINLoop.Add(linPgiLoop1); // Begin LIN PGI Group 2 var linPgiLoop2 = new Loop_LIN_PRICAT(); // Line item 2, an addition, is identified by GTIN 5410738377117 linPgiLoop2.LIN = new LIN(); linPgiLoop2.LIN.Lineitemnumber_01 = "2"; linPgiLoop2.LIN.Actionrequestnotificationcoded_02 = "1"; linPgiLoop2.LIN.ITEMNUMBERIDENTIFICATION_03 = new C212(); linPgiLoop2.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01 = "5410738377117"; linPgiLoop2.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRV"; // Repeating PIA linPgiLoop2.PIA = new List <PIA>(); // Supplier’s article number TU32555 is provided as an additional identification var piaLin2 = new PIA(); piaLin2.Productidfunctionqualifier_01 = "1"; piaLin2.ITEMNUMBERIDENTIFICATION_02 = new C212(); piaLin2.ITEMNUMBERIDENTIFICATION_02.Itemnumber_01 = "TU32555"; piaLin2.ITEMNUMBERIDENTIFICATION_02.Itemnumbertypecoded_02 = "SA"; linPgiLoop2.PIA.Add(piaLin2); // Repeating IMD linPgiLoop2.IMD = new List <IMD>(); // Current line item is a trade unit var imdLin3 = new IMD(); imdLin3.Itemdescriptiontypecoded_01 = "C"; imdLin3.ITEMDESCRIPTION_03 = new C273(); imdLin3.ITEMDESCRIPTION_03.Itemdescriptionidentification_01 = "TU"; imdLin3.ITEMDESCRIPTION_03.Codelistresponsibleagencycoded_03 = "9"; linPgiLoop2.IMD.Add(imdLin3); // Product description var imdLin4 = new IMD(); imdLin4.Itemdescriptiontypecoded_01 = "F"; imdLin4.ITEMDESCRIPTION_03 = new C273(); imdLin4.ITEMDESCRIPTION_03.Itemdescription_04 = "CORN CRISPIES"; imdLin4.ITEMDESCRIPTION_03.Itemdescription_05 = "CASE"; linPgiLoop2.IMD.Add(imdLin4); // Repeating HAN linPgiLoop2.HAN = new List <HAN>(); // The product is foodstuffs var hanLin2 = new HAN(); hanLin2.HANDLINGINSTRUCTIONS_01 = new C524(); hanLin2.HANDLINGINSTRUCTIONS_01.Handlinginstructionscoded_01 = "EAT"; hanLin2.HANDLINGINSTRUCTIONS_01.Codelistresponsibleagencycoded_03 = "9"; linPgiLoop2.HAN.Add(hanLin2); // Repeating ALI linPgiLoop2.ALI = new List <ALI>(); // Country of origin is Belgium var aliLin1 = new ALI(); aliLin1.Countryoforigincoded_01 = "BE"; linPgiLoop2.ALI.Add(aliLin1); // Repeating TAX LIN Groups linPgiLoop2.TAXLoop = new List <Loop_TAX_PRICAT>(); // Begin TAX LIN Group var taxLin2 = new Loop_TAX_PRICAT(); // Product is subject to the standard VAT rate of 21% taxLin2.TAX = new TAX(); taxLin2.TAX.Dutytaxfeefunctionqualifier_01 = "7"; taxLin2.TAX.DUTYTAXFEETYPE_02 = new C241(); taxLin2.TAX.DUTYTAXFEETYPE_02.Dutytaxfeetypecoded_01 = "VAT"; taxLin2.TAX.DUTYTAXFEEDETAIL_05 = new C243(); taxLin2.TAX.DUTYTAXFEEDETAIL_05.Dutytaxfeerate_04 = "21"; taxLin2.TAX.Dutytaxfeecategorycoded_06 = "S"; // End TAX LIN Group linPgiLoop2.TAXLoop.Add(taxLin2); // Repeating PRI LIN Groups linPgiLoop2.PRILoop = new List <Loop_PRI_PRICAT_2>(); // Begin PRI LIN Group var priLinLoop2 = new Loop_PRI_PRICAT_2(); // The calculation gross price for the product is 500 priLinLoop2.PRI = new PRI(); priLinLoop2.PRI.PRICEINFORMATION_01 = new C509(); priLinLoop2.PRI.PRICEINFORMATION_01.Pricequalifier_01 = "AAB"; priLinLoop2.PRI.PRICEINFORMATION_01.Price_02 = "500"; priLinLoop2.PRI.PRICEINFORMATION_01.Pricetypecoded_03 = "CA"; // Repeating ALC LIN Groups linPgiLoop2.ALCLoop = new List <Loop_ALC_PRICAT>(); // Begin ALC LIN Group var alcLin1 = new Loop_ALC_PRICAT(); // An allowance exists for this product alcLin1.ALC = new ALC(); alcLin1.ALC.Allowanceorchargequalifier_01 = "A"; alcLin1.ALC.Calculationsequenceindicatorcoded_04 = "1"; // PCD Group alcLin1.PCDLoop = new Loop_PCD_PRICAT(); // Allowance of 8% alcLin1.PCDLoop.PCD = new PCD(); alcLin1.PCDLoop.PCD.PERCENTAGEDETAILS_01 = new C501(); alcLin1.PCDLoop.PCD.PERCENTAGEDETAILS_01.Percentagequalifier_01 = "3"; alcLin1.PCDLoop.PCD.PERCENTAGEDETAILS_01.Percentage_02 = "8"; // Is available on purchase of a minimum quantity of 48 alcLin1.PCDLoop.RNG = new RNG(); alcLin1.PCDLoop.RNG.Rangetypequalifier_01 = "1"; alcLin1.PCDLoop.RNG.RANGE_02 = new C280(); alcLin1.PCDLoop.RNG.RANGE_02.Measureunitqualifier_01 = "PCE"; alcLin1.PCDLoop.RNG.RANGE_02.Rangeminimum_02 = "48"; // End ALC LIN Group linPgiLoop2.ALCLoop.Add(alcLin1); // End PRI LIN Group linPgiLoop2.PRILoop.Add(priLinLoop2); // Repeating PAC LIN Groups linPgiLoop2.PACLoop = new List <Loop_PAC_PRICAT>(); // Begin PAC LIN Group var pacLin2 = new Loop_PAC_PRICAT(); // The product is packaged in a carton pacLin2.PAC = new PAC(); pacLin2.PAC.PACKAGETYPE_03 = new C202(); pacLin2.PAC.PACKAGETYPE_03.Typeofpackagesidentification_01 = "CT"; // End PAC LIN Group linPgiLoop2.PACLoop.Add(pacLin2); // End LIN PGI Group 2 pgiLoop1.LINLoop.Add(linPgiLoop2); // Begin LIN PGI Group 3 var linPgiLoop3 = new Loop_LIN_PRICAT(); // Line number 3, identified by GTIN 5410738377131, is a sub-line of line number 2 linPgiLoop3.LIN = new LIN(); linPgiLoop3.LIN.Lineitemnumber_01 = "3"; linPgiLoop3.LIN.Actionrequestnotificationcoded_02 = "1"; linPgiLoop3.LIN.ITEMNUMBERIDENTIFICATION_03 = new C212(); linPgiLoop3.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01 = "5410738377131"; linPgiLoop3.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRV"; linPgiLoop3.LIN.SUBLINEINFORMATION_04 = new C829(); linPgiLoop3.LIN.SUBLINEINFORMATION_04.Sublineindicatorcoded_01 = "1"; linPgiLoop3.LIN.SUBLINEINFORMATION_04.Lineitemnumber_02 = "2"; // Repeating QTY linPgiLoop3.QTY = new List <QTY>(); // Number of consumer units in trade unit is 48 var qtyLin1 = new QTY(); qtyLin1.QUANTITYDETAILS_01 = new C186(); qtyLin1.QUANTITYDETAILS_01.Quantityqualifier_01 = "45E"; qtyLin1.QUANTITYDETAILS_01.Quantity_02 = "48"; linPgiLoop3.QTY.Add(qtyLin1); // End LIN PGI Group 3 pgiLoop1.LINLoop.Add(linPgiLoop3); // Begin LIN PGI Group 4 var linPgiLoop4 = new Loop_LIN_PRICAT(); // Line item 4, an addition, is identified by GTIN 5410738251028 linPgiLoop4.LIN = new LIN(); linPgiLoop4.LIN.Lineitemnumber_01 = "4"; linPgiLoop4.LIN.Actionrequestnotificationcoded_02 = "1"; linPgiLoop4.LIN.ITEMNUMBERIDENTIFICATION_03 = new C212(); linPgiLoop4.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01 = "5410738251028"; linPgiLoop4.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRV"; // Repeating PIA linPgiLoop4.PIA = new List <PIA>(); // Supplier’s article number PN32555 is provided as an additional identification var piaLin3 = new PIA(); piaLin3.Productidfunctionqualifier_01 = "1"; piaLin3.ITEMNUMBERIDENTIFICATION_02 = new C212(); piaLin3.ITEMNUMBERIDENTIFICATION_02.Itemnumber_01 = "PN32555"; piaLin3.ITEMNUMBERIDENTIFICATION_02.Itemnumbertypecoded_02 = "SA"; linPgiLoop4.PIA.Add(piaLin3); // Repeating IMD linPgiLoop4.IMD = new List <IMD>(); // Product is a despatch unit var imdLin5 = new IMD(); imdLin5.Itemdescriptiontypecoded_01 = "C"; imdLin5.ITEMDESCRIPTION_03 = new C273(); imdLin5.ITEMDESCRIPTION_03.Itemdescriptionidentification_01 = "DU"; imdLin5.ITEMDESCRIPTION_03.Codelistqualifier_02 = "9"; linPgiLoop4.IMD.Add(imdLin5); // Product description var imdLin6 = new IMD(); imdLin6.Itemdescriptiontypecoded_01 = "F"; imdLin6.ITEMDESCRIPTION_03 = new C273(); imdLin6.ITEMDESCRIPTION_03.Itemdescription_04 = "CORN CRISPIES"; imdLin6.ITEMDESCRIPTION_03.Itemdescription_05 = "PALLET"; linPgiLoop4.IMD.Add(imdLin6); // Repeating HAN linPgiLoop4.HAN = new List <HAN>(); // The product is foodstuffs var hanLin3 = new HAN(); hanLin3.HANDLINGINSTRUCTIONS_01 = new C524(); hanLin3.HANDLINGINSTRUCTIONS_01.Handlinginstructionscoded_01 = "EAT"; hanLin3.HANDLINGINSTRUCTIONS_01.Codelistresponsibleagencycoded_03 = "9"; linPgiLoop4.HAN.Add(hanLin3); // The product is susceptible to frost damage var hanLin4 = new HAN(); hanLin4.HANDLINGINSTRUCTIONS_01 = new C524(); hanLin4.HANDLINGINSTRUCTIONS_01.Handlinginstructionscoded_01 = "FTD"; hanLin4.HANDLINGINSTRUCTIONS_01.Codelistresponsibleagencycoded_03 = "9"; linPgiLoop4.HAN.Add(hanLin4); // Repeating TAX LIN Groups linPgiLoop4.TAXLoop = new List <Loop_TAX_PRICAT>(); // Begin TAX LIN Group var taxLin3 = new Loop_TAX_PRICAT(); // The product is subject to the standard VAT rate of 21% taxLin3.TAX = new TAX(); taxLin3.TAX.Dutytaxfeefunctionqualifier_01 = "7"; taxLin3.TAX.DUTYTAXFEETYPE_02 = new C241(); taxLin3.TAX.DUTYTAXFEETYPE_02.Dutytaxfeetypecoded_01 = "VAT"; taxLin3.TAX.DUTYTAXFEEDETAIL_05 = new C243(); taxLin3.TAX.DUTYTAXFEEDETAIL_05.Dutytaxfeerate_04 = "21"; taxLin3.TAX.Dutytaxfeecategorycoded_06 = "S"; // End TAX LIN Group linPgiLoop4.TAXLoop.Add(taxLin3); // Repeating PRI LIN Groups linPgiLoop4.PRILoop = new List <Loop_PRI_PRICAT_2>(); // Begin PRI LIN Group var priLinLoop3 = new Loop_PRI_PRICAT_2(); // The calculation net price for the product is 24000 priLinLoop3.PRI = new PRI(); priLinLoop3.PRI.PRICEINFORMATION_01 = new C509(); priLinLoop3.PRI.PRICEINFORMATION_01.Pricequalifier_01 = "AAA"; priLinLoop3.PRI.PRICEINFORMATION_01.Price_02 = "24000"; priLinLoop3.PRI.PRICEINFORMATION_01.Pricetypecoded_03 = "CA"; // End PRI LIN Group linPgiLoop4.PRILoop.Add(priLinLoop3); // Repeating ALC LIN Groups linPgiLoop4.ALCLoop = new List <Loop_ALC_PRICAT>(); // Begin ALC LIN Group var alcLin2 = new Loop_ALC_PRICAT(); // An allowance exists for this product alcLin2.ALC = new ALC(); alcLin2.ALC.Allowanceorchargequalifier_01 = "A"; alcLin2.ALC.Calculationsequenceindicatorcoded_04 = "1"; // PCD Group alcLin2.PCDLoop = new Loop_PCD_PRICAT(); // Allowance of 10% alcLin2.PCDLoop.PCD = new PCD(); alcLin2.PCDLoop.PCD.PERCENTAGEDETAILS_01 = new C501(); alcLin2.PCDLoop.PCD.PERCENTAGEDETAILS_01.Percentagequalifier_01 = "1"; alcLin2.PCDLoop.PCD.PERCENTAGEDETAILS_01.Percentage_02 = "10"; // Is available on purchases of a minimum quantity of 50 alcLin2.PCDLoop.RNG = new RNG(); alcLin2.PCDLoop.RNG.Rangetypequalifier_01 = "1"; alcLin2.PCDLoop.RNG.RANGE_02 = new C280(); alcLin2.PCDLoop.RNG.RANGE_02.Measureunitqualifier_01 = "PCE"; alcLin2.PCDLoop.RNG.RANGE_02.Rangeminimum_02 = "50"; // End ALC LIN Group linPgiLoop4.ALCLoop.Add(alcLin2); // Repeating PAC LIN Groups linPgiLoop4.PACLoop = new List <Loop_PAC_PRICAT>(); // Begin PAC LIN Group var pacLin3 = new Loop_PAC_PRICAT(); // The product is packaged on an ISO 1 pallet pacLin3.PAC = new PAC(); pacLin3.PAC.PACKAGETYPE_03 = new C202(); pacLin3.PAC.PACKAGETYPE_03.Typeofpackagesidentification_01 = "201"; pacLin3.PAC.PACKAGETYPE_03.Codelistresponsibleagencycoded_03 = "9"; // End PAC LIN Group linPgiLoop4.PACLoop.Add(pacLin3); // End LIN PGI Group 4 pgiLoop1.LINLoop.Add(linPgiLoop4); // Begin LIN PGI Group 5 var linPgiLoop5 = new Loop_LIN_PRICAT(); // Line number 5, identified by GTIN 5410738377117 , is a sub-line of line number 4 linPgiLoop5.LIN = new LIN(); linPgiLoop5.LIN.Lineitemnumber_01 = "5"; linPgiLoop5.LIN.Actionrequestnotificationcoded_02 = "1"; linPgiLoop5.LIN.ITEMNUMBERIDENTIFICATION_03 = new C212(); linPgiLoop5.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01 = "5410738377117"; linPgiLoop5.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRV"; linPgiLoop5.LIN.SUBLINEINFORMATION_04 = new C829(); linPgiLoop5.LIN.SUBLINEINFORMATION_04.Sublineindicatorcoded_01 = "1"; linPgiLoop5.LIN.SUBLINEINFORMATION_04.Lineitemnumber_02 = "4"; // Repeating QTY linPgiLoop5.QTY = new List <QTY>(); // Number of traded units in despatch unit is 24 var qtyLin2 = new QTY(); qtyLin2.QUANTITYDETAILS_01 = new C186(); qtyLin2.QUANTITYDETAILS_01.Quantityqualifier_01 = "45E"; qtyLin2.QUANTITYDETAILS_01.Quantity_02 = "24"; linPgiLoop5.QTY.Add(qtyLin2); // End LIN PGI Group 5 pgiLoop1.LINLoop.Add(linPgiLoop5); // End PGI Group result.PGILoop.Add(pgiLoop1); return(result); }
/// <summary> /// Build bayplan. /// Original from http://www.smdg.org/assets/assets/BAPLIE3.1.1-02.pdf? /// </summary> static TSBAPLIE BuildBayplan(string controlNumber) { var result = new TSBAPLIE(); // Message header (ref id = M-EX1/1) result.UNH = new UNH(); result.UNH.MessageReferenceNumber_01 = controlNumber.PadLeft(14, '0'); result.UNH.MessageIdentifier_02 = new S009(); result.UNH.MessageIdentifier_02.MessageType_01 = "BAPLIE"; result.UNH.MessageIdentifier_02.MessageVersionNumber_02 = "D"; result.UNH.MessageIdentifier_02.MessageReleaseNumber_03 = "13B"; result.UNH.MessageIdentifier_02.ControllingAgencyCoded_04 = "UN"; result.UNH.MessageIdentifier_02.AssociationAssignedCode_05 = "SMDG31"; // Partial BAPLIE(code 659), loaded containers only(LOADONLY), final stage(code 38) result.BGM = new BGM(); result.BGM.DOCUMENTMESSAGENAME_01 = new C002(); result.BGM.DOCUMENTMESSAGENAME_01.Documentnamecode_01 = "659"; result.BGM.DOCUMENTMESSAGENAME_01.Codelistresponsibleagencycode_03 = "LOADONLY"; result.BGM.DOCUMENTMESSAGEIDENTIFICATION_02 = new C106(); result.BGM.DOCUMENTMESSAGEIDENTIFICATION_02.Documentidentifier_01 = "M-EX1/1"; result.BGM.Responsetypecode_04 = "38"; // Repeating DTM result.DTM = new List <DTM>(); // Date/time (UTC) when message has been prepared var dtm1 = new DTM(); dtm1.DATETIMEPERIOD_01 = new C507(); dtm1.DATETIMEPERIOD_01.Dateortimeorperiodfunctioncodequalifier_01 = "137"; dtm1.DATETIMEPERIOD_01.Dateortimeorperiodtext_02 = "201304130959"; dtm1.DATETIMEPERIOD_01.Dateortimeorperiodformatcode_03 = "203"; result.DTM.Add(dtm1); // Repeating NAD Groups result.NADLoop = new List <Loop_NAD_BAPLIE>(); // Begin NAD Group var nadLoop1 = new Loop_NAD_BAPLIE(); // Function of sender (terminal) nadLoop1.NAD = new NAD(); nadLoop1.NAD.Partyfunctioncodequalifier_01 = "WZ"; nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082(); nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyidentifier_01 = "HNE"; nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistidentificationcode_02 = "TERMINALS"; nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycode_03 = "306"; // End NAD Group result.NADLoop.Add(nadLoop1); // Repeating TDT Groups result.TDTLoop = new List <Loop_TDT_BAPLIE>(); // Begin TDT Group var tdtLoop1 = new Loop_TDT_BAPLIE(); // Discharge voyage number, vessel operator, vessel identification tdtLoop1.TDT = new TDT(); tdtLoop1.TDT.Transportstagecodequalifier_01 = "20"; tdtLoop1.TDT.Meansoftransportjourneyidentifier_02 = "123W45"; tdtLoop1.TDT.CARRIER_05 = new C040(); tdtLoop1.TDT.CARRIER_05.Carrieridentifier_01 = "HLC"; tdtLoop1.TDT.CARRIER_05.Codelistidentificationcode_02 = "LINES"; tdtLoop1.TDT.CARRIER_05.Codelistresponsibleagencycode_03 = "306"; tdtLoop1.TDT.EXCESSTRANSPORTATIONINFORMATION_07 = new C401(); tdtLoop1.TDT.EXCESSTRANSPORTATIONINFORMATION_07.Excesstransportationreasoncode_01 = "9354351"; tdtLoop1.TDT.EXCESSTRANSPORTATIONINFORMATION_07.Excesstransportationresponsibilitycode_02 = "11"; tdtLoop1.TDT.EXCESSTRANSPORTATIONINFORMATION_07.Customershipmentauthorisationidentifier_03 = "ANINA"; // Loading voyage number tdtLoop1.RFF = new RFF(); tdtLoop1.RFF.REFERENCE_01 = new C506(); tdtLoop1.RFF.REFERENCE_01.Referencecodequalifier_01 = "VON"; tdtLoop1.RFF.REFERENCE_01.Referenceidentifier_02 = "123E38"; // Repeating LOC TDT Groups tdtLoop1.LOCLoop = new List <Loop_LOC_BAPLIE_2>(); // Begin LOC TDT Group 1 var locTdtLoop1 = new Loop_LOC_BAPLIE_2(); // Place of departure locTdtLoop1.LOC = new LOC(); locTdtLoop1.LOC.Locationfunctioncodequalifier_01 = "5"; locTdtLoop1.LOC.LOCATIONIDENTIFICATION_02 = new C517(); locTdtLoop1.LOC.LOCATIONIDENTIFICATION_02.Locationidentifier_01 = "BEANR"; // Repeating DTM locTdtLoop1.DTM = new List <DTM>(); // Actual departure time var dtmLoc1 = new DTM(); dtmLoc1.DATETIMEPERIOD_01 = new C507(); dtmLoc1.DATETIMEPERIOD_01.Dateortimeorperiodfunctioncodequalifier_01 = "136"; dtmLoc1.DATETIMEPERIOD_01.Dateortimeorperiodtext_02 = "201304301048"; dtmLoc1.DATETIMEPERIOD_01.Dateortimeorperiodformatcode_03 = "203"; locTdtLoop1.DTM.Add(dtmLoc1); // End LOC TDT Group 1 tdtLoop1.LOCLoop.Add(locTdtLoop1); // Begin LOC TDT Group 2 var locTdtLoop2 = new Loop_LOC_BAPLIE_2(); // Next port of call locTdtLoop2.LOC = new LOC(); locTdtLoop2.LOC.Locationfunctioncodequalifier_01 = "61"; locTdtLoop2.LOC.LOCATIONIDENTIFICATION_02 = new C517(); locTdtLoop2.LOC.LOCATIONIDENTIFICATION_02.Locationidentifier_01 = "FRLEH"; // Repeating DTM locTdtLoop2.DTM = new List <DTM>(); // Estimated arrival time var dtmLoc2 = new DTM(); dtmLoc2.DATETIMEPERIOD_01 = new C507(); dtmLoc2.DATETIMEPERIOD_01.Dateortimeorperiodfunctioncodequalifier_01 = "178"; dtmLoc2.DATETIMEPERIOD_01.Dateortimeorperiodtext_02 = "201305012100"; dtmLoc2.DATETIMEPERIOD_01.Dateortimeorperiodformatcode_03 = "203"; locTdtLoop2.DTM.Add(dtmLoc2); // End LOC TDT Group 2 tdtLoop1.LOCLoop.Add(locTdtLoop2); // End TDT Group result.TDTLoop.Add(tdtLoop1); // End of message header result.UNS = new UNS(); result.UNS.Sectionidentification_01 = "D"; // Repeating LOC Groups result.LOCLoop = new List <Loop_LOC_BAPLIE>(); // Begin LOC Group 1 var locLoop1 = new Loop_LOC_BAPLIE(); // Stowage location (used) locLoop1.LOC = new LOC(); locLoop1.LOC.Locationfunctioncodequalifier_01 = "147"; locLoop1.LOC.LOCATIONIDENTIFICATION_02 = new C517(); locLoop1.LOC.LOCATIONIDENTIFICATION_02.Locationidentifier_01 = "0200688"; locLoop1.LOC.LOCATIONIDENTIFICATION_02.Codelistidentificationcode_02 = "9711"; locLoop1.LOC.LOCATIONIDENTIFICATION_02.Codelistresponsibleagencycode_03 = "5"; // Repeating EQD Groups locLoop1.EQDLoop = new List <Loop_EQD_BAPLIE>(); // Begin EQD Group var eqdLocLoop1 = new Loop_EQD_BAPLIE(); // 40' open top container eqdLocLoop1.EQD = new EQD(); eqdLocLoop1.EQD.Equipmenttypecodequalifier_01 = "CN"; eqdLocLoop1.EQD.EQUIPMENTIDENTIFICATION_02 = new C237(); eqdLocLoop1.EQD.EQUIPMENTIDENTIFICATION_02.Equipmentidentifier_01 = "SUDU1234569"; eqdLocLoop1.EQD.EQUIPMENTIDENTIFICATION_02.Codelistidentificationcode_02 = "6346"; eqdLocLoop1.EQD.EQUIPMENTIDENTIFICATION_02.Codelistresponsibleagencycode_03 = "5"; eqdLocLoop1.EQD.EQUIPMENTSIZEANDTYPE_03 = new C224(); eqdLocLoop1.EQD.EQUIPMENTSIZEANDTYPE_03.Equipmentsizeandtypedescriptioncode_01 = "42U0"; eqdLocLoop1.EQD.EQUIPMENTSIZEANDTYPE_03.Codelistidentificationcode_02 = "6346"; eqdLocLoop1.EQD.EQUIPMENTSIZEANDTYPE_03.Codelistresponsibleagencycode_03 = "5"; eqdLocLoop1.EQD.Fulloremptyindicatorcode_06 = "5"; // Repeating NAD eqdLocLoop1.NAD = new List <NAD>(); // Container operator (HSD) var nadEqd1 = new NAD(); nadEqd1.Partyfunctioncodequalifier_01 = "CF"; nadEqd1.PARTYIDENTIFICATIONDETAILS_02 = new C082(); nadEqd1.PARTYIDENTIFICATIONDETAILS_02.Partyidentifier_01 = "HSD"; nadEqd1.PARTYIDENTIFICATIONDETAILS_02.Codelistidentificationcode_02 = "LINES"; nadEqd1.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycode_03 = "306"; eqdLocLoop1.NAD.Add(nadEqd1); // Repeating MEA eqdLocLoop1.MEA = new List <MEA>(); // Gross weight (22.6 t) var meaEqd1 = new MEA(); meaEqd1.Measurementpurposecodequalifier_01 = "AAE"; meaEqd1.MEASUREMENTDETAILS_02 = new C502(); meaEqd1.MEASUREMENTDETAILS_02.Measuredattributecode_01 = "AET"; meaEqd1.VALUERANGE_03 = new C174(); meaEqd1.VALUERANGE_03.Measurementunitcode_01 = "KGM"; meaEqd1.VALUERANGE_03.Measure_02 = "22600"; eqdLocLoop1.MEA.Add(meaEqd1); // Repeating DIM eqdLocLoop1.DIM = new List <DIM>(); // Overheight (92 cm) var dimEqd1 = new DIM(); dimEqd1.Dimensiontypecodequalifier_01 = "13"; dimEqd1.DIMENSIONS_02 = new C211(); dimEqd1.DIMENSIONS_02.Measurementunitcode_01 = "CMT"; dimEqd1.DIMENSIONS_02.Heightmeasure_04 = "92"; eqdLocLoop1.DIM.Add(dimEqd1); // End EQD Group locLoop1.EQDLoop.Add(eqdLocLoop1); // Control total locLoop1.CNT = new CNT(); locLoop1.CNT.CONTROL_01 = new C270(); locLoop1.CNT.CONTROL_01.Controlqualifier_01 = "8"; locLoop1.CNT.CONTROL_01.Controlvalue_02 = "1"; // End LOC Group 1 result.LOCLoop.Add(locLoop1); // Begin LOC Group 2 var locLoop2 = new Loop_LOC_BAPLIE(); // Stowage location (blocked) locLoop2.LOC = new LOC(); locLoop2.LOC.Locationfunctioncodequalifier_01 = "147"; locLoop2.LOC.LOCATIONIDENTIFICATION_02 = new C517(); locLoop2.LOC.LOCATIONIDENTIFICATION_02.Locationidentifier_01 = "0200690"; locLoop2.LOC.LOCATIONIDENTIFICATION_02.Codelistidentificationcode_02 = "9711"; locLoop2.LOC.LOCATIONIDENTIFICATION_02.Codelistresponsibleagencycode_03 = "5"; // Repeating FTX locLoop2.FTX = new List <FTX>(); // Lost slot var ftxLoc1 = new FTX(); ftxLoc1.Textsubjectcodequalifier_01 = "AGW"; ftxLoc1.TEXTREFERENCE_03 = new C107(); ftxLoc1.TEXTREFERENCE_03.Freetextdescriptioncode_01 = "LOST"; ftxLoc1.TEXTREFERENCE_03.Codelistidentificationcode_02 = "STOWLOC"; ftxLoc1.TEXTREFERENCE_03.Codelistresponsibleagencycode_03 = "306"; locLoop2.FTX.Add(ftxLoc1); // Equipment causing lost slot locLoop2.RFF = new RFF(); locLoop2.RFF.REFERENCE_01 = new C506(); locLoop2.RFF.REFERENCE_01.Referencecodequalifier_01 = "EQ"; locLoop2.RFF.REFERENCE_01.Referenceidentifier_02 = "SUDU123459"; // Control total locLoop2.CNT = new CNT(); locLoop2.CNT.CONTROL_01 = new C270(); locLoop2.CNT.CONTROL_01.Controlqualifier_01 = "8"; locLoop2.CNT.CONTROL_01.Controlvalue_02 = "0"; // End LOC Group 2 result.LOCLoop.Add(locLoop2); return(result); }
/// <summary> /// Build cargo report. /// Original from https://www.cbp.gov/sites/default/files/documents/cuscar_012_30_3.txt /// </summary> static TSCUSCAR BuildCargoReport(string controlNumber) { var result = new TSCUSCAR(); // Message header result.UNH = new UNH(); result.UNH.MessageReferenceNumber_01 = controlNumber.PadLeft(14, '0'); result.UNH.MessageIdentifier_02 = new S009(); result.UNH.MessageIdentifier_02.MessageType_01 = "CUSCAR"; result.UNH.MessageIdentifier_02.MessageVersionNumber_02 = "D"; result.UNH.MessageIdentifier_02.MessageReleaseNumber_03 = "03B"; result.UNH.MessageIdentifier_02.ControllingAgencyCoded_04 = "UN"; result.BGM = new BGM(); result.BGM.DOCUMENTMESSAGENAME_01 = new C002(); result.BGM.DOCUMENTMESSAGENAME_01.Documentnamecode_01 = "85"; result.BGM.DOCUMENTMESSAGENAME_01.Documentname_04 = "STANDARD"; result.BGM.DOCUMENTMESSAGEIDENTIFICATION_02 = new C106(); result.BGM.DOCUMENTMESSAGEIDENTIFICATION_02.Documentidentifier_01 = "LOCKKH04112206"; result.BGM.Messagefunctioncode_03 = "22"; // Repeating DTM result.DTM = new List <DTM>(); var dtm1 = new DTM(); dtm1.DATETIMEPERIOD_01 = new C507(); dtm1.DATETIMEPERIOD_01.Dateortimeorperiodfunctioncodequalifier_01 = "132"; dtm1.DATETIMEPERIOD_01.Dateortimeorperiodtext_02 = "200412301200"; dtm1.DATETIMEPERIOD_01.Dateortimeorperiodformatcode_03 = "203"; result.DTM.Add(dtm1); // Repeating LOC result.LOC = new List <LOC>(); var loc1 = new LOC(); loc1.Locationfunctioncodequalifier_01 = "60"; loc1.LOCATIONIDENTIFICATION_02 = new C517(); loc1.LOCATIONIDENTIFICATION_02.Locationnamecode_01 = "0901"; loc1.LOCATIONIDENTIFICATION_02.Codelistidentificationcode_02 = "77"; result.LOC.Add(loc1); // Repeating RFF Groups result.RFFLoop = new List <Loop_RFF_CUSCAR>(); // Begin RFF Group var rffLoop1 = new Loop_RFF_CUSCAR(); rffLoop1.RFF = new RFF(); rffLoop1.RFF.REFERENCE_01 = new C506(); rffLoop1.RFF.REFERENCE_01.Referencecodequalifier_01 = "ABO"; rffLoop1.RFF.REFERENCE_01.Referenceidentifier_02 = "ABO04100000"; // End RFF Group result.RFFLoop.Add(rffLoop1); // Repeating RFF Groups result.NADLoop = new List <Loop_NAD_CUSCAR>(); // Begin NAD Group 1 var nadLoop1 = new Loop_NAD_CUSCAR(); nadLoop1.NAD = new NAD(); nadLoop1.NAD.Partyfunctioncodequalifier_01 = "CA"; nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082(); nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyidentifier_01 = "LOCK"; nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistidentificationcode_02 = "172"; nadLoop1.NAD.STREET_05 = new C059(); nadLoop1.NAD.STREET_05.Streetandnumberorpostofficeboxidentifier_01 = "11107 SUNSET HILLS ROAD"; nadLoop1.NAD.STREET_05.Streetandnumberorpostofficeboxidentifier_02 = "77705 ARLINGTON ROAD"; nadLoop1.NAD.Cityname_06 = "RESTON"; nadLoop1.NAD.COUNTRYSUBENTITYDETAILS_07 = new C819(); nadLoop1.NAD.COUNTRYSUBENTITYDETAILS_07.Countrysubentitynamecode_01 = "VA"; nadLoop1.NAD.COUNTRYSUBENTITYDETAILS_07.Codelistidentificationcode_02 = "163"; nadLoop1.NAD.Postalidentificationcode_08 = "20190"; // End NAD Group 1 result.NADLoop.Add(nadLoop1); // Begin NAD Group 2 var nadLoop2 = new Loop_NAD_CUSCAR(); nadLoop2.NAD = new NAD(); nadLoop2.NAD.Partyfunctioncodequalifier_01 = "VW"; nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082(); nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyidentifier_01 = "0000041047"; nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistidentificationcode_02 = "109"; nadLoop2.NAD.PARTYNAME_04 = new C080(); nadLoop2.NAD.PARTYNAME_04.Partyname_01 = "AADLER"; nadLoop2.NAD.PARTYNAME_04.Partyname_02 = "KEN"; // End NAD Group 2 result.NADLoop.Add(nadLoop2); // Repeating FTX result.FTX = new List <FTX>(); var ftx1 = new FTX(); ftx1.Textsubjectcodequalifier_01 = "INS"; ftx1.TEXTREFERENCE_03 = new C107(); ftx1.TEXTREFERENCE_03.Freetextdescriptioncode_01 = "INSURANCE INFOR"; ftx1.TEXTLITERAL_04 = new C108(); ftx1.TEXTLITERAL_04.Freetext_01 = "NAMESTATE FARM INSURANCE COMPANY"; ftx1.TEXTLITERAL_04.Freetext_02 = "PLCYQO123456789"; ftx1.TEXTLITERAL_04.Freetext_03 = "AMNT100000"; ftx1.TEXTLITERAL_04.Freetext_04 = "YEAR2004"; result.FTX.Add(ftx1); // Repeating TDT Groups result.TDTLoop = new List <Loop_TDT_CUSCAR>(); // Begin TDT Group var tdtLoop1 = new Loop_TDT_CUSCAR(); tdtLoop1.TDT = new TDT(); tdtLoop1.TDT.Transportstagecodequalifier_01 = "11"; tdtLoop1.TDT.MODEOFTRANSPORT_03 = new C220(); tdtLoop1.TDT.MODEOFTRANSPORT_03.Transportmodenamecode_01 = "03"; tdtLoop1.TDT.TRANSPORTMEANS_04 = new C001(); tdtLoop1.TDT.TRANSPORTMEANS_04.Transportmeansdescription_04 = "BT"; tdtLoop1.TDT.Transitdirectionindicatorcode_06 = "I"; tdtLoop1.TDT.TRANSPORTIDENTIFICATION_08 = new C222(); tdtLoop1.TDT.TRANSPORTIDENTIFICATION_08.Codelistidentificationcode_02 = "109"; tdtLoop1.TDT.TRANSPORTIDENTIFICATION_08.Transportmeansidentificationname_04 = "10000324"; // End TDT Group result.TDTLoop.Add(tdtLoop1); // Repeating EQD Groups result.EQDLoop = new List <Loop_EQD_CUSCAR>(); // Begin EQD Group var eqdLoop1 = new Loop_EQD_CUSCAR(); eqdLoop1.EQD = new EQD(); eqdLoop1.EQD.Equipmenttypecodequalifier_01 = "BI"; eqdLoop1.EQD.EQUIPMENTIDENTIFICATION_02 = new C237(); eqdLoop1.EQD.EQUIPMENTIDENTIFICATION_02.Equipmentidentifier_01 = "10000325"; eqdLoop1.EQD.EQUIPMENTIDENTIFICATION_02.Codelistidentificationcode_02 = "109"; // Repeating SEL eqdLoop1.SEL = new List <SEL>(); var selEqd = new SEL(); selEqd.Transportunitsealidentifier_01 = "SEALEQUNO001"; eqdLoop1.SEL.Add(selEqd); // Repeating EQD RFF Groups eqdLoop1.RFFLoop = new List <Loop_RFF_CUSCAR_4>(); // Begin RFF Group var rffEqdLoop1 = new Loop_RFF_CUSCAR_4(); rffEqdLoop1.RFF = new RFF(); rffEqdLoop1.RFF.REFERENCE_01 = new C506(); rffEqdLoop1.RFF.REFERENCE_01.Referencecodequalifier_01 = "ABZ"; rffEqdLoop1.RFF.REFERENCE_01.Referenceidentifier_02 = "EQU123"; // Repeating LOC rffEqdLoop1.LOC = new List <LOC>(); var locRff1 = new LOC(); locRff1.Locationfunctioncodequalifier_01 = "89"; locRff1.LOCATIONIDENTIFICATION_02 = new C517(); locRff1.LOCATIONIDENTIFICATION_02.Locationnamecode_01 = "VA"; locRff1.LOCATIONIDENTIFICATION_02.Codelistidentificationcode_02 = "163"; rffEqdLoop1.LOC.Add(locRff1); // End RFF Group eqdLoop1.RFFLoop.Add(rffEqdLoop1); // End EQD Group result.EQDLoop.Add(eqdLoop1); // Repeating CNI Groups result.CNILoop = new List <Loop_CNI_CUSCAR>(); // Begin CNI Group var cniLoop1 = new Loop_CNI_CUSCAR(); cniLoop1.CNI = new CNI(); cniLoop1.CNI.Consolidationitemnumber_01 = "3741"; cniLoop1.CNI.DOCUMENTMESSAGEDETAILS_02 = new C503(); cniLoop1.CNI.DOCUMENTMESSAGEDETAILS_02.Documentstatuscode_02 = "23"; // Repeating DOC cniLoop1.DOC = new List <DOC>(); var docCni1 = new DOC(); docCni1.DOCUMENTMESSAGENAME_01 = new C002(); docCni1.DOCUMENTMESSAGENAME_01.Documentnamecode_01 = "714"; docCni1.DOCUMENTMESSAGENAME_01.Documentname_04 = "61"; docCni1.DOCUMENTMESSAGEDETAILS_02 = new C503(); docCni1.DOCUMENTMESSAGEDETAILS_02.Documentidentifier_01 = "KH041122106"; docCni1.DOCUMENTMESSAGEDETAILS_02.Documentsourcedescription_03 = "LOCK"; cniLoop1.DOC.Add(docCni1); // Repeating RFF CNI Groups cniLoop1.RFFLoop = new List <Loop_RFF_CUSCAR_2>(); // Begin RFF CNI Group var rffCniLoop1 = new Loop_RFF_CUSCAR_2(); rffCniLoop1.RFF = new RFF(); rffCniLoop1.RFF.REFERENCE_01 = new C506(); rffCniLoop1.RFF.REFERENCE_01.Referencecodequalifier_01 = "AAM"; rffCniLoop1.RFF.REFERENCE_01.Referenceidentifier_02 = "LOCKKH041122106"; // Repeating CNT rffCniLoop1.CNT = new List <CNT>(); var cntRff1 = new CNT(); cntRff1.CONTROL_01 = new C270(); cntRff1.CONTROL_01.Controltotaltypecodequalifier_01 = "58"; cntRff1.CONTROL_01.Controltotalquantity_02 = "158"; rffCniLoop1.CNT.Add(cntRff1); // Repeating LOC rffCniLoop1.LOC = new List <LOC>(); var locRff2 = new LOC(); locRff2.Locationfunctioncodequalifier_01 = "9"; locRff2.LOCATIONIDENTIFICATION_02 = new C517(); locRff2.LOCATIONIDENTIFICATION_02.Locationnamecode_01 = "U0107"; locRff2.LOCATIONIDENTIFICATION_02.Codelistidentificationcode_02 = "78"; rffCniLoop1.LOC.Add(locRff2); // Repeating GEI rffCniLoop1.GEI = new List <GEI>(); var geiRff1 = new GEI(); geiRff1.Processinginformationcodequalifier_01 = "7"; geiRff1.PROCESSINGINDICATOR_02 = new C012(); geiRff1.PROCESSINGINDICATOR_02.Processingindicatordescriptioncode_01 = "135"; rffCniLoop1.GEI.Add(geiRff1); // Repeating TDT RFF Groups rffCniLoop1.TDTLoop = new List <Loop_TDT_CUSCAR_2>(); // Begin TDT RFF Group var tdtRffLoop1 = new Loop_TDT_CUSCAR_2(); tdtRffLoop1.TDT = new TDT(); tdtRffLoop1.TDT.Transportstagecodequalifier_01 = "11"; // Repeating DTM tdtRffLoop1.DTM = new List <DTM>(); var dtmRff1 = new DTM(); dtmRff1.DATETIMEPERIOD_01 = new C507(); dtmRff1.DATETIMEPERIOD_01.Dateortimeorperiodfunctioncodequalifier_01 = "133"; dtmRff1.DATETIMEPERIOD_01.Dateortimeorperiodtext_02 = "20041230"; dtmRff1.DATETIMEPERIOD_01.Dateortimeorperiodformatcode_03 = "102"; tdtRffLoop1.DTM.Add(dtmRff1); // Repeating RFF TDT Groups tdtRffLoop1.RFFLoop = new List <Loop_RFF_CUSCAR_3>(); // Begin RFF TDT Group var rffTdtLoop1 = new Loop_RFF_CUSCAR_3(); rffTdtLoop1.RFF = new RFF(); rffTdtLoop1.RFF.REFERENCE_01 = new C506(); rffTdtLoop1.RFF.REFERENCE_01.Referencecodequalifier_01 = "AWM"; // Repeating TSR rffTdtLoop1.TSR = new List <TSR>(); var tsrRff1 = new TSR(); tsrRff1.CONTRACTANDCARRIAGECONDITION_01 = new C536(); tsrRff1.CONTRACTANDCARRIAGECONDITION_01.Contractandcarriageconditioncode_01 = "9"; rffTdtLoop1.TSR.Add(tsrRff1); // End RFF TDTGroup tdtRffLoop1.RFFLoop.Add(rffTdtLoop1); // End TDT RFF Group rffCniLoop1.TDTLoop.Add(tdtRffLoop1); // Repeating NAD RFF Groups rffCniLoop1.NADLoop = new List <Loop_NAD_CUSCAR_2>(); // Begin NAD RFF Group 1 var nadRffLoop1 = new Loop_NAD_CUSCAR_2(); nadRffLoop1.NAD = new NAD(); nadRffLoop1.NAD.Partyfunctioncodequalifier_01 = "CN"; nadRffLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082(); nadRffLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyidentifier_01 = "65424"; nadRffLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistidentificationcode_02 = "109"; nadRffLoop1.NAD.NAMEANDADDRESS_03 = new C058(); nadRffLoop1.NAD.NAMEANDADDRESS_03.Nameandaddressdescription_01 = "1234 MAIN STREET"; nadRffLoop1.NAD.PARTYNAME_04 = new C080(); nadRffLoop1.NAD.PARTYNAME_04.Partyname_01 = "KATHY SMITH"; nadRffLoop1.NAD.Cityname_06 = "BELTSVILLE"; nadRffLoop1.NAD.COUNTRYSUBENTITYDETAILS_07 = new C819(); nadRffLoop1.NAD.COUNTRYSUBENTITYDETAILS_07.Countrysubentitynamecode_01 = "MD"; nadRffLoop1.NAD.COUNTRYSUBENTITYDETAILS_07.Codelistidentificationcode_02 = "163"; nadRffLoop1.NAD.Postalidentificationcode_08 = "20708"; nadRffLoop1.NAD.Countrynamecode_09 = "US"; // Repeating CTA NAD Groups nadRffLoop1.CTALoop = new List <Loop_CTA_CUSCAR>(); // Begin CTA NAD Group var ctaNadLoop1 = new Loop_CTA_CUSCAR(); ctaNadLoop1.CTA = new CTA(); ctaNadLoop1.CTA.Contactfunctioncode_01 = "IC"; // Repeating COM ctaNadLoop1.COM = new List <COM>(); var comCta1 = new COM(); // Repeating C076 comCta1.COMMUNICATIONCONTACT_01 = new List <C076>(); var c076Com1 = new C076(); c076Com1.Communicationaddressidentifier_01 = "8005551212"; c076Com1.Communicationaddresscodequalifier_02 = "TE"; comCta1.COMMUNICATIONCONTACT_01.Add(c076Com1); ctaNadLoop1.COM.Add(comCta1); // End CTA NAD Group nadRffLoop1.CTALoop.Add(ctaNadLoop1); // End NAD RFF Group 1 rffCniLoop1.NADLoop.Add(nadRffLoop1); // Begin NAD RFF Group 2 var nadRffLoop2 = new Loop_NAD_CUSCAR_2(); nadRffLoop2.NAD = new NAD(); nadRffLoop2.NAD.Partyfunctioncodequalifier_01 = "IM"; nadRffLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082(); nadRffLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyidentifier_01 = "00010"; nadRffLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistidentificationcode_02 = "109"; nadRffLoop2.NAD.NAMEANDADDRESS_03 = new C058(); nadRffLoop2.NAD.NAMEANDADDRESS_03.Nameandaddressdescription_01 = "1234 MAIN STREET"; nadRffLoop2.NAD.PARTYNAME_04 = new C080(); nadRffLoop2.NAD.PARTYNAME_04.Partyname_01 = "KATHY SMITH"; nadRffLoop2.NAD.Cityname_06 = "BELTSVILLE"; nadRffLoop2.NAD.COUNTRYSUBENTITYDETAILS_07 = new C819(); nadRffLoop2.NAD.COUNTRYSUBENTITYDETAILS_07.Countrysubentitynamecode_01 = "MD"; nadRffLoop2.NAD.COUNTRYSUBENTITYDETAILS_07.Codelistidentificationcode_02 = "163"; nadRffLoop2.NAD.Postalidentificationcode_08 = "20708"; nadRffLoop2.NAD.Countrynamecode_09 = "US"; // Repeating CTA NAD Groups nadRffLoop2.CTALoop = new List <Loop_CTA_CUSCAR>(); // Begin CTA NAD Group var ctaNadLoop2 = new Loop_CTA_CUSCAR(); ctaNadLoop2.CTA = new CTA(); ctaNadLoop2.CTA.Contactfunctioncode_01 = "IC"; // Repeating COM ctaNadLoop2.COM = new List <COM>(); var comCta2 = new COM(); // Repeating C076 comCta2.COMMUNICATIONCONTACT_01 = new List <C076>(); var c076Com2 = new C076(); c076Com2.Communicationaddressidentifier_01 = "8005551212"; c076Com2.Communicationaddresscodequalifier_02 = "TE"; comCta2.COMMUNICATIONCONTACT_01.Add(c076Com2); ctaNadLoop2.COM.Add(comCta2); // End CTA NAD Group nadRffLoop2.CTALoop.Add(ctaNadLoop2); // End NAD RFF Group 2 rffCniLoop1.NADLoop.Add(nadRffLoop2); // Begin NAD RFF Group 3 var nadRffLoop3 = new Loop_NAD_CUSCAR_2(); nadRffLoop3.NAD = new NAD(); nadRffLoop3.NAD.Partyfunctioncodequalifier_01 = "OS"; nadRffLoop3.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082(); nadRffLoop3.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyidentifier_01 = "27190"; nadRffLoop3.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistidentificationcode_02 = "109"; nadRffLoop3.NAD.NAMEANDADDRESS_03 = new C058(); nadRffLoop3.NAD.NAMEANDADDRESS_03.Nameandaddressdescription_01 = "1234 MAIN STREET"; nadRffLoop3.NAD.PARTYNAME_04 = new C080(); nadRffLoop3.NAD.PARTYNAME_04.Partyname_01 = "KATHY SMITH"; nadRffLoop3.NAD.Cityname_06 = "BELTSVILLE"; nadRffLoop3.NAD.COUNTRYSUBENTITYDETAILS_07 = new C819(); nadRffLoop3.NAD.COUNTRYSUBENTITYDETAILS_07.Countrysubentitynamecode_01 = "MD"; nadRffLoop3.NAD.COUNTRYSUBENTITYDETAILS_07.Codelistidentificationcode_02 = "163"; nadRffLoop3.NAD.Postalidentificationcode_08 = "20708"; nadRffLoop3.NAD.Countrynamecode_09 = "US"; // Repeating CTA NAD Groups nadRffLoop3.CTALoop = new List <Loop_CTA_CUSCAR>(); // Begin CTA NAD Group var ctaNadLoop3 = new Loop_CTA_CUSCAR(); ctaNadLoop3.CTA = new CTA(); ctaNadLoop3.CTA.Contactfunctioncode_01 = "IC"; // Repeating COM ctaNadLoop3.COM = new List <COM>(); var comCta3 = new COM(); // Repeating C076 comCta3.COMMUNICATIONCONTACT_01 = new List <C076>(); var c076Com3 = new C076(); c076Com3.Communicationaddressidentifier_01 = "8005551212"; c076Com3.Communicationaddresscodequalifier_02 = "TE"; comCta3.COMMUNICATIONCONTACT_01.Add(c076Com2); ctaNadLoop3.COM.Add(comCta3); // End CTA NAD Group nadRffLoop3.CTALoop.Add(ctaNadLoop3); // End NAD RFF Group 3 rffCniLoop1.NADLoop.Add(nadRffLoop3); // Repeating GID RFF Groups rffCniLoop1.GIDLoop = new List <Loop_GID_CUSCAR>(); // Begin GID RFF Group var gidRffLoop1 = new Loop_GID_CUSCAR(); gidRffLoop1.GID = new GID(); gidRffLoop1.GID.Goodsitemnumber_01 = "1"; // Repeating PAC gidRffLoop1.PAC = new List <PAC>(); var pacGid1 = new PAC(); pacGid1.Packagequantity_01 = "158"; pacGid1.PACKAGETYPE_03 = new C202(); pacGid1.PACKAGETYPE_03.Packagetypedescriptioncode_01 = "COL"; gidRffLoop1.PAC.Add(pacGid1); // Repeating FTX gidRffLoop1.FTX = new List <FTX>(); var ftxGid1 = new FTX(); ftxGid1.Textsubjectcodequalifier_01 = "AAA"; ftxGid1.TEXTLITERAL_04 = new C108(); ftxGid1.TEXTLITERAL_04.Freetext_01 = "IRON COIL"; ftxGid1.TEXTLITERAL_04.Freetext_02 = "SHEET METAL"; gidRffLoop1.FTX.Add(ftxGid1); // Repeating MEA gidRffLoop1.MEA = new List <MEA>(); var meaGid1 = new MEA(); meaGid1.Measurementpurposecodequalifier_01 = "AAI"; meaGid1.VALUERANGE_03 = new C174(); meaGid1.VALUERANGE_03.Measurementunitcode_01 = "K"; meaGid1.VALUERANGE_03.Measure_02 = "750"; gidRffLoop1.MEA.Add(meaGid1); // Repeating SGP gidRffLoop1.SGP = new List <SGP>(); var sgpGid1 = new SGP(); sgpGid1.EQUIPMENTIDENTIFICATION_01 = new C237(); sgpGid1.EQUIPMENTIDENTIFICATION_01.Equipmentidentifier_01 = "10000325"; sgpGid1.EQUIPMENTIDENTIFICATION_01.Codelistidentificationcode_02 = "109"; gidRffLoop1.SGP.Add(sgpGid1); // End GID RFF Group rffCniLoop1.GIDLoop.Add(gidRffLoop1); // End RFF CNI Group cniLoop1.RFFLoop.Add(rffCniLoop1); // End CNI Group result.CNILoop.Add(cniLoop1); return(result); }
/// <summary> /// Build despatch advice. /// Original from https://www.gs1.org/sites/default/files/docs/eancom/s3/desadv.pdf /// </summary> static TSDESADV BuildDespatchAdvice(string controlNumber) { var result = new TSDESADV(); // Message header result.UNH = new UNH(); result.UNH.MessageReferenceNumber_01 = controlNumber.PadLeft(14, '0'); result.UNH.MessageIdentifier_02 = new S009(); result.UNH.MessageIdentifier_02.MessageType_01 = "DESADV"; result.UNH.MessageIdentifier_02.MessageVersionNumber_02 = "D"; result.UNH.MessageIdentifier_02.MessageReleaseNumber_03 = "96A"; result.UNH.MessageIdentifier_02.ControllingAgencyCoded_04 = "UN"; // Despatch advice number DES587441 result.BGM = new BGM(); result.BGM.DOCUMENTMESSAGENAME_01 = new C002(); result.BGM.DOCUMENTMESSAGENAME_01.Documentmessagenamecoded_01 = "351"; result.BGM.Documentmessagenumber_02 = "DES587441"; result.BGM.Messagefunctioncoded_03 = "9"; // Repeating DTM result.DTM = new List <DTM>(); // Message date 1st April 2002 var dtm1 = new DTM(); dtm1.DATETIMEPERIOD_01 = new C507(); dtm1.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 = "137"; dtm1.DATETIMEPERIOD_01.Datetimeperiod_02 = "20020401"; dtm1.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102"; result.DTM.Add(dtm1); // Despatch date 3rd April 2002 var dtm2 = new DTM(); dtm2.DATETIMEPERIOD_01 = new C507(); dtm2.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 = "11"; dtm2.DATETIMEPERIOD_01.Datetimeperiod_02 = "20020403"; dtm2.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102"; result.DTM.Add(dtm2); // Due date to arrive on or after the 3rd of April var dtm3 = new DTM(); dtm3.DATETIMEPERIOD_01 = new C507(); dtm3.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 = "358"; dtm3.DATETIMEPERIOD_01.Datetimeperiod_02 = "20020403"; dtm3.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102"; result.DTM.Add(dtm3); // Repeating RFF Groups result.RFFLoop = new List <Loop_RFF_DESADV>(); // Begin RFF Group var rffLoop1 = new Loop_RFF_DESADV(); // Consignment is related to order number 12332 rffLoop1.RFF = new RFF(); rffLoop1.RFF.REFERENCE_01 = new C506(); rffLoop1.RFF.REFERENCE_01.Referencequalifier_01 = "ON"; rffLoop1.RFF.REFERENCE_01.Referencenumber_02 = "12332"; // Date of order 25th of March 2002 rffLoop1.DTM = new DTM(); rffLoop1.DTM.DATETIMEPERIOD_01 = new C507(); rffLoop1.DTM.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 = "171"; rffLoop1.DTM.DATETIMEPERIOD_01.Datetimeperiod_02 = "20020325"; rffLoop1.DTM.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102"; // End RFF Group result.RFFLoop.Add(rffLoop1); // Repeating NAD Groups result.NADLoop = new List <Loop_NAD_DESADV>(); // Begin NAD Group 1 var nadLoop1 = new Loop_NAD_DESADV(); // Supplier identified by GLN 5411234512309 nadLoop1.NAD = new NAD(); nadLoop1.NAD.Partyqualifier_01 = "SU"; nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082(); nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01 = "5411234512309"; nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9"; // Repeating RFF Groups nadLoop1.RFFLoop = new List <Loop_RFF_DESADV>(); // Begin RFF Group 1 var rffNadLoop1 = new Loop_RFF_DESADV(); // Supplier's VAT number 6558774 rffNadLoop1.RFF = new RFF(); rffNadLoop1.RFF.REFERENCE_01 = new C506(); rffNadLoop1.RFF.REFERENCE_01.Referencequalifier_01 = "VA"; rffNadLoop1.RFF.REFERENCE_01.Referencenumber_02 = "6558774"; // End RFF Group 1 nadLoop1.RFFLoop.Add(rffNadLoop1); // End NAD Group 1 result.NADLoop.Add(nadLoop1); // Begin NAD Group 2 var nadLoop2 = new Loop_NAD_DESADV(); // Buyer identified by GLN 5412345000013 nadLoop2.NAD = new NAD(); nadLoop2.NAD.Partyqualifier_01 = "BY"; nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082(); nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01 = "5412345000013"; nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9"; // Repeating RFF Groups nadLoop2.RFFLoop = new List <Loop_RFF_DESADV>(); // Begin RFF Group 1 var rffNadLoop2 = new Loop_RFF_DESADV(); // Buyer's VAT number 7002474 rffNadLoop2.RFF = new RFF(); rffNadLoop2.RFF.REFERENCE_01 = new C506(); rffNadLoop2.RFF.REFERENCE_01.Referencequalifier_01 = "VA"; rffNadLoop2.RFF.REFERENCE_01.Referencenumber_02 = "7002474"; // End RFF Group 1 nadLoop2.RFFLoop.Add(rffNadLoop2); // End NAD Group 2 result.NADLoop.Add(nadLoop2); // Begin NAD Group 3 var nadLoop3 = new Loop_NAD_DESADV(); // Delivery party identified by GLN 5412345123453 nadLoop3.NAD = new NAD(); nadLoop3.NAD.Partyqualifier_01 = "DP"; nadLoop3.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082(); nadLoop3.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01 = "5412345123453"; nadLoop3.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9"; // Repeating RFF Groups nadLoop3.RFFLoop = new List <Loop_RFF_DESADV>(); // Begin RFF Group 1 var rffNadLoop3 = new Loop_RFF_DESADV(); // Delivery party's VAT number 800800 rffNadLoop3.RFF = new RFF(); rffNadLoop3.RFF.REFERENCE_01 = new C506(); rffNadLoop3.RFF.REFERENCE_01.Referencequalifier_01 = "VA"; rffNadLoop3.RFF.REFERENCE_01.Referencenumber_02 = "800800"; // End RFF Group 1 nadLoop3.RFFLoop.Add(rffNadLoop3); // End NAD Group 3 result.NADLoop.Add(nadLoop3); // Begin NAD Group 4 var nadLoop4 = new Loop_NAD_DESADV(); // Shipper identified by GLN 5412345000105 nadLoop4.NAD = new NAD(); nadLoop4.NAD.Partyqualifier_01 = "SH"; nadLoop4.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082(); nadLoop4.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01 = "5412345000105"; nadLoop4.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9"; // End NAD Group 4 result.NADLoop.Add(nadLoop4); // Repeating CPS Groups result.CPSLoop = new List <Loop_CPS_DESADV>(); // Begin CPS Group 1 var cpsLoop1 = new Loop_CPS_DESADV(); // First level description of consignment packing cpsLoop1.CPS = new CPS(); cpsLoop1.CPS.Hierarchicalidnumber_01 = "1"; // Repeating PAC Groups cpsLoop1.PACLoop = new List <Loop_PAC_DESADV>(); // Begin PAC Group 1 var pacLoop1 = new Loop_PAC_DESADV(); // Two ISO 1 pallets pacLoop1.PAC = new PAC(); pacLoop1.PAC.Numberofpackages_01 = "2"; pacLoop1.PAC.PACKAGETYPE_03 = new C202(); pacLoop1.PAC.PACKAGETYPE_03.Typeofpackagesidentification_01 = "201"; pacLoop1.PAC.PACKAGETYPE_03.Codelistresponsibleagencycoded_03 = "9"; // End PAC Group 1 cpsLoop1.PACLoop.Add(pacLoop1); // End CPS Group 1 result.CPSLoop.Add(cpsLoop1); // Begin CPS Group 2 var cpsLoop2 = new Loop_CPS_DESADV(); // Second level description of the first pallet cpsLoop2.CPS = new CPS(); cpsLoop2.CPS.Hierarchicalidnumber_01 = "2"; cpsLoop2.CPS.Hierarchicalparentid_02 = "1"; // Repeating PAC Groups cpsLoop2.PACLoop = new List <Loop_PAC_DESADV>(); // Begin PAC Group 1 var pacLoop2 = new Loop_PAC_DESADV(); // One ISO 1 pallet pacLoop2.PAC = new PAC(); pacLoop2.PAC.Numberofpackages_01 = "1"; pacLoop2.PAC.PACKAGETYPE_03 = new C202(); pacLoop2.PAC.PACKAGETYPE_03.Typeofpackagesidentification_01 = "201"; pacLoop2.PAC.PACKAGETYPE_03.Codelistresponsibleagencycoded_03 = "9"; // Repeating MEA pacLoop2.MEA = new List <MEA>(); // Pallet weight 263.2 Kilos including goods packages var mea1 = new MEA(); mea1.Measurementapplicationqualifier_01 = "PD"; mea1.MEASUREMENTDETAILS_02 = new C502(); mea1.MEASUREMENTDETAILS_02.Measurementdimensioncoded_01 = "AAB"; mea1.VALUERANGE_03 = new C174(); mea1.VALUERANGE_03.Measureunitqualifier_01 = "KGM"; mea1.VALUERANGE_03.Measurementvalue_02 = "263.2"; pacLoop2.MEA.Add(mea1); // Pallet width 800 millimeters var mea2 = new MEA(); mea2.Measurementapplicationqualifier_01 = "PD"; mea2.MEASUREMENTDETAILS_02 = new C502(); mea2.MEASUREMENTDETAILS_02.Measurementdimensioncoded_01 = "WD"; mea2.VALUERANGE_03 = new C174(); mea2.VALUERANGE_03.Measureunitqualifier_01 = "MMT"; mea2.VALUERANGE_03.Measurementvalue_02 = "800"; pacLoop2.MEA.Add(mea2); // Pallet length 1200 millimeters var mea3 = new MEA(); mea3.Measurementapplicationqualifier_01 = "PD"; mea3.MEASUREMENTDETAILS_02 = new C502(); mea3.MEASUREMENTDETAILS_02.Measurementdimensioncoded_01 = "LN"; mea3.VALUERANGE_03 = new C174(); mea3.VALUERANGE_03.Measureunitqualifier_01 = "MMT"; mea3.VALUERANGE_03.Measurementvalue_02 = "1200"; pacLoop2.MEA.Add(mea3); // Repeating PCI Groups pacLoop2.PCILoop = new List <Loop_PCI_DESADV>(); // Begin PCI Group var pciLoop1 = new Loop_PCI_DESADV(); // Pallet marked with SSCC pciLoop1.PCI = new PCI(); pciLoop1.PCI.Markinginstructionscoded_01 = "33E"; // Repeating GIN Groups pciLoop1.GINLoop = new List <Loop_GIN_DESADV>(); // Begin GIN Group var ginLoop1 = new Loop_GIN_DESADV(); // Serial Shipping Container Code 354107380000001051 ginLoop1.GIN = new GIN(); ginLoop1.GIN.Identitynumberqualifier_01 = "BJ"; ginLoop1.GIN.IDENTITYNUMBERRANGE_02 = new C208(); ginLoop1.GIN.IDENTITYNUMBERRANGE_02.Identitynumber_01 = "354107380000001051"; // End GIN Group pciLoop1.GINLoop.Add(ginLoop1); // End PCI Group pacLoop2.PCILoop.Add(pciLoop1); // End PAC Group 1 cpsLoop2.PACLoop.Add(pacLoop2); // Begin PAC Group 2 var pacLoop3 = new Loop_PAC_DESADV(); // Twenty cartons pacLoop3.PAC = new PAC(); pacLoop3.PAC.Numberofpackages_01 = "20"; pacLoop3.PAC.PACKAGETYPE_03 = new C202(); pacLoop3.PAC.PACKAGETYPE_03.Typeofpackagesidentification_01 = "CT"; // End PAC Group 2 cpsLoop2.PACLoop.Add(pacLoop3); // Repeating LIN Groups cpsLoop2.LINLoop = new List <Loop_LIN_DESADV>(); // Begin LIN Group var linLoop1 = new Loop_LIN_DESADV(); // Product contained in this package is identified by GTIN 5410738000152 linLoop1.LIN = new LIN(); linLoop1.LIN.Lineitemnumber_01 = "1"; linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03 = new C212(); linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01 = "5410738000152"; linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRV"; linLoop1.QTY = new List <QTY>(); // Despatch quantity 20 var qty1 = new QTY(); qty1.QUANTITYDETAILS_01 = new C186(); qty1.QUANTITYDETAILS_01.Quantityqualifier_01 = "12"; qty1.QUANTITYDETAILS_01.Quantity_02 = "20"; linLoop1.QTY.Add(qty1); // End LIN Group cpsLoop2.LINLoop.Add(linLoop1); // End CPS Group 2 result.CPSLoop.Add(cpsLoop2); // Begin CPS Group 3 var cpsLoop3 = new Loop_CPS_DESADV(); // Second level description of the second pallet cpsLoop3.CPS = new CPS(); cpsLoop3.CPS.Hierarchicalidnumber_01 = "3"; cpsLoop3.CPS.Hierarchicalparentid_02 = "1"; // Repeating PAC Groups cpsLoop3.PACLoop = new List <Loop_PAC_DESADV>(); // Begin PAC Group 1 var pacLoop4 = new Loop_PAC_DESADV(); // One ISO 1 pallet pacLoop4.PAC = new PAC(); pacLoop4.PAC.Numberofpackages_01 = "1"; pacLoop4.PAC.PACKAGETYPE_03 = new C202(); pacLoop4.PAC.PACKAGETYPE_03.Typeofpackagesidentification_01 = "201"; pacLoop4.PAC.PACKAGETYPE_03.Codelistresponsibleagencycoded_03 = "9"; // Repeating MEA pacLoop4.MEA = new List <MEA>(); // Pallet weight 305.1 Kilos var mea4 = new MEA(); mea4.Measurementapplicationqualifier_01 = "PD"; mea4.MEASUREMENTDETAILS_02 = new C502(); mea4.MEASUREMENTDETAILS_02.Measurementdimensioncoded_01 = "AAB"; mea4.VALUERANGE_03 = new C174(); mea4.VALUERANGE_03.Measureunitqualifier_01 = "KGM"; mea4.VALUERANGE_03.Measurementvalue_02 = "305.1"; pacLoop4.MEA.Add(mea4); // Repeating PCI Groups pacLoop4.PCILoop = new List <Loop_PCI_DESADV>(); // Begin PCI Group var pciLoop2 = new Loop_PCI_DESADV(); // Pallet marked with SSCC pciLoop2.PCI = new PCI(); pciLoop2.PCI.Markinginstructionscoded_01 = "33E"; // Repeating GIN Groups pciLoop2.GINLoop = new List <Loop_GIN_DESADV>(); // Begin GIN Group var ginLoop2 = new Loop_GIN_DESADV(); // Serial Shipping Container Code 354107380000001068 ginLoop2.GIN = new GIN(); ginLoop2.GIN.Identitynumberqualifier_01 = "BJ"; ginLoop2.GIN.IDENTITYNUMBERRANGE_02 = new C208(); ginLoop2.GIN.IDENTITYNUMBERRANGE_02.Identitynumber_01 = "354107380000001068"; // End GIN Group pciLoop2.GINLoop.Add(ginLoop2); // End PCI Group pacLoop4.PCILoop.Add(pciLoop2); // End PAC Group 1 cpsLoop3.PACLoop.Add(pacLoop4); // Begin PAC Group 2 var pacLoop5 = new Loop_PAC_DESADV(); // Twenty cartons pacLoop5.PAC = new PAC(); pacLoop5.PAC.Numberofpackages_01 = "20"; pacLoop5.PAC.PACKAGETYPE_03 = new C202(); pacLoop5.PAC.PACKAGETYPE_03.Typeofpackagesidentification_01 = "CT"; // End PAC Group 2 cpsLoop3.PACLoop.Add(pacLoop5); // Repeating LIN Groups cpsLoop3.LINLoop = new List <Loop_LIN_DESADV>(); // Begin LIN Group 1 var linLoop2 = new Loop_LIN_DESADV(); // First product contained in this package is identified by GTIN 5410738000169 linLoop2.LIN = new LIN(); linLoop2.LIN.Lineitemnumber_01 = "2"; linLoop2.LIN.ITEMNUMBERIDENTIFICATION_03 = new C212(); linLoop2.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01 = "5410738000169"; linLoop2.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRV"; linLoop2.QTY = new List <QTY>(); // Despatch quantity 5 var qty2 = new QTY(); qty2.QUANTITYDETAILS_01 = new C186(); qty2.QUANTITYDETAILS_01.Quantityqualifier_01 = "12"; qty2.QUANTITYDETAILS_01.Quantity_02 = "5"; linLoop2.QTY.Add(qty2); // End LIN Group 1 cpsLoop3.LINLoop.Add(linLoop2); // Begin LIN Group 2 var linLoop3 = new Loop_LIN_DESADV(); // Second product contained in this package is identified by GTIN 5410738000176 linLoop3.LIN = new LIN(); linLoop3.LIN.Lineitemnumber_01 = "3"; linLoop3.LIN.ITEMNUMBERIDENTIFICATION_03 = new C212(); linLoop3.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01 = "5410738000176"; linLoop3.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRV"; linLoop3.QTY = new List <QTY>(); // Despatch quantity 3 var qty3 = new QTY(); qty3.QUANTITYDETAILS_01 = new C186(); qty3.QUANTITYDETAILS_01.Quantityqualifier_01 = "12"; qty3.QUANTITYDETAILS_01.Quantity_02 = "3"; linLoop3.QTY.Add(qty3); // End LIN Group 2 cpsLoop3.LINLoop.Add(linLoop3); // Begin LIN Group 3 var linLoop4 = new Loop_LIN_DESADV(); // Third product contained in this package is identified by GTIN 5410738000183 linLoop4.LIN = new LIN(); linLoop4.LIN.Lineitemnumber_01 = "4"; linLoop4.LIN.ITEMNUMBERIDENTIFICATION_03 = new C212(); linLoop4.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01 = "5410738000183"; linLoop4.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRV"; linLoop4.QTY = new List <QTY>(); // Despatch quantity 12 var qty4 = new QTY(); qty4.QUANTITYDETAILS_01 = new C186(); qty4.QUANTITYDETAILS_01.Quantityqualifier_01 = "12"; qty4.QUANTITYDETAILS_01.Quantity_02 = "12"; linLoop4.QTY.Add(qty4); // End LIN Group 3 cpsLoop3.LINLoop.Add(linLoop4); // End CPS Group 3 result.CPSLoop.Add(cpsLoop3); // Repeating CNT result.CNT = new List <CNT>(); // Total number of LIN segments in the message = 4 var cnt = new CNT(); cnt.CONTROL_01 = new C270(); cnt.CONTROL_01.Controlqualifier_01 = "2"; cnt.CONTROL_01.Controlvalue_02 = "4"; result.CNT.Add(cnt); return(result); }