private SubmissionTicket[] idsToSubmissionTickets(int[] ids)
        {
            List <SubmissionTicket> submissionTicketList = new List <SubmissionTicket>();

            try
            {
                WMSEntities wmsEntities = new WMSEntities();

                foreach (int id in ids)
                {
                    SubmissionTicket submissionTicket = (from s in wmsEntities.SubmissionTicket where s.ID == id select s).FirstOrDefault();
                    if (submissionTicket != null)
                    {
                        submissionTicket.PaintTime = DateTime.Now;
                        submissionTicketList.Add(submissionTicket);
                    }
                }
                wmsEntities.SaveChanges();
            }
            catch
            {
                MessageBox.Show("无法连接到数据库,请查看网络连接!", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
                return(null);
            }

            return(submissionTicketList.ToArray());
        }
        private void RefreshTextBoxes()
        {
            this.ClearTextBoxes();
            var worksheet = this.reoGridControlPutaway.Worksheets[0];

            int[] ids = Utilities.GetSelectedIDs(this.reoGridControlPutaway);
            if (ids.Length == 0)
            {
                this.submissionTicketID = -1;
                return;
            }
            int id = ids[0];

            SubmissionTicket submissionTicket = (from st in wmsEntities.SubmissionTicket where st.ID == id select st).FirstOrDefault();

            if (submissionTicket == null)
            {
                MessageBox.Show("系统错误,未找到相应上架单项目", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            this.submissionTicketID = int.Parse(submissionTicket.ID.ToString());

            Utilities.CopyPropertiesToTextBoxes(submissionTicket, this);
            //Utilities.CopyPropertiesToComboBoxes(shipmentTicketItemView, this);
        }
        private SubmissionTicket AddPreviewTime(SubmissionTicket submissionTicket)
        {
            if (submissionTicket != null)
            {
                submissionTicket.PaintTime = DateTime.Now;
            }

            return(submissionTicket);
        }
        private void buttonModify_Click(object sender, EventArgs e)
        {
            var worksheet = this.reoGridControlPutaway.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).FirstOrDefault();
                if (submissionTicket == null)
                {
                    MessageBox.Show("错误 无法修改此条目");
                }
                else
                {
                    string errorInfo;
                    if (Utilities.CopyTextBoxTextsToProperties(this, submissionTicket, ReceiptMetaData.submissionTicketKeyName, out errorInfo) == false)
                    {
                        MessageBox.Show(errorInfo);
                        return;
                    }
                    else
                    {
                        new Thread(() =>
                        {
                            wmsEntities.SaveChanges();
                            this.Invoke(new Action(() =>
                            {
                                Search();
                            }));
                            MessageBox.Show("成功");
                        }).Start();
                    }
                }
            }
            catch (EntityCommandExecutionException)
            {
                MessageBox.Show("请选择一项进行修改", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            catch (Exception)
            {
                MessageBox.Show("无法连接到数据库,请查看网络连接!", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
                return;
            }
        }
        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();
            }
        }
 private void FormAddSubmissionTicket_Load(object sender, EventArgs e)
 {
     Utilities.CreateEditPanel(this.tableLayoutPanelTextBoxes, ReceiptMetaData.submissionTicketKeyName);
     this.PersonIDGetter           = Utilities.BindTextBoxSelect <FormSelectPerson, Person>(this, "textBoxPersonName", "Name");
     this.DeliverPersonIDGetter    = Utilities.BindTextBoxSelect <FormSelectPerson, Person>(this, "textBoxDeliverSubmissionPersonName", "Name");
     this.SubmissionPersonIDGetter = Utilities.BindTextBoxSelect <FormSelectPerson, Person>(this, "textBoxSubmissionPersonName", "Name");
     this.ReceivePersonIDGetter    = Utilities.BindTextBoxSelect <FormSelectPerson, Person>(this, "textBoxReceivePersonName", "Name");
     //this.Controls.Find("textBoxID", true)[0].Text = "0";
     //TextBox textBoxReceiptTicketID = (TextBox)this.Controls.Find("textBoxReceiptTicketID", true)[0];
     //textBoxReceiptTicketID.Text = receiptTicketID.ToString();
     //textBoxReceiptTicketID.Enabled = false;
     if (this.formMode == FormMode.ADD)
     {
         TextBox textBoxState = (TextBox)this.Controls.Find("textBoxState", true)[0];
         textBoxState.Text    = "待检";
         textBoxState.Enabled = false;
     }
     else
     {
         this.submissionTicket = (from st in wmsEntities.SubmissionTicket where st.ID == this.submissionTicketID select st).FirstOrDefault();
         SubmissionTicketView submissionTicketView;
         submissionTicketView = (from st in wmsEntities.SubmissionTicketView where st.ID == this.submissionTicketID select st).FirstOrDefault();
         if (submissionTicketView == null)
         {
             MessageBox.Show("该送检单已被删除!");
             CallBack();
             this.Close();
         }
         else
         {
             this.personID = submissionTicket.PersonID == null ? -1 : (int)submissionTicket.PersonID;
             Utilities.CopyPropertiesToTextBoxes(submissionTicketView, this);
             Utilities.CopyPropertiesToComboBoxes(submissionTicketView, this);
         }
     }
 }
        private void buttonOK_Click(object sender, EventArgs e)
        {
            WMSEntities      wmsEntities      = new WMSEntities();
            SubmissionTicket submissionTicket = (from st in wmsEntities.SubmissionTicket where st.ID == this.submissionTicketID select st).FirstOrDefault();

            if (submissionTicket == null)
            {
                MessageBox.Show("该送检单已被删除");
                return;
            }
            string errorInfo;

            if (Utilities.CopyTextBoxTextsToProperties(this, submissionTicket, ReceiptMetaData.submissionTicketKeyName, out errorInfo) == false || Utilities.CopyComboBoxsToProperties(this, submissionTicket, ReceiptMetaData.submissionTicketKeyName) == false)
            {
                MessageBox.Show(errorInfo + "获取数据数据失败");
                return;
            }
            //this.personID = this.PersonIDGetter();
            //submissionTicket.PersonID = this.personID == -1 ? this.PersonIDGetter() : this.personID;
            if (this.PersonIDGetter() != -1)
            {
                submissionTicket.PersonID = PersonIDGetter();
            }
            if (this.DeliverPersonIDGetter() != -1)
            {
                submissionTicket.DeliverSubmissionPersonID = DeliverPersonIDGetter();
            }
            if (this.SubmissionPersonIDGetter() != -1)
            {
                submissionTicket.SubmissionPersonID = SubmissionPersonIDGetter();
            }
            if (this.ReceivePersonIDGetter() != -1)
            {
                submissionTicket.ReceivePersonID = ReceivePersonIDGetter();
            }
            submissionTicket.LastUpdateUserID = this.userID;
            submissionTicket.LastUpdateTime   = DateTime.Now;
            new Thread(() =>
            {
                wmsEntities.SaveChanges();
                MessageBox.Show("修改成功");
                this.Invoke(new Action(() =>
                {
                    CallBack();
                    this.Hide();
                }));
            }).Start();

            /*
             * WMSEntities wmsEntities = new WMSEntities();
             * if (this.formMode == FormMode.ADD)
             * {
             *  this.submissionTicket = new SubmissionTicket();
             * }
             * else
             * {
             *  this.submissionTicket = (from st in wmsEntities.SubmissionTicket where st.ID == this.submissionTicketID select st).FirstOrDefault();
             *  if (submissionTicket == null)
             *  {
             *      MessageBox.Show("该送检单已被删除");
             *      return;
             *  }
             * }
             * 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.personID == -1 ? this.PersonIDGetter() : this.personID;
             *
             *  if (this.formMode == FormMode.ADD)
             *  {
             *      ReceiptTicket receiptTicket = (from rt in wmsEntities.ReceiptTicket where rt.ID == receiptTicketID select rt).FirstOrDefault();
             *      if (receiptTicket != null)
             *      {
             *          submissionTicket.ProjectID = receiptTicket.ProjectID;
             *          submissionTicket.WarehouseID = receiptTicket.Warehouse;
             *          submissionTicket.ReceiptTicketID = receiptTicket.ID;
             *      }
             *      submissionTicket.CreateTime = DateTime.Now;
             *      submissionTicket.CreateUserID = this.userID;
             *      submissionTicket.LastUpdateTime = DateTime.Now;
             *      submissionTicket.LastUpdateUserID = this.userID;
             *      wmsEntities.SubmissionTicket.Add(submissionTicket);
             *  }
             *  else if (this.formMode == FormMode.ALTER)
             *  {
             *      submissionTicket.PersonID = this.personID == -1 ? this.PersonIDGetter() : this.personID;
             *      submissionTicket.LastUpdateUserID = this.userID;
             *      submissionTicket.LastUpdateTime = DateTime.Now;
             *      new Thread(()=>
             *      {
             *          try
             *          {
             *              this.wmsEntities.SaveChanges();
             *              MessageBox.Show("修改成功");
             *          }
             *          catch
             *          {
             *              MessageBox.Show("无法连接到数据库,请查看网络连接!", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
             *              return;
             *          }
             *          CallBack();
             *      }).Start();
             *      this.Close();
             *      return;
             *  }
             * }
             * ReceiptTicketItem[] receiptTicketItem = (from rti in wmsEntities.ReceiptTicketItem where rti.ReceiptTicketID == this.receiptTicketID select rti).ToArray();
             * if (receiptTicketItem.Length == 0)
             * {
             *  MessageBox.Show("该收货单未添加收货单条目");
             * }
             * else
             * {
             *  foreach(ReceiptTicketItem rti in receiptTicketItem)
             *  {
             *      SubmissionTicketItem submissionTicketItem1 = (from sti in wmsEntities.SubmissionTicketItem where sti.ReceiptTicketItemID == rti.ID select sti).FirstOrDefault();
             *      if (rti.State == "送检中" && submissionTicketItem1 != null)
             *      {
             *          continue;
             *      }
             *      else
             *      {
             *          StockInfo stockInfo = (from si in wmsEntities.StockInfo where si.ReceiptTicketItemID == rti.ID select si).FirstOrDefault();
             *          if (stockInfo == null)
             *          {
             *              MessageBox.Show("找不到对应的库存信息");
             *          }
             *          else
             *          {
             *              if (stockInfo.ReceiptAreaAmount != null)
             *              {
             *                  int amountReceiptArea;
             *                  amountReceiptArea = (int)stockInfo.ReceiptAreaAmount;
             *                  stockInfo.ReceiptAreaAmount = 0;
             *                  //TODO stockInfo.SubmissionAreaAmount = amountReceiptArea;
             *              }
             *          }
             *          rti.State = "送检中";
             *          SubmissionTicketItem submissionTicketItem = new SubmissionTicketItem();
             *          submissionTicketItem.ReceiptTicketItemID = rti.ID;
             *          submissionTicketItem.State = "待检";
             *          submissionTicket.SubmissionTicketItem.Add(submissionTicketItem);
             *      }
             *  }
             *  new Thread(() =>
             *  {
             *      try
             *      {
             *          wmsEntities.Database.ExecuteSqlCommand("UPDATE ReceiptTicket SET State = '送检中' WHERE ID = @receiptTicket", new SqlParameter("receiptTicket", receiptTicketID));
             *          wmsEntities.SaveChanges();
             *          submissionTicket.No = Utilities.GenerateNo("J", submissionTicket.ID);
             *          wmsEntities.SaveChanges();
             *          MessageBox.Show("成功");
             *      }
             *      catch
             *      {
             *          MessageBox.Show("无法连接到数据库,请查看网络连接!", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
             *          return;
             *      }
             *  }).Start();
             * }
             * CallBack();*/
        }
예제 #8
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;
            }
        }
예제 #9
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();
        }
예제 #10
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;
            }
        }
예제 #11
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 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
            {
            }
        }