/// <summary> /// 판매 메뉴를 업데이트 하기 위한 메서드 /// </summary> /// <param name="salesMenuVO">판매메뉴 객체</param> /// <param name="oldeMenuCode">수정하기 전의 메뉴코드</param> /// <returns>성공여부 행의 개수를 반환</returns> public int UpdateMenu(SalesMenuVO salesMenuVO, string oldeMenuCode) { connection = new DBConnection(); string storedProcedure = "UpdateSalesMenu"; SqlParameter[] sqlParameters = new SqlParameter[] { new SqlParameter("menuCode", salesMenuVO.MenuCode), new SqlParameter("menuName", salesMenuVO.MenuName), new SqlParameter("price", salesMenuVO.Price), new SqlParameter("kCal", salesMenuVO.Kcal), new SqlParameter("menuImageLocation", salesMenuVO.MenuImageLocation), new SqlParameter("division", salesMenuVO.Division), new SqlParameter("additionalContext", salesMenuVO.AdditionalContext), new SqlParameter("discountRatio", salesMenuVO.DiscountRatio), new SqlParameter("oldMenuCode", oldeMenuCode) }; try { return(connection.Update(storedProcedure, sqlParameters)); } catch (SqlException) { throw; } }
/// <summary> /// 모든 메뉴를 검색하는OutPutAllMenus 메서드 /// </summary> /// <returns>모든메뉴를 List of SalesMenuVO화 시켜 반환</returns> public List <SalesMenuVO> OutPutAllMenus() { List <SalesMenuVO> lst = new List <SalesMenuVO>(); string sp = "SelectMenu"; try { SqlDataReader sdr = new DBConnection().Select(sp, null); while (sdr.Read()) { SalesMenuVO salesMenu = new SalesMenuVO(); salesMenu.MenuCode = sdr["menuCode"].ToString(); salesMenu.MenuName = sdr["menuName"].ToString(); salesMenu.AdditionalContext = sdr["additionalContext"].ToString(); salesMenu.Division = int.Parse(sdr["division"].ToString()); salesMenu.Kcal = Convert.ToInt32(sdr["kCal"]); salesMenu.MenuImageLocation = sdr["menuImageLocation"].ToString(); salesMenu.Price = float.Parse(sdr["price"].ToString()); salesMenu.DiscountRatio = float.Parse(sdr["discountRatio"].ToString()); lst.Add(salesMenu); } return(lst); } catch (SqlException) { throw; } }
/// <summary> /// 메뉴코드별 메뉴를 검색하는 메서드 /// </summary> /// <param name="menuCode">메뉴코드</param> /// <param name="division">구분</param> /// <returns>검색 결과를 컬렉션으로 반환</returns> public List <SalesMenuVO> SelectMenuByMenuCode(string menuCode, int division) { List <SalesMenuVO> lst = new List <SalesMenuVO>(); string sp = "SelectMenuByMenuCode"; SqlParameter[] sqlParameters = new SqlParameter[] { new SqlParameter("menuCode", menuCode), new SqlParameter("division", division) }; try { SqlDataReader sdr = new DBConnection().Select(sp, sqlParameters); while (sdr.Read()) { SalesMenuVO salesMenu = new SalesMenuVO(); salesMenu.MenuCode = sdr["menuCode"].ToString(); salesMenu.MenuName = sdr["menuName"].ToString(); salesMenu.AdditionalContext = sdr["additionalContext"].ToString(); salesMenu.Division = int.Parse(sdr["division"].ToString()); salesMenu.Kcal = Convert.ToInt32(sdr["kCal"]); salesMenu.MenuImageLocation = sdr["menuImageLocation"].ToString(); salesMenu.Price = float.Parse(sdr["price"].ToString()); salesMenu.DiscountRatio = float.Parse(sdr["discountRatio"].ToString()); lst.Add(salesMenu); } return(lst); } catch (SqlException) { throw; } }
/// <summary> /// 메뉴를 업데이트 하는 메서드 /// </summary> /// <param name="salesMenuVO">업데이트 할 메뉴의 정보를 담고있는 객체</param> /// <param name="menuUpdateSucess">업데이트 성공 여부</param> /// <returns>업데이트 성공 여부 반환.</returns> private bool UpdatingMenu(SalesMenuVO salesMenuVO, bool menuUpdateSucess) { try { int result = new SalesMenuDAO().UpdateMenu(salesMenuVO, oldMenuCode); if (result < 1) { MessageBox.Show(result.ToString()); menuUpdateSucess = false; } else { pbxPhoto.Image.Save(Application.StartupPath + salesMenuVO.MenuImageLocation); new BUS.CheckImages().DoAllCheck(); menuUpdateSucess = true; } } catch (SqlException ex) { if (ex.Message.Contains("PRIMARY")) { MessageBox.Show("메뉴코드 혹은 메뉴이름에 중복된 데이터가 있습니다!"); } else { MessageBox.Show(ex.Message); } menuUpdateSucess = false; } return(menuUpdateSucess); }
/// <summary> /// 메뉴를 등록하기위해 데이터를 받아와 DAO단으로 전송해주는 메서드 /// </summary> /// <param name="menuCode">메뉴코드</param> /// <param name="menuName">메뉴이름</param> /// <param name="price">가격</param> /// <param name="kcal">Kcal</param> /// <param name="division">구분</param> /// <param name="addContxt">부가설명</param> /// <param name="imageLocation">이미지 경로</param> /// <param name="sucessMenu">성공여부</param> /// <param name="discountRatio">할인율</param> /// <returns>등록 성공 여부를 반환.</returns> private bool InsertingMenu(string menuCode, string menuName, string price, string kcal, string division, string addContxt, string discountRatio, string imageLocation, bool sucessMenu) { sucessMenu = false; SalesMenuVO salesMenuVO = new SalesMenuVO(); salesMenuVO.MenuCode = menuCode; salesMenuVO.MenuName = menuName; salesMenuVO.Price = float.Parse(price); salesMenuVO.Kcal = int.Parse(kcal); salesMenuVO.MenuImageLocation = images; foreach (Division item in Enum.GetValues(typeof(Division))) { if (item.ToString().Equals(division)) { salesMenuVO.Division = (int)item; } } salesMenuVO.AdditionalContext = addContxt; salesMenuVO.DiscountRatio = float.Parse(discountRatio); try { if (new SalesMenuDAO().InsertMenu(salesMenuVO)) { try { pbxPhoto.Image.Save(Application.StartupPath + salesMenuVO.MenuImageLocation); } catch (Exception) { MessageBox.Show("등록된 사진이 없습니다."); } new BUS.CheckImages().DoAllCheck(); sucessMenu = true; } } catch (SqlException ex) { if (ex.Message.Contains("PRIMARY") && ex.Message.Contains("constraint")) { MessageBox.Show("메뉴코드에 중복된 데이터가 있습니다!"); } else if (ex.Message.Contains("UNIQUE") && ex.Message.Contains("constraint")) { MessageBox.Show("메뉴이름에 중복된 데이터가 있습니다!"); } else { MessageBox.Show(ex.Message); } } return(sucessMenu); }
private void btnMnuUpdate_Click(object sender, EventArgs e) { //1. 만약 바뀌기 전 후가 전부 샌드위치이면 //메뉴 업데이트 -> 레시피 업데이트 //2. 만약 oldDivision이 샌드위치이고, division이 샌드위치가 아니면 //레시피 삭제 -> 메뉴 업데이트 //메뉴코드 삭제 //3. 만약 oldDivision이 샌드위치가 아니고, division이 샌드위치이면 //메뉴 수정 - > 레시피 등록 //메뉴코드 등록 string menuCode = msktbxMnuCode.Text; string menuName = tbxMnuName.Text.Replace(" ", "").Trim(); string price = tbxPrice.Text.Replace(",", "").Trim(); string kcal = tbxKcal.Text.Replace(" ", "").Trim(); string division = cbxDivision.Text.Replace(" ", "").Trim(); string addContxt = tbxAddContxt.Text.Trim(); string discountRatio = tbxDiscountRatio.Text.Replace(" ", "").Trim(); string ImageLocation = images; bool menuUpdateSucess = false; bool successInsertRecipe = false; bool sucessUpdateRecipe = false; bool sucessdeleteRecipe = false; if (ValidateNull(menuCode, menuName, price, kcal, division, addContxt, discountRatio, ImageLocation) && ValidateType(price, kcal, discountRatio) && ValidateMenuCode(menuCode)) { SalesMenuVO salesMenuVO = new SalesMenuVO(); salesMenuVO.MenuCode = menuCode; salesMenuVO.MenuName = menuName; salesMenuVO.Price = float.Parse(price); salesMenuVO.Kcal = int.Parse(kcal); salesMenuVO.MenuImageLocation = ImageLocation; foreach (Division item in Enum.GetValues(typeof(Division))) { if (item.ToString().Equals(division)) { salesMenuVO.Division = (int)item; } } salesMenuVO.AdditionalContext = addContxt; salesMenuVO.DiscountRatio = float.Parse(discountRatio); //수정전 과 수정후가 같고 그것이 샌드위치이면.. if (oldDivision == salesMenuVO.Division && oldDivision == 0) { menuUpdateSucess = UpdatingMenu(salesMenuVO, menuUpdateSucess); sucessUpdateRecipe = UpdatingRecipe(menuCode, sucessUpdateRecipe); } //수정 전은 샌드위치고 수정후는 샌드위치가 아니면 if (oldDivision == 0 && salesMenuVO.Division != 0) { try { if (new MenuRecipeDAO().DeleteRecipesByMenuCode(salesMenuVO.MenuCode)) { sucessdeleteRecipe = true; } } catch (SqlException ex) { MessageBox.Show(ex.Message); } menuUpdateSucess = UpdatingMenu(salesMenuVO, menuUpdateSucess); } //수정 전은 샌드위치가 아니고, 수정 후 샌드위치이면 else if (oldDivision != 0 && salesMenuVO.Division == 0) { menuUpdateSucess = UpdatingMenu(salesMenuVO, menuUpdateSucess); successInsertRecipe = InsertingRecipe(salesMenuVO.MenuCode, successInsertRecipe); } //수정 전과 수정 후 전부 샌드위치가 아니라면 else if (oldDivision != 0 && salesMenuVO.Division != 0) { menuUpdateSucess = UpdatingMenu(salesMenuVO, menuUpdateSucess); } ReflashData(); } if ((menuUpdateSucess && sucessUpdateRecipe)) { MessageBox.Show("메뉴 수정 완료(레시피 수정 완료)"); } else if (menuUpdateSucess && sucessdeleteRecipe) { MessageBox.Show("메뉴 수정 성공(이전 레시피 삭제)"); } else if (menuUpdateSucess && successInsertRecipe) { MessageBox.Show("메뉴 수정 성공(추가 레시피 등록)"); } else if (menuUpdateSucess && !sucessUpdateRecipe && !sucessdeleteRecipe && !successInsertRecipe) { MessageBox.Show("메뉴 수정 완료"); } btnClear_Click(null, null); }