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(); }
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; } } }