Beispiel #1
0
        protected override ResultStatus Save(PokeBall pokeBall)
        {
            //PB不管資料有無異動都會存檔
            string showMsg = "";

            try {
                #region ue_save_before
                gvMain.CloseEditor();

                //0. 確認是否填入正確公告日期
                //if (txtEffDateB.Text == "1901/01/01")
                if (txtEffDate.getTextValue() == "1901/01/01")
                {
                    MessageDisplay.Error("提高-公告日期非正確日期!");
                    return(ResultStatus.Fail);
                }
                //if (txtEffDateLowerB.Text == "1901/01/01")
                if (txtEffDateLower.getTextValue() == "1901/01/01")
                {
                    MessageDisplay.Error("降低-公告日期非正確日期!");
                    return(ResultStatus.Fail);
                }

                //1. 寫LOG到ci.PLLOG
                showMsg = "異動紀錄(PLLOG)更新資料庫錯誤! ";
                DataTable dtPLLOG    = dao30203.d_30203_pllog();
                DataTable dtGridView = (DataTable)gcMain.DataSource;
                foreach (DataRow dr in dtGridView.Rows)
                {
                    if (dr["PLS1_CP_LEVEL"].AsString() == dr["PLS1_LEVEL_ORG"].AsString())
                    {
                        continue;
                    }
                    DataRow drNew = dtPLLOG.NewRow();
                    drNew["PLLOG_YMD"]       = dr["PLS1_YMD"];
                    drNew["PLLOG_KIND_ID"]   = dr["PLS1_KIND_ID2"];
                    drNew["PLLOG_DATA_TYPE"] = " ";
                    drNew["PLLOG_ORG_VALUE"] = dr["PLS1_LEVEL_ORG"];
                    drNew["PLLOG_UPD_VALUE"] = dr["PLS1_CP_LEVEL"];
                    drNew["PLLOG_W_TIME"]    = DateTime.Now;
                    drNew["PLLOG_W_USER_ID"] = GlobalInfo.USER_ID;
                    dtPLLOG.Rows.Add(drNew);
                }

                //2. 寫入DB
                ResultData myResultData = dao30203.updatePLLOG2_30222use(dtPLLOG);
                #endregion
                showMsg      = "PLS1更新資料庫錯誤! ";
                myResultData = dao30222.updatePLS1(dtGridView);//更新PLS1

                int    f;
                string ymd, effYmd, effYmdLower;
                bool   delResult = false;
                //3. 判斷是否有已確認之資料
                //ymd = txtDate.Text.Replace("/", "");
                ymd = textDayNew.getTextValue().Replace("/", "");
                f   = dao30222.checkData(ymd);
                if (f > 0)
                {
                    DialogResult result = MessageDisplay.Choose("已確認,是否刪除舊有資料?");
                    if (result == DialogResult.No)
                    {
                        return(ResultStatus.FailButNext);
                    }
                    //3.1 刪除PLS2
                    showMsg   = "PLS2刪除失敗";
                    delResult = dao30222.DeletePLS2ByDate(ymd);
                    if (!delResult)
                    {
                        MessageDisplay.Error(showMsg);
                        return(ResultStatus.FailButNext);
                    }
                }
                //4. 新增PLS2
                showMsg = "確認資料(PLS2)更新資料庫錯誤! ";
                //effYmd = txtEffDateB.Text.Replace("/", "");
                //effYmdLower = txtEffDateLowerB.Text.Replace("/", "");
                effYmd      = txtEffDate.getTextValue().Replace("/", "");
                effYmdLower = txtEffDateLower.getTextValue().Replace("/", "");
                DataTable dtPLS2 = dao30222.d_30222_pls2(ymd);
                dtPLS2.Clear();
                foreach (DataRow dr in dtGridView.Rows)
                {
                    DataRow drNew = dtPLS2.NewRow();
                    if (dr["PLS1_LEVEL_ADJ"].ToString() == "-")
                    {
                        drNew["PLS2_EFFECTIVE_YMD"] = effYmdLower;
                    }
                    else
                    {
                        drNew["PLS2_EFFECTIVE_YMD"] = effYmd;
                    }
                    //for   j = 2 to 16
                    for (int k = 1; k < 16; k++)
                    {
                        drNew[k] = dr[k];
                    }
                    //drNew["PLS2_YMD"] = dr["PLS1_YMD"];
                    //drNew["PLS2_KIND_ID2"] = dr["PLS1_KIND_ID2"];
                    //drNew["PLS2_FUT"] = dr["PLS1_FUT"];
                    //drNew["PLS2_OPT"] = dr["PLS1_OPT"];
                    //drNew["PLS2_SID"] = dr["PLS1_SID"];

                    //drNew["PLS2_LEVEL_ADJ"] = dr["PLS1_LEVEL_ADJ"];
                    //drNew["PLS2_LEVEL"] = dr["PLS1_CP_LEVEL"];
                    //drNew["PLS2_NATURE"] = dr["PLS1_CP_NATURE"];
                    //drNew["PLS2_LEGAL"] = dr["PLS1_CP_LEGAL"];
                    //drNew["PLS2_999"] = dr["PLS1_CP_999"];

                    //drNew["PLS2_PREV_LEVEL"] = dr["PLS1_CUR_LEVEL"];
                    //drNew["PLS2_PREV_NATURE"] = dr["PLS1_CUR_NATURE"];
                    //drNew["PLS2_PREV_LEGAL"] = dr["PLS1_CUR_LEGAL"];
                    //drNew["PLS2_PREV_999"] = dr["PLS1_CUR_999"];
                    //drNew["PLS2_KIND_GRP2"] = dr["KIND_GRP2"];

                    drNew["PLS2_W_TIME"]    = DateTime.Now;
                    drNew["PLS2_W_USER_ID"] = GlobalInfo.USER_ID;
                    dtPLS2.Rows.Add(drNew);
                }
                //5. 寫入DB
                myResultData = dao30222.updatePLS2(dtPLS2);
            } catch (Exception ex) {
                MessageDisplay.Error(showMsg);
                throw ex;
            }
            return(ResultStatus.Success);
        }