private static void WriteLenovoAsn(TSDESADV asn, FieldWriter writer) { writer.WL("MessageReferenceNumber_01", asn.UNH.MessageReferenceNumber_01); foreach (var dtm in asn.DTM) { writer.WL(MapLenovoDate.TryGetValue(dtm.DATETIMEPERIOD_01.Datetimeperiodqualifier_01, out var d) ? d : dtm.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 + " search here http://www.stylusstudio.com/edifact/D97A/2380.htm" , dtm.DATETIMEPERIOD_01.Datetimeperiod_02); } foreach (var rff in asn.RFFLoop) { writer.WL( MapLenovoRff.TryGetValue(rff.RFF.REFERENCE_01.Referencequalifier_01, out var rffn) ? rffn : rff.RFF.REFERENCE_01.Referencequalifier_01 + " search here http://www.stylusstudio.com/edifact/D97A/1153.htm" , rff.RFF.REFERENCE_01.Referencenumber_02); } foreach (var nad in asn.NADLoop) { writer.WL(MapLenovoParty.TryGetValue(nad.NAD.Partyqualifier_01, out var d) ? d : nad.NAD.Partyqualifier_01 + " search here http://www.stylusstudio.com/edifact/D97A/2380.htm" , nad.NAD.PARTYNAME_04.Partyname_01); } foreach (var csp in asn.CPSLoop) { foreach (var pac in csp.PACLoop) { foreach (var pci in pac.PCILoop) { writer.WL("MARKS & LABELS", pci.PCI.MARKSLABELS_02.Shippingmarks_01); } } writer.WL("------ lines -----", ""); foreach (var lin in csp.LINLoop) { writer.WL("Lineitemnumber_01", lin.LIN.Lineitemnumber_01); writer.WL("item type", lin.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01); foreach (var qty in lin.QTY) { writer.WL("despatch quantity", qty.QUANTITYDETAILS_01.Quantity_02); } foreach (var loc in lin.LOCLoop) { writer.WL("LOCATION IDENTIFICATION/place location", loc.LOC.LOCATIONIDENTIFICATION_02.Placelocation_04); } foreach (var pci in lin.PCILoop) { if (pci.PCI.MARKSLABELS_02 != null) { writer.WL("MARKS & LABELS", pci.PCI.MARKSLABELS_02.Shippingmarks_01); } } } } }
private static void BuildDesadvData(InventoryRecoBuilder builder, TSDESADV item) { foreach (var cps in item.CPSLoop) { var loc = cps .LINLoop.FirstOrDefault()? .LOCLoop.FirstOrDefault()?.LOC?.LOCATIONIDENTIFICATION_02 ?.Placelocation_04?.Split(' '); var plant = loc != null && loc.Length > 0 ? loc[0] : null; var location = loc != null && loc.Length > 1 ? loc[1] : null; foreach (var lin in cps.LINLoop) { builder.WithMaterial(lin.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01, plant, location ?? "CA01", lin.QTY.Sum(q => Convert.ToInt32(q.QUANTITYDETAILS_01.Quantity_02))); } } }
public static TSDESADV BuildDespatchAdvice(string controlNumber, TSORDERS adv, IEnumerable <string> serialNumbers) { var serialNumberQueue = new Queue <string>(serialNumbers); var result = new TSDESADV(); result.UNH = new UNH(); result.UNH.MessageReferenceNumber_01 = controlNumber.PadLeft(14, '0'); result.UNH.MessageIdentifier_02 = new S009(); result.UNH.MessageIdentifier_02.MessageType_01 = "DESADV"; result.UNH.MessageIdentifier_02.MessageVersionNumber_02 = "D"; result.UNH.MessageIdentifier_02.MessageReleaseNumber_03 = "97A"; result.UNH.MessageIdentifier_02.ControllingAgencyCoded_04 = "UN"; result.BGM = new BGM(); result.BGM.DOCUMENTMESSAGENAME_01 = new C002(); result.BGM.DOCUMENTMESSAGENAME_01.Documentmessagenamecoded_01 = "631"; result.BGM.Messagefunctioncoded_03 = "6"; result.RFFLoop = new List <Loop_RFF_DESADV> { new Loop_RFF_DESADV { RFF = new RFF { REFERENCE_01 = new C506 { Referencequalifier_01 = "ALQ", Referencenumber_02 = adv.RFFLoop .First(r => r.RFF.REFERENCE_01.Referencequalifier_01 == "AAJ") .RFF.REFERENCE_01.Referencenumber_02 } }, DTM = new DTM { DATETIMEPERIOD_01 = new C507 { Datetimeperiodqualifier_01 = "3", Datetimeperiod_02 = DateTime.Now.Date.ToString("yyyyMMdd") } } }, }; var loc = adv.FTX?.FirstOrDefault()?.TEXTLITERAL_04?.Freetext_01?.Split(';'); var plant = (loc != null && loc.Length >= 2) ? loc[1] : null; var location = (loc != null && loc.Length >= 2) ? loc[0] : null; result.NADLoop = new List <Loop_NAD_DESADV> { new Loop_NAD_DESADV { NAD = new NAD { Partyqualifier_01 = "WH", PARTYIDENTIFICATIONDETAILS_02 = new C082 { Partyididentification_01 = "recon group" //TODO: what is a correct one? } }, LOC = new List <LOC> { new LOC { Placelocationqualifier_01 = "4", LOCATIONIDENTIFICATION_02 = new C517 { Placelocation_04 = plant, Placelocationidentification_01 = location } } } } }; result.CPSLoop = new List <Loop_CPS_DESADV> { new Loop_CPS_DESADV { CPS = new CPS { Hierarchicalidnumber_01 = "1", // Packaginglevelcoded_03 = "1" }, LINLoop = adv.LINLoop.Select(ln => new Loop_LIN_DESADV { LIN = new LIN { Lineitemnumber_01 = ln.LIN.Lineitemnumber_01, ITEMNUMBERIDENTIFICATION_03 = new C212 { Itemnumber_01 = ln.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01, Itemnumbertypecoded_02 = "VN" } }, QTY = ln.QTY.Select(q => new QTY { QUANTITYDETAILS_01 = new C186 { Quantityqualifier_01 = "21", Quantity_02 = q.QUANTITYDETAILS_01.Quantity_02, Measureunitqualifier_03 = "12" } }).ToList(), ALI = new List <ALI> { new ALI { Countryoforigincoded_01 = "US" } }, GIN = new List <GIN> { new GIN { Identitynumberqualifier_01 = "ML", IDENTITYNUMBERRANGE_02 = new C208 { Identitynumber_01 = "DUMMYPALLETID" } }, }, /* LOCLoop = ln.LOCLoop?.Select(lc => new Loop_LOC_DESADV_2 * { * LOC = new LOC * { * Placelocationqualifier_01 = "4", * LOCATIONIDENTIFICATION_02 = new C517 * { * Placelocation_04 = plant, * Placelocationidentification_01 = * string.IsNullOrEmpty(lc.LOC?.LOCATIONIDENTIFICATION_02?.Placelocation_04) * ? location * : lc.LOC.LOCATIONIDENTIFICATION_02.Placelocation_04 * } * } * }).ToList(),*/ PCILoop = Enumerable.Range(1, ln.QTY.Sum(q => Convert.ToInt32( q.QUANTITYDETAILS_01.Quantity_02)) ).Select(i => new Loop_PCI_DESADV_2 { PCI = new PCI { Markinginstructionscoded_01 = "ZZZ", MARKSLABELS_02 = new C210 { Shippingmarks_01 = serialNumberQueue.Dequeue() } } }).ToList() } ).ToList() } }; return(result); }
public static TSDESADV BuildDespatchAdvice(string controlNumber, TSDESADV adv) { var result = new TSDESADV(); result.UNH = new UNH(); result.UNH.MessageReferenceNumber_01 = controlNumber.PadLeft(14, '0'); result.UNH.MessageIdentifier_02 = new S009(); result.UNH.MessageIdentifier_02.MessageType_01 = "DESADV"; result.UNH.MessageIdentifier_02.MessageVersionNumber_02 = "D"; result.UNH.MessageIdentifier_02.MessageReleaseNumber_03 = "97A"; result.UNH.MessageIdentifier_02.ControllingAgencyCoded_04 = "UN"; result.BGM = new BGM(); result.BGM.DOCUMENTMESSAGENAME_01 = new C002(); result.BGM.DOCUMENTMESSAGENAME_01.Documentmessagenamecoded_01 = "631"; result.BGM.Messagefunctioncoded_03 = "6"; result.RFFLoop = new List <Loop_RFF_DESADV> { new Loop_RFF_DESADV { RFF = new RFF { REFERENCE_01 = new C506 { Referencequalifier_01 = "ON", Referencenumber_02 = adv.RFFLoop .First(r => r.RFF.REFERENCE_01.Referencequalifier_01 == "ON") .RFF.REFERENCE_01.Referencenumber_02 } }, DTM = new DTM { DATETIMEPERIOD_01 = new C507 { Datetimeperiodqualifier_01 = "3", Datetimeperiod_02 = DateTime.Now.Date.ToString("yyyyMMdd") } } }, /*new Loop_RFF_DESADV * { * RFF = new RFF * { * REFERENCE_01 = new C506 * { * Referencequalifier_01 = "ALQ", * Referencenumber_02 = "7514553241" * } * } * },*///TODO where is "ALQ" Return Delivery number /*new Loop_RFF_DESADV * { * RFF = new RFF * { * REFERENCE_01 = new C506 * { * Referencequalifier_01 = "AMU", * Referencenumber_02 = "7514553241" * } * } * }*///TODO where is 'AMU' Integrated logistic support cross reference number }; var loc = adv.CPSLoop.FirstOrDefault()? .LINLoop.FirstOrDefault()? .LOCLoop.FirstOrDefault()?.LOC?.LOCATIONIDENTIFICATION_02 ?.Placelocation_04?.Split(' '); var plant = loc != null && loc.Length > 0 ? loc[0] : null; var location = loc != null && loc.Length > 1 ? loc[1] : null; result.NADLoop = new List <Loop_NAD_DESADV> { new Loop_NAD_DESADV { NAD = new NAD { Partyqualifier_01 = "WH", PARTYIDENTIFICATIONDETAILS_02 = new C082 { Partyididentification_01 = "recon group" //TODO: what is a correct one? } }, LOC = new List <LOC> { new LOC { Placelocationqualifier_01 = "4", LOCATIONIDENTIFICATION_02 = plant == null ? null : new C517 { Placelocation_04 = plant, Placelocationidentification_01 = location ?? "CA01" // TODO Warning, should be mapped from condition } } } } }; result.CPSLoop = adv.CPSLoop.Select( cps => new Loop_CPS_DESADV { CPS = new CPS { Hierarchicalidnumber_01 = "1", // Packaginglevelcoded_03 = "1" }, LINLoop = cps.LINLoop.Select(ln => new Loop_LIN_DESADV { LIN = new LIN { Lineitemnumber_01 = ln.LIN.Lineitemnumber_01, ITEMNUMBERIDENTIFICATION_03 = new C212 { Itemnumber_01 = ln.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01, Itemnumbertypecoded_02 = "VN" } }, QTY = ln.QTY.Select(q => new QTY { QUANTITYDETAILS_01 = new C186 { Quantityqualifier_01 = "21", Quantity_02 = q.QUANTITYDETAILS_01.Quantity_02, Measureunitqualifier_03 = "12" } }).ToList(), ALI = new List <ALI> { new ALI { Countryoforigincoded_01 = "US" } }, GIN = new List <GIN> { new GIN { Identitynumberqualifier_01 = "ML", IDENTITYNUMBERRANGE_02 = new C208 { Identitynumber_01 = "DUMMYPALLETID" } }, }, /* LOCLoop = ln.LOCLoop?.Select(lc => new Loop_LOC_DESADV_2 * { * LOC = new LOC * { * LOCATIONIDENTIFICATION_02 = new C517 * { * Placelocation_04 = lc.LOC.LOCATIONIDENTIFICATION_02.Placelocation_04 * } * } * }).ToList(),*/ PCILoop = ln.PCILoop .Where(pci => pci.PCI?.MARKSLABELS_02 != null) .Select(pci => new Loop_PCI_DESADV_2 { PCI = new PCI { Markinginstructionscoded_01 = "ZZZ", MARKSLABELS_02 = new C210 { Shippingmarks_01 = pci.PCI.MARKSLABELS_02.Shippingmarks_01 } } }).ToList() } ).ToList() } ).ToList(); return(result); }
public static async Task <TSDESADV> BuildDespatchAdvice(string controlNumber, TSORDERS ord, IEnumerable <string> serialNumbers) { var serialNumberQueue = new Queue <string>(serialNumbers); var result = new TSDESADV(); result.UNH = new UNH(); result.UNH.MessageReferenceNumber_01 = controlNumber.PadLeft(14, '0'); result.UNH.MessageIdentifier_02 = new S009(); result.UNH.MessageIdentifier_02.MessageType_01 = "DESADV"; result.UNH.MessageIdentifier_02.MessageVersionNumber_02 = "D"; result.UNH.MessageIdentifier_02.MessageReleaseNumber_03 = "97A"; result.UNH.MessageIdentifier_02.ControllingAgencyCoded_04 = "UN"; result.BGM = new BGM { DOCUMENTMESSAGENAME_01 = new C002 { Documentmessagenamecoded_01 = "630" }, DOCUMENTMESSAGEIDENTIFICATION_02 = new C106 { Documentmessagenumber_01 = RandomStringGenerator.RandomString(10) },//BOL here Messagefunctioncoded_03 = "8" }; result.DTM = new List <DTM> { new DTM { DATETIMEPERIOD_01 = new C507 { Datetimeperiodqualifier_01 = "111", Datetimeperiod_02 = DateTime.UtcNow.ToString("yyMMddHHmmss"), Datetimeperiodformatqualifier_03 = "202" } } }; var orderMaterialNumbers = ord.LINLoop.Select( ln => ln.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01 ) .Distinct() .ToArray(); var loc = ord.FTX?.FirstOrDefault()?.TEXTLITERAL_04?.Freetext_01?.Split(';'); var plant = (loc != null && loc.Length >= 2) ? loc[1] : null; var location = (loc != null && loc.Length >= 2) ? loc[0] : null; var materials = await LenovoApi.LenovoCatalogClient.GetLenovoMaterials( orderMaterialNumbers, plant); if (materials.Count != orderMaterialNumbers.Length) { throw new Exception("Materials not found"); } var weight = ord.LINLoop.Sum(ln => { var material = materials[ln.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01]; var qty = ln.QTY.Sum(q => Convert.ToInt32(q.QUANTITYDETAILS_01.Quantity_02)); return(material.material.grossWeight * qty); }); materials.Sum(m => m.Value.material.grossWeight); var weightUnit = materials .Select(m => m.Value.material.weightUnit) .Distinct() .ToArray(); if (weightUnit.Length > 1) { throw new Exception("Different weight unit"); } var volume = ord.LINLoop.Sum(ln => { var material = materials[ln.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01]; var qty = ln.QTY.Sum(q => Convert.ToInt32(q.QUANTITYDETAILS_01.Quantity_02)); return(material.material.volume * qty); }); var volumeUnit = materials .Select(m => m.Value.material.volumeUnit) .Distinct() .ToArray(); if (volumeUnit.Length > 1) { throw new Exception("Different volume unit"); } result.MEA = new List <MEA> { new MEA { Measurementpurposequalifier_01 = "AAI", MEASUREMENTDETAILS_02 = new C502 { Propertymeasuredcoded_01 = "AAD" }, VALUERANGE_03 = new C174 { Measurementvalue_02 = weight.ToString(), Measureunitqualifier_01 = weightUnit[0] } }, new MEA { Measurementpurposequalifier_01 = "VOL", MEASUREMENTDETAILS_02 = new C502 { Propertymeasuredcoded_01 = "AAW" }, VALUERANGE_03 = new C174 { Measurementvalue_02 = volume.ToString(), Measureunitqualifier_01 = volumeUnit[0] } } }; result.RFFLoop = new List <Loop_RFF_DESADV> { new Loop_RFF_DESADV { RFF = new RFF { REFERENCE_01 = new C506 { Referencequalifier_01 = "SI", Referencenumber_02 = "CMV" + RandomStringGenerator.RandomString(7) } } }, new Loop_RFF_DESADV { RFF = new RFF { REFERENCE_01 = new C506 { Referencequalifier_01 = "AAQ", Referencenumber_02 = "TRL" + RandomStringGenerator.RandomString(7) } } }, new Loop_RFF_DESADV { RFF = new RFF { REFERENCE_01 = new C506 { Referencequalifier_01 = "ZZZ", Referencenumber_02 = "1" } } } }; result.CPSLoop = new List <Loop_CPS_DESADV> { new Loop_CPS_DESADV { CPS = new CPS { Hierarchicalidnumber_01 = "1" }, PACLoop = new List <Loop_PAC_DESADV> { new Loop_PAC_DESADV { PAC = new PAC { Numberofpackages_01 = "1" }, MEA = new List <MEA> { new MEA { Measurementpurposequalifier_01 = "AAI", MEASUREMENTDETAILS_02 = new C502 { Propertymeasuredcoded_01 = "AAD" }, VALUERANGE_03 = new C174 { Measurementvalue_02 = weight.ToString(), Measureunitqualifier_01 = weightUnit[0] } }, new MEA { Measurementpurposequalifier_01 = "VOL", MEASUREMENTDETAILS_02 = new C502 { Propertymeasuredcoded_01 = "AAW" }, VALUERANGE_03 = new C174 { Measurementvalue_02 = volume.ToString(), Measureunitqualifier_01 = volumeUnit[0] } } }, PCILoop = new List <Loop_PCI_DESADV> { new Loop_PCI_DESADV { PCI = new PCI { Markinginstructionscoded_01 = "ZZZ" }, RFF = new RFF { REFERENCE_01 = new C506 { Referencequalifier_01 = "ACH", Referencenumber_02 = RandomStringGenerator.RandomString(15) } } } } } }, LINLoop = ord.LINLoop.Select(ln => { return(new Loop_LIN_DESADV { LIN = new LIN { Lineitemnumber_01 = ln.LIN.Lineitemnumber_01, ITEMNUMBERIDENTIFICATION_03 = new C212 { Itemnumber_01 = ln.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01, Itemnumbertypecoded_02 = "VN" } }, QTY = ln.QTY.Select(q => new QTY { QUANTITYDETAILS_01 = new C186 { Quantityqualifier_01 = "12", Quantity_02 = q.QUANTITYDETAILS_01.Quantity_02 } }).ToList(), ALI = new List <ALI> { new ALI { Countryoforigincoded_01 = "US" } }, RFFLoop = new List <Loop_RFF_DESADV_2> { new Loop_RFF_DESADV_2 { RFF = new RFF { REFERENCE_01 = new C506 { Referencequalifier_01 = "AAJ", Referencenumber_02 = ord.RFFLoop.FirstOrDefault(r => r.RFF.REFERENCE_01.Referencequalifier_01 == "AAJ")?.RFF.REFERENCE_01 .Referencenumber_02 } } }, new Loop_RFF_DESADV_2 { RFF = new RFF { REFERENCE_01 = new C506 { Referencequalifier_01 = "ZZZ", Referencenumber_02 = ord.UNH.MessageReferenceNumber_01 } } } }, PCILoop = Enumerable.Range(1, ln.QTY.Sum(q => Convert.ToInt32( q.QUANTITYDETAILS_01.Quantity_02)) ).Select(i => new Loop_PCI_DESADV_2 { PCI = new PCI { Markinginstructionscoded_01 = "ZZZ", MARKSLABELS_02 = new C210 { Shippingmarks_01 = serialNumberQueue.Dequeue() } } }).ToList() }); }).ToList() } }; return(result); }
/// <summary> /// Build despatch advice. /// Original from https://www.gs1.org/sites/default/files/docs/eancom/s3/desadv.pdf /// </summary> static TSDESADV BuildDespatchAdvice(string controlNumber) { var result = new TSDESADV(); // Message header result.UNH = new UNH(); result.UNH.MessageReferenceNumber_01 = controlNumber.PadLeft(14, '0'); result.UNH.MessageIdentifier_02 = new S009(); result.UNH.MessageIdentifier_02.MessageType_01 = "DESADV"; result.UNH.MessageIdentifier_02.MessageVersionNumber_02 = "D"; result.UNH.MessageIdentifier_02.MessageReleaseNumber_03 = "96A"; result.UNH.MessageIdentifier_02.ControllingAgencyCoded_04 = "UN"; // Despatch advice number DES587441 result.BGM = new BGM(); result.BGM.DOCUMENTMESSAGENAME_01 = new C002(); result.BGM.DOCUMENTMESSAGENAME_01.Documentmessagenamecoded_01 = "351"; result.BGM.Documentmessagenumber_02 = "DES587441"; result.BGM.Messagefunctioncoded_03 = "9"; // Repeating DTM result.DTM = new List <DTM>(); // Message date 1st April 2002 var dtm1 = new DTM(); dtm1.DATETIMEPERIOD_01 = new C507(); dtm1.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 = "137"; dtm1.DATETIMEPERIOD_01.Datetimeperiod_02 = "20020401"; dtm1.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102"; result.DTM.Add(dtm1); // Despatch date 3rd April 2002 var dtm2 = new DTM(); dtm2.DATETIMEPERIOD_01 = new C507(); dtm2.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 = "11"; dtm2.DATETIMEPERIOD_01.Datetimeperiod_02 = "20020403"; dtm2.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102"; result.DTM.Add(dtm2); // Due date to arrive on or after the 3rd of April var dtm3 = new DTM(); dtm3.DATETIMEPERIOD_01 = new C507(); dtm3.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 = "358"; dtm3.DATETIMEPERIOD_01.Datetimeperiod_02 = "20020403"; dtm3.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102"; result.DTM.Add(dtm3); // Repeating RFF Groups result.RFFLoop = new List <Loop_RFF_DESADV>(); // Begin RFF Group var rffLoop1 = new Loop_RFF_DESADV(); // Consignment is related to order number 12332 rffLoop1.RFF = new RFF(); rffLoop1.RFF.REFERENCE_01 = new C506(); rffLoop1.RFF.REFERENCE_01.Referencequalifier_01 = "ON"; rffLoop1.RFF.REFERENCE_01.Referencenumber_02 = "12332"; // Date of order 25th of March 2002 rffLoop1.DTM = new DTM(); rffLoop1.DTM.DATETIMEPERIOD_01 = new C507(); rffLoop1.DTM.DATETIMEPERIOD_01.Datetimeperiodqualifier_01 = "171"; rffLoop1.DTM.DATETIMEPERIOD_01.Datetimeperiod_02 = "20020325"; rffLoop1.DTM.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102"; // End RFF Group result.RFFLoop.Add(rffLoop1); // Repeating NAD Groups result.NADLoop = new List <Loop_NAD_DESADV>(); // Begin NAD Group 1 var nadLoop1 = new Loop_NAD_DESADV(); // Supplier identified by GLN 5411234512309 nadLoop1.NAD = new NAD(); nadLoop1.NAD.Partyqualifier_01 = "SU"; nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082(); nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01 = "5411234512309"; nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9"; // Repeating RFF Groups nadLoop1.RFFLoop = new List <Loop_RFF_DESADV>(); // Begin RFF Group 1 var rffNadLoop1 = new Loop_RFF_DESADV(); // Supplier's VAT number 6558774 rffNadLoop1.RFF = new RFF(); rffNadLoop1.RFF.REFERENCE_01 = new C506(); rffNadLoop1.RFF.REFERENCE_01.Referencequalifier_01 = "VA"; rffNadLoop1.RFF.REFERENCE_01.Referencenumber_02 = "6558774"; // End RFF Group 1 nadLoop1.RFFLoop.Add(rffNadLoop1); // End NAD Group 1 result.NADLoop.Add(nadLoop1); // Begin NAD Group 2 var nadLoop2 = new Loop_NAD_DESADV(); // Buyer identified by GLN 5412345000013 nadLoop2.NAD = new NAD(); nadLoop2.NAD.Partyqualifier_01 = "BY"; nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082(); nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01 = "5412345000013"; nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9"; // Repeating RFF Groups nadLoop2.RFFLoop = new List <Loop_RFF_DESADV>(); // Begin RFF Group 1 var rffNadLoop2 = new Loop_RFF_DESADV(); // Buyer's VAT number 7002474 rffNadLoop2.RFF = new RFF(); rffNadLoop2.RFF.REFERENCE_01 = new C506(); rffNadLoop2.RFF.REFERENCE_01.Referencequalifier_01 = "VA"; rffNadLoop2.RFF.REFERENCE_01.Referencenumber_02 = "7002474"; // End RFF Group 1 nadLoop2.RFFLoop.Add(rffNadLoop2); // End NAD Group 2 result.NADLoop.Add(nadLoop2); // Begin NAD Group 3 var nadLoop3 = new Loop_NAD_DESADV(); // Delivery party identified by GLN 5412345123453 nadLoop3.NAD = new NAD(); nadLoop3.NAD.Partyqualifier_01 = "DP"; nadLoop3.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082(); nadLoop3.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01 = "5412345123453"; nadLoop3.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9"; // Repeating RFF Groups nadLoop3.RFFLoop = new List <Loop_RFF_DESADV>(); // Begin RFF Group 1 var rffNadLoop3 = new Loop_RFF_DESADV(); // Delivery party's VAT number 800800 rffNadLoop3.RFF = new RFF(); rffNadLoop3.RFF.REFERENCE_01 = new C506(); rffNadLoop3.RFF.REFERENCE_01.Referencequalifier_01 = "VA"; rffNadLoop3.RFF.REFERENCE_01.Referencenumber_02 = "800800"; // End RFF Group 1 nadLoop3.RFFLoop.Add(rffNadLoop3); // End NAD Group 3 result.NADLoop.Add(nadLoop3); // Begin NAD Group 4 var nadLoop4 = new Loop_NAD_DESADV(); // Shipper identified by GLN 5412345000105 nadLoop4.NAD = new NAD(); nadLoop4.NAD.Partyqualifier_01 = "SH"; nadLoop4.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082(); nadLoop4.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01 = "5412345000105"; nadLoop4.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9"; // End NAD Group 4 result.NADLoop.Add(nadLoop4); // Repeating CPS Groups result.CPSLoop = new List <Loop_CPS_DESADV>(); // Begin CPS Group 1 var cpsLoop1 = new Loop_CPS_DESADV(); // First level description of consignment packing cpsLoop1.CPS = new CPS(); cpsLoop1.CPS.Hierarchicalidnumber_01 = "1"; // Repeating PAC Groups cpsLoop1.PACLoop = new List <Loop_PAC_DESADV>(); // Begin PAC Group 1 var pacLoop1 = new Loop_PAC_DESADV(); // Two ISO 1 pallets pacLoop1.PAC = new PAC(); pacLoop1.PAC.Numberofpackages_01 = "2"; pacLoop1.PAC.PACKAGETYPE_03 = new C202(); pacLoop1.PAC.PACKAGETYPE_03.Typeofpackagesidentification_01 = "201"; pacLoop1.PAC.PACKAGETYPE_03.Codelistresponsibleagencycoded_03 = "9"; // End PAC Group 1 cpsLoop1.PACLoop.Add(pacLoop1); // End CPS Group 1 result.CPSLoop.Add(cpsLoop1); // Begin CPS Group 2 var cpsLoop2 = new Loop_CPS_DESADV(); // Second level description of the first pallet cpsLoop2.CPS = new CPS(); cpsLoop2.CPS.Hierarchicalidnumber_01 = "2"; cpsLoop2.CPS.Hierarchicalparentid_02 = "1"; // Repeating PAC Groups cpsLoop2.PACLoop = new List <Loop_PAC_DESADV>(); // Begin PAC Group 1 var pacLoop2 = new Loop_PAC_DESADV(); // One ISO 1 pallet pacLoop2.PAC = new PAC(); pacLoop2.PAC.Numberofpackages_01 = "1"; pacLoop2.PAC.PACKAGETYPE_03 = new C202(); pacLoop2.PAC.PACKAGETYPE_03.Typeofpackagesidentification_01 = "201"; pacLoop2.PAC.PACKAGETYPE_03.Codelistresponsibleagencycoded_03 = "9"; // Repeating MEA pacLoop2.MEA = new List <MEA>(); // Pallet weight 263.2 Kilos including goods packages var mea1 = new MEA(); mea1.Measurementapplicationqualifier_01 = "PD"; mea1.MEASUREMENTDETAILS_02 = new C502(); mea1.MEASUREMENTDETAILS_02.Measurementdimensioncoded_01 = "AAB"; mea1.VALUERANGE_03 = new C174(); mea1.VALUERANGE_03.Measureunitqualifier_01 = "KGM"; mea1.VALUERANGE_03.Measurementvalue_02 = "263.2"; pacLoop2.MEA.Add(mea1); // Pallet width 800 millimeters var mea2 = new MEA(); mea2.Measurementapplicationqualifier_01 = "PD"; mea2.MEASUREMENTDETAILS_02 = new C502(); mea2.MEASUREMENTDETAILS_02.Measurementdimensioncoded_01 = "WD"; mea2.VALUERANGE_03 = new C174(); mea2.VALUERANGE_03.Measureunitqualifier_01 = "MMT"; mea2.VALUERANGE_03.Measurementvalue_02 = "800"; pacLoop2.MEA.Add(mea2); // Pallet length 1200 millimeters var mea3 = new MEA(); mea3.Measurementapplicationqualifier_01 = "PD"; mea3.MEASUREMENTDETAILS_02 = new C502(); mea3.MEASUREMENTDETAILS_02.Measurementdimensioncoded_01 = "LN"; mea3.VALUERANGE_03 = new C174(); mea3.VALUERANGE_03.Measureunitqualifier_01 = "MMT"; mea3.VALUERANGE_03.Measurementvalue_02 = "1200"; pacLoop2.MEA.Add(mea3); // Repeating PCI Groups pacLoop2.PCILoop = new List <Loop_PCI_DESADV>(); // Begin PCI Group var pciLoop1 = new Loop_PCI_DESADV(); // Pallet marked with SSCC pciLoop1.PCI = new PCI(); pciLoop1.PCI.Markinginstructionscoded_01 = "33E"; // Repeating GIN Groups pciLoop1.GINLoop = new List <Loop_GIN_DESADV>(); // Begin GIN Group var ginLoop1 = new Loop_GIN_DESADV(); // Serial Shipping Container Code 354107380000001051 ginLoop1.GIN = new GIN(); ginLoop1.GIN.Identitynumberqualifier_01 = "BJ"; ginLoop1.GIN.IDENTITYNUMBERRANGE_02 = new C208(); ginLoop1.GIN.IDENTITYNUMBERRANGE_02.Identitynumber_01 = "354107380000001051"; // End GIN Group pciLoop1.GINLoop.Add(ginLoop1); // End PCI Group pacLoop2.PCILoop.Add(pciLoop1); // End PAC Group 1 cpsLoop2.PACLoop.Add(pacLoop2); // Begin PAC Group 2 var pacLoop3 = new Loop_PAC_DESADV(); // Twenty cartons pacLoop3.PAC = new PAC(); pacLoop3.PAC.Numberofpackages_01 = "20"; pacLoop3.PAC.PACKAGETYPE_03 = new C202(); pacLoop3.PAC.PACKAGETYPE_03.Typeofpackagesidentification_01 = "CT"; // End PAC Group 2 cpsLoop2.PACLoop.Add(pacLoop3); // Repeating LIN Groups cpsLoop2.LINLoop = new List <Loop_LIN_DESADV>(); // Begin LIN Group var linLoop1 = new Loop_LIN_DESADV(); // Product contained in this package is identified by GTIN 5410738000152 linLoop1.LIN = new LIN(); linLoop1.LIN.Lineitemnumber_01 = "1"; linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03 = new C212(); linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01 = "5410738000152"; linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRV"; linLoop1.QTY = new List <QTY>(); // Despatch quantity 20 var qty1 = new QTY(); qty1.QUANTITYDETAILS_01 = new C186(); qty1.QUANTITYDETAILS_01.Quantityqualifier_01 = "12"; qty1.QUANTITYDETAILS_01.Quantity_02 = "20"; linLoop1.QTY.Add(qty1); // End LIN Group cpsLoop2.LINLoop.Add(linLoop1); // End CPS Group 2 result.CPSLoop.Add(cpsLoop2); // Begin CPS Group 3 var cpsLoop3 = new Loop_CPS_DESADV(); // Second level description of the second pallet cpsLoop3.CPS = new CPS(); cpsLoop3.CPS.Hierarchicalidnumber_01 = "3"; cpsLoop3.CPS.Hierarchicalparentid_02 = "1"; // Repeating PAC Groups cpsLoop3.PACLoop = new List <Loop_PAC_DESADV>(); // Begin PAC Group 1 var pacLoop4 = new Loop_PAC_DESADV(); // One ISO 1 pallet pacLoop4.PAC = new PAC(); pacLoop4.PAC.Numberofpackages_01 = "1"; pacLoop4.PAC.PACKAGETYPE_03 = new C202(); pacLoop4.PAC.PACKAGETYPE_03.Typeofpackagesidentification_01 = "201"; pacLoop4.PAC.PACKAGETYPE_03.Codelistresponsibleagencycoded_03 = "9"; // Repeating MEA pacLoop4.MEA = new List <MEA>(); // Pallet weight 305.1 Kilos var mea4 = new MEA(); mea4.Measurementapplicationqualifier_01 = "PD"; mea4.MEASUREMENTDETAILS_02 = new C502(); mea4.MEASUREMENTDETAILS_02.Measurementdimensioncoded_01 = "AAB"; mea4.VALUERANGE_03 = new C174(); mea4.VALUERANGE_03.Measureunitqualifier_01 = "KGM"; mea4.VALUERANGE_03.Measurementvalue_02 = "305.1"; pacLoop4.MEA.Add(mea4); // Repeating PCI Groups pacLoop4.PCILoop = new List <Loop_PCI_DESADV>(); // Begin PCI Group var pciLoop2 = new Loop_PCI_DESADV(); // Pallet marked with SSCC pciLoop2.PCI = new PCI(); pciLoop2.PCI.Markinginstructionscoded_01 = "33E"; // Repeating GIN Groups pciLoop2.GINLoop = new List <Loop_GIN_DESADV>(); // Begin GIN Group var ginLoop2 = new Loop_GIN_DESADV(); // Serial Shipping Container Code 354107380000001068 ginLoop2.GIN = new GIN(); ginLoop2.GIN.Identitynumberqualifier_01 = "BJ"; ginLoop2.GIN.IDENTITYNUMBERRANGE_02 = new C208(); ginLoop2.GIN.IDENTITYNUMBERRANGE_02.Identitynumber_01 = "354107380000001068"; // End GIN Group pciLoop2.GINLoop.Add(ginLoop2); // End PCI Group pacLoop4.PCILoop.Add(pciLoop2); // End PAC Group 1 cpsLoop3.PACLoop.Add(pacLoop4); // Begin PAC Group 2 var pacLoop5 = new Loop_PAC_DESADV(); // Twenty cartons pacLoop5.PAC = new PAC(); pacLoop5.PAC.Numberofpackages_01 = "20"; pacLoop5.PAC.PACKAGETYPE_03 = new C202(); pacLoop5.PAC.PACKAGETYPE_03.Typeofpackagesidentification_01 = "CT"; // End PAC Group 2 cpsLoop3.PACLoop.Add(pacLoop5); // Repeating LIN Groups cpsLoop3.LINLoop = new List <Loop_LIN_DESADV>(); // Begin LIN Group 1 var linLoop2 = new Loop_LIN_DESADV(); // First product contained in this package is identified by GTIN 5410738000169 linLoop2.LIN = new LIN(); linLoop2.LIN.Lineitemnumber_01 = "2"; linLoop2.LIN.ITEMNUMBERIDENTIFICATION_03 = new C212(); linLoop2.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01 = "5410738000169"; linLoop2.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRV"; linLoop2.QTY = new List <QTY>(); // Despatch quantity 5 var qty2 = new QTY(); qty2.QUANTITYDETAILS_01 = new C186(); qty2.QUANTITYDETAILS_01.Quantityqualifier_01 = "12"; qty2.QUANTITYDETAILS_01.Quantity_02 = "5"; linLoop2.QTY.Add(qty2); // End LIN Group 1 cpsLoop3.LINLoop.Add(linLoop2); // Begin LIN Group 2 var linLoop3 = new Loop_LIN_DESADV(); // Second product contained in this package is identified by GTIN 5410738000176 linLoop3.LIN = new LIN(); linLoop3.LIN.Lineitemnumber_01 = "3"; linLoop3.LIN.ITEMNUMBERIDENTIFICATION_03 = new C212(); linLoop3.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01 = "5410738000176"; linLoop3.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRV"; linLoop3.QTY = new List <QTY>(); // Despatch quantity 3 var qty3 = new QTY(); qty3.QUANTITYDETAILS_01 = new C186(); qty3.QUANTITYDETAILS_01.Quantityqualifier_01 = "12"; qty3.QUANTITYDETAILS_01.Quantity_02 = "3"; linLoop3.QTY.Add(qty3); // End LIN Group 2 cpsLoop3.LINLoop.Add(linLoop3); // Begin LIN Group 3 var linLoop4 = new Loop_LIN_DESADV(); // Third product contained in this package is identified by GTIN 5410738000183 linLoop4.LIN = new LIN(); linLoop4.LIN.Lineitemnumber_01 = "4"; linLoop4.LIN.ITEMNUMBERIDENTIFICATION_03 = new C212(); linLoop4.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01 = "5410738000183"; linLoop4.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRV"; linLoop4.QTY = new List <QTY>(); // Despatch quantity 12 var qty4 = new QTY(); qty4.QUANTITYDETAILS_01 = new C186(); qty4.QUANTITYDETAILS_01.Quantityqualifier_01 = "12"; qty4.QUANTITYDETAILS_01.Quantity_02 = "12"; linLoop4.QTY.Add(qty4); // End LIN Group 3 cpsLoop3.LINLoop.Add(linLoop4); // End CPS Group 3 result.CPSLoop.Add(cpsLoop3); // Repeating CNT result.CNT = new List <CNT>(); // Total number of LIN segments in the message = 4 var cnt = new CNT(); cnt.CONTROL_01 = new C270(); cnt.CONTROL_01.Controlqualifier_01 = "2"; cnt.CONTROL_01.Controlvalue_02 = "4"; result.CNT.Add(cnt); return(result); }