Commit 5a4a8213 authored by solho's avatar solho

新增關帳設定相關

parent a8c9e0c7
......@@ -110,6 +110,36 @@ namespace WebAPI.Controllers
result.Content = new StringContent(JsonConvert.SerializeObject(response), System.Text.Encoding.UTF8, "application/json");
return result;
}
public DataTable get_Esn_todos_SettleData( String gWadeID, bool is_enabled)
{
DataTable dt=null;
try
{
using (SqlConnection Conn = new SqlConnection(connString))
{
String sqlstr = @"select * from esn_todos_Settle_config a
left join evw_Employee b on a.user_id=b.user_id
where a.user_id=@user_id and a.is_enabled=@is_enabled";
SqlCommand cmd = new SqlCommand("", Conn)
{
CommandText = sqlstr
};
cmd.Parameters.AddWithValue("@user_id", gWadeID);
cmd.Parameters.AddWithValue("@is_enabled", is_enabled);
dt = SqlToDt(cmd);
return dt;
}
}
catch (Exception e)
{
response.Code = "0";
response.Msg = "Exception:" + e.StackTrace;
}
return dt;
}
[Route("UpdateEsntodosSettle")]
[CorsHandle]
[HttpPost]
......@@ -122,62 +152,93 @@ namespace WebAPI.Controllers
try
{
using (SqlConnection Conn = new SqlConnection(connString))
{
String sqlstr = @"select * from esn_todos_Settle_config a
where a. user_id=@user_id and is_enabled=1;";
SqlCommand cmd = new SqlCommand("",Conn)
{
CommandText = sqlstr
};
cmd.Parameters.AddWithValue("@user_id", obj_input["gWadeID"].ToString());
DataTable dtL1 = SqlToDt(cmd);
//cmd.Parameters.Clear();
StringBuilder strsql = new StringBuilder();
String wherecase ;
{
SqlCommand cmd = new SqlCommand("",Conn);
DataTable dtL1 = get_Esn_todos_SettleData(obj_input["gWadeID"].ToString(), true);
String strsql="" ,wherecase ;
DataRow drL1;
for(int i=0;i< dtL1.Rows.Count;i++)
if (dtL1 != null)
{
drL1 = dtL1.Rows[i];
wherecase = "";
wherecase += " and DSNum = @DSNum" + i;
for (int i = 0; i < dtL1.Rows.Count; i++)
{
drL1 = dtL1.Rows[i];
wherecase = "";
wherecase += " and DSNum = @DSNum" + i;
cmd.Parameters.AddWithValue("@DSNum" + i, drL1["DSNum"].ToString());
wherecase += " and DeptNum = @DeptNum" + i;
cmd.Parameters.AddWithValue("@DeptNum" + i, drL1["DeptNum"].ToString());
wherecase += " and ItemNum = @ItemNum" + i;
cmd.Parameters.AddWithValue("@ItemNum" + i, drL1["ItemNum"].ToString());
#region MERGE
//strsql.Append(String.Format(@"MERGE INTO esn_todos_Settle WITH(HOLDLOCK) as target
//USING(select DSNum, DeptNum, ItemNum, Settle_Date from esn_todos_Settle where Settle_Date
//between @Settle_Date and @Settle_Date " + wherecase + @" ) as source(DSNum, DeptNum, ItemNum, Settle_Date)
//on(target.DSNum = source.DSNum and target.DeptNum = source.DeptNum and target.ItemNum = source.ItemNum and target.Settle_Date = source.Settle_Date)
//WHEN MATCHED THEN UPDATE SET isClosed = 1, update_time = getdate(), update_user_id = @user_id, Create_user_id = @user_id, Create_time = getdate()
//WHEN NOT MATCHED THEN INSERT(DSNum,DeptNum,ItemNum,isClosed, update_time, update_user_id, Create_user_id, Create_time)
//VALUES(@DSNum{0},@DeptNum{0},@ItemNum{0},1,@user_id,getdate(),@user_id,getdate())", i));
#endregion
#region MERGE
strsql.Append(String.Format(@"MERGE INTO esn_todos_Settle WITH(HOLDLOCK) as target
USING(select @DSNum{0}, @DeptNum{0}, @ItemNum{0} ,@Settle_Date as Settle_Date ) as source(DSNum, DeptNum, ItemNum, Settle_Date)
on(target.DSNum = source.DSNum and target.DeptNum = source.DeptNum and target.ItemNum = source.ItemNum and target.Settle_Date = source.Settle_Date)
WHEN MATCHED THEN UPDATE SET isClosed = 1, update_time = getdate(), update_user_id = @user_id, Create_user_id = @user_id, Create_time = getdate()
WHEN NOT MATCHED THEN INSERT(Settle_Date,DSNum,DeptNum,ItemNum,isClosed, update_user_id, update_time, Create_user_id, Create_time)
VALUES(@Settle_Date,@DSNum{0},@DeptNum{0},@ItemNum{0},1,@user_id,getdate(),@user_id,getdate())
OUTPUT $action ", i));
#endregion
//strsql.Append(@"update esn_todos_Settle set isClosed=0,update_time=getdate(),update_user_id=@user_id
// where Settle_Date between @Settle_Date and @Settle_Date ");
strsql.Append(";");
}
cmd.Parameters.AddWithValue("@Settle_Date", Convert.ToDateTime(obj_input["Settle_Date"].ToString()));
cmd.CommandText = strsql.ToString();
#region MERGE
strsql += String.Format(@"MERGE INTO esn_todos_Settle WITH(HOLDLOCK) as target
USING(select @DSNum{0}, @DeptNum{0}, @ItemNum{0} ,@Settle_Date as Settle_Date ) as source(DSNum, DeptNum, ItemNum, Settle_Date)
on(target.DSNum = source.DSNum and target.DeptNum = source.DeptNum and target.ItemNum = source.ItemNum and target.Settle_Date = source.Settle_Date)
WHEN MATCHED THEN UPDATE SET isClosed = 1, update_time = getdate(), update_user_id = @user_id, Create_user_id = @user_id, Create_time = getdate()
WHEN NOT MATCHED THEN INSERT(Settle_Date,DSNum,DeptNum,ItemNum,isClosed, update_user_id, update_time, Create_user_id, Create_time)
VALUES(@Settle_Date,@DSNum{0},@DeptNum{0},@ItemNum{0},1,@user_id,getdate(),@user_id,getdate())
OUTPUT $action; ", i);
#endregion
//strsql.Append(@"update esn_todos_Settle set isClosed=0,update_time=getdate(),update_user_id=@user_id
// where Settle_Date between @Settle_Date and @Settle_Date ");
strsql += ";";
}
cmd.Parameters.AddWithValue("@Settle_Date", Convert.ToDateTime(obj_input["Settle_Date"].ToString()));
cmd.Parameters.AddWithValue("@user_id", obj_input["gWadeID"].ToString());
cmd.CommandText = strsql;
DataTable dt = SqlToDt(cmd);
response.Msg = "已關帳";
}
else
{
response.Msg = "請設定有效啟用關帳權限";
}
response.Code = "1";
}
}
catch (Exception e)
{
response.Code = "0";
response.Msg = "Exception:" + e.StackTrace;
}
}
else
{
response.Code = "0";
response.Msg = "no input or format error";
}
result.Content = new StringContent(JsonConvert.SerializeObject(response), System.Text.Encoding.UTF8, "application/json");
return result;
}
[Route("getCloseSettleConfigDS")]
[CorsHandle]
[HttpPost]
public HttpResponseMessage get_CloseSettle_ConfigDS(ParamModel param)
{
if (param != null && param.Input != null && !string.IsNullOrWhiteSpace((param.Input.ToString())))
{
string input = param.Input.ToString();
JObject obj_input = JObject.Parse(input.ToString());
try
{
using (SqlConnection Conn = new SqlConnection(connString))
{
SqlCommand cmd = new SqlCommand("", Conn);
String strsql = @"select top 1 a.*,b.cn_name from esn_todos_Settle_config a
left join evw_Employee b on a.user_id=b.user_id
where a.user_id=@user_id ";
cmd.Parameters.AddWithValue("@user_id", obj_input["gWadeID"].ToString());
cmd.CommandText = strsql;
DataTable dt = SqlToDt(cmd);
response.Code = "1";
response.Msg = "已關帳";
response.Msg = JsonConvert.SerializeObject(dt);
}
}
catch (Exception e)
......@@ -194,5 +255,55 @@ namespace WebAPI.Controllers
result.Content = new StringContent(JsonConvert.SerializeObject(response), System.Text.Encoding.UTF8, "application/json");
return result;
}
[Route("updateCloseSettleConfigDS")]
[CorsHandle]
[HttpPost]
public HttpResponseMessage update_CloseSettle_ConfigDS(ParamModel param)
{
if (param != null && param.Input != null && !string.IsNullOrWhiteSpace((param.Input.ToString())))
{
string input = param.Input.ToString();
JObject obj_input = JObject.Parse(input.ToString());
try
{
using (SqlConnection Conn = new SqlConnection(connString))
{
SqlCommand cmd = new SqlCommand("", Conn);
String strsql = @"MERGE INTO esn_todos_Settle_config WITH(HOLDLOCK) as target USING(select @user_id as user_id ,@DSNum as DSNum,@DeptNum as DeptNum,@ItemNum as ItemNum) as source(user_id,DSNum,DeptNum,ItemNum)
on(target.user_id = source.user_id )
WHEN MATCHED THEN UPDATE SET is_enabled = @is_enabled,DSNum=@DSNum,DeptNum=@DeptNum,ItemNum=@ItemNum, update_time = getdate(), update_user_id = @user_id, Create_user_id = @user_id, Create_time = getdate()
WHEN NOT MATCHED THEN INSERT(user_id,DSNum,DeptNum,ItemNum,is_enabled, update_user_id, update_time, Create_user_id, Create_time)
VALUES(@user_id,@DSNum,@DeptNum,@ItemNum,1,@user_id,getdate(),@user_id,getdate())
OUTPUT $action ;";
cmd.Parameters.AddWithValue("@ItemNum", obj_input["ItemNum"].ToString());
cmd.Parameters.AddWithValue("@is_enabled", obj_input["is_enabled"].ToString());
cmd.Parameters.AddWithValue("@DSNum", obj_input["DSNum"].ToString());
cmd.Parameters.AddWithValue("@DeptNum", obj_input["DeptNum"].ToString());
cmd.Parameters.AddWithValue("@user_id", obj_input["gWadeID"].ToString());
cmd.CommandText = strsql;
DataTable dt = SqlToDt(cmd);
response.Code = "1";
response.Msg = "已更新";
}
}
catch (Exception e)
{
response.Code = "0";
response.Msg = "Exception:" + e.StackTrace;
}
}
else
{
response.Code = "0";
response.Msg = "no input or format error";
}
result.Content = new StringContent(JsonConvert.SerializeObject(response), System.Text.Encoding.UTF8, "application/json");
return result;
}
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment