2023年11月30日 星期四

V120401C - 無子畫面 – call_V120401C()直接執行作業 - SqlOpen -

 目的: V120401C- 無子畫面 – 直接執行作業 - Call_V120401C

處理說明: 


1>V120401.js{  // 技令版期版期 - 無勾選

            xtype: 'button', text: ' 技令版期更新', id: 'Update_Tech_Btn',
            listeners: {
                click: function () {
                    //[條碼編號(TMNO)]第一碼必需為'T'
                    var cur_recs = Ext.getCmp('grid_Single').getSelectionModel().getSelection(); //grid select指向選擇的第一筆        
                    var cur_rec = cur_recs[0];
                    var Tmp_TMNO,Tmp_STAT, Tmp_Str;
                    console.log("cur_rec:", cur_rec);
                    Tmp_TMNO = cur_rec["raw"]["TMNO"];
                    Tmp_STAT = cur_rec["raw"]["STAT"];
                    if (Tmp_TMNO.substr(0, 1) != "T") {
                        Tmp_Str = "條碼編號(" + Tmp_TMNO + ")第一碼必需為 'T' <br>"
                            + "請檢核 !!";
                        myalert(Tmp_Str);
                        return;
                    }
                    if (Tmp_STAT== "Z") {
                        Tmp_Str = "條碼編號(" + Tmp_TMNO + ")的技令現況不可為 Z:已刪除 <br>"
                            + "請檢核 !!";
                        myalert(Tmp_Str);
                        return;
                    }
                    Call_V120401C();
                }
            }
        }, 




2>V120401C.js
function Call_V120401C() {
    console.log(" Call_V120401C  step1");
    var Tmp_NATIXX, Tmp_LGTPXX, Tmp_TMNOXX,Tmp_TMNO;
    var Tmp_Str = "";   
    var cur_recs = Ext.getCmp('grid_Single').getSelectionModel().getSelection(); //grid select指向選擇的第一筆        
    var cur_rec = cur_recs[0];   
    console.log("cur_rec:", cur_rec);
    console.log("cur_rec[raw][TMNOXX]:", cur_rec["raw"]["TMNOXX"]);                                        
    Tmp_TMNO = cur_rec["raw"]["TMNO"];
    Tmp_TMNOXX=cur_rec["raw"]["TMNOXX"];
    Tmp_LGTPXX=cur_rec["raw"]["LGTPXX"];
    Tmp_NATIXX = cur_rec["raw"]["NATIXX"];
    //執行[技令版期更新]
    var np = {};
    np["TMNO"] = Tmp_TMNO;
    np["TMNOXX"] = Tmp_TMNOXX;
    np["LGTPXX"] = Tmp_LGTPXX;
    np["NATIXX"] = Tmp_NATIXX;
        var isOk = true;
        Ext.Ajax.request({
            method: "POST",
            url: '../../api/V120401CAPI/UPDATE_AMM_TMDWGED',
            params: 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) {
                    var Tmp_Rtn_Msg ="技令版期更新完成 !!<br> "
                        + "訊息如下:<br>"
                        + Tmp_Obj["Rtn_Msg"];
                    mywarnalert(Tmp_Rtn_Msg);
                    isOk = true;
                }
                else {
                    var Tmp_Rtn_Msg = "條碼編號("+Tmp_TMNO+")技令編號(" + Tmp_TMNOXX + ")國別碼(" + Tmp_NATIXX + ")中英文別(" + Tmp_LGTPXX + ")<br>"
                                                       +"技令版期更新失敗<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 = "條碼編號("+Tmp_TMNO+")技令編號(" + Tmp_TMNOXX + ")國別碼(" + Tmp_NATIXX + ")中英文別(" + Tmp_LGTPXX + ")<br>"
                    + "更新技令版期失敗<br> "
                    + "錯誤訊息如下:<br>"
                    + Tmp_Obj["Rtn_Msg"];
                mywarnalert(Tmp_Rtn_Msg);
                isOk = false;
            }
        })  //end of Ext.Ajax.Request        
    if (isOk == true) {        
            //資料更新完成, 重新顯示資料
            Ext.getCmp("btn_Show").fireHandler();
        }
} // end of   function Call_V120401C() {


