コード例 #1
0
        /// <summary>
        /// 入力内容の検証をおこなう
        /// </summary>
        /// <returns></returns>
        private bool isFormValidation()
        {
            bool isResult = false;

            #region 【ヘッダ】必須入力チェック

            // 入金日
            if (string.IsNullOrEmpty(this.txt入金日.Text))
            {
                this.txt入金日.Focus();
                base.ErrorMessage = string.Format("入金日が入力されていません。");
                return(isResult);
            }

            // 得意先・入金元販社
            // REMARKS:どちらかの設定が必要
            if ((string.IsNullOrEmpty(this.txt得意先.Text1) || string.IsNullOrEmpty(txt得意先.Text2)) && string.IsNullOrEmpty(txt入金元販社.Text1))
            {
                this.txt得意先.Focus();
                base.ErrorMessage = string.Format("得意先または入金元販社が入力されていません。");
                return(isResult);
            }
            else if ((!string.IsNullOrEmpty(this.txt得意先.Text1) || !string.IsNullOrEmpty(txt得意先.Text2)) && !string.IsNullOrEmpty(txt入金元販社.Text1))
            {
                this.txt得意先.Focus();
                base.ErrorMessage = string.Format("得意先または入金元販社のどちらかしか設定できません。");
                return(isResult);
            }

            #endregion

            #region 【明細】入力チェック

            // 【明細】詳細データが1件もない場合はエラー

            // No-271 Mod Start
            // 金種コード入力件数取得
            int intInpCnt = SearchDetail.AsEnumerable()
                            .Where(w => w.Field <string>("金種コード") != null && !w.Field <string>("金種コード").Equals("0"))
                            .Count();
            // 明細件数チェック
            if (SearchDetail == null || SearchDetail.Rows.Count == 0 || intInpCnt == 0)
            // No-271 Mod End
            {
                base.ErrorMessage = string.Format("明細情報が1件もありません。");
                return(isResult);
            }

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

                // エラー情報をクリア
                gcSpreadGrid.Rows[rIdx].ValidationErrors.Clear();

                // 金額の未入力チェック
                if (string.IsNullOrEmpty(row["金額"].ToString()))
                {
                    gcSpreadGrid.Rows[rIdx]
                    .ValidationErrors.Add(new SpreadValidationError("金額が入力されていません。", null, rIdx, GridColumnsMapping.金額.GetHashCode()));
                    if (!isDetailErr)
                    {
                        gcSpreadGrid.ActiveCellPosition = new CellPosition(rIdx, GridColumnsMapping.金額.GetHashCode());
                    }

                    isDetailErr = true;
                }

                // 金種が「手形」の場合は期日が必須
                if (string.IsNullOrEmpty(row["期日"].ToString()))
                {
                    if (int.Parse(row["金種コード"].ToString()).Equals(金種Dic.FirstOrDefault(x => x.Value.Equals("手形")).Key))  // No.145 Mod
                    {
                        gcSpreadGrid.Rows[rIdx]
                        .ValidationErrors.Add(new SpreadValidationError("金種が「手形」の場合は期日の設定が必要です。", null, rIdx, GridColumnsMapping.期日.GetHashCode()));
                        if (!isDetailErr)
                        {
                            gcSpreadGrid.ActiveCellPosition = new CellPosition(rIdx, GridColumnsMapping.期日.GetHashCode());
                        }

                        isDetailErr = true;
                    }
                }

                rIdx++;
            }

            if (isDetailErr)
            {
                return(isResult);
            }

            #endregion

            return(true);
        }
