2024年5月30日 星期四

V20301 –[確認轉發工]鈕 – 勾選資料處理 - JSON

 目的: V20301 –[確認轉發工] 勾選資料處理

處理說明:  1>判斷目前勾選的資料筆數 : 
                      CHK_PK_OBJ.PK_LIST.length
                  2>取得目前勾選資料
                     var Tmp_DataAry = [];
                     for (let i = 0; i <= CHK_PK_OBJ.PK_LIST.length - 1; i++) {
                          cur_rec = CHK_PK_OBJ.ALL_LIST[i];
                          Tmp_DataAry.push(cur_rec);
                      }
                  3>將勾選的資料轉成 JSON字串, 送至後端處理 , 
                     // 將目前子畫面的資料(Table)轉成 JSON字串
                     var Tmp_DataStr = JSON.stringify(Tmp_DataAry);
                     var np = {};
                     np = {
                         DataStr: Tmp_DataStr,
                         isRPNOAF2AMMNO: Tmp_isRPNOAF2AMMNO,
                     };
                     Ext.Ajax.request({
                        method: "POST",
                        url: '../../api/V20301API/FM2AMM',
                        params: np,
         
                  4>後端資料庫, 將 JSON 轉成 DataTable  以便處理 (*.cs)                       
                       string Tmp_DataStr = nvc["DataStr"];  
                       DataTable dt_np = myfunc.JSON2dt(Tmp_DataStr);
                       for (var i = 0; i < dt_np.Rows.Count; i++)
                      {
                         Tmp_AMMNO = get_NEXT_AMMNO1(Tmp_pre_AMMNO);
                         Tmp_PN = dt_np.Rows[i]["PN"].ToString();
  


1>*.js
function FM2AMM()
    {
       if (CHK_PK_OBJ.PK_LIST.length == 0) {
            mywarnalert("請先選擇要除帳的資料");
            return false;
        }


   var gridstore = Ext.getCmp('grid_Single').store;
            var Tmp_Msg = "確定將勾選的資料轉發工嗎?";
            Ext.Msg.confirm('確認', Tmp_Msg, callBackFunc);
        function callBackFunc(id) {
            console.log("1 callBackFunc : 確定將勾選的資料轉發工嗎?");
            if (id == 'yes') {
                console.log("CHK_PK_OBJ.PK_LIST.length:", CHK_PK_OBJ.PK_LIST.length);
                var Tmp_DataAry = [];
                var isOk = true;
                var np = {};
                var Tmp_Str = "";
                console.log("CHK_PK_OBJ.ALL_LIST:", CHK_PK_OBJ.ALL_LIST);
                for (let i = 0; i <= CHK_PK_OBJ.PK_LIST.length - 1; i++) {
                    cur_rec = CHK_PK_OBJ.ALL_LIST[i];
                    console.log("cur_rec:", cur_rec);
                    console.log("CHK_PK_OBJ.ALL_LIST[i]:", CHK_PK_OBJ.ALL_LIST[i]);
                    console.log("cur_rec.STATFM.toString():", cur_rec.STATFM.toString());
                    if (cur_rec.STATFM.toString() != "A") {
                        Tmp_Str = "交修件單號(" + cur_rec.FMNO.toString() + ")資料已轉待發工<br> "
                            + "請點選[複製]鈕, 建立資料<br>";
                        mywarnalert(Tmp_Str);
                        return;
                    }
                    Tmp_DataAry.push(cur_rec);
                } //  end of for (let i=0,)                
                // 將目前子畫面的資料(Table)轉成 JSON字串
                var Tmp_DataStr = JSON.stringify(Tmp_DataAry);
                console.log("Tmp_DataStr:", Tmp_DataStr);
           //詢問  "此筆資料來源為 AMM,請問是否將[拆檢交修單號(RPNOAF)]異動為 [AMM單號]?
                var Tmp_isRPNOAF2AMMNO = "false";
                var Tmp_Msg = "此筆資料來源為 AMM<br>"
                    + "請問是否將[拆檢交修單號(RPNOAF)]異動為 [AMM單號] ? <br>";
                Ext.Msg.confirm('詢問', Tmp_Msg, callBackFunc1);
                function callBackFunc1(id) {
                    console.log("2 callBackFunc1 : 此筆資料來源為 AMM, 請問是否將[拆檢交修單號(RPNOAF)]異動為 [AMM單號] ?");
                    if (id == 'yes') {
                        Tmp_isRPNOAF2AMMNO = "true";
                    }
                    var np = {};
                    np = {
                        DataStr: Tmp_DataStr,
                        isRPNOAF2AMMNO: Tmp_isRPNOAF2AMMNO,
                    };
                    Ext.Ajax.request({
                        method: "POST",
                        url: '../../api/V20301API/FM2AMM',
                        params: np,
                        //params: Ary_np,
                        async: false,
                        success: function (response, opts) {
                            console.log("0 response.responseText=", response.responseText);
                            var Tmp_Obj = Ext.decode(response.responseText);
                            console.log("1  Tmp_Obj=", Tmp_Obj);
                            if (Tmp_Obj["success"] == true) {
                                mysuccessalert("確認轉發工成功!!");
                                //資料更新完成, 重新顯示資料
                                Ext.getCmp("btn_Show").fireHandler();
                            }
                            else {
                                var Tmp_Rtn_Msg = "[轉發工]失敗!! <br>"
                                    + "請檢核<br> "
                                    + Tmp_Obj["Rtn_Msg"];
                                mywarnalert(Tmp_Rtn_Msg);
                                isOk = false;
                            }
                        },  //end of success                
                        failure: function (response, opts) {
                            var Tmp_Obj = Ext.decode(response.responseText);
                            var Tmp_Rtn_Msg = "[轉發工]失敗!! <br>"
                                + "請檢核<br>"
                                + Tmp_Obj["Rtn_Msg"];
                            mywarnalert(Tmp_Rtn_Msg);
                            isOk = false;
                        }
                    })  //end of Ext.Ajax.Request                            
                }  // end of callbackfunc1
            }  // end    if (id == 'yes')           // end of 確定轉發工      
        }// end of callBackFunc
    }  // end of  FM2AMM


沒有留言:

張貼留言