Esempio n. 1
0
        private void NingboOrdersForm_Load(object sender, EventArgs e)
        {
            // 对于1个ningboorder中包含多个product, 以多行显示, 这几行以相同颜色做背景.
            // 为了避免相邻订单都是多product, 设置2种背景色, 交替使用.
            bool backColorTag = false;

            foreach (NingboOrder no in NingboOrder.Orders)
            {
                Color backColor = lvwNingboOrders.BackColor;
                if (no.SoldProducts.Count > 1)
                {
                    backColor    = backColorTag ? Color.PowderBlue : Color.AntiqueWhite;
                    backColorTag = !backColorTag;
                }

                for (int i = 0; i < no.SoldProducts.Count; i++)
                {
                    NingboOrderListViewItem item = new NingboOrderListViewItem(no, i, backColor);
                    lvwNingboOrders.Items.Add(item);
                }
            }
        }
Esempio n. 2
0
        private void btnSearchTaobaoOrder_Click(object sender, EventArgs e)
        {
            if (lvwNingboOrders.SelectedItems.Count <= 0)
            {
                return;
            }
            System.Diagnostics.Trace.Assert(null != this.OnSearch);

            Cursor = Cursors.WaitCursor;

            // Check if all selected row have same taobao order Id.
            for (int i = 0; i < lvwNingboOrders.SelectedItems.Count; i++)
            {
                for (int j = 0; j < i; j++)
                {
                    NingboOrderListViewItem itemi = lvwNingboOrders.SelectedItems[i] as NingboOrderListViewItem;
                    NingboOrderListViewItem itemj = lvwNingboOrders.SelectedItems[j] as NingboOrderListViewItem;
                    if (!itemi.NingboOrder.TaobaoOrderId.Equals(itemj.NingboOrder.TaobaoOrderId))
                    {
                        MessageBox.Show(this, "选中了不同的淘宝订单, 无法按订单编号搜索.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        return;
                    }
                }
            }

            NingboOrderListViewItem selectedItem = ((NingboOrderListViewItem)lvwNingboOrders.SelectedItems[0]);

            if (chkSearchByMobile.Checked)
            {
                this.OnSearchMobile(selectedItem.NingboOrder.Mobile);
            }
            else
            {
                this.OnSearch(selectedItem.NingboOrder.TaobaoOrderId);
            }
            Cursor = Cursors.Default;
        }
Esempio n. 3
0
        private void btnLoad_Click(object sender, EventArgs e)
        {
            Cursor.Current = Cursors.WaitCursor;

            try
            {
                OpenFileDialog ofd = new OpenFileDialog();
                ofd.Filter = "Excel Files(*.xls)|*.xls|All Files(*.*)|*.*";
                if (DialogResult.OK == ofd.ShowDialog(this))
                {
                    Excel excel = new Excel(ofd.FileName, true, Excel.OledbVersions.OLEDB40);
                    try
                    {
                        List <string> tableNames = excel.GetTableNames();
                        if (null == tableNames || tableNames.Count <= 0)
                        {
                            MessageBox.Show(this, "Excel文件中未找到任何表.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            return;
                        }

                        Ningbo.NingboTableColumnSelectorForm colSelectorForm = new Egode.Ningbo.NingboTableColumnSelectorForm(excel);
                        if (DialogResult.OK == colSelectorForm.ShowDialog(this))
                        {
                            DataSet ds = excel.Get(tableNames[0], string.Empty);
                            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                            {
                                DataRow row = ds.Tables[0].Rows[i];
                                if (string.IsNullOrEmpty(row[colSelectorForm.ColumnInfo.LogisticsCompany].ToString()) && string.IsNullOrEmpty(row[colSelectorForm.ColumnInfo.MailNumber].ToString()))
                                {
                                    continue;
                                }

                                int count = int.Parse(row.ItemArray[colSelectorForm.ColumnInfo.Count].ToString());

                                List <SoldProductInfo> products = new List <SoldProductInfo>();
                                ProductInfo            pi       = null;
                                SoldProductInfo        spi      = null;
                                if (colSelectorForm.ColumnInfo.ProductNingboCode >= 0)
                                {
                                    pi = ProductInfo.GetProductByNingboCode(row.ItemArray[colSelectorForm.ColumnInfo.ProductNingboCode].ToString());
                                    if (null != pi)
                                    {
                                        spi       = new SoldProductInfo(pi);
                                        spi.Count = count;
                                        products.Add(spi);
                                    }
                                }

                                //NingboOrder no = new NingboOrder(
                                //    row.ItemArray[2].ToString().Trim(), row.ItemArray[3].ToString().Trim(),
                                //    row.ItemArray[4].ToString().Trim(), row.ItemArray[15].ToString().Trim(),
                                //    row.ItemArray[16].ToString().Trim(), row.ItemArray[18].ToString().Trim(), row.ItemArray[19].ToString().Trim(),
                                //    row.ItemArray[20].ToString().Trim(), row.ItemArray[21].ToString().Trim(),
                                //    products, row.ItemArray[35].ToString().Trim());
                                NingboOrder no = new NingboOrder(
                                    row.ItemArray[colSelectorForm.ColumnInfo.LogisticsCompany].ToString().Trim(), row.ItemArray[colSelectorForm.ColumnInfo.MailNumber].ToString().Trim(),
                                    row.ItemArray[colSelectorForm.ColumnInfo.OrderId].ToString().Trim(), row.ItemArray[colSelectorForm.ColumnInfo.RecipientName].ToString().Trim(),
                                    row.ItemArray[colSelectorForm.ColumnInfo.Mobile].ToString().Trim(), row.ItemArray[colSelectorForm.ColumnInfo.Province].ToString().Trim(), row.ItemArray[colSelectorForm.ColumnInfo.City].ToString().Trim(),
                                    row.ItemArray[colSelectorForm.ColumnInfo.District].ToString().Trim(), row.ItemArray[colSelectorForm.ColumnInfo.StreetAddr].ToString().Trim(),
                                    products, string.Empty, string.Empty);                                     // last arg is alipay number.
                                NingboOrderListViewItem item = new NingboOrderListViewItem(no, 0, lvwNingboOrders.BackColor);
                                lvwNingboOrders.Items.Add(item);

                                if (null == spi)
                                {
                                    if (colSelectorForm.ColumnInfo.ProductNingboCode >= 0)
                                    {
                                        item.SubItems[9].Text = row.ItemArray[colSelectorForm.ColumnInfo.ProductNingboCode].ToString();
                                    }
                                    if (colSelectorForm.ColumnInfo.Count >= 0)
                                    {
                                        item.SubItems[10].Text = row.ItemArray[colSelectorForm.ColumnInfo.Count].ToString();
                                    }
                                }
                            }
                        }

                        /* Removed by KK on 2016/07/15.
                         * // Get column index for shipment number return from higo.
                         * int logisticsCompanyColIndex = -1;
                         * int shipmentNumberColIndex = -1;
                         * int taobaoOrderIdColIndex = -1;
                         * int recipientNameColIndex = -1;
                         * int mobileColIndex = -1;
                         * int provinceColIndex = -1;
                         * int cityColIndex = -1;
                         * int districtColIndex = -1;
                         * int streetAddrColIndex = -1;
                         * int productNingboCodeColIndex = -1;
                         * int productCountColIndex = -1;
                         * for (int i = 0; i < ds.Tables[0].Columns.Count; i++)
                         * {
                         *      System.Diagnostics.Trace.WriteLine(string.Format("column {0}: {1}", i, ds.Tables[0].Rows[0].ItemArray[i]));
                         *      if (ds.Tables[0].Rows[0].ItemArray[i].ToString().Contains("快递公司"))
                         *              logisticsCompanyColIndex = i;
                         *      if (ds.Tables[0].Rows[0].ItemArray[i].ToString().Contains("运单号"))
                         *              shipmentNumberColIndex = i;
                         *      if (ds.Tables[0].Rows[0].ItemArray[i].ToString().Contains("网站订单编号"))
                         *              taobaoOrderIdColIndex = i;
                         *      if (ds.Tables[0].Rows[0].ItemArray[i].ToString().Contains("收货人"))
                         *              recipientNameColIndex = i;
                         *      if (ds.Tables[0].Rows[0].ItemArray[i].ToString().Contains("手机"))
                         *              mobileColIndex = i;
                         *      if (ds.Tables[0].Rows[0].ItemArray[i].ToString().Contains("省份"))
                         *              provinceColIndex = i;
                         *      if (ds.Tables[0].Rows[0].ItemArray[i].ToString().Contains("市"))
                         *              cityColIndex = i;
                         *      if (ds.Tables[0].Rows[0].ItemArray[i].ToString().Contains("区"))
                         *              districtColIndex = i;
                         *      if (ds.Tables[0].Rows[0].ItemArray[i].ToString().Contains("详细信息"))
                         *              streetAddrColIndex = i;
                         *      if (ds.Tables[0].Rows[0].ItemArray[i].ToString().Contains("商品编码"))
                         *              productNingboCodeColIndex = i;
                         *      if (ds.Tables[0].Rows[0].ItemArray[i].ToString().Trim().Equals("数量"))
                         *              productCountColIndex = i;
                         * }
                         *
                         * int idInfoColIndex = -1;
                         * if (ds.Tables[0].Rows.Count >= 2)
                         * {
                         *      Regex r = new Regex(@"\d{17}[\d|x|X]");
                         *      for (int i = 0; i < ds.Tables[0].Columns.Count; i++)
                         *      {
                         *              if (r.Match(ds.Tables[0].Rows[1].ItemArray[i].ToString()).Success)
                         *              {
                         *                      idInfoColIndex = i;
                         *                      break;
                         *              }
                         *      }
                         * }
                         *
                         * if (-1 == shipmentNumberColIndex)
                         * {
                         *      //MessageBox.Show(this, "没有找到\"运单号\"列, 请检查文件数据或联系KK~", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                         *      MessageBox.Show(this, "没有找到\"运单号\"列, 默认使用第4列(D列)作为运单号, 请自行确认数据无误!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                         *      shipmentNumberColIndex = 3;
                         *      //return;
                         * }
                         * if (-1 == taobaoOrderIdColIndex)
                         * {
                         *      MessageBox.Show(this, "没有找到\"网站订单编号\"列, 默认使用第5列(E列)作为订单编号, 请自行确认数据无误!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                         *      taobaoOrderIdColIndex = 4;
                         *      //return;
                         * }
                         *
                         * for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                         * {
                         *      DataRow row = ds.Tables[0].Rows[i];
                         *
                         *      ProductInfo pi = ProductInfo.GetProductByNingboCode(row.ItemArray[productNingboCodeColIndex].ToString());
                         *      int count = int.Parse(row.ItemArray[productCountColIndex].ToString());
                         *      SoldProductInfo spi = new SoldProductInfo(pi);
                         *      spi.Count = count;
                         *      List<SoldProductInfo> products = new List<SoldProductInfo>();
                         *      products.Add(spi);
                         *
                         *      //NingboOrder no = new NingboOrder(
                         *      //    row.ItemArray[2].ToString().Trim(), row.ItemArray[3].ToString().Trim(),
                         *      //    row.ItemArray[4].ToString().Trim(), row.ItemArray[15].ToString().Trim(),
                         *      //    row.ItemArray[16].ToString().Trim(), row.ItemArray[18].ToString().Trim(), row.ItemArray[19].ToString().Trim(),
                         *      //    row.ItemArray[20].ToString().Trim(), row.ItemArray[21].ToString().Trim(),
                         *      //    products, row.ItemArray[35].ToString().Trim());
                         *      NingboOrder no = new NingboOrder(
                         *              row.ItemArray[logisticsCompanyColIndex].ToString().Trim(), row.ItemArray[shipmentNumberColIndex].ToString().Trim(),
                         *              row.ItemArray[taobaoOrderIdColIndex].ToString().Trim(), row.ItemArray[recipientNameColIndex].ToString().Trim(),
                         *              row.ItemArray[mobileColIndex].ToString().Trim(), row.ItemArray[provinceColIndex].ToString().Trim(), row.ItemArray[19].ToString().Trim(),
                         *              row.ItemArray[cityColIndex].ToString().Trim(), row.ItemArray[districtColIndex].ToString().Trim(),
                         *              products, row.ItemArray[idInfoColIndex].ToString().Trim(), string.Empty); // last arg is alipay number.
                         *      NingboOrderListViewItem item = new NingboOrderListViewItem(no, 0, lvwNingboOrders.BackColor);
                         *      lvwNingboOrders.Items.Add(item);
                         * }
                         */
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(this, ex.Message, this.Text, MessageBoxButtons.OK);
                    }
                    finally
                    {
                        excel.Close();
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(this, ex.Message, this.Text, MessageBoxButtons.OK);
            }
            finally
            {
                Cursor.Current = Cursors.Default;
            }
        }