2>V120401C*.cs
/*        // 更新 - UPDATE_AMM_TMDWGED  

        //技令若有最新版本,則更新[技令版期(AMM_TMDWGED)]
            --> [技令版期(AMM_TMDWGED)].CTRL= MAX(CTRL)+1 , 
                 --> 新增 TM_XY@TLS_245 的版本資料(TMNOXX+NATIXX+LGTPXX)
        */
        [HttpPost]
        public HttpResponseMessage UPDATE_AMM_TMDWGED()
        {
            //取得參數值
            var c = HttpContext.Current;
            NameValueCollection nvc = c.Request.Form;
            string Tmp_TMNO = nvc["TMNO"];
            string Tmp_TMNOXX = nvc["TMNOXX"];
            string Tmp_LGTPXX = nvc["LGTPXX"];
            string Tmp_NATIXX = nvc["NATIXX"];

            OracleCommand cmd = new OracleCommand();
            var response = this.Request.CreateResponse();
            //STEP 1>比對  TM_XY 的筆數是否和  AMM_TMDWGED的筆數相符
            bool is_update = false;
            string Tmp_RtnMsg;
            string Tmp_MAX_CTRL="";
            int Tmp_NEXT_CTRL=1;
            int Tmp_XY_CNT, Tmp_TMDWGED_CNT;
            string Tmp_Sql = " SELECT  COUNT(*)  "
                                       + "  FROM    TM_XY @TLS_245  "
                                       + "  WHERE  1 = 1  "
                                       + "  AND        OWN_DEP = 'L'   "
                                       + "   AND       TMNOXX = " + myfunc.AA(Tmp_TMNOXX)
                                       + "   AND       NATIXX = " + myfunc.AA(Tmp_NATIXX)
                                       + "   AND       LGTPXX = " + myfunc.AA(Tmp_LGTPXX);
            Tmp_XY_CNT = int.Parse(myfunc.SqlValue(Tmp_Sql));
            //沒有任何版期資料, 則返回, 不需更新
            if (Tmp_XY_CNT == 0)
            {
                is_update = false;
            }
            else
            {
                Tmp_Sql = " SELECT   MAX(B.CTRL)  "
                                + " FROM     AMM_TMDWG A,AMM_TMDWGED B  "
                                + " WHERE  A.TMNO = B.TMNO   "
                                + "  AND      A.OWN_DEP = 'L'   "
                                + "  AND      A.TMNO=" + myfunc.AA(Tmp_TMNO)
                                + "   AND    A.TMNOXX = " + myfunc.AA(Tmp_TMNOXX)
                                + "   AND     A.NATIXX = " + myfunc.AA(Tmp_NATIXX)
                                + "   AND     A.LGTPXX = " + myfunc.AA(Tmp_LGTPXX);
                Tmp_MAX_CTRL = myfunc.SqlValue(Tmp_Sql);                
                Tmp_Sql = " SELECT COUNT(*)  "
                                + " FROM     AMM_TMDWG A,AMM_TMDWGED B  "
                                + " WHERE  A.TMNO = B.TMNO   "
                                + "  AND      A.OWN_DEP = 'L'   "
                                 + "  AND      A.TMNO=" + myfunc.AA(Tmp_TMNO)
                                + "   AND    A.TMNOXX = " + myfunc.AA(Tmp_TMNOXX)
                                + "   AND     A.NATIXX = " + myfunc.AA(Tmp_NATIXX)
                                + "   AND     A.LGTPXX = " + myfunc.AA(Tmp_LGTPXX)
                                + "   AND     B.CTRL =" + myfunc.AA(Tmp_MAX_CTRL);
                Tmp_TMDWGED_CNT = int.Parse(myfunc.SqlValue(Tmp_Sql));
                if (Tmp_TMDWGED_CNT != Tmp_XY_CNT)
                {
                    is_update = true;
                }
                //STEP 2>比對  TM_XY.VNTPXD 的是否存在  AMM_TMDWGED.MAX_CTRL.VNTPXD的筆數相符
                Tmp_Sql = "  SELECT   COUNT(*)  "
                               + "  FROM    TM_XY @TLS_245  "
                               + "  WHERE  1 = 1  "
                               + " AND       OWN_DEP = 'L'   "
                               + "   AND    TMNOXX = " + myfunc.AA(Tmp_TMNOXX)
                               + "   AND    NATIXX = " + myfunc.AA(Tmp_NATIXX)
                               + "   AND    LGTPXX = " + myfunc.AA(Tmp_LGTPXX)
                               + "    AND    VNTPXD NOT IN ( SELECT    B.VNTPXD    "
                                                                             + "  FROM      AMM_TMDWG A, AMM_TMDWGED B  "
                                                                             + "  WHERE    A.TMNO= B.TMNO  "
                                                                             + "  AND        A.TMNO=" + myfunc.AA(Tmp_TMNO)
                                                                             + "   AND       A.TMNOXX = " + myfunc.AA(Tmp_TMNOXX)
                                                                             + "   AND       A.NATIXX = " + myfunc.AA(Tmp_NATIXX)
                                                                             + "   AND        A.LGTPXX = " + myfunc.AA(Tmp_LGTPXX)
                                                                             + "    AND        B.CTRL=" + myfunc.AA(Tmp_MAX_CTRL) + " )";
                Tmp_XY_CNT = int.Parse(myfunc.SqlValue(Tmp_Sql));
                if (Tmp_XY_CNT > 0)
                {
                    is_update = true;
                }
            }// else {} if (Tmp_XY_CNT == 0)
            if (is_update)
            {
                //更新資料 -  insert  AMM_TMDWGED ,
                string Tmp_ITEMXY, Tmp_VNTPXD, Tmp_VNDTXY;
                string Tmp_VNPGXY, Tmp_DOREXY, Tmp_REMKXY, Tmp_VNVFXY;
                string Tmp_MKER, Tmp_MKDT;
                Tmp_MKER = User.Identity.Name;
                Tmp_MKDT = DateTime.Now.ToString("yyyy/MM/dd");
                Tmp_NEXT_CTRL = int.Parse(Tmp_MAX_CTRL) + 1;
                // insert AMM_TMDWGEND
                DataTable dt = new DataTable();
                Tmp_Sql = " SELECT  NATIXX, TMNOXX, LGTPXX, OWN_DEP, ITEMXY, VNTPXD, VNDTXY, "
                                 + " VNPGXY,DOREXY,REMKXY,VNVFXY  "
                                 + "  FROM   TM_XY @TLS_245   "
                                 + "  WHERE  1 = 1  "
                                 + "   AND       OWN_DEP = 'L'   "
                                + "   AND       TMNOXX = " + myfunc.AA(Tmp_TMNOXX)
                                + "   AND       NATIXX = " + myfunc.AA(Tmp_NATIXX)
                                + "   AND        LGTPXX = " + myfunc.AA(Tmp_LGTPXX);
                dt = myfunc.SqlOpen(dt, Tmp_Sql);
                foreach (DataRow dr in dt.Rows)
                {
                    Tmp_ITEMXY = dr["ITEMXY"].ToString();
                    Tmp_VNTPXD = dr["VNTPXD"].ToString();
                    //Tmp_VNDTXY = dr["VNDTXY"].ToString();
                    Tmp_VNDTXY = myfunc.getDateStr(dr["VNDTXY"].ToString());
                    Tmp_VNPGXY = dr["VNPGXY"].ToString();
                    //Tmp_DOREXY = dr["DOREXY"].ToString();
                    Tmp_DOREXY = myfunc.getDateStr(dr["DOREXY"].ToString());
                    Tmp_REMKXY = dr["REMKXY"].ToString();
                    Tmp_VNVFXY = dr["VNVFXY"].ToString();                    
                    Tmp_Sql = "  INSERT  INTO   AMM_TMDWGED  "
                                    + "( TMNO,CTRL,"
                                    + "ITEMXY,VNDTXY,VNTPXD,VNPGXY,DOREXY,"
                                    + "REMKXY,VNVFXY,MKER,MKDT) "
                                    + "  VALUES "
                                    + "(" + myfunc.AA(Tmp_TMNO) + "," + myfunc.AA(Tmp_NEXT_CTRL.ToString()) + ","
                                    + myfunc.AA(Tmp_ITEMXY) + "," + myfunc.AA(Tmp_VNDTXY) + "," + myfunc.AA(Tmp_VNTPXD) + "," + myfunc.AA(Tmp_VNPGXY) + "," + myfunc.AA(Tmp_DOREXY) + ","
                                    + myfunc.AA(Tmp_REMKXY) + "," + myfunc.AA(Tmp_VNVFXY) + "," + myfunc.AA(Tmp_MKER) + "," + myfunc.AA(Tmp_MKDT) + ")";
                    myfunc.SqlExec(Tmp_Sql);
                }  // end of foreach (DataRow dr in dt)
                Tmp_RtnMsg = "技令編號(" + Tmp_TMNOXX + ")國別碼(" + Tmp_NATIXX + ")中英文別(" + Tmp_LGTPXX + ")<br>"
                                     + "版期更新完成 !!  <br>";
                response.Content = new StringContent("{'success': true,'Rtn_Msg':'" + Tmp_RtnMsg + "'}");    // 回應內容
            }
            else
            {
                Tmp_RtnMsg = "技令編號(" + Tmp_TMNOXX + ")國別碼(" + Tmp_NATIXX + ")中英文別(" + Tmp_LGTPXX + ")<br>"
                                        + "無最新版期 , 需要更新 !!  <br>";
                response.Content = new StringContent("{'success': true,'Rtn_Msg':'" + Tmp_RtnMsg + "'}");    // 回應內容
            }
            return response;
            //新增  [AMM_TMDWGED] , CTRL=MAX(CTRL)+1            
        } //  end of  UPDATE_AMM_TMDWGD()



--> 另一寫法
         Tmp_cnt1 = Tmp_dt1.Rows.Count;                
                for (int j = 0; j < Tmp_cnt1; j++)
                {
                    DataRow dr1 = Tmp_dt1.Rows[j];
                    string Tmp_VNTPXD= dr1["VNTPXD"].ToString();
 
                    

沒有留言:

張貼留言