You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1105 lines
60 KiB

using System;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Collections;
using System.Text;
using System.Configuration;
using System.Web.Script.Services;
using System.Collections.Generic;
using Newtonsoft.Json;
using OT.Common;
#region 程式異動記錄
///程式代號:WebService1
///程式名稱:
///程式說明:
///xx.YYYY/MM/DD VER AUTHOR COMMENTS(說明修改的內容)
///01.2014/04/24 1.0 Gary CREATE
///02.2014/06/18 1.1 Gary Code
///03.2014/07/12 1.2 Gary Code
///04.2014/09/29 1.3 Dean Modify LoginVerification
#endregion
namespace OT_Web
{
public class MyList
{
public string Name { get; set; }
public int hit { get; set; }
}
/// <summary>
/// WebService1 的摘要描述
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{
#region LoginVerification
/// <summary>
/// 取回參團資訊
/// </summary>
[WebMethod]
public string LoginVerification(string strUserId, string strPwd)
{
SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString()); //從Web.config取得伺服器資訊
SqlCommand cmd = new SqlCommand("SELECT MemberID,Password FROM OTB_SYS_Members WHERE MemberID like @id", cn); //設定相關資訊
cmd.Parameters.AddWithValue("@id", strUserId.Trim()); //丟入所需參數
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable tbl = new DataTable("DepartmentUser");
string pwd = SecurityUtil.DESEncrypt(strPwd, System.Configuration.ConfigurationManager.AppSettings["DefaultCryptionKey"].Trim(), System.Configuration.ConfigurationManager.AppSettings["DefaultCryptionIV"].Trim());
tbl.Load(dr); //載入資訊
int intCount = tbl.Rows.Count; //取得總數
string ChkPwd = string.Empty;
string strreturn = string.Empty;
if (intCount == 0) //如果Count等於0,代表使用者帳號有錯誤
{
strreturn = "A00068"; //設定須回傳代碼
}
else //如果Coutn不等於0代表有找到相關的人員
{
ChkPwd = tbl.Rows[0]["Password"].ToString(); //取得人員的密碼
}
//string strreturn = (intCount == 0) ? "A00068" : (ChkPwd != pwd) ? "A00069" : "ok"; 這裡需再多判斷科威格式,所以這裡先移除
if (ChkPwd != pwd) //如果帳號密碼不符合,則判斷科威格式
{
try
{
//僅以帳號密碼測試是否科威帳號
//之後可以直接使用與修正
//WMPWENCODER.Encoder objPWD = new WMPWENCODER.Encoder();
//string p_pwd = strPwd.Trim();
//string newpwd = objPWD.chkPwd(p_pwd);
//cmd = new SqlCommand("select *,dept_nm=(select top 1 a.dept_nm from trdept a,tremp b where b.dept_cd = a.dept_cd and b.emp_cd=trusr.usr_id) from trusr where usr_id=@id and usr_passwd=@pwd", cn); //設定相關資訊
//cmd.Parameters.AddWithValue("@id", strUserId.Trim());
//cmd.Parameters.AddWithValue("@pwd", newpwd); //丟入所需參數
//dr = cmd.ExecuteReader();
//tbl = new DataTable("User");
//tbl.Load(dr); //載入資訊
//intCount = tbl.Rows.Count; //取得總數
//if (intCount == 0) //如果Count等於0,代表使用者帳號有錯誤
//{
strreturn = "A00069";
//}
//else { strreturn = "ok"; }
//EGCHKUSRPWD.CHKPWDClass oClass = new EGCHKUSRPWD.CHKPWDClass(); //科威的插件
//oClass.iCOMPUTER_NM = "";
//oClass.iPWD = strPwd;
//oClass.iSYS_FG = "";
//oClass.iUID = strUserId;
//oClass.iUSER_QT = 0;
//oClass.MAIN();
//if (string.IsNullOrEmpty(oClass.oErrMsg) && oClass.iUID == oClass.oUSR_ID)
//{
// //如果沒有登入錯誤並且正確取到登入用戶信息則認為科威登入成功!
// strreturn = "ok";
//}
//else
//{
// strreturn = "A00069";
//}
}
catch (Exception ex)
{
strreturn = "A00069";
return strreturn;
}
}
else
{
strreturn = "ok";
}
cn.Close();
return strreturn;
}
#endregion
#region GetGroupNm
/// <summary>
/// 取回參團資訊
/// </summary>
[WebMethod]
public string GetGroupNm(string strGrup_cd, string type)
{
//連線SQL資料庫
SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString()); //從Web.config取得伺服器資訊
SqlCommand cmd = new SqlCommand("SELECT GRUP_CD,GRUP_SNM,leav_dt FROM trdata.dbo.TRGRUP where (GRUP_CD like @GRUP_CD OR @GRUP_CD IS NULL OR @GRUP_CD='%%') and GRUP_TP='3' ", cn);//設定相關資訊
cmd.Parameters.AddWithValue("@GRUP_CD", "%" + strGrup_cd.Trim() + "%");//丟入所需參數
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable tbl = new DataTable("DepartmentUser");
tbl.Load(dr);//將查詢的資料傳到tbl資料表輸出
int intCount = tbl.Rows.Count;
string strGrup = string.Empty;
if (intCount == 1) //如果只有一筆,代表資料完全符合,可回傳
{
strGrup = tbl.Rows[0]["GRUP_CD"].ToString() + "$$$" + tbl.Rows[0]["GRUP_SNM"].ToString() + "$$$" + tbl.Rows[0]["leav_dt"].ToString();
}
else //如果為多筆或沒有,則回傳SearchGroup,以便知道需重新搜尋
{
strGrup = "SearchGroup";
}
cn.Close();
return strGrup;
}
#endregion
#region GetAllHit
/// <summary>
/// 取回點擊率
/// </summary>
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public MyList[] GetAllHit(string strArea)
{
SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString()); //從Web.config取得伺服器資訊
//SqlCommand cmd = new SqlCommand(" select b.CHIN_WD ,count(*) as click_qt from trdata.dbo.tvlpageclick as a inner join (SELECT CHIN_WD,ENGL_WD FROM trdata.dbo.TRWORD where CLS_CD ='TvlPageClass') as b on a.page_cd = b.ENGL_WD group by page_cd ,b.CHIN_WD order by page_cd ", cn);//設定相關資訊
SqlCommand cmd = new SqlCommand(" SELECT Page_Cd,Count(0) FROM trdata.dbo.tvlpageclick GROUP BY Page_Cd ", cn);//設定相關資訊
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable tbl = new DataTable("DepartmentUser");
tbl.Load(dr); //將查詢的資料傳到tbl資料表輸出
List<MyList> res = new List<MyList>();
for (int intTblCount = 0; intTblCount < tbl.Rows.Count; intTblCount++) //跑迴圈製造出JsonAry的資料
{
res.Add(new MyList { Name = tbl.Rows[intTblCount][0].ToString(), hit = int.Parse(tbl.Rows[intTblCount][1].ToString()) });
}
cn.Close();
return res.ToArray();
}
#endregion
#region GetLocHit
/// <summary>
/// 取回點擊率
/// </summary>
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public MyList[] GetLocHit(string strArea)
{
SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());//從Web.config取得伺服器資訊
//SqlCommand cmd =new SqlCommand("select B.CHIN_WD,REPLACE(REPLACE(REPLACE(REPLACE(area_cd,'A1','促銷'),'A2','大圖'),'A3','先知'),'A4','行程')AS area_cd,count(*) as click_qt from trdata.dbo.tvlpageclick AS A inner join (SELECT CHIN_WD,ENGL_WD FROM trdata.dbo.TRWORD where CLS_CD ='TvlPageClass') as b on a.page_cd = b.ENGL_WD where B.CHIN_WD = @Area group by B.CHIN_WD,page_cd,area_cd order by page_cd,area_cd", cn);//設定相關資訊
SqlCommand cmd =new SqlCommand("select Page_Cd,REPLACE(REPLACE(REPLACE(REPLACE(area_cd,'A1','促銷'),'A2','大圖'),'A3','先知'),'A4','行程')AS area_cd,count(*) as click_qt from trdata.dbo.tvlpageclick AS A where Page_Cd= @Area group by page_cd,area_cd order by page_cd,area_cd", cn);//設定相關資訊
cmd.Parameters.AddWithValue("@Area", strArea.Trim()); //丟入參數
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable tbl = new DataTable("DepartmentUser");
tbl.Load(dr);//將查詢的資料傳到tbl資料表輸出
List<MyList> res = new List<MyList>();
for (int intTblCount = 0; intTblCount < tbl.Rows.Count; intTblCount++) //跑迴圈製造出JsonAry的資料
{
res.Add(new MyList { Name = tbl.Rows[intTblCount][1].ToString(), hit = int.Parse(tbl.Rows[intTblCount][2].ToString()) });
}
cn.Close();
return res.ToArray();
}
#endregion
#region GetRepArgJson
/// <summary>
/// 取回旅遊區域資料
/// </summary>
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetRepArgJson(string strParentID)
{
SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString()); //從Web.config取得伺服器資訊
//string strSql = " SELECT Rep.ArgumentClassID,Rep.ArgumentID,Rep.ArgumentValue,Rep.OrderByValue,Rep.DelStatus,Rep.Effective,Sort.[Level],dbo.OFN_Cms_GetCmsAreaUsedCount(Sort.ArgumentID) As Used "; //SQL語法
//strSql += " FROM OTB_CMS_RepArguments As Rep";
//strSql += " Left Join OVW_Cms_AreaSort As Sort On Rep.ArgumentClassID=Sort.ArgumentID";
//strSql += " WHERE ArgumentClassID=@ParentID";
//strSql += " ORDER BY OrderByValue";
string strSql = " SELECT ArgumentClassID,ArgumentID,ArgumentValue,OrderByValue,DelStatus,Effective,dbo.OFN_Cms_GetCmsAreaUsedCount(ArgumentID) As Used "; //SQL語法
strSql += " FROM OTB_CMS_RepArguments";
strSql += " WHERE ArgumentClassID=@ParentID";
strSql += " ORDER BY OrderByValue";
SqlCommand cmd = new SqlCommand(strSql, cn); //設定SqlCommand所需資訊
cmd.Parameters.AddWithValue("@ParentID", strParentID.Trim()); //丟入參數
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable tbl = new DataTable();
tbl.Load(dr);
string str_json = JsonConvert.SerializeObject(tbl, Formatting.Indented); //把DataTable轉成Json字串
cn.Close();
return str_json; //回傳字串
}
#endregion
#region GetRepArgLastModify
/// <summary>
/// 取回旅遊區域最後的修改資料
/// </summary>
///取得此父層最後的修改人及修改時間,這部分可以從改為成從Qry頁直接送過來,這裡會這樣寫是因為當時考量新增時
///父層是可以更變,所以只要改變父層,就從WebService重新抓取資料,但目前不會有新增功能,父層代碼也不會被改變,所以這部分可以考慮從Qry頁直接取得,減少Sever負擔。
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetRepArgLastModify(string strParentID)
{
SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());//從Web.config取得伺服器資訊
string strSql = " SELECT MemberName As ModifyName,CONVERT(VARCHAR(10), ModifyDate, 111) + ' ' + CONVERT(VARCHAR(8), ModifyDate, 108) As ModifyDate"; //SQL語法
strSql += " FROM (";
strSql += " SELECT distinct ArgumentClassID";
strSql += " ,(SELECT TOP 1 ModifyUser";
strSql += " FROM OTB_CMS_RepArguments AS T2";
strSql += " WHERE T2.ArgumentClassID = T1.ArgumentClassID";
strSql += " group by ModifyUser,ModifyDate";
strSql += " ORDER BY ModifyDate DESC";
strSql += " ) AS ModifyUser";
strSql += " ,(SELECT TOP 1 ModifyDate";
strSql += " FROM OTB_CMS_RepArguments AS T2";
strSql += " WHERE T2.ArgumentClassID = T1.ArgumentClassID";
strSql += " group by ModifyUser,ModifyDate";
strSql += " ORDER BY ModifyDate DESC";
strSql += " ) AS ModifyDate";
strSql += " FROM ";
strSql += " OTB_CMS_RepArguments";
strSql += " As T1";
strSql += " ) As Class";
strSql += " Left Join (SELECT ArgumentID,ArgumentValue FROM OTB_CMS_RepArguments) As Value On Class.ArgumentClassID = Value.ArgumentID";
strSql += " Left Join (SELECT MemberID,MemberName FROM OTB_SYS_Members) As Name On Class.ModifyUser=Name.MemberID";
strSql += " WHERE ArgumentClassID=@ParentID";
SqlCommand cmd = new SqlCommand(strSql, cn); //設定SqlCommand所需資訊
cmd.Parameters.AddWithValue("@ParentID", strParentID.Trim()); //丟入參數
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable tbl = new DataTable();
tbl.Load(dr);
string str_json = JsonConvert.SerializeObject(tbl, Formatting.Indented); //把DataTable轉成Json字串
cn.Close();
return str_json; //回傳字串
}
#endregion
#region GetAllRepArg
/// <summary>
/// 取回所有旅遊區域,包含顯示階層
/// </summary>
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetAllRepArg()
{
SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());//從Web.config取得伺服器資訊
string strSql = "SELECT ParentID As ArgumentClassID,ArgumentID,'第'+Cast([Level] As Varchar)+'層 '+ArgumentValue As ArgumentValue FROM OVW_Cms_AreaSort";
SqlCommand cmd = new SqlCommand(strSql, cn); //設定SqlCommand所需資訊
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable tbl = new DataTable();
tbl.Load(dr);
string str_json = JsonConvert.SerializeObject(tbl, Formatting.Indented); //把DataTable轉成Json字串
cn.Close();
return str_json; //回傳字串
}
#endregion
#region GetCmsAreaSort
/// <summary>
/// 取回所有旅遊區域,包含顯示階層
/// </summary>
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetCmsAreaSort()
{
SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());//從Web.config取得伺服器資訊
string strSql = "SELECT ArgumentID,ArgumentValue,ParentID,[Level],AccountNameSort,ParentIDSort FROM OVW_Cms_AreaSort ORDER BY [level],OrderByValue";
SqlCommand cmd = new SqlCommand(strSql, cn); //設定SqlCommand所需資訊
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable tbl = new DataTable();
tbl.Load(dr);
string str_json = JsonConvert.SerializeObject(tbl, Formatting.Indented); //把DataTable轉成Json字串
cn.Close();
return str_json; //回傳字串
}
#endregion
#region GroupFreeList
/// <summary>
/// 取回所有自由行區域,包含顯示階層
/// </summary>
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GroupFreeList()
{
SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());//從Web.config取得伺服器資訊
string strSql = " SELECT * FROM [dbo].[OFN_Sys_GroupFreeList]('台北出發','TPE')";
strSql += " Union All";
strSql += " SELECT * FROM [dbo].[OFN_Sys_GroupFreeList]('台中出發','TXG')";
strSql += " Union All";
strSql += " SELECT * FROM [dbo].[OFN_Sys_GroupFreeList]('高雄出發','KHH')";
strSql += " Order By [Level]";
SqlCommand cmd = new SqlCommand(strSql, cn); //設定SqlCommand所需資訊
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable tbl = new DataTable();
tbl.Load(dr);
string str_json = JsonConvert.SerializeObject(tbl, Formatting.Indented); //把DataTable轉成Json字串
cn.Close();
return str_json; //回傳字串
}
#endregion
#region GetAnnouncement
/// <summary>
/// 取回公告資料
/// </summary>
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetAnnouncement(string strMemberID)
{
SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());//從Web.config取得伺服器資訊
string strSql = " DECLARE @strSQL NVARCHAR(1000)";
strSql += " DECLARE @Conditions NVARCHAR(1000)";
strSql += " SET @Conditions = STUFF((SELECT ' Or Roles Like '+'''%'+RuleID+ '%'''";
strSql += " FROM OTB_SYS_MembersToRule";
strSql += " WHERE MemberID=@MemberID FOR XML PATH('')),1,3,'') ";
strSql += " BEGIN";
strSql += " BEGIN";
strSql += " SET @strSQL=N'SELECT * From OTB_MNG_Announcement Where (GetDate() between ShowBD And ShowED) And ( Roles Like'+'''%All%'''";
strSql += " IF @Conditions <>''";
strSql += " BEGIN";
strSql += " SET @strSQL =@strSQL + ' Or ' + @Conditions";
strSql += " END";
strSql += " SET @strSQL =@strSQL + ' )' ";
strSql += " exec sp_executesql @strSQL";
strSql += " END";
strSql += " END";
SqlCommand cmd = new SqlCommand(strSql, cn); //設定SqlCommand所需資訊
cmd.Parameters.AddWithValue("@MemberID", strMemberID.Trim()); //丟入參數
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable tbl = new DataTable();
tbl.Load(dr);
string str_json = JsonConvert.SerializeObject(tbl, Formatting.Indented); //把DataTable轉成Json字串
cn.Close();
return str_json; //回傳字串
}
#endregion
#region GetArgJson
/// <summary>
/// 取回旅遊區域資料
/// </summary>
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetArgJson(string strParentID)
{
SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString()); //從Web.config取得伺服器資訊
string strSql = " SELECT ArgumentClassID,ArgumentID,ArgumentValue,OrderByValue,DelStatus,Effective "; //SQL語法
strSql += " ,dbo.[OFN_Cms_GetUsedCountByArgumentID](ArgumentClassID,ArgumentID) As Used ";
strSql += " FROM OTB_CMS_Arguments";
strSql += " WHERE ArgumentClassID=@ParentID";
strSql += " ORDER BY OrderByValue";
SqlCommand cmd = new SqlCommand(strSql, cn); //設定SqlCommand所需資訊
cmd.Parameters.AddWithValue("@ParentID", strParentID.Trim()); //丟入參數
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable tbl = new DataTable();
tbl.Load(dr);
string str_json = JsonConvert.SerializeObject(tbl, Formatting.Indented); //把DataTable轉成Json字串
cn.Close();
return str_json; //回傳字串
}
#endregion
#region GetArgLastModify
/// <summary>
/// 取回最後的修改資料
/// </summary>
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetArgLastModify(string strParentID)
{
SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());//從Web.config取得伺服器資訊
string strSql = " SELECT MemberName As ModifyName,CONVERT(VARCHAR(10), ModifyDate, 111) + ' ' + CONVERT(VARCHAR(8), ModifyDate, 108) As ModifyDate"; //SQL語法
strSql += " FROM (";
strSql += " SELECT distinct ArgumentClassID";
strSql += " ,(SELECT TOP 1 ModifyUser";
strSql += " FROM OTB_CMS_Arguments AS T2";
strSql += " WHERE T2.ArgumentClassID = T1.ArgumentClassID";
strSql += " group by ModifyUser,ModifyDate";
strSql += " ORDER BY ModifyDate DESC";
strSql += " ) AS ModifyUser";
strSql += " ,(SELECT TOP 1 ModifyDate";
strSql += " FROM OTB_CMS_Arguments AS T2";
strSql += " WHERE T2.ArgumentClassID = T1.ArgumentClassID";
strSql += " group by ModifyUser,ModifyDate";
strSql += " ORDER BY ModifyDate DESC";
strSql += " ) AS ModifyDate";
strSql += " FROM ";
strSql += " OTB_CMS_Arguments";
strSql += " As T1";
strSql += " ) As Class";
strSql += " Left Join (SELECT ArgumentID,ArgumentValue FROM OTB_CMS_Arguments) As Value On Class.ArgumentClassID = Value.ArgumentID";
strSql += " Left Join (SELECT MemberID,MemberName FROM OTB_SYS_Members) As Name On Class.ModifyUser=Name.MemberID";
strSql += " WHERE ArgumentClassID=@ParentID";
SqlCommand cmd = new SqlCommand(strSql, cn); //設定SqlCommand所需資訊
cmd.Parameters.AddWithValue("@ParentID", strParentID.Trim()); //丟入參數
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable tbl = new DataTable();
tbl.Load(dr);
string str_json = JsonConvert.SerializeObject(tbl, Formatting.Indented); //把DataTable轉成Json字串
cn.Close();
return str_json; //回傳字串
}
#endregion
#region GetSubClassification
/// <summary>
/// 取回該大分類之小分類
/// </summary>
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetSubClassification(string strClassification)
{
SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());//從Web.config取得伺服器資訊
string strSql = " SELECT Sub.Classification,ClassificationName,SubClassification,SubClassificationName";
strSql += " FROM ";
strSql += " (";
strSql += " SELECT Cls_Cd As Classification,DATA_VALUE As SubClassification,CHIN_WD As SubClassificationName,SORT_SQ ";
strSql += " FROM Trdata.Dbo.TrWord Where Cls_Cd=@Classification";
strSql += " ) As Sub";
strSql += " Inner Join ";
strSql += " (";
strSql += " SELECT DATA_VALUE As Classification,CHIN_WD As ClassificationName";
strSql += " FROM Trdata.Dbo.TrWord Where Cls_Cd='tvl_area' And Data_Value=@Classification";
strSql += " ) As Main";
strSql += " On Sub.Classification=Main.Classification";
strSql += " ORDER BY SORT_SQ";
SqlCommand cmd = new SqlCommand(strSql, cn); //設定SqlCommand所需資訊
cmd.Parameters.AddWithValue("@Classification", strClassification.Trim()); //丟入參數
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable tbl = new DataTable();
tbl.Load(dr);
string str_json = JsonConvert.SerializeObject(tbl, Formatting.Indented); //把DataTable轉成Json字串
cn.Close();
return str_json; //回傳字串
}
#endregion
#region GetSubClassByTvlShop
/// <summary>
/// 取回該館之小分類
/// </summary>
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetSubClassByTvlShop(string strTvlShop)
{
SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());//從Web.config取得伺服器資訊
string strSql = " Declare @Classifications Nvarchar(500)";
strSql += " Set @Classifications =(SELECT Classifications FROM OTB_ADV_TvlShop WHERE ShopCode=@TvlShop);";
strSql += " DECLARE @xmlSplit XML ";
strSql += " SET @xmlSplit = '<i>' + REPLACE( @Classifications, '|', '</i><i>') + '</i>'";
strSql += " SELECT Classification,ClassificationName,SubClassification,SubClassificationName,ShowField,Effective,Region,OrderByValue";
strSql += " FROM ";
strSql += " (";
strSql += " SELECT ";
strSql += " IsNull(Main.Classification,Base.Classification) As Classification";
strSql += " ,IsNull(Main.ClassificationName,Base.ClassificationName) As ClassificationName";
strSql += " ,IsNull(Main.SubClassification,Base.SubClassification) As SubClassification";
strSql += " ,IsNull(Main.SubClassificationName,Base.SubClassificationName) As SubClassificationName";
strSql += " ,IsNull(ShowField,'') As ShowField";
strSql += " ,IsNull(Region,'') As Region";
strSql += " ,IsNull(Effective,'N') As Effective";
strSql += " ,ROW_NUMBER() OVER (ORDER BY IsNull(OrderByValue,5000)) AS OrderByValue";
strSql += " FROM (";
strSql += " SELECT Classification,Main.Chin_Wd As ClassificationName,SubClassification,Sub.Chin_Wd As SubClassificationName,ShowField,Effective,Region,OrderByValue";
strSql += " FROM OTB_ADV_TvlShopClass As Class";
strSql += " Inner Join Trdata.dbo.TrWord As Sub On Sub.Cls_Cd=Classification And Sub.Data_Value =SubClassification";
strSql += " Inner Join Trdata.dbo.TrWord As Main On Main.Cls_Cd='TVL_Area' And Main.Data_Value =Classification";
strSql += " WHERE ShopCode=@TvlShop";
strSql += " ) As Main";
strSql += " Full Join";
strSql += " (";
strSql += " SELECT Classification ,Main.Chin_WD As ClassificationName,SubClassification,SubClassificationName";
strSql += " FROM (";
strSql += " SELECT Cls_CD As Classification ,Data_Value As SubClassification,Chin_WD As SubClassificationName";
strSql += " FROM Trdata.dbo.TrWord WHERE Cls_Cd In (SELECT xmlSplit.i.value('.', 'VARCHAR(10)') FROM @xmlSplit.nodes('//i') xmlSplit(i))";
strSql += " ) As Class";
strSql += " Inner Join Trdata.dbo.TrWord As Main On Main.Cls_Cd='TVL_Area' And Main.Data_Value =Classification";
strSql += " ) As Base On Main.Classification=Base.Classification And Main.SubClassification=Base.SubClassification ";
strSql += " ) As Main";
strSql += " ORDER BY OrderByValue";
SqlCommand cmd = new SqlCommand(strSql, cn); //設定SqlCommand所需資訊
cmd.Parameters.AddWithValue("@TvlShop", strTvlShop.Trim()); //丟入參數
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable tbl = new DataTable();
tbl.Load(dr);
string str_json = JsonConvert.SerializeObject(tbl, Formatting.Indented); //把DataTable轉成Json字串
cn.Close();
return str_json; //回傳字串
}
#endregion
#region GetRegionByTvlShop
/// <summary>
/// 取回該館之區塊
/// </summary>
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetRegionByTvlShop(string strTvlShop)
{
SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());//從Web.config取得伺服器資訊
string strSql = " SELECT Region,RegionColumn";
strSql += " FROM OTB_ADV_TvlShopRegion";
strSql += " WHERE ShopCode=@TvlShop";
strSql += " ORDER BY OrderByValue";
SqlCommand cmd = new SqlCommand(strSql, cn); //設定SqlCommand所需資訊
cmd.Parameters.AddWithValue("@TvlShop", strTvlShop.Trim()); //丟入參數
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable tbl = new DataTable();
tbl.Load(dr);
string str_json = JsonConvert.SerializeObject(tbl, Formatting.Indented); //把DataTable轉成Json字串
cn.Close();
return str_json; //回傳字串
}
#endregion
#region SaleReport
/// <summary>
/// 業績報表資料
/// </summary>
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string SaleReport(string strStartDate,string strEndDate,string strDepId,string strGroupStatus,string strOpStatus,string strPaxTp,string strUsrId)
{
SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());//從Web.config取得伺服器資訊
string strSql = " Declare @intNatnCount int";
strSql += " Set @intNatnCount=(SELECT Count(0) FROM OTB_CMS_Arguments WHERE ArgumentClassID = 'GareaLine' AND DelStatus = 'N' AND Effective = 'Y' AND ArgumentID <> 'N000')";
strSql += " ;WITH EmpTb";
strSql += " AS (SELECT dep.DEPT_CD,";
strSql += " dep.DEPT_NM,";
strSql += " Isnull(emp.EMP_CD, '7777') AS EMP_CD,";
strSql += " Isnull(emp.EMP_CNM, 'PAK') AS EMP_CNM,";
strSql += " emp.out_dt,";
strSql += " Row_number()";
strSql += " OVER(";
strSql += " ORDER BY OrderByValue,dep.DEPT_CD, emp.EMP_CD ) AS RowId";
strSql += " FROM (SELECT Isnull(ArgumentID, Dept_Cd) AS Dept_Cd,";
strSql += " Isnull(ArgumentValue, Dept_Nm) AS Dept_Nm,IsNull(OrderByValue,9999) AS OrderByValue, ";
strSql += " CASE WHEN ArgumentID IS NULL THEN 'No' ELSE 'Yes' END AS [Default]";
strSql += " FROM (SELECT Dept_Cd, Dept_Nm";
strSql += " FROM TrData.Dbo.TrDept) AS Dept";
strSql += " FULL JOIN (SELECT ArgumentID,ArgumentValue,OrderByValue";
strSql += " FROM OTB_CMS_Arguments";
strSql += " WHERE ArgumentClassID = 'AchiRP01' AND DelStatus = 'N' AND Effective = 'Y') AS Args";
strSql += " ON Dept.Dept_Cd = Args.ArgumentID) AS dep";
strSql += " LEFT JOIN TREMP AS emp";
strSql += " ON dep.DEPT_CD = emp.DEPT_CD";
strSql += " WHERE ( emp.out_dt = ''";
strSql += " OR emp.out_dt >= @StartDate )";
strSql += " AND ( Replace(emp.EMP_CNM, '-', '') LIKE @UsrId OR @UsrId IS NULL OR @UsrId = '' )";
strSql += " AND ( ( Charindex(emp.DEPT_CD, @DepId) > 0 )";
strSql += " OR @DepId IS NULL OR @DepId = '' )";
//strSql += " OR ( Isnull(emp.EMP_CD, '7777') IN ( '7777', '8888' ) )),"; //顯示會有問題 Delete By Gary 2014/12/31
strSql += " OR ( emp.EMP_CD IN ( '7777', '8888' ) )),";
strSql += " ArgGrup";
strSql += " AS (SELECT ArgumentID,ArgumentValue ";
strSql += " FROM OTB_CMS_Arguments";
strSql += " WHERE ArgumentClassID = 'AchiRP01' AND DelStatus = 'N' AND Effective = 'Y'),";
strSql += " ArgLine";
strSql += " AS (SELECT ArgumentID,ArgumentValue,";
strSql += " OrderByValue,";
strSql += " 'Y' As Natn, ";
strSql += " Row_number() OVER(ORDER BY OrderByValue) AS RowId";
strSql += " FROM OTB_CMS_Arguments";
strSql += " WHERE ArgumentClassID = 'GareaLine'";
strSql += " AND DelStatus = 'N'";
strSql += " AND Effective = 'Y'";
strSql += " AND ArgumentID <> 'N000')";
strSql += " SELECT ''AS GroupNo";
strSql += " ,'' AS GroupStatus";
strSql += " ,''AS MinClassId";
strSql += " ,'' AS OpId";
strSql += " ,'' AS OpStatus";
strSql += " ,Isnull(emp.DEPT_CD, '000') AS DepId";
strSql += " ,Isnull(emp.EMP_CD, '7777') AS UsrId";
strSql += " ,''AS PaxId";
strSql += " ,''AS PaxCn";
strSql += " ,''AS PaxTp";
strSql += " ,''AS DorpFg";
strSql += " ,''AS PaxStatus";
strSql += " ,Isnull(LEFT(Replace(emp.DEPT_NM, '-', ''), 5), N'台北總公司') AS DepCn";
strSql += " ,Isnull(emp.EMP_CNM, N'PAK') AS UsrCn";
strSql += " ,Isnull(lin.ArgumentID, 'N003') AS MaxClassId";
//strSql += " ,@intNatnCount As NatnCount";
strSql += " ,Case When emp.RowId Is Null Then 0 Else @intNatnCount End As NatnCount";
strSql += " ,Isnull(Natn,'N') As Natn";
strSql += " ,Isnull(lin.ArgumentValue, N'香港')AS MaxClassCn";
strSql += " ,( CASE WHEN emp.DEPT_NM LIKE '%企業%' THEN '企客' WHEN emp.DEPT_NM LIKE '%團體%' OR emp.DEPT_NM LIKE '%PAK%' THEN '同業' ELSE '直客' END ) AS CusClass";
strSql += " ,0 AS SouceCount";
strSql += " ,0 AS IsFlag";
strSql += " ,0 AS IsFlagTrue";
strSql += " ,Isnull(emp.RowId, 999) AS OrderByValue";
strSql += " ,Isnull(lin.OrderByValue, 999) AS MaxClassOrderByValue";
strSql += " FROM (SELECT RowId";
strSql += " FROM EmpTb";
strSql += " UNION";
strSql += " SELECT RowId";
strSql += " FROM ArgLine) AS AllRowId";
strSql += " LEFT JOIN EmpTb AS emp";
strSql += " ON AllRowId.RowId = emp.RowId";
strSql += " LEFT JOIN ArgGrup AS argropu";
strSql += " ON emp.DEPT_CD = argropu.ArgumentID";
strSql += " LEFT JOIN ArgLine AS lin";
strSql += " ON lin.RowId = AllRowId.RowId";
strSql += " UNION ALL ";
strSql += " SELECT";
strSql += " gp.GRUP_CD AS GroupNo";
strSql += " ,gp.GRUP_TP AS GroupStatus";
strSql += " ,gp.GAREA_CD AS MinClassId";
strSql += " ,gor.OP_SQ AS OpId";
strSql += " ,pax.GRUP_ST AS OpStatus";
strSql += " ,gor.DEPT_CD AS DepId";
strSql += " ,gor.EMP_CD AS UsrId ";
strSql += " ,pax.PAX_CD AS PaxId";
strSql += " ,pax.PAX_CNM AS PaxCn";
strSql += " ,pax.JOIN_TP AS PaxTp";
strSql += " ,pax.DORD_FG AS DorpFg";
strSql += " ,pax.STUS_CD AS PaxStatus";
strSql += " ,emp.DepCn";
strSql += " ,emp.UsrCn";
strSql += " ,(CASE ISNULL(sal.GAREA_LINE,'') WHEN '' THEN 'N000' ELSE sal.GAREA_LINE END ) AS MaxClassId";
strSql += " ,0";
strSql += " ,'N'";
strSql += " ,(CASE ISNULL(arg.ArgumentValue,'') WHEN '' THEN N'請選擇' ELSE arg.ArgumentValue END ) AS MaxClassCn";
strSql += " ,emp.CusClass";
strSql += " , 1 AS SouceCount";
strSql += " , emp.IsFlag";
strSql += " ,(CASE WHEN emp.IsFlag =0 THEN 0 ELSE (CASE WHEN ISNULL(pax.DORD_FG,0)=1 THEN 1 ELSE 0 END ) END ) AS IsFlagTrue ";
strSql += " ,emp.OrderByValue AS OrderByValue";
strSql += " ,IsNull(arg.OrderByValue,0) AS MaxClassOrderByValue";
strSql += " FROM [trdata].dbo.TRGRUP AS gp";
strSql += " INNER JOIN [trdata].dbo.TRREC AS gor ON gp.GRUP_CD = gor.GRUP_CD";
strSql += " INNER JOIN [trdata].dbo.TRGPAX AS pax ON gor.GRUP_CD = pax.GRUP_CD AND gor.OP_SQ = pax.OP_SQ";
strSql += " INNER JOIN ";
strSql += " ( ";
strSql += " SELECT DISTINCT emp1.DEPT_CD ";
strSql += " ,EMP_CD ";
strSql += " ,REPLACE(emp1.EMP_CNM,'-','') AS UsrCn ";
strSql += " ,LEFT(REPLACE(argropu.DepCn,'-','') ,5) AS DepCn";
strSql += " ,IsNull(argropu.OrderByValue,0) AS OrderByValue";
strSql += " ,(case when DepCn like '%企業%' then '企客' when DepCn like '%團體%' OR DepCn like '%PAK%' then '同業' else '直客' end ) AS CusClass ";
strSql += " ,(CASE WHEN ISNULL( emp1.EMP_CD,'')='8888' THEN 0 WHEN ISNULL( emp1.EMP_CD,'')='7777' THEN 0 ELSE 1 END ) AS IsFlag ";
strSql += " FROM [trdata].dbo.TREMP AS emp1 ";
strSql += " LEFT JOIN (SELECT DEPT_CD,IsNull(ArgumentValue,DEPT_NM) As DepCn,Isnull(orderbyvalue,Cast (dept_cd as int)+1000) as OrderByValue";
strSql += " FROM trdata.dbo.TRDept";
strSql += " Left Join OTB_CMS_Arguments As argropu On DEPT_CD=ArgumentID and argropu.ArgumentClassID='AchiRP01'";
strSql += " AND argropu.DelStatus='N' AND argropu.Effective='Y' ) AS argropu ON argropu.DEPT_CD=emp1.DEPT_CD";
strSql += " WHERE ";
strSql += " ( emp1.out_dt ='' OR emp1.out_dt >=@StartDate)";
strSql += " AND (REPLACE(emp1.EMP_CNM,'-','') like @UsrId OR @UsrId IS NULL OR @UsrId='')";
strSql += " AND ( Charindex(emp1.DEPT_CD, @DepId) > 0 OR @DepId IS NULL OR @DepId = '' )";
strSql += " OR ( emp1.EMP_CD IN ('7777','8888')) ";
strSql += " ) AS emp ON gor.EMP_CD = emp.EMP_CD ";
strSql += " INNER JOIN [trdata].dbo.TRGAREA AS gar ON gp.GAREA_CD = gar.GAREA_CD ";
strSql += " LEFT JOIN RITDB.dbo.Sales_Report_Line AS sal ON gp.GAREA_CD = sal.GAREA_CD";
strSql += " LEFT JOIN dbo.OTB_CMS_Arguments AS arg ON arg.ArgumentID = sal.GAREA_LINE ";
strSql += " WHERE ((CHARINDEX(GRUP_TP,@GroupStatus)>0) OR @GroupStatus IS NULL OR @GroupStatus='')";
strSql += " AND LEAV_DT between @StartDate AND @EndDate";
strSql += " AND ((CHARINDEX(pax.GRUP_ST,@OpStatus)>0) OR @OpStatus IS NULL OR @OpStatus='')";
strSql += " AND pax.STUS_CD=1";
strSql += " AND ((CHARINDEX(pax.JOIN_TP,@PaxTp)>0) OR @PaxTp IS NULL OR @PaxTp='') ";
strSql += " AND ( arg.ArgumentClassID='GareaLine' AND arg.DelStatus='N' And arg.Effective='Y' And ArgumentID<>'N000' )";
SqlCommand cmd = new SqlCommand(strSql, cn); //設定SqlCommand所需資訊
cmd.Parameters.AddWithValue("@StartDate", strStartDate.Trim()); //丟入參數
cmd.Parameters.AddWithValue("@EndDate", strEndDate.Trim()); //丟入參數
cmd.Parameters.AddWithValue("@DepId", strDepId.Trim()); //丟入參數
cmd.Parameters.AddWithValue("@GroupStatus", strGroupStatus.Trim()); //丟入參數
cmd.Parameters.AddWithValue("@OpStatus", strOpStatus.Trim()); //丟入參數
cmd.Parameters.AddWithValue("@PaxTp", strPaxTp.Trim()); //丟入參數
cmd.Parameters.AddWithValue("@UsrId", strUsrId.Trim()); //丟入參數
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable tbl = new DataTable();
tbl.Load(dr);
string str_json = JsonConvert.SerializeObject(tbl, Formatting.Indented); //把DataTable轉成Json字串
cn.Close();
return str_json; //回傳字串
}
#endregion
#region IsMGroup
/// <summary>
/// 判斷是否為母團
/// </summary>
[WebMethod]
public bool IsMGroup(string strGroupCode)
{
bool MGroup = false;
SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());//從Web.config取得伺服器資訊
string strSql = " SELECT MGrup_Cd FROM TrData.Dbo.TrMGrup WHERE MGrup_Cd=@GrupCD";
SqlCommand cmd = new SqlCommand(strSql, cn); //設定SqlCommand所需資訊
cmd.Parameters.AddWithValue("@GrupCD", strGroupCode.Trim()); //丟入參數
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable tbl = new DataTable();
tbl.Load(dr);
if (tbl.Rows.Count > 0) {
MGroup = true;
}
return MGroup; //回傳字串
}
#endregion
#region GetIDXECHeadInfo
/// <summary>
/// 取回IDXECHead資料
/// </summary>
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetIDXECHeadInfo(string strProject, string strArea)
{
SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());//從Web.config取得伺服器資訊
string strSql = " SELECT ID,Project,Area,Region,Title,TitleColor,TitlePercent,Statement,StatementColor,URL,URL2,URL3,URL4,URL5";
strSql += " ,Picture,PictureGUID,PictureALT,WebSite,Status,StartDate,EndDate,OrderByValue,Effective";
strSql += " ,IsNull(CTR.rowcounts,0) As CtrHits";
strSql += " ,CreateUser,CreateDate,ModifyUser,ModifyDate";
strSql += " FROM OTB_IDX_ECShelve As ECShelve";
strSql += " Left Join (";
strSql += " select key_sub,count(0) as rowcounts from OTB_CMS_CTR ";
strSql += " WHERE key_sub In (select ID FROM OTB_IDX_ECShelve WHERE Project=@Project And Area=@Area)";
strSql += " GROUP BY key_sub";
strSql += " ) As CTR On ECShelve.ID = CTR.key_sub";
strSql += " WHERE Project=@Project And Area=@Area";
strSql += " ORDER BY OrderByValue";
SqlCommand cmd = new SqlCommand(strSql, cn); //設定SqlCommand所需資訊
cmd.Parameters.AddWithValue("@Project", strProject.Trim()); //丟入參數
cmd.Parameters.AddWithValue("@Area", strArea.Trim()); //丟入參數
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable tbl = new DataTable();
tbl.Load(dr);
string str_json = JsonConvert.SerializeObject(tbl, Formatting.Indented); //把DataTable轉成Json字串
cn.Close();
return str_json; //回傳字串
}
#endregion
#region GetIDXECCommodityInfo
/// <summary>
/// 取回IDXECCommodity資料
/// </summary>
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetIDXECCommodityInfo(string strParentGUID)
{
SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());//從Web.config取得伺服器資訊
string strSql = " SELECT GUID,ParentGUID,Type,PromCd,MGroupCode,MGroupName,MGroupDetail";
strSql += " ,URL,URL2,URL3,URL4,URL5,Picture,PictureGUID,PictureALT,Title,ShowName,ShowDetail,ShopName";
strSql += " ,ShopURL,ShopURL2,ShopURL3,ShopURL4,ShopURL5,MinMoney,Unit,RandomFixed";
strSql += " ,ShowStartDate,ShowEndDate,StartDate,EndDate,WebSite,Commodity.Memo,OrderByValue,Status,Commodity.Effective";
strSql += " ,IsNull(CTR.rowcounts,0) As CTRHits ";
strSql += " ,Commodity.CreateUser,Commodity.CreateDate,Commodity.ModifyUser,Commodity.ModifyDate";
strSql += " ,members.MemberName ";
strSql += " FROM OTB_IDX_Commodity As Commodity";
strSql += " Left Join OTB_SYS_Members As Members On Commodity.ModifyUser=members.MemberID";
strSql += " Left Join (";
strSql += " select key_middle,count(0) as rowcounts from OTB_CMS_CTR ";
strSql += " WHERE key_middle In (select [GUID] FROM OTB_IDX_Commodity WHERE ParentGUID=@ParentGUID)";
strSql += " GROUP BY key_middle";
strSql += " ) As CTR On Commodity.[GUID] = CTR.key_middle";
strSql += " WHERE ParentGUID=@ParentGUID";
strSql += " ORDER BY OrderByValue";
SqlCommand cmd = new SqlCommand(strSql, cn); //設定SqlCommand所需資訊
cmd.Parameters.AddWithValue("@ParentGUID", strParentGUID.Trim()); //丟入參數
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable tbl = new DataTable();
tbl.Load(dr);
string str_json = JsonConvert.SerializeObject(tbl, Formatting.Indented); //把DataTable轉成Json字串
cn.Close();
return str_json; //回傳字串
}
#endregion
#region ViewCommodityInfo
/// <summary>
/// 取回IDXECCommodity資料
/// </summary>
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string ViewCommodityInfo(string strWebSite, string[] GroupList, string[] TypeList,string Date)
{
SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());//從Web.config取得伺服器資訊
string strSql = " With FreePrice (Grup_CD,MinAgt_AM,MinCurr_AM)";
strSql += " As (";
strSql += " SELECT GRUP_CD,MIN(AGT_AM) As MinAGT_AM,MIN(CURR_AM) As MinCURR_AM ";
strSql += " FROM trdata.dbo.TRPGSUBD ";
strSql += " where Grup_Cd In (SELECT Grup_cd FROM OTB_IDX_trgrup where PACK_FG=1 And ORDER_DL>=@Date )";
strSql += " And BED_TP = 1 And(CURR_AM>0 Or @WebSite='B2B') And(AGT_AM>0 Or @WebSite<>'B2B' ) ";
strSql += " GROUP BY GRUP_CD";
strSql += " ),GrupPrice (Grup_CD,MinAgt_AM,MinCurr_AM) ";
strSql += " As (";
strSql += " SELECT GRUP_CD,MIN(AGT_AM) As MinAGT_AM,MIN(CURR_AM) As MinCURR_AM ";
strSql += " FROM trdata.dbo.trsubd ";
strSql += " WHERE Grup_cd in (SELECT Grup_cd FROM OTB_IDX_trgrup where ORDER_DL>=@Date)";
strSql += " And join_tp='1' and sub_cd='GO' and bed_tp='1' And(CURR_AM>0 Or @WebSite='B2B') And(AGT_AM>0 Or @WebSite<>'B2B' ) ";
strSql += " GROUP BY GRUP_CD";
strSql += " ),MainGrup as(";
int intLens = GroupList.Length;
if (intLens > 0)
{
for (int intTime = 0; intTime < intLens; intTime++)
{
if (intTime != 0)
{
strSql += "Union all";
}
strSql += " SELECT '" + GroupList[intTime] + "' As MGroupCode,'" + TypeList[intTime] + "' As [Type]";
}
}
else {
strSql += " SELECT '' As MGroupCode,'' As [Type]";
}
strSql += " )";
strSql += " SELECT ";
strSql += " MainGrup.MGroupCode,MainGrup.[Type],Case MainGrup.[Type] When 'MGroup' Then GroupMinPrice.MinAGT_AM ";
strSql += " When 'Group' Then GrupPrice.MinAGT_AM ";
strSql += " When 'MFree' Then FreeMinPrice.MinAGT_AM ";
strSql += " Else FreePrice.MinAGT_AM END As MinAGT_AM";
strSql += " ,Case MainGrup.[Type] When 'MGroup' Then GroupMinPrice.MinCURR_AM ";
strSql += " When 'Group' Then GrupPrice.MinCURR_AM ";
strSql += " When 'MFree' Then FreeMinPrice.MinCURR_AM ";
strSql += " Else FreePrice.MinAGT_AM END As MinCURR_AM";
strSql += " FROM MainGrup ";
strSql += " Left Join FreePrice On MainGrup.MGroupCode=FreePrice.GRUP_CD And MainGrup.[Type]='Free'";
strSql += " Left Join GrupPrice On MainGrup.MGroupCode=GrupPrice.GRUP_CD And MainGrup.[Type]='Group'";
strSql += " Left Join (";
strSql += " SELECT Grup.MGrup_Cd,MIN(MinAGT_AM) As MinAGT_AM,MIN(MinCURR_AM) As MinCURR_AM ";
strSql += " FROM FreePrice As Main";
strSql += " Left Join (SELECT MGrup_Cd,Grup_Cd FROM Trdata.dbo.OTB_IDX_TRGRUP) As Grup On Grup.GRUP_CD=Main.GRUP_CD";
strSql += " GROUP BY Grup.MGrup_Cd";
strSql += " ) As FreeMinPrice On MainGrup.MGroupCode=FreeMinPrice.MGrup_Cd And MainGrup.[Type]='MFree'";
strSql += " Left Join (";
strSql += " SELECT Grup.MGrup_Cd,MIN(MinAGT_AM) As MinAGT_AM,MIN(MinCURR_AM) As MinCURR_AM ";
strSql += " FROM GrupPrice As Main";
strSql += " Left Join (SELECT MGrup_Cd,Grup_Cd FROM Trdata.dbo.OTB_IDX_TRGRUP) As Grup On Grup.GRUP_CD=Main.GRUP_CD";
strSql += " GROUP BY Grup.MGrup_Cd";
strSql += " ) As GroupMinPrice On MainGrup.MGroupCode=GroupMinPrice.MGrup_Cd And MainGrup.[Type]='MGroup'";
SqlCommand cmd = new SqlCommand(strSql, cn); //設定SqlCommand所需資訊
cmd.Parameters.AddWithValue("@WebSite", strWebSite.Trim()); //丟入參數
cmd.Parameters.AddWithValue("@Date", Date.Trim()); //丟入參數
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable tbl = new DataTable();
tbl.Load(dr);
string str_json = JsonConvert.SerializeObject(tbl, Formatting.Indented); //把DataTable轉成Json字串
cn.Close();
return str_json; //回傳字串
}
#endregion
#region GetIDXECDeptCity
/// <summary>
/// 取回IDXDeptCity資料
/// </summary>
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetIDXECDeptCity()
{
SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());//從Web.config取得伺服器資訊
string strSql = " SELECT GUID,DeptCode,DeptName,DeptComdition,OrderByValue,Effective";
strSql += " ,(SELECT COUNT(0) As DeptCount FROM OTB_IDX_SGroupClass WHERE OTB_IDX_DeptCity.DeptCode=DeptCity GROUP BY DeptCity) As DeptCount";
strSql += " ,CreateUser,CreateDate,ModifyUser,ModifyDate FROM OTB_IDX_DeptCity ORDER BY OrderByValue";
SqlCommand cmd = new SqlCommand(strSql, cn); //設定SqlCommand所需資訊
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable tbl = new DataTable();
tbl.Load(dr);
string str_json = JsonConvert.SerializeObject(tbl, Formatting.Indented); //把DataTable轉成Json字串
cn.Close();
return str_json; //回傳字串
}
#endregion
#region GetIDXECSGroupRegion
/// <summary>
/// 取回IDXECSGroupRegion資料
/// </summary>
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetIDXECSGroupRegion(string strAreaCd)
{
SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());//從Web.config取得伺服器資訊
string strSql = " SELECT AreaCD,[GUID],Region,RegionCode,RegionClass,[Type],[Columns],WebSite,OrderByValue,CreateUser,CreateDate,ModifyUser,ModifyDate";
strSql += " FROM OTB_IDX_SGroupRegion WHERE AreaCD=@AreaCd ORDER BY OrderByValue";
SqlCommand cmd = new SqlCommand(strSql, cn); //設定SqlCommand所需資訊
cmd.Parameters.AddWithValue("@AreaCd", strAreaCd.Trim()); //丟入參數
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable tbl = new DataTable();
tbl.Load(dr);
string str_json = JsonConvert.SerializeObject(tbl, Formatting.Indented); //把DataTable轉成Json字串
cn.Close();
return str_json; //回傳字串
}
#endregion
#region GetIDXECSGroupClass
/// <summary>
/// 取回IDXECSGroupClass資料
/// </summary>
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetIDXECSGroupClass(string strAreaCd)
{
SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());//從Web.config取得伺服器資訊
string strSql = " SELECT ROW_NUMBER() Over(Order By DeptCity.OrderByValue,Region.OrderByValue,Class.OrderByValue)As RowNo";
strSql += " ,Class.[GUID],ParentGUID,SubClassification,dbo.OFN_IDX_GetSubClassNameList(SubClassification) As SubClassificationName,ShowName,DeptCity,Hide,Class.[Type]";
strSql += " ,Class.WebSite,Class.OrderByValue,Class.Effective,Class.CreateUser,Class.CreateDate,Class.ModifyUser,Class.ModifyDate";
strSql += " FROM OTB_IDX_SGroupClass As Class";
strSql += " Inner Join OTB_IDX_SGroupRegion As Region On Region.[GUID]=Class.[ParentGUID] And Region.AreaCD=@AreaCd";
strSql += " Inner Join OTB_IDX_DeptCity As DeptCity On DeptCity.DeptCode=Class.DeptCity";
strSql += " WHERE DeptCity <>'ALL' ";
strSql += " ORDER BY DeptCity.OrderByValue,Region.OrderByValue,Class.OrderByValue";
SqlCommand cmd = new SqlCommand(strSql, cn); //設定SqlCommand所需資訊
cmd.Parameters.AddWithValue("@AreaCd", strAreaCd.Trim()); //丟入參數
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable tbl = new DataTable();
tbl.Load(dr);
string str_json = JsonConvert.SerializeObject(tbl, Formatting.Indented); //把DataTable轉成Json字串
cn.Close();
return str_json; //回傳字串
}
#endregion
#region GetClassifications
/// <summary>
/// 取回GetClassifications資料
/// </summary>
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetClassifications()
{
SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());//從Web.config取得伺服器資訊
string strSql = " SELECT ClassCode As '大分類代碼',ClassName As '大分類',SubClassCode As '小分類代碼',SubClassName As '小分類' ";
strSql += " FROM ";
strSql += " (SELECT DATA_VALUE As ClassCode,CHIN_WD As ClassName FROM Trdata.dbo.TRWORD WHERE CLS_CD='TVL_AREA') As Main";
strSql += " Left Join ";
strSql += " (SELECT DATA_VALUE As SubClassCode,CHIN_WD As SubClassName,CLS_CD FROM Trdata.dbo.TRWORD) As Sub On Main.ClassCode=Sub.CLS_CD";
strSql += " ORDER BY ClassCode,SubClassCode";
SqlCommand cmd = new SqlCommand(strSql, cn); //設定SqlCommand所需資訊
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable tbl = new DataTable();
tbl.Load(dr);
string str_json = JsonConvert.SerializeObject(tbl, Formatting.Indented); //把DataTable轉成Json字串
cn.Close();
return str_json; //回傳字串
}
#endregion
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetMaxNumberByType(string strTitle, string strType, string Flag, string strModifyUser, int intLen)
{
string strReturn;
OT.BLL.CommonClass o_CommonClass_BLL = new OT.BLL.CommonClass();
strReturn = "{ \"MaxNumber\":\"" + strTitle + o_CommonClass_BLL.GetMaxNumberByType(strType, Flag, strModifyUser, intLen) + "\" }";
return strReturn;
}
#region ChangeEmp
/// <summary>
/// 更改旅客業務
/// </summary>
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string ChangeEmp(string strPaxCDList,string strEmpCD)
{
SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());//從Web.config取得伺服器資訊
string strSql = " UPDATE TRPAX ";
strSql += " SET EMP_CD=@EmpCD ";
strSql += " where PAX_CD in (" + strPaxCDList + ")";
strSql += " Select @@ROWCOUNT As ChangeCount";
SqlCommand cmd = new SqlCommand(strSql, cn); //設定SqlCommand所需資訊
cmd.Parameters.AddWithValue("@EmpCD", strEmpCD.Trim()); //丟入參數
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable tbl = new DataTable();
tbl.Load(dr);
string str_json = JsonConvert.SerializeObject(tbl, Formatting.Indented); //把DataTable轉成Json字串
cn.Close();
return str_json; //回傳字串
}
#endregion
#region ChangeOMan
/// <summary>
/// 更改旅客的相關業務
/// </summary>
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string ChangeOMan(string strPaxCDList, string strEmpCD)
{
SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());//從Web.config取得伺服器資訊
string strSql = " UPDATE TRPAX ";
strSql += " SET O_MAN=@EmpCD ";
strSql += " where PAX_CD in (" + strPaxCDList + ")";
strSql += " Select @@ROWCOUNT As ChangeCount";
SqlCommand cmd = new SqlCommand(strSql, cn); //設定SqlCommand所需資訊
cmd.Parameters.AddWithValue("@EmpCD", strEmpCD.Trim()); //丟入參數
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable tbl = new DataTable();
tbl.Load(dr);
string str_json = JsonConvert.SerializeObject(tbl, Formatting.Indented); //把DataTable轉成Json字串
cn.Close();
return str_json; //回傳字串
}
#endregion
#region GetEmpInfo
/// <summary>
/// 取回GetEmpInfo資料
/// </summary>
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetEmpInfo()
{
SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());//從Web.config取得伺服器資訊
string strSql = " SELECT ";
strSql += " MemberID,MemberName,RuleList,RuleNmList";
strSql += " FROM ";
strSql += " (";
strSql += " SELECT Emp_Cd As MemberID";
strSql += " ,Emp_Cnm As MemberName";
strSql += " ,Dept_Cd As RuleList";
strSql += " FROM Trdata.Dbo.TrEmp ";
strSql += " ) As Emp";
strSql += " Inner Join ";
strSql += " (";
strSql += " SELECT Dept_Cd,Dept_Nm As RuleNmList FROM TrData.Dbo.TrDept";
strSql += " ) As Dept On Dept_Cd=RuleList";
SqlCommand cmd = new SqlCommand(strSql, cn); //設定SqlCommand所需資訊
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable tbl = new DataTable();
tbl.Load(dr);
string str_json = JsonConvert.SerializeObject(tbl, Formatting.Indented); //把DataTable轉成Json字串
cn.Close();
return str_json; //回傳字串
}
#endregion
}
}