|
|
@ -1,23 +1,13 @@ |
|
|
|
using AMESCoreStudio.CommonTools.Result; |
|
|
|
using AMESCoreStudio.WebApi.Models.BAS; |
|
|
|
using Dapper; |
|
|
|
using Microsoft.AspNetCore.Mvc; |
|
|
|
using Microsoft.EntityFrameworkCore; |
|
|
|
using System.Threading.Tasks; |
|
|
|
using System; |
|
|
|
using System.Net.Mail; |
|
|
|
using Microsoft.Extensions.Configuration; |
|
|
|
using System.Net; |
|
|
|
using System.Linq; |
|
|
|
using System.Text.RegularExpressions; |
|
|
|
using System.IO; |
|
|
|
using Dapper; |
|
|
|
using AMESCoreStudio.WebApi.Extensions; |
|
|
|
using AMESCoreStudio.WebApi.Models.AMES; |
|
|
|
using System.Data; |
|
|
|
using System; |
|
|
|
using System.Collections.Generic; |
|
|
|
using System.Data; |
|
|
|
using System.Data.SqlClient; |
|
|
|
using Microsoft.Extensions.Options; |
|
|
|
using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database; |
|
|
|
using System.Linq; |
|
|
|
using System.Threading.Tasks; |
|
|
|
|
|
|
|
namespace AMESCoreStudio.WebApi.Controllers.PTD |
|
|
|
{ |
|
|
@ -121,9 +111,38 @@ namespace AMESCoreStudio.WebApi.Controllers.PTD |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 更新 PTD ZDNDetail RecordNumber ByisRecord 已扣帳狀態
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="dnNo">RecordNumber</param>
|
|
|
|
/// <param name="dnlineNo">LineNo</param>
|
|
|
|
/// <param name="isRecord">已扣障 0:未完成 1:已完成</param>
|
|
|
|
/// <returns></returns>
|
|
|
|
[HttpPut("PutZDNDetail")] |
|
|
|
public async Task<ActionResult<int>> PutZDNDetailByIsRecord(string dnNo, string dnlineNo, int isRecord) |
|
|
|
{ |
|
|
|
using (IDbConnection ptdConnection = new SqlConnection(_PTDContext)) |
|
|
|
{ |
|
|
|
if (ptdConnection.State != ConnectionState.Open) |
|
|
|
{ |
|
|
|
ptdConnection.Open(); |
|
|
|
} |
|
|
|
var query = @" UPDATE SFIS_PTD.dbo.ZDNDetail
|
|
|
|
SET IsRecord = @isRecord |
|
|
|
WHERE DNNO = @dnNo |
|
|
|
AND DNLineNO = @dnlineNo ";
|
|
|
|
DynamicParameters p = new DynamicParameters(); |
|
|
|
p.Add("dnNo", dnNo); |
|
|
|
p.Add("dnlineNo", dnlineNo); |
|
|
|
p.Add("isRecord", isRecord); |
|
|
|
var result = await ptdConnection.ExecuteAsync(query, p); |
|
|
|
return result; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region ZSNInfo 主表
|
|
|
|
#region ZSNInfo 主表 表頭
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 查詢 PTD ZSNInfo 主表 序號區間
|
|
|
@ -176,6 +195,66 @@ namespace AMESCoreStudio.WebApi.Controllers.PTD |
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region ZProductTrans 表身資料
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 查詢 ZProductTrans
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="serialNumber">序號</param>
|
|
|
|
/// <param name="recordNumber">RecordNumber</param>
|
|
|
|
/// <param name="lineNo">LineNo</param>
|
|
|
|
/// <param name="productID">料號</param>
|
|
|
|
/// <param name="recordTypeID">類型</param>
|
|
|
|
/// <returns></returns>
|
|
|
|
[HttpGet("GetZProductTrans")] |
|
|
|
public async Task<List<dynamic>> GetZProductTrans(string serialNumber, string recordNumber, string lineNo, string productID, string recordTypeID) |
|
|
|
{ |
|
|
|
using (IDbConnection ptdConnection = new SqlConnection(_PTDContext)) |
|
|
|
{ |
|
|
|
if (ptdConnection.State != ConnectionState.Open) |
|
|
|
{ |
|
|
|
ptdConnection.Open(); |
|
|
|
} |
|
|
|
var query = @$" SELECT * FROM SFIS_PTD.dbo.ZProductTrans WHERE 1=1 "; |
|
|
|
DynamicParameters p = new DynamicParameters(); |
|
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(serialNumber)) |
|
|
|
{ |
|
|
|
query += $" And SerialNumber =@serialNumber "; |
|
|
|
p.Add("serialNumber", serialNumber); |
|
|
|
} |
|
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(recordNumber)) |
|
|
|
{ |
|
|
|
query += $" And RecordNumber =@recordNumber "; |
|
|
|
p.Add("recordNumber", recordNumber); |
|
|
|
} |
|
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(lineNo)) |
|
|
|
{ |
|
|
|
query += $" And RCLineNO =@lineNo "; |
|
|
|
p.Add("lineNo", lineNo); |
|
|
|
} |
|
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(productID)) |
|
|
|
{ |
|
|
|
query += $" And ProductID =@productID "; |
|
|
|
p.Add("productID", productID); |
|
|
|
} |
|
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(recordTypeID)) |
|
|
|
{ |
|
|
|
query += $" And RecordTypeID =@recordTypeID "; |
|
|
|
p.Add("recordTypeID", recordTypeID); |
|
|
|
} |
|
|
|
|
|
|
|
var q = await ptdConnection.QueryAsync<dynamic>(query, p); |
|
|
|
return q.ToList(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region ZWHPickListDetail 備貨表
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
@ -256,6 +335,159 @@ namespace AMESCoreStudio.WebApi.Controllers.PTD |
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// PTD008 還原作業 => 還原
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="serialNumber">序號</param>
|
|
|
|
/// <param name="recordNumber">RecordNumber</param>
|
|
|
|
/// <param name="lineNo">LineNo</param>
|
|
|
|
/// <param name="productID">料號</param>
|
|
|
|
/// <returns></returns>
|
|
|
|
[HttpPut("PTD008")] |
|
|
|
public async Task<bool> Put_PTD008(string serialNumber, string recordNumber, string lineNo, string productID) |
|
|
|
{ |
|
|
|
using (IDbConnection ptdConnection = new SqlConnection(_PTDContext)) |
|
|
|
{ |
|
|
|
if (ptdConnection.State != ConnectionState.Open) |
|
|
|
{ |
|
|
|
ptdConnection.Open(); |
|
|
|
} |
|
|
|
|
|
|
|
using (var tran = ptdConnection.BeginTransaction()) |
|
|
|
{ |
|
|
|
try |
|
|
|
{ |
|
|
|
// 刪除 ZProductTrans
|
|
|
|
var query = @" DELETE SFIS_PTD.dbo.ZProductTrans
|
|
|
|
WHERE SerialNumber = @serialNumber |
|
|
|
AND RecordNumber = @recordNumber |
|
|
|
AND RCLineNO = @lineNo |
|
|
|
AND ProductID = @productID ";
|
|
|
|
DynamicParameters p = new DynamicParameters(); |
|
|
|
p.Add("serialNumber", serialNumber); |
|
|
|
p.Add("recordNumber", recordNumber); |
|
|
|
p.Add("lineNo", lineNo); |
|
|
|
p.Add("productID", productID); |
|
|
|
await ptdConnection.ExecuteAsync(query, p, tran); |
|
|
|
|
|
|
|
// 更新 ZSNInfo
|
|
|
|
query = @" UPDATE SFIS_PTD.dbo.ZSNInfo SET
|
|
|
|
RecordTypeID = |
|
|
|
(SELECT TOP (1) [RecordTypeID] |
|
|
|
FROM SFIS_PTD.dbo.ZProductTrans |
|
|
|
WHERE SerialNumber =@serialNumber |
|
|
|
ORDER BY CREATEDATE DESC) |
|
|
|
WHERE SerialNumber =@serialNumber ";
|
|
|
|
p = new DynamicParameters(); |
|
|
|
p.Add("serialNumber", serialNumber); |
|
|
|
await ptdConnection.ExecuteAsync(query, p, tran); |
|
|
|
|
|
|
|
// 刪除 ZWHPickListDetail
|
|
|
|
query = @" DELETE SFIS_PTD.dbo.ZWHPickListDetail
|
|
|
|
WHERE InputSN = @serialNumber |
|
|
|
AND RecordNumber = @recordNumber |
|
|
|
AND RCLineNO = @lineNo |
|
|
|
AND ProductID = @productID ";
|
|
|
|
p = new DynamicParameters(); |
|
|
|
p.Add("serialNumber", serialNumber); |
|
|
|
p.Add("recordNumber", recordNumber); |
|
|
|
p.Add("lineNo", lineNo); |
|
|
|
p.Add("productID", productID); |
|
|
|
await ptdConnection.ExecuteAsync(query, p, tran); |
|
|
|
|
|
|
|
// 更新 ZHistoryKeyDefine
|
|
|
|
query = @" UPDATE SFIS_PTD.dbo.ZHistoryKeyDefine SET Seed = Seed - 1
|
|
|
|
WHERE SerialNumber = @serialNumber ";
|
|
|
|
|
|
|
|
p = new DynamicParameters(); |
|
|
|
p.Add("serialNumber", serialNumber); |
|
|
|
await ptdConnection.ExecuteAsync(query, p, tran); |
|
|
|
|
|
|
|
tran.Commit(); |
|
|
|
return true; |
|
|
|
} |
|
|
|
catch (Exception ex) |
|
|
|
{ |
|
|
|
tran.Rollback(); |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// PTD008 還原作業 => 刪除
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="serialNumber">序號</param>
|
|
|
|
/// <param name="recordNumber">RecordNumber</param>
|
|
|
|
/// <param name="lineNo">LineNo</param>
|
|
|
|
/// <param name="productID">料號</param>
|
|
|
|
/// <returns></returns>
|
|
|
|
[HttpDelete("PTD008")] |
|
|
|
public async Task<bool> Del_PTD008(string serialNumber, string recordNumber, string lineNo, string productID) |
|
|
|
{ |
|
|
|
using (IDbConnection ptdConnection = new SqlConnection(_PTDContext)) |
|
|
|
{ |
|
|
|
if (ptdConnection.State != ConnectionState.Open) |
|
|
|
{ |
|
|
|
ptdConnection.Open(); |
|
|
|
} |
|
|
|
|
|
|
|
using (var tran = ptdConnection.BeginTransaction()) |
|
|
|
{ |
|
|
|
try |
|
|
|
{ |
|
|
|
// 刪除 ZProductTrans
|
|
|
|
var query = @" DELETE SFIS_PTD.dbo.ZProductTrans
|
|
|
|
WHERE SerialNumber = @serialNumber |
|
|
|
AND RecordNumber = @recordNumber |
|
|
|
AND RCLineNO = @lineNo |
|
|
|
AND ProductID = @productID ";
|
|
|
|
DynamicParameters p = new DynamicParameters(); |
|
|
|
p.Add("serialNumber", serialNumber); |
|
|
|
p.Add("recordNumber", recordNumber); |
|
|
|
p.Add("lineNo", lineNo); |
|
|
|
p.Add("productID", productID); |
|
|
|
await ptdConnection.ExecuteAsync(query, p , tran); |
|
|
|
|
|
|
|
// 刪除 ZSNInfo
|
|
|
|
query = @" DELETE SFIS_PTD.dbo.ZSNInfo
|
|
|
|
WHERE SerialNumber = @serialNumber ";
|
|
|
|
p = new DynamicParameters(); |
|
|
|
p.Add("serialNumber", serialNumber); |
|
|
|
await ptdConnection.ExecuteAsync(query, p, tran); |
|
|
|
|
|
|
|
// 刪除 ZWHPickListDetail
|
|
|
|
query = @" DELETE SFIS_PTD.dbo.ZWHPickListDetail
|
|
|
|
WHERE InputSN = @serialNumber |
|
|
|
AND RecordNumber = @recordNumber |
|
|
|
AND RCLineNO = @lineNo |
|
|
|
AND ProductID = @productID ";
|
|
|
|
p = new DynamicParameters(); |
|
|
|
p.Add("serialNumber", serialNumber); |
|
|
|
p.Add("recordNumber", recordNumber); |
|
|
|
p.Add("lineNo", lineNo); |
|
|
|
p.Add("productID", productID); |
|
|
|
await ptdConnection.ExecuteAsync(query, p, tran); |
|
|
|
|
|
|
|
// 刪除 ZHistoryKeyDefine
|
|
|
|
query = @" DELETE SFIS_PTD.dbo.ZHistoryKeyDefine
|
|
|
|
WHERE SerialNumber = @serialNumber ";
|
|
|
|
|
|
|
|
p = new DynamicParameters(); |
|
|
|
p.Add("serialNumber", serialNumber); |
|
|
|
await ptdConnection.ExecuteAsync(query, p, tran); |
|
|
|
|
|
|
|
tran.Commit(); |
|
|
|
return true; |
|
|
|
} |
|
|
|
catch(Exception ex) |
|
|
|
{ |
|
|
|
tran.Rollback(); |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|