Browse Source

1.新增清線作業PCS037

PTD
Marvin 2 years ago
parent
commit
932e04179b
  1. 312
      AMESCoreStudio.Web/Controllers/PCSController.cs
  2. 75
      AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs
  3. 152
      AMESCoreStudio.Web/Views/PCS/PCS037.cshtml
  4. 53
      AMESCoreStudio.Web/Views/PCS/PCS037C.cshtml
  5. 119
      AMESCoreStudio.Web/Views/PCS/PCS037L.cshtml
  6. 96
      AMESCoreStudio.Web/Views/PCS/PCS037LC.cshtml
  7. 99
      AMESCoreStudio.Web/Views/PCS/PCS037LU.cshtml
  8. 59
      AMESCoreStudio.Web/Views/PCS/PCS037U.cshtml
  9. 10
      AMESCoreStudio.WebApi/Models/AMESContext.cs

312
AMESCoreStudio.Web/Controllers/PCSController.cs

@ -8321,6 +8321,318 @@ namespace AMESCoreStudio.Web.Controllers
return (Msg, model); return (Msg, model);
} }
#endregion #endregion
#region PCS037 清線作業
/// <summary>
///
/// </summary>
/// <returns></returns>
public IActionResult PCS037()
{
return View();
}
public IActionResult PCS037C()
{
return View();
}
//修改页面
[HttpGet]
public async Task<IActionResult> PCS037UAsync(int id)
{
var result = await _pcsApi.GetWipClear(id);
if (result.Count == 0)
{
return View();
}
return View(result[0]);
}
//维护明细页面
[HttpGet]
public ActionResult PCS037L(string wipNO, int clearID)
{
ViewBag.ClearID = clearID;
return View();
}
//新增明细页面
[HttpGet]
public async Task<IActionResult> PCS037LCAsync(int id)
{
ViewBag.ClearID = id;
var wip_clear = await _pcsApi.GetWipClear(id);
int wip_id = wip_clear[0].WipID;
var wip_info = await _pcsApi.GetWipInfo(wip_id);
int flow_rule_id = wip_info[0].FlowRuleID;
await GetRuleStationByFlowRuleID(flow_rule_id);
return View();
}
//修改明細页面
[HttpGet]
public async Task<IActionResult> PCS037LUAsync(int id)
{
var result = await _pcsApi.GetWipClearDetail(id);
var wip_clear = await _pcsApi.GetWipClear(result[0].ClearID);
int wip_id = wip_clear[0].WipID;
var wip_info = await _pcsApi.GetWipInfo(wip_id);
int flow_rule_id = wip_info[0].FlowRuleID;
await GetRuleStationByFlowRuleID(flow_rule_id);
if (result.Count == 0)
{
return View();
}
return View(result[0]);
}
public async Task<IActionResult> PCS037LDAsync(int id)
{
var result = await _pcsApi.DeleteWipClearDetail(id);
return Json(new Result() { success = true, msg = "" });
}
[ResponseCache(Duration = 0)]
[HttpGet]
public async Task<IActionResult> GetWipClearDetailsAsync(int id, int page = 0, int limit = 10)
{
var result = await _pcsApi.GetWipClearDetailByClear(id, page, limit);
if (result.DataTotal > 0)
{
return Json(new Table() { code = 0, msg = "", data = result.Data, count = result.DataTotal });
}
return Json(new Table() { count = 0, data = null });
}
[ResponseCache(Duration = 0)]
[HttpGet]
public async Task<IActionResult> GetWipClearsAsync(int page = 0, int limit = 10)
{
var result = await _pcsApi.GetWipClears(page, limit);
if (result.DataTotal > 0)
{
return Json(new Table() { code = 0, msg = "", data = result.Data, count = result.DataTotal });
}
return Json(new Table() { count = 0, data = null });
}
[HttpPost]
public async Task<IActionResult> PCS037CSaveAsync(WipClear model, string wipNO)
{
var userID = "";
HttpContext.Request.Cookies.TryGetValue("UserID", out userID);
int user_id = 0;
if (userID != null)
{
if (int.Parse(userID.ToString()) >= 0)
{
user_id = int.Parse(userID.ToString());
}
}
if (wipNO != "")
{
int wipID = 0;
var wip_info = await _pcsApi.GetWipInfoByWipNO(wipNO);
if (wip_info.Count == 0)
{
ModelState.AddModelError("error", "查無工單號碼");
return View("PCS037C", model);
}
else
{
wipID = wip_info[0].WipID;
model.WipID = wipID;
model.ClearNo = "";
model.DetailQty = 0;
model.CreateUserID = user_id;
model.CreateDate = DateTime.Now;
model.UpdateUserID = user_id;
model.UpdateDate = DateTime.Now;
IResultModel result;
result = await _pcsApi.PostWipClear(JsonConvert.SerializeObject(model));
if (result.Success)
{
var _msg = "添加成功!";
return RedirectToAction("Refresh", "Home", new { msg = _msg });
}
else
{
ModelState.AddModelError("error", result.Msg);
return View("PCS037C", model);
}
}
}
else
{
ModelState.AddModelError("error", "工單號碼不可空白");
return View("PCS037C", model);
}
}
[HttpPost]
public async Task<IActionResult> PCS037LUSaveAsync(WipClearDetail model)
{
var userID = "";
HttpContext.Request.Cookies.TryGetValue("UserID", out userID);
int user_id = 0;
if (userID != null)
{
if (int.Parse(userID.ToString()) >= 0)
{
user_id = int.Parse(userID.ToString());
}
}
if (ModelState.IsValid)
{
IResultModel result;
result = await _pcsApi.PutWipClearDetail(model.ClearDetailID, JsonConvert.SerializeObject(model));
if (result.Success)
{
var _msg = "修改成功!";
return RedirectToAction("Refresh", "Home", new { msg = _msg });
}
else
{
ModelState.AddModelError("error", result.Msg);
return View("PCS037LU", model);
}
}
else
{
ModelState.AddModelError("error", "缺少必填資料");
return View("PCS037LU", model);
}
}
[HttpPost]
public async Task<IActionResult> PCS037USaveAsync(WipClear model)
{
var userID = "";
HttpContext.Request.Cookies.TryGetValue("UserID", out userID);
int user_id = 0;
if (userID != null)
{
if (int.Parse(userID.ToString()) >= 0)
{
user_id = int.Parse(userID.ToString());
}
}
if (model.HeadmanCheckFlag == "on")
{
model.HeadmanCheckFlag = "Y";
model.HeadmanUserID = user_id;
model.UpdateUserID = user_id;
}
if (model.DirectorCheckFlag == "on")
{
model.DirectorCheckFlag = "Y";
model.DirectorUserID = user_id;
model.UpdateUserID = user_id;
}
if (ModelState.IsValid)
{
IResultModel result;
result = await _pcsApi.PutWipClear(model.ClearID, JsonConvert.SerializeObject(model));
if (result.Success)
{
var _msg = "確認成功!";
return RedirectToAction("Refresh", "Home", new { msg = _msg });
}
else
{
ModelState.AddModelError("error", result.Msg);
return View("PCS037U", model);
}
}
else
{
ModelState.AddModelError("error", "缺少必填資料");
return View("PCS037U", model);
}
}
[HttpPost]
public async Task<IActionResult> PCS037LCSaveAsync(WipClearDetail model)
{
var userID = "";
HttpContext.Request.Cookies.TryGetValue("UserID", out userID);
int user_id = 0;
if (userID != null)
{
if (int.Parse(userID.ToString()) >= 0)
{
user_id = int.Parse(userID.ToString());
}
}
model.CreateUserID = user_id;
model.CreateDate = DateTime.Now;
model.UpdateUserID = user_id;
model.UpdateDate = DateTime.Now;
if (ModelState.IsValid)
{
IResultModel result;
result = await _pcsApi.PostWipClearDetail(JsonConvert.SerializeObject(model));
if (result.Success)
{
var _msg = "新增明細成功!";
return RedirectToAction("Refresh", "Home", new { msg = _msg });
}
else
{
ModelState.AddModelError("error", result.Msg);
return View("PCS037LC", model);
}
}
else
{
ModelState.AddModelError("error", "缺少必填資料");
return View("PCS037LC", model);
}
}
#endregion
} }
public static class ObjectExtension public static class ObjectExtension