コード例 #2
0
        /// <summary>
        /// 手形情報の期日、金額チェックをおこなう
        /// </summary>
        /// <param name="dt">得意先情報</param>
        /// <returns>true:チェックOK / false:NG </returns>
        private bool CheckTegata(DataTable dt)
        {
            // 手形入力確認
            var tegata = SearchDetail.AsEnumerable()
                         .Where(w => w.Field <string>("金種コード") != null &&
                                w.Field <string>("金種コード").Equals(金種Dic.FirstOrDefault(x => x.Value.Equals("手形")).Key.ToString())).FirstOrDefault();

            if (tegata == null)
            {
                return(true);
            }

            // 請求条件チェック
            var cond = dt.AsEnumerable()
                       .Where(w => w.Field <int?>("Tサイト2") == null ||
                              w.Field <int?>("T入金日2") == null);

            if (cond.Any() && (SearchHeader["得意先コード"].ToString() != "1" && string.IsNullOrEmpty(SearchHeader["入金元販社コード"].ToString())))
            {
                MessageBox.Show("取引先マスタに手形条件が設定されていません。\n請求条件(サイト、入金日)を設定してください。",
                                "請求条件未登録", MessageBoxButton.OK, MessageBoxImage.Asterisk);
                return(false);
            }
            else
            {
                if (MessageBox.Show("取引先マスタに手形条件が設定されていません。\r\n" + AppConst.CONFIRM_UPDATE,
                                    "請求条件未登録", MessageBoxButton.YesNo, MessageBoxImage.Asterisk) != MessageBoxResult.Yes)
                {
                    return(false);
                }
                else
                {
                    return(true);
                }
            }

            // 手形内容チェック
            int  rIdx       = 0;
            bool isCheckErr = true;

            foreach (DataRow row in SearchDetail.Rows)
            {
                // 削除行はチェック対象外
                if (row.RowState == DataRowState.Deleted)
                {
                    continue;
                }

                // 追加行未入力レコードはスキップ
                if (row["金種コード"] == null || string.IsNullOrEmpty(row["金種コード"].ToString()) || row["金種コード"].ToString().Equals("0"))
                {
                    continue;
                }

                // エラー情報をクリア
                gcSpreadGrid.Rows[rIdx].ValidationErrors.Clear();

                if (int.Parse(row["金種コード"].ToString()).Equals(金種Dic.FirstOrDefault(x => x.Value.Equals("手形")).Key))
                {
                    // 手形期日チェック
                    //DateTime tagataDateMonth = ((DateTime)SearchHeader["入金日"]).AddMonths(-(int)dt.Rows[0].Field<int?>("Tサイト1")).AddMonths((int)dt.Rows[0].Field<int?>("Tサイト2"));
                    //int サイト日 = (int)dt.Rows[0].Field<int?>("T入金日2");
                    //if(サイト日 == 31)
                    //{
                    //    サイト日 = DateTime.DaysInMonth(tagataDateMonth.Year, tagataDateMonth.Month);
                    //}
                    //DateTime limitDate = new DateTime(tagataDateMonth.Year, tagataDateMonth.Month, サイト日);
                    ////バッファとして5日後に設定
                    //limitDate = limitDate.AddDays(5);
                    //if (row.Field<DateTime>("期日") > limitDate)
                    //{
                    //    gcSpreadGrid.Rows[rIdx]
                    //        .ValidationErrors.Add(new SpreadValidationError(string.Format("期日が異なります。\n{0}の期日は{1}です。",
                    //                                    dt.Rows[0].Field<string>("略称名"), limitDate.ToString("yyyy/MM/dd")),
                    //                                null, rIdx, GridColumnsMapping.期日.GetHashCode()));

                    //    if (isCheckErr)
                    //    {
                    //        gcSpreadGrid.ActiveCellPosition = new CellPosition(rIdx, GridColumnsMapping.期日.GetHashCode());
                    //    }
                    //    isCheckErr = false;
                    //}

                    // 手形金額チェック
                    // 請求区分.以上の場合
                    if (dt.Rows[0].Field <int>("T請求区分") == (int)請求区分.以上)
                    {
                        if (row.Field <int>("金額") < dt.Rows[0].Field <int>("T請求条件"))
                        {
                            gcSpreadGrid.Rows[rIdx]
                            .ValidationErrors.Add(new SpreadValidationError(string.Format("手形発行金額が異なります。\n{0:#,0}円以上で手形を入力してください。",
                                                                                          dt.Rows[0].Field <int>("T請求条件")),
                                                                            null, rIdx, GridColumnsMapping.金額.GetHashCode()));

                            if (isCheckErr)
                            {
                                gcSpreadGrid.ActiveCellPosition = new CellPosition(rIdx, GridColumnsMapping.金額.GetHashCode());
                            }
                            isCheckErr = false;
                        }
                    }
                    // 請求区分.以下の場合
                    else
                    {
                        if (row.Field <int>("金額") > dt.Rows[0].Field <int>("T請求条件"))
                        {
                            gcSpreadGrid.Rows[rIdx]
                            .ValidationErrors.Add(new SpreadValidationError(string.Format("手形発行金額が異なります。\n{0:#,0}円以下で手形を入力してください。",
                                                                                          dt.Rows[0].Field <int>("T請求条件")),
                                                                            null, rIdx, GridColumnsMapping.金額.GetHashCode()));

                            if (isCheckErr)
                            {
                                gcSpreadGrid.ActiveCellPosition = new CellPosition(rIdx, GridColumnsMapping.金額.GetHashCode());
                            }
                            isCheckErr = false;
                        }
                    }
                }
                rIdx++;
            }

            if (isCheckErr == false)
            {
                return(isCheckErr);
            }

            //登録確認メッセージPopUp表示
            if (MessageBox.Show(AppConst.CONFIRM_UPDATE,
                                "登録確認",
                                MessageBoxButton.YesNo,
                                MessageBoxImage.Question,
                                MessageBoxResult.Yes) != MessageBoxResult.Yes)
            {
                return(false);
            }
        }