private void FormReceiptSubmissionNew_Load(object sender, EventArgs e)
        {
            this.ItemKeyName = (from kn in ReceiptMetaData.itemsKeyName where kn.Key != "Component" select kn).ToArray();
            InitComponents();
            Search();
            InitPanel();
            WMSEntities   wmsEntities   = new WMSEntities();
            User          user          = (from u in wmsEntities.User where u.ID == userID select u).FirstOrDefault();
            ReceiptTicket receiptTicket = (from rt in wmsEntities.ReceiptTicket where rt.ID == this.receiptTicketID select rt).FirstOrDefault();

            if (user != null)
            {
                this.Controls.Find("textBoxCreateUserUsername", true)[0].Text     = user.Username;
                this.Controls.Find("textBoxLastUpdateUserUsername", true)[0].Text = user.Username;
            }
            if (receiptTicket != null)
            {
                this.Controls.Find("textBoxReceiptTicketNo", true)[0].Text = receiptTicket.No;
                this.Controls.Find("textBoxSubmissionDate", true)[0].Text  = receiptTicket.ReceiptDate.ToString();
            }
            this.Controls.Find("textBoxState", true)[0].Text = "待检";

            this.Controls.Find("textBoxCreateTime", true)[0].Text     = DateTime.Now.ToString();
            this.Controls.Find("textBoxLastUpdateTime", true)[0].Text = DateTime.Now.ToString();
        }
        private void buttonAdd_Click(object sender, EventArgs e)
        {
            SubmissionTicket submissionTicket = new SubmissionTicket();
            string           errorInfo;

            if (Utilities.CopyTextBoxTextsToProperties(this, submissionTicket, ReceiptMetaData.submissionTicketKeyName, out errorInfo) == false)
            {
                MessageBox.Show(errorInfo);
                return;
            }
            else
            {
                new Thread(() =>
                {
                    ReceiptTicket receiptTicket = (from rt in wmsEntities.ReceiptTicket where rt.ID == this.receiptTicketID select rt).FirstOrDefault();
                    if (receiptTicket != null)
                    {
                        submissionTicket.ProjectID   = receiptTicket.ProjectID;
                        submissionTicket.WarehouseID = receiptTicket.WarehouseID;
                    }
                    submissionTicket.CreateUserID     = this.userID;
                    submissionTicket.LastUpdateUserID = this.userID;
                    submissionTicket.LastUpdateTime   = DateTime.Now;
                    submissionTicket.CreateTime       = DateTime.Now;
                    submissionTicket.State            = "待检";
                    submissionTicket.ReceiptTicketID  = receiptTicketID;
                    wmsEntities.SubmissionTicket.Add(submissionTicket);
                    wmsEntities.SaveChanges();
                    submissionTicket.No = Utilities.GenerateNo("J", submissionTicket.ID);
                    try
                    {
                        wmsEntities.SaveChanges();
                        this.Invoke(new Action(() => Search()));
                        MessageBox.Show("成功");
                    }
                    catch
                    {
                        MessageBox.Show("无法连接到数据库,请查看网络连接!", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
                        return;
                    }
                }).Start();
            }
        }
Exemple #3
0
        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            var worksheet = this.reoGridControl1.Worksheets[0];

            try
            {
                if (worksheet.SelectionRange.Rows != 1)
                {
                    MessageBox.Show("请选择一项进行修改", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                WMSEntities wmsEntities = new WMSEntities();
                int         submissionTicketID;
                try
                {
                    submissionTicketID = int.Parse(worksheet[worksheet.SelectionRange.Row, 0].ToString());
                }
                catch
                {
                    MessageBox.Show("请选择一项进行修改", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                //var formReceiptTicketIems = new FormReceiptItems(FormMode.ALTER, receiptTicketID);

                SubmissionTicket submissionTicket = (from rt in wmsEntities.SubmissionTicket where rt.ID == submissionTicketID select rt).FirstOrDefault();
                if (submissionTicket == null)
                {
                    MessageBox.Show("该收货单已被删除,请刷新后查看!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                //if (submissionTicket.State == "待检")
                //{
                //    MessageBox.Show("该送检单状态为待检,不能生成上架单!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Question);
                //    return;
                //}

                /*
                 * if (receiptTicket.HasPutawayTicket == "是")
                 * {
                 *  MessageBox.Show("该收货单已经生成上架单,点击查看对应上架单按钮查看!");
                 *  return;
                 * }*/
                //if (submissionTicket.State != "合格")
                //{
                //    MessageBox.Show("该送检单状态为" + submissionTicket.State + ",不能生成上架单", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                //    return;
                //}
                ReceiptTicket receiptTicket = (from rt in wmsEntities.ReceiptTicket where rt.ID == submissionTicket.ReceiptTicketID select rt).FirstOrDefault();
                if (receiptTicket == null)
                {
                    MessageBox.Show("该收货单已被删除,不能上架", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                FormPutawayNew formPutawayNew = new FormPutawayNew(receiptTicket.ID, this.userID, FormMode.ADD);
                formPutawayNew.SetCallBack(new Action(() =>
                {
                    this.Search();
                }));

                formPutawayNew.Show();
            }

            catch (Exception)
            {
                MessageBox.Show("无法连接到数据库,请查看网络连接!", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
                return;
            }
        }
Exemple #4
0
        private void ButtonDelete_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("确认删除,并取消送检?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
            {
                Search();
                return;
            }
            var         worksheet   = this.reoGridControl1.Worksheets[0];
            WMSEntities wmsEntities = new WMSEntities();

            try
            {
                if (worksheet.SelectionRange.Rows != 1)
                {
                    MessageBox.Show("请选择一项进行修改", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                int submissionTicketID;
                try
                {
                    submissionTicketID = int.Parse(worksheet[worksheet.SelectionRange.Row, 0].ToString());
                }
                catch
                {
                    MessageBox.Show("请选择一项进行修改", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                SubmissionTicket submissionTicket = (from st in wmsEntities.SubmissionTicket where st.ID == submissionTicketID select st).FirstOrDefault();
                if (submissionTicket == null)
                {
                    MessageBox.Show("此送检单已被删除");
                    this.Search();
                    return;
                }
                else
                {
                    if (submissionTicket.State != "待检")
                    {
                        MessageBox.Show("该送检单状态为" + submissionTicket.State + ",不能删除送检单!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }
                    new Thread(() =>
                    {
                        try
                        {
                            SubmissionTicketItem[] submissionTicketItems = (from sti in wmsEntities.SubmissionTicketItem where sti.SubmissionTicketID == submissionTicketID select sti).ToArray();

                            foreach (SubmissionTicketItem sti in submissionTicketItems)
                            {
                                ReceiptTicketItem receiptTicketItem = (from rti in wmsEntities.ReceiptTicketItem where rti.ID == sti.ReceiptTicketItemID select rti).FirstOrDefault();
                                if (receiptTicketItem != null)
                                {
                                    if (receiptTicketItem.ReceiptTicket.State == "送检中" || receiptTicketItem.ReceiptTicket.State == "过检" || receiptTicketItem.ReceiptTicket.State == "未过检")
                                    {
                                        receiptTicketItem.State = "待收货";
                                        StockInfo stockInfo     = (from si in wmsEntities.StockInfo where si.ReceiptTicketItemID == receiptTicketItem.ID select si).FirstOrDefault();
                                        if (stockInfo != null)
                                        {
                                            stockInfo.ReceiptAreaAmount += stockInfo.SubmissionAmount;
                                            stockInfo.SubmissionAmount  -= stockInfo.SubmissionAmount;
                                        }
                                        receiptTicketItem.State = "待收货";
                                    }
                                }
                            }
                            ReceiptTicket receiptTicket = (from rt in wmsEntities.ReceiptTicket where rt.ID == submissionTicket.ReceiptTicketID select rt).FirstOrDefault();

                            if (receiptTicket.State == "送检中" || receiptTicket.State == "过检" || receiptTicket.State == "未过检")
                            {
                                if (receiptTicket != null)
                                {
                                    receiptTicket.State         = "待收货";
                                    receiptTicket.HasSubmission = 0;
                                }
                            }
                            else
                            {
                                MessageBox.Show("该送检单对应收货单已收货或上架,无法改变收货单状态,但删除送检单成功。");
                            }
                            wmsEntities.Database.ExecuteSqlCommand("DELETE FROM SubmissionTicket WHERE ID = @submissionTicketID", new SqlParameter("submissionTicketID", submissionTicket.ID));
                            wmsEntities.SaveChanges();
                            this.Invoke(new Action(() =>
                            {
                                this.Search();
                            }));

                            //wmsEntities.Database.ExecuteSqlCommand("UPDATE ReceiptTicketItem SET State = '待收货' WHERE ID = @receiptTicketItemID", new SqlParameter("receiptTicketItemID", sti.ReceiptTicketItemID));
                        }
                        catch
                        {
                            MessageBox.Show("无法连接到数据库,请查看网络连接!", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
                            return;
                        }
                    }).Start();
                }
            }
            catch (Exception)
            {
                MessageBox.Show("无法连接到数据库,请查看网络连接!", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
                return;
            }
            Search();
        }
Exemple #5
0
        private void buttonNoPass_Click(object sender, EventArgs e)
        {
            WMSEntities wmsEntities = new WMSEntities();
            var         worksheet   = this.reoGridControl1.Worksheets[0];

            try
            {
                if (worksheet.SelectionRange.Rows != 1)
                {
                    MessageBox.Show("请选择一项进行修改", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                int submissionTicketID            = int.Parse(worksheet[worksheet.SelectionRange.Row, 0].ToString());
                SubmissionTicket submissionTicket = (from st in wmsEntities.SubmissionTicket where st.ID == submissionTicketID select st).FirstOrDefault();
                if (submissionTicket == null)
                {
                    MessageBox.Show("找不到该送检单");
                    return;
                }
                ReceiptTicket receiptTicket = (from rt in wmsEntities.ReceiptTicket where rt.ID == submissionTicket.ReceiptTicketID select rt).FirstOrDefault();
                if (receiptTicket == null)
                {
                    MessageBox.Show("对应收货单已被删除,无法拒收");
                    return;
                }
                if (receiptTicket.HasPutawayTicket == "全部生成上架单" || receiptTicket.HasPutawayTicket == "部分生成上架单")
                {
                    MessageBox.Show("该送检单所对应的收货单已经生成上架单,无法拒收");
                    return;
                }
                receiptTicket.State = "拒收";
                ReceiptTicketItem[] receiptTicketItems = receiptTicket.ReceiptTicketItem.ToArray();
                foreach (ReceiptTicketItem rti in receiptTicketItems)
                {
                    StockInfo stockInfo = (from si in wmsEntities.StockInfo where si.ReceiptTicketItemID == rti.ID select si).FirstOrDefault();
                    rti.RefuseAmount   += rti.ReceiviptAmount;
                    rti.UnitCount       = 0;
                    rti.ReceiviptAmount = 0;
                    rti.State           = "拒收";
                    if (stockInfo != null)
                    {
                        stockInfo.ReceiptAreaAmount = 0;
                    }
                }
                new Thread(() =>
                {
                    wmsEntities.SaveChanges();
                    MessageBox.Show("成功");
                    this.Invoke(new Action(() =>
                    {
                        if (this.key == null || this.value == null)
                        {
                            this.Search();
                        }
                        else
                        {
                            this.Search(this.key, this.value);
                        }
                    }));
                }).Start();
            }
            catch
            {
                MessageBox.Show("无法连接到数据库,请查看网络连接!", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
                return;
            }
        }
Exemple #6
0
        //private void buttonSelect_Click(object sender, EventArgs e)
        //{
        //    if (comboBoxSelect.SelectedIndex == 0)
        //    {
        //        Search();
        //    }
        //    else
        //    {
        //        string condition = this.comboBoxSelect.Text;
        //        string key = "";
        //        foreach (KeyName kn in ReceiptMetaData.submissionTicketKeyName)
        //        {
        //            if (condition == kn.Name)
        //            {
        //                key = kn.Key;
        //                break;
        //            }
        //        }
        //        string value = this.textBoxSelect.Text;
        //        if (key != null && value != null)
        //        {
        //            this.pagerWidget.AddCondition(key, value);
        //        }
        //        Search();
        //    }
        //}

        private void buttonPass_Click(object sender, EventArgs e)
        {
            WMSEntities wmsEntities = new WMSEntities();
            var         worksheet   = this.reoGridControl1.Worksheets[0];

            try
            {
                if (worksheet.SelectionRange.Rows != 1)
                {
                    MessageBox.Show("请选择一项进行修改", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                int submissionTicketID            = int.Parse(worksheet[worksheet.SelectionRange.Row, 0].ToString());
                SubmissionTicket submissionTicket = (from st in wmsEntities.SubmissionTicket where st.ID == submissionTicketID select st).FirstOrDefault();
                if (submissionTicket == null)
                {
                    MessageBox.Show("找不到该送检单");
                    return;
                }
                ReceiptTicket receiptTicket = (from rt in wmsEntities.ReceiptTicket where rt.ID == submissionTicket.ReceiptTicketID select rt).FirstOrDefault();
                if (receiptTicket == null)
                {
                    MessageBox.Show("对应收货单已被删除,无法收货");
                    return;
                }

                //receiptTicket.State = "已收货";
                ReceiptTicketItem[] receiptTicketItems = receiptTicket.ReceiptTicketItem.ToArray();
                int n = 0;
                foreach (ReceiptTicketItem rti in receiptTicketItems)
                {
                    if (rti.RefuseAmount > 0)
                    {
                        rti.State = "部分收货";
                    }
                    else
                    {
                        rti.State = "已收货";
                        n++;
                    }
                    StockInfo stockInfo = (from si in wmsEntities.StockInfo where si.ReceiptTicketItemID == rti.ID select si).FirstOrDefault();
                    if (stockInfo != null)
                    {
                        stockInfo.OverflowAreaAmount += stockInfo.ReceiptAreaAmount;
                        stockInfo.ReceiptAreaAmount  -= stockInfo.ReceiptAreaAmount;
                    }
                }
                if (n == receiptTicketItems.Length)
                {
                    receiptTicket.State = "已收货";
                }
                else
                {
                    receiptTicket.State = "部分收货";
                }
                new Thread(() =>
                {
                    wmsEntities.SaveChanges();
                    MessageBox.Show("成功");
                    this.Invoke(new Action(() =>
                    {
                        if (this.key == null || this.value == null)
                        {
                            this.Search();
                        }
                        else
                        {
                            this.Search(this.key, this.value);
                        }
                    }));
                }).Start();

                /*
                 * SubmissionTicketItem[] submissionTicketItem = (from sti in wmsEntities.SubmissionTicketItem where sti.SubmissionTicketID == submissionTicketID select sti).ToArray();
                 * foreach (SubmissionTicketItem sti in submissionTicketItem)
                 * {
                 *  sti.State = "合格";
                 *  ReceiptTicketItem receiptTicketItem = (from rti in wmsEntities.ReceiptTicketItem where rti.ID == sti.ReceiptTicketItemID select rti).FirstOrDefault();
                 *  if (receiptTicketItem != null)
                 *  {
                 *      receiptTicketItem.State = "过检";
                 *  }
                 * }
                 * submissionTicket.State = "合格";
                 * ReceiptTicket receiptTicket = (from rt in wmsEntities.ReceiptTicket where rt.ID == submissionTicket.ReceiptTicketID select rt).FirstOrDefault();
                 * new Thread(() =>
                 * {
                 *  wmsEntities.SaveChanges();
                 *  if (receiptTicket != null)
                 *  {
                 *      int count = wmsEntities.Database.SqlQuery<int>(
                 *      "SELECT COUNT(*) FROM ReceiptTicketItem " +
                 *      "WHERE State <> '过检' AND ReceiptTicketID = @receiptTicketID",
                 *      new SqlParameter("receiptTicketID", receiptTicket.ID)).FirstOrDefault();
                 *      if (count == 0)
                 *      {
                 *          wmsEntities.Database.ExecuteSqlCommand(
                 *              "UPDATE ReceiptTicket SET State = '过检' " +
                 *              "WHERE ID = @receiptTicketID",
                 *              new SqlParameter("receiptTicketID", receiptTicket.ID));
                 *      }
                 *      else
                 *      {
                 *          int count2 = wmsEntities.Database.SqlQuery<int>(
                 *              "SELECT COUNT(*) FROM ReceiptTicketItem " +
                 *              "WHERE State = '已收货' AND ReceiptTicketID = @receiptTicketID",
                 *              new SqlParameter("receiptTicketID", receiptTicket.ID)).FirstOrDefault();
                 *          if (count2 == 0)
                 *          {
                 *              wmsEntities.Database.ExecuteSqlCommand(
                 *                  "UPDATE ReceiptTicket SET State = '部分过检' " +
                 *                  "WHERE ID = @receiptTicketID",
                 *                  new SqlParameter("receiptTicketID", receiptTicket.ID));
                 *          }
                 *      }
                 *      if (MessageBox.Show("是否同时收货?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                 *      {
                 *          foreach (SubmissionTicketItem sti in submissionTicketItem)
                 *          {
                 *          //sti.State = "合格";
                 *              ReceiptTicketItem receiptTicketItem = (from rti in wmsEntities.ReceiptTicketItem where rti.ID == sti.ReceiptTicketItemID select rti).FirstOrDefault();
                 *              if (receiptTicketItem != null)
                 *              {
                 *                  receiptTicketItem.State = "已收货";
                 *                  StockInfo stockInfo = (from si in wmsEntities.StockInfo where si.ReceiptTicketItemID == receiptTicketItem.ID select si).FirstOrDefault();
                 *                  //StockInfo stockInfo = (from si in wmsEntities.StockInfo where si.ReceiptTicketItemID == receiptTicketItem.ID select si).FirstOrDefault();
                 *                  if (stockInfo != null)
                 *                  {/*TODO
                 *                      if (stockInfo.SubmissionAreaAmount != null)
                 *                      {
                 *                          int amount = (int)stockInfo.SubmissionAreaAmount;
                 *                          stockInfo.ReceiptAreaAmount += amount;
                 *                          stockInfo.SubmissionAreaAmount = 0;
                 *                      }
                 *                  }
                 *              }
                 *          }
                 *          wmsEntities.SaveChanges();
                 *          int count2 = wmsEntities.Database.SqlQuery<int>(
                 *              "SELECT COUNT(*) FROM ReceiptTicketItem " +
                 *              "WHERE State <> '已收货' AND ReceiptTicketID = @receiptTicketID",
                 *              new SqlParameter("receiptTicketID", receiptTicket.ID)).FirstOrDefault();
                 *          if (count2 == 0)
                 *          {
                 *              wmsEntities.Database.ExecuteSqlCommand(
                 *                  "UPDATE ReceiptTicket SET State = '已收货' " +
                 *                  "WHERE ID = @receiptTicketID",
                 *                  new SqlParameter("receiptTicketID", receiptTicket.ID));
                 *          }
                 *          else
                 *          {
                 *              wmsEntities.Database.ExecuteSqlCommand(
                 *                  "UPDATE ReceiptTicket SET State = '部分收货' " +
                 *                  "WHERE ID = @receiptTicketID",
                 *                  new SqlParameter("receiptTicketID", receiptTicket.ID));
                 *          }
                 *      }
                 *  }
                 *  this.Invoke(new Action(() =>
                 *  {
                 *      this.Search(null, null);
                 *  }));
                 * }).Start();*/
            }
            catch
            {
                MessageBox.Show("无法连接到数据库,请查看网络连接!", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
                return;
            }

            /*
             * WMSEntities wmsEntities = new WMSEntities();
             * var worksheet = this.reoGridControl1.Worksheets[0];
             * try
             * {
             *  if (worksheet.SelectionRange.Rows != 1)
             *  {
             *      throw new EntityCommandExecutionException();
             *  }
             *  int submissionTicketID = int.Parse(worksheet[worksheet.SelectionRange.Row, 0].ToString());
             *  SubmissionTicket submissionTicket = (from st in wmsEntities.SubmissionTicket where st.ID == submissionTicketID select st).Single();
             *  if (submissionTicket.State == "合格")
             *  {
             *      MessageBox.Show("该送检单状态已置为合格");
             *  }
             *  else
             *  {
             *      wmsEntities.Database.ExecuteSqlCommand("UPDATE SubmissionTicket SET State='合格' WHERE ID=@submissionTicketID", new SqlParameter("submissionTicketID", submissionTicketID));
             *      wmsEntities.Database.ExecuteSqlCommand("UPDATE SubmissionTicketItem SET State='合格' WHERE SubmissionTicketID=@submissionTicketID", new SqlParameter("submissionTicketID", submissionTicketID));
             *      wmsEntities.Database.ExecuteSqlCommand("UPDATE ReceiptTicket SET State='过检' WHERE ID=@receiptTicket", new SqlParameter("receiptTicket", submissionTicket.ReceiptTicketID));
             *      wmsEntities.Database.ExecuteSqlCommand("UPDATE ReceiptTicketItem SET State='过检' WHERE ReceiptTicketID=@receiptTicket", new SqlParameter("receiptTicket", submissionTicket.ReceiptTicketID));
             *
             *      if (MessageBox.Show("是否同时收货?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
             *      {
             *          ReceiptTicket receiptTicket = (from rt in wmsEntities.ReceiptTicket where rt.ID == submissionTicket.ReceiptTicketID select rt).FirstOrDefault();
             *          if (receiptTicket != null)
             *          {
             *              if (receiptTicket.State != "已收货")
             *              {
             *                  wmsEntities.Database.ExecuteSqlCommand("UPDATE ReceiptTicket SET State='已收货' WHERE ID=@receiptTicket", new SqlParameter("receiptTicket", submissionTicket.ReceiptTicketID));
             *                  wmsEntities.Database.ExecuteSqlCommand("UPDATE ReceiptTicketItem SET State='已收货' WHERE ReceiptTicketID=@receiptTicket", new SqlParameter("receiptTicket", submissionTicket.ReceiptTicketID));
             *              }
             *
             *          }
             *      }
             *  }
             * }
             * catch(EntityCommandExecutionException)
             * {
             *  MessageBox.Show("请选择一项进行修改", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
             *  return;
             * }
             * catch (Exception)
             * {
             *  MessageBox.Show("无法连接到数据库,请查看网络连接!", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
             *  return;
             * }
             * this.Search(null, null);
             */
        }
        private void ReceiptTicketModify_Load(object sender, EventArgs e)
        {
            /*
             * this.tableLayoutPanelTextBoxes.Controls.Clear();
             * for (int i = 0; i < ReceiptMetaData.receiptNameKeys.Length; i++)
             * {
             *  KeyName curKeyName = ReceiptMetaData.receiptNameKeys[i];
             *  if (curKeyName.Editable == false && curKeyName.Visible == false && curKeyName.Save == true)
             *  {
             *      continue;
             *  }
             *  Label label = new Label();
             *  label.AutoSize = true;
             *  label.Text = curKeyName.Name;
             *  this.tableLayoutPanelTextBoxes.Controls.Add(label);
             *
             *  TextBox textBox = new TextBox();
             *  textBox.Name = "textBox" + curKeyName.Key;
             *  if(curKeyName.Editable == false)
             *  {
             *      textBox.Enabled = false;
             *  }
             *
             *  this.tableLayoutPanelTextBoxes.Controls.Add(textBox);
             *
             * }*/
            Utilities.CreateEditPanel(this.tableLayoutPanelTextBoxes, ReceiptMetaData.receiptNameKeys);
            this.personIDGetter = Utilities.BindTextBoxSelect <FormSelectPerson, Person>(this, "textBoxPersonName", "Name");
            if (this.formMode == FormMode.ALTER)
            {
                this.buttonOK.Text = "修改收货单";
                this.Text          = "修改收货单";
                this.GroupBox.Text = "修改收货单";
                ReceiptTicketView receiptTicketView = (from s in this.wmsEntities.ReceiptTicketView
                                                       where s.ID == this.ID
                                                       select s).Single();
                Utilities.CopyPropertiesToTextBoxes(receiptTicketView, this);
                Utilities.CopyPropertiesToComboBoxes(receiptTicketView, this);
                if (receiptTicketView.SupplierID != null)
                {
                    this.supplierID = (int)receiptTicketView.SupplierID;
                }
                else
                {
                    MessageBox.Show("请重新选择供应商");
                }
                if (receiptTicketView.HasPutawayTicket == "全部生成上架单" || receiptTicketView.HasPutawayTicket == "部分生成上架单" || receiptTicketView.State == "送检中")
                {
                    this.Controls.Find("textBoxState", true)[0].Enabled = false;
                }
                if (user != null)
                {
                    if (user.SupplierID != null)
                    {
                        //ComboBox comboxstate = (ComboBox)this.Controls.Find("comboBoxState", true)[0];
                        this.Controls.Find("textBoxState", true)[0].Enabled = false;

                        //comboxstate.Enabled = false;
                    }
                }


                ReceiptTicket receiptTicket = (from rt in wmsEntities.ReceiptTicket where rt.ID == receiptTicketView.ID select rt).FirstOrDefault();
                if (receiptTicket != null)
                {
                    if (receiptTicket.ReceiptTicketItem.ToArray().Length != 0)
                    {
                        this.Controls.Find("textBoxSupplierName", true)[0].Enabled   = false;
                        this.Controls.Find("textBoxSupplierNumber", true)[0].Enabled = false;
                    }
                }

                //this.Controls.Find("comboBoxState", true)[0].Enabled = false;
                //TextBox textBoxLastUpdateUserID = (TextBox)this.Controls.Find("textBoxLastUpdateUserUserID", true)[0];
                //textBoxLastUpdateUserID.Text = this.userID.ToString();
            }
            else
            {
                this.buttonOK.Text = "添加收货单";

                Warehouse warehouse = (from wh in wmsEntities.Warehouse where wh.ID == this.warehouseID select wh).FirstOrDefault();
                if (warehouse == null)
                {
                    Console.Write("this warehouse is null");
                }
                else
                {
                    TextBox textBoxWarehouseName = (TextBox)this.Controls.Find("textBoxWarehouseName", true)[0];
                    textBoxWarehouseName.Text    = warehouse.Name;
                    textBoxWarehouseName.Enabled = false;
                }
                Project project = (from p in wmsEntities.Project where p.ID == this.projectID select p).FirstOrDefault();
                if (project == null)
                {
                    Console.Write("this project is null");
                }
                else
                {
                    TextBox textBoxProjectName = (TextBox)this.Controls.Find("textBoxProjectName", true)[0];
                    textBoxProjectName.Text    = project.Name;
                    textBoxProjectName.Enabled = false;

                    /*
                     * TextBox textBoxWarehouseName = (TextBox)this.Controls.Find("textBoxWarehouseName", true)[0];
                     * textBoxWarehouseName.Text = warehouse.Name;
                     * textBoxWarehouseName.Enabled = false;*/
                }
                ComboBox comboBoxHasSubmission = (ComboBox)this.Controls.Find("comboBoxHasSubmission", true)[0];
                comboBoxHasSubmission.Text = "否";
                this.Controls.Find("textBoxReceiptDate", true)[0].Text = DateTime.Now.ToString();
                comboBoxHasSubmission.Enabled = false;
                this.Controls.Find("textBoxState", true)[0].Text = "待收货";
                if (this.user != null)
                {
                    if (this.user.Supplier == null)
                    {
                        this.Controls.Find("textBoxSupplierName", true)[0].Click += textBoxSupplierID_Click;
                    }
                    else
                    {
                        this.Controls.Find("textBoxSupplierName", true)[0].Text    = this.user.Supplier.Name;
                        this.Controls.Find("textBoxSupplierName", true)[0].Enabled = false;
                        this.supplierID = (int)this.user.SupplierID;
                    }
                }


                //this.Controls.Find("textBoxState", true)[0].Enabled = false;
                //TextBox textBoxProjectID = (TextBox)this.Controls.Find("textBoxProjectID", true)[0];
                //textBoxProjectID.Text = this.projectID.ToString();
                //textBoxProjectID.Enabled = false;
                //TextBox textBoxCreateUserID = (TextBox)this.Controls.Find("textBoxCreateUserID", true)[0];
                //textBoxCreateUserID.Text = this.userID.ToString();
                //TextBox textBoxWarehouse = (TextBox)this.Controls.Find("textBoxWarehouse", true)[0];
                //textBoxWarehouse.Text = this.warehouseID.ToString();
                //TextBox textBoxID = (TextBox)this.Controls.Find("textBoxID", true)[0];
                //textBoxID.Text = "0";
                //textBoxCreateUserID.Enabled = false;
            }
            //else (this.formMode == FormMode.ADD);

            //this.Controls.Find("textBoxID", true)[0].TextChanged += textBoxID_TextChanged;
            //this.Controls.Find("textBoxProjectID", true)[0].TextChanged += textBoxProjectID_TextChanged;
            //this.Controls.Find("textBoxWarehouse", true)[0].TextChanged += textBoxWarehouseID_TextChanged;
            //this.Controls.Find("textBoxSupplierID", true)[0].TextChanged += textBoxSupplierID_TextChanged;
        }
        private void button1_Click(object sender, EventArgs e)
        {
            string  oldState;
            TextBox textBox = this.Controls.Find("textBoxSupplierName", true)[0] as TextBox;

            if (textBox.Text == "")
            {
                MessageBox.Show("请选择供货商!");
                return;
            }
            if (this.formMode == FormMode.ALTER)
            {
                ReceiptTicket receiptTicket = (from rt in this.wmsEntities.ReceiptTicket where rt.ID == this.ID select rt).FirstOrDefault();
                if (receiptTicket == null)
                {
                    MessageBox.Show("该收货单可能已被删除,请刷新后查看!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                string errorInfo;
                if (Utilities.CopyTextBoxTextsToProperties(this, receiptTicket, ReceiptMetaData.receiptNameKeys, out errorInfo) == false)
                {
                    MessageBox.Show(errorInfo);
                    return;
                }
                //wmsEntities.ReceiptTicket.Add(receiptTicket);
                else
                {
                    oldState = receiptTicket.State;
                    if (Utilities.CopyComboBoxsToProperties(this, receiptTicket, ReceiptMetaData.receiptNameKeys) == false)
                    {
                        MessageBox.Show("状态获取失败。");
                        return;
                    }
                    receiptTicket.LastUpdateTime   = DateTime.Now;
                    receiptTicket.LastUpdateUserID = this.userID;
                    receiptTicket.ProjectID        = this.projectID;
                    receiptTicket.WarehouseID      = this.warehouseID;
                    receiptTicket.SupplierID       = this.supplierID;
                    receiptTicket.PersonID         = this.personIDGetter();
                    wmsEntities.SaveChanges();
                    if (oldState == "待收货")
                    {
                        if (receiptTicket.State == "已收货")
                        {
                            if (MessageBox.Show("是否同时将所有条目置为收货,并将货物放置溢库区?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                            {
                                foreach (ReceiptTicketItem rti in receiptTicket.ReceiptTicketItem)
                                {
                                    StockInfo stockInfo = (from si in wmsEntities.StockInfo where si.ReceiptTicketItemID == rti.ID select si).FirstOrDefault();
                                    if (stockInfo == null)
                                    {
                                        return;
                                    }
                                    stockInfo.OverflowAreaAmount += stockInfo.ReceiptAreaAmount;
                                    stockInfo.ReceiptAreaAmount  -= stockInfo.ReceiptAreaAmount;
                                    rti.State = receiptTicket.State;
                                }
                            }
                        }
                        else if (receiptTicket.State == "拒收")
                        {
                            if (MessageBox.Show("是否同时将所有条目置为拒收?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                            {
                                foreach (ReceiptTicketItem rti in receiptTicket.ReceiptTicketItem)
                                {
                                    rti.State = receiptTicket.State;
                                }
                            }
                        }
                    }
                    else if (oldState == "已收货")
                    {
                        if (receiptTicket.State == "待收货" || receiptTicket.State == "拒收")
                        {
                            if (MessageBox.Show("是否同时将所有条目置为" + receiptTicket.State + "?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                            {
                                foreach (ReceiptTicketItem rti in receiptTicket.ReceiptTicketItem)
                                {
                                    rti.State = receiptTicket.State;
                                    StockInfo stockInfo = (from si in wmsEntities.StockInfo where si.ReceiptTicketItemID == rti.ID select si).FirstOrDefault();
                                    if (stockInfo == null)
                                    {
                                        return;
                                    }
                                    stockInfo.ReceiptAreaAmount  += stockInfo.OverflowAreaAmount;
                                    stockInfo.OverflowAreaAmount -= stockInfo.OverflowAreaAmount;
                                }
                            }
                        }
                    }
                    else if (oldState == "送检中")
                    {
                        receiptTicket.State = "送检中";
                    }
                    else
                    {
                        if (receiptTicket.State == "待收货")
                        {
                            if (MessageBox.Show("是否同时将所有零件置为待收货?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                            {
                                foreach (ReceiptTicketItem rti in receiptTicket.ReceiptTicketItem)
                                {
                                    rti.State = receiptTicket.State;
                                }
                            }
                        }
                        else if (receiptTicket.State == "已收货")
                        {
                            if (MessageBox.Show("是否同时将所有零件置为已收货,并将货物移到溢库区?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                            {
                                foreach (ReceiptTicketItem rti in receiptTicket.ReceiptTicketItem)
                                {
                                    StockInfo stockInfo = (from si in wmsEntities.StockInfo where si.ReceiptTicketItemID == rti.ID select si).FirstOrDefault();
                                    if (stockInfo == null)
                                    {
                                        return;
                                    }
                                    stockInfo.OverflowAreaAmount += stockInfo.ReceiptAreaAmount;
                                    stockInfo.ReceiptAreaAmount  -= stockInfo.ReceiptAreaAmount;
                                    rti.State = receiptTicket.State;
                                }
                            }
                        }
                    }
                    ReceiptTicketItem[] receiptTicketItem = receiptTicket.ReceiptTicketItem.ToArray();
                    foreach (ReceiptTicketItem s in receiptTicketItem)
                    {
                        StockInfo stockInfo = (from si in wmsEntities.StockInfo where si.ReceiptTicketItemID == s.ID select si).FirstOrDefault();
                        if (stockInfo != null)
                        {
                            stockInfo.ReceiptTicketNo = receiptTicket.No;
                        }
                    }

                    wmsEntities.SaveChanges();

                    //MessageBox.Show("Successful!");
                }
            }
            else
            {
                ReceiptTicket receiptTicket = new ReceiptTicket();
                string        errorInfo;
                if (Utilities.CopyTextBoxTextsToProperties(this, receiptTicket, ReceiptMetaData.receiptNameKeys, out errorInfo) == false)
                {
                    MessageBox.Show(errorInfo);
                    return;
                }
                //wmsEntities.ReceiptTicket.Add(receiptTicket);
                else
                {
                    if (Utilities.CopyComboBoxsToProperties(this, receiptTicket, ReceiptMetaData.receiptNameKeys) == false)
                    {
                        MessageBox.Show("状态获取失败。");
                        return;
                    }

                    receiptTicket.LastUpdateUserID = this.userID;
                    receiptTicket.WarehouseID      = this.warehouseID;
                    receiptTicket.ProjectID        = this.projectID;
                    receiptTicket.CreateUserID     = this.userID;
                    receiptTicket.LastUpdateTime   = DateTime.Now;
                    receiptTicket.CreateTime       = DateTime.Now;
                    receiptTicket.SupplierID       = this.supplierID;
                    receiptTicket.HasPutawayTicket = "未生成上架单";
                    receiptTicket.PersonID         = this.personIDGetter();
                    wmsEntities.ReceiptTicket.Add(receiptTicket);
                    wmsEntities.SaveChanges();

                    ////////////////////////////
                    if (string.IsNullOrWhiteSpace(receiptTicket.No))
                    {
                        if (receiptTicket.CreateTime.HasValue == false)
                        {
                            MessageBox.Show("单号生成失败(未知创建日期)!请手动填写单号");
                            return;
                        }

                        DateTime createDay      = new DateTime(receiptTicket.CreateTime.Value.Year, receiptTicket.CreateTime.Value.Month, receiptTicket.CreateTime.Value.Day);
                        DateTime nextDay        = createDay.AddDays(1);
                        int      maxRankOfToday = Utilities.GetMaxTicketRankOfDay((from s in wmsEntities.ReceiptTicket
                                                                                   where s.CreateTime >= createDay && s.CreateTime < nextDay
                                                                                   select s.No).ToArray());
                        if (maxRankOfToday == -1)
                        {
                            MessageBox.Show("单号生成失败!请手动填写单号");
                            return;
                        }
                        receiptTicket.No = Utilities.GenerateTicketNo("S", receiptTicket.CreateTime.Value, maxRankOfToday + 1);
                    }
                    if (string.IsNullOrWhiteSpace(receiptTicket.Number))
                    {
                        if (receiptTicket.CreateTime.HasValue == false)
                        {
                            MessageBox.Show("单号生成失败(未知创建日期)!请手动填写编号");
                            return;
                        }
                        Supplier supplier = (from s in wmsEntities.Supplier
                                             where s.ID == receiptTicket.SupplierID
                                             select s).FirstOrDefault();
                        if (supplier == null)
                        {
                            MessageBox.Show("编号生成失败(供应商信息不存在)!请手动填写编号");
                            return;
                        }
                        DateTime createMonth = new DateTime(receiptTicket.CreateTime.Value.Year, receiptTicket.CreateTime.Value.Month, 1);
                        DateTime nextMonth   = createMonth.AddMonths(1);
                        var      tmp         = (from s in wmsEntities.ReceiptTicket
                                                where s.CreateTime >= createMonth &&
                                                s.CreateTime < nextMonth &&
                                                s.SupplierID == receiptTicket.SupplierID
                                                select s.Number).ToArray();
                        int maxRankOfMonth = Utilities.GetMaxTicketRankOfSupplierAndMonth(tmp);
                        receiptTicket.Number = Utilities.GenerateTicketNumber(supplier.Number, receiptTicket.CreateTime.Value, maxRankOfMonth + 1);
                    }

                    ///////////////////////////////////////////////////////////////

                    //receiptTicket.No = Utilities.GenerateNo("H", receiptTicket.ID);
                    wmsEntities.SaveChanges();
                    //MessageBox.Show("Successful!");
                }
            }

            modifyFinishedCallback();
            this.Close();
        }
Exemple #9
0
        private void buttonDelete_Click(object sender, EventArgs e)
        {
            var worksheet = this.reoGridControlPutaway.Worksheets[0];

            try
            {
                if (worksheet.SelectionRange.Rows != 1)
                {
                    MessageBox.Show("请选择一项进行修改", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                int putawayTicketItemID;
                try
                {
                    putawayTicketItemID = int.Parse(worksheet[worksheet.SelectionRange.Row, 0].ToString());
                }
                catch
                {
                    MessageBox.Show("请选择一项进行修改", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                PutawayTicketItem putawayTicketItem = (from pti in wmsEntities.PutawayTicketItem where pti.ID == putawayTicketItemID select pti).FirstOrDefault();
                if (putawayTicketItem == null)
                {
                    MessageBox.Show("错误 无法修改此条目", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                else
                {
                    if (putawayTicketItem.State != "待上架")
                    {
                        MessageBox.Show("改上架单状态为" + putawayTicketItem.State + ",无法删除!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }
                    ReceiptTicketItem receiptTicketItem = (from rti in wmsEntities.ReceiptTicketItem where rti.ID == putawayTicketItem.ReceiptTicketItemID select rti).FirstOrDefault();
                    if (receiptTicketItem != null)
                    {
                        receiptTicketItem.HasPutwayAmount -= putawayTicketItem.ScheduledMoveCount;
                    }
                    new Thread(() =>
                    {
                        wmsEntities.SaveChanges();
                        PutawayTicket putawayTicket = putawayTicketItem.PutawayTicket;
                        int n = 0;
                        int m = 0;
                        foreach (PutawayTicketItem pti in putawayTicket.PutawayTicketItem)
                        {
                            ReceiptTicketItem rtii = (from rti in wmsEntities.ReceiptTicketItem where rti.ID == pti.ReceiptTicketItemID select rti).FirstOrDefault();
                            if (rtii != null)
                            {
                                if (pti.ScheduledMoveCount == rtii.HasPutwayAmount)
                                {
                                    n++;
                                }
                                if (rtii.HasPutwayAmount == 0)
                                {
                                    m++;
                                }
                            }
                        }

                        if (m == putawayTicket.PutawayTicketItem.Count)
                        {
                            ReceiptTicket receiptTicket = (from rt in wmsEntities.ReceiptTicket where rt.ID == putawayTicket.ReceiptTicketID select rt).FirstOrDefault();
                            if (receiptTicket != null)
                            {
                                receiptTicket.HasPutawayTicket = "没有生成上架单";
                            }
                        }
                        else
                        {
                            ReceiptTicket receiptTicket = (from rt in wmsEntities.ReceiptTicket where rt.ID == putawayTicket.ReceiptTicketID select rt).FirstOrDefault();
                            if (receiptTicket != null)
                            {
                                receiptTicket.HasPutawayTicket = "部分生成上架单";
                            }
                            wmsEntities.SaveChanges();
                            wmsEntities.Database.ExecuteSqlCommand("DELETE FROM PutawayTicketItem WHERE ID = @putawayTicketItemID", new SqlParameter("putawayTicketItemID", putawayTicketItem.ID));
                        }
                        this.Invoke(new Action(() =>
                        {
                            this.pagerWidget.Search();
                        }));
                        MessageBox.Show("成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }).Start();
                }
            }
            catch (Exception)
            {
                MessageBox.Show("无法连接到数据库,请查看网络连接!", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
                return;
            }
        }
        private void toolStripButtonDelete_Click(object sender, EventArgs e)
        {
            var        worksheet = this.reoGridControlUser.Worksheets[0];
            List <int> deleteIDs = new List <int>();

            for (int i = 0; i < worksheet.SelectionRange.Rows; i++)
            {
                try
                {
                    int curID = int.Parse(worksheet[i + worksheet.SelectionRange.Row, 0].ToString());
                    deleteIDs.Add(curID);
                }
                catch
                {
                    continue;
                }
            }
            if (deleteIDs.Count == 0)
            {
                MessageBox.Show("请选择您要删除的记录", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (MessageBox.Show("您真的要删除这些记录吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
            {
                return;
            }

            WMSEntities wmsEntities = new WMSEntities();

            foreach (int id in deleteIDs)
            {
                //if (MessageBox.Show("确定删除该上架单?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                //{
                PutawayTicket putawayTicket = (from pt in wmsEntities.PutawayTicket where pt.ID == id select pt).FirstOrDefault();
                if (putawayTicket == null)
                {
                    MessageBox.Show("该上架单已被删除,请刷新查看!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Question);
                    return;
                }
                //if (putawayTicket.State != "待上架")
                //{
                //    MessageBox.Show("该上架单已有部分或者全部上架,无法删除", "提示", MessageBoxButtons.OK, MessageBoxIcon.Question);
                //    continue;
                //}
                ReceiptTicket       receiptTicket      = (from rt in wmsEntities.ReceiptTicket where rt.ID == putawayTicket.ReceiptTicketID select rt).FirstOrDefault();
                PutawayTicketItem[] putawayTicketItems = putawayTicket.PutawayTicketItem.ToArray();
                int n = 0;
                foreach (PutawayTicketItem pti in putawayTicketItems)
                {
                    ReceiptTicketItem receiptTicketItem = (from rti in wmsEntities.ReceiptTicketItem where rti.ID == pti.ReceiptTicketItemID select rti).FirstOrDefault();
                    if (receiptTicketItem != null)
                    {
                        receiptTicketItem.HasPutwayAmount -= (pti.ScheduledMoveCount == null ? 0 : pti.ScheduledMoveCount) - (pti.PutawayAmount == null ? 0 : pti.PutawayAmount);
                        //receiptTicketItem.HasPutwayAmount += pti.PutawayAmount;
                        if (receiptTicketItem.HasPutwayAmount == 0)
                        {
                            n++;
                        }
                    }
                }
                if (n == putawayTicketItems.Length)
                {
                    receiptTicket.HasPutawayTicket = "未生成上架单";
                }
                else
                {
                    receiptTicket.HasPutawayTicket = "部分生成上架单";
                }
                try
                {
                    wmsEntities.Database.ExecuteSqlCommand("DELETE FROM PutawayTicket WHERE ID = @putawayTicketID", new SqlParameter("putawayTicketID", id));
                }
                catch
                {
                    MessageBox.Show("无法连接到数据库,请查看网络连接!", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
                    return;
                }
                //}
            }
            MessageBox.Show("成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            try
            {
                new Thread(() =>
                {
                    wmsEntities.SaveChanges();
                    this.Invoke(new Action(() =>
                    {
                        if (this.key != null || this.value != null)
                        {
                            pagerWidget.AddCondition(this.key, this.value);
                        }
                        pagerWidget.Search();
                    }));
                }).Start();
            }
            catch
            {
                MessageBox.Show("无法连接到数据库,请查看网络连接!", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
                return;
            }
            //var worksheet = this.reoGridControlUser.Worksheets[0];
            //try
            //{

            /*
             * if (worksheet.SelectionRange.Rows != 1)
             * {
             *  MessageBox.Show("请选择一项进行查看", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
             *  return;
             * }
             * int putawayTicketID;
             * try
             * {
             *  putawayTicketID = int.Parse(worksheet[worksheet.SelectionRange.Row, 0].ToString());
             * }
             * catch
             * {
             *  MessageBox.Show("请选择一项进行查看", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
             *  return;
             * }  */
            //FormShelvesItem formShelvesItem = new FormShelvesItem(putawayTicketID);

            /*
             * if (MessageBox.Show("确定删除该上架单?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
             * {
             *  PutawayTicket putawayTicket = (from pt in wmsEntities.PutawayTicket where pt.ID == putawayTicketID select pt).FirstOrDefault();
             *  if (putawayTicket == null)
             *  {
             *      MessageBox.Show("该上架单已被删除,请刷新查看!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Question);
             *      return;
             *  }
             *  if (putawayTicket.State != "待上架")
             *  {
             *      MessageBox.Show("该上架单已有部分或者全部上架,无法删除", "提示", MessageBoxButtons.OK, MessageBoxIcon.Question);
             *      return;
             *  }
             *  ReceiptTicket receiptTicket = (from rt in wmsEntities.ReceiptTicket where rt.ID == putawayTicket.ReceiptTicketID select rt).FirstOrDefault();
             *  PutawayTicketItem[] putawayTicketItems = putawayTicket.PutawayTicketItem.ToArray();
             *  int n = 0;
             *  foreach (PutawayTicketItem pti in putawayTicketItems)
             *  {
             *      ReceiptTicketItem receiptTicketItem = (from rti in wmsEntities.ReceiptTicketItem where rti.ID == pti.ReceiptTicketItemID select rti).FirstOrDefault();
             *      if (receiptTicketItem != null)
             *      {
             *          receiptTicketItem.HasPutwayAmount -= pti.ScheduledMoveCount;
             *          if (receiptTicketItem.HasPutwayAmount == 0)
             *          {
             *              n++;
             *          }
             *      }
             *  }
             *  if (n == putawayTicketItems.Length)
             *  {
             *      receiptTicket.HasPutawayTicket = "未生成上架单";
             *  }
             *  else
             *  {
             *      receiptTicket.HasPutawayTicket = "部分生成上架单";
             *  }
             *  try
             *  {
             *      new Thread(() =>
             *      {
             *          wmsEntities.Database.ExecuteSqlCommand("DELETE FROM PutawayTicket WHERE ID = @putawayTicketID", new SqlParameter("putawayTicketID", putawayTicketID));
             *          wmsEntities.SaveChanges();
             *          MessageBox.Show("成功");
             *          this.Invoke(new Action(() =>
             *          {
             *              if (this.key != null || this.value != null)
             *              {
             *                  pagerWidget.AddCondition(this.key, this.value);
             *              }
             *              pagerWidget.Search();
             *          }));
             *      }).Start();
             *  }
             *  catch (EntityException)
             *  {
             *      MessageBox.Show("该上架单已被删除!");
             *  }
             *  catch (Exception)
             *  {
             *      MessageBox.Show("无法连接到数据库,请查看网络连接!", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
             *      return;
             *  }
             * }
             * }
             * catch
             * {
             * MessageBox.Show("无法连接到数据库,请查看网络连接!", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
             * return;
             * }*/
        }
        private void OK_Click(object sender, EventArgs e)
        {
            var worksheet = this.reoGridControlUser.Worksheets[0];

            worksheet.FocusPos = new CellPosition(0, 0);
            WMSEntities   wmsEntities   = new WMSEntities();
            ReceiptTicket receiptTicket = (from rt in wmsEntities.ReceiptTicket where rt.ID == this.receiptTicketID select rt).FirstOrDefault();

            if (receiptTicket == null)
            {
                MessageBox.Show("该收货单已被删除,送检失败");
                return;
            }
            else
            {
                if (receiptTicket.State != "待收货")
                {
                    MessageBox.Show("该收货单状态为" + receiptTicket.State + ",无法送检!");
                }
            }
            SortedDictionary <int, decimal> idsAndSubmissionAmount = SelectReceiptTicketItem();

            if (idsAndSubmissionAmount == null)
            {
                return;
            }
            Dictionary <ReceiptTicketItem, decimal> receiptTicketItemsAndSubmissionAmount = new Dictionary <ReceiptTicketItem, decimal>();

            foreach (KeyValuePair <int, decimal> kv in idsAndSubmissionAmount)
            {
                ReceiptTicketItem receiptTicketItem = (from rti in wmsEntities.ReceiptTicketItem where rti.ID == kv.Key select rti).FirstOrDefault();
                if (receiptTicketItem != null)
                {
                    if (receiptTicketItem.ReceiviptAmount < kv.Value)
                    {
                        MessageBox.Show("送检数量不应大于收货数量", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }
                    if (kv.Value < 0)
                    {
                        MessageBox.Show("送检数量不应为负数", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }
                    receiptTicketItemsAndSubmissionAmount.Add(receiptTicketItem, kv.Value);
                }
            }
            if (this.formMode == FormMode.ADD)
            {
                SubmissionTicket submissionTicket = new SubmissionTicket();
                string           errorInfo;
                if (Utilities.CopyTextBoxTextsToProperties(this, submissionTicket, ReceiptMetaData.submissionTicketKeyName, out errorInfo) == false)
                {
                    MessageBox.Show(errorInfo);
                    return;
                }
                else
                {
                    Utilities.CopyComboBoxsToProperties(this, submissionTicket, ReceiptMetaData.submissionTicketKeyName);
                    submissionTicket.PersonID                  = this.PersonIDGetter();
                    submissionTicket.ReceivePersonID           = this.ReceivePersonIDGetter();
                    submissionTicket.SubmissionPersonID        = this.SubmissionPersonIDGetter();
                    submissionTicket.DeliverSubmissionPersonID = this.DeliverSubmissionPersonIDGetter();
                    //ReceiptTicket receiptTicket = (from rt in wmsEntities.ReceiptTicket where rt.ID == this.receiptTicketID select rt).FirstOrDefault();

                    submissionTicket.SubmissionDate   = receiptTicket.ReceiptDate;
                    submissionTicket.CreateTime       = DateTime.Now;
                    submissionTicket.ReceiptTicketID  = this.receiptTicketID;
                    submissionTicket.CreateUserID     = this.userID;
                    submissionTicket.LastUpdateTime   = DateTime.Now;
                    submissionTicket.LastUpdateUserID = this.userID;
                    submissionTicket.ProjectID        = receiptTicket.ProjectID;
                    submissionTicket.WarehouseID      = receiptTicket.WarehouseID;
                    submissionTicket.State            = "待检";
                    //////////////////////////// Begin
                    if (string.IsNullOrWhiteSpace(submissionTicket.No))
                    {
                        if (submissionTicket.CreateTime.HasValue == false)
                        {
                            MessageBox.Show("单号生成失败(未知创建日期)!请手动填写单号", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            return;
                        }

                        DateTime createDay      = new DateTime(submissionTicket.CreateTime.Value.Year, submissionTicket.CreateTime.Value.Month, submissionTicket.CreateTime.Value.Day);
                        DateTime nextDay        = createDay.AddDays(1);
                        int      maxRankOfToday = Utilities.GetMaxTicketRankOfDay((from s in wmsEntities.SubmissionTicket
                                                                                   where s.CreateTime >= createDay && s.CreateTime < nextDay
                                                                                   select s.No).ToArray());
                        if (maxRankOfToday == -1)
                        {
                            MessageBox.Show("单号生成失败!请手动填写单号", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            return;
                        }
                        submissionTicket.No = Utilities.GenerateTicketNo("J", submissionTicket.CreateTime.Value, maxRankOfToday + 1);
                    }
                    /////////////////////////////////////////////////////////////// End
                    wmsEntities.SubmissionTicket.Add(submissionTicket);


                    try
                    {
                        wmsEntities.SaveChanges();
                        //submissionTicket.No = Utilities.GenerateTicketNo()

                        wmsEntities.SaveChanges();
                        foreach (KeyValuePair <ReceiptTicketItem, decimal> vp in receiptTicketItemsAndSubmissionAmount)
                        {
                            SubmissionTicketItem submissionTicketItem = new SubmissionTicketItem();
                            StockInfo            stockInfo            = (from si in wmsEntities.StockInfo where si.ReceiptTicketItemID == vp.Key.ID select si).FirstOrDefault();
                            if (stockInfo == null)
                            {
                                MessageBox.Show("找不到对应的库存信息", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            }
                            else
                            {
                                if (stockInfo.ReceiptAreaAmount != null)
                                {
                                    submissionTicketItem.ArriveAmount = stockInfo.ReceiptAreaAmount;
                                }
                                stockInfo.SubmissionAmount               = vp.Value;
                                stockInfo.ReceiptAreaAmount             -= vp.Value;
                                submissionTicketItem.ArriveAmount        = vp.Key.ReceiviptAmount;
                                submissionTicketItem.ReceiptTicketItemID = vp.Key.ID;

                                submissionTicketItem.State = "待检";
                                vp.Key.State = "送检中";
                                submissionTicketItem.SubmissionAmount   = vp.Value;
                                submissionTicketItem.SubmissionTicketID = submissionTicket.ID;
                                wmsEntities.SubmissionTicketItem.Add(submissionTicketItem);
                            }
                        }
                        receiptTicket.HasSubmission = 1;
                        receiptTicket.State         = "送检中";
                        wmsEntities.SaveChanges();

                        /*
                         * int count = wmsEntities.Database.SqlQuery<int>(
                         *  "SELECT COUNT(*) FROM ReceiptTicketItem " +
                         *  "WHERE ReceiptTicketID = @receiptTicketID AND State <> '送检中'",
                         *  new SqlParameter("receiptTicketID", receiptTicketID)).FirstOrDefault();
                         * if (count == 0)
                         * {
                         *  wmsEntities.Database.ExecuteSqlCommand(
                         *      "UPDATE ReceiptTicket SET State='送检中' " +
                         *      "WHERE ID = @receiptTicketID",
                         *      new SqlParameter("receiptTicketID", receiptTicketID));
                         * }
                         * else
                         * {
                         *  wmsEntities.Database.ExecuteSqlCommand(
                         *      "UPDATE ReceiptTicket SET State='部分送检中' " +
                         *      "WHERE ID = @receiptTicketID",
                         *      new SqlParameter("receiptTicketID", receiptTicketID));
                         * }
                         */

                        this.Search();
                        CallBack();
                        this.Hide();

                        MessageBox.Show("收货单条目送检成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    catch
                    {
                        MessageBox.Show("无法连接到数据库,请查看网络连接!", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
                        return;
                    }
                }
            }
            else
            {
            }
        }