75
AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs

@ -1447,5 +1447,80 @@ namespace AMESCoreStudio.Web
/// <returns></returns> /// <returns></returns>
[WebApiClient.Attributes.HttpPost("api/UnbindExtraBarcode")] [WebApiClient.Attributes.HttpPost("api/UnbindExtraBarcode")]
ITask<ResultModel<UnbindExtraBarcode>> PostUnbindExtraBarcode([FromBody, RawJsonContent] string model); ITask<ResultModel<UnbindExtraBarcode>> PostUnbindExtraBarcode([FromBody, RawJsonContent] string model);
#region 清線作業
/// <summary>
/// 查詢全部清線資料
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpGet("api/WipClears")]
ITask<ResultModel<dynamic>> GetWipClears(int page, int limit);
/// <summary>
/// 新增清線資料
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpPost("api/WipClears")]
ITask<ResultModel<WipClear>> PostWipClear([FromBody, RawJsonContent] string model);
/// <summary>
/// 根據ID獲取指定清線資料
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpGet("api/WipClears/{id}")]
ITask<List<WipClear>> GetWipClear(int id);
/// <summary>
/// 刪除清線資料
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpDelete("api/WipClears/{id}")]
ITask<ResultModel<WipClear>> DeleteWipClear(int id);
/// <summary>
/// 更新清線資料
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpPut("api/WipClears/{id}")]
ITask<ResultModel<WipClear>> PutWipClear(int id, [FromBody, RawJsonContent] string model);
/// <summary>
/// 根据ID查詢清線明细資料
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpGet("api/WipClearDetails/Clear/{id}")]
ITask<ResultModel<dynamic>> GetWipClearDetailByClear(int id, int page, int limit);
/// <summary>
/// 新增清線明細資料
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpPost("api/WipClearDetails")]
ITask<ResultModel<WipClearDetail>> PostWipClearDetail([FromBody, RawJsonContent] string model);
/// <summary>
/// 刪除清線明細資料
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpDelete("api/WipClearDetails/{id}")]
ITask<ResultModel<WipClearDetail>> DeleteWipClearDetail(int id);
/// <summary>
/// 根据ID查詢清線明细資料
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpGet("api/WipClearDetails/{id}")]
ITask<List<WipClearDetail>> GetWipClearDetail(int id);
/// <summary>
/// 更新清線資料
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpPut("api/WipClearDetails/{id}")]
ITask<ResultModel<WipClearDetail>> PutWipClearDetail(int id, [FromBody, RawJsonContent] string model);
#endregion
} }
} }

