Exemple #1
0
        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);
        }