public static bool LoadFromFile(string fileName, out InvoiceReference obj) { Exception exception = null; return LoadFromFile(fileName, out obj, out exception); }
public static bool LoadFromFile(string fileName, out InvoiceReference obj, out Exception exception) { return LoadFromFile(fileName, Encoding.UTF8, out obj, out exception); }
/// <summary> /// Deserializes xml markup from file into an InvoiceReference object /// </summary> /// <param name="fileName">string xml file to load and deserialize</param> /// <param name="obj">Output InvoiceReference object</param> /// <param name="exception">output Exception value if deserialize failed</param> /// <returns>true if this Serializer can deserialize the object; otherwise, false</returns> public static bool LoadFromFile(string fileName, System.Text.Encoding encoding, out InvoiceReference obj, out Exception exception) { exception = null; obj = default(InvoiceReference); try { obj = LoadFromFile(fileName, encoding); return true; } catch (Exception ex) { exception = ex; return false; } }
public static bool Deserialize(string input, out InvoiceReference obj) { Exception exception = null; return Deserialize(input, out obj, out exception); }
/// <summary> /// Deserializes workflow markup into an InvoiceReference object /// </summary> /// <param name="input">string workflow markup to deserialize</param> /// <param name="obj">Output InvoiceReference object</param> /// <param name="exception">output Exception value if deserialize failed</param> /// <returns>true if this Serializer can deserialize the object; otherwise, false</returns> public static bool Deserialize(string input, out InvoiceReference obj, out Exception exception) { exception = null; obj = default(InvoiceReference); try { obj = Deserialize(input); return true; } catch (Exception ex) { exception = ex; return false; } }
//----------------------------------------------------------------------------------------------------- public FileAnalysis Func_X12_810_GLO_CWO_XMS_CIV( string filename, string errorOut, string validOut, string processOut) { this.FileStatus = new FileAnalysis(); try { if (File.Exists(filename)) { int j; DateTime dteInvDate; var strBN = string.Empty; var strBM = string.Empty; var strPO = string.Empty; var edi810 = Interchange.LoadFrom(File.OpenRead(filename)); var ediInt = new XmlInterchange(); for (var g = 0; g < edi810.Groups.Count; g++) { ediInt.Version = "1"; ediInt.InterchangeInfo = new InterchangeInfo { Date = DateTime.Now, XmlType = XmlType.LightWeight, EDIOrganisation = { EDICode = "WALINTJFK", OwnerCode = "WALINTJFK" }, Source = new InterchangeInfoSource { EnterpriseCode = "WLT", CompanyCode = "JFK", OriginServer = "JFK", LoginName = "jerry.mabasa", LoginUserEmailAddress = "*****@*****.**" }, Target = {BranchCode = "JFK"} }; ediInt.Payload = new XmlInterchangePayload {Invoices = new Invoices()}; for (var m = 0; m < edi810.Groups[g].Messages.Count; m++) { if (edi810.Groups[g].Messages[m].Context.Tag != "810") { this.FileStatus.ExcpMessage = string.Concat("Invalid 810: ", Path.GetFileName(filename)); } else { var ediMsg = edi810.Groups[g].Messages[m].DeserializeItem<M_810>(); var ediInvH = new InvoiceHeader {InvoiceNumber = ediMsg.S_BIG.D_76_2}; var decInvAmnt = new decimal(0); decimal.TryParse(ediMsg.S_TDS.D_610_1, out decInvAmnt); ediInvH.InvoiceAmount.Value = decInvAmnt/new decimal(100); ediInvH.InvoiceAmount.CurrencyCode = ediMsg.S_CUR.D_100_2; string[] strArrays = { ediMsg.S_BIG.D_373_1.Substring(4, 2), "/", ediMsg.S_BIG.D_373_1.Substring(6, 2), "/", ediMsg.S_BIG.D_373_1.Substring(0, 4) }; if (DateTime.TryParse(string.Concat(strArrays), out dteInvDate)) { ediInvH.InvoiceDate = dteInvDate; } ediInvH.Consignor = new Organisation(); ediInvH.Consignee = new Organisation(); var clsOrgBuy = new Organisation(); var clsOrgSel = new Organisation(); for (j = 0; j < ediMsg.G_N1.Count; j++) { if (ediMsg.G_N1[j].S_N1.D_98_1.ToString() == "SF") { ediInvH.Consignor.EDICode = ediMsg.G_N1[j].S_N1.D_67_4; ediInvH.Consignor.OwnerCode = ediMsg.G_N1[j].S_N1.D_67_4; var clsCnrAdd = new OrganisationDetailAddress(); if (ediMsg.G_N1[j].S_N3.Count != 0) { clsCnrAdd.AddressLine1 = ediMsg.G_N1[j].S_N3[0].D_166_1; clsCnrAdd.AddressLine2 = ediMsg.G_N1[j].S_N3[0].D_166_2; } if (ediMsg.G_N1[j].S_N4 != null) { clsCnrAdd.CityOrSuburb = ediMsg.G_N1[j].S_N4.D_19_1; } ediInvH.Consignee.OrganisationDetails.Addresses.Add(clsCnrAdd); clsOrgSel = ediInvH.Consignor; } if (ediMsg.G_N1[j].S_N1.D_98_1.ToString() == "ST") { ediInvH.Consignee.EDICode = ediMsg.G_N1[j].S_N1.D_67_4; ediInvH.Consignee.OwnerCode = ediMsg.G_N1[j].S_N1.D_67_4; ediInvH.Consignee.OrganisationDetails.Name = ediMsg.G_N1[j].S_N1.D_93_2; var clsCneAdd = new OrganisationDetailAddress(); if (ediMsg.G_N1[j].S_N3.Count != 0) { if (ediMsg.G_N1[j].S_N3[0].D_166_1 != null) { clsCneAdd.AddressLine1 = ediMsg.G_N1[j].S_N3[0].D_166_1; } if (ediMsg.G_N1[j].S_N3[0].D_166_2 != null) { clsCneAdd.AddressLine2 = ediMsg.G_N1[j].S_N3[0].D_166_2; } } if (ediMsg.G_N1[j].S_N4 != null) { clsCneAdd.CityOrSuburb = ediMsg.G_N1[j].S_N4.D_19_1; } ediInvH.Consignee.OrganisationDetails.Addresses.Add(clsCneAdd); } if (ediMsg.G_N1[j].S_N1.D_98_1.ToString() == "BT") { clsOrgBuy.EDICode = ediMsg.G_N1[j].S_N1.D_67_4; clsOrgBuy.OwnerCode = ediMsg.G_N1[j].S_N1.D_67_4; var clsBuyAdd = new OrganisationDetailAddress(); if (ediMsg.G_N1[j].S_N3.Count != 0) { if (ediMsg.G_N1[j].S_N3[0].D_166_1 != null) { clsBuyAdd.AddressLine1 = ediMsg.G_N1[j].S_N3[0].D_166_1; } if (ediMsg.G_N1[j].S_N3[0].D_166_2 != null) { clsBuyAdd.AddressLine2 = ediMsg.G_N1[j].S_N3[0].D_166_2; } } if (ediMsg.G_N1[j].S_N4 != null) { clsBuyAdd.CityOrSuburb = ediMsg.G_N1[j].S_N4.D_19_1; } } if (ediMsg.G_N1[j].S_REF_2.Count > 0) { for (var h = 0; h < ediMsg.G_N1[j].S_REF_2.Count; h++) { if (ediMsg.G_N1[j].S_REF_2[h].D_128_1.ToString() == "BN") { if (ediMsg.G_N1[j].S_REF_2[h].D_127_2 != null) { strBN = ediMsg.G_N1[j].S_REF_2[h].D_127_2; } } if (ediMsg.G_N1[j].S_REF_2[h].D_128_1.ToString() == "BM") { if (ediMsg.G_N1[j].S_REF_2[h].D_127_2 != null) { strBM = ediMsg.G_N1[j].S_REF_2[h].D_127_2; } } } } } ediInvH.IsGroupInvoice = TrueFalse.@false; ediInvH.Incoterm = ediMsg.S_FOB.D_335_5.ToString(); var decVol = new decimal(0); ediInvH.Volume.Value = decVol; ediInvH.Volume.DimensionType = "M3"; var decWgt = new decimal(0); decimal.TryParse(ediMsg.S_CTT.D_81_3, out decWgt); ediInvH.Weight.Value = decWgt; ediInvH.Weight.DimensionType = ediMsg.S_CTT.D_355_4.ToString(); ediInvH.StandAloneInvoiceDirection = "EXP"; var clsInvRef = new InvoiceReference {Type = ediMsg.S_CAD_2.D_128_7.ToString()}; if (clsInvRef.Type == "BM") { clsInvRef.Type = "MB"; } clsInvRef.Value = ediMsg.S_CAD_2.D_127_8; ediInvH.References.Add(clsInvRef); var clsPORef = new InvoiceReference {Type = "PO", Value = ediMsg.S_BIG.D_324_4}; ediInvH.References.Add(clsPORef); strPO = clsPORef.Value; for (j = 0; j < ediMsg.G_IT1.Count; j++) { var clsInvLine = new InvoiceLine { InvoiceLineNumber = ediMsg.G_IT1[j].S_IT1.D_350_1 }; var decInvQty = new decimal(0); decimal.TryParse(ediMsg.G_IT1[j].S_IT1.D_358_2, out decInvQty); clsInvLine.InvoiceQty.Value = decInvQty; clsInvLine.InvoiceQty.DimensionType = ediMsg.G_IT1[j].S_IT1.D_355_3.ToString(); if (clsInvLine.InvoiceQty.DimensionType == "CA") { clsInvLine.InvoiceQty.DimensionType = "CAS"; } if (clsInvLine.InvoiceQty.DimensionType == "EA") { clsInvLine.InvoiceQty.DimensionType = "PCS"; } var decLinPrc = new decimal(0); decimal.TryParse(ediMsg.G_IT1[j].S_IT1.D_212_4, out decLinPrc); clsInvLine.LinePrice.Value = decLinPrc*decInvQty; if (ediMsg.G_IT1[j].S_IT1.D_234_7 != null) { clsInvLine.ProductNumber = ediMsg.G_IT1[j].S_IT1.D_234_7; } clsInvLine.ProductDescription = ediMsg.G_IT1[j].S_IT1.D_234_11; var decCusQty = new decimal(0); decimal.TryParse(ediMsg.G_IT1[j].S_IT1.D_358_2, out decCusQty); clsInvLine.CustomsInvoiceQty.Value = decCusQty; clsInvLine.CustomsInvoiceQty.DimensionType = ediMsg.G_IT1[j].S_IT1.D_355_3.ToString(); if (ediMsg.G_IT1[j].S_IT1.D_235_12.ToString() == "CH") { clsInvLine.LineClassification.OriginOfGoods = ediMsg.G_IT1[j].S_IT1.D_234_13; } if (ediMsg.G_IT1[j].S_IT1.D_235_14.ToString() == "HD") { clsInvLine.LineClassification.TariffCode.Type = "HTS"; } clsInvLine.LineClassification.TariffCode.Value = ediMsg.G_IT1[j].S_IT1.D_234_15; var decNetWgt = new decimal(0); decimal.TryParse(ediMsg.G_IT1[j].S_PO4.D_384_6, out decNetWgt); clsInvLine.NetWeight.Value = decNetWgt; clsInvLine.NetWeight.DimensionType = ediMsg.G_IT1[j].S_PO4.D_355_7.ToString(); clsInvLine.CustomText1 = strBN; clsInvLine.CustomText2 = strBM; clsInvLine.CustomText3 = strPO; var clsUSInv = new USInvoice { Organisations = { Buyer = clsOrgBuy, Seller = clsOrgSel } }; ediInvH.CountryPayload.USInvoice = new USInvoice(); ediInvH.CountryPayload.USInvoice = clsUSInv; clsInvLine.OrderNumber = clsPORef.Value; ediInvH.InvoiceLines.Add(clsInvLine); } ediInt.Payload.Invoices.InvoiceHeader.Add(ediInvH); } } } ediInt.Serialize(); if ( File.Exists( string.Concat(validOut, "\\810_JNJ_", Path.GetFileNameWithoutExtension(filename), ".xml"))) { File.Delete( string.Concat(validOut, "\\810_JNJ_", Path.GetFileNameWithoutExtension(filename), ".xml")); } ediInt.SaveToFile( string.Concat(validOut, "\\810_JNJ_", Path.GetFileNameWithoutExtension(filename), ".xml")); if (File.Exists(string.Concat(processOut, "\\", Path.GetFileName(filename)))) { File.Delete(string.Concat(processOut, "\\", Path.GetFileName(filename))); } File.Move(filename, string.Concat(processOut, "\\", Path.GetFileName(filename))); } } catch (Exception exception) { this.FileStatus.ExcpMessage = exception.Message; } return this.FileStatus; }