Пример #1
0
        /// <summary>
        /// 取得内容を各コントロールに設定
        /// </summary>
        /// <param name="ds"></param>
        private void SetTblData(DataSet ds)
        {
            // 移動ヘッダ情報設定
            DataTable tblHd = ds.Tables[T05_HEADER_TABLE_NAME];

            if (tblHd.Select("出荷元倉庫コード > 0").Count() == 0)
            {
                // 新規追加
                SearchHeader = tblHd.Rows[0];

                this.MaintenanceMode = AppConst.MAINTENANCEMODE_ADD;
            }
            else
            {
                SearchHeader = tblHd.Rows[0];
                SearchHeader.AcceptChanges();

                this.MaintenanceMode = AppConst.MAINTENANCEMODE_EDIT;
            }

            // 移動出庫明細
            DataTable tblOutDtl = ds.Tables[T05_SYUKO_TABLE_NAME];

            // データ状態から編集状態を設定
            if (tblOutDtl.Select("品番コード > 0").Count() == 0)
            {
                // 新規追加
                DataRow row = tblOutDtl.NewRow();
                row["伝票番号"] = AppCommon.IntParse(SearchHeader["伝票番号"].ToString());
                row["行番号"]  = 2;
                row["数量"]   = 0.00;
                tblOutDtl.Rows.Add(row);

                OutSearchDetail = tblOutDtl.Rows[0];
            }
            else
            {
                // 取得データをセット
                OutSearchDetail = tblOutDtl.Rows[0];
                OutSearchDetail.AcceptChanges();

                出庫自社色情報 = tblOutDtl.Rows[0]["自社色"].ToString() + " " + tblOutDtl.Rows[0]["自社色名"].ToString();
            }

            // 移動入庫明細
            DataTable tblInDtl = ds.Tables[T05_NYUKO_TABLE_NAME];

            if (tblInDtl.Select("品番コード > 0").Count() == 0)
            {
                // 新規追加
                DataRow row = tblInDtl.NewRow();
                row["伝票番号"] = AppCommon.IntParse(SearchHeader["伝票番号"].ToString());
                row["行番号"]  = 1;
                row["数量"]   = 0.00;
                tblInDtl.Rows.Add(row);
                InSearchDetail = tblInDtl.Rows[0];
            }
            else
            {
                // 取得データをセット
                InSearchDetail = tblInDtl.Rows[0];
                InSearchDetail.AcceptChanges();

                入庫自社色情報 = tblInDtl.Rows[0]["自社色"].ToString() + " " + tblInDtl.Rows[0]["自社色名"].ToString();
            }
        }
Пример #2
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);
            }

            #endregion

            // 自社品番
            if (string.IsNullOrEmpty(this.txt出庫自社品番.Text2))
            {
                this.txt出庫自社品番.Focus();
                base.ErrorMessage = string.Format("出庫の自社品番が入力されていません。");
                return(isResult);
            }

            // 【出庫明細】品番の商品分類が食品(1)の場合は賞味期限が必須
            var 出庫商品分類 = OutSearchDetail.Field <int>("商品分類");
            var 出庫賞味期限 = OutSearchDetail.Field <DateTime?>("賞味期限");

            int stype = Convert.ToInt32(出庫商品分類);

            if (出庫賞味期限 == null)
            {
                // 賞味期限が空欄かつ商品分類が「食品」の場合はエラー
                if (stype.Equals((int)商品分類.食品))
                {
                    this.txt出庫賞味期限.Focus();
                    base.ErrorMessage = string.Format("出庫の自社品番の商品分類が『食品』の為、賞味期限の設定が必要です。");
                    return(isResult);
                }
            }

            // 出庫数量
            if (string.IsNullOrEmpty(txt出庫数量.Text) || decimal.Parse(txt出庫数量.Text) == 0)
            {
                this.txt出庫数量.Focus();
                base.ErrorMessage = string.Format("出庫の数量が入力されていません。");
                return(isResult);
            }

            // 出庫倉庫
            if (string.IsNullOrEmpty(this.txt出庫倉庫.Text1))
            {
                this.txt出庫倉庫.Focus();
                base.ErrorMessage = string.Format("出庫の倉庫が入力されていません。");
                return(isResult);
            }

            // 自社品番
            if (string.IsNullOrEmpty(this.txt入庫自社品番.Text2))
            {
                this.txt入庫自社品番.Focus();
                base.ErrorMessage = string.Format("入庫の自社品番が入力されていません。");
                return(isResult);
            }

            // 【入庫明細】品番の商品分類が食品(1)の場合は賞味期限が必須
            var 入庫商品分類 = InSearchDetail.Field <int>("商品分類");
            var 入庫賞味期限 = InSearchDetail.Field <DateTime?>("賞味期限");

            int ntype = Convert.ToInt32(入庫商品分類);

            if (入庫賞味期限 == null)
            {
                // 賞味期限が空欄かつ商品分類が「食品」の場合はエラー
                if (ntype.Equals((int)商品分類.食品))
                {
                    this.txt入庫賞味期限.Focus();
                    base.ErrorMessage = string.Format("入庫の自社品番の商品分類が『食品』の為、賞味期限の設定が必要です。");
                    return(isResult);
                }
            }

            // 入庫数量
            if (string.IsNullOrEmpty(txt入庫数量.Text) || decimal.Parse(txt入庫数量.Text) == 0)
            {
                this.txt入庫数量.Focus();
                base.ErrorMessage = string.Format("入庫の数量が入力されていません。");
                return(isResult);
            }

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

            // 同一商品チェック
            int i出庫品番コード = OutSearchDetail.Field <int>("品番コード");
            int i入庫品番コード = InSearchDetail.Field <int>("品番コード");
            if (i出庫品番コード == i入庫品番コード && this.txt出庫賞味期限.Text == this.txt入庫賞味期限.Text && this.txt出庫倉庫.Text1 == this.txt入庫倉庫.Text1)
            {
                this.txt出庫自社品番.Focus();
                base.ErrorMessage = string.Format("出庫と入庫で同じ組み合わせの品番は登録できません。");
                return(isResult);
            }

            return(true);
        }