152
AMESCoreStudio.Web/Views/PCS/PCS037.cshtml

@ -0,0 +1,152 @@
@{
ViewData["Title"] = "清線作業";
Layout = "~/Views/Shared/_AMESLayout.cshtml";
}
<style>
.layui-table-cell {
height: auto;
overflow: visible;
text-overflow: inherit;
white-space: normal;
}
</style>
<div class="layui-card">
<div class="layui-card-header">
<div class="layui-form">
<div class="layui-form-item ">
<div class="layui-inline"><i class="fa fa-file-text-o fa-fw"></i> @ViewBag.Title</div>
</div>
</div>
</div>
<div class="layui-card-body">
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
</div>
@section Scripts{
<script type="text/javascript">
//监听表单提交事件
hg.form.onsubmit('querysubmit', function (data) {
table && table.reload(data);
});
var tableCols = [[
{
field: 'clearID',
width: 80,
title: '編號',
sort: true
},
{
field: 'clearNo',
width: 160,
title: '清線代碼'
},
{
field: 'wipNO',
width: 160,
title: '工單號碼'
},
{
field: 'modelNO',
title: '機種'
},
{
field: 'planQTY',
title: '工單數量',
width: 100
},
{
field: 'werksNO',
title: '廠別',
width: 80
},
{
field: 'detailQty',
title: '清線明細筆數',
width: 120
},
{
field: 'headmanCheckFlag',
title: '組長確認',
width: 80
},
{
field: 'directorCheckFlag',
title: '主管確認',
width: 80
},
{
field: 'directorCheckDate',
title: '主管確認日期',
width: 160,
templet: '<div>{{ layui.util.toDateString(d.directorCheckDate, "yyyy/MM/dd HH:mm") }}</div>'
},
{
field: 'center',
width: 200,
title: '操作',
templet: function (d) {
return '<a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-form" lay-event="detail">明細</a> <a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay-event="check">確認</a> <a class="layui-btn layui-btn-danger layui-btn-xs layui-icon layui-icon-delete" lay-event="del">删除</a>'
}
}]
];
function detail(obj) {
var clearID = obj.data.clearID;
var wipNO = obj.data.wipNO;
var param = "?wipNO=" + wipNO + "&clearID=" + clearID;
if (obj.data.clearID) {
hg.open('維護清線明細', '/PCS/PCS037L' + param, 1280, 640);
}
}
//通过行tool编辑,lay-event="edit"
function check(obj) {
if (obj.data.clearID) {
hg.open('確認清線資料', '/PCS/PCS037U/' + obj.data.clearID, 640,320);
}
}
//通过行tool删除,lay-event="del"
function del(obj) {
var str="刪除";
if (obj.data.clearID) {
hg.confirm("系統:" + obj.data.clearNo + ",確定要"+str+"嗎?", function () {
$.ajax({
url: '/PCS/PCS037D',
data: { id: obj.data.clearID },
type: 'POST',
success: function (data) {
if (data.success) {
//obj.del(); //只删本地数据
hg.msghide(str + "成功!");
table && table.reload(data);
}
else {
hg.msg(data.msg);
}
},
error: function () {
hg.msg("网络请求失败!");
}
});
});
}
}
var toolbar = [{
text: '新增',
layuiicon: '&#xe608;',
class: 'layui-btn-normal',
handler: function () {
hg.open('新增清線資料', '/PCS/PCS037C', 640, 320);
}
}
];
//基本数据表格
var table = hg.table.datatable('test', '清線資料', '/PCS/GetWipClears', {}, tableCols, toolbar, true, 'full-100', ['filter', 'print', 'exports']);
</script>
}

