From 8241fa39a7bb63592c02182f954b527a922f038b Mon Sep 17 00:00:00 2001 From: "vick_wang419@hotmail.com.tw" Date: Wed, 17 Jan 2024 02:03:31 +0800 Subject: [PATCH] =?UTF-8?q?PTD005=20=E8=A8=AD=E5=AE=9A=20ERP=20=E5=AE=A2?= =?UTF-8?q?=E6=88=B6=E4=BB=A3=E8=99=9F=E5=92=8C=E5=AE=A2=E6=88=B6=E6=94=B6?= =?UTF-8?q?=E4=BB=B6=E4=BA=BA=E5=90=8D=E5=96=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/PTDController.cs | 78 +++++++ AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs | 35 ++++ AMESCoreStudio.Web/Views/PTD/PTD005.cshtml | 108 ++++++++++ AMESCoreStudio.Web/Views/PTD/PTD005C.cshtml | 66 ++++++ AMESCoreStudio.Web/Views/PTD/PTD005U.cshtml | 56 +++++ .../Controllers/AMES/WipInfosController.cs | 194 ++++++++++++++++-- .../Models/AMES/PTD101AMESModel.cs | 29 +++ 7 files changed, 545 insertions(+), 21 deletions(-) create mode 100644 AMESCoreStudio.Web/Views/PTD/PTD005.cshtml create mode 100644 AMESCoreStudio.Web/Views/PTD/PTD005C.cshtml create mode 100644 AMESCoreStudio.Web/Views/PTD/PTD005U.cshtml diff --git a/AMESCoreStudio.Web/Controllers/PTDController.cs b/AMESCoreStudio.Web/Controllers/PTDController.cs index c494b26f..7b321f13 100644 --- a/AMESCoreStudio.Web/Controllers/PTDController.cs +++ b/AMESCoreStudio.Web/Controllers/PTDController.cs @@ -465,6 +465,84 @@ namespace AMESCoreStudio.Web.Controllers { return View(); } + + public IActionResult PTD005C() + { + return View(); + } + + //修改页面 + [HttpGet] + public async Task PTD005UAsync(string id) + { + var result = await _pcsApi.GetCustomerItemMailGroup(id); + + if (result.Count == 0) + { + return View(); + } + return View(result[0]); + } + + public async Task PTD005DAsync(string id) + { + var result = await _pcsApi.DeleteCustomerItemMailGroup(id); + return Json(new Result() { success = true, msg = "" }); + } + + [HttpPost] + public async Task PTD005SaveAsync(WebApi.Models.AMES.CustomerItemMailGroupModel model) + { + if (ModelState.IsValid) + { + IResultModel result; + if (model.Mode == 0) + { + result = await _pcsApi.PostCustomerItemMailGroup(JsonConvert.SerializeObject(model)); + } + else + { + result = await _pcsApi.PutCustomerItemMailGroup(model.ItemNumber, JsonConvert.SerializeObject(model)); + } + + if (result.Success) + { + var _msg = model.Mode == 0 ? "添加成功!" : "修改成功!"; + return RedirectToAction("Refresh", "Home", new { msg = _msg }); + } + else + { + if (result.Errors.Count > 0) + { + ModelState.AddModelError(result.Errors[0].Id, result.Errors[0].Msg); + } + else + { + ModelState.AddModelError("error", result.Msg); + } + } + } + if (model.Mode == 0) + { + return View("PTD005C", model); + } + return View("PTD005U", model); + } + + [ResponseCache(Duration = 0)] + [HttpGet] + public async Task GetCustomerItemMailGroupAsync() + { + var result = await _pcsApi.GetCustomerItemMailGroup(); + + if (result.Count > 0) + { + return Json(new Table() { code = 0, msg = "", data = result, count = result.Count }); + } + + return Json(new Table() { count = 0, data = null }); + } + #endregion #region "PTD006 備貨作業" diff --git a/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs b/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs index 5a74411c..a61658cf 100644 --- a/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs +++ b/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs @@ -2006,6 +2006,41 @@ namespace AMESCoreStudio.Web #endregion + #region "PTD005 設定 ERP 客戶代號和客戶收件人名單" + + [WebApiClient.Attributes.HttpGet("api/WipInfos/GetCustomerItemMailGroup")] + ITask> GetCustomerItemMailGroup(); + + /// + /// 根據ID獲取指定客戶收件人名單 + /// + /// + [WebApiClient.Attributes.HttpGet("api/WipInfos/GetCustomerItemMailGroup/{id}")] + ITask> GetCustomerItemMailGroup(string id); + + /// + /// 新增客戶收件人名單 + /// + /// + [WebApiClient.Attributes.HttpPost("api/WipInfos/PostCustomerItemMailGroup")] + ITask> PostCustomerItemMailGroup([FromBody, RawJsonContent] string model); + + /// + /// 更新客戶收件人名單 + /// + /// + [WebApiClient.Attributes.HttpPut("api/WipInfos/PutCustomerItemMailGroup/{id}")] + ITask> PutCustomerItemMailGroup(string id, [FromBody, RawJsonContent] string model); + + /// + /// 刪除客戶收件人名單 + /// + /// + [WebApiClient.Attributes.HttpDelete("api/WipInfos/DeleteCustomerItemMailGroup/{id}")] + ITask> DeleteCustomerItemMailGroup(string id); + + #endregion + #region "PTD002 PTD002 一段式入出庫作業" [WebApiClient.Attributes.HttpPost("api/WipInfos/PostPTD002Commit")] ITask> PostPTD002Commit([FromBody, RawJsonContent] string model); diff --git a/AMESCoreStudio.Web/Views/PTD/PTD005.cshtml b/AMESCoreStudio.Web/Views/PTD/PTD005.cshtml new file mode 100644 index 00000000..2b2cd28b --- /dev/null +++ b/AMESCoreStudio.Web/Views/PTD/PTD005.cshtml @@ -0,0 +1,108 @@ +@{ + ViewData["Title"] = "客戶收件人名單設定"; + Layout = "~/Views/Shared/_AMESLayout.cshtml"; +} + +
+
+
+
+
@ViewBag.Title
+
+
+
+
+
+
+
+ +@section Scripts{ + +} \ No newline at end of file diff --git a/AMESCoreStudio.Web/Views/PTD/PTD005C.cshtml b/AMESCoreStudio.Web/Views/PTD/PTD005C.cshtml new file mode 100644 index 00000000..04f91c5d --- /dev/null +++ b/AMESCoreStudio.Web/Views/PTD/PTD005C.cshtml @@ -0,0 +1,66 @@ +@model AMESCoreStudio.WebApi.Models.AMES.CustomerItemMailGroupModel + +@{ ViewData["Title"] = "PTD005C"; + Layout = "~/Views/Shared/_FormLayout.cshtml"; } + + + + +
+
+
+
+ + + +
+ + + +
+
+ + + +
+
+ + + +
+ + @Html.ValidationMessage("error") +
+ +
+ +
+
+
+ +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); + await Html.RenderPartialAsync("_FileinputScriptsPartial"); } + + + + +} + diff --git a/AMESCoreStudio.Web/Views/PTD/PTD005U.cshtml b/AMESCoreStudio.Web/Views/PTD/PTD005U.cshtml new file mode 100644 index 00000000..c11f257f --- /dev/null +++ b/AMESCoreStudio.Web/Views/PTD/PTD005U.cshtml @@ -0,0 +1,56 @@ +@model AMESCoreStudio.WebApi.Models.AMES.CustomerItemMailGroupModel + +@{ + ViewData["Title"] = "PTD005U"; + Layout = "~/Views/Shared/_FormLayout.cshtml"; +} + + + +
+
+
+
+ + +
+ + +
+
+ + + +
+
+ + + +
+
+ +
+ +
+
+
+ +@section Scripts { + @{ + await Html.RenderPartialAsync("_ValidationScriptsPartial"); + await Html.RenderPartialAsync("_FileinputScriptsPartial"); + } + + +} diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WipInfosController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WipInfosController.cs index 9f030e14..35636661 100644 --- a/AMESCoreStudio.WebApi/Controllers/AMES/WipInfosController.cs +++ b/AMESCoreStudio.WebApi/Controllers/AMES/WipInfosController.cs @@ -3740,10 +3740,9 @@ and b.item_no = '{0}' and a.barcode_no = '{1}'", kp_no, barcode_no); #endregion #region "PTD005 設定 ERP 客戶代號和客戶收件人名單" - [Route("[action]")] [HttpGet] - public async Task>> GetCustomerItemMailGroup(string partNumber, string customer) + public async Task>> GetCustomerItemMailGroup() { try { @@ -3754,17 +3753,56 @@ and b.item_no = '{0}' and a.barcode_no = '{1}'", kp_no, barcode_no); { await connPTD.OpenAsync(); } - string strSQL = $@"select * from SFIS_PTD.dbo.CustomerItemMailGroup Where 1=1"; - if (partNumber != null && partNumber != "") + string strSQL = $@"select * from SFIS_PTD.dbo.CustomerItemMailGroup"; + DataTable dtCustomerItemMailGroup = new DataTable(); + using (var cmd = connPTD.CreateCommand()) { - strSQL += $@" And ItemNumber ={partNumber}"; + cmd.CommandText = strSQL; + + using (var reader = await cmd.ExecuteReaderAsync()) + { + if (reader.HasRows) + { + dtCustomerItemMailGroup = DataReaderToDataTable(reader); + } + } } - if (customer != null && customer != "") + List CustomerItemMailGroup = new List(); + foreach (DataRow row in dtCustomerItemMailGroup.Rows) { - strSQL += $@" And CustomerCode ={customer}"; + CustomerItemMailGroup.Add(new CustomerItemMailGroupModel + { + ItemNumber = Convert.ToString(row["ItemNumber"]), + CustomerCode = Convert.ToString(row["CustomerCode"]), + MailGroup = Convert.ToString(row["MailGroup"]), + StatusNo = Convert.ToString(row["StatusNo"]) + }); } - - DataTable dtRecordTypeInfo = new DataTable(); + return CustomerItemMailGroup; + } + catch (Exception e) + { + throw e; + } + } + [HttpGet("GetCustomerItemMailGroup/{id}")] + public async Task>> GetCustomerItemMailGroup(string id) + { + try + { + //安勤連線 + PTDContext _ptd_context = new PTDContext(); + DbConnection connPTD = _ptd_context.Database.GetDbConnection(); + if (connPTD.State != ConnectionState.Open) + { + await connPTD.OpenAsync(); + } + string strSQL = $@"select * from SFIS_PTD.dbo.CustomerItemMailGroup Where 1=1"; + if (id != null && id != "") + { + strSQL += $@" And ItemNumber ='{id}'"; + } + DataTable dtCustomerItemMailGroup = new DataTable(); using (var cmd = connPTD.CreateCommand()) { cmd.CommandText = strSQL; @@ -3773,31 +3811,145 @@ and b.item_no = '{0}' and a.barcode_no = '{1}'", kp_no, barcode_no); { if (reader.HasRows) { - dtRecordTypeInfo = DataReaderToDataTable(reader); + dtCustomerItemMailGroup = DataReaderToDataTable(reader); } } } - List RecordTypeInfo = new List(); - foreach (DataRow row in dtRecordTypeInfo.Rows) + List CustomerItemMailGroup = new List(); + foreach (DataRow row in dtCustomerItemMailGroup.Rows) { - RecordTypeInfo.Add(new RecordTypeInfo + CustomerItemMailGroup.Add(new CustomerItemMailGroupModel { - RBU = Convert.ToString(row["RBU"]), - ID = Convert.ToString(row["ID"]), - TypeName = Convert.ToString(row["TypeName"]), - TypeDesc = Convert.ToString(row["TypeDesc"]), - Source = Convert.ToString(row["Source"]), - PrefixCode = Convert.ToString(row["PrefixCode"]), - Length = row["Length"] == DBNull.Value ? (int?)null : Convert.ToInt32(row["Length"]) + ItemNumber = Convert.ToString(row["ItemNumber"]), + CustomerCode = Convert.ToString(row["CustomerCode"]), + MailGroup = Convert.ToString(row["MailGroup"]), + StatusNo = Convert.ToString(row["StatusNo"]) }); } - return RecordTypeInfo; + return CustomerItemMailGroup; } catch (Exception e) { throw e; } } + [Route("[action]")] + [HttpPost] + public async Task> PostCustomerItemMailGroup(CustomerItemMailGroupModel CustomerItemMailGroup) + { + ResultModel result = new ResultModel(); + try + { + string strSQL = $@"INSERT INTO SFIS_PTD.dbo.[CustomerItemMailGroup] ([ItemNumber],[CustomerCode],[MailGroup],[StatusNo]) + VALUES ('{CustomerItemMailGroup.ItemNumber}','{CustomerItemMailGroup.CustomerCode}', + '{CustomerItemMailGroup.MailGroup}', '{CustomerItemMailGroup.StatusNo}')"; + //安勤連線 + PTDContext _ptd_context = new PTDContext(); + DbConnection connPTD = _ptd_context.Database.GetDbConnection(); + if (connPTD.State != ConnectionState.Open) + { + await connPTD.OpenAsync(); + } + + using (var cmd = connPTD.CreateCommand()) + { + cmd.CommandText = strSQL; + cmd.ExecuteNonQuery(); + } + result.Success = true; + result.Msg = "OK"; + } + catch (Exception ex) + { + result.Success = false; + result.Msg = ex.InnerException.Message; + } + return result; + + } + + [HttpPut("PutCustomerItemMailGroup/{id}")] + public async Task> PutCustomerItemMailGroup(string id, [FromBody] CustomerItemMailGroupModel CustomerItemMailGroup) + { + ResultModel result = new ResultModel(); + if (id != CustomerItemMailGroup.ItemNumber) + { + result.Success = false; + result.Msg = "ID錯誤"; + return result; + } + + try + { + string strSQL = $@"UPDATE SFIS_PTD.dbo.CustomerItemMailGroup + SET CustomerCode = '{CustomerItemMailGroup.CustomerCode}', + MailGroup = '{CustomerItemMailGroup.MailGroup}' + WHERE ItemNumber = '{id}'"; + //安勤連線 + PTDContext _ptd_context = new PTDContext(); + DbConnection connPTD = _ptd_context.Database.GetDbConnection(); + if (connPTD.State != ConnectionState.Open) + { + await connPTD.OpenAsync(); + } + + using (var cmd = connPTD.CreateCommand()) + { + cmd.CommandText = strSQL; + cmd.ExecuteNonQuery(); + } + result.Success = true; + result.Msg = "OK"; + } + catch (Exception ex) + { + result.Success = false; + result.Msg = ex.InnerException.Message; + } + return result; + + } + + [HttpDelete("DeleteCustomerItemMailGroup/{id}")] + public async Task> DeleteCustomerItemMailGroup(string id) + { + ResultModel result = new ResultModel(); + + try + { + string strSQL = $@"UPDATE SFIS_PTD.dbo.CustomerItemMailGroup + SET StatusNo = + CASE + WHEN StatusNo = 'A' THEN 'S' + WHEN StatusNo = 'S' THEN 'A' + ELSE 'A' + END + WHERE ItemNumber = '{id}'"; + //安勤連線 + PTDContext _ptd_context = new PTDContext(); + DbConnection connPTD = _ptd_context.Database.GetDbConnection(); + if (connPTD.State != ConnectionState.Open) + { + await connPTD.OpenAsync(); + } + + using (var cmd = connPTD.CreateCommand()) + { + cmd.CommandText = strSQL; + cmd.ExecuteNonQuery(); + } + + result.Success = true; + result.Msg = "OK"; + } + catch (Exception ex) + { + result.Success = false; + result.Msg = ex.InnerException.Message; + } + return result; + } + #endregion #region "PTD006 備貨作業" diff --git a/AMESCoreStudio.WebApi/Models/AMES/PTD101AMESModel.cs b/AMESCoreStudio.WebApi/Models/AMES/PTD101AMESModel.cs index f512a082..41153c3e 100644 --- a/AMESCoreStudio.WebApi/Models/AMES/PTD101AMESModel.cs +++ b/AMESCoreStudio.WebApi/Models/AMES/PTD101AMESModel.cs @@ -2,6 +2,9 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Runtime.Serialization; namespace AMESCoreStudio.WebApi.Models.AMES { @@ -159,4 +162,30 @@ namespace AMESCoreStudio.WebApi.Models.AMES } #endregion + + #region "PTD005 設定 ERP 客戶代號和客戶收件人名單" + public class CustomerItemMailGroupModel + { + public int Mode { get; set; } = 0; + [Column("ItemNumber")] + [DataMember] + [Display(Name = "料號")] + [Required(ErrorMessage = "{0},不能空白")] + public string ItemNumber { get; set; } + + [Column("CustomerCode")] + [DataMember] + [Display(Name = "客戶代號")] + [Required(ErrorMessage = "{0},不能空白")] + public string CustomerCode { get; set; } + + [Column("MailGroup")] + [DataMember] + [Display(Name = "Mail群組")] + [Required(ErrorMessage = "{0},不能空白")] + public string MailGroup { get; set; } + public string StatusNo { get; set; } + } + + #endregion }