@model AMESCoreStudio.WebApi.DTO.AMES.FqcDto @{ ViewData["Title"] = "FQC抽驗作業"; Layout = "~/Views/Shared/_AMESLayout.cshtml"; } <style> .textP { font-size: 14px; font-weight: bold; color: #FF5722; } .textF { font-size: 14px; font-weight: bold; color: #009688; } .aa input { font-size: 14px; color: #0600f0; } </style> <div class="layui-card"> <form id="FQC007Form" enctype="multipart/form-data" method="post" asp-action="FQC007" class="layui-form"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="layui-card-header"> <div class="layui-form"> <input asp-for="FqcID" type="hidden" value="@Model.FqcID" /> <div class="layui-form-item "> <div class="layui-inline"><i class="fa fa-file-text-o fa-fw"></i> @ViewBag.Title</div> </div> <div class="layui-form-item layui-layout-left"> <div class="layui-inline"> <label class="layui-form-label">入庫單號:</label> <div class="layui-input-inline"> <input asp-for="InhouseNo" type="text" class="layui-input" /> </div> <label class="layui-form-label">序號:</label> <input asp-for="SeqID" type="text" class="layui-input" autocomplete="off" style="width: 30px; padding-left: 4px;" /> </div> <div class="layui-inline layui-show-xs-block"> <a lay-submit lay-filter="attachment" onclick="upload()" class="layui-btn layui-btn-sm layui-btn-normal" style="padding: 0 5px;" title="附件"> <i class="layui-icon layui-icon-sm"></i> </a> <div style="display:inline ; padding-left:5rem;"> <a href="https://sms.avalue.com.tw/SMS/SUP/SFIS_SMS001.aspx?MODEL_NO=@Model.ModelNo" target="_blank"> <i class="layui-icon layui-icon-template"></i><cite>SMS異常紀錄</cite></a> <a href="http://qazone.avalue.com.tw/qazone/sfislinktocfqr.aspx?QA_PRDID=@Model.ItemNo&QF=2" target="_blank"> <i class="layui-icon layui-icon-template"></i><cite>QAZone異常紀錄</cite></a> </div> </div> </div> </div> </div> <div class="layui-card-body"> <div class="layui-row"> <input type="hidden" id="hInhouseNo" value="@Model.h_InhouseNo" /> <input type="hidden" id="hSeqID" value="@Model.h_SeqID" /> <input type="hidden" id="hFqcID" value="@Model.FqcID" /> <input type="hidden" asp-for="WipNo" value="@Model.WipNo" /> <input type="hidden" asp-for="InhouseQty" value="@Model.InhouseQty" /> <input type="hidden" asp-for="ItemNo" value="@Model.ItemNo" /> <input type="hidden" asp-for="ModelNo" value="@Model.ModelNo" /> <div class="layui-col-xs1"> <label class="layui-form-label-col" style="text-align:right;">入庫單號:</label> </div> <div class="layui-col-xs2"> <div class="layui-form-item"> <div class="layui-input-block" style="margin-left:auto;"> <label class="layui-form-label" style="text-align: left; width: 150px;">@Model.h_InhouseNo</label> </div> </div> </div> <div class="layui-col-xs1"> <label class="layui-form-label-col" style="text-align:right;">工單號碼:</label> </div> <div class="layui-col-xs2"> <div class="layui-form-item"> <div class="layui-input-block" style="margin-left:auto;"> <label class="layui-form-label" style="text-align: left; width: 150px;">@Model.WipNo</label> </div> </div> </div> <div class="layui-col-xs1"> <label class="layui-form-label-col" style="text-align:right;">料號:</label> </div> <div class="layui-col-xs2"> <div class="layui-form-item"> <div class="layui-input-block" style="margin-left:auto;"> <label class="layui-form-label" style="text-align: left; width: 150px;">@Model.ItemNo</label> </div> </div> </div> <div class="layui-col-xs1"> <label class="layui-form-label-col" style="text-align:right;">品規:</label> </div> <div class="layui-col-xs2"> <div class="layui-form-item"> <div class="layui-input-block" style="margin-left:auto;"> <label class="layui-form-label" style="text-align: left; width: 150px;">@Model.Description</label> </div> </div> </div> </div> <div class="layui-row"> <div class="layui-col-xs1"> <label class="layui-form-label-col" style="text-align:right;">Inspection Type:</label> </div> <div class="layui-col-xs2"> <div class="layui-input-inline"> <select asp-for="InspectionType" asp-items="@ViewBag.GetInspection_TypeSelect" class=""></select> </div> </div> <div class="layui-col-xs1"> <label class="layui-form-label-col" style="text-align:right;">客戶類別:</label> </div> <div class="layui-col-xs2"> <input @(Model.CustomerMedical == "Y" ? "checked" : "") id="CustomerMedical" type="checkbox" title="醫療" /> <input @(Model.CustomerVIP == "Y" ? "checked" : "") id="CustomerVIP" type="checkbox" title="VIP" /> </div> <div class="layui-col-xs2"> <div class="layui-input-inline aa"> <select asp-for="InspectionStatus" asp-items="@ViewBag.GetInspectionStatusSelect" class=""></select> </div> @*<label class="layui-form-label-col" style="text-align:right;">客戶名稱:</label>*@ </div> <div class="layui-col-xs1"> <div class="layui-form-item"> @*<div class="layui-input-block" style="margin-left:auto;"> <label class="layui-form-label" style="text-align: left; width: 150px;">@Model.CustomerNo</label> </div>*@ </div> </div> <div class="layui-col-xs1"> <label class="layui-form-label-col" style="text-align:right;">委外廠商:</label> </div> <div class="layui-col-xs2"> <div class="layui-form-item"> <div class="layui-input-block" style="margin-left:auto;"> <label class="layui-form-label" style="text-align: left; width: 150px;">@Model.Werk</label> </div> </div> </div> </div> <div class="layui-row"> <div class="layui-col-xs1"> <select asp-for="@Model.AQLType" lay-filter="AQLType" asp-items="@ViewBag.GetAQL_TypeSelect" class=""></select> </div> <div class="layui-col-xs3"> <input style="width:200px;display:inline;" type="text" class="layui-input" asp-for="QuotDescription" /> <input type="hidden" asp-action="CritID" value="@Model.CritID" /> @*<a class="layui-btn layui-btn-sm layui-btn-normal" id="attachment" title="抽驗係數" lay-submit lay-filter="attachment" onclick="openQC()"> <i class="layui-icon layui-icon-sm" style="font-size: 30px; color: #1E9FFF;"></i> </a>*@ <a title="抽驗係數" lay-submit lay-filter="attachment" onclick="openQC()"><i class="layui-icon layui-icon-form" style="font-size: 30px; color: #ff0000;"></i></a> </div> @* <div class="layui-col-xs1" style="text-align:left;" id="critIDDIV"> </div>*@ <div class="layui-col-xs1 textP"> <label class="layui-form-label-col" style="text-align:right;"> 本批完成量: <label id="InhouseQty" style="text-align:right;"> @Model.InhouseQty </label> </label> </div> <div class="layui-col-xs1 textP"> <label class="layui-form-label-col" style="text-align:right;"> AQL: <label id="AQL" style="text-align:right;"> @Model.AQL </label> </label> </div> <div class="layui-col-xs1 textP"> <label class="layui-form-label-col" style="text-align:right;"> 抽樣點數: <label id="QcQty" style="text-align:right;"> @Model.QcQty </label> </label> </div> <div class="layui-col-xs1 textP"> <label class="layui-form-label-col" style="text-align:right;"> 允收點數: <label id="AcQty" style="text-align:right;"> @Model.AcQty </label> </label> </div> <div class="layui-col-xs1 textP"> <label class="layui-form-label-col" style="text-align:right;"> 拒收點數: <label id="ReQty" style="text-align:right;"> @Model.ReQty </label> </label> </div> </div> <div class="layui-row"> <div class="layui-col-xs1"> <label class="layui-form-label-col" style="text-align:right;"> 工單ECN: </label> </div> <div class="layui-col-xs2"> <label class="layui-form-label-col" style="text-align:left;"> @Model.WipECN </label> </div> <div class="layui-col-xs1"> <label class="layui-form-label-col" style="text-align:right;">PLM_ECN:</label> </div> <div class="layui-col-xs3"> <input type="text" readonly style="display: initial;width:80%" class="layui-input" asp-for="PLMECN" /> <a onclick="GetPLM_ECN();" class="layui-btn layui-btn-sm layui-btn-normal" style="padding: 0 5px;" title="刷新PLM_ECN"> <i class="layui-icon layui-icon-sm"></i> </a> </div> <div class="layui-col-xs1 textF"> <label class="layui-form-label-col" style="text-align:right;"> PASS數量: <label style="text-align: left; width: 50px;"> @Model.PassQty </label> </label> </div> <div class="layui-col-xs1 textF"> <label class="layui-form-label-col" style="text-align:right;"> NG數量: <label style="text-align: left; width: 50px;"> @Model.FailQty </label> </label> </div> <div class="layui-col-xs2 textF"> <label class="layui-form-label-col" style="text-align:right;"> 抽樣結果: <label style="text-align: left; width: 100px;">@Model.StatusName</label> </label> </div> </div> <div class="layui-row"> <div class="layui-col-xs1"> <label class="layui-form-label-col" style="text-align:right;">檢驗儀器編號:</label> </div> <div class="layui-col-xs2"> <div class="layui-input-inline"> <input type="text" class="layui-input" asp-for="OutfitNo" /> </div> </div> <div class="layui-col-xs1"> <label class="layui-form-label-col" style="text-align:right;">單位主管:</label> </div> <div class="layui-col-xs2"> <div class="layui-input-inline" style="width:80px;"> <input class="layui-input" type="text" asp-for="Supervisor" onchange="getUserName(this);" /> </div> <div class="layui-input-inline"> <label class="layui-form-label" id="Supervisor_Name" style="text-align: left;">@Model.Supervisor_Name</label> </div> </div> <div class="layui-col-xs1"> <label class="layui-form-label-col" style="text-align:right;">檢驗者:</label> </div> <div class="layui-col-xs2"> @* <div class="layui-input-inline" style="width:80px;"> <input class="layui-input" type="text" asp-for="UpdateUser" onchange="getUserName(this);" /> </div>*@ <div class="layui-input-inline"> <label class="layui-form-label" id="UpdateUser_Name" style="text-align: left;">@Model.UpdateUser_Name</label> </div> </div> <div class="layui-col-xs1"> <label class="layui-form-label-col" style="text-align:right;">Proved By:</label> </div> <div class="layui-col-xs2"> <div class="layui-input-inline" style="width:80px;"> <input class="layui-input" asp-for="Proved" onchange="getUserName(this);" /> </div> <div class="layui-input-inline"> <label class="layui-form-label" id="Proved_Name" style="text-align: left;">@Model.Proved_Name</label> </div> </div> </div> <div class="layui-row"> <div class="layui-col-xs1"> <label class="layui-form-label-col" style="text-align:right;">OS:</label> </div> <div class="layui-col-xs2"> <div class="layui-input-inline"> <input type="text" class="layui-input" asp-for="OS" /> </div> </div> <div class="layui-col-xs1"> <label class="layui-form-label-col" style="text-align:right;">CPU test:</label> </div> <div class="layui-col-xs2"> <div class="layui-input-inline"> <input type="text" class="layui-input" asp-for="CPU" /> </div> <span>Hz</span> </div> <div class="layui-col-xs1"> <label class="layui-form-label-col" style="text-align:right;">RAM test:</label> </div> <div class="layui-col-xs2"> <div class="layui-input-inline"> <input type="text" class="layui-input" asp-for="RAM" /> </div> <span>Mb</span> </div> <div class="layui-col-xs1"> <label class="layui-form-label-col" style="text-align:right;">BIOS Ver:</label> </div> <div class="layui-col-xs2"> <div class="layui-input-inline"> <input type="text" class="layui-input" asp-for="BIOS" /> </div> </div> </div> <div class="layui-row"> <div class="layui-col-xs1"> <label class="layui-form-label-col" style="text-align:right;">判定備註:</label> </div> <div class="layui-col-xs11"> <div class="layui-form-item"> <div class="layui-input-block" style="margin-left:auto;"> <label class="layui-form-label" style="text-align: left;">@Model.QaMeno</label> </div> </div> </div> </div> <div class="layui-row"> <div class="layui-col-xs1"> <label class="layui-form-label-col" style="text-align:right;">入庫單備註描述:</label> </div> <div class="layui-col-xs11"> <div class="layui-form-item"> <div class="layui-input-block" style="margin-left:auto;"> <label class="layui-form-label" style="text-align: left; width: 150px;">@Model.InhouseMemo</label> </div> </div> </div> </div> <div class="layui-row" style="margin-bottom:10px;"> <div class="layui-col-xs1"> <label class="layui-form-label-col" style="text-align:right;">NOTE:</label> </div> <div class="layui-col-xs11"> <textarea asp-for="Note" style="min-height:50px;" class="layui-textarea"></textarea> </div> </div> <div class="layui-row" style="margin-bottom:10px;"> <div class="layui-col-xs1"> <label class="layui-form-label-col" style="text-align:right;">ECN Memo:</label> </div> <div class="layui-col-xs11"> <textarea asp-for="ECN_Memo" style="min-height:50px;" class="layui-textarea"></textarea> </div> </div> <div class="layui-row" id="click" style="display:none"> <div class="layui-col-xs10"> </div> <div class="layui-col-xs1 layui-col-xs-offset10"> <a class="layui-btn layui-btn-primary layui-border-blue layui-icon layui-icon-survey" onclick="edit()">抽驗</a> </div> <div class="layui-col-xs1"> <a class="layui-btn layui-btn-primary layui-border-blue layui-icon layui-icon-edit" onclick="result()">結果判定</a> </div> </div> @*<table class="layui-hide" id="test" lay-filter="test"></table>*@ <div class="layui-collapse"> <div class="layui-colla-item"> <h2 class="layui-colla-title">細項資料</h2> <div class="layui-colla-content layui-show"> <table id="MydataTable" class="layui-table"> @{ int i = 0; } <thead> <tr> <th>箱號</th> <th> 總數量 </th> <th> 已抽數量 </th> <th> 抽驗PASS數量 </th> <th> 抽驗FAIL數量 </th> <th></th> </tr> </thead> <tbody> @foreach (var index in Model.fqcDetails) { <tr> <td> @index.SerialNo </td> <td> @index.Qty </td> <td> @index.HasQty </td> <td> @index.PassQty </td> <td> @index.FailQty </td> <td> <a class='layui-btn layui-btn-warm layui-icon layui-icon-list layui-btn-xs' onclick="detail('@index.SerialNo')">檢視</a> </td> </tr> i++; } </tbody> </table> </div> </div> <div class="layui-colla-item"> <h2 class="layui-colla-title">檢驗工項</h2> <div class="layui-colla-content layui-show"> <a class="layui-btn layui-btn-sm layui-btn-normal" id="attachment" title="新增" lay-submit onclick="addQcItem()"> <i class="layui-icon layui-icon-sm"></i> </a> <table id="QcItemTable" class="layui-table"> <thead> <tr> <th lay-data="{field:'groupNameCN', width:100,sort: true}">類別中文</th> <th lay-data="{field:'groupNameEN', width:100,sort: true}">類別英文</th> <th lay-data="{field:'itemNameCN', width:100,sort: true}">項目中文</th> <th lay-data="{field:'itemNameEN', width:100,sort: true}">項目英文</th> <th lay-data="{field:'itemTypeName', width:100,sort: true}">類型</th> </tr> </thead> <tbody> @foreach (var index in Model.qcItemDtos) { <tr> <td> @index.GroupNameCN </td> <td> @index.GroupNameEN </td> <td> @index.ItemNameCN </td> <td> @index.ItemNameEN </td> <td> @index.ItemTypeName </td> </tr> } </tbody> </table> </div> </div> <div class="layui-colla-item"> <h2 class="layui-colla-title">細項資料(全部)</h2> <div class="layui-colla-content layui-show"> <table id="MydataTable" class="layui-table"> <thead> <tr> <th>生產序號</th> <th> 出貨序號 </th> <th> 箱號 </th> <th> IsSample </th> <th> 檢驗結果 </th> </tr> </thead> <tbody> @foreach (var index in Model.fqcResultDetails) { <tr> <td> @index.BarcodeNo </td> <td> @index.ExtraBarcodeNo </td> <td> @index.BoxNo </td> <td> @index.IsSample </td> <td> @index.StatusNo </td> </tr> } </tbody> </table> </div> </div> </div> <span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span> <div class="layui-form-item" style="display:none" id="actionDIV"> <div style="text-align:center"> <input type="submit" value="儲存" name="action" class="layui-btn" /> </div> </div> </div> </form> </div> @section Scripts{ @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); await Html.RenderPartialAsync("_FileinputScriptsPartial"); } <script type="text/javascript" src="~/js/grids.min.js"></script> <script type="text/javascript"> layui.use(['form', 'layer', 'laydate'], function () { var form = layui.form; }); //通过行tool檢視,lay-event="detail" function detail(obj) { var data = $("#FQC007Form").serialize(); $.ajax({ url: "@Url.Action("FQC007AjaxJson", "FQC")", type: "POST", data: data, success: function (result) { let InhouseNo = $("#hInhouseNo").val().trim(); let SeqID = $("#hSeqID").val().trim(); layui.use('layer', function () { var layer = layui.layer; layer.open({ title: 'FQC細項資料', type: 2, area: ['1000px', '500px'], fixed: false, //不固定 maxmin: false, scrollbar: true, moveOut: true, content: '/FQC/FQC007V?inhouseNo=' + InhouseNo + '&seqID=' + SeqID + '&boxNo=' + obj, end: function () { window.location.reload(); } }); }); }, error: function (result) { alert(`呼叫API失敗`); } }); //hg.open('FQC細項資料', '/FQC/FQC007V?inhouseNo=' + InhouseNo + '&seqID=' + SeqID + '&boxNo=' + obj, '1000', '500'); } //UserName function getUserName(val) { if (val.value.length != 0) { $.ajax( { url: "@Url.Action("getUserName", "SYS")", dataType: 'json', data: { "userNo": val.value }, type: 'post', success: function (result) { $(val).closest('div.layui-col-xs2').find('label[id*=' + val.id + '_Name]').text(result.data); }, error: function (result) { alert(result); } }); } }; function edit() { var data = $("#FQC007Form").serialize(); $.ajax({ url: "@Url.Action("FQC007AjaxJson", "FQC")", type: "POST", data: data, success: function (result) { layui.use('layer', function () { var layer = layui.layer; layer.open({ title: '抽驗', type: 2, area: ['600px', '550px'], fixed: false, //不固定 maxmin: false, scrollbar: true, moveOut: true, content: '/FQC/FQC007C?inhouseNo=@Model.h_InhouseNo&seq=@Model.h_SeqID', end: function () { window.location.reload(); } }); }); }, error: function (result) { alert(`呼叫API失敗`); } }); //hg.open('抽驗', '/FQC/FQC007C?inhouseNo=@Model.h_InhouseNo&seq=@Model.h_SeqID', 600, 600); }; function result() { //hg.open('判定結果', '/FQC/FQC007B/', 600, 400); var data = $("#FQC007Form").serialize(); $.ajax({ url: "@Url.Action("FQC007AjaxJson", "FQC")", type: "POST", data: data, success: function (result) { layui.use('layer', function () { var layer = layui.layer; layer.open({ title: '結果判定', type: 2, area: ['600px', '400px'], fixed: false, //不固定 maxmin: true, content: '/FQC/FQC007B?inhouseNo=@Model.h_InhouseNo&seq=@Model.h_SeqID&fqc=@Model.FqcID' }); }); }, error: function (result) { alert(`呼叫API失敗`); } }); }; // 文件上傳 function upload() { if (@Model.FqcID == 0) { parent.hg.msg('請先抽驗一筆紀錄!'); return; }; layui.use('layer', function () { var layer = layui.layer; layer.open({ title: '文件上傳', type: 2, area: ['600px', '400px'], fixed: false, //不固定 maxmin: true, content: '/FQC/FQC007D?fqc=@Model.FqcID' }); }); }; // QCITEM function addQcItem() { if ('@Model.WipNo' == '') { parent.hg.msg('請搜尋入庫單號!'); return; } layui.use('layer', function () { var layer = layui.layer; layer.open({ title: '檢驗工項維護', type: 2, area: ['700px', '500px'], fixed: false, //不固定 maxmin: true, content: '/FQC/FQC007A?wipNo=@Model.WipNo&itemNo=@Model.ItemNo', end: function () { window.location.reload(); } }); }); } // OpenQC function openQC() { layui.use('layer', function () { var layer = layui.layer; var AQLType = $("#AQLType").val(); layer.open({ title: 'QC', type: 2, area: ['700px', '500px'], btn: ['確定', '取消'], fixed: false, //不固定 maxmin: false, content: `/FQC/FQC007E?AQLType=${AQLType}&QCQty=@Model.InhouseQty`, yes: function (index, layero) { //var body = layer.getChildFrame('body', index); var obj = layero.find("iframe")[0].contentWindow; $('#CritID').val(obj.$("#critID").val()); $('#QuotDescription').val(obj.$("#quotDescription").val()); $('#AQL').text(obj.$("#aql").val()); $('#QcQty').text(obj.$("#qcQty").val()); $('#ReQty').text(obj.$("#reQty").val()); $('#AcQty').text(obj.$("#acQty").val()); layer.close(index); var data = $("#FQC007Form").serialize(); data += "&CritID=" + obj.$("#critID").val(); $.ajax({ url: "@Url.Action("FQC007ByCritID", "FQC")", type: "POST", data: data, success: function (result) { } }); } }); }); } // PLM_ECN function GetPLM_ECN() { $.ajax({ url: "@Url.Action("FQC007GetPLMECN", "FQC")", type: "Post", data: { "ItemNo": '@Model.ItemNo' }, success: function (result) { if (result.success) { $('#PLMECN').val(result.msg); } else { alert(result.msg); } }, error: function (result) { alert(`呼叫API失敗`); } }); } $(document).ready(function () { var error = '@Html.ValidationMessage("error")'; $("#CustomerMedical").attr("disabled", "disabled"); $("#CustomerVIP").attr("disabled", "disabled"); if ($(error).text() != '') { parent.hg.msg(error); }; let InhouseNo = $("#hInhouseNo").val().trim(); let SeqID = $("#hSeqID").val().trim(); let Result = '@Model.StatusName'; if (InhouseNo.length != 0 && SeqID.length != 0 && Result == '') { $("#click").show(); $("#actionDIV").show(); $("#critID").show(); } setupEnterToNext(); }); function setupEnterToNext() { // add keydown event for all inputs $(':text').keydown(function (e) { if (e.keyCode == 13 /*Enter*/) { // focus next input elements $(':text:visible:enabled:eq(' + ($(':text:visible:enabled').index(this) + 1) + ')').focus(); e.preventDefault(); } }); } </script> }