53
AMESCoreStudio.Web/Views/PCS/PCS037C.cshtml

@ -0,0 +1,53 @@
@model AMESCoreStudio.WebApi.Models.AMES.WipClear
@{ ViewData["Title"] = "PCS037C";
Layout = "~/Views/Shared/_FormLayout.cshtml"; }
<style>
.control-label {
justify-content: flex-end !important;
}
</style>
<div class="row">
<div class="col-sm-12">
<form enctype="multipart/form-data" method="post" asp-action="PCS037CSave" id="filter_all">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group form-inline my-sm-1">
<label asp-for="WipID" class="control-label col-sm-3"></label>
<input id="wipNO" name="wipNO" class="form-control col-sm-9" placeholder="請輸入工單號碼" />
</div>
<span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span>
<div class="form-group">
<input type="button" value="保存" class="btn btn-primary offset-sm-3" onclick="postformsubmit()" />
</div>
</form>
</div>
</div>
@section Scripts {
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial");
await Html.RenderPartialAsync("_FileinputScriptsPartial"); }
<script type="text/javascript">
$(document).ready(function () {
var error = '@Html.ValidationMessage("error")';
if ($(error).text() != '') {
parent.hg.msg(error);
}
});
function postformsubmit() {
//获取form表单对象,提交选择项目
var form = document.getElementById("filter_all");
form.submit();//form表单提交
}
</script>
}

119
AMESCoreStudio.Web/Views/PCS/PCS037L.cshtml

@ -0,0 +1,119 @@
@{
ViewData["Title"] = "清線明細維護";
Layout = "~/Views/Shared/_AMESLayout.cshtml";
}
<div class="layui-card">
<div class="layui-card-header">
<div class="layui-form">
<div class="layui-form-item ">
<div class="layui-inline"><i class="fa fa-file-text-o fa-fw"></i> @ViewBag.Title</div>
<input id="clearID" name="clearID" value="@ViewBag.ClearID" type="hidden" />
</div>
</div>
</div>
<div class="layui-card-body">
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
</div>
@section Scripts{
<script type="text/javascript">
//监听表单提交事件
hg.form.onsubmit('querysubmit', function (data) {
table && table.reload(data);
});
var tableCols = [[
{
field: 'clearDetailID',
width: 80,
title: '編號',
sort: true
},
{
field: 'stationName',
width: 160,
title: '站別名稱'
},
{
field: 'surplusFlag',
width: 120,
title: '是否缺料'
},
{
field: 'partNo',
title: '料號',
width: 160
},
{
field: 'qty',
title: '數量',
width: 80
},
{
field: 'reasonDesc',
title: '原因分析'
},
{
field: 'checkUser',
title: '確認人員',
width: 120
},
{
field: 'center',
width: 150,
title: '操作',
templet: function (d) {
return '<a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay-event="edit">修改</a> <a class="layui-btn layui-btn-danger layui-btn-xs layui-icon layui-icon-delete" lay-event="del">删除</a>'
}
}]
];
//通过行tool编辑,lay-event="edit"
function edit(obj) {
if (obj.data.clearDetailID) {
hg.open('修改清線明細', '/PCS/PCS037LU/' + obj.data.clearDetailID, 640,480);
}
}
//通过行tool删除,lay-event="del"
function del(obj) {
var str="刪除";
if (obj.data.clearDetailID) {
hg.confirm("清線明細:" + obj.data.clearDetailID + ",確定要"+str+"嗎?", function () {
$.ajax({
url: '/PCS/PCS037LD',
data: { id: obj.data.clearDetailID },
type: 'POST',
success: function (data) {
if (data.success) {
//obj.del(); //只删本地数据
hg.msghide(str + "成功!");
table && table.reload(data);
}
else {
hg.msg(data.msg);
}
},
error: function () {
hg.msg("网络请求失败!");
}
});
});
}
}
var toolbar = [{
text: '新增',
layuiicon: '&#xe608;',
class: 'layui-btn-normal',
handler: function () {
hg.open('新增清線明细', '/PCS/PCS037LC/' + clearID.value, 640, 480);
}
}
];
//基本数据表格
var table = hg.table.datatable('test', '清線資料', '/PCS/GetWipClearDetails/' + clearID.value, {}, tableCols, toolbar, true, 'full-100', ['filter', 'print', 'exports']);
</script>
}

96
AMESCoreStudio.Web/Views/PCS/PCS037LC.cshtml

