private void btnImport_Click(object sender, EventArgs e) { SO_OrderBatch batch = new SO_OrderBatch(); OpenFileDialog OpenXMLDialog = new OpenFileDialog(); OpenXMLDialog.InitialDirectory = "C:\\"; OpenXMLDialog.Filter = "xml files (*.xml)|*.xml|All files (*.*)|*.*"; OpenXMLDialog.RestoreDirectory = true; if (OpenXMLDialog.ShowDialog() == DialogResult.OK) { try { batch = Orders.ReadXML(OpenXMLDialog.FileName); } catch (Exception ex) { MessageBox.Show(ex.Message); } } // Makes sure each order has a CustomerNo for Sage100 foreach (SalesOrder order in batch.SalesOrders()) { if (order.CustomerNo == string.Empty) { using (UserEntry EntryDialog = new UserEntry("Please input a CustomerNo", "A CustomerNo was not found in the file." + Environment.NewLine + "[Order #]: " + order.CustomerPONo + " [Bill To Company]: " + order.BillToCompany)) { if (EntryDialog.ShowDialog() == DialogResult.OK) { order.CustomerNo = EntryDialog.Input; } } } } Config config = Config.Load(); batch.Username = config.Username; batch.Password = config.Password; batch.Company = config.Company; batch.Post(); }
public static SO_OrderBatch ReadXML(string fileName) { XmlSerializer serializer = new XmlSerializer(typeof(Orders)); Orders oOrders = new Orders(); using (FileStream fs = new FileStream(fileName, FileMode.Open)) { oOrders = (Orders)serializer.Deserialize(fs); } SO_OrderBatch batch = new SO_OrderBatch(); foreach (Order xmlorder in oOrders.Items) { SalesOrder order = new SalesOrder(); order.RequiredDate = DateUtils.DateUtils.ShipDate(DateTime.Today, 5); order.ShipToName = xmlorder.ShippingFullName; order.ShipToAddress1 = xmlorder.ShippingAddress1; order.ShipToAddress2 = xmlorder.ShippingAddress2; order.ShipToZipcode = xmlorder.ShippingPostCode; order.CustomerNo = xmlorder.Customer_Number; order.CustomerPONo = "Website-" + xmlorder.OrderId; order.BillToCompany = xmlorder.BillingCompany; foreach (OrderLineItems xmlline in xmlorder.Items) { order.AddLine(new LineItem(xmlline.SKU, xmlline.Quantity, xmlline.Meta)); } batch.AddOrder(order); } return(batch); }