/// <summary>
        ///  작성자 : 강선애
        ///  단축 키 지정 이벤트를 위한 함수 추가
        /// </summary>
        ///

        private void BtnSave_Click()
        {
            if (SelectedDurable == null)
            {
                string saveResult = "";
                try
                {
                    if (GetProductInfo == false)
                    {
                        CustomMessageBox.Show(MessageBoxButtons.OK, "저장 실패", "유효한 모델 코드가 아닙니다.");
                        return;
                    }

                    if (mdtpCreateDate.dtpDatePicker.Value > DateTime.Today.AddDays(1))
                    {
                        CustomMessageBox.Show(MessageBoxButtons.OK, "저장 실패", "유효한 입고날짜가 아닙니다.");
                        return;
                    }

                    if (CommonFuction.CheckMandatory(gbLeft, ref saveResult) == false)
                    {
                        CustomMessageBox.Show(MessageBoxButtons.OK, "저장 실패", $"{saveResult} 항목을 확인해주세요.");
                        return;
                    }

                    var result = CustomMessageBox.Show(MessageBoxButtons.OKCancel, "확인", "저장하시겠습니까?");
                    if (result == DialogResult.OK)
                    {
                        if (mdtpCreateDate.ucValue.ToShortDateString().Equals(DateTime.Now.ToShortDateString()))
                        {
                            mdtpCreateDate.ucValue = DateTime.Now;
                        }
                        Dictionary <string, object> args = new Dictionary <string, object>();
                        args.Add("@DURABLEID", mtxtID.ucValue);
                        args.Add("@DURABLEPRODUCTID", mcmbModelCode.ucValue);
                        args.Add("@VENDERID", mtxtVenderCode.ucValue);
                        args.Add("@LIMITUSEQTY", CommonFuction.GetLIMITUSEQTY(mtxtCode.ucValue));
                        args.Add("@RACKID", mcbmRack.ucValue);
                        args.Add("@RACKUSEDATE", mdtpCreateDate.ucValue);
                        args.Add("@INPUTDATE", mdtpCreateDate.ucValue);
                        args.Add("@INPUTRESULT", mcbmbInputResult.ucValue);
                        args.Add("@CREATEDATE", DateTime.Now);
                        args.Add("@CREATOR", Program.CurrentUser);
                        args.Add("@EVENTDATE", DateTime.Now);
                        args.Add("@MODIFIER", Program.CurrentUser);

                        dbManager.CallNonSelectProcedure(ProcedureName.InsertDurable, dbManager.GetSqlParameters(args));

                        args.Add("@OBJECTID", Guid.NewGuid().ToString());
                        dbManager.CallNonSelectProcedure(ProcedureName.InsertDURABLE_HIST, dbManager.GetSqlParameters(args));

                        CustomMessageBox.Show(MessageBoxButtons.OK, "확인", "저장하였습니다.");

                        resetRack.ResetRackStatus(true);
                    }
                }
                catch (Exception ee)
                {
                    LogFactory.Log(ee);
                    CustomMessageBox.Show(MessageBoxButtons.OK, "확인", "문제가 발생했습니다. 로그를 확인하세요.");
                }

                SetComboBox();
                ClearInputBox();
                ListRefresh();
            }
        }