/// <summary> /// 入力内容の検証をおこなう /// </summary> /// <returns></returns> private bool isFormValidation() { bool isResult = false; // 【ヘッダ】必須入力チェック // 仕入日 if (string.IsNullOrEmpty(this.c仕入日.Text)) { base.ErrorMessage = string.Format("仕入日が入力されていません。"); this.c仕入日.Focus(); return(isResult); } // 仕入区分 if (this.c仕入区分.SelectedValue == null) { base.ErrorMessage = string.Format("仕入区分が選択されていません。"); this.c仕入区分.Focus(); return(isResult); } // 仕入先 if (string.IsNullOrEmpty(this.c仕入先.Text1) || string.IsNullOrEmpty(this.c仕入先.Text2)) { base.ErrorMessage = string.Format("仕入先が入力されていません。"); this.c仕入先.Focus(); return(isResult); } // 入荷先 if (string.IsNullOrEmpty(this.c入荷先.Text1)) { base.ErrorMessage = string.Format("入荷先が入力されていません。"); this.c入荷先.Focus(); return(isResult); } // 【明細】詳細データが1件もない場合はエラー if (SearchDetail == null || SearchDetail.Rows.Count == 0) { base.ErrorMessage = string.Format("明細情報が1件もありません。"); gridCtl.SpreadGrid.Focus(); return(isResult); } // 【明細】品番の商品分類が食品(1)の場合は賞味期限が必須 int rIdx = 0; bool isDetailErr = false; foreach (DataRow row in SearchDetail.Rows) { // 削除行は検証対象外 if (row.RowState == DataRowState.Deleted) { continue; } // 追加行未入力レコードはスキップ if (row["品番コード"] == null || string.IsNullOrEmpty(row["品番コード"].ToString()) || row["品番コード"].ToString().Equals("0")) { continue; } // エラー情報をクリア gridCtl.ClearValidationErrors(rIdx); if (string.IsNullOrEmpty(row["数量"].ToString())) { gridCtl.AddValidationError(rIdx, (int)GridColumnsMapping.数量, "数量が入力されていません。"); if (!isDetailErr) { gridCtl.SetCellFocus(rIdx, (int)GridColumnsMapping.数量); } isDetailErr = true; } if (string.IsNullOrEmpty(row["単価"].ToString())) { gridCtl.AddValidationError(rIdx, (int)GridColumnsMapping.単価, "単価が入力されていません。"); if (!isDetailErr) { gridCtl.SetCellFocus(rIdx, (int)GridColumnsMapping.単価); } isDetailErr = true; } int type = Convert.ToInt32(row["商品分類"]); DateTime date; if (!DateTime.TryParse(row["賞味期限"].ToString(), out date)) { // 変換に失敗かつ商品分類が「食品」の場合はエラー if (type.Equals(商品分類.食品.GetHashCode())) { gridCtl.AddValidationError(rIdx, (int)GridColumnsMapping.賞味期限, "商品分類が『食品』の為、賞味期限の設定が必要です。"); isDetailErr = true; } } rIdx++; } if (isDetailErr) { return(isResult); } isResult = true; return(isResult); }
/// <summary> /// 入力内容の検証をおこなう /// </summary> /// <returns>bool</returns> private bool isFormValidation() { bool isResult = false; int intSyohinkeitaibunrui = 0; blnWarningFlg = false; // 揚り明細より情報を取得する foreach (DataRow row in SearchDetail.Rows) { intSyohinkeitaibunrui = int.Parse(row["商品形態分類"].ToString()); } // 現在の明細行を取得 var CurrentDetail = InnerDetail.Select("", "", DataViewRowState.CurrentRows).AsEnumerable(); // 【明細】詳細データが1件もない場合はエラー if (InnerDetail == null || CurrentDetail.Where(a => !string.IsNullOrEmpty(a.Field <string>("自社品番"))).Count() == 0) { gridDtb.SpreadGrid.Focus(); base.ErrorMessage = string.Format("明細情報が1件もありません。"); return(isResult); } // 【明細】品番の商品分類が食品(1)の場合は賞味期限が必須 int rIdx = 0; bool isDetailErr = false; foreach (DataRow row in InnerDetail.Rows) { // 削除行は検証対象外 if (row.RowState == DataRowState.Deleted) { continue; } // 追加行未入力レコードはスキップ if (row["品番コード"] == null || string.IsNullOrEmpty(row["品番コード"].ToString()) || row["品番コード"].ToString().Equals("0")) { rIdx++; continue; } // エラー情報をクリア gridDtb.ClearValidationErrors(rIdx); DateTime?row賞味期限 = DBNull.Value.Equals(row["賞味期限"]) ? (DateTime?)null : Convert.ToDateTime(row["賞味期限"]); int? row品番コード = DBNull.Value.Equals(row["品番コード"]) ? (int?)null : Convert.ToInt32(row["品番コード"]); if (CurrentDetail.Where(x => x.Field <int?>("品番コード") == row品番コード && x.Field <DateTime?>("賞味期限") == row賞味期限).Count() > 1) { gridDtb.SpreadGrid.Focus(); base.ErrorMessage = string.Format("同じ商品が存在するので、一つに纏めて下さい。"); gridDtb.AddValidationError(rIdx, (int)GridColumnsMapping.品番コード, "同じ商品が存在するので、一つに纏めて下さい。"); if (!isDetailErr) { gridDtb.SetCellFocus(rIdx, (int)GridColumnsMapping.品番コード); } isDetailErr = true; } if (string.IsNullOrEmpty(row["数量"].ToString())) { gridDtb.AddValidationError(rIdx, (int)GridColumnsMapping.数量, "数量が入力されていません。"); if (!isDetailErr) { gridDtb.SetCellFocus(rIdx, (int)GridColumnsMapping.数量); } isDetailErr = true; } int type = Convert.ToInt32(row["商品分類"]); DateTime date; if (!DateTime.TryParse(row["賞味期限"].ToString(), out date)) { // 変換に失敗かつ商品分類が「食品」かつ数量が0以外の場合はエラー if (type.Equals((int)商品分類.食品) && row["数量"].ToString().Equals("0.00") == false) { gridDtb.AddValidationError(rIdx, (int)GridColumnsMapping.賞味期限, "商品分類が『食品』の為、賞味期限の設定が必要です。"); isDetailErr = true; } } // 商品形態分類がセット品の場合、エラーチェックを行う if (intSyohinkeitaibunrui == 1) // No-279 Add { // セット品番マスタチェック(存在しない) if (DLY02010.isCheckShinNotExist(SetHin, row["品番コード"].ToString()) == false) { gridDtb.AddValidationError(rIdx, (int)GridColumnsMapping.品番コード, "製品を構成しない部材が入力されています。"); blnWarningFlg = true; } } rIdx++; } // 商品形態分類がセット品の場合、エラーチェックを行う if (intSyohinkeitaibunrui == 1) // No-279 Add { // セット品番マスタチェック(構成しない部材) if (DLY02010.isCheckShinUnnecessary(SetHin, InnerDetail) == false) { gridDtb.SpreadGrid.Focus(); base.ErrorMessage = string.Format("製品を構成する部材が入力されていません。"); blnWarningFlg = true; } // セット品番マスタチェック(数量) string strErrMsg = string.Empty; if (DLY02010.isCheckShinQuantity(SetHin, SearchDetail, InnerDetail, out strErrMsg) == false) { gridDtb.SpreadGrid.Focus(); base.ErrorMessage = string.Format(strErrMsg); blnWarningFlg = true; } } if (isDetailErr) { return(isResult); } isResult = true; return(isResult); }
/// <summary> /// 入力内容の検証をおこなう /// </summary> /// <returns></returns> private bool isFormValidation() { bool isResult = false; #region 【ヘッダ】必須入力チェック // 伝票要否 if (this.cmb伝票要否.SelectedValue == null) { this.cmb伝票要否.Focus(); base.ErrorMessage = string.Format("伝票要否が選択されていません。"); return(isResult); } // 返品日 if (string.IsNullOrEmpty(this.txt返品日.Text)) { this.txt返品日.Focus(); base.ErrorMessage = string.Format("返品日が入力されていません。"); return(isResult); } // 売上区分 if (this.cmb売上区分.SelectedValue == null) { this.cmb売上区分.Focus(); base.ErrorMessage = string.Format("売上区分が選択されていません。"); return(isResult); } string salesKbn = this.cmb売上区分.SelectedValue.ToString(); if (salesKbn.Equals("3") || salesKbn.Equals("4")) { // 3:メーカー直送または4:メーカー販社商流直送の場合、仕入先は必須 if (string.IsNullOrEmpty(this.txt仕入先.Text1) || string.IsNullOrEmpty(this.txt仕入先.Text2)) { this.txt仕入先.Focus(); base.ErrorMessage = string.Format("仕入先が入力されていません。"); return(isResult); } if (!txt仕入先.CheckValidation()) { this.txt仕入先.Focus(); base.ErrorMessage = txt仕入先.GetValidationMessage(); return(isResult); } } #endregion #region 【明細】入力チェック // 【明細】詳細データが1件もない場合はエラー if (SearchDetail == null || SearchDetail.Rows.Count == 0) { base.ErrorMessage = string.Format("明細情報が1件もありません。"); this.gcSpreadGrid.Focus(); return(isResult); } // 【明細】品番の商品分類が食品(1)の場合は賞味期限が必須 int rIdx = 0; bool isDetailErr = false; foreach (DataRow row in SearchDetail.Rows) { // 削除行は検証対象外 if (row.RowState == DataRowState.Deleted) { continue; } // 追加行未入力レコードはスキップ if (row["品番コード"] == null || string.IsNullOrEmpty(row["品番コード"].ToString()) || row["品番コード"].ToString().Equals("0")) { continue; } // エラー情報をクリア gridCtl.ClearValidationErrors(rIdx); if (string.IsNullOrEmpty(row["数量"].ToString())) { gridCtl.AddValidationError(rIdx, (int)GridColumnsMapping.数量, "数量が入力されていません。"); if (!isDetailErr) { gridCtl.SetCellFocus(rIdx, (int)GridColumnsMapping.数量); } isDetailErr = true; } if (string.IsNullOrEmpty(row["単価"].ToString())) { gridCtl.AddValidationError(rIdx, (int)GridColumnsMapping.単価, "単価が入力されていません。"); if (!isDetailErr) { gridCtl.SetCellFocus(rIdx, (int)GridColumnsMapping.単価); } isDetailErr = true; } int type = Convert.ToInt32(row["商品分類"]); DateTime date; if (!DateTime.TryParse(row["賞味期限"].ToString(), out date)) { // 変換に失敗かつ商品分類が「食品」の場合はエラー if (type.Equals((int)商品分類.食品)) { gridCtl.AddValidationError(rIdx, (int)GridColumnsMapping.賞味期限, "商品分類が『食品』の為、賞味期限の設定が必要です。"); isDetailErr = true; } } rIdx++; } if (isDetailErr) { return(isResult); } #endregion return(true); }