Пример #3
0
        /// <summary>
        /// データ受信処理
        /// </summary>
        /// <param name="message"></param>
        public override void OnReceivedResponseData(CommunicationObject message)
        {
            try
            {
                this.ErrorMessage = string.Empty;
                var       data = message.GetResultData();
                DataTable tbl  = (data is DataTable) ? (data as DataTable) : null;

                switch (message.GetMessageName())
                {
                case DLY04011_GetData:
                    // 伝票検索または新規伝票の場合
                    DataSet ds = data as DataSet;
                    if (ds != null)
                    {
                        SetTblData(ds);
                        ChangeKeyItemChangeable(false);
                        this.txt移動日.Focus();
                    }
                    else
                    {
                        MessageBox.Show("指定の伝票番号は登録されていません。", "伝票未登録", MessageBoxButton.OK, MessageBoxImage.Asterisk);
                        this.txt伝票番号.Focus();
                    }
                    break;

                case UpdateData_StockCheck:
                    // 在庫数チェック結果受信
                    Dictionary <int, string> updateList = data as Dictionary <int, string>;
                    string zaiUpdateMessage             = AppConst.CONFIRM_UPDATE;
                    var    zaiMBImage = MessageBoxImage.Question;

                    int outNum = OutSearchDetail.Field <int>("行番号");
                    int inNum  = InSearchDetail.Field <int>("行番号");

                    if (updateList.ContainsKey(outNum) == true && updateList.ContainsKey(inNum) == true)
                    {
                        zaiMBImage       = MessageBoxImage.Warning;
                        zaiUpdateMessage = "入庫と出庫の在庫がマイナスになりますが、\r\n登録してもよろしいでしょうか?";
                    }
                    else if (updateList.ContainsKey(outNum) == true)
                    {
                        zaiMBImage       = MessageBoxImage.Warning;
                        zaiUpdateMessage = "出庫の在庫がマイナスになりますが、\r\n登録してもよろしいでしょうか?";
                    }
                    else if (updateList.ContainsKey(inNum) == true)
                    {
                        zaiMBImage       = MessageBoxImage.Warning;
                        zaiUpdateMessage = "入庫の在庫がマイナスになりますが、\r\n登録してもよろしいでしょうか?";
                    }



                    if (MessageBox.Show(zaiUpdateMessage,
                                        "登録確認",
                                        MessageBoxButton.YesNo,
                                        zaiMBImage,
                                        MessageBoxResult.Yes) == MessageBoxResult.No)
                    {
                        return;
                    }

                    Update();
                    break;

                case DeleteData_StockCheck:
                    // 在庫数チェック結果受信
                    Dictionary <int, string> deleteZaiList = data as Dictionary <int, string>;
                    string zaiDelMessage = "表示中の伝票を削除してもよろしいですか?";
                    var    zaiDelMBImage = MessageBoxImage.Question;

                    if (deleteZaiList.Count > 0)
                    {
                        zaiDelMBImage = MessageBoxImage.Warning;
                        zaiDelMessage = "入庫の在庫がマイナスになりますが、\r\n表示中の伝票を削除してもよろしいでしょうか?";
                    }

                    if (MessageBox.Show(zaiDelMessage,
                                        "登録確認",
                                        MessageBoxButton.YesNo,
                                        zaiDelMBImage,
                                        MessageBoxResult.Yes) == MessageBoxResult.No)
                    {
                        return;
                    }

                    Delete();
                    break;

                case DLY04011_Update:
                    MessageBox.Show(AppConst.SUCCESS_UPDATE, "登録完了", MessageBoxButton.OK, MessageBoxImage.Information);
                    // コントロール初期化
                    ScreenClear();
                    break;

                case DLY04011_Delete:
                    MessageBox.Show(AppConst.SUCCESS_DELETE, "削除完了", MessageBoxButton.OK, MessageBoxImage.Information);
                    // コントロール初期化
                    ScreenClear();
                    break;

                case GetMyProduct:

                    #region 自社品番 手入力時

                    DataTable ctbl   = data as DataTable;
                    int?      p商品コード = null;
                    int?      p商品分類  = null;
                    string    p商品名   = string.Empty;
                    string    p自社色情報 = string.Empty;

                    // 対象データが存在する場合
                    if (ctbl != null && ctbl.Rows.Count > 0)
                    {
                        if (ctbl.Rows.Count == 1)
                        {
                            p商品コード = int.Parse(ctbl.Rows[0]["品番コード"].ToString());
                            p商品名   = ctbl.Rows[0]["自社品名"].ToString();
                            p商品分類  = int.Parse(ctbl.Rows[0]["商品分類"].ToString());
                            p自社色情報 = ctbl.Rows[0]["自社色"].ToString() + " " + ctbl.Rows[0]["自社色名"].ToString();
                        }
                        else
                        {
                            // 対象データが複数存在する場合
                            SCHM09_MYHIN myhin = new SCHM09_MYHIN();

                            myhin.txtCode.Text         = 入出庫フラグ == 1 ? txt入庫自社品番.Text1 : txt出庫自社品番.Text1;
                            myhin.txtCode.IsEnabled    = false;
                            myhin.TwinTextBox          = new UcLabelTwinTextBox();
                            myhin.TwinTextBox.LinkItem = 0;
                            if (myhin.ShowDialog(this) == true)
                            {
                                p商品コード = int.Parse(myhin.SelectedRowData["品番コード"].ToString());
                                p商品名   = myhin.SelectedRowData["自社品名"].ToString();
                                p商品分類  = int.Parse(myhin.SelectedRowData["商品分類"].ToString());
                                p自社色情報 = myhin.SelectedRowData["自社色"].ToString() + " " + myhin.SelectedRowData["自社色名"].ToString();
                            }
                        }
                    }

                    if (入出庫フラグ == 1)
                    {
                        if (p商品コード == null)
                        {
                            InSearchDetail["品番コード"] = DBNull.Value;
                        }
                        else
                        {
                            InSearchDetail["品番コード"] = p商品コード;
                        }

                        if (p商品分類 == null)
                        {
                            InSearchDetail["商品分類"] = DBNull.Value;
                        }
                        else
                        {
                            InSearchDetail["商品分類"] = p商品分類;
                        }

                        txt入庫自社品番.Text2 = p商品名;
                        入庫自社色情報         = p自社色情報;
                    }
                    else if (入出庫フラグ == 2)
                    {
                        if (p商品コード == null)
                        {
                            OutSearchDetail["品番コード"] = DBNull.Value;
                        }
                        else
                        {
                            OutSearchDetail["品番コード"] = p商品コード;
                        }

                        if (p商品分類 == null)
                        {
                            OutSearchDetail["商品分類"] = DBNull.Value;
                        }
                        else
                        {
                            OutSearchDetail["商品分類"] = p商品分類;
                        }

                        txt出庫自社品番.Text2 = p商品名;
                        出庫自社色情報         = p自社色情報;
                    }

                    #endregion

                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }