|
|
@ -108,7 +108,7 @@ |
|
|
|
|
|
|
|
<div class="layui-inline" style="margin-right: 100px;"> |
|
|
|
<label class="layui-form-label">資料群組:</label> |
|
|
|
<input type="radio" name="StockUnit" value="1" title="Box No(安勤或昶亨生產)" lay-filter="radio-filter" checked/> |
|
|
|
<input type="radio" name="StockUnit" value="1" title="Box No(安勤或昶亨生產)" lay-filter="radio-filter" checked /> |
|
|
|
<input type="radio" name="StockUnit" value="0" title="PCS" lay-filter="radio-filter" /> |
|
|
|
</div> |
|
|
|
|
|
|
@ -243,6 +243,7 @@ |
|
|
|
lineNo.focus(); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
$('#lineNo').on('keypress', function (event) { |
|
|
|
|
|
|
|
if (event.keyCode == 13) { |
|
|
@ -278,6 +279,7 @@ |
|
|
|
getItemDesc(document.getElementById('PartNumber').value); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
$('#frontSN').on('keypress', function (event) { |
|
|
|
if (event.keyCode == 13) { |
|
|
|
checkInputData(); |
|
|
@ -286,97 +288,33 @@ |
|
|
|
|
|
|
|
$('#endSN').on('keypress', function (event) { |
|
|
|
if (event.keyCode == 13) { |
|
|
|
var frontSN = document.getElementById('frontSN'); |
|
|
|
var endSN = document.getElementById('endSN'); |
|
|
|
var dnNo = document.getElementById('recordNumber'); |
|
|
|
var lineNo = document.getElementById('lineNo'); |
|
|
|
var material = document.getElementById('PartNumber'); |
|
|
|
var table = layui.table; |
|
|
|
var rowAmount = table.cache['query'].length; |
|
|
|
|
|
|
|
var prefixCode = frontSN.value.slice(0, -5); |
|
|
|
var currentSN = parseInt(frontSN.value.slice(-5)); |
|
|
|
|
|
|
|
while (currentSN <= parseInt(endSN.value.slice(-5))) { |
|
|
|
rowAmount++; |
|
|
|
var newRowData = { |
|
|
|
itemNo: rowAmount, |
|
|
|
dnNo: dnNo.value, |
|
|
|
lineNo: lineNo.value, |
|
|
|
material: material.value, |
|
|
|
sn: prefixCode + currentSN.toString().padStart(5, "0") |
|
|
|
}; |
|
|
|
// Add the new row data to the table |
|
|
|
hg.table.addRow('query', newRowData); |
|
|
|
currentSN++; |
|
|
|
} |
|
|
|
|
|
|
|
checkInputData(); |
|
|
|
frontSN.focus(); |
|
|
|
frontSN.select(); |
|
|
|
|
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
$('#SNData').on('keypress', function (event) { |
|
|
|
if (event.keyCode == 13) { |
|
|
|
var SNData = document.getElementById('SNData'); |
|
|
|
var dnNo = document.getElementById('recordNumber'); |
|
|
|
var lineNo = document.getElementById('lineNo'); |
|
|
|
var material = document.getElementById('PartNumber'); |
|
|
|
var table = layui.table; |
|
|
|
var rowAmount = table.cache['query'].length; |
|
|
|
if (SNData.value.trim() == "") { |
|
|
|
hg.msg('SN不得為空!'); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
var arr = SNData.value.split('\n'); |
|
|
|
$.each(arr, function (index, SN) { |
|
|
|
rowAmount++; |
|
|
|
var newRowData = { |
|
|
|
itemNo: rowAmount, |
|
|
|
dnNo: dnNo.value, |
|
|
|
lineNo: lineNo.value, |
|
|
|
material: material.value, |
|
|
|
sn: SN |
|
|
|
}; |
|
|
|
// Add the new row data to the table |
|
|
|
hg.table.addRow('query', newRowData); |
|
|
|
}); |
|
|
|
|
|
|
|
checkInputData(); |
|
|
|
SNData.select(); |
|
|
|
event.preventDefault(); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
$('#StockQty').on('keypress', function (event) { |
|
|
|
if (event.keyCode == 13 && document.getElementById('pcs').checked && !document.getElementById('PCSUnit').checked) { |
|
|
|
var frontSN = document.getElementById('frontSN'); |
|
|
|
var StockQty = document.getElementById('StockQty'); |
|
|
|
var dnNo = document.getElementById('recordNumber'); |
|
|
|
var lineNo = document.getElementById('lineNo'); |
|
|
|
var material = document.getElementById('PartNumber'); |
|
|
|
var table = layui.table; |
|
|
|
var rowAmount = table.cache['query'].length; |
|
|
|
|
|
|
|
var prefixCode = frontSN.value.slice(0, -5); |
|
|
|
var currentSN = parseInt(frontSN.value.slice(-5)); |
|
|
|
|
|
|
|
for (var i = 1; i <= parseInt(StockQty.value); i++) { |
|
|
|
rowAmount++; |
|
|
|
var newRowData = { |
|
|
|
itemNo: rowAmount, |
|
|
|
dnNo: dnNo.value, |
|
|
|
lineNo: lineNo.value, |
|
|
|
material: material.value, |
|
|
|
sn: prefixCode + currentSN.toString().padStart(5, "0") |
|
|
|
}; |
|
|
|
// Add the new row data to the table |
|
|
|
hg.table.addRow('query', newRowData); |
|
|
|
currentSN++; |
|
|
|
if (event.keyCode == 13) { |
|
|
|
checkInputData(); |
|
|
|
frontSN.focus(); |
|
|
|
frontSN.select(); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
$('#sequential').on('keypress', function (event) { |
|
|
|
if (event.keyCode == 13) { |
|
|
|
checkInputData(); |
|
|
|
frontSN.focus(); |
|
|
|
frontSN.select(); |
|
|
|
|
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
@ -390,18 +328,11 @@ |
|
|
|
var sequential = document.getElementById('sequential').value; |
|
|
|
var rMANo = document.getElementById('RMANo').value; |
|
|
|
var stockUnit = document.querySelector('input[name="StockUnit"]:checked').value; |
|
|
|
var username = getCookie("UserID").value; |
|
|
|
var pcsUnit = document.getElementById('PCSUnit').checked ? 'Y' : 'N'; |
|
|
|
var workCenter = document.getElementById('WorkCenter').value; |
|
|
|
var rbu = document.getElementById('RBU').value; |
|
|
|
var stockQty = document.getElementById('StockQty').value; |
|
|
|
var table = layui.table; |
|
|
|
var rowAmount = table.cache['query'].length; |
|
|
|
var sNData = document.getElementById('SNData').value; |
|
|
|
var tableData = layui.table.cache['query']; |
|
|
|
//if (isSNAlreadyExist(tableId, rowData.sn)) { |
|
|
|
// hg.msg('SN 已存在!'); |
|
|
|
// return; // Do not add the row |
|
|
|
//} |
|
|
|
|
|
|
|
var postData = { |
|
|
|
RecordType: recordType, |
|
|
@ -412,6 +343,7 @@ |
|
|
|
LineNo: lineNo, |
|
|
|
ProductId: material, |
|
|
|
StockUnit: stockUnit, |
|
|
|
PcsUnit: pcsUnit, |
|
|
|
FrontSN: frontSN, |
|
|
|
EndSN: endSN, |
|
|
|
StockQty: stockQty, |
|
|
@ -427,22 +359,29 @@ |
|
|
|
data: serializedData, |
|
|
|
success: function (res) { |
|
|
|
if (res.success) { |
|
|
|
//// 重新加载表格数据 |
|
|
|
//layui.table.reload('query', { |
|
|
|
// data: rowData, |
|
|
|
// page: false, |
|
|
|
// limit: 2000 |
|
|
|
//}); |
|
|
|
//layer.msg('備貨成功!', { icon: 1 }); |
|
|
|
//calculateRowCount(tableData); |
|
|
|
// 用来统计重复的SN |
|
|
|
var duplicateSNs = []; |
|
|
|
|
|
|
|
res.data.forEach(function (item) { |
|
|
|
if (isSNAlreadyExist('query', item.sn)) { |
|
|
|
// 将重复的SN加入到duplicateSNs数组中 |
|
|
|
duplicateSNs.push(item.sn); |
|
|
|
} else { |
|
|
|
hg.table.addRow('query', item); |
|
|
|
} |
|
|
|
else { |
|
|
|
hg.msg('備貨失敗,原因:' + res.msg); |
|
|
|
}); |
|
|
|
if (duplicateSNs.length > 0) { |
|
|
|
// 将所有重复的SN一次性显示 |
|
|
|
var duplicateSNsMessage = duplicateSNs.join(', '); |
|
|
|
layer.msg(`以下SN已存在: ${duplicateSNsMessage}`, { icon: 2, time: 5000}); |
|
|
|
} |
|
|
|
} |
|
|
|
, |
|
|
|
else { |
|
|
|
hg.msg('加入失敗:' + res.msg); |
|
|
|
} |
|
|
|
}, |
|
|
|
error: function (error) { |
|
|
|
hg.msg('備貨失敗!原因:' + error.msg); |
|
|
|
hg.msg('加入失敗:' + error.msg); |
|
|
|
return; |
|
|
|
} |
|
|
|
}); |
|
|
@ -460,11 +399,6 @@ |
|
|
|
|
|
|
|
var tableData = layui.table.cache['query']; |
|
|
|
|
|
|
|
|
|
|
|
//if (customer === "") { |
|
|
|
// hg.msg('Customer不得為空!'); |
|
|
|
// return; // Do not add the row |
|
|
|
//} |
|
|
|
if (material === "") { |
|
|
|
hg.msg('料號不得為空!'); |
|
|
|
return; // Do not add the row |
|
|
@ -531,6 +465,7 @@ |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
// 取料號DESC |
|
|
|
function getItemDesc(itemNo) { |
|
|
|
$.ajax({ |
|
|
|
url: "/BAS/GetMaterialItemByItemNO", |
|
|
@ -549,6 +484,7 @@ |
|
|
|
}); |
|
|
|
}; |
|
|
|
|
|
|
|
// 判斷Table SN是否有重複 |
|
|
|
function isSNAlreadyExist(tableId, sn) { |
|
|
|
var table = layui.table; |
|
|
|
var currentData = table.cache[tableId]; |
|
|
@ -560,6 +496,8 @@ |
|
|
|
|
|
|
|
return isExist; |
|
|
|
} |
|
|
|
|
|
|
|
// 刷入數量 |
|
|
|
function calculateRowCount(table) { |
|
|
|
var RowCount = table.length; |
|
|
|
$("#rowCount").html("刷入數量: " + RowCount + " pcs"); |
|
|
@ -568,11 +506,12 @@ |
|
|
|
hg.table.addRow = function (tableId, rowData) { |
|
|
|
// Get the table instance |
|
|
|
var table = layui.table; |
|
|
|
|
|
|
|
if (isSNAlreadyExist(tableId, rowData.sn)) { |
|
|
|
// Handle the case where SN already exists |
|
|
|
layer.msg('SN 已存在!', { icon: 2 }); |
|
|
|
return; // Do not add the row |
|
|
|
// 如果SN已经存在,返回,不添加该行 |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
// Add the new row data to the table |
|
|
|
table.reload(tableId, { |
|
|
|
data: [rowData].concat(table.cache[tableId]), |
|
|
@ -585,14 +524,14 @@ |
|
|
|
}; |
|
|
|
|
|
|
|
function del(obj) { |
|
|
|
if (obj.data.itemNo) { |
|
|
|
if (obj.data.sn) { |
|
|
|
hg.confirm("SN:" + obj.data.sn + ",確定要刪除嗎?", function () { |
|
|
|
// 获取表格数据 |
|
|
|
var tableData = layui.table.cache['query']; |
|
|
|
|
|
|
|
// 找到要删除的行的索引 |
|
|
|
var rowIndex = tableData.findIndex(function (row) { |
|
|
|
return row.itemNo === obj.data.itemNo; |
|
|
|
return row.sn === obj.data.sn; |
|
|
|
}); |
|
|
|
|
|
|
|
// 从表格数据中删除该行 |
|
|
@ -669,9 +608,9 @@ |
|
|
|
|
|
|
|
var tableCols = [[ |
|
|
|
{ |
|
|
|
field: 'itemNo', |
|
|
|
width: 100, |
|
|
|
title: 'Item(項次)' |
|
|
|
field: 'sn', |
|
|
|
title: 'SN', |
|
|
|
width: 150 |
|
|
|
}, |
|
|
|
{ |
|
|
|
field: 'dnNo', |
|
|
@ -688,11 +627,6 @@ |
|
|
|
title: 'Material(料號)', |
|
|
|
width: 150 |
|
|
|
}, |
|
|
|
{ |
|
|
|
field: 'sn', |
|
|
|
title: 'SN', |
|
|
|
width: 150 |
|
|
|
}, |
|
|
|
{ |
|
|
|
field: 'delete', |
|
|
|
width: 100, |
|
|
|