<!DOCTYPE html>
|
<html>
|
|
<head>
|
<meta charset="utf-8">
|
<title>添加入库单据</title>
|
<meta name="renderer" content="webkit">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
<meta name="viewport"
|
content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
|
<link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
|
<style type="text/css">
|
.layui-table-cell,
|
.layui-table-box {
|
overflow: visible;
|
}
|
|
td .layui-form-select {
|
margin-top: -10px;
|
margin-left: -15px;
|
margin-right: -15px;
|
}
|
</style>
|
</head>
|
|
<body>
|
<div class="layui-form" lay-filter="layuiadmin-app-form-list" id="layuiadmin-app-form-list">
|
<div class="layui-form-item" style="padding: 20px 30px 0 0;">
|
<label class="layui-form-label">入库单号</label>
|
<div class="layui-input-inline">
|
<input type="text" id="ASNNo" name="ASNNo" disabled="disabled" placeholder="自动生成单号" autocomplete="off"
|
class="layui-input">
|
</div>
|
|
<label class="layui-form-label">单据类型</label>
|
<div class="layui-input-inline">
|
<select name="Type" id="Type" lay-filter="Type" lay-search >
|
<!-- <option value=""></option> -->
|
<!-- JC09 -->
|
<!-- <option value="0" Selected>标准产品入库</option>
|
<option value="1">非标产品入库</option> -->
|
<!-- JC08 -->
|
<option value="0">成品入库</option>
|
<option value="1">原料入库</option>
|
<option value="2">退货入库</option>
|
<option value="3">包材入库</option>
|
</select>
|
</div>
|
|
<label class="layui-form-label">客户名称</label>
|
<div class="layui-input-inline">
|
<select name="CustomerName" id="CustomerName" lay-verify="" lay-search>
|
<option value=""></option>
|
</select>
|
</div>
|
|
<div>
|
<button class="layui-btn layui-btn-sm layuiadmin-btn-list isshowaddbutton" data-type="add">添加明细</button>
|
<button class="layui-btn layui-btn-sm layuiadmin-btn-list isshowaddsobutton" data-type="add1">选择出库单据</button>
|
<button type="submit" class="layui-btn layui-btn-sm layuiadmin-btn-list" lay-submit=""
|
lay-filter="form1">立即提交</button>
|
</div>
|
</div>
|
|
<div class="layui-form-item" style="margin-bottom: 0%" ;>
|
<div class="layui-card">
|
<div class="layui-card-body">
|
|
<table id="LAY-app-content-list" name="LAY-app-content-list" lay-filter="LAY-app-content-list">
|
</table>
|
<!-- <script type="text/html" id="switchTpl">
|
<input type="checkbox" name="IsBale" value="{{d.SkuNo}}" lay-skin="switch" lay-text="是|否" lay-filter="IsBaleDemo" {{ d.IsBale == "1" ? 'checked' : '' }}>
|
</script>
|
<script type="text/html" id="switchTp2">
|
<input type="checkbox" name="IsBelt" value="{{d.SkuNo}}" lay-skin="switch" lay-text="是|否" lay-filter="IsBeltDemo" {{ d.IsBelt == "1" ? 'checked' : '' }}>
|
</script> -->
|
<script type="text/html" id="table-content-list">
|
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"> <i class="layui-icon layui-icon-delete"></i>删除</a>
|
</script>
|
</div>
|
</div>
|
</div>
|
</div>
|
|
<script src="../../layuiadmin/layui/layui.js"></script>
|
<script src="../../js/public.js"></script>
|
<script src="../../js/jquery-3.5.1.min.js"></script>
|
<script src="../../js/jquery.cookie.js"></script>
|
<script>
|
layui.config({
|
base: '../../layuiadmin/' //静态资源所在路径
|
}).extend({
|
index: 'lib/index' //主入口模块
|
}).use(['index', 'form', 'layer', 'laydate', 'table'], function () {
|
var $ = layui.$, form = layui.form, laydate = layui.laydate,
|
table = layui.table, layer = layui.layer;
|
laydate.render({
|
elem: '#ProductionDate'
|
, format: 'yyyy-MM-dd' //可任意组合
|
});
|
laydate.render({
|
elem: '#ExpirationDate'
|
, format: 'yyyy-MM-dd' //可任意组合
|
});
|
var arr = [];
|
$(".isshowaddbutton").show();
|
$(".isshowaddsobutton").hide();
|
|
// 加载下拉信息
|
getCustomerList();
|
|
// table 基本设置
|
var infoOptions = {
|
elem: '#LAY-app-content-list',
|
height: 'full-110',
|
id: 'LAY-app-content-list',
|
page: true,
|
limit: pageCnt,
|
limits: pageLimits,
|
cellMinWidth: 60, //全局定义常规单元格的最小宽度,layui 2.2.1 新增
|
cols: [
|
[ //标题栏
|
{
|
title: '序号',
|
type: 'numbers',
|
width: 50,
|
align: 'center',
|
fixed: 'left'
|
},
|
{
|
field: 'Id',
|
title: '入库单明细ID',
|
width: 120,
|
align: 'center',
|
fixed: 'left',
|
hide: true,
|
}, {
|
field: 'SkuNo',
|
title: '物料编码',
|
width: 100,
|
align: 'center',
|
fixed: 'left',
|
}, {
|
field: 'SkuName',
|
title: '物料名称',
|
width: 180,
|
align: 'center',
|
fixed: 'left',
|
}, {
|
field: 'LotNo',
|
title: '批次号',
|
align: 'center',
|
edit: 'text',
|
width: 130,
|
fixed: 'left',
|
}, {
|
field: 'SupplierLot',
|
title: '供货批次',
|
width: 130,
|
edit: 'text',
|
event: 'setSign',
|
fixed: 'left',
|
align: 'center',
|
}, {
|
field: 'Qty',
|
title: '数量',
|
align: 'center',
|
width: 80,
|
edit: 'number',
|
event: 'dataNumber',
|
fixed: 'left',
|
},
|
// {
|
// field: 'IsBale',
|
// title: '是否裹包',
|
// align: 'center',
|
// width: 85,
|
// templet: '#switchTpl',
|
// unresize: false
|
// },
|
|
// {
|
// field: 'IsBelt',
|
// title: '是否打带',
|
// align: 'center',
|
// width: 85,
|
// templet: '#switchTp2',
|
// unresize: true
|
// },
|
{
|
field: 'TestWidth',
|
title: '重量',
|
align: 'center',
|
width: 70
|
},
|
{
|
field: 'UnitName',
|
title: '计量单位',
|
align: 'center',
|
width: 70
|
},
|
{
|
field: 'Standard',
|
title: '规格',
|
width: 160,
|
align: 'center',
|
}, {
|
field: 'LotText',
|
title: '批次描述',
|
align: 'center',
|
edit: 'text',
|
width: 160,
|
}, {
|
field: 'InspectNo',
|
title: '质检号',
|
align: 'center',
|
edit: 'text',
|
width: 160,
|
}, {
|
field: 'PackagNo',
|
title: '包装',
|
width: 100,
|
hide: true
|
}, {
|
field: 'PackagNo',
|
title: '包装名称',
|
width: 160,
|
hide: true
|
}, {
|
field: 'Price',
|
title: '单价',
|
align: 'center',
|
width: 80
|
}, {
|
field: 'Money',
|
title: '金额',
|
align: 'center',
|
width: 100,
|
hide:true
|
}, {
|
title: '操作',
|
align: 'center',
|
fixed: 'right',
|
templet: '#table-content-list',
|
width: 120
|
}
|
]
|
]
|
};
|
|
//监听单据类型 若为退货入库 则变更显示按钮
|
form.on('select(Type)', function (data) {
|
if (data.value == "2")
|
{
|
$(".isshowaddbutton").hide();
|
$(".isshowaddsobutton").show();
|
}
|
else
|
{
|
$(".isshowaddbutton").show();
|
$(".isshowaddsobutton").hide();
|
}
|
|
})
|
|
// 渲染Table
|
refreshTable(null);
|
|
// 添加编辑明细
|
var id = getQueryString('id');
|
if (id != null) {
|
// 编辑
|
var param = {
|
ASNNo: id,
|
Status: "0"
|
};
|
sendData(IP + "/BllAsn/GetArrivalNotice", param, 'post', function (res) {
|
if (res.code == 0) {
|
$("input[name='ASNNo']").val(res.data.ASNNo);
|
$("#Type option[value = '" + res.data.Type + "']").prop("selected", true);
|
$("#CustomerName option[value = '" + res.data.CustomerNo + "']").prop("selected", true);
|
$("#Type").attr("disabled", "disabled");
|
|
var paramDetail = {
|
ASNNo: id,
|
};
|
sendData(IP + "/BllAsn/GetArrivalNoticeDetailList", paramDetail, 'post', function (res) {
|
// console.log(res)
|
if (res.code == 0) { //成功
|
var data = res.data;
|
|
for (var i in data) {
|
arr.push(data[i]); //属性
|
}
|
//页面赋值
|
$.extend(infoOptions, {
|
data: arr
|
});
|
infoOptions.page = {
|
curr: 1
|
}
|
table.render(infoOptions);
|
form.render('select');
|
} else { //不成功
|
layer.msg(res.msg, {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function () { });
|
}
|
});
|
} else { //不成功
|
layer.msg(res.msg, {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function () { });
|
}
|
});
|
}
|
else {
|
// 添加
|
}
|
|
//监听数量修改值
|
table.on('edit(LAY-app-content-list)', function(obj){ //注:edit是固定事件名,test是table原始容器的属性 lay-filter="对应的值"
|
|
// //当修改的字段名为QTY时 修改对应的重量为多少
|
if (obj.field == 'Qty')
|
{
|
// obj.data.TestWidth = obj.value * obj.data.cellMinWidth;
|
// console.log(obj.data)
|
obj.data.TestWidth = obj.value * obj.data.Weight.toFixed(2);
|
// console.log(obj.value)
|
// console.log(obj.data.Weight);
|
// console.log('重量为多少:',obj.data.TestWidth.toFixed(2));
|
obj.data.TestWidth = obj.data.TestWidth.toFixed(2)
|
|
var arr = [];
|
arr.push(obj.data)
|
refreshTable(arr,123)
|
|
|
}
|
// console.log('修改后的值:',obj.value); //得到修改后的值
|
// console.log('当前编辑的字段名:',obj.field); //当前编辑的字段名
|
// console.log('所在行的相关数据:',obj.data); //所在行的所有相关数据
|
});
|
|
|
// 选择物料
|
var $ = layui.$,
|
active = {
|
add: function () {
|
var typeValue = $("#Type").val();
|
layer.open({
|
type: 2,
|
title: '添加明细',
|
content: 'SelMaterials.html?type=' + typeValue,
|
maxmin: true,
|
area: ['1000px', '90%'],
|
fixed: false,
|
});
|
},
|
add1: function () {
|
var typeValue = $("#Type").val();
|
if (typeValue == 2)
|
{
|
layer.open({
|
type: 2,
|
title: '出库单据',
|
content: 'SelExportNotice.html?type=' + typeValue,
|
maxmin: true,
|
area: ['1000px', '90%'],
|
fixed: false,
|
});
|
}
|
}
|
};
|
$('.layui-btn.layuiadmin-btn-list').on('click', function () {
|
var type = $(this).data('type');
|
active[type] ? active[type].call(this) : '';
|
});
|
window.success = function (data) {
|
|
refreshTable(data)
|
};
|
|
//var IsBaleValue = "";
|
// form.on('switch(IsBaleDemo)', function (obj) {
|
// layer.tips(this.value + ' ' + this.name + ':' + obj.elem.checked, obj.othis);
|
// if (obj.elem.checked) {
|
// IsBaleValue = "1";
|
// } else {
|
// IsBaleValue = "0";
|
// }
|
// });
|
|
// table.on('row(LAY-app-content-list)', function (obj) {
|
// if (IsBaleValue != "") {
|
// for (var j in arr) {
|
// if (obj.data.SkuNo == arr[j].SkuNo) {
|
// arr[j].IsBale = IsBaleValue;
|
// IsBaleValue = ""
|
// break;
|
// }
|
// }
|
// }
|
|
// })
|
|
// 删除入库单明细
|
table.on('tool(LAY-app-content-list)', function (obj) {
|
if (obj.event == 'del') {
|
layer.confirm('确定删除入库单明细?', function (index) {
|
var ii = -1;
|
for (var j in arr) {
|
if (obj.data.SkuNo == arr[j].SkuNo) {
|
ii = j;
|
break;
|
}
|
}
|
if (ii > -1) {
|
arr.splice(ii, 1);
|
obj.del();
|
layer.close(index)
|
}
|
});
|
}
|
});
|
|
// 保存入库单
|
var doing = true;
|
form.on('submit(form1)', function (data) {
|
if (arr.length == 0) {
|
layer.msg("请添加明细!", {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function () {
|
|
});
|
return;
|
}
|
SetArrivalNotice();
|
});
|
|
form.verify({
|
emptyNo: function (value) {
|
if (value == '') {
|
return '';
|
} else {
|
var ver = /^[0-9]+$/;
|
if (!ver.test(value)) {
|
return '只能输入正整数';
|
}
|
}
|
}
|
});
|
|
|
//#region 事件方法
|
// 获取主页面传递的参数
|
function getQueryString(name) {
|
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
|
var r = window.location.search.substr(1).match(reg);
|
if (r != null) return unescape(r[2]);
|
return null;
|
}
|
|
// 绑定下拉信息
|
function getCustomerList() {
|
sendData(IP + "/Basis/GetCustomerSelect", {}, 'get', function (res) {
|
if (res.code == 0) { //成功
|
$("#CustomerName").empty();
|
//$("#CustomerName").append('<option value =""></option>');
|
for (var i = 0; i < res.data.length; i++) {
|
$("#CustomerName").append('<option value =' + res.data[i].CustomerNo + '>' +
|
res.data[i].CustomerName + '</option>');
|
}
|
form.render('select');
|
} else { //不成功
|
layer.msg(res.msg, {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function () { });
|
}
|
});
|
}
|
|
// 渲染table
|
function refreshTable(data,obj) {
|
|
console.log(data,obj)
|
|
|
if (data != null)
|
{
|
|
if (data.length == 1)
|
{
|
if(data[0].Origin == "出库单据") //出库单据信息
|
{
|
if(obj != undefined)
|
{
|
for (var j in arr) {
|
}
|
arr = [];
|
arr.push(data[0]); //属性
|
|
$.extend(infoOptions, {
|
data: arr
|
});
|
infoOptions.page = {
|
curr: 1
|
}
|
if(infoOptions.data.length < 2)
|
{
|
table.render(infoOptions);
|
}
|
|
|
}
|
else if(obj == undefined)
|
{
|
var sku = null;
|
var param1 = {
|
skuNo: data[0].SkuNo
|
};
|
|
//获取物料信息
|
sendData(IP + "/basis/GetMateList", param1, 'get', function(res) {
|
if (res.code == 0) //成功
|
{
|
sku = res.data[0];
|
console.log(sku)
|
data[0].Weight = sku.Weight
|
console.log(data[0].Weight)
|
if(obj != undefined)
|
{
|
|
for (var j in arr) {
|
}
|
arr = [];
|
arr.push(data); //属性
|
|
$.extend(infoOptions, {
|
data: arr
|
});
|
infoOptions.page = {
|
curr: 1
|
}
|
if(infoOptions.data.length < 2)
|
{
|
table.render(infoOptions);
|
}
|
|
|
}
|
else if(obj == undefined)
|
{
|
for (var i in data) {
|
var isHave = false;
|
for (var j in arr) {
|
if (arr[j].SkuNo == data[i].SkuNo
|
// // 注释 liudl 若存在同一物料不同批次物料 放开此注释,后端已验证是否重复
|
// //&& arr[j].LotNo == data[i].LotNo
|
)
|
{
|
isHave = true;
|
break;
|
}
|
}
|
if (isHave) {
|
continue;
|
}
|
|
|
arr.push(data[i]); //属性
|
}
|
$.extend(infoOptions, {
|
data: arr
|
});
|
infoOptions.page = {
|
curr: 1
|
}
|
if(infoOptions.data.length < 2)
|
{
|
infoOptions.data[0].TestWidth = data[0].Qty * sku.Weight.toFixed(2)
|
table.render(infoOptions);
|
|
}
|
|
}
|
}
|
else //不成功
|
{
|
layer.msg('获取物料信息失败!', {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function() {});
|
}
|
});
|
|
}
|
|
}
|
else //正常物料信息
|
{
|
// console.log(data,obj)
|
if(obj != undefined)
|
{
|
for (var j in arr) {
|
}
|
arr = [];
|
arr.push(data[0]); //属性
|
|
$.extend(infoOptions, {
|
data: arr
|
});
|
infoOptions.page = {
|
curr: 1
|
}
|
if(infoOptions.data.length < 2)
|
{
|
table.render(infoOptions);
|
}
|
|
|
}
|
else if(obj == undefined)
|
{
|
for (var i in data) {
|
var isHave = false;
|
for (var j in arr) {
|
if (arr[j].SkuNo == data[i].SkuNo
|
// // 注释 liudl 若存在同一物料不同批次物料 放开此注释,后端已验证是否重复
|
// //&& arr[j].LotNo == data[i].LotNo
|
)
|
{
|
isHave = true;
|
break;
|
}
|
}
|
if (isHave) {
|
continue;
|
}
|
|
|
arr.push(data[i]); //属性
|
}
|
$.extend(infoOptions, {
|
data: arr
|
});
|
infoOptions.page = {
|
curr: 1
|
}
|
if(infoOptions.data.length < 2)
|
{
|
table.render(infoOptions);
|
|
}
|
|
}
|
}
|
|
|
}
|
else if(obj != '123')
|
{
|
$.extend(infoOptions, {
|
data: []
|
});
|
infoOptions.page = {
|
curr: 1
|
}
|
table.render(infoOptions);
|
}
|
|
|
}
|
else if(obj != '123')
|
{
|
$.extend(infoOptions, {
|
data: []
|
});
|
infoOptions.page = {
|
curr: 1
|
}
|
table.render(infoOptions);
|
}
|
|
|
}
|
|
// 添加入库单
|
function SetArrivalNotice(data) {
|
var item2 = getAsnOrderInfo();
|
console.log(item2)
|
if (doing) {
|
doing = false;
|
if (id == null) {
|
// 添加入库单
|
sendData(IP + "/BllAsn/AddArrivalNotice", item2, 'post', function (res) {
|
if (res.code == 0) { //成功
|
layer.msg(res.msg, {
|
icon: 1,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function () {
|
parent.location.reload();
|
parent.layer.close(layer.index);
|
doing = true
|
});
|
} else { //不成功
|
layer.msg(res.msg, {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function () { doing = true });
|
}
|
});
|
}
|
else {
|
// 编辑入库单
|
sendData(IP + "/BllAsn/EditArrivalNotice", item2, 'post', function (res) {
|
if (res.code == 0) { //成功
|
layer.msg(res.msg, {
|
icon: 1,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function () {
|
parent.location.reload();
|
parent.layer.close(layer.index);
|
doing = true
|
});
|
} else { //不成功
|
layer.msg(res.msg, {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function () { doing = true });
|
}
|
});
|
}
|
|
return false;
|
}
|
else {
|
layer.msg("已提交数据,请等待!", {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function () { doing = true });
|
}
|
|
}
|
|
// 提交获取入库单信息
|
function getAsnOrderInfo() {
|
var DataList = [];
|
var reg = /^([0]|[0-9][0-9]*)$/;
|
for (var i in arr) {
|
if (arr[i].Qty == "") {
|
layer.msg("请输入入库数量!", {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
});
|
return;
|
}
|
if (arr[i].LotNo == "") {
|
layer.msg("请输入批次!", {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
});
|
return;
|
}
|
if (arr[i].Qty <= 0) {
|
layer.msg("入库数量必须大于0!", {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
});
|
return;
|
}
|
if (!reg.test(arr[i].Qty)) {
|
layer.msg("入库数量必须是大于0的整数", {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
});
|
return;
|
}
|
if (arr[i].InspectNo == "") {
|
layer.msg("质检号不可为空", {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
});
|
return;
|
}
|
|
var item = {
|
Id: arr[i].Id,
|
SkuNo: arr[i].SkuNo,
|
SkuName: arr[i].SkuName,
|
Standard: arr[i].Standard,
|
LotNo: arr[i].LotNo,
|
LotText: arr[i].LotText,
|
Qty: parseInt(arr[i].Qty),
|
PackagNo: arr[i].PackagNo,
|
Price: arr[i].Price,
|
IsBale: arr[i].IsBale,
|
IsBelt: arr[i].IsBelt,
|
SupplierLot: arr[i].SupplierLot,
|
InspectNo: arr[i].InspectNo,
|
};
|
DataList.push(item); //属性
|
}
|
var item2 = {
|
ASNNo: $("#ASNNo").val(),
|
Type: $("#Type").val(),
|
CustomerNo: $("#CustomerName").val(),
|
CustomerName: $("#CustomerName").text(),
|
Origin: "录入",
|
AsnDetail: DataList
|
}
|
return item2;
|
}
|
|
|
|
//#endregion
|
|
})
|
</script>
|
</body>
|
|
</html>
|