Beispiel #1
0
        public void AddWIP(wiplist list, string ID, int numAmount)
        {
            context.wiplist.Add(list);
            var result = (from m in context.materials
                          where m.ID == ID
                          select m).First();

            result.WIPAmount = result.WIPAmount + numAmount;
            context.SaveChanges();
        }
Beispiel #2
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (cbxType.Text == "")
            {
                cf.showErrorMessage("資料尚未完整", "類型尚未選擇");
                cbxType.Focus();
            }
            else if (type == "WIP" && txtCompany.Text == string.Empty)
            {
                cf.showErrorMessage("資料輸入錯誤", "請輸入加工工廠");
                txtCompany.Focus();
            }
            else
            {
                try
                {
                    int currentAmount = int.Parse(txtCurrentAmount.Text);
                    int amount        = int.Parse(txtAmount.Text);

                    if (amount == 0)
                    {
                        cf.showErrorMessage("資料輸入錯誤", "數量不得為 0");
                        return;
                    }

                    int materialNewAmount = currentAmount;

                    string imgURL = "";
                    if (picCameraPhoto.Image != null)
                    {
                        imgURL = "MSPImages\\" + type + "\\" + lblID.Text + ".jpg";
                    }
                    switch (type)
                    {
                    case "Input":
                        materialNewAmount = currentAmount + amount;
                        inputlist list = new inputlist();
                        list.ID            = lblID.Text;
                        list.Material_ID   = cbxMaterialID.Text;
                        list.Material_Name = cbxMaterialName.Text;
                        list.Amount        = int.Parse(txtAmount.Text);
                        list.User_Name     = Account.CurrentUser.User;
                        list.Type          = cbxType.Text;
                        list.Time          = DateTime.Now;
                        list.Image         = imgURL;
                        list.Comment       = txtComment.Text;
                        db.AddInput(list, cbxMaterialID.Text, materialNewAmount);
                        break;

                    case "Output":
                        materialNewAmount = currentAmount - amount;
                        outputlist olist = new outputlist();
                        olist.ID            = lblID.Text;
                        olist.Material_ID   = cbxMaterialID.Text;
                        olist.Material_Name = cbxMaterialName.Text;
                        olist.Amount        = int.Parse(txtAmount.Text);
                        olist.User_Name     = Account.CurrentUser.User;
                        olist.Type          = cbxType.Text;
                        olist.Time          = DateTime.Now;
                        olist.Image         = imgURL;
                        olist.Comment       = txtComment.Text;
                        db.AddOutput(olist, cbxMaterialID.Text, materialNewAmount);
                        break;

                    case "Scrapped":
                        materialNewAmount = currentAmount - amount;
                        scrapped slist = new scrapped();
                        slist.ID            = lblID.Text;
                        slist.Material_ID   = cbxMaterialID.Text;
                        slist.Material_Name = cbxMaterialName.Text;
                        slist.Amount        = int.Parse(txtAmount.Text);
                        slist.User_Name     = Account.CurrentUser.User;
                        slist.Type          = cbxType.Text;
                        slist.Time          = DateTime.Now;
                        slist.Image         = imgURL;
                        slist.Reason        = txtComment.Text;
                        db.AddScrapped(slist, cbxMaterialID.Text, materialNewAmount);
                        break;

                    case "WIP":
                        int     wipAmount = amount;
                        wiplist wlist     = new wiplist();
                        wlist.ID            = lblID.Text;
                        wlist.Material_ID   = cbxMaterialID.Text;
                        wlist.Material_Name = cbxMaterialName.Text;
                        wlist.Amount        = int.Parse(txtAmount.Text);
                        wlist.User_Name     = Account.CurrentUser.User;
                        wlist.Type          = cbxType.Text;
                        wlist.Time          = DateTime.Now;
                        wlist.Image         = imgURL;
                        wlist.Reason        = txtComment.Text;
                        wlist.CompanyName   = txtCompany.Text;
                        db.AddWIP(wlist, cbxMaterialID.Text, wipAmount);
                        break;

                    default:
                        materialNewAmount = currentAmount;
                        break;
                    }
                    MessageBox.Show("存檔成功");
                    success = true;
                }
                catch (Exception ex)
                {
                    if (ex.InnerException != null)
                    {
                        cf.showErrorMessage("存檔錯誤", ex.InnerException.InnerException.Message);
                    }
                    else if (((System.Data.Entity.Validation.DbEntityValidationException)ex).EntityValidationErrors.Count() > 0)
                    {
                        cf.showErrorMessage("存檔錯誤", "資料庫欄位缺少\n" + ex.Message);
                    }
                    else
                    {
                        cf.showErrorMessage("存檔錯誤", ex.Message);
                    }
                    success = false;
                }
            }
        }