Example #1
0
        protected override ResultStatus Save(PokeBall pokeBall)
        {
            //PB不管資料有無異動都會存檔

            #region ue_save_before
            if (gvMain.RowCount == 0)
            {
                MessageDisplay.Error("下方視窗無資料無法進行存檔,請先執行「讀取/預覽」!");
                return(ResultStatus.Fail);
            }

            //0. 先結束編輯
            gvGBF.CloseEditor();
            gvMain.CloseEditor();

            string showMsg = "";
            //1. 寫LOG到ci.PLLOG
            try {
                showMsg = "異動紀錄(PLLOG)更新資料庫錯誤! ";
                DataTable dtPLLOG     = dao30203.d_30203_pllog();
                DataTable dtPL1Insert = dao30203.d_30203_PL1Insert(txtDate.Text.Replace("/", "").AsString());

                int    i;
                int    PL1NewRowCount = 0;
                string ls_prod_type, ls_prod_subtype, ls_kind_id;
                for (i = 0; i < gvMain.RowCount; i++)
                {
                    if (gvMain.GetRowCellValue(i, "Is_NewRow").AsString() == "1")
                    {
                        ls_kind_id = gvMain.GetRowCellValue(i, "PL1_KIND_ID").AsString();
                        DataTable dtProdType = dao30203.ProdType(ls_kind_id);
                        if (dtProdType.Rows.Count == 0)
                        {
                            MessageDisplay.Error("商品 " + ls_kind_id + " 無商品基本資料,無法新增!");
                            return(ResultStatus.Fail);
                        }
                        ls_prod_type    = dtProdType.Rows[0]["PROD_TYPE"].AsString();
                        ls_prod_subtype = dtProdType.Rows[0]["PROD_SUBTYPE"].AsString();

                        gvMain.SetRowCellValue(i, "PL1_YMD", txtDate.Text.Replace("/", "").AsString());
                        gvMain.SetRowCellValue(i, "PL1_PROD_TYPE", ls_prod_type);
                        gvMain.SetRowCellValue(i, "PL1_PROD_SUBTYPE", ls_prod_subtype);
                        gvMain.SetRowCellValue(i, "PL1_999", gvMain.GetRowCellValue(i, "PL1_LEGAL").AsDecimal() * 3);
                        gvMain.SetRowCellValue(i, "PL1_CUR_NATURE", 0);
                        gvMain.SetRowCellValue(i, "PL1_CUR_LEGAL", 0);
                        gvMain.SetRowCellValue(i, "PL1_CUR_999", gvMain.GetRowCellValue(i, "PL1_CUR_LEGAL").AsDecimal() * 3);
                        gvMain.SetRowCellValue(i, "PL1_PREV_AVG_QNTY", 0);
                        gvMain.SetRowCellValue(i, "PL1_PREV_AVG_OI", 0);
                        gvMain.SetRowCellValue(i, "PL1_AVG_QNTY", 0);
                        gvMain.SetRowCellValue(i, "PL1_AVG_OI", 0);
                        gvMain.SetRowCellValue(i, "PL1_CHANGE_RANGE", 0);
                        gvMain.SetRowCellValue(i, "PL1_CP_999", gvMain.GetRowCellValue(i, "PL1_CP_LEGAL").AsDecimal() * 3);
                        gvMain.SetRowCellValue(i, "PL1_999_ADJ", "+");
                        gvMain.SetRowCellValue(i, "PL1_UPD_TIME", DateTime.Now);
                        gvMain.SetRowCellValue(i, "PL1_UPD_USER_ID", GlobalInfo.USER_ID);
                        if (gvMain.GetRowCellValue(i, "PL1_NATURE_ADJ").AsString().Equals(""))
                        {
                            gvMain.SetRowCellValue(i, "PL1_NATURE_ADJ", " ");
                        }
                        else
                        {
                            gvMain.SetRowCellValue(i, "PL1_NATURE_ADJ", gvMain.GetRowCellValue(i, "PL1_NATURE_ADJ").AsString());
                        }
                        if (gvMain.GetRowCellValue(i, "PL1_LEGAL_ADJ").AsString().Equals(""))
                        {
                            gvMain.SetRowCellValue(i, "PL1_LEGAL_ADJ", " ");
                        }
                        else
                        {
                            gvMain.SetRowCellValue(i, "PL1_LEGAL_ADJ", gvMain.GetRowCellValue(i, "PL1_LEGAL_ADJ").AsString());
                        }

                        //下列add by Tom
                        PL1NewRowCount++;
                        dtPL1Insert.Rows.Add();
                        dtPL1Insert.Rows[dtPL1Insert.Rows.Count - 1]["PL1_KIND_ID"]       = ls_kind_id;
                        dtPL1Insert.Rows[dtPL1Insert.Rows.Count - 1]["PL1_YMD"]           = txtDate.Text.Replace("/", "").AsString();
                        dtPL1Insert.Rows[dtPL1Insert.Rows.Count - 1]["PL1_PROD_TYPE"]     = ls_prod_type;
                        dtPL1Insert.Rows[dtPL1Insert.Rows.Count - 1]["PL1_PROD_SUBTYPE"]  = ls_prod_subtype;
                        dtPL1Insert.Rows[dtPL1Insert.Rows.Count - 1]["PL1_999"]           = gvMain.GetRowCellValue(i, "PL1_999").AsDecimal();
                        dtPL1Insert.Rows[dtPL1Insert.Rows.Count - 1]["PL1_CUR_NATURE"]    = 0;
                        dtPL1Insert.Rows[dtPL1Insert.Rows.Count - 1]["PL1_CUR_LEGAL"]     = 0;
                        dtPL1Insert.Rows[dtPL1Insert.Rows.Count - 1]["PL1_CUR_999"]       = gvMain.GetRowCellValue(i, "PL1_CUR_999").AsDecimal();
                        dtPL1Insert.Rows[dtPL1Insert.Rows.Count - 1]["PL1_PREV_AVG_QNTY"] = 0;
                        dtPL1Insert.Rows[dtPL1Insert.Rows.Count - 1]["PL1_PREV_AVG_OI"]   = 0;
                        dtPL1Insert.Rows[dtPL1Insert.Rows.Count - 1]["PL1_AVG_QNTY"]      = 0;
                        dtPL1Insert.Rows[dtPL1Insert.Rows.Count - 1]["PL1_AVG_OI"]        = 0;
                        dtPL1Insert.Rows[dtPL1Insert.Rows.Count - 1]["PL1_CHANGE_RANGE"]  = 0;
                        dtPL1Insert.Rows[dtPL1Insert.Rows.Count - 1]["PL1_CP_999"]        = gvMain.GetRowCellValue(i, "PL1_CP_999").AsDecimal();
                        dtPL1Insert.Rows[dtPL1Insert.Rows.Count - 1]["PL1_UPD_TIME"]      = gvMain.GetRowCellValue(i, "PL1_UPD_TIME");
                        dtPL1Insert.Rows[dtPL1Insert.Rows.Count - 1]["PL1_UPD_USER_ID"]   = gvMain.GetRowCellValue(i, "PL1_UPD_USER_ID");
                        dtPL1Insert.Rows[dtPL1Insert.Rows.Count - 1]["PL1_999_ADJ"]       = "+";
                        dtPL1Insert.Rows[dtPL1Insert.Rows.Count - 1]["PL1_NATURE_ADJ"]    = gvMain.GetRowCellValue(i, "PL1_NATURE_ADJ");
                        dtPL1Insert.Rows[dtPL1Insert.Rows.Count - 1]["PL1_LEGAL_ADJ"]     = gvMain.GetRowCellValue(i, "PL1_LEGAL_ADJ");
                        dtPL1Insert.Rows[dtPL1Insert.Rows.Count - 1]["PL1_NATURE"]        = gvMain.GetRowCellValue(i, "PL1_NATURE").AsDecimal();
                        dtPL1Insert.Rows[dtPL1Insert.Rows.Count - 1]["PL1_CP_NATURE"]     = gvMain.GetRowCellValue(i, "PL1_CP_NATURE").AsDecimal();
                        dtPL1Insert.Rows[dtPL1Insert.Rows.Count - 1]["PL1_CP_LEGAL"]      = gvMain.GetRowCellValue(i, "PL1_CP_LEGAL").AsDecimal();
                        dtPL1Insert.Rows[dtPL1Insert.Rows.Count - 1]["PL1_LEGAL"]         = gvMain.GetRowCellValue(i, "PL1_LEGAL").AsDecimal();
                    }
                    if (gvMain.GetRowCellValue(i, "PL1_NATURE").AsDecimal() == gvMain.GetRowCellValue(i, "PL1_NATURE_ORG").AsDecimal() &&
                        gvMain.GetRowCellValue(i, "PL1_LEGAL").AsDecimal() == gvMain.GetRowCellValue(i, "PL1_LEGAL_ORG").AsDecimal())
                    {
                        continue;
                    }
                    if (gvMain.GetRowCellValue(i, "PL1_NATURE").AsDecimal() != gvMain.GetRowCellValue(i, "PL1_NATURE_ORG").AsDecimal())
                    {
                        dtPLLOG.Rows.Add();
                        //dtPLLOG.Rows[dtPLLOG.Rows.Count - 1]["PLLOG_YMD"] = gvMain.GetRowCellValue(i, "PL1_YMD").AsString();
                        dtPLLOG.Rows[dtPLLOG.Rows.Count - 1]["PLLOG_YMD"]       = txtDate.Text.Replace("/", "").AsString();
                        dtPLLOG.Rows[dtPLLOG.Rows.Count - 1]["PLLOG_KIND_ID"]   = gvMain.GetRowCellValue(i, "PL1_KIND_ID").AsString();
                        dtPLLOG.Rows[dtPLLOG.Rows.Count - 1]["PLLOG_DATA_TYPE"] = "N";
                        dtPLLOG.Rows[dtPLLOG.Rows.Count - 1]["PLLOG_ORG_VALUE"] = gvMain.GetRowCellValue(i, "PL1_NATURE_ORG").AsDecimal().AsString();
                        dtPLLOG.Rows[dtPLLOG.Rows.Count - 1]["PLLOG_UPD_VALUE"] = gvMain.GetRowCellValue(i, "PL1_NATURE").AsDecimal().AsString();
                        dtPLLOG.Rows[dtPLLOG.Rows.Count - 1]["PLLOG_W_TIME"]    = DateTime.Now;
                        dtPLLOG.Rows[dtPLLOG.Rows.Count - 1]["PLLOG_W_USER_ID"] = GlobalInfo.USER_ID;
                    }
                    if (gvMain.GetRowCellValue(i, "PL1_LEGAL").AsDecimal() != gvMain.GetRowCellValue(i, "PL1_LEGAL_ORG").AsDecimal())
                    {
                        dtPLLOG.Rows.Add();
                        //dtPLLOG.Rows[dtPLLOG.Rows.Count - 1]["PLLOG_YMD"] = gvMain.GetRowCellValue(i, "PL1_YMD").AsString();
                        dtPLLOG.Rows[dtPLLOG.Rows.Count - 1]["PLLOG_YMD"]       = txtDate.Text.Replace("/", "").AsString();
                        dtPLLOG.Rows[dtPLLOG.Rows.Count - 1]["PLLOG_KIND_ID"]   = gvMain.GetRowCellValue(i, "PL1_KIND_ID").AsString();
                        dtPLLOG.Rows[dtPLLOG.Rows.Count - 1]["PLLOG_DATA_TYPE"] = "E";
                        dtPLLOG.Rows[dtPLLOG.Rows.Count - 1]["PLLOG_ORG_VALUE"] = gvMain.GetRowCellValue(i, "PL1_LEGAL_ORG").AsDecimal().AsString();
                        dtPLLOG.Rows[dtPLLOG.Rows.Count - 1]["PLLOG_UPD_VALUE"] = gvMain.GetRowCellValue(i, "PL1_LEGAL").AsDecimal().AsString();
                        dtPLLOG.Rows[dtPLLOG.Rows.Count - 1]["PLLOG_W_TIME"]    = DateTime.Now;
                        dtPLLOG.Rows[dtPLLOG.Rows.Count - 1]["PLLOG_W_USER_ID"] = GlobalInfo.USER_ID;

                        gvMain.SetRowCellValue(i, "PL1_999", gvMain.GetRowCellValue(i, "PL1_LEGAL").AsDecimal() * 3);
                        dtPL1Insert.Rows[dtPL1Insert.Rows.Count - 1]["PL1_999"] = gvMain.GetRowCellValue(i, "PL1_999").AsDecimal();
                    }
                }
                // 寫入DB
                ResultData myResultData = dao30203.updatePLLOG(dtPLLOG);
                #endregion

                string ls_ymd, ls_eff_ymd, ls_eff_ymd_lower;
                bool   delResult = false;
                ls_ymd           = txtDate.Text.Replace("/", "");
                ls_eff_ymd       = txtEffDate.Text.Replace("/", "");
                ls_eff_ymd_lower = txtEffDateLower.Text.Replace("/", "");
                //2. 刪除資料 PL2,PL2B
                showMsg   = "PL2刪除失敗";
                delResult = dao30203.DeletePL2ByDate(ls_ymd);
                if (!delResult)
                {
                    MessageDisplay.Error(showMsg);
                    return(ResultStatus.Fail);
                }
                showMsg   = "PL2B刪除失敗";
                delResult = dao30203.DeletePL2BByDate(ls_ymd);
                if (!delResult)
                {
                    MessageDisplay.Error(showMsg);
                    return(ResultStatus.Fail);
                }

                //3. 新增 PL2
                showMsg = "確認資料(PL2)更新資料庫錯誤! ";
                DataTable dtInsertPL2 = dao30203.d_30203_pl2(ls_ymd);
                for (i = 0; i < gvMain.RowCount; i++)
                {
                    dtInsertPL2.Rows.Add();
                    if (gvMain.GetRowCellValue(i, "PL1_NATURE_ADJ").AsString() == "-")
                    {
                        dtInsertPL2.Rows[dtInsertPL2.Rows.Count - 1]["PL2_EFFECTIVE_YMD"] = ls_eff_ymd_lower;
                    }
                    else
                    {
                        dtInsertPL2.Rows[dtInsertPL2.Rows.Count - 1]["PL2_EFFECTIVE_YMD"] = ls_eff_ymd;
                    }
                    //dtInsertPL2.Rows[dtInsertPL2.Rows.Count - 1]["PL2_YMD"] = gvMain.GetRowCellValue(i, "PL1_YMD").AsString();
                    dtInsertPL2.Rows[dtInsertPL2.Rows.Count - 1]["PL2_YMD"]         = txtDate.Text.Replace("/", "").AsString();
                    dtInsertPL2.Rows[dtInsertPL2.Rows.Count - 1]["PL2_KIND_ID"]     = gvMain.GetRowCellValue(i, "PL1_KIND_ID").ToString();
                    dtInsertPL2.Rows[dtInsertPL2.Rows.Count - 1]["PL2_NATURE"]      = gvMain.GetRowCellValue(i, "PL1_NATURE").AsInt();
                    dtInsertPL2.Rows[dtInsertPL2.Rows.Count - 1]["PL2_LEGAL"]       = gvMain.GetRowCellValue(i, "PL1_LEGAL").AsInt();
                    dtInsertPL2.Rows[dtInsertPL2.Rows.Count - 1]["PL2_999"]         = gvMain.GetRowCellValue(i, "PL1_999").AsInt();
                    dtInsertPL2.Rows[dtInsertPL2.Rows.Count - 1]["PL2_NATURE_ADJ"]  = gvMain.GetRowCellValue(i, "PL1_NATURE_ADJ").ToString();
                    dtInsertPL2.Rows[dtInsertPL2.Rows.Count - 1]["PL2_LEGAL_ADJ"]   = gvMain.GetRowCellValue(i, "PL1_LEGAL_ADJ").ToString();
                    dtInsertPL2.Rows[dtInsertPL2.Rows.Count - 1]["PL2_999_ADJ"]     = gvMain.GetRowCellValue(i, "PL1_999_ADJ").ToString();
                    dtInsertPL2.Rows[dtInsertPL2.Rows.Count - 1]["PL2_PREV_NATURE"] = gvMain.GetRowCellValue(i, "PL1_CUR_NATURE").AsInt();
                    dtInsertPL2.Rows[dtInsertPL2.Rows.Count - 1]["PL2_PREV_LEGAL"]  = gvMain.GetRowCellValue(i, "PL1_CUR_LEGAL").AsInt();
                    dtInsertPL2.Rows[dtInsertPL2.Rows.Count - 1]["PL2_PREV_999"]    = gvMain.GetRowCellValue(i, "PL1_CUR_999").AsInt();
                    dtInsertPL2.Rows[dtInsertPL2.Rows.Count - 1]["PL2_W_TIME"]      = DateTime.Now;
                    dtInsertPL2.Rows[dtInsertPL2.Rows.Count - 1]["PL2_W_USER_ID"]   = GlobalInfo.USER_ID;
                    if (gvMain.GetRowCellValue(i, "Is_NewRow").AsString() == "1")//add by tom
                    {
                        dtInsertPL2.Rows[dtInsertPL2.Rows.Count - 1]["PL2_999_ADJ"]    = "+";
                        dtInsertPL2.Rows[dtInsertPL2.Rows.Count - 1]["PL2_NATURE_ADJ"] = gvMain.GetRowCellValue(i, "PL1_NATURE_ADJ");
                        dtInsertPL2.Rows[dtInsertPL2.Rows.Count - 1]["PL2_LEGAL_ADJ"]  = gvMain.GetRowCellValue(i, "PL1_LEGAL_ADJ");
                    }
                }
                // 寫入DB
                myResultData = dao30203.updatePL2(dtInsertPL2);

                //4. 新增 PL2B
                showMsg = "確認資料(PL2B)更新資料庫錯誤! ";
                DataTable dtInsertPL2B = dao30203.d_30203_pl2b(ls_ymd);
                for (i = 0; i < gvGBF.RowCount; i++)
                {
                    dtInsertPL2B.Rows.Add();
                    dtInsertPL2B.Rows[dtInsertPL2B.Rows.Count - 1]["PL2B_EFFECTIVE_YMD"]         = ls_eff_ymd;
                    dtInsertPL2B.Rows[dtInsertPL2B.Rows.Count - 1]["PL2B_YMD"]                   = ls_ymd;
                    dtInsertPL2B.Rows[dtInsertPL2B.Rows.Count - 1]["PL2B_PROD_TYPE"]             = gvGBF.GetRowCellValue(i, "PL1B_PROD_TYPE");
                    dtInsertPL2B.Rows[dtInsertPL2B.Rows.Count - 1]["PL2B_PROD_SUBTYPE"]          = gvGBF.GetRowCellValue(i, "PL1B_PROD_SUBTYPE");
                    dtInsertPL2B.Rows[dtInsertPL2B.Rows.Count - 1]["PL2B_KIND_ID"]               = gvGBF.GetRowCellValue(i, "PL1B_KIND_ID");
                    dtInsertPL2B.Rows[dtInsertPL2B.Rows.Count - 1]["PL2B_NATURE_LEGAL_MTH"]      = gvGBF.GetRowCellValue(i, "PL1B_NATURE_LEGAL_MTH");
                    dtInsertPL2B.Rows[dtInsertPL2B.Rows.Count - 1]["PL2B_NATURE_LEGAL_TOT"]      = gvGBF.GetRowCellValue(i, "PL1B_NATURE_LEGAL_TOT");
                    dtInsertPL2B.Rows[dtInsertPL2B.Rows.Count - 1]["PL2B_999_MTH"]               = gvGBF.GetRowCellValue(i, "PL1B_999_MTH");
                    dtInsertPL2B.Rows[dtInsertPL2B.Rows.Count - 1]["PL2B_999_NEARBY_MTH"]        = gvGBF.GetRowCellValue(i, "PL1B_999_NEARBY_MTH");
                    dtInsertPL2B.Rows[dtInsertPL2B.Rows.Count - 1]["PL2B_999_TOT"]               = gvGBF.GetRowCellValue(i, "PL1B_999_TOT");
                    dtInsertPL2B.Rows[dtInsertPL2B.Rows.Count - 1]["PL2B_PREV_NATURE_LEGAL_MTH"] = gvGBF.GetRowCellValue(i, "PL1B_PREV_NATURE_LEGAL_MTH");
                    dtInsertPL2B.Rows[dtInsertPL2B.Rows.Count - 1]["PL2B_PREV_NATURE_LEGAL_TOT"] = gvGBF.GetRowCellValue(i, "PL1B_PREV_NATURE_LEGAL_TOT");
                    dtInsertPL2B.Rows[dtInsertPL2B.Rows.Count - 1]["PL2B_PREV_999_MTH"]          = gvGBF.GetRowCellValue(i, "PL1B_PREV_999_MTH");
                    dtInsertPL2B.Rows[dtInsertPL2B.Rows.Count - 1]["PL2B_PREV_999_NEARBY_MTH"]   = gvGBF.GetRowCellValue(i, "PL1B_PREV_999_NEARBY_MTH");
                    dtInsertPL2B.Rows[dtInsertPL2B.Rows.Count - 1]["PL2B_PREV_999_TOT"]          = gvGBF.GetRowCellValue(i, "PL1B_PREV_999_TOT");
                    dtInsertPL2B.Rows[dtInsertPL2B.Rows.Count - 1]["PL2B_ADJ"]                   = gvGBF.GetRowCellValue(i, "PL1B_ADJ");
                    dtInsertPL2B.Rows[dtInsertPL2B.Rows.Count - 1]["PL2B_W_TIME"]                = DateTime.Now;
                    dtInsertPL2B.Rows[dtInsertPL2B.Rows.Count - 1]["PL2B_W_USER_ID"]             = GlobalInfo.USER_ID;
                }
                // 寫入DB
                myResultData = dao30203.updatePL2B(dtInsertPL2B);

                //5. 更新 PL1 (gvMain資料,gvGBF不需寫入DB)
                showMsg = "確認資料(PL1)更新資料庫錯誤! ";
                DataTable dtPL1 = gcMain.DataSource as DataTable;
                if (PL1NewRowCount > 0)
                {
                    for (int x = 0; x < PL1NewRowCount; x++)
                    {
                        dtPL1.Rows[dtPL1.Rows.Count - 1].Delete();
                    }
                }
                myResultData = dao30203.updatePL1(dtPL1);
                //add by Tom
                if (PL1NewRowCount > 0)
                {
                    showMsg      = "確認資料(PL1)更新資料庫錯誤(Insert)! ";
                    myResultData = dao30203.updatePL1(dtPL1Insert);
                }
                //end add by Tom
            } catch (Exception ex) {
                MessageDisplay.Error(showMsg);
                WriteLog(ex);
            }
            return(ResultStatus.Success);
        }
Example #2
0
        protected override ResultStatus Save(PokeBall pokeBall)
        {
            //PB不管資料有無異動都會存檔
            string showMsg = "";

            try {
                #region ue_save_before
                gvMain.CloseEditor();

                //0. 確認是否填入正確公告日期
                if (txtEffDate.Text == "1901/01/01")
                {
                    MessageDisplay.Error("提高-公告日期非正確日期!");
                    return(ResultStatus.Fail);
                }
                if (txtEffDateLower.Text == "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.updatePLLOG(dtPLLOG);
                #endregion
                showMsg      = "PLS1更新資料庫錯誤! ";
                myResultData = dao30222.updatePLS1(dtGridView);//更新PLS1

                int    f;
                string ymd, effYmd, effYmdLower;
                bool   delResult = false;
                //3. 判斷是否有已確認之資料
                ymd = txtDate.Text.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      = txtEffDate.Text.Replace("/", "");
                effYmdLower = txtEffDateLower.Text.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);
        }