@ -0,0 +1,96 @@
@model AMESCoreStudio.WebApi.Models.AMES.WipClearDetail
@{ ViewData["Title"] = "PCS037LC";
Layout = "~/Views/Shared/_FormLayout.cshtml"; }
<style>
.control-label {
justify-content: flex-end !important;
}
</style>
<div class="row">
<div class="col-sm-12">
<form enctype="multipart/form-data" method="post" asp-action="PCS037LCSave" id="filter_all">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<input asp-for="ClearID" type="hidden" value="@ViewBag.ClearID" />
<div class="form-group form-inline my-sm-1">
<label asp-for="StationID" class="control-label col-sm-3"></label>
<select asp-for="StationID" asp-items="@ViewBag.GetRuleStationByFlowRuleIDList" class="custom-select col-sm-9"></select>
<span asp-validation-for="StationID" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="form-group form-inline my-sm-1">
<label asp-for="SurplusFlag" class="control-label col-sm-3"></label>
<div class="col-sm-9">
<div class="radio icheck-primary form-check-inline">
<input type="radio" id="Yes" asp-for="SurplusFlag" value="Y" />
<label for="Yes">&nbsp;是&nbsp;</label>
</div>
<div class="radio icheck-primary form-check-inline">
<input type="radio" id="N" asp-for="SurplusFlag" value="N" checked />
<label for="No">&nbsp;否&nbsp;</label>
</div>
</div>
<span asp-validation-for="SurplusFlag" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="form-group form-inline my-sm-1">
<label asp-for="PartNo" class="control-label col-sm-3"></label>
<input asp-for="PartNo" class="form-control col-sm-9" placeholder="請輸入料號" />
<span asp-validation-for="PartNo" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="form-group form-inline my-sm-1">
<label asp-for="Qty" class="control-label col-sm-3"></label>
<input asp-for="Qty" class="form-control col-sm-9" placeholder="請輸入數量" />
<span asp-validation-for="Qty" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="form-group form-inline my-sm-1">
<label asp-for="ReasonDesc" class="control-label col-sm-3"></label>
<select asp-for="ReasonDesc" class="custom-select col-sm-9">
<option>倉庫多發(做備品)</option>
<option>倉庫多發(做退料)</option>
<option>BOM多建(做備品)</option>
<option>BOM多建(做退料)</option>
<option>其他</option>
</select>
<span asp-validation-for="ReasonDesc" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="form-group form-inline my-sm-1">
<label asp-for="CheckUser" class="control-label col-sm-3"></label>
<input asp-for="CheckUser" class="form-control col-sm-9" placeholder="請輸入確認人員" />
<span asp-validation-for="CheckUser" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span>
<div class="form-group">
<input type="button" value="保存" class="btn btn-primary offset-sm-3" onclick="postformsubmit()" />
</div>
</form>
</div>
</div>
@section Scripts {
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial");
await Html.RenderPartialAsync("_FileinputScriptsPartial"); }
<script type="text/javascript">
$(document).ready(function () {
var error = '@Html.ValidationMessage("error")';
if ($(error).text() != '') {
parent.hg.msg(error);
}
});
function postformsubmit() {
//获取form表单对象,提交选择项目
var form = document.getElementById("filter_all");
form.submit();//form表单提交
}
</script>
}

99
AMESCoreStudio.Web/Views/PCS/PCS037LU.cshtml

@ -0,0 +1,99 @@
@model AMESCoreStudio.WebApi.Models.AMES.WipClearDetail
@{ ViewData["Title"] = "PCS037LC";
Layout = "~/Views/Shared/_FormLayout.cshtml"; }
<style>
.control-label {
justify-content: flex-end !important;
}
</style>
<div class="row">
<div class="col-sm-12">
<form enctype="multipart/form-data" method="post" asp-action="PCS037LUSave" id="filter_all">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<input asp-for="ClearID" type="hidden" />
<input asp-for="ClearDetailID" type="hidden" />
<input asp-for="CreateUserID" type="hidden" />
<input asp-for="CreateDate" type="hidden" />
<div class="form-group form-inline my-sm-1">
<label asp-for="StationID" class="control-label col-sm-3"></label>
<select asp-for="StationID" asp-items="@ViewBag.GetRuleStationByFlowRuleIDList" class="custom-select col-sm-9"></select>
<span asp-validation-for="StationID" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="form-group form-inline my-sm-1">
<label asp-for="SurplusFlag" class="control-label col-sm-3"></label>
<div class="col-sm-9">
<div class="radio icheck-primary form-check-inline">
<input type="radio" id="Yes" asp-for="SurplusFlag" value="Y" />
<label for="Yes">&nbsp;是&nbsp;</label>
</div>
<div class="radio icheck-primary form-check-inline">
<input type="radio" id="N" asp-for="SurplusFlag" value="N" />
<label for="No">&nbsp;否&nbsp;</label>
</div>
</div>
<span asp-validation-for="SurplusFlag" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="form-group form-inline my-sm-1">
<label asp-for="PartNo" class="control-label col-sm-3"></label>
<input asp-for="PartNo" class="form-control col-sm-9" placeholder="請輸入料號" />
<span asp-validation-for="PartNo" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="form-group form-inline my-sm-1">
<label asp-for="Qty" class="control-label col-sm-3"></label>
<input asp-for="Qty" class="form-control col-sm-9" placeholder="請輸入數量" />
<span asp-validation-for="Qty" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="form-group form-inline my-sm-1">
<label asp-for="ReasonDesc" class="control-label col-sm-3"></label>
<select asp-for="ReasonDesc" class="custom-select col-sm-9">
<option>倉庫多發(做備品)</option>
<option>倉庫多發(做退料)</option>
<option>BOM多建(做備品)</option>
<option>BOM多建(做退料)</option>
<option>其他</option>
</select>
<span asp-validation-for="ReasonDesc" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="form-group form-inline my-sm-1">
<label asp-for="CheckUser" class="control-label col-sm-3"></label>
<input asp-for="CheckUser" class="form-control col-sm-9" placeholder="請輸入確認人員" />
<span asp-validation-for="CheckUser" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span>
<div class="form-group">
<input type="button" value="保存" class="btn btn-primary offset-sm-3" onclick="postformsubmit()" />
</div>
</form>
</div>
</div>
@section Scripts {
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial");
await Html.RenderPartialAsync("_FileinputScriptsPartial"); }
<script type="text/javascript">
$(document).ready(function () {
var error = '@Html.ValidationMessage("error")';
if ($(error).text() != '') {
parent.hg.msg(error);
}
});
function postformsubmit() {
//获取form表单对象,提交选择项目
var form = document.getElementById("filter_all");
form.submit();//form表单提交
}
</script>
}

