public void Should_Encode_DateTime_Should_Encode_DateTime_yyyyMM() { var date = new DateTimeOffset(2015, 9, 4, 11, 59, 59, 123, new TimeSpan(4, 0, 0)); var hl7Date = new DTM(date, DateTimePrecision.Month); Assert.AreEqual("201509", hl7Date.Encode()); hl7Date = new DTM(date, DateTimePrecision.Month, 7); Assert.AreEqual("201509", hl7Date.Encode()); }
public void Should_Encode_DateTime_DefaultPrecision() { var date = new DateTimeOffset(2015, 9, 4, 11, 59, 59, 123, new TimeSpan(4, 0, 0)); var hl7Date = new DTM(date); Assert.AreEqual("20150904115959.123+0400", hl7Date.Encode()); date = new DateTimeOffset(2015, 9, 4, 11, 59, 59, 123, new TimeSpan(0,0,0)); hl7Date = new DTM(date); Assert.AreEqual("20150904115959.123", hl7Date.Encode()); }
public void Should_Encode_DateTime_Should_Encode_DateTime_yyyyMMddHHmmss_sss() { var date = new DateTimeOffset(2015, 9, 4, 11, 59, 59, 123, new TimeSpan(4, 0, 0)); var hl7Date = new DTM(date, DateTimePrecision.Millisecond); Assert.AreEqual("20150904115959.123+0400", hl7Date.Encode()); date = new DateTimeOffset(2015, 9, 4, 11, 59, 59, 123, new TimeSpan(0, 0, 0)); hl7Date = new DTM(date, DateTimePrecision.Millisecond); Assert.AreEqual("20150904115959.123", hl7Date.Encode()); hl7Date = new DTM(date, DateTimePrecision.Millisecond, 7); Assert.AreEqual("20150904115959.123", hl7Date.Encode()); }
public void Should_Serialize_yyyyMMdd() { var date = new DTM(2015, 12, 31); Assert.AreEqual("20151231", date.Value); }
public void Should_Serialize_yyyyMM() { var date = new DTM(2015, 4); Assert.AreEqual("201504", date.Value); }
/// <summary> /// Build instruction. /// Original from https://www.gs1.org/sites/default/files/docs/eancom/s4/iftmin.pdf /// </summary> static TSIFTMIN BuildInstruction(string controlNumber) { var result = new TSIFTMIN(); // 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 = "IFTMIN"; result.UNH.MessageIdentifier_02.MessageVersionNumber_02 = "D"; result.UNH.MessageIdentifier_02.MessageReleaseNumber_03 = "96A"; result.UNH.MessageIdentifier_02.ControllingAgencyCoded_04 = "UN"; // Transport instruction number result.BGM = new BGM(); result.BGM.DOCUMENTMESSAGENAME_01 = new C002(); result.BGM.DOCUMENTMESSAGENAME_01.Documentmessagenamecoded_01 = "610"; result.BGM.Documentmessagenumber_02 = "569952"; result.BGM.Messagefunctioncoded_03 = "9"; // Repeating DTM result.DTM = new List <DTM>(); // Message date/time 1st March 2002 var dtm1 = new DTM(); dtm1.DATETIMEPERIOD_01 = new C507(); dtm1.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 = "137"; dtm1.DATETIMEPERIOD_01.Datetimeperiod_02 = "20020301"; dtm1.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102"; result.DTM.Add(dtm1); // Delivery date/time requested, 8th March 2002 at 11:00 var dtm2 = new DTM(); dtm2.DATETIMEPERIOD_01 = new C507(); dtm2.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 = "2"; dtm2.DATETIMEPERIOD_01.Datetimeperiod_02 = "200203081100"; dtm2.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "203"; result.DTM.Add(dtm2); // Repeating CNT result.CNT = new List <CNT>(); // Total number of packages 1 var cnt = new CNT(); cnt.CONTROL_01 = new C270(); cnt.CONTROL_01.Controlqualifier_01 = "11"; cnt.CONTROL_01.Controlvalue_02 = "1"; result.CNT.Add(cnt); // Repeating RFF Groups result.RFFLoop = new List <Loop_RFF_IFTMIN>(); // Begin RFF Group var rffLoop1 = new Loop_RFF_IFTMIN(); // Consignor’s reference number TI1284 rffLoop1.RFF = new RFF(); rffLoop1.RFF.REFERENCE_01 = new C506(); rffLoop1.RFF.REFERENCE_01.Referencequalifier_01 = "CU"; rffLoop1.RFF.REFERENCE_01.Referencenumber_02 = "TI1284"; // End RFF Group result.RFFLoop.Add(rffLoop1); // Repeating TDT Groups result.TDTLoop = new List <Loop_TDT_IFTMIN>(); // Begin TDT Group var tdtLoop1 = new Loop_TDT_IFTMIN(); // Details of transport, by truck tdtLoop1.TDT = new TDT(); tdtLoop1.TDT.Transportstagequalifier_01 = "20"; tdtLoop1.TDT.MODEOFTRANSPORT_03 = new C220(); tdtLoop1.TDT.MODEOFTRANSPORT_03.Modeoftransportcoded_01 = "30"; tdtLoop1.TDT.TRANSPORTMEANS_04 = new C228(); tdtLoop1.TDT.TRANSPORTMEANS_04.Typeofmeansoftransportidentification_01 = "31"; // Repeating DTM tdtLoop1.DTM = new List <DTM>(); // Estimated departure of truck 5th March 2002 at 11am var dtmTdt1 = new DTM(); dtmTdt1.DATETIMEPERIOD_01 = new C507(); dtmTdt1.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 = "133"; dtmTdt1.DATETIMEPERIOD_01.Datetimeperiod_02 = "200203051100"; dtmTdt1.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "203"; tdtLoop1.DTM.Add(dtmTdt1); // Repeating LOC Groups tdtLoop1.LOCLoop = new List <Loop_LOC_IFTMIN_2>(); // Begin LOC Group var locTdt1 = new Loop_LOC_IFTMIN_2(); // Place of truck loading identified with GLN 5412345678908 locTdt1.LOC = new LOC(); locTdt1.LOC.Placelocationqualifier_01 = "9"; locTdt1.LOC.LOCATIONIDENTIFICATION_02 = new C517(); locTdt1.LOC.LOCATIONIDENTIFICATION_02.Placelocationidentification_01 = "5412345678908"; locTdt1.LOC.LOCATIONIDENTIFICATION_02.Codelistresponsibleagencycoded_03 = "9"; // End LOC Group tdtLoop1.LOCLoop.Add(locTdt1); // End TDT Group result.TDTLoop.Add(tdtLoop1); // Repeating NAD Groups result.NADLoop = new List <Loop_NAD_IFTMIN>(); // Begin NAD Group 1 var nadLoop1 = new Loop_NAD_IFTMIN(); // Consignor identified with GLN 5412345123453 nadLoop1.NAD = new NAD(); nadLoop1.NAD.Partyqualifier_01 = "CZ"; nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082(); nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01 = "5412345123453"; nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9"; // End NAD Group 1 result.NADLoop.Add(nadLoop1); // Begin NAD Group 2 var nadLoop2 = new Loop_NAD_IFTMIN(); // Carrier identified with GLN 5411234512309 nadLoop2.NAD = new NAD(); nadLoop2.NAD.Partyqualifier_01 = "CA"; nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082(); nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01 = "5411234512309"; nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9"; // End NAD Group 2 result.NADLoop.Add(nadLoop2); // Begin NAD Group 3 var nadLoop3 = new Loop_NAD_IFTMIN(); // Consignee identified with GLN 5411234444402 nadLoop3.NAD = new NAD(); nadLoop3.NAD.Partyqualifier_01 = "CN"; nadLoop3.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082(); nadLoop3.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01 = "5411234444402"; nadLoop3.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9"; // End NAD Group 3 result.NADLoop.Add(nadLoop3); // Begin NAD Group 4 var nadLoop4 = new Loop_NAD_IFTMIN(); // Delivery party identified with GLN 5412345145660 nadLoop4.NAD = new NAD(); nadLoop4.NAD.Partyqualifier_01 = "DP"; nadLoop4.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082(); nadLoop4.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01 = "5412345145660"; nadLoop4.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9"; // End NAD Group 4 result.NADLoop.Add(nadLoop4); // Repeating GID Groups result.GIDLoop = new List <Loop_GID_IFTMIN>(); // Begin GID Group var gidLoop1 = new Loop_GID_IFTMIN(); // First occurrence of goods in one returnable pallet with 14 packages gidLoop1.GID = new GID(); gidLoop1.GID.Goodsitemnumber_01 = "1"; gidLoop1.GID.NUMBERANDTYPEOFPACKAGES_02 = new C213(); gidLoop1.GID.NUMBERANDTYPEOFPACKAGES_02.Numberofpackages_01 = "1"; gidLoop1.GID.NUMBERANDTYPEOFPACKAGES_02.Typeofpackagesidentification_02 = "09"; gidLoop1.GID.NUMBERANDTYPEOFPACKAGES_02.Codelistresponsibleagencycoded_04 = "9"; gidLoop1.GID.NUMBERANDTYPEOFPACKAGES_03 = new C213(); gidLoop1.GID.NUMBERANDTYPEOFPACKAGES_03.Numberofpackages_01 = "14"; gidLoop1.GID.NUMBERANDTYPEOFPACKAGES_03.Typeofpackagesidentification_02 = "PK"; // The goods are foods stuffs gidLoop1.HAN = new HAN(); gidLoop1.HAN.HANDLINGINSTRUCTIONS_01 = new C524(); gidLoop1.HAN.HANDLINGINSTRUCTIONS_01.Handlinginstructionscoded_01 = "EAT"; gidLoop1.HAN.HANDLINGINSTRUCTIONS_01.Codelistresponsibleagencycoded_03 = "9"; // Transport temperature 0 degrees Celsius gidLoop1.TMP = new TMP(); gidLoop1.TMP.Temperaturequalifier_01 = "2"; gidLoop1.TMP.TEMPERATURESETTING_02 = new C239(); gidLoop1.TMP.TEMPERATURESETTING_02.Temperaturesetting_01 = "000"; gidLoop1.TMP.TEMPERATURESETTING_02.Measureunitqualifier_02 = "CEL"; // The range of temperature must be between –5 and 5 degrees Celsius gidLoop1.RNG = new RNG(); gidLoop1.RNG.Rangetypequalifier_01 = "5"; gidLoop1.RNG.RANGE_02 = new C280(); gidLoop1.RNG.RANGE_02.Measureunitqualifier_01 = "CEL"; gidLoop1.RNG.RANGE_02.Rangeminimum_02 = "-5"; gidLoop1.RNG.RANGE_02.Rangemaximum_03 = "5"; // Repeating MOA gidLoop1.MOA = new List <MOA>(); // Declared valued of the carriage 45.000 EUR var moaGid1 = new MOA(); moaGid1.MONETARYAMOUNT_01 = new C516(); moaGid1.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "44"; moaGid1.MONETARYAMOUNT_01.Monetaryamount_02 = "45000"; moaGid1.MONETARYAMOUNT_01.Currencycoded_03 = "EUR"; gidLoop1.MOA.Add(moaGid1); // Repeating PIA gidLoop1.PIA = new List <PIA>(); // Product identification of the goods using GTIN 5410738377117 var piaGid1 = new PIA(); piaGid1.Productidfunctionqualifier_01 = "5"; piaGid1.ITEMNUMBERIDENTIFICATION_02 = new C212(); piaGid1.ITEMNUMBERIDENTIFICATION_02.Itemnumber_01 = "5410738377117"; piaGid1.ITEMNUMBERIDENTIFICATION_02.Itemnumbertypecoded_02 = "SRV"; gidLoop1.PIA.Add(piaGid1); // Repeating MEA Groups gidLoop1.MEALoop = new List <Loop_MEA_IFTMIN>(); // Begin MEA GID Group var meaGid1 = new Loop_MEA_IFTMIN(); // Gross weight of returnable pallet plus 14 packages on the pallet is 250 Kilograms meaGid1.MEA = new MEA(); meaGid1.MEA.Measurementapplicationqualifier_01 = "AAE"; meaGid1.MEA.MEASUREMENTDETAILS_02 = new C502(); meaGid1.MEA.MEASUREMENTDETAILS_02.Measurementdimensioncoded_01 = "X7E"; meaGid1.MEA.VALUERANGE_03 = new C174(); meaGid1.MEA.VALUERANGE_03.Measureunitqualifier_01 = "KGM"; meaGid1.MEA.VALUERANGE_03.Measurementvalue_02 = "250"; // End MEA GID Group gidLoop1.MEALoop.Add(meaGid1); // Repeating PCI Groups gidLoop1.PCILoop = new List <Loop_PCI_IFTMIN>(); // Begin PCI GID Group var pciGid1 = new Loop_PCI_IFTMIN(); // Marked with the EAN.UCC serial shipping container code pciGid1.PCI = new PCI(); pciGid1.PCI.Markinginstructionscoded_01 = "33E"; // Repeating GIN pciGid1.GIN = new List <GIN>(); // Identification of marked serial shipping container code var ginPci1 = new GIN(); ginPci1.Identitynumberqualifier_01 = "BJ"; ginPci1.IDENTITYNUMBERRANGE_02 = new C208(); ginPci1.IDENTITYNUMBERRANGE_02.Identitynumber_01 = "354123450000000014"; pciGid1.GIN.Add(ginPci1); // End PCI GID Group gidLoop1.PCILoop.Add(pciGid1); // End GID Group result.GIDLoop.Add(gidLoop1); return(result); }
public void Should_Serialize_yyyyMMddHHmmss_sss() { var date = new DTM(2000, 3, 1, 11, 11, 2, 4); Assert.AreEqual("20000301111102.004", date.Value); date = new DTM(2000, 3, 1, 11, 11, 2, 14); Assert.AreEqual("20000301111102.014", date.Value); date = new DTM(2000, 3, 1, 11, 11, 2, 104); Assert.AreEqual("20000301111102.104", date.Value); date = new DTM(2000, 3, 1, 11, 11, 2, 124); Assert.AreEqual("20000301111102.124", date.Value); date = new DTM(2000, 3, 1, 11, 11, 2, 4, null, -5); Assert.AreEqual("20000301111102.004-0500", date.Value); date = new DTM(2000, 3, 1, 11, 11, 2, 14, null, -5); Assert.AreEqual("20000301111102.014-0500", date.Value); date = new DTM(2000, 3, 1, 11, 11, 2, 104, null, -5); Assert.AreEqual("20000301111102.104-0500", date.Value); date = new DTM(2000, 3, 1, 11, 11, 2, 124, null, -5); Assert.AreEqual("20000301111102.124-0500", date.Value); }
public void Should_Serialize_yyyyMMddHHmmss() { var date = new DTM(2000, 3, 1, 11, 11, 2); Assert.AreEqual("20000301111102", date.Value); date = new DTM(2000, 3, 1, 11, 11, 2, null, null, -2, 15); Assert.AreEqual("20000301111102-0215", date.Value); }
/// <summary> /// Build passenger list. /// Original from https://www.cbp.gov/sites/default/files/documents/paxlst_012_36_3.txt /// </summary> static TSPAXLST BuildPassengerList(string controlNumber) { var result = new TSPAXLST(); // 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 = "PAXLST"; 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 = "10"; result.BGM.DOCUMENTMESSAGEIDENTIFICATION_02 = new C106(); result.BGM.DOCUMENTMESSAGEIDENTIFICATION_02.Documentidentifier_01 = "LOCKKH04103101"; result.BGM.Messagefunctioncode_03 = "4"; result.RFF = new RFF(); result.RFF.REFERENCE_01 = new C506(); result.RFF.REFERENCE_01.Referencecodequalifier_01 = "RFA"; result.RFF.REFERENCE_01.Referenceidentifier_02 = "03"; // Repeating TDT Groups result.TDTLoop = new List <Loop_TDT_PAXLST>(); // Begin TDT Group var tdtLoop1 = new Loop_TDT_PAXLST(); tdtLoop1.TDT = new TDT(); tdtLoop1.TDT.Transportstagecodequalifier_01 = "11"; tdtLoop1.TDT.CARRIER_05 = new C040(); tdtLoop1.TDT.CARRIER_05.Carrieridentifier_01 = "LOCK"; tdtLoop1.TDT.CARRIER_05.Codelistidentificationcode_02 = "172"; tdtLoop1.DTM = new DTM(); tdtLoop1.DTM.DATETIMEPERIOD_01 = new C507(); tdtLoop1.DTM.DATETIMEPERIOD_01.Dateortimeorperiodfunctioncodequalifier_01 = "132"; tdtLoop1.DTM.DATETIMEPERIOD_01.Dateortimeorperiodtext_02 = "20041230"; tdtLoop1.DTM.DATETIMEPERIOD_01.Dateortimeorperiodformatcode_03 = "102"; // End TDT Group result.TDTLoop.Add(tdtLoop1); // Repeating RFF Groups result.NADLoop2 = new List <Loop_NAD_PAXLST_2>(); // Begin NAD Group 1 var nadLoop1 = new Loop_NAD_PAXLST_2(); nadLoop1.NAD = new NAD(); nadLoop1.NAD.Partyfunctioncodequalifier_01 = "VW"; nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082(); nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyidentifier_01 = "0000041153"; nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistidentificationcode_02 = "109"; nadLoop1.NAD.PARTYNAME_04 = new C080(); nadLoop1.NAD.PARTYNAME_04.Partyname_01 = "AOMAD"; nadLoop1.NAD.PARTYNAME_04.Partyname_02 = "CHRIS"; nadLoop1.NAD.PARTYNAME_04.Partynameformatcode_06 = "1"; nadLoop1.NAD.STREET_05 = new C059(); nadLoop1.NAD.STREET_05.Streetandnumberorpostofficeboxidentifier_01 = "11107 SUNSET HILLS 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.COUNTRYSUBENTITYDETAILS_07.Codelistresponsibleagencycode_03 = "5"; nadLoop1.NAD.Postalidentificationcode_08 = "20190"; // Repeating ATT nadLoop1.ATT = new List <ATT>(); var attNad1 = new ATT(); attNad1.Attributefunctioncodequalifier_01 = "2"; attNad1.ATTRIBUTEDETAIL_03 = new List <C956>(); var c9561 = new C956(); c9561.Attributedescriptioncode_01 = "M"; attNad1.ATTRIBUTEDETAIL_03.Add(c9561); var c9562 = new C956(); c9562.Attributedescriptioncode_01 = "M"; attNad1.ATTRIBUTEDETAIL_03.Add(c9562); var c9563 = new C956(); c9563.Attributedescriptioncode_01 = "M"; attNad1.ATTRIBUTEDETAIL_03.Add(c9563); var c9564 = new C956(); c9564.Attributedescriptioncode_01 = "M"; attNad1.ATTRIBUTEDETAIL_03.Add(c9564); var c9565 = new C956(); c9565.Attributedescriptioncode_01 = "M"; attNad1.ATTRIBUTEDETAIL_03.Add(c9565); nadLoop1.ATT.Add(attNad1); // Repeating DTM nadLoop1.DTM = new List <DTM>(); var dtmNad1 = new DTM(); dtmNad1.DATETIMEPERIOD_01 = new C507(); dtmNad1.DATETIMEPERIOD_01.Dateortimeorperiodfunctioncodequalifier_01 = "329"; dtmNad1.DATETIMEPERIOD_01.Dateortimeorperiodtext_02 = "19350919"; dtmNad1.DATETIMEPERIOD_01.Dateortimeorperiodformatcode_03 = "102"; nadLoop1.DTM.Add(dtmNad1); // Repeating EMP nadLoop1.EMP = new List <EMP>(); var empNad1 = new EMP(); empNad1.Employmentdetailscodequalifier_01 = "4"; empNad1.QUALIFICATIONCLASSIFICATION_04 = new C950(); empNad1.QUALIFICATIONCLASSIFICATION_04.Qualificationclassificationdescriptioncode_01 = "1"; empNad1.Qualificationapplicationareacode_06 = "8"; nadLoop1.EMP.Add(empNad1); // Repeating NAT nadLoop1.NAT = new List <NAT>(); var natNad1 = new NAT(); natNad1.Nationalitycodequalifier_01 = "2"; natNad1.NATIONALITYDETAILS_02 = new C042(); natNad1.NATIONALITYDETAILS_02.Nationalitynamecode_01 = "US"; natNad1.NATIONALITYDETAILS_02.Codelistresponsibleagencycode_03 = "5"; nadLoop1.NAT.Add(natNad1); // Repeating DOC NAD Groups nadLoop1.DOCLoop = new List <Loop_DOC_PAXLST>(); // Begin DOC NAD Group 1 var docNad1 = new Loop_DOC_PAXLST(); docNad1.DOC = new DOC(); docNad1.DOC.DOCUMENTMESSAGENAME_01 = new C002(); docNad1.DOC.DOCUMENTMESSAGENAME_01.Documentnamecode_01 = "5K"; docNad1.DOC.DOCUMENTMESSAGEDETAILS_02 = new C503(); docNad1.DOC.DOCUMENTMESSAGEDETAILS_02.Documentidentifier_01 = "P100971204141"; docNad1.LOC = new List <LOC>(); var locDoc1 = new LOC(); locDoc1.Locationfunctioncodequalifier_01 = "91"; locDoc1.LOCATIONIDENTIFICATION_02 = new C517(); locDoc1.LOCATIONIDENTIFICATION_02.Locationnamecode_01 = "VA"; locDoc1.LOCATIONIDENTIFICATION_02.Codelistidentificationcode_02 = "163"; docNad1.LOC.Add(locDoc1); var locDoc2 = new LOC(); locDoc2.Locationfunctioncodequalifier_01 = "91"; locDoc2.LOCATIONIDENTIFICATION_02 = new C517(); locDoc2.LOCATIONIDENTIFICATION_02.Locationnamecode_01 = "US"; locDoc2.LOCATIONIDENTIFICATION_02.Codelistidentificationcode_02 = "162"; docNad1.LOC.Add(locDoc2); // End DOC NAD Group 1 nadLoop1.DOCLoop.Add(docNad1); // Begin DOC NAD Group 2 var docNad2 = new Loop_DOC_PAXLST(); docNad2.DOC = new DOC(); docNad2.DOC.DOCUMENTMESSAGENAME_01 = new C002(); docNad2.DOC.DOCUMENTMESSAGENAME_01.Documentnamecode_01 = "39"; docNad2.DOC.DOCUMENTMESSAGEDETAILS_02 = new C503(); docNad2.DOC.DOCUMENTMESSAGEDETAILS_02.Documentidentifier_01 = "15504141"; docNad2.LOC = new List <LOC>(); var locDoc3 = new LOC(); locDoc3.Locationfunctioncodequalifier_01 = "91"; locDoc3.LOCATIONIDENTIFICATION_02 = new C517(); locDoc3.LOCATIONIDENTIFICATION_02.Locationnamecode_01 = "US"; locDoc3.LOCATIONIDENTIFICATION_02.Codelistidentificationcode_02 = "162"; docNad2.LOC.Add(locDoc3); // End DOC NAD Group 2 nadLoop1.DOCLoop.Add(docNad2); // End NAD Group 1 result.NADLoop2.Add(nadLoop1); return(result); }
public static TSINVOIC CreateInvoice() { var result = new TSINVOIC { UNH = new UNH { MessageReferenceNumber_01 = "123", MessageIdentifier_02 = new S009 { MessageTypeIdentifier_01 = "INVOIC", MessageTypeVersionNumber_02 = "D00", MessageTypeReleaseNumber_03 = "A", ControllingAgency_04 = "UN" } }, BGM = new BGM { DOCUMENTMESSAGENAME_01 = new C002 { Documentnamecode_01 = "123" }, DOCUMENTMESSAGEIDENTIFICATION_02 = new C106 { Documentidentifier_01 = "12345678", Versionidentifier_02 = "9", }, Messagefunctioncode_03 = "8" }, DTM = new List <DTM>(), DGS = new DGS { Dangerousgoodsregulationscode_01 = "", HAZARDCODE_02 = new C205 { Hazardidentificationcode_01 = "", Additionalhazardclassificationidentifier_02 = "" } }, UNS = new UNS { Sectionidentification_01 = "B" }, MOALoop4 = new List <TSINVOIC_MOALoop4> { new TSINVOIC_MOALoop4 { MOA = new MOA { MONETARYAMOUNT_01 = new C516 { Monetaryamounttypecodequalifier_01 = "10" } } } } }; var dtm = new DTM { DATETIMEPERIOD_01 = new C507 { Dateortimeorperiodfunctioncodequalifier_01 = "137", Dateortimeorperiodvalue_02 = "19980610", Dateortimeorperiodformatcode_03 = "102" } }; result.DTM.Add(dtm); return(result); }
/// <summary> /// Build invoice. /// Original from https://www.gs1.org/standards/edi-xml-gs1-eancom/eancom-invoic-s4/syntax-4 /// </summary> public static TSINVOIC BuildInvoice(string controlNumber) { var result = new TSINVOIC(); // 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 = "INVOIC"; result.UNH.MessageIdentifier_02.MessageVersionNumber_02 = "D"; result.UNH.MessageIdentifier_02.MessageReleaseNumber_03 = "96A"; result.UNH.MessageIdentifier_02.ControllingAgencyCoded_04 = "UN"; // Commercial invoice number IN432097 result.BGM = new BGM(); result.BGM.DOCUMENTMESSAGENAME_01 = new C002(); result.BGM.DOCUMENTMESSAGENAME_01.Documentmessagenamecoded_01 = "380"; result.BGM.Documentmessagenumber_02 = "IN432097"; // Repeating DTM result.DTM = new List <DTM>(); // Message date 8th March 2002 var dtm = new DTM(); dtm.DATETIMEPERIOD_01 = new C507(); dtm.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 = "137"; dtm.DATETIMEPERIOD_01.Datetimeperiod_02 = "20020308"; dtm.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102"; result.DTM.Add(dtm); // Instructions to pay in bank account result.PAI = new PAI(); result.PAI.PAYMENTINSTRUCTIONDETAILS_01 = new C534(); result.PAI.PAYMENTINSTRUCTIONDETAILS_01.Paymentmeanscoded_03 = "42"; // Repeating RFF Groups result.RFFLoop = new List <Loop_RFF_INVOIC>(); // Begin RFF Group 1 var rffLoop1 = new Loop_RFF_INVOIC(); // Purchase order invoiced number ORD9523 rffLoop1.RFF = new RFF(); rffLoop1.RFF.REFERENCE_01 = new C506(); rffLoop1.RFF.REFERENCE_01.Referencequalifier_01 = "ON"; rffLoop1.RFF.REFERENCE_01.Referencenumber_02 = "ORD9523"; // Repeating DTM rffLoop1.DTM = new List <DTM>(); // Reference date 12th February 2002 var dtmRff1 = new DTM(); dtmRff1.DATETIMEPERIOD_01 = new C507(); dtmRff1.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 = "171"; dtmRff1.DATETIMEPERIOD_01.Datetimeperiod_02 = "20020212"; dtmRff1.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102"; rffLoop1.DTM.Add(dtmRff1); // End RFF Group 1 result.RFFLoop.Add(rffLoop1); // Begin RFF Group 2 var rffLoop2 = new Loop_RFF_INVOIC(); // Price list reference number PL99523 rffLoop2.RFF = new RFF(); rffLoop2.RFF.REFERENCE_01 = new C506(); rffLoop2.RFF.REFERENCE_01.Referencequalifier_01 = "PL"; rffLoop2.RFF.REFERENCE_01.Referencenumber_02 = "PL99523"; // Repeating DTM rffLoop2.DTM = new List <DTM>(); // Reference date 1st January 2002 var dtmRff2 = new DTM(); dtmRff2.DATETIMEPERIOD_01 = new C507(); dtmRff2.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 = "171"; dtmRff2.DATETIMEPERIOD_01.Datetimeperiod_02 = "20020101"; dtmRff2.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102"; rffLoop2.DTM.Add(dtmRff2); // End RFF Group 2 result.RFFLoop.Add(rffLoop2); // Begin RFF Group 3 var rffLoop3 = new Loop_RFF_INVOIC(); // Reference delivery note number 53662 rffLoop3.RFF = new RFF(); rffLoop3.RFF.REFERENCE_01 = new C506(); rffLoop3.RFF.REFERENCE_01.Referencequalifier_01 = "DQ"; rffLoop3.RFF.REFERENCE_01.Referencenumber_02 = "53662"; // Repeating DTM rffLoop3.DTM = new List <DTM>(); // Reference date 15th February 2002 var dtmRff3 = new DTM(); dtmRff3.DATETIMEPERIOD_01 = new C507(); dtmRff3.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 = "171"; dtmRff3.DATETIMEPERIOD_01.Datetimeperiod_02 = "20020215"; dtmRff3.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102"; rffLoop3.DTM.Add(dtmRff3); // End RFF Group 3 result.RFFLoop.Add(rffLoop3); // Repeating NAD Groups result.NADLoop = new List <Loop_NAD_INVOIC>(); // Begin NAD Group 1 var nadLoop1 = new Loop_NAD_INVOIC(); // Buyer identified by GLN 5412345000013 nadLoop1.NAD = new NAD(); nadLoop1.NAD.Partyqualifier_01 = "BY"; nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082(); nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01 = "5412345000013"; nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9"; // Repeating RFF Groups nadLoop1.RFFLoop = new List <Loop_RFF_INVOIC>(); // Begin RFF Group 1 var rffNadLoop1 = new Loop_RFF_INVOIC(); // VAT reference number of the buyer 4146023 rffNadLoop1.RFF = new RFF(); rffNadLoop1.RFF.REFERENCE_01 = new C506(); rffNadLoop1.RFF.REFERENCE_01.Referencequalifier_01 = "VA"; rffNadLoop1.RFF.REFERENCE_01.Referencenumber_02 = "4146023"; // 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_INVOIC(); // Supplier 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 Groups nadLoop2.RFFLoop = new List <Loop_RFF_INVOIC>(); // Begin RFF Group 1 var rffNadLoop2 = new Loop_RFF_INVOIC(); // VAT reference number of the supplier VR12345 rffNadLoop2.RFF = new RFF(); rffNadLoop2.RFF.REFERENCE_01 = new C506(); rffNadLoop2.RFF.REFERENCE_01.Referencequalifier_01 = "VA"; rffNadLoop2.RFF.REFERENCE_01.Referencenumber_02 = "VR12345"; // 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_INVOIC(); // Delivery party identified by GLN 5412345678908 nadLoop3.NAD = new NAD(); nadLoop3.NAD.Partyqualifier_01 = "DP"; nadLoop3.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082(); nadLoop3.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01 = "5412345678908"; nadLoop3.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9"; // End NAD Group 3 result.NADLoop.Add(nadLoop3); // Repeating CUX Groups result.CUXLoop = new List <Loop_CUX_INVOIC>(); // Begin CUX Group var cuxLoop = new Loop_CUX_INVOIC(); // Reference 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 = "4"; // End CUX Group result.CUXLoop.Add(cuxLoop); // Repeating PAT Groups result.PATLoop = new List <Loop_PAT_INVOIC>(); // Begin PAT Group 1 var patLoop1 = new Loop_PAT_INVOIC(); // Payment terms 2 months after date of invoice patLoop1.PAT = new PAT(); patLoop1.PAT.Paymenttermstypequalifier_01 = "1"; patLoop1.PAT.TERMSTIMEINFORMATION_03 = new C112(); patLoop1.PAT.TERMSTIMEINFORMATION_03.Paymenttimereferencecoded_01 = "5"; patLoop1.PAT.TERMSTIMEINFORMATION_03.Timerelationcoded_02 = "3"; patLoop1.PAT.TERMSTIMEINFORMATION_03.Typeofperiodcoded_03 = "M"; patLoop1.PAT.TERMSTIMEINFORMATION_03.Numberofperiods_04 = "2"; // End PAT Group 1 result.PATLoop.Add(patLoop1); // Begin PAT Group 2 var patLoop2 = new Loop_PAT_INVOIC(); // Payment discount for payment 10 days after date of invoice patLoop2.PAT = new PAT(); patLoop2.PAT.Paymenttermstypequalifier_01 = "22"; patLoop2.PAT.TERMSTIMEINFORMATION_03 = new C112(); patLoop2.PAT.TERMSTIMEINFORMATION_03.Paymenttimereferencecoded_01 = "5"; patLoop2.PAT.TERMSTIMEINFORMATION_03.Timerelationcoded_02 = "3"; patLoop2.PAT.TERMSTIMEINFORMATION_03.Typeofperiodcoded_03 = "D"; patLoop2.PAT.TERMSTIMEINFORMATION_03.Numberofperiods_04 = "10"; // Percentage information for the allowances or charges 2.5 % patLoop2.PCD = new PCD(); patLoop2.PCD.PERCENTAGEDETAILS_01 = new C501(); patLoop2.PCD.PERCENTAGEDETAILS_01.Percentagequalifier_01 = "12"; patLoop2.PCD.PERCENTAGEDETAILS_01.Percentage_02 = "2.5"; patLoop2.PCD.PERCENTAGEDETAILS_01.Percentagebasiscoded_03 = "13"; // End PAT Group 2 result.PATLoop.Add(patLoop2); // Repeating ALC Groups result.ALCLoop = new List <Loop_ALC_INVOIC>(); // Begin ALC Group var alcLoop = new Loop_ALC_INVOIC(); // Charges to be paid by customer alcLoop.ALC = new ALC(); alcLoop.ALC.Allowanceorchargequalifier_01 = "C"; alcLoop.ALC.Settlementcoded_03 = "6"; alcLoop.ALC.SPECIALSERVICESIDENTIFICATION_05 = new C214(); alcLoop.ALC.SPECIALSERVICESIDENTIFICATION_05.Specialservicescoded_01 = "FC"; // Repeating MOA Groups alcLoop.MOALoop = new List <Loop_MOA_INVOIC>(); // Begin MOA Group var moaAlcLoop = new Loop_MOA_INVOIC(); // Monetary amount for the charge 120 EUR to be added moaAlcLoop.MOA = new MOA(); moaAlcLoop.MOA.MONETARYAMOUNT_01 = new C516(); moaAlcLoop.MOA.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "23"; moaAlcLoop.MOA.MONETARYAMOUNT_01.Monetaryamount_02 = "120"; // End MOA Group alcLoop.MOALoop.Add(moaAlcLoop); // Repeating TAX Groups alcLoop.TAXLoop = new List <Loop_TAX_INVOIC_2>(); // Begin TAX Group var taxAlcLoop = new Loop_TAX_INVOIC_2(); // Type of tax is value added tax at 19 % taxAlcLoop.TAX = new TAX(); taxAlcLoop.TAX.Dutytaxfeefunctionqualifier_01 = "7"; taxAlcLoop.TAX.DUTYTAXFEETYPE_02 = new C241(); taxAlcLoop.TAX.DUTYTAXFEETYPE_02.Dutytaxfeetypecoded_01 = "VAT"; taxAlcLoop.TAX.DUTYTAXFEEDETAIL_05 = new C243(); taxAlcLoop.TAX.DUTYTAXFEEDETAIL_05.Dutytaxfeerate_04 = "19"; taxAlcLoop.TAX.Dutytaxfeecategorycoded_06 = "S"; // Tax monetary amount 22.80 EUR taxAlcLoop.MOA = new MOA(); taxAlcLoop.MOA.MONETARYAMOUNT_01 = new C516(); taxAlcLoop.MOA.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "124"; taxAlcLoop.MOA.MONETARYAMOUNT_01.Monetaryamount_02 = "22.80"; // End TAX Group alcLoop.TAXLoop.Add(taxAlcLoop); // End ALC Group result.ALCLoop.Add(alcLoop); // Repeating LIN Groups result.LINLoop = new List <Loop_LIN_INVOIC>(); // Begin LIN Group 1 var linLoop1 = new Loop_LIN_INVOIC(); // Line item 1 identified by GTIN 4000862141404 linLoop1.LIN = new LIN(); linLoop1.LIN.Lineitemnumber_01 = "1"; linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03 = new C212(); linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01 = "4000862141404"; linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRS"; // Repeating QTY linLoop1.QTY = new List <QTY>(); // Invoiced quantity 40 var qtyLin1 = new QTY(); qtyLin1.QUANTITYDETAILS_01 = new C186(); qtyLin1.QUANTITYDETAILS_01.Quantityqualifier_01 = "47"; qtyLin1.QUANTITYDETAILS_01.Quantity_02 = "40"; linLoop1.QTY.Add(qtyLin1); // Repeating MOA Groups linLoop1.MOALoop = new List <Loop_MOA_INVOIC_2>(); // Begin MOA Group var moaLinLoop1 = new Loop_MOA_INVOIC_2(); // Line item amount 2.160 EUR moaLinLoop1.MOA = new MOA(); moaLinLoop1.MOA.MONETARYAMOUNT_01 = new C516(); moaLinLoop1.MOA.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "203"; moaLinLoop1.MOA.MONETARYAMOUNT_01.Monetaryamount_02 = "2160"; // End MOA Group linLoop1.MOALoop.Add(moaLinLoop1); // Repeating PRI Groups linLoop1.PRILoop = new List <Loop_PRI_INVOIC>(); // Begin PRI Group var priLinLoop1 = new Loop_PRI_INVOIC(); // Gross calculation price of 60 which does not include any allowance or charges, from the catalogue. priLinLoop1.PRI = new PRI(); priLinLoop1.PRI.PRICEINFORMATION_01 = new C509(); priLinLoop1.PRI.PRICEINFORMATION_01.Pricequalifier_01 = "AAB"; priLinLoop1.PRI.PRICEINFORMATION_01.Price_02 = "60"; priLinLoop1.PRI.PRICEINFORMATION_01.Pricetypecoded_03 = "CA"; // End PRI Group linLoop1.PRILoop.Add(priLinLoop1); // Repeating TAX Groups linLoop1.TAXLoop = new List <Loop_TAX_INVOIC>(); // Begin TAX Group var taxLinLoop1 = new Loop_TAX_INVOIC(); // Type of tax for the line item is value added tax 21% taxLinLoop1.TAX = new TAX(); taxLinLoop1.TAX.Dutytaxfeefunctionqualifier_01 = "7"; taxLinLoop1.TAX.DUTYTAXFEETYPE_02 = new C241(); taxLinLoop1.TAX.DUTYTAXFEETYPE_02.Dutytaxfeetypecoded_01 = "VAT"; taxLinLoop1.TAX.DUTYTAXFEEDETAIL_05 = new C243(); taxLinLoop1.TAX.DUTYTAXFEEDETAIL_05.Dutytaxfeerate_04 = "21"; taxLinLoop1.TAX.Dutytaxfeecategorycoded_06 = "S"; // Tax monetary amount 453.60 EUR taxLinLoop1.MOA = new MOA(); taxLinLoop1.MOA.MONETARYAMOUNT_01 = new C516(); taxLinLoop1.MOA.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "124"; taxLinLoop1.MOA.MONETARYAMOUNT_01.Monetaryamount_02 = "453.60"; // End TAX Group linLoop1.TAXLoop.Add(taxLinLoop1); // Repeating ALC Groups linLoop1.ALCLoop = new List <Loop_ALC_INVOIC_2>(); // Begin ALC Group var alcLinLoop1 = new Loop_ALC_INVOIC_2(); // Allowances alcLinLoop1.ALC = new ALC(); alcLinLoop1.ALC.Allowanceorchargequalifier_01 = "A"; // PCD Group alcLinLoop1.PCDLoop = new Loop_PCD_INVOIC(); // Percentage information for the allowances 10 % alcLinLoop1.PCDLoop.PCD = new PCD(); alcLinLoop1.PCDLoop.PCD.PERCENTAGEDETAILS_01 = new C501(); alcLinLoop1.PCDLoop.PCD.PERCENTAGEDETAILS_01.Percentagequalifier_01 = "1"; alcLinLoop1.PCDLoop.PCD.PERCENTAGEDETAILS_01.Percentage_02 = "10"; // End ALC Group linLoop1.ALCLoop.Add(alcLinLoop1); // End LIN Group 1 result.LINLoop.Add(linLoop1); // Begin LIN Group 2 var linLoop2 = new Loop_LIN_INVOIC(); // Line item 2 identified by GTIN 5412345111115 linLoop2.LIN = new LIN(); linLoop2.LIN.Lineitemnumber_01 = "2"; linLoop2.LIN.ITEMNUMBERIDENTIFICATION_03 = new C212(); linLoop2.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01 = "5412345111115"; linLoop2.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRS"; // Repeating QTY linLoop2.QTY = new List <QTY>(); // Delivered quantity 5 var qtyLin2 = new QTY(); qtyLin2.QUANTITYDETAILS_01 = new C186(); qtyLin2.QUANTITYDETAILS_01.Quantityqualifier_01 = "46"; qtyLin2.QUANTITYDETAILS_01.Quantity_02 = "5"; linLoop2.QTY.Add(qtyLin2); // Invoiced quantity 12.65 Kg. var qtyLin3 = new QTY(); qtyLin3.QUANTITYDETAILS_01 = new C186(); qtyLin3.QUANTITYDETAILS_01.Quantityqualifier_01 = "47"; qtyLin3.QUANTITYDETAILS_01.Quantity_02 = "12.65"; qtyLin3.QUANTITYDETAILS_01.Measureunitqualifier_03 = "KGM"; linLoop2.QTY.Add(qtyLin3); // Repeating MOA Groups linLoop2.MOALoop = new List <Loop_MOA_INVOIC_2>(); // Begin MOA Group var moaLinLoop2 = new Loop_MOA_INVOIC_2(); // Line item amount 2.530 EUR moaLinLoop2.MOA = new MOA(); moaLinLoop2.MOA.MONETARYAMOUNT_01 = new C516(); moaLinLoop2.MOA.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "203"; moaLinLoop2.MOA.MONETARYAMOUNT_01.Monetaryamount_02 = "2530"; // End MOA Group linLoop2.MOALoop.Add(moaLinLoop2); // Repeating PRI Groups linLoop2.PRILoop = new List <Loop_PRI_INVOIC>(); // Begin PRI Group var priLinLoop2 = new Loop_PRI_INVOIC(); // Net price of 200 per Kg from the catalogue, this price includes allowances and charges priLinLoop2.PRI = new PRI(); priLinLoop2.PRI.PRICEINFORMATION_01 = new C509(); priLinLoop2.PRI.PRICEINFORMATION_01.Pricequalifier_01 = "AAA"; priLinLoop2.PRI.PRICEINFORMATION_01.Price_02 = "200"; priLinLoop2.PRI.PRICEINFORMATION_01.Pricetypecoded_03 = "CA"; priLinLoop2.PRI.PRICEINFORMATION_01.Unitpricebasis_05 = "1"; priLinLoop2.PRI.PRICEINFORMATION_01.Measureunitqualifier_06 = "KGM"; // End PRI Group linLoop2.PRILoop.Add(priLinLoop2); // Repeating TAX Groups linLoop2.TAXLoop = new List <Loop_TAX_INVOIC>(); // Begin TAX Group var taxLinLoop2 = new Loop_TAX_INVOIC(); // Type of tax for the line item is value added tax 19 % taxLinLoop2.TAX = new TAX(); taxLinLoop2.TAX.Dutytaxfeefunctionqualifier_01 = "7"; taxLinLoop2.TAX.DUTYTAXFEETYPE_02 = new C241(); taxLinLoop2.TAX.DUTYTAXFEETYPE_02.Dutytaxfeetypecoded_01 = "VAT"; taxLinLoop2.TAX.DUTYTAXFEEDETAIL_05 = new C243(); taxLinLoop2.TAX.DUTYTAXFEEDETAIL_05.Dutytaxfeerate_04 = "19"; taxLinLoop2.TAX.Dutytaxfeecategorycoded_06 = "S"; // Tax monetary amount 480.70 EUR taxLinLoop2.MOA = new MOA(); taxLinLoop2.MOA.MONETARYAMOUNT_01 = new C516(); taxLinLoop2.MOA.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "124"; taxLinLoop2.MOA.MONETARYAMOUNT_01.Monetaryamount_02 = "480.70"; // End TAX Group linLoop2.TAXLoop.Add(taxLinLoop2); // End LIN Group 2 result.LINLoop.Add(linLoop2); // To separate the detail section from the summary section result.UNS = new UNS(); result.UNS.Sectionidentification_01 = "S"; // Repeating CNT result.CNT = new List <CNT>(); // Total number of line items 2 var cnt = new CNT(); cnt.CONTROL_01 = new C270(); cnt.CONTROL_01.Controlqualifier_01 = "2"; cnt.CONTROL_01.Controlvalue_02 = "2"; result.CNT.Add(cnt); // Repeating MOA Groups result.MOALoop = new List <Loop_MOA_INVOIC_3>(); // Begin MOA Group 1 var moaLoop1 = new Loop_MOA_INVOIC_3(); // Message total monetary amount 5.767,10 EUR moaLoop1.MOA = new MOA(); moaLoop1.MOA.MONETARYAMOUNT_01 = new C516(); moaLoop1.MOA.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "86"; moaLoop1.MOA.MONETARYAMOUNT_01.Monetaryamount_02 = "5767.10"; // End MOA Group 1 result.MOALoop.Add(moaLoop1); // Begin MOA Group 2 var moaLoop2 = new Loop_MOA_INVOIC_3(); // Message total line items amount 4.690 EUR moaLoop2.MOA = new MOA(); moaLoop2.MOA.MONETARYAMOUNT_01 = new C516(); moaLoop2.MOA.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "79"; moaLoop2.MOA.MONETARYAMOUNT_01.Monetaryamount_02 = "4690"; // End MOA Group 2 result.MOALoop.Add(moaLoop2); // Begin MOA Group 3 var moaLoop3 = new Loop_MOA_INVOIC_3(); // Total amount subject to payment discount 5.767.10 EUR moaLoop3.MOA = new MOA(); moaLoop3.MOA.MONETARYAMOUNT_01 = new C516(); moaLoop3.MOA.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "129"; moaLoop3.MOA.MONETARYAMOUNT_01.Monetaryamount_02 = "5767.10"; // End MOA Group 3 result.MOALoop.Add(moaLoop3); // Begin MOA Group 4 var moaLoop4 = new Loop_MOA_INVOIC_3(); // Message total taxable amount 4.810 EUR moaLoop4.MOA = new MOA(); moaLoop4.MOA.MONETARYAMOUNT_01 = new C516(); moaLoop4.MOA.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "125"; moaLoop4.MOA.MONETARYAMOUNT_01.Monetaryamount_02 = "4810"; // End MOA Group 4 result.MOALoop.Add(moaLoop4); // Begin MOA Group 5 var moaLoop5 = new Loop_MOA_INVOIC_3(); // Message total tax amount 957,10 EUR moaLoop5.MOA = new MOA(); moaLoop5.MOA.MONETARYAMOUNT_01 = new C516(); moaLoop5.MOA.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "176"; moaLoop5.MOA.MONETARYAMOUNT_01.Monetaryamount_02 = "957.10"; // End MOA Group 5 result.MOALoop.Add(moaLoop5); // Begin MOA Group 6 var moaLoop6 = new Loop_MOA_INVOIC_3(); // Total charges/allowances 120 EUR moaLoop6.MOA = new MOA(); moaLoop6.MOA.MONETARYAMOUNT_01 = new C516(); moaLoop6.MOA.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "131"; moaLoop6.MOA.MONETARYAMOUNT_01.Monetaryamount_02 = "120"; // End MOA Group 6 result.MOALoop.Add(moaLoop6); // Repeating TAX Groups result.TAXLoop2 = new List <Loop_TAX_INVOIC_3>(); // Begin TAX Group 1 var taxLoop1 = new Loop_TAX_INVOIC_3(); // Type of tax for the total message is value added tax 19 % taxLoop1.TAX = new TAX(); taxLoop1.TAX.Dutytaxfeefunctionqualifier_01 = "7"; taxLoop1.TAX.DUTYTAXFEETYPE_02 = new C241(); taxLoop1.TAX.DUTYTAXFEETYPE_02.Dutytaxfeetypecoded_01 = "VAT"; taxLoop1.TAX.DUTYTAXFEEDETAIL_05 = new C243(); taxLoop1.TAX.DUTYTAXFEEDETAIL_05.Dutytaxfeerate_04 = "19"; taxLoop1.TAX.Dutytaxfeecategorycoded_06 = "S"; // Repeating MOA taxLoop1.MOA = new List <MOA>(); // Tax monetary amount 503.50 EUR var moaTax1 = new MOA(); moaTax1.MONETARYAMOUNT_01 = new C516(); moaTax1.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "124"; moaTax1.MONETARYAMOUNT_01.Monetaryamount_02 = "503.50"; taxLoop1.MOA.Add(moaTax1); // End TAX Group 1 result.TAXLoop2.Add(taxLoop1); // Begin TAX Group 2 var taxLoop2 = new Loop_TAX_INVOIC_3(); // Type of tax for the total message is value added tax 21 % taxLoop2.TAX = new TAX(); taxLoop2.TAX.Dutytaxfeefunctionqualifier_01 = "7"; taxLoop2.TAX.DUTYTAXFEETYPE_02 = new C241(); taxLoop2.TAX.DUTYTAXFEETYPE_02.Dutytaxfeetypecoded_01 = "VAT"; taxLoop2.TAX.DUTYTAXFEEDETAIL_05 = new C243(); taxLoop2.TAX.DUTYTAXFEEDETAIL_05.Dutytaxfeerate_04 = "21"; taxLoop2.TAX.Dutytaxfeecategorycoded_06 = "S"; // Repeating MOA taxLoop2.MOA = new List <MOA>(); // Tax monetary amount 453.60 EUR var moaTax2 = new MOA(); moaTax2.MONETARYAMOUNT_01 = new C516(); moaTax2.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "124"; moaTax2.MONETARYAMOUNT_01.Monetaryamount_02 = "453.60"; taxLoop2.MOA.Add(moaTax2); // End TAX Group 2 result.TAXLoop2.Add(taxLoop2); result.ALCLoop2 = new List <Loop_ALC_INVOIC_3>(); // Begin ALC Group var alcLoop2 = new Loop_ALC_INVOIC_3(); // Freight charge alcLoop2.ALC = new ALC(); alcLoop2.ALC.Allowanceorchargequalifier_01 = "C"; alcLoop2.ALC.SPECIALSERVICESIDENTIFICATION_05 = new C214(); alcLoop2.ALC.SPECIALSERVICESIDENTIFICATION_05.Specialservicescoded_01 = "FC"; // Repeating MOA alcLoop2.MOA = new List <MOA>(); // Total charges 120 EUR var moaAlc = new MOA(); moaAlc.MONETARYAMOUNT_01 = new C516(); moaAlc.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "131"; moaAlc.MONETARYAMOUNT_01.Monetaryamount_02 = "120"; alcLoop2.MOA.Add(moaAlc); // End ALC Group result.ALCLoop2.Add(alcLoop2); 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 purchase order. /// Original from https://www.gs1.org/standards/edi-xml-gs1-eancom/eancom-orders-s4/syntax-4 /// </summary> public static TSORDERS BuildPurchaseOrder(string controlNumber) { var result = new TSORDERS(); // 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 = "ORDERS"; result.UNH.MessageIdentifier_02.MessageVersionNumber_02 = "D"; result.UNH.MessageIdentifier_02.MessageReleaseNumber_03 = "96A"; result.UNH.MessageIdentifier_02.ControllingAgencyCoded_04 = "UN"; // Order number 128576 result.BGM = new BGM(); result.BGM.DOCUMENTMESSAGENAME_01 = new C002(); result.BGM.DOCUMENTMESSAGENAME_01.Documentmessagenamecoded_01 = "220"; result.BGM.Documentmessagenumber_02 = "128576"; result.BGM.Messagefunctioncoded_03 = "9"; // Repeating DTM result.DTM = new List <DTM>(); // Message date 30th of August 2002 var dtm = new DTM(); dtm.DATETIMEPERIOD_01 = new C507(); dtm.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 = "137"; dtm.DATETIMEPERIOD_01.Datetimeperiod_02 = "20020830"; dtm.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102"; result.DTM.Add(dtm); // Instruction to pay in Bank Account result.PAI = new PAI(); result.PAI.PAYMENTINSTRUCTIONDETAILS_01 = new C534(); result.PAI.PAYMENTINSTRUCTIONDETAILS_01.Paymentmeanscoded_03 = "42"; // Repeating FTX result.FTX = new List <FTX>(); // Free text mutually defined var ftx = new FTX(); ftx.Textsubjectqualifier_01 = "ZZZ"; ftx.Textfunctioncoded_02 = "1"; ftx.TEXTREFERENCE_03 = new C107(); ftx.TEXTREFERENCE_03.Freetextcoded_01 = "001"; ftx.TEXTREFERENCE_03.Codelistresponsibleagencycoded_03 = "91"; result.FTX.Add(ftx); // Repeating RFF Groups result.RFFLoop = new List <Loop_RFF_ORDERS>(); // Begin RFF Group var rffLoop = new Loop_RFF_ORDERS(); // Order is based on contract number 652744 rffLoop.RFF = new RFF(); rffLoop.RFF.REFERENCE_01 = new C506(); rffLoop.RFF.REFERENCE_01.Referencequalifier_01 = "CT"; rffLoop.RFF.REFERENCE_01.Referencenumber_02 = "652744"; // Repeating DTM rffLoop.DTM = new List <DTM>(); // Date of contract 25th of August 2002 var rffDtm1 = new DTM(); rffDtm1.DATETIMEPERIOD_01 = new C507(); rffDtm1.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 = "171"; rffDtm1.DATETIMEPERIOD_01.Datetimeperiod_02 = "20020825"; rffDtm1.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102"; rffLoop.DTM.Add(rffDtm1); // End RFF Group result.RFFLoop.Add(rffLoop); // Repeating NAD Groups result.NADLoop = new List <Loop_NAD_ORDERS>(); // Begin NAD Group 1 var nadLoop1 = new Loop_NAD_ORDERS(); // Buyer is identified by GLN 5412345000013 nadLoop1.NAD = new NAD(); nadLoop1.NAD.Partyqualifier_01 = "BY"; nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082(); nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01 = "5412345000013"; nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9"; // Repeating RFF Groups nadLoop1.RFFLoop = new List <Loop_RFF_ORDERS>(); // Begin RFF Group var rffLoopNad = new Loop_RFF_ORDERS(); // Buyer’s VAT number is 87765432 rffLoopNad.RFF = new RFF(); rffLoopNad.RFF.REFERENCE_01 = new C506(); rffLoopNad.RFF.REFERENCE_01.Referencequalifier_01 = "VA"; rffLoopNad.RFF.REFERENCE_01.Referencenumber_02 = "87765432"; // End RFF Group nadLoop1.RFFLoop.Add(rffLoopNad); // Repeating CTA Groups nadLoop1.CTALoop = new List <Loop_CTA_ORDERS>(); // Begin CTA Group var ctaLoop = new Loop_CTA_ORDERS(); // Order contact is PForget ctaLoop.CTA = new CTA(); ctaLoop.CTA.Contactfunctioncoded_01 = "OC"; ctaLoop.CTA.DEPARTMENTOREMPLOYEEDETAILS_02 = new C056(); ctaLoop.CTA.DEPARTMENTOREMPLOYEEDETAILS_02.Departmentoremployee_02 = "P FORGET"; // Repeating COM ctaLoop.COM = new List <COM>(); // Telephone number of order contact var com = new COM(); com.COMMUNICATIONCONTACT_01 = new C076(); com.COMMUNICATIONCONTACT_01.Communicationnumber_01 = "0044715632478"; com.COMMUNICATIONCONTACT_01.Communicationchannelqualifier_02 = "TE"; ctaLoop.COM.Add(com); // End CTA Group nadLoop1.CTALoop.Add(ctaLoop); // End NAD Group 1 result.NADLoop.Add(nadLoop1); // Begin NAD Group 2 var nadLoop2 = new Loop_NAD_ORDERS(); // 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 Groups nadLoop2.RFFLoop = new List <Loop_RFF_ORDERS>(); // Begin RFF Group var rffLoopNad2 = new Loop_RFF_ORDERS(); // Supplier’s VAT number is 56225432 rffLoopNad2.RFF = new RFF(); rffLoopNad2.RFF.REFERENCE_01 = new C506(); rffLoopNad2.RFF.REFERENCE_01.Referencequalifier_01 = "VA"; rffLoopNad2.RFF.REFERENCE_01.Referencenumber_02 = "56225432"; // End RFF Group nadLoop2.RFFLoop.Add(rffLoopNad2); // End NAD Group 2 result.NADLoop.Add(nadLoop2); // Repeating CUX Groups result.CUXLoop = new List <Loop_CUX_ORDERS>(); // Begin CUX Group var cuxLoop = new Loop_CUX_ORDERS(); // Ordering currency is Pounds Sterling with the invoicing currency identified as Euros // The exchange rate between them is 1 Pound Sterling equals 1.67 Euros cuxLoop.CUX = new CUX(); cuxLoop.CUX.CURRENCYDETAILS_01 = new C504(); cuxLoop.CUX.CURRENCYDETAILS_01.Currencydetailsqualifier_01 = "2"; cuxLoop.CUX.CURRENCYDETAILS_01.Currencycoded_02 = "GBP"; cuxLoop.CUX.CURRENCYDETAILS_01.Currencyqualifier_03 = "9"; cuxLoop.CUX.CURRENCYDETAILS_02 = new C504(); cuxLoop.CUX.CURRENCYDETAILS_02.Currencydetailsqualifier_01 = "3"; cuxLoop.CUX.CURRENCYDETAILS_02.Currencycoded_02 = "EUR"; cuxLoop.CUX.CURRENCYDETAILS_02.Currencyqualifier_03 = "4"; cuxLoop.CUX.Rateofexchange_03 = "1.67"; // Repeating DTM cuxLoop.DTM = new List <DTM>(); // Period on which rate of exchange date is based is the // 1st of August 2002 - 31st of August 2002 var dtmCux = new DTM(); dtmCux.DATETIMEPERIOD_01 = new C507(); dtmCux.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 = "134"; dtmCux.DATETIMEPERIOD_01.Datetimeperiod_02 = "2002080120020831"; dtmCux.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "718"; cuxLoop.DTM.Add(dtmCux); // End CUX Group result.CUXLoop.Add(cuxLoop); // Repeating TDT Groups result.TDTLoop = new List <Loop_TDT_ORDERS>(); // Begin TDT Group var tdtLoop = new Loop_TDT_ORDERS(); // Order requests that the main carriage transport used to deliver the goods is a truck tdtLoop.TDT = new TDT(); tdtLoop.TDT.Transportstagequalifier_01 = "20"; tdtLoop.TDT.MODEOFTRANSPORT_03 = new C220(); tdtLoop.TDT.MODEOFTRANSPORT_03.Modeoftransportcoded_01 = "30"; tdtLoop.TDT.TRANSPORTMEANS_04 = new C228(); tdtLoop.TDT.TRANSPORTMEANS_04.Typeofmeansoftransportidentification_01 = "31"; // End TDT Group result.TDTLoop.Add(tdtLoop); // Repeating TOD Groups result.TODLoop = new List <Loop_TOD_ORDERS>(); // Begin TOD Group var todLoop = new Loop_TOD_ORDERS(); // Terms of delivery are to be Cost, Insurance and Freight todLoop.TOD = new TOD(); todLoop.TOD.Termsofdeliveryortransportfunctioncoded_01 = "3"; todLoop.TOD.TERMSOFDELIVERYORTRANSPORT_03 = new C100(); todLoop.TOD.TERMSOFDELIVERYORTRANSPORT_03.Termsofdeliveryortransportcoded_01 = "CIF"; todLoop.TOD.TERMSOFDELIVERYORTRANSPORT_03.Codelistqualifier_02 = "23"; todLoop.TOD.TERMSOFDELIVERYORTRANSPORT_03.Codelistresponsibleagencycoded_03 = "9"; // Repeating LOC Group todLoop.LOC = new List <LOC>(); // The named port is Brussels var loc = new LOC(); loc.Placelocationqualifier_01 = "1"; loc.LOCATIONIDENTIFICATION_02 = new C517(); loc.LOCATIONIDENTIFICATION_02.Placelocationidentification_01 = "BE-BRU"; todLoop.LOC.Add(loc); // End TOD Group result.TODLoop.Add(todLoop); // Repeating LIN Groups result.LINLoop = new List <Loop_LIN_ORDERS>(); // Begin LIN Group 1 var linLoop1 = new Loop_LIN_ORDERS(); // First product order is identified by GTIN 4000862141404 linLoop1.LIN = new LIN(); linLoop1.LIN.Lineitemnumber_01 = "1"; linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03 = new C212(); linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01 = "4000862141404"; linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRS"; // Repeating PIA linLoop1.PIA = new List <PIA>(); // In addition the buyer’s part number ABC1234 is provided var pia = new PIA(); pia.Productidfunctionqualifier_01 = "1"; pia.ITEMNUMBERIDENTIFICATION_02 = new C212(); pia.ITEMNUMBERIDENTIFICATION_02.Itemnumber_01 = "ABC1234"; pia.ITEMNUMBERIDENTIFICATION_02.Itemnumbertypecoded_02 = "IN"; linLoop1.PIA.Add(pia); // Repeating IMD linLoop1.IMD = new List <IMD>(); // The ordered item is a traded unit var imd = new IMD(); imd.Itemdescriptiontypecoded_01 = "C"; imd.ITEMDESCRIPTION_03 = new C273(); imd.ITEMDESCRIPTION_03.Itemdescriptionidentification_01 = "TU"; imd.ITEMDESCRIPTION_03.Codelistresponsibleagencycoded_03 = "9"; linLoop1.IMD.Add(imd); // Repeating QTY linLoop1.QTY = new List <QTY>(); // Ordered quantity is 48 units var qty = new QTY(); qty.QUANTITYDETAILS_01 = new C186(); qty.QUANTITYDETAILS_01.Quantityqualifier_01 = "21"; qty.QUANTITYDETAILS_01.Quantity_02 = "48"; linLoop1.QTY.Add(qty); // Repeating MOA linLoop1.MOA = new List <MOA>(); // Value of order line is 699.84 Pounds Sterling var moa = new MOA(); moa.MONETARYAMOUNT_01 = new C516(); moa.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "203"; moa.MONETARYAMOUNT_01.Monetaryamount_02 = "699.84"; linLoop1.MOA.Add(moa); // Repeating PRI Groups linLoop1.PRILoop = new List <Loop_PRI_ORDERS>(); // Begin PRI Group var priLoop = new Loop_PRI_ORDERS(); // Fixed net calculation price is 14.58 Pounds Sterling priLoop.PRI = new PRI(); priLoop.PRI.PRICEINFORMATION_01 = new C509(); priLoop.PRI.PRICEINFORMATION_01.Pricequalifier_01 = "AAA"; priLoop.PRI.PRICEINFORMATION_01.Price_02 = "14.58"; priLoop.PRI.PRICEINFORMATION_01.Pricetypecoded_03 = "CT"; priLoop.PRI.PRICEINFORMATION_01.Pricetypequalifier_04 = "AAE"; priLoop.PRI.PRICEINFORMATION_01.Unitpricebasis_05 = "1"; priLoop.PRI.PRICEINFORMATION_01.Measureunitqualifier_06 = "KGM"; // End PRI Group linLoop1.PRILoop.Add(priLoop); // Repeating RFF Groups linLoop1.RFFLoop = new List <Loop_RFF_ORDERS>(); // Begin RFF Group var rffLoopLin = new Loop_RFF_ORDERS(); // Price is taken from the price list AUG93RNG04 rffLoopLin.RFF = new RFF(); rffLoopLin.RFF.REFERENCE_01 = new C506(); rffLoopLin.RFF.REFERENCE_01.Referencequalifier_01 = "PL"; rffLoopLin.RFF.REFERENCE_01.Referencenumber_02 = "AUG93RNG04"; // Repeating DTM rffLoopLin.DTM = new List <DTM>(); // Price list date 1st of August 2002 var dtmRff = new DTM(); dtmRff.DATETIMEPERIOD_01 = new C507(); dtmRff.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 = "171"; dtmRff.DATETIMEPERIOD_01.Datetimeperiod_02 = "20020801"; dtmRff.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102"; rffLoopLin.DTM.Add(dtmRff); // End RFF Group linLoop1.RFFLoop.Add(rffLoopLin); // Repeating PAC Groups linLoop1.PACLoop = new List <Loop_PAC_ORDERS_2>(); // Begin PAC Group var pacLoop = new Loop_PAC_ORDERS_2(); // Two packages (cases) barcoded with ITF14 pacLoop.PAC = new PAC(); pacLoop.PAC.Numberofpackages_01 = "2"; pacLoop.PAC.PACKAGINGDETAILS_02 = new C531(); pacLoop.PAC.PACKAGINGDETAILS_02.Packagingrelatedinformationcoded_02 = "51"; pacLoop.PAC.PACKAGETYPE_03 = new C202(); pacLoop.PAC.PACKAGETYPE_03.Typeofpackagesidentification_01 = "CS"; // Repeating PCI Groups pacLoop.PCILoop = new List <Loop_PCI_ORDERS>(); // Begin PCI Group var pciLoop = new Loop_PCI_ORDERS(); // The expiry date of the product is to be marked on it's packaging pciLoop.PCI = new PCI(); pciLoop.PCI.Markinginstructionscoded_01 = "14"; // End PCI Group pacLoop.PCILoop.Add(pciLoop); // End PAC Group linLoop1.PACLoop.Add(pacLoop); // Repeating LOC Groups linLoop1.LOCLoop = new List <Loop_LOC_ORDERS_2>(); // Begin LOC Group 1 var locLoop1 = new Loop_LOC_ORDERS_2(); // The second place to which the product is to be delivered is identified by GLN 3312345502000 locLoop1.LOC = new LOC(); locLoop1.LOC.Placelocationqualifier_01 = "7"; locLoop1.LOC.LOCATIONIDENTIFICATION_02 = new C517(); locLoop1.LOC.LOCATIONIDENTIFICATION_02.Placelocationidentification_01 = "3312345502000"; locLoop1.LOC.LOCATIONIDENTIFICATION_02.Codelistresponsibleagencycoded_03 = "9"; // The quantity to be delivered at this location is 24 locLoop1.QTY = new QTY(); locLoop1.QTY.QUANTITYDETAILS_01 = new C186(); locLoop1.QTY.QUANTITYDETAILS_01.Quantityqualifier_01 = "11"; locLoop1.QTY.QUANTITYDETAILS_01.Quantity_02 = "24"; // Repeating DTM locLoop1.DTM = new List <DTM>(); // The quantity should be delivered on the 15th of September 2002 var dtmLoc = new DTM(); dtmLoc.DATETIMEPERIOD_01 = new C507(); dtmLoc.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 = "2"; dtmLoc.DATETIMEPERIOD_01.Datetimeperiod_02 = "20020915"; dtmLoc.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102"; locLoop1.DTM.Add(dtmLoc); // End LOC Group 1 linLoop1.LOCLoop.Add(locLoop1); // Begin LOC Group 2 var locLoop2 = new Loop_LOC_ORDERS_2(); // The first place to which the product is to be delivered is identified by GLN 3312345501003 locLoop2.LOC = new LOC(); locLoop2.LOC.Placelocationqualifier_01 = "7"; locLoop2.LOC.LOCATIONIDENTIFICATION_02 = new C517(); locLoop2.LOC.LOCATIONIDENTIFICATION_02.Placelocationidentification_01 = "3312345501003"; locLoop2.LOC.LOCATIONIDENTIFICATION_02.Codelistresponsibleagencycoded_03 = "9"; // The quantity to be delivered at this location is 24 locLoop2.QTY = new QTY(); locLoop2.QTY.QUANTITYDETAILS_01 = new C186(); locLoop2.QTY.QUANTITYDETAILS_01.Quantityqualifier_01 = "11"; locLoop2.QTY.QUANTITYDETAILS_01.Quantity_02 = "24"; // Repeating DTM locLoop2.DTM = new List <DTM>(); // The quantity should be delivered on the 13th of September 2002 var dtmLoc2 = new DTM(); dtmLoc2.DATETIMEPERIOD_01 = new C507(); dtmLoc2.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 = "2"; dtmLoc2.DATETIMEPERIOD_01.Datetimeperiod_02 = "20020913"; dtmLoc2.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102"; locLoop2.DTM.Add(dtmLoc2); // End LOC Group 2 linLoop1.LOCLoop.Add(locLoop2); // Repeating TAX Groups linLoop1.TAXLoop = new List <Loop_TAX_ORDERS>(); // Begin TAX Group var taxLoop = new Loop_TAX_ORDERS(); // The product is subject to the standard VAT rate of 17.5% taxLoop.TAX = new TAX(); taxLoop.TAX.Dutytaxfeefunctionqualifier_01 = "7"; taxLoop.TAX.DUTYTAXFEETYPE_02 = new C241(); taxLoop.TAX.DUTYTAXFEETYPE_02.Dutytaxfeetypecoded_01 = "VAT"; taxLoop.TAX.DUTYTAXFEEDETAIL_05 = new C243(); taxLoop.TAX.DUTYTAXFEEDETAIL_05.Dutytaxfeerate_04 = "17.5"; taxLoop.TAX.Dutytaxfeecategorycoded_06 = "S"; // End TAX Group linLoop1.TAXLoop.Add(taxLoop); // End LIN Group 1 result.LINLoop.Add(linLoop1); // Message detail/summary separator result.UNS = new UNS(); result.UNS.Sectionidentification_01 = "S"; // Repeating CNT result.CNT = new List <CNT>(); // Count of the number of LIN segments in the message var cnt = new CNT(); cnt.CONTROL_01 = new C270(); cnt.CONTROL_01.Controlqualifier_01 = "2"; cnt.CONTROL_01.Controlvalue_02 = "1"; result.CNT.Add(cnt); return(result); }
private void DisplayCharts() { cnvDisplay.Children.Clear(); int width = 0; PathGeometry pathGeometry = new PathGeometry(); pathGeometry.FillRule = FillRule.Nonzero; PathFigure figure = new PathFigure(); figure.StartPoint = new Point(0, 200); figure.IsClosed = false; DateTime dt = vm.DateStart; int lastFuel = 0; for (int d = 0; d < days; d++) { DTM model = _dtm.Where(p => p.DT >= dt && p.DT < dt + TimeSpan.FromDays(1)).FirstOrDefault(); if (model != null) { int DayWidth = 0; //Если есть какие то данные за эти сутки for (int h = 0; h < 24; h++) { model = _dtm.Where(p => p.DT >= dt && p.DT < dt + TimeSpan.FromHours(1)).FirstOrDefault(); if (model != null) { int hourWidth = 0; for (int m = 0; m < 60; m++) { model = _dtm.Where(p => p.DT >= dt && p.DT < dt + TimeSpan.FromMinutes(1)).FirstOrDefault(); if (model != null) { lastFuel = 200 - model.Vol * 2; model.WidthPoint = new Point(width + DayWidth + hourWidth, lastFuel); } else { } hourWidth += 1; LineSegment ls = new LineSegment(); ls.Point = new Point(width + DayWidth + hourWidth, lastFuel); figure.Segments.Add(ls); dt += TimeSpan.FromMinutes(1); } //create timeline Border b = new Border(); b.Background = new SolidColorBrush(Colors.Gray); b.Width = 1; b.Height = 200; cnvDisplay.Children.Add(b); Canvas.SetLeft(b, width + DayWidth); TextBlock text = new TextBlock(); if (h < 10) { text.Text = "0" + h.ToString() + ":00"; } else { text.Text = h.ToString() + ":00"; } text.TextAlignment = TextAlignment.Center; text.Width = hourWidth; cnvDisplay.Children.Add(text); Canvas.SetLeft(text, width + DayWidth); Canvas.SetTop(text, 210); DayWidth += hourWidth; Border b1 = new Border(); b1.Background = new SolidColorBrush(Colors.Gray); b1.Width = 1; b1.Height = 200; cnvDisplay.Children.Add(b1); Canvas.SetLeft(b1, width + DayWidth); } else { TextBlock text = new TextBlock(); if (h < 10) { text.Text = "0" + h.ToString(); } else { text.Text = h.ToString(); } text.Width = 25; cnvDisplay.Children.Add(text); Canvas.SetLeft(text, width + DayWidth); Canvas.SetTop(text, 210); DayWidth += 25; dt += TimeSpan.FromHours(1); LineSegment ls = new LineSegment(); ls.Point = new Point(width + DayWidth, lastFuel); figure.Segments.Add(ls); } } width = DecorateDay(width, dt - TimeSpan.FromDays(1), DayWidth); //width+=DayWidth; } else { //нет данных по дню, рисуем пустой прочерк width = DecorateDay(width, dt, 50); dt += TimeSpan.FromDays(1); LineSegment ls = new LineSegment(); ls.Point = new Point(width, lastFuel); figure.Segments.Add(ls); } } pathGeometry.Figures.Add(figure); Path pth = new Path(); pth.Stroke = new SolidColorBrush(Colors.Blue); pth.StrokeThickness = 2; pth.Data = pathGeometry; cnvDisplay.Children.Add(pth); cnvDisplay.Width = width; Border brdrH1 = new Border { Height = 1, Width = width, Background = new SolidColorBrush(Colors.Gray) }; Border brdrH2 = new Border { Height = 1, Width = width, Background = new SolidColorBrush(Colors.Gray) }; Border brdrH3 = new Border { Height = 1, Width = width, Background = new SolidColorBrush(Colors.Gray) }; Border brdrH4 = new Border { Height = 1, Width = width, Background = new SolidColorBrush(Colors.Gray) }; Border brdrH5 = new Border { Height = 1, Width = width, Background = new SolidColorBrush(Colors.Gray) }; cnvDisplay.Children.Add(brdrH1); cnvDisplay.Children.Add(brdrH2); cnvDisplay.Children.Add(brdrH3); cnvDisplay.Children.Add(brdrH4); cnvDisplay.Children.Add(brdrH5); Canvas.SetTop(brdrH2, 50); Canvas.SetTop(brdrH3, 100); Canvas.SetTop(brdrH4, 150); Canvas.SetTop(brdrH5, 200); //double step = stkFuel.ActualHeight / 100.0f; //int lastVol = 0; //for (int d = 0; d < days; d++) //{ // for (int h = 0; h < 24; h++) // { // for (int m = 0; m < 60; m++) // { // Border b = new Border // { // Width = 1, // VerticalAlignment = System.Windows.VerticalAlignment.Bottom // }; // DTM model = _dtm.Where(p => p.DT >= dt && p.DT < dt + TimeSpan.FromMinutes(1)).FirstOrDefault(); // if (model != null) // { // lastVol = (int)(step * (double)model.Vol); // b.Height = lastVol; // if (b.Height < 1) // b.Height = lastVol = 1; // b.Background = new SolidColorBrush(Colors.Blue); // } // else // { // b.Height = lastVol; // b.Background = new SolidColorBrush(Colors.LightGray); // } // stkFuel.Children.Add(b); // dt += TimeSpan.FromMinutes(1); // } // } //} }
/// <summary> /// Parse the message from EDI_Message and insert into entities. /// </summary> /// <param name="msg_type">Hard coded as "315"</param> /// <param name="msg_body">Message body that needs to be parsed</param> /// <param name="msg_idnum"></param> /// <returns></returns> public bool ParseMessage(string msg_type, string msg_body, int msg_idnum) { bool result = false; #region Initialize Variables string msgType = msg_type; string msgBody = msg_body; int msgIdnum = msg_idnum; string[] msgArr = null; string[] currentRowTemp = null; string[] currentRow = new string[30]; string header = ""; string logMsg = ""; int convertToInt = 0; decimal convertToDecimal = 0; EDI_Messages messages = new EDI_Messages(); Container container = new Container(); #endregion msgBody = Regex.Replace(msg_body, @"^\s+$[\r\n]*", "", RegexOptions.Multiline); msgArr = msgBody.Split(new[] { Environment.NewLine }, StringSplitOptions.None); foreach (string row in msgArr) { string msg; // Clear array before insert new row into array if (currentRowTemp != null) { Array.Clear(currentRowTemp, 0, currentRowTemp.Length); } if (currentRow != null) { Array.Clear(currentRow, 0, currentRow.Length); } // Insert data into dynamically allocated memory array, and // copy to statically allocated memory array. msg = row.Trim(); currentRowTemp = msg.Split(new[] { "*" }, StringSplitOptions.None); Array.Copy(currentRowTemp, 0, currentRow, 0, currentRowTemp.Length); // Begin to parse engine. header = ""; // Check whether the message header is valid or not. if (EDI315_headers.Any(x => x.ToUpper() == currentRow[0])) { header = currentRow[0]; } else { logMsg = util.buildLogMsg("ParseMessage", "Invalid format message."); util.insertLog_text(logMsg); result = false; break; } //Add parsed message into entity lists. if (row != null && row.Length > 0) { convertToInt = 0; convertToDecimal = 0; switch (header) { case "ISA": break; case "GS": break; case "ST": #region ST if (currentRow[1] == "315") { b4 = new B4(); q2 = new Q2(); n9_list = new List <N9>(); r4_list = new List <R4>(); } else { logMsg = util.buildLogMsg("ParseMessage", "ST: Invalid Transaction Set Identifier Code (ST01/143)."); util.insertLog_text(logMsg); } #endregion break; case "B4": #region b4.special_handling_code = currentRow[1]; Int32.TryParse(currentRow[2], out convertToInt); b4.inquiry_request_number = convertToInt; b4.shipment_status_code = currentRow[3]; b4.date = currentRow[4]; b4.status_time = currentRow[5]; b4.status_location = currentRow[6]; b4.equipment_initial = currentRow[7]; b4.equipment_number = currentRow[8]; b4.equipment_status_code = currentRow[9]; b4.equipment_type = currentRow[10]; b4.location_identifier = currentRow[11]; b4.location_qualifier = currentRow[12]; b4.equipment_number_check_digit = currentRow[13]; #endregion break; case "N9": #region N9 N9 n9 = new N9(); n9.reference_identification_qualifier = currentRow[1]; n9.reference_identification = currentRow[2]; n9.free_form_description = currentRow[3]; n9.date = currentRow[4]; n9.time = currentRow[5]; n9.time_code = currentRow[6]; n9_list.Add(n9); #endregion break; case "Q2": #region Q2 q2.vessel_code = currentRow[1]; q2.country_code = currentRow[2]; q2.date = currentRow[3]; q2.scheduled_sailing_date = currentRow[4]; q2.scheduled_discharge_date = currentRow[5]; Int32.TryParse(currentRow[6], out convertToInt); q2.landing_quantity = convertToInt; Decimal.TryParse(currentRow[7], out convertToDecimal); q2.weight = convertToDecimal; q2.weight_qualifier = currentRow[8]; q2.voyage_number = currentRow[9]; q2.reference_identification_qualifier = currentRow[10]; q2.reference_identification = currentRow[11]; q2.vessel_code_qualifier = currentRow[12]; q2.vessel_name = currentRow[13]; Decimal.TryParse(currentRow[7], out convertToDecimal); q2.volume = convertToDecimal; q2.volume_unit_qualifier = currentRow[15]; q2.weight_unit_code = currentRow[16]; #endregion break; case "R4": #region R4 R4 r4 = new R4(); r4.port_terminal_function_code = currentRow[1]; r4.location_qualifier = currentRow[2]; r4.location_identifier = currentRow[3]; r4.port_name = currentRow[4]; r4.country_code = currentRow[5]; r4.state_province_code = currentRow[6]; r4.dtm = new DTM(); r4_list.Add(r4); #endregion break; case "DTM": #region DTM DTM dtm = r4_list.Last().dtm; Int32.TryParse(currentRow[1], out convertToInt); dtm.date_time_qualifier = convertToInt; dtm.date = currentRow[2]; dtm.time = currentRow[3]; dtm.time_code = currentRow[4]; #endregion break; case "SE": #region SE UpdateDB(msg_idnum); #endregion break; case "GE": break; case "IEA": break; default: logMsg = util.buildLogMsg("ParseMessage", "Invalid header"); util.insertLog_text(logMsg); break; } } if (header == "IEA") { result = true; break; } } return(result); }
public void Should_Serialize_yyyyMMddHH() { var date = new DTM(2015, 6, 6, 14); Assert.AreEqual("201506061400", date.Value); date = new DTM(2015, 6, 6, 14, null, null, null, null, 3, 30); Assert.AreEqual("201506061400+0330", date.Value); }
public void Should_Serialize_yyyyMMddHHmm() { var date = new DTM(2015, 8, 3, 9, 22); Assert.AreEqual("201508030922", date.Value); date = new DTM(2015, 8, 3, 9, 22, null, null, null, -2); Assert.AreEqual("201508030922-0200", date.Value); }
/// <summary> /// Builds ship bill notice. /// Original from http://www.bergware.net/bisacwww/857_3060.htm /// </summary> static TS857 BuildShipBillNotice(string controlNumber) { var result = new TS857(); // Transaction 857 // Set control number 12103 result.ST = new ST(); result.ST.TransactionSetIdentifierCode_01 = "857"; result.ST.TransactionSetControlNumber_02 = controlNumber.PadLeft(9, '0'); // Hierarchical structure code 0001 // Original transaction set // Ship date of 01 / 10 / 98 result.BHT = new BHT(); result.BHT.HierarchicalStructureCode_01 = "0001"; result.BHT.TransactionSetPurposeCode_02 = "00"; result.BHT.Date_04 = "980110"; // Repeating HL Loops result.HLLoop = new List <Loop_HL_857>(); // Begin HL Loop 1 var hlLoop1 = new Loop_HL_857(); // Hierarchical level 1 shipment hlLoop1.HL = new HL(); hlLoop1.HL.HierarchicalIDNumber_01 = "1"; hlLoop1.HL.HierarchicalLevelCode_03 = "S"; // Begin G05 Loop 1 hlLoop1.G05Loop = new Loop_G05_857(); // 3 shipped units hlLoop1.G05Loop.G05 = new G05(); hlLoop1.G05Loop.G05.NumberofUnitsShipped_01 = "3"; hlLoop1.G05Loop.G05.UnitorBasisforMeasurementCode_02 = "UN"; // Repeating DTM hlLoop1.G05Loop.DTM = new List <DTM>(); // Ship date of // 01 / 10 / 98 // Century designation of 19 var dtm1 = new DTM(); dtm1.DateTimeQualifier_01 = "011"; dtm1.Date_02 = "980110"; dtm1.DateTimePeriodFormatQualifier_05 = "19"; hlLoop1.G05Loop.DTM.Add(dtm1); // Repeating N1 G05 Loops hlLoop1.G05Loop.N1Loop = new List <Loop_N1_857>(); // Begin N1 G05 Loop 1 var n1Loop1 = new Loop_N1_857(); // Ship from // SAN // 216793X n1Loop1.N1 = new N1(); n1Loop1.N1.EntityIdentifierCode_01 = "SF"; n1Loop1.N1.IdentificationCodeQualifier_03 = "15"; n1Loop1.N1.IdentificationCode_04 = "216793X"; // End N1 G05 Loop 1 hlLoop1.G05Loop.N1Loop.Add(n1Loop1); // Begin N1 G05 Loop 2 var n1Loop2 = new Loop_N1_857(); // Ship to // SAN // 6678157 n1Loop2.N1 = new N1(); n1Loop2.N1.EntityIdentifierCode_01 = "ST"; n1Loop2.N1.IdentificationCodeQualifier_03 = "15"; n1Loop2.N1.IdentificationCode_04 = "6678157"; // End N1 G05 Loop 2 hlLoop1.G05Loop.N1Loop.Add(n1Loop2); // Begin N1 G05 Loop 3 var n1Loop3 = new Loop_N1_857(); // Bill to // SAN // 1135309 n1Loop3.N1 = new N1(); n1Loop3.N1.EntityIdentifierCode_01 = "BT"; n1Loop3.N1.IdentificationCodeQualifier_03 = "15"; n1Loop3.N1.IdentificationCode_04 = "1135309"; // End N1 G05 Loop 3 hlLoop1.G05Loop.N1Loop.Add(n1Loop3); // Begin N1 G05 Loop 4 var n1Loop4 = new Loop_N1_857(); // Vendor // SAN // 2002450 n1Loop4.N1 = new N1(); n1Loop4.N1.EntityIdentifierCode_01 = "VN"; n1Loop4.N1.IdentificationCodeQualifier_03 = "15"; n1Loop4.N1.IdentificationCode_04 = "2002450"; // End N1 G05 Loop 4 hlLoop1.G05Loop.N1Loop.Add(n1Loop4); // End G05 Loop 1 // End HL Loop 1 result.HLLoop.Add(hlLoop1); // Begin HL Loop 2 var hlLoop2 = new Loop_HL_857(); // Hierarchical level 2 order hlLoop2.HL = new HL(); hlLoop2.HL.HierarchicalIDNumber_01 = "2"; hlLoop2.HL.HierarchicalLevelCode_03 = "O"; // Begin TDS Loop hlLoop2.TDSLoop = new Loop_TDS_857(); // Total invoice before discount // is applied is $3,837.50 // Amount subject to Terms // discount is $3,837.50 // Discounted amount due // is $2,187.36 hlLoop2.TDSLoop.TDS = new TDS(); hlLoop2.TDSLoop.TDS.Amount_01 = "383750"; hlLoop2.TDSLoop.TDS.Amount_02 = "383750"; hlLoop2.TDSLoop.TDS.Amount_03 = "218736"; // Purchase order number // 012323456789123 // Purchase order date // of 01 / 06 / 98 hlLoop2.TDSLoop.PRF = new PRF(); hlLoop2.TDSLoop.PRF.PurchaseOrderNumber_01 = "0123456789123"; hlLoop2.TDSLoop.PRF.ChangeOrderSequenceNumber_03 = "980106"; // End TDS Loop // End HL Loop 2 result.HLLoop.Add(hlLoop2); // Begin HL Loop 3 var hlLoop3 = new Loop_HL_857(); // Hierarchical level 3 pack hlLoop3.HL = new HL(); hlLoop3.HL.HierarchicalIDNumber_01 = "3"; hlLoop3.HL.HierarchicalLevelCode_03 = "P"; // Begin LX Loop hlLoop3.LXLoop = new Loop_LX_857(); // Loop start. Mandatory segment hlLoop3.LXLoop.LX = new LX(); hlLoop3.LXLoop.LX.AssignedNumber_01 = "1"; // Repeating MAN hlLoop3.LXLoop.MAN = new List <MAN>(); // UCC/EAN-128 Serial shipping // container code format. // Marks and numbers used to // identify the carton // 00097800006400000012 var man1 = new MAN(); man1.MarksandNumbersQualifier_01 = "GM"; man1.MarksandNumbers_02 = "00097800006400000012"; hlLoop3.LXLoop.MAN.Add(man1); // End LX Loop // End HL Loop 3 result.HLLoop.Add(hlLoop3); // Begin HL Loop 4 var hlLoop4 = new Loop_HL_857(); // Hierarchical level 4 item hlLoop4.HL = new HL(); hlLoop4.HL.HierarchicalIDNumber_01 = "4"; hlLoop4.HL.HierarchicalLevelCode_03 = "I"; // Begin IT1 Loop hlLoop4.IT1Loop = new Loop_IT1_857(); // Line item 1 // Shipped 2 // units // at $8.40 // for each unit // ISBN // 0835201031 hlLoop4.IT1Loop.IT1 = new IT1(); hlLoop4.IT1Loop.IT1.AssignedIdentification_01 = "1"; hlLoop4.IT1Loop.IT1.QuantityInvoiced_02 = "2"; hlLoop4.IT1Loop.IT1.UnitorBasisforMeasurementCode_03 = "UN"; hlLoop4.IT1Loop.IT1.UnitPrice_04 = "8.4"; hlLoop4.IT1Loop.IT1.BasisofUnitPriceCode_05 = "PE"; hlLoop4.IT1Loop.IT1.ProductServiceIDQualifier_06 = "IB"; hlLoop4.IT1Loop.IT1.ProductServiceID_07 = "0835201031"; // Repeating CTP hlLoop4.IT1Loop.CTP = new List <CTP>(); // Suggested list price of // $10.50 // Discount // multiplier of .8 // (100 % -80 % = 20 % discount) var ctp1 = new CTP(); ctp1.PriceIdentifierCode_02 = "SLP"; ctp1.UnitPrice_03 = "10.5"; ctp1.PriceMultiplierQualifier_06 = "DIS"; ctp1.Multiplier_07 = ".8"; hlLoop4.IT1Loop.CTP.Add(ctp1); // End IT1 Loop // End HL Loop 4 result.HLLoop.Add(hlLoop4); // Begin HL Loop 5 var hlLoop5 = new Loop_HL_857(); // Hierarchical level 5 item hlLoop5.HL = new HL(); hlLoop5.HL.HierarchicalIDNumber_01 = "5"; hlLoop5.HL.HierarchicalLevelCode_03 = "I"; // Begin IT1 Loop hlLoop5.IT1Loop = new Loop_IT1_857(); // Line item 2 // Shipped 1 // unit // at $24.00 // per each unit // ISBN // 0835208338 hlLoop5.IT1Loop.IT1 = new IT1(); hlLoop5.IT1Loop.IT1.AssignedIdentification_01 = "2"; hlLoop5.IT1Loop.IT1.QuantityInvoiced_02 = "1"; hlLoop5.IT1Loop.IT1.UnitorBasisforMeasurementCode_03 = "UN"; hlLoop5.IT1Loop.IT1.UnitPrice_04 = "24"; hlLoop5.IT1Loop.IT1.BasisofUnitPriceCode_05 = "PE"; hlLoop5.IT1Loop.IT1.ProductServiceIDQualifier_06 = "IB"; hlLoop5.IT1Loop.IT1.ProductServiceID_07 = "0835208338"; // Repeating CTP hlLoop5.IT1Loop.CTP = new List <CTP>(); // Suggested list price of // $30.00 // Discount // multiplier of .8 // (100 % -80 % = 20 % discount) var ctp2 = new CTP(); ctp2.PriceIdentifierCode_02 = "SLP"; ctp2.UnitPrice_03 = "30"; ctp2.PriceMultiplierQualifier_06 = "DIS"; ctp2.Multiplier_07 = ".8"; hlLoop5.IT1Loop.CTP.Add(ctp2); // End IT1 Loop // End HL Loop 5 result.HLLoop.Add(hlLoop5); return(result); }
public void Should_Serialize_yyyyMMddHHmmss_ss() { var date = new DTM(2000, 3, 1, 11, 11, 2, 40); Assert.AreEqual("20000301111102.04", date.Value); date = new DTM(2000, 3, 1, 11, 11, 2, 240); Assert.AreEqual("20000301111102.24", date.Value); date = new DTM(2000, 3, 1, 11, 11, 2, 40, null, -5); Assert.AreEqual("20000301111102.04-0500", date.Value); date = new DTM(2000, 3, 1, 11, 11, 2, 240, null, -8); Assert.AreEqual("20000301111102.24-0800", date.Value); }
/// <summary> /// Build order response. /// Original from https://www.gs1.org/sites/default/files/docs/eancom/s4/ordrsp.pdf /// </summary> static TSORDRSP BuildOrderResponse(string controlNumber) { var result = new TSORDRSP(); // 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 = "ORDRSP"; result.UNH.MessageIdentifier_02.MessageVersionNumber_02 = "D"; result.UNH.MessageIdentifier_02.MessageReleaseNumber_03 = "96A"; result.UNH.MessageIdentifier_02.ControllingAgencyCoded_04 = "UN"; // Order response number ORSP12856, accepted with proposals for change result.BGM = new BGM(); result.BGM.DOCUMENTMESSAGENAME_01 = new C002(); result.BGM.DOCUMENTMESSAGENAME_01.Documentmessagenamecoded_01 = "231"; result.BGM.Documentmessagenumber_02 = "ORSP12856"; result.BGM.Messagefunctioncoded_03 = "4"; // Repeating DTM result.DTM = new List <DTM>(); // Message date is 30th of March 2002 var dtm1 = new DTM(); dtm1.DATETIMEPERIOD_01 = new C507(); dtm1.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 = "137"; dtm1.DATETIMEPERIOD_01.Datetimeperiod_02 = "20020330"; dtm1.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102"; result.DTM.Add(dtm1); // Repeating RFF Groups result.RFFLoop = new List <Loop_RFF_ORDRSP>(); // Begin RFF Group var rffLoop1 = new Loop_RFF_ORDRSP(); // Message is responding to order number 652744 rffLoop1.RFF = new RFF(); rffLoop1.RFF.REFERENCE_01 = new C506(); rffLoop1.RFF.REFERENCE_01.Referencequalifier_01 = "ON"; rffLoop1.RFF.REFERENCE_01.Referencenumber_02 = "652744"; // Repeating DTM rffLoop1.DTM = new List <DTM>(); // Order date is 25th of March 2002 var dtmRff1 = new DTM(); dtmRff1.DATETIMEPERIOD_01 = new C507(); dtmRff1.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 = "171"; dtmRff1.DATETIMEPERIOD_01.Datetimeperiod_02 = "20020325"; 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_ORDRSP>(); // Begin NAD Group 1 var nadLoop1 = new Loop_NAD_ORDRSP(); // Buyer is identified using GLN 5412345000013 nadLoop1.NAD = new NAD(); nadLoop1.NAD.Partyqualifier_01 = "BY"; nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082(); nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01 = "5412345000013"; nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9"; // Repeating RFF NAD Groups nadLoop1.RFFLoop = new List <Loop_RFF_ORDRSP>(); // Begin RFF NAD Group var rffNadLoop1 = new Loop_RFF_ORDRSP(); // Buyer’s VAT number is 452282 rffNadLoop1.RFF = new RFF(); rffNadLoop1.RFF.REFERENCE_01 = new C506(); rffNadLoop1.RFF.REFERENCE_01.Referencequalifier_01 = "VA"; rffNadLoop1.RFF.REFERENCE_01.Referencenumber_02 = "452282"; // 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_ORDRSP(); // Supplier is identified using 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_ORDRSP>(); // Begin RFF NAD Group var rffNadLoop2 = new Loop_RFF_ORDRSP(); // Supplier’s VAT number is 87765432 rffNadLoop2.RFF = new RFF(); rffNadLoop2.RFF.REFERENCE_01 = new C506(); rffNadLoop2.RFF.REFERENCE_01.Referencequalifier_01 = "VA"; rffNadLoop2.RFF.REFERENCE_01.Referencenumber_02 = "87765432"; // End RFF NAD Group nadLoop2.RFFLoop.Add(rffNadLoop2); // End NAD Group 2 result.NADLoop.Add(nadLoop2); // Repeating LIN Groups result.LINLoop = new List <Loop_LIN_ORDRSP>(); // Begin LIN Group 1 var linLoop1 = new Loop_LIN_ORDRSP(); // First product identified by GTIN 3312345501102 is accepted linLoop1.LIN = new LIN(); linLoop1.LIN.Lineitemnumber_01 = "1"; linLoop1.LIN.Actionrequestnotificationcoded_02 = "5"; linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03 = new C212(); linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01 = "3312345501102"; linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRV"; // End LIN Group 1 result.LINLoop.Add(linLoop1); // Begin LIN Group 2 var linLoop2 = new Loop_LIN_ORDRSP(); // Second product identified by GTIN 3312345501003 is amended linLoop2.LIN = new LIN(); linLoop2.LIN.Lineitemnumber_01 = "2"; linLoop2.LIN.Actionrequestnotificationcoded_02 = "3"; linLoop2.LIN.ITEMNUMBERIDENTIFICATION_03 = new C212(); linLoop2.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01 = "3312345501003"; linLoop2.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRV"; // Repeating PIA linLoop2.PIA = new List <PIA>(); // Supplier’s article number ABC1234 is provided as an additional identification var piaLin1 = new PIA(); piaLin1.Productidfunctionqualifier_01 = "1"; piaLin1.ITEMNUMBERIDENTIFICATION_02 = new C212(); piaLin1.ITEMNUMBERIDENTIFICATION_02.Itemnumber_01 = "ABC1234"; piaLin1.ITEMNUMBERIDENTIFICATION_02.Itemnumbertypecoded_02 = "SA"; linLoop2.PIA.Add(piaLin1); // Repeating IMD linLoop2.IMD = new List <IMD>(); // Product is a traded unit var imdLin1 = new IMD(); imdLin1.Itemdescriptiontypecoded_01 = "C"; imdLin1.ITEMDESCRIPTION_03 = new C273(); imdLin1.ITEMDESCRIPTION_03.Itemdescriptionidentification_01 = "TU"; imdLin1.ITEMDESCRIPTION_03.Codelistresponsibleagencycoded_03 = "9"; linLoop2.IMD.Add(imdLin1); // Repeating QTY linLoop2.QTY = new List <QTY>(); // Ordered quantity is 48 var qtyLin1 = new QTY(); qtyLin1.QUANTITYDETAILS_01 = new C186(); qtyLin1.QUANTITYDETAILS_01.Quantityqualifier_01 = "21"; qtyLin1.QUANTITYDETAILS_01.Quantity_02 = "48"; linLoop2.QTY.Add(qtyLin1); // Repeating DTM linLoop2.DTM = new List <DTM>(); // Date of order is 10th of September 2002 var dtmLin1 = new DTM(); dtmLin1.DATETIMEPERIOD_01 = new C507(); dtmLin1.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 = "2"; dtmLin1.DATETIMEPERIOD_01.Datetimeperiod_02 = "20020910"; dtmLin1.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102"; linLoop2.DTM.Add(dtmLin1); // Repeating MOA linLoop2.MOA = new List <MOA>(); // Value of ordered line is 26400 var moaLin1 = new MOA(); moaLin1.MONETARYAMOUNT_01 = new C516(); moaLin1.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "203"; moaLin1.MONETARYAMOUNT_01.Monetaryamount_02 = "26400"; linLoop2.MOA.Add(moaLin1); // Repeating PRI Groups linLoop2.PRILoop = new List <Loop_PRI_ORDRSP>(); // Begin PRI LIN Group var priLin1 = new Loop_PRI_ORDRSP(); // Net calculation price is 550 priLin1.PRI = new PRI(); priLin1.PRI.PRICEINFORMATION_01 = new C509(); priLin1.PRI.PRICEINFORMATION_01.Pricequalifier_01 = "AAA"; priLin1.PRI.PRICEINFORMATION_01.Price_02 = "550"; priLin1.PRI.PRICEINFORMATION_01.Pricetypecoded_03 = "CT"; priLin1.PRI.PRICEINFORMATION_01.Pricetypequalifier_04 = "AAA"; // End PRI LIN Group linLoop2.PRILoop.Add(priLin1); // Repeating PAC Groups linLoop2.PACLoop = new List <Loop_PAC_ORDRSP_2>(); // Begin PAC LIN Group var pacLin1 = new Loop_PAC_ORDRSP_2(); // Product is packaged in a case pacLin1.PAC = new PAC(); pacLin1.PAC.Numberofpackages_01 = "4"; pacLin1.PAC.PACKAGINGDETAILS_02 = new C531(); pacLin1.PAC.PACKAGINGDETAILS_02.Packaginglevelcoded_01 = "1"; pacLin1.PAC.PACKAGETYPE_03 = new C202(); pacLin1.PAC.PACKAGETYPE_03.Typeofpackagesidentification_01 = "CS"; // End PAC LIN Group linLoop2.PACLoop.Add(pacLin1); // Repeating TAX Groups linLoop2.TAXLoop = new List <Loop_TAX_ORDRSP>(); // Begin TAX LIN Group var taxLin1 = new Loop_TAX_ORDRSP(); // Product is subject to standard VAT rate of 17.5 % 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 = "17.5"; taxLin1.TAX.Dutytaxfeecategorycoded_06 = "S"; // Tax amount for product is 4620 taxLin1.MOA = new MOA(); taxLin1.MOA.MONETARYAMOUNT_01 = new C516(); taxLin1.MOA.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "124"; taxLin1.MOA.MONETARYAMOUNT_01.Monetaryamount_02 = "4620"; // End TAX LIN Group linLoop2.TAXLoop.Add(taxLin1); // Repeating TDT Groups linLoop2.TDTLoop = new List <Loop_TDT_ORDRSP>(); // Begin TDT LIN Group var tdtLin1 = new Loop_TDT_ORDRSP(); // Main carriage transport for the product is a truck tdtLin1.TDT = new TDT(); tdtLin1.TDT.Transportstagequalifier_01 = "20"; tdtLin1.TDT.MODEOFTRANSPORT_03 = new C220(); tdtLin1.TDT.MODEOFTRANSPORT_03.Modeoftransportcoded_01 = "30"; tdtLin1.TDT.CARRIER_05 = new C040(); tdtLin1.TDT.CARRIER_05.Carrieridentification_01 = "31"; // End TDT LIN Group linLoop2.TDTLoop.Add(tdtLin1); // End LIN Group 2 result.LINLoop.Add(linLoop2); // Begin LIN Group 3 var linLoop3 = new Loop_LIN_ORDRSP(); // Third product identified by GTIN 3312345501096 is not accepted linLoop3.LIN = new LIN(); linLoop3.LIN.Lineitemnumber_01 = "3"; linLoop3.LIN.Actionrequestnotificationcoded_02 = "7"; linLoop3.LIN.ITEMNUMBERIDENTIFICATION_03 = new C212(); linLoop3.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01 = "3312345501096"; linLoop3.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRV"; // End LIN Group 3 result.LINLoop.Add(linLoop3); // Message detail/summary separator result.UNS = new UNS(); result.UNS.Sectionidentification_01 = "S"; // Repeating CNT result.CNT = new List <CNT>(); // Count of the number of LIN segments in the message var cnt = new CNT(); cnt.CONTROL_01 = new C270(); cnt.CONTROL_01.Controlqualifier_01 = "2"; cnt.CONTROL_01.Controlvalue_02 = "3"; result.CNT.Add(cnt); return(result); }
public void Should_Serialize_yyyyMMddHHmmss_ssss() { var date = new DTM(2000, 3, 1, 11, 11, 2, 364, 5); Assert.AreEqual("20000301111102.3645", date.Value); date = new DTM(2000, 3, 1, 11, 11, 2, 364, 5, 4); Assert.AreEqual("20000301111102.3645+0400", date.Value); }
/// <summary> /// Builds receiving advice. /// Original from https://ps.extra.chrysler.com/sites/itb-ebus/Documents/861GlobalCoreReturnSystemReceivingAdvice.pdf /// </summary> static TS861 BuildReceivingAdvice(string controlNumber) { var result = new TS861(); // Transaction Set Identifier Code = “861” // (Receiving Advice / Acceptance Certificate) // Transaction Set Control Number = 0002 result.ST = new ST(); result.ST.TransactionSetIdentifierCode_01 = "861"; result.ST.TransactionSetControlNumber_02 = controlNumber.PadLeft(9, '0'); // Reference Identification = C000548241 // Date = 02 / 24 / 2009 // Transaction Set Purpose Code = “00” (Original) // Receiving Advice or Acceptance Certificate // = “3” (Disposition Advice) result.BRA = new BRA(); result.BRA.ReferenceIdentification_01 = "C000548241"; result.BRA.Date_02 = "20090224"; result.BRA.TransactionSetPurposeCode_03 = "00"; result.BRA.ReceivingAdviceorAcceptanceCertificateTypeCode_04 = "3"; // Repeating DTM result.DTM = new List <DTM>(); // Date/Time Qualifier = “050” (Received) // Date = 01 / 02 / 2009 // Time = 8:55 AM // Time Code = “ET” (Eastern Time) var dtm1 = new DTM(); dtm1.DateTimeQualifier_01 = "050"; dtm1.Date_02 = "20090102"; dtm1.Time_03 = "0855"; dtm1.TimeCode_04 = "ET"; result.DTM.Add(dtm1); // Repeating N1 Loops result.N1Loop = new List <Loop_N1_861>(); // Begin N1 Loop var n1Loop1 = new Loop_N1_861(); // Entity Identifier Code // = “SU” (Supplier / Manufacturer) // Identification Code Qualifier // = “92” (Assigned by Buyer or Buyer's Agent) // Identification Code = 43677 n1Loop1.N1 = new N1(); n1Loop1.N1.EntityIdentifierCode_01 = "SU"; n1Loop1.N1.IdentificationCodeQualifier_03 = "92"; n1Loop1.N1.IdentificationCode_04 = "43677"; // End N1 Loop result.N1Loop.Add(n1Loop1); // Repeating RCD Loops result.RCDLoop = new List <Loop_RCD_861>(); // Begin RCD Loop var rcdLoop = new Loop_RCD_861(); // Quantity in Question = 1 // Unit or Basis for Measurement Code // = “EA” (Each) // Receiving Condition Code = 09 rcdLoop.RCD = new RCD(); rcdLoop.RCD.QuantityinQuestion_06 = "1"; rcdLoop.RCD.CompositeUnitofMeasure_07 = new C001(); rcdLoop.RCD.CompositeUnitofMeasure_07.UnitorBasisforMeasurementCode_01 = "EA"; rcdLoop.RCD.ReceivingConditionCode_08 = "09"; // Repeating LIN rcdLoop.LIN = new List <LIN>(); // Product/Service ID Qualifier // = “BP” (Buyer's Part Number) // Product / Service ID = U0070062 var lin1 = new LIN(); lin1.ProductServiceIDQualifier_02 = "BP"; lin1.ProductServiceID_03 = "U0070062"; rcdLoop.LIN.Add(lin1); // Repeating REF rcdLoop.REF = new List <REF>(); // Reference Identification Qualifier // = “ACC” (Status) // Reference Identification = A var ref1 = new REF(); ref1.ReferenceIdentificationQualifier_01 = "ACC"; ref1.ReferenceIdentification_02 = "A"; rcdLoop.REF.Add(ref1); // Repeating DTM rcdLoop.DTM = new List <DTM>(); // Date/Time Qualifier = “945” (Activity) // Date = 01 / 02 / 2009 // Time = 8:55 AM // Time Code = “ET” (Eastern Time) var dtm2 = new DTM(); dtm2.DateTimeQualifier_01 = "945"; dtm2.Date_02 = "20090102"; dtm2.Time_03 = "0855"; dtm2.TimeCode_04 = "ET"; rcdLoop.DTM.Add(dtm2); // End RCD Loop result.RCDLoop.Add(rcdLoop); return(result); }
/// <summary> Creates a TS.</summary> /// <param name="message">the Message to which this Type belongs /// </param> public TS(Message message):base(message) { data = new Type[2]; data[0] = new DTM(message); data[1] = new ID(message, 529); }
/// <summary> /// Builds Purchase Orders Acknowledgement. /// Original from http://www.jobisez.com/edi/tp/guide.aspx?doc=/edi-igs/Kohls/edi_855.pdf /// </summary> static TS855 BuildPurchaseOrdersAcknowledgement(string controlNumber) { var result = new TS855(); // 855 is the Transaction Set Identifier Code for the Purchase Orders Acknowledgement // 0001 is the Transaction Set Control Number result.ST = new ST(); result.ST.TransactionSetIdentifierCode_01 = "855"; result.ST.TransactionSetControlNumber_02 = controlNumber.PadLeft(9, '0'); // Purchase Order Number 1234567 // Purchase Order Date 01 / 02 / 05 result.BAK = new BAK(); result.BAK.TransactionSetPurposeCode_01 = "16"; result.BAK.AcknowledgmentType_02 = "AP"; result.BAK.PurchaseOrderNumber_03 = "1234567"; result.BAK.Date_04 = "20050102"; // Repeating DTM result.DTM = new List <DTM>(); // Scheduled Ship Date 02 / 03 / 05 var dtm1 = new DTM(); dtm1.DateTimeQualifier_01 = "068"; dtm1.Date_02 = "20050203"; result.DTM.Add(dtm1); // Repeating N1 Loops result.N1Loop = new List <Loop_N1_855>(); // Begin N1 Loop 1 var n1Loop1 = new Loop_N1_855(); // Vendor Name XYZ MANUFACTURING CO // Vendor DUNS 987654321 n1Loop1.N1 = new N1(); n1Loop1.N1.EntityIdentifierCode_01 = "SF"; n1Loop1.N1.Name_02 = "XYZ MANUFACTURING CO"; n1Loop1.N1.IdentificationCodeQualifier_03 = "01"; n1Loop1.N1.IdentificationCode_04 = "987654321"; // End N1 Loop 1 result.N1Loop.Add(n1Loop1); // Begin N1 Loop 2 var n1Loop2 = new Loop_N1_855(); // Ship to Distribution Center 0085 in Menomonee Falls WI n1Loop2.N1 = new N1(); n1Loop2.N1.EntityIdentifierCode_01 = "ST"; n1Loop2.N1.Name_02 = "KOHLS DEPARTMENT STORES"; n1Loop2.N1.IdentificationCodeQualifier_03 = "92"; n1Loop2.N1.IdentificationCode_04 = "0085"; // End N1 Loop 2 result.N1Loop.Add(n1Loop2); // Repeating PO1 Loops result.PO1Loop = new List <Loop_PO1_855>(); // Begin PO1 Loop 1 var po1Loop1 = new Loop_PO1_855(); // UPC 1-23456-78901-2 // Quantity Ordered 3(Each) // Kohl’s SKU NONE // Vendor Style BLU89Z012 // NRMA Color Code(CM) 123 // Vendor Color(VE) BLUESKY // NRMA Size Code(SM) 12345 // Vendor Size(SZ) W32XL34 po1Loop1.PO1 = new PO1(); po1Loop1.PO1.AssignedIdentification_01 = "000001"; po1Loop1.PO1.QuantityOrdered_02 = "3"; po1Loop1.PO1.UnitorBasisforMeasurementCode_03 = "EA"; po1Loop1.PO1.ProductServiceIDQualifier_06 = "UP"; po1Loop1.PO1.ProductServiceID_07 = "123456789012"; po1Loop1.PO1.ProductServiceIDQualifier_08 = "VA"; po1Loop1.PO1.ProductServiceID_09 = "BLU89Z012"; po1Loop1.PO1.ProductServiceIDQualifier_10 = "CM"; po1Loop1.PO1.ProductServiceID_11 = "123"; po1Loop1.PO1.ProductServiceIDQualifier_12 = "SM"; po1Loop1.PO1.ProductServiceID_13 = "12345"; // End PO1 Loop 1 result.PO1Loop.Add(po1Loop1); // Begin PO1 Loop 2 var po1Loop2 = new Loop_PO1_855(); // UPC 1-23456-79812-3 // Quantity Ordered 5(Each) // Kohl’s SKU NONE // Vendor Style BLK98A023 // NRMA Color Code(CM) 321 // Vendor Color(VE) BLACK - COAL // NRMA Size Code(SM) 12345 // Vendor Size(SZ) W32XL34 po1Loop2.PO1 = new PO1(); po1Loop2.PO1.AssignedIdentification_01 = "000002"; po1Loop2.PO1.QuantityOrdered_02 = "5"; po1Loop2.PO1.UnitorBasisforMeasurementCode_03 = "EA"; po1Loop2.PO1.ProductServiceIDQualifier_06 = "UP"; po1Loop2.PO1.ProductServiceID_07 = "123456798123"; po1Loop2.PO1.ProductServiceIDQualifier_08 = "VA"; po1Loop2.PO1.ProductServiceID_09 = "BLK98A023"; po1Loop2.PO1.ProductServiceIDQualifier_10 = "CM"; po1Loop2.PO1.ProductServiceID_11 = "321"; po1Loop2.PO1.ProductServiceIDQualifier_12 = "SM"; po1Loop2.PO1.ProductServiceID_13 = "12345"; // End PO1 Loop 2 result.PO1Loop.Add(po1Loop2); // Begin PO1 Loop 3 var po1Loop3 = new Loop_PO1_855(); // UPC 9-99988-88800-1 // Quantity Ordered 1(Each) // Kohl’s SKU NONE // Vendor Style 981RACK // NRMA Color Code(CM) NONE // Vendor Color(VE) NONE // NRMA Size Code(SM) NONE // Vendor Size(SZ) NONE po1Loop3.PO1 = new PO1(); po1Loop3.PO1.AssignedIdentification_01 = "000003"; po1Loop3.PO1.QuantityOrdered_02 = "1"; po1Loop3.PO1.UnitorBasisforMeasurementCode_03 = "EA"; po1Loop3.PO1.ProductServiceIDQualifier_06 = "UP"; po1Loop3.PO1.ProductServiceID_07 = "999988888001"; po1Loop3.PO1.ProductServiceIDQualifier_08 = "VA"; po1Loop3.PO1.ProductServiceID_09 = "981RACK"; // End PO1 Loop 3 result.PO1Loop.Add(po1Loop3); // 3 is the Number of Items result.CTTLoop = new Loop_CTT_855(); result.CTTLoop.CTT = new CTT(); result.CTTLoop.CTT.NumberofLineItems_01 = "3"; return(result); }