[HttpPost]
public dynamic getGridData_M(bool par_paging = true)
{
var c = HttpContext.Current;
NameValueCollection nvc = c.Request.Form;
//Panel11
string Tmp_FMNO = nvc["s_FMNO"];
string Tmp_AMMNO = nvc["s_AMMNO"];
string Tmp_OGONOAF = nvc["s_OGONOAF"];
string Tmp_NGONOAF = nvc["s_NGONOAF"];
string Tmp_RPNOAF = nvc["s_RPNOAF"];
string Tmp_MRPNOAF = nvc["s_MRPNOAF"];
//Panel12
string Tmp_WBSNO = nvc["s_WBSNO"];
string Tmp_PN = nvc["s_PN"];
string Tmp_SAPNO = nvc["s_SAPNO"];
string Tmp_FACWC = nvc["s_FACWC"];
//發工日期起~迄
string Tmp_SAPDT1 = "";
string Tmp_Str = "";
if (!myfunc.checkisnull(nvc["s_SAPDT1"]))
{
Tmp_SAPDT1 = string.Format("{0:yyyy/MM/dd}", DateTime.Parse(nvc["s_SAPDT1"]));
};
string Tmp_SAPDT2 = "";
if (!myfunc.checkisnull(nvc["s_SAPDT2"]))
{
Tmp_SAPDT2 = string.Format("{0:yyyy/MM/dd}", DateTime.Parse(nvc["s_SAPDT2"]));
};
//Panel14 - 登錄否
string Tmp_OPHR = nvc["s_OPHR"]; //異動原因
////將 A,C,B,D,ALL 字串加入 "" --> "A","B","C","D" , 不含 ALL 傳回
//if (!myfunc.checkisnull(Tmp_OPHR))
//{
// Tmp_OPHR = myfunc.AddQuoteStr(Tmp_OPHR);
//}
//Panel14 - 子工單 Checked - SUB_SAPNO
string Tmp_SUB_SAPNO = nvc["s_SUB_SAPNO"]; //子工單
//Panel15 - 異常處理中 Checked - STATAF
string Tmp_STATAF = nvc["s_STATAF"]; //異常處理中
OracleCommand cmd = new OracleCommand();
string Tmp_Sql = " SELECT RNK,FMNO,AMMNO ,CST_NO ,DTSOR ,OGONOAF ,NGONOAF ,RPNOAF ,MRPNOAF ,WBSNO ,RQTYAF ,C_NM ,ES_NM ,NSN ,PN ,SEQOAF ,EIAC ,WC ,CSTNM ,TYPEAF ,RBTHAF ,FACTAB ,PRNRAF ,CRNRAF ,RSNSAF ,FREDTAF ,OSM ,EONO ,CDCODE ,FRTP ,FRNOAF ,DLEMPLYID ,CREMPLYID ,MTEMPLYID ,PRNRCLAF ,NRCLAF ,QDRNO ,REMARK ,STATFM ,REDTAF ,JCNOAF ,FD350 ,RBNOAF ,NPN ,NNSN ,REFRNOAF ,MB1A ,MB1ADT ,PROID ,LWCNT ,BTDT ,MDDT ,SAPREMARK ,FACWC ,ISSUB ,ISCK ,NEMPID ,MEMPID ,PMNFAF ,RMNFAF ,FRCLDT ,CMNRAF ,DLVDT ,NRCLFM ,CLS ,CSDTFM ,PSREMARK ,FILEBODY ,FILEDATE ,FILENAME ,FILESIZE ,SCHER ,LGROUP ,PM17MT ,ISSN ,REQMAF ,PJOPHR ,EIAC_CUS ,OPHR ,RSRT ,SRU_PARTS ,PDMBOMIN ,FCMPDT ,TEST_CAUSE ,MAINT_STA ,MCODE ,CRNO ,MAINTDT ,ENGP ,PJDT "
+ " FROM ( SELECT dense_rank() over(order by FMNO) as RNK,"
+ " FMNO,AMMNO ,CST_NO ,DTSOR ,OGONOAF ,NGONOAF ,RPNOAF ,MRPNOAF ,WBSNO ,RQTYAF ,C_NM ,ES_NM ,NSN ,PN ,SEQOAF ,EIAC ,WC ,CSTNM ,TYPEAF ,RBTHAF ,FACTAB ,PRNRAF ,CRNRAF ,RSNSAF ,FREDTAF ,OSM ,EONO ,CDCODE ,FRTP ,FRNOAF ,DLEMPLYID ,CREMPLYID ,MTEMPLYID ,PRNRCLAF ,NRCLAF ,QDRNO ,REMARK ,STATFM ,REDTAF ,JCNOAF ,FD350 ,RBNOAF ,NPN ,NNSN ,REFRNOAF ,MB1A ,MB1ADT ,PROID ,LWCNT ,BTDT ,MDDT ,SAPREMARK ,FACWC ,PAMMNO ,ISSUB ,ISCK ,NEMPID ,MEMPID ,PMNFAF ,RMNFAF ,FRCLDT ,CMNRAF ,DLVDT ,NRCLFM ,CLS ,CSDTFM ,PSREMARK ,FILEBODY ,FILEDATE ,FILENAME ,FILESIZE ,SCHER ,LGROUP ,PM17MT ,ISSN ,REQMAF ,PJOPHR ,EIAC_CUS ,OPHR ,RSRT ,SRU_PARTS ,PDMBOMIN ,FCMPDT ,TEST_CAUSE ,MAINT_STA ,MCODE ,CRNO ,MAINTDT ,ENGP ,PJDT "
+ " FROM AMM_FM "
+ " WHERE 1=1 ";
//panel11
//系統件單號 s_FMNO
if (!myfunc.checkisnull(Tmp_FMNO))
{
Tmp_Sql = Tmp_Sql + " AND FMNO= " + myfunc.AA(Tmp_FMNO);
};
//AMM單號 s_AMMNO
if (!myfunc.checkisnull(Tmp_AMMNO))
{
Tmp_Sql = Tmp_Sql + " AND AMMNO= " + myfunc.AA(Tmp_AMMNO);
};
//拆檢提領單號 s_OGONOAF
if (!myfunc.checkisnull(Tmp_OGONOAF))
{
Tmp_Sql = Tmp_Sql + " AND OGONOAF= " + myfunc.AA(Tmp_OGONOAF);
};
//維修提領單號 s_NGONOAF
if (!myfunc.checkisnull(Tmp_NGONOAF))
{
Tmp_Sql = Tmp_Sql + " AND NGONOAF= " + myfunc.AA(Tmp_NGONOAF);
};
//拆檢交修單號 s_RPNOAF
if (!myfunc.checkisnull(Tmp_RPNOAF))
{
Tmp_Sql = Tmp_Sql + " AND RPNOAF= " + myfunc.AA(Tmp_RPNOAF);
};
//維修交修單號 s_MRPNOAF
if (!myfunc.checkisnull(Tmp_MRPNOAF))
{
Tmp_Sql = Tmp_Sql + " AND MRPNOAF= " + myfunc.AA(Tmp_MRPNOAF);
};
//WBS號碼 s_WBSNO
if (!myfunc.checkisnull(Tmp_WBSNO))
{
Tmp_Sql = Tmp_Sql + " AND WBSNO= " + myfunc.AA(Tmp_WBSNO);
};
//承修工場 s_FACWC
if (!myfunc.checkisnull(Tmp_FACWC))
{
Tmp_Sql = Tmp_Sql + " AND FACWC= " + myfunc.AA(Tmp_FACWC);
};
//工單號碼 s_SAPNO
if (!myfunc.checkisnull(Tmp_SAPNO))
{
Tmp_Sql = Tmp_Sql + " AND AMMNO IN ( SELECT AMMNO "
+" FROM AMM_SRO "
+" WHERE SAPNO LIKE " + myfunc.AA(Tmp_SAPNO+"%")
+")";
};
//件號 s_PN
if (!myfunc.checkisnull(Tmp_PN))
{
Tmp_Sql = Tmp_Sql + " AND AMMNO IN ( SELECT AMMNO "
+" FROM AMM_SRO "
+" WHERE PN LIKE " + myfunc.AA(Tmp_PN + "%")
+")";
};
//發工日期 SAPDT
if (!(myfunc.checkisnull(Tmp_SAPDT1) && myfunc.checkisnull(Tmp_SAPDT2)))
{
Tmp_Sql = Tmp_Sql + " AND AMMNO IN ( SELECT AMMNO "
+ " FROM AMM_SRO "
+ " WHERE 1=1 ";
if (!myfunc.checkisnull(Tmp_SAPDT1))
{
Tmp_Sql = Tmp_Sql + " AND trunc(SAPDT)>= " + myfunc.AA(Tmp_SAPDT1) ;
};
if (!myfunc.checkisnull(Tmp_SAPDT2))
{
Tmp_Sql = Tmp_Sql + " AND trunc(SAPDT)<= " + myfunc.AA(Tmp_SAPDT2);
};
Tmp_Sql = Tmp_Sql + ")";
}; // if (!(myfunc.checkisnull(Tmp_UPDDT1) || myfunc.checkisnull(Tmp_UPDDT2)))
//子工單
if (!myfunc.checkisnull(Tmp_SUB_SAPNO))
{
if (Tmp_SUB_SAPNO != "true")
Tmp_Sql = Tmp_Sql + " AND AMMNO NOT LIKE '%-%' ";
}; //end of 管制有效項
//異常處理中
if (!myfunc.checkisnull(Tmp_STATAF))
{
if (Tmp_STATAF == "true")
Tmp_Sql = Tmp_Sql + " AND FMNO IN ( SELECT FMNO "
+ " FROM AMM_SRO "
+ " WHERE FIXNO IN ( SELECT RPNOAF "
+ " FROM CSM_AF@TLS_245 "
+ " WHERE STATAF=" + myfunc.AA("D")
+ ")"
+ ")";
}; //end of //異常處理中
//登錄
/*
未登錄: Y1
品保登錄: Y2
已登錄: N
全部: ALL
*/
if (!myfunc.checkisnull(Tmp_OPHR))
{
switch (Tmp_OPHR)
{
case "Y1": //未登錄
Tmp_Sql = Tmp_Sql + " AND OPHR='Y' AND PM17MT IS NULL ";
break;
case "Y2": //品保登錄中
Tmp_Sql = Tmp_Sql + " AND OPHR='Y' AND PM17MT ='Y' ";
break;
case "N": //已登錄
Tmp_Sql = Tmp_Sql + " AND OPHR='N' ";
break;
case "ALL":
break;
};
};
Tmp_Sql = Tmp_Sql + ")";
cmd.CommandText = Tmp_Sql;
string countSql = " SELECT COUNT(*) as total FROM (" + Tmp_Sql + ")";
//DataSet ds = getDataTable(cmd, countSql); //原本的程式
DataSet ds = getDataTable(cmd, countSql, par_paging, true);
//若按[全部選取]鈕(par_paging==false), 則不取計算欄位
if (par_paging == false)
{
return ds;
}
//新增 CaluField 欄位 - [單況][約別] [送修原因說明]
getKeyCode("STATFM", ref ds);
getKeyCode("TYPEAF", ref ds);
getKeyCode("RSNSAF", ref ds);
getKeyCode("DTSOR", ref ds); //資料來源
ds.Tables["T1"].Columns.Add("SAPNO_", typeof(object)); //SAP工號
ds.Tables["T1"].Columns.Add("PN_", typeof(object)); //件號
ds.Tables["T1"].Columns.Add("SAPDT_", typeof(object)); //發工日期
ds.Tables["T1"].Columns.Add("DLEMPLYID_", typeof(object)); //發工人員
ds.Tables["T1"].Columns.Add("CREMPLYID_", typeof(object)); //管制人員
ds.Tables["T1"].Columns.Add("MTEMPLYID_", typeof(object)); //維修人員
string Tmp_DLEMPLYID, Tmp_DLEMPLYID_;
string Tmp_CREMPLYID, Tmp_CREMPLYID_;
string Tmp_MTEMPLYID, Tmp_MTEMPLYID_;
string Tmp_SAPNO_, Tmp_PN_, Tmp_SAPDT_ ;
foreach (DataRow row in ds.Tables["T1"].Rows)
{
Tmp_DLEMPLYID = row["DLEMPLYID"].ToString();
Tmp_CREMPLYID = row["CREMPLYID"].ToString();
Tmp_MTEMPLYID = row["MTEMPLYID"].ToString();
Tmp_AMMNO = row["AMMNO"].ToString();
//新增 CaluField 欄位 - [人員姓名]
Tmp_Sql = " SELECT EMPLYNM "
+ " FROM HR_EMPLYM "
+ " WHERE EMPLYID=" + myfunc.AA(Tmp_DLEMPLYID);
Tmp_DLEMPLYID_ = myfunc.SqlValue(Tmp_Sql);
Tmp_Sql = " SELECT EMPLYNM "
+ " FROM HR_EMPLYM "
+ " WHERE EMPLYID=" + myfunc.AA(Tmp_CREMPLYID);
Tmp_CREMPLYID_ = myfunc.SqlValue(Tmp_Sql);
Tmp_Sql = " SELECT EMPLYNM "
+ " FROM HR_EMPLYM "
+ " WHERE EMPLYID=" + myfunc.AA(Tmp_MTEMPLYID);
Tmp_MTEMPLYID_ = myfunc.SqlValue(Tmp_Sql);
//新增 CaluField 欄位 - [件號][工單號碼]
Tmp_Sql = " SELECT SAPNO,PN,SAPDT "
+ " FROM AMM_SRO "
+ " WHERE AMMNO=" + myfunc.AA(Tmp_AMMNO);
Tmp_Str = myfunc.SqlValue(Tmp_Sql);
Tmp_SAPNO_ = myfunc.StrExtract(Tmp_Str, 1);
Tmp_PN_ = myfunc.StrExtract(Tmp_Str, 2);
Tmp_SAPDT_ = myfunc.Date2Str(myfunc.StrExtract(Tmp_Str,3));
row["DLEMPLYID_"] = Tmp_DLEMPLYID_;
row["CREMPLYID_"] = Tmp_CREMPLYID_;
row["MTEMPLYID_"] = Tmp_MTEMPLYID_;
row["SAPNO_"] = Tmp_SAPNO_;
row["PN_"] = Tmp_PN_;
row["SAPDT_"] = Tmp_SAPDT_;
}
return ds;
}