59
AMESCoreStudio.Web/Views/PCS/PCS037U.cshtml

@ -0,0 +1,59 @@
@model AMESCoreStudio.WebApi.Models.AMES.WipClear
@{
ViewData["Title"] = "BAS001U";
Layout = "~/Views/Shared/_FormLayout.cshtml";
}
<style>
.control-label {
justify-content: flex-end !important;
}
</style>
<div class="row">
<div class="col-sm-12">
<form enctype="multipart/form-data" method="post" asp-action="PCS037USave">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<input asp-for="ClearID" type="hidden" />
<input asp-for="ClearNo" type="hidden" />
<input asp-for="DetailQty" type="hidden" />
<input asp-for="CreateUserID" type="hidden" />
<input asp-for="CreateDate" type="hidden" />
<input asp-for="HeadmanCheckDate" type="hidden" />
<input asp-for="DirectorCheckDate" type="hidden" />
<input asp-for="WipID" type="hidden" />
<div class="form-group form-inline my-sm-1">
<label asp-for="HeadmanCheckFlag" class="control-label col-sm-3"></label>
<input @(Model.HeadmanCheckFlag == "Y" ? "checked" : "") type="checkbox" name="HeadmanCheckFlag" title="組長確認" />
<span asp-validation-for="HeadmanCheckFlag" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="form-group form-inline my-sm-1">
<label asp-for="DirectorCheckFlag" class="control-label col-sm-3"></label>
<input @(Model.DirectorCheckFlag == "Y" ? "checked" : "") type="checkbox" name="DirectorCheckFlag" title="主管確認" />
<span asp-validation-for="HeadmanCheckFlag" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="form-group">
<input type="submit" value="保存" class="btn btn-primary offset-sm-3" />
</div>
</form>
</div>
</div>
@section Scripts {
@{
await Html.RenderPartialAsync("_ValidationScriptsPartial");
await Html.RenderPartialAsync("_FileinputScriptsPartial");
}
<script type="text/javascript">
$(document).ready(function () {
var error = '@Html.ValidationMessage("error")';
if ($(error).text() != '') {
parent.hg.msg(error);
}
});
</script>
}

10
AMESCoreStudio.WebApi/Models/AMESContext.cs

@ -924,6 +924,16 @@ namespace AMESCoreStudio.WebApi
/// 出貨序號規則-明細 /// 出貨序號規則-明細
/// </summary> /// </summary>
public DbSet<SerialRuleDetail> SerialRuleDetails { get; set; } public DbSet<SerialRuleDetail> SerialRuleDetails { get; set; }
/// <summary>
/// 清線資料
/// </summary>
public DbSet<WipClear> WipClears { get; set; }
/// <summary>
/// 清線明細資料
/// </summary>
public DbSet<WipClearDetail> WipClearDetails { get; set; }
} }
} }

Loading…
Cancel
Save