<!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">
|
<link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
|
<link rel="stylesheet" href="../../layuiadmin/layui/css/style-self.css" media="all">
|
|
</head>
|
<body>
|
<div id="layout1" class="layui-fluid">
|
<div class="layui-row layui-col-space15">
|
<div class="layui-col-md12">
|
<div class="layui-card">
|
<form id="form1" class="layui-form" action="">
|
<div class="layui-card-header">
|
<div class="layui-btn-group">
|
|
<button type="button" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="HBarcodeSaverBox" id="HBarcodeSaverBox">生成条码</button>
|
<button type="button" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="Print">条码打印</button>
|
<button type="button" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="Exit">退出</button>
|
|
</div>
|
</div>
|
<div class="layui-card-body">
|
<div class="layui-form-item">
|
<div class="layui-row">
|
<div class="layui-col-xs3">
|
<label class="layui-form-label">日期:</label>
|
<div class="layui-input-inline">
|
<input class="layui-input" name="HDate" id="HDate" readonly="readonly" autocomplete="off" disabled>
|
</div>
|
</div>
|
</div>
|
</div>
|
<div class="layui-form-item">
|
<div class="layui-row">
|
<div class="layui-col-xs3">
|
<label class="layui-form-label"> 供应商代码:</label>
|
<div class="layui-input-inline">
|
<input class="layui-input" name="HSupNumber" lay-verify="HSupNumber" id="HSupNumber" readonly="readonly" autocomplete="off">
|
<input id="HSupID" name="HSupID" type="hidden" />
|
</div>
|
</div>
|
<div class="layui-col-xs3">
|
<label class="layui-form-label"> 供 应 商:</label>
|
<div class="layui-input-inline">
|
<input class="layui-input" name="HSupName" lay-verify="HSupName" id="HSupName" readonly="readonly" autocomplete="off">
|
</div>
|
</div>
|
</div>
|
</div>
|
|
</div>
|
<div class="layui-tab layui-tab-brief" lay-filter="tabDemo">
|
<ul class="layui-tab-title">
|
<li class="layui-this" lay-id="1">条码信息</li>
|
</ul>
|
<div class="layui-tab-content">
|
<div class="layui-tab-item layui-show">
|
<table class="layui-hide" id="mainTable" lay-filter="mainTable"></table>
|
<script type="text/html" id="toolbarDemo">
|
<!--<div class="layui-btn-container">
|
<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-add"><i class="layui-icon layui-icon-addition"></i>拆分</button>
|
<button type="button" class="layui-btn layui-btn-sm" lay-event="btn_HideColumn"><i class="layui-icon layui-icon-addition"></i>列设置</button>
|
<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-del"><i class="layui-icon layui-icon-subtraction"></i>删行</button>
|
</div>-->
|
</script>
|
<!-- 条码类型下拉框模板 -->
|
<script type="text/html" id="barCodeTypeTpl">
|
<select class="barcode-type-select" lay-filter="barCodeTypeSelect">
|
<option value="唯一条码" {{ d.HSourceBillType == '唯一条码' ? 'selected' : '' }}>唯一条码</option>
|
</select>
|
</script>
|
</div>
|
</div>
|
</div>
|
<!--<blockquote class="layui-elem-quote">条码</blockquote>-->
|
</form>
|
</div>
|
|
</div>
|
</div>
|
</div>
|
<!--<script src="../../layuiadmin/layui/lay/modules/mobile/jquery-3.3.1.min.js"></script>-->
|
<script src="../../layuiadmin/layui/layui.js"></script>
|
<script src="../../layuiadmin/Scripts/json2.js" type="text/javascript"></script>
|
<script src="../../layuiadmin/Scripts/jquery-1.4.1.js" type="text/javascript"></script>
|
<script src="../../../../Scripts/webConfig.js"></script>
|
<script src="../../layuiadmin/Scripts/general.js"></script>
|
<!--<script src="../../../../Scripts/jquery-1.8.2.js"></script>-->
|
<script>
|
var HModName = "Gy_BarCodeBill";
|
function f_alert(sMsg) {
|
layer.alert(sMsg, { icon: 5 });
|
}
|
//#region
|
//#endregion
|
////#region 列配置(手动配置)
|
//var option = {
|
// cols: [[
|
// { type: 'checkbox', fixed: 'left' }
|
// , { field: 'HMaterID', title: '物料ID', width: 100, hide: true }
|
// , { field: 'HMaterNumber', title: '物料编码', width: 120 }
|
// , { field: 'HOldMaterNumber', title: '旧物料编码', width: 120, hide: true }
|
// , { field: 'HMaterShortNumber', title: '物料代码', width: 120, hide: true }
|
// , { field: 'HSubjoin', title: '物料代码', width: 120, hide: true }
|
// , { field: 'HMaterName', title: '物料名称', width: 120 }
|
// , { field: 'HMaterModel', title: '规格型号', width: 120 }
|
// , { field: 'HQty', title: '本次生成条码数量', width: 135, edit: 'text', event: "inputHQty" }
|
// , { field: 'HMinQty', title: '标准包装数(内箱装箱数)', width: 100, edit: 'text', event: "inputHMinQty" }
|
// , { field: 'HBQty', title: '最小包装数(内箱数)', width: 100 }
|
// , { field: 'biaoqianzhangshu', title: '标签张数', width: 100 }
|
// , { field: 'HBatchNo', title: '批号', width: 100, edit: 'text' }
|
// , { field: 'HBatchManager', title: '启用批号', width: 100, hide: true }
|
// , { field: 'HISKFPERIOD', title: '是否启用保质期', width: 100, edit: 'text', hide: true }
|
// , { field: 'HEXPUNIT', title: '保质期单位', width: 100, edit: 'text', hide: true }
|
// , { field: 'HSourceBillType', title: '条码类型', width: 100 }
|
// , { field: 'HKFDate', title: '生产日期', align: 'center', width: 150, data_field: 'HKFDate', event: "chooseHKFDate" }//, event: "chooseHKFDate"
|
// , { field: 'HKFPeriod', title: '保质期', width: 100 }//
|
// , { field: 'HKFDQDate', title: '到期日期', align: 'center', width: 150, data_field: 'HKFDQDate' }//, event: "chooseHKFDQDate"
|
// , { field: 'HSupID', title: '供应商ID', width: 150, hide: true }
|
// , { field: 'HSupName', title: '供应商名称', width: 150, hide: true }
|
// ]]
|
//};
|
////#endregion
|
|
//#region 参数获取function
|
function getUrlVars() {
|
var vars = [], hash;
|
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
|
for (var i = 0; i < hashes.length; i++) {
|
hash = hashes[i].split('=');
|
vars.push(hash[0]);
|
vars[hash[0]] = hash[1];
|
}
|
return vars;
|
}
|
//通过外部传参获取到需要的数据
|
var params = getUrlVars();
|
var linterid = params[params[0]];
|
var lentryid = params[params[1]];
|
var type = params[params[2]];
|
var mergeTags = params[params[3]];
|
mergeTags = 1;
|
//#endregion
|
//原生成条码方法
|
var mainUrl = "GetSRMHBarCodeShowBillMain"; //表头数据加载ajax
|
var subUrl = "GetHBarCodeShowBillSub";//表体数据加载ajax h_v_SRM_POInStockBillSub_ForWeb2
|
var saveBarCode = "GetBarcodeSaveBillBox";//条码生成保存方法ajax GetBarcodeSaveBillBox GetBarcodeSaveBillOnlyInnerBox
|
var openTmpListType = "HBarCodePrint"; //条码打印按钮 弹出界面
|
layui.config({
|
base: '../../layuiadmin/' //静态资源所在路径
|
}).extend({
|
index: 'lib/index' //主入口模块
|
}).use(['index', 'table', 'form', 'element', 'layer', 'laydate'], function () {
|
var table = layui.table
|
, $ = layui.$
|
, form = layui.form
|
, layer = layui.layer
|
, laydate = layui.laydate
|
, element = layui.element; //Tab的切换功能,切换事件监听等,需要依赖element模块
|
|
var option;
|
option = {
|
elem: '#mainTable'
|
, toolbar: '#toolbarDemo'
|
, limit: 500
|
, height: 500
|
, totalRow: true
|
, loading: false
|
, cols: [[
|
{ type: 'checkbox', fixed: 'left' }
|
, { field: 'HMaterID', title: '物料ID', width: 100, hide: true }
|
, { field: 'HMaterNumber', title: '物料编码', width: 120 }
|
/* , { field: 'HOldMaterNumber', title: '旧物料编码', width: 120, hide: true }*/
|
, { field: 'HMaterShortNumber', title: '物料代码', width: 120, hide: true }
|
/* , { field: 'HSubjoin', title: '物料代码', width: 120, hide: true }*/
|
, { field: 'HMaterName', title: '物料名称', width: 120 }
|
, { field: 'HMaterModel', title: '规格型号', width: 120 }
|
, { field: 'HQty', title: '本次生成条码数量', width: 135, edit: 'text', event: "inputHQty" }
|
, { field: 'HMinQty', title: '标准包装数(内箱装箱数)', width: 100, edit: 'text', event: "inputHMinQty" }
|
, { field: 'HBQty', title: '最小包装数(内箱数)', width: 100 }
|
, { field: 'biaoqianzhangshu', title: '标签张数', width: 100 }
|
, { field: 'HBatchNo', title: '批号', width: 100, edit: 'text' }
|
, { field: 'HBatchManager', title: '启用批号', width: 100, hide: true }
|
, { field: 'HISKFPERIOD', title: '是否启用保质期', width: 100, edit: 'text', hide: true }
|
, { field: 'HEXPUNIT', title: '保质期单位', width: 100, edit: 'text', hide: true }
|
, { field: 'HSourceBillType', title: '条码类型', width: 100, templet: '#barCodeTypeTpl' }
|
, { field: 'HKFDate', title: '生产日期', align: 'center', width: 150, data_field: 'HKFDate', event: "chooseHKFDate" }//, event: "chooseHKFDate"
|
, { field: 'HKFPeriod', title: '保质期', width: 100,event:"inputHKFPeriod" }//
|
, { field: 'HKFDQDate', title: '到期日期', align: 'center', width: 150, data_field: 'HKFDQDate' }//, event: "chooseHKFDQDate"
|
, { field: 'HSupID', title: '供应商ID', width: 150, hide: true }
|
, { field: 'HSupName', title: '供应商名称', width: 150, hide: true }
|
]]
|
}
|
table.render(option);
|
//#region 下拉框绑定
|
// 监听条码类型下拉框选择事件
|
form.on('select(barCodeTypeSelect)', function (data) {
|
var elem = $(data.elem);
|
var tr = elem.closest('tr');
|
var index = tr.data('index');
|
|
// 更新表格缓存中的数据
|
var tableCache = table.cache['mainTable'];
|
if (tableCache[index]) {
|
tableCache[index].HSourceBillType = data.value;
|
}
|
});
|
//#endregion
|
|
//#region 初次赋值
|
//进入页面查询表体物料信息
|
if (mergeTags != 1) {
|
layer.load(3)
|
table.render({
|
elem: '#mainTable'
|
, url: GetWEBURL() + subUrl
|
, toolbar: '#toolbarDemo' //开启头部工具栏,并为其绑定左侧模板
|
, defaultToolbar: ['filter', 'exports']
|
, where: { sMsg: linterid, sMsg2: lentryid }
|
, cols: [[
|
{ type: 'checkbox', fixed: 'left' }
|
, { field: 'HMaterID', title: '物料ID', width: 100, hide: true }
|
, { field: 'HMaterNumber', title: '物料编码', width: 120 }
|
, { field: 'HOldMaterNumber', title: '旧物料编码', width: 120, hide: true }
|
, { field: 'HMaterShortNumber', title: '物料代码', width: 120, hide: true }
|
, { field: 'HSubjoin', title: '物料代码', width: 120, hide: true }
|
, { field: 'HMaterName', title: '物料名称', width: 120 }
|
, { field: 'HMaterModel', title: '规格型号', width: 120 }
|
, { field: 'HQty', title: '本次生成条码数量', width: 135, edit: 'text', event: "inputHQty" }
|
, { field: 'HMinQty', title: '标准包装数(内箱装箱数)', width: 100, edit: 'text', event: "inputHMinQty" }
|
, { field: 'HBQty', title: '最小包装数(内箱数)', width: 100 }
|
, { field: 'biaoqianzhangshu', title: '标签张数', width: 100 }
|
, { field: 'HBatchNo', title: '批号', width: 100, edit: 'text' }
|
, { field: 'HBatchManager', title: '启用批号', width: 100, hide: true }
|
, { field: 'HISKFPERIOD', title: '是否启用保质期', width: 100, edit: 'text', hide: true }
|
, { field: 'HEXPUNIT', title: '保质期单位', width: 100, edit: 'text', hide: true }
|
, { field: 'HSourceBillType', title: '条码类型', width: 100 }
|
, { field: 'HKFDate', title: '生产日期', align: 'center', width: 150, data_field: 'HKFDate', event: "chooseHKFDate" }//, event: "chooseHKFDate"
|
, { field: 'HKFPeriod', title: '保质期', width: 100 }//
|
, { field: 'HKFDQDate', title: '到期日期', align: 'center', width: 150, data_field: 'HKFDQDate' }//, event: "chooseHKFDQDate"
|
, { field: 'HSupID', title: '供应商ID', width: 150, hide: true }
|
, { field: 'HSupName', title: '供应商名称', width: 150, hide: true }
|
|
]]
|
, done: function (res, curr, count) {
|
layer.closeAll("loading");
|
}
|
});
|
}
|
else {
|
//合并数量生成条码
|
layer.load(3);
|
FetchSupInfo();
|
$("#HDate").val(Format(new Date(), "yyyy-MM-dd"));
|
$.ajax({
|
type: "GET",
|
url: GetWEBURL() + "/GetSRMHBarCodeShowBillMain",
|
async: true,
|
data: { HInterID: lentryid },
|
dataType: "json",
|
success: function (data) {
|
if (data.count != 0) {
|
var data = data.data;
|
var rowdata = [];
|
|
for (var i = 0; i < data.length; i++) {
|
rowdata.push({
|
"HMaterID": data[i].HItemID,
|
"HMaterNumber": data[i].物料代码,
|
/* "HOldMaterNumber": "",*/
|
"HMaterShortNumber": "",
|
/*"HSubjoin": "",*/
|
"HMaterName": data[i].物料名称,
|
"HMaterModel": data[i].规格型号,
|
"HMinQty": data[i].标准包装数,
|
"HBQty": data[i].最小包装数,
|
"HSourceBillType": data[i].条码类型,
|
"HBatchNo": data[i].批号,
|
"HISKFPERIOD": data[i].是否启用保质期 == null ? 0 : data[i].是否启用保质期,
|
"HKFPeriod": data[i].保质期 == null ? 0 : data[i].保质期,
|
"HKFDQDate": data[i].有效期,
|
"HKFDate": data[i].生产日期,
|
"HBatchManager": data[i].是否启用批号,
|
"HSupID": data[i].HSupID,
|
"HSupName": data[i].供应商名称,
|
"HEXPUNIT": data[i].保质期单位,
|
"HQty": 1, // 默认生成条码数量
|
"biaoqianzhangshu": 1 // 标签张数
|
});
|
}
|
|
option.data = rowdata;
|
|
table.render(option);
|
|
}
|
else {
|
// $("#verifycode").click();
|
f_alert(data.Message);
|
}
|
layer.closeAll("loading");
|
},
|
error: function (err) {
|
f_alert("错误:" + err);
|
layer.closeAll("loading");
|
}
|
});
|
}
|
//#endregion
|
form.on('submit(Exit)', function (data) {//退出
|
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
|
parent.layer.close(index); //再执行关闭
|
});
|
//#region 监听事件
|
//监听行工具事件
|
table.on('tool(mainTable)', function (obj) {
|
var data = obj.data;
|
if (obj.event === 'chooseHKFDate') {
|
var field = $(this).data('field');
|
var HExpUnit = data.HEXPUNIT; //保质期单位
|
var HKFPeriod = data.HKFPeriod; //保质期
|
if (HExpUnit != 'Y' && HExpUnit != 'M' && HExpUnit != 'D') {
|
layer.msg("此物料没有启用保质期!");
|
obj.update({
|
HKFDate: '',
|
});
|
return;
|
}
|
laydate.render({
|
elem: this.firstChild
|
, show: true //直接显示
|
, closeStop: this
|
, done: function (value, date) {
|
data[field] = value;
|
obj.update(data);
|
if (parseInt(obj.data.HKFPeriod) >= 0) {
|
var sKFDQDate = addDate(value, parseInt(obj.data.HKFPeriod), HExpUnit, HKFPeriod);
|
obj.update({
|
HKFDQDate: sKFDQDate,
|
});
|
}
|
}
|
});
|
}
|
else if (obj.event == 'chooseHKFDQDate') {
|
var field = $(this).data('field');
|
laydate.render({
|
elem: this.firstChild
|
, show: true //直接显示
|
, closeStop: this
|
, done: function (value, date) {
|
data[field] = value;
|
obj.update(data);
|
if (obj.data.HKFDQDate != "" && obj.data.HKFDate != "") {
|
var days = DateDiff(obj.data.HKFDQDate, obj.data.HKFDate);
|
obj.update({
|
HKFPeriod: days,
|
});
|
}
|
}
|
});
|
}
|
else if (obj.event == 'chooseHBeginDate') {
|
var field = $(this).data('field');
|
laydate.render({
|
elem: this.firstChild
|
, show: true //直接显示
|
, closeStop: this
|
, done: function (value, date) {
|
data[field] = value;
|
obj.update(data);
|
|
}
|
});
|
}
|
else if (obj.event == 'chooseHEndDate') {
|
var field = $(this).data('field');
|
laydate.render({
|
elem: this.firstChild
|
, show: true //直接显示
|
, closeStop: this
|
, done: function (value, date) {
|
data[field] = value;
|
obj.update(data);
|
|
}
|
});
|
}
|
else if (obj.event == 'inputHKFPeriod') {
|
$(obj.tr).find(".layui-table-edit").keyup(function () {
|
var $input = $(this), val = $input.val();
|
if (!val) val = "1";
|
$input.val(val.replace(/[^\d*\.?\d*]/g, ''));
|
});
|
}
|
else if (obj.event == 'inputHQty') {
|
|
$(obj.tr).find(".layui-table-edit").keyup(function () {
|
var $input = $(this), val = $input.val();
|
if (!val) val = "0";
|
$input.val(val.replace(/[^\d*\.?\d*]/g, ''));
|
});
|
|
|
}
|
else if (obj.event == 'inputHMinQty') {
|
var $input = $(this), val = $input.val();
|
|
$(obj.tr).find(".layui-table-edit").keyup(function () {
|
var $input = $(this), val = $input.val();
|
if (!val) val = "0";
|
$input.val(val.replace(/[^\d*\.?\d*]/g, ''));
|
});
|
}
|
//外箱包装数事件,本页面暂时用不到
|
//else if (obj.event == 'inputHWXQty') {
|
|
// $(obj.tr).find(".layui-table-edit").keyup(function () {
|
// var $input = $(this), val = $input.val();
|
// if (!val) val = "0";
|
// $input.val(val.replace(/[^\d*\.?\d*]/g, ''));
|
// });
|
//}
|
});
|
|
|
|
table.on('edit(mainTable)', function (obj) { //注:edit是固定事件名,test是table原始容器的属性 lay-filter="对应的值"
|
var value = obj.value //得到修改后的值
|
, data = obj.data //得到所在行所有键值
|
, field = obj.field; //得到字段
|
|
var HMinQty = 0;
|
var HWXQty = 0;
|
var HKFPeriod = 0;
|
var HWBQty = 0;
|
var HBQty = 0;
|
var biaoqianzhangshu = 0;
|
if (obj.data.HMinQty != undefined) {
|
HMinQty = parseFloat(obj.data.HMinQty);
|
}
|
if (obj.data.biaoqianzhangshu != undefined) {
|
biaoqianzhangshu = parseFloat(obj.data.biaoqianzhangshu);
|
}
|
if (obj.data.HWXQty != undefined) {
|
HWXQty = parseFloat(obj.data.HWXQty);
|
}
|
if (obj.data.HKFPeriod != undefined) {
|
HKFPeriod = parseFloat(obj.data.HKFPeriod);
|
}
|
if (obj.data.HWBQty != undefined) {
|
HWBQty = parseFloat(obj.data.HWBQty);
|
}
|
if (obj.data.HBQty != undefined) {
|
HBQty = parseFloat(obj.data.HBQty);
|
}
|
if (obj.data.HQty != undefined) {
|
HBQty = parseFloat(obj.data.HBQty);
|
}
|
//HMinQty 内箱包装数(标准包装数)
|
//HBQty 内箱数(最小包装数)
|
//HWXQty 外箱包装数
|
//HWBQty 外箱数 HWBQty
|
//biaoqianzhangshu 标签shu
|
//HQty 本次生成条码数
|
switch (field) {
|
case "HQty":
|
if (HMinQty == 0)
|
f_alert("注意:包装数为0!");
|
else {
|
obj.update({
|
biaoqianzhangshu: Math.ceil(parseFloat(obj.data.HQty) / parseFloat(obj.data.HMinQty)),
|
});
|
}
|
|
break;
|
case "HMinQty": //包装数
|
if (HMinQty < 0) {
|
f_alert("包装数不能为负数!");
|
}
|
if (HMinQty < HBQty) {
|
f_alert("标准包装数量不能小于最小包装数量!请重新输入!")
|
return;
|
}
|
else {
|
obj.update({
|
biaoqianzhangshu: Math.ceil(parseFloat(obj.data.HQty) / parseFloat(obj.value)),
|
});
|
|
}
|
break;
|
}
|
|
|
});
|
//#endregion
|
|
//#region 保存
|
form.on('submit(HBarcodeSaverBox)', function (data) {//保存
|
var a = 0;
|
var newArray = [];
|
var index = -1;
|
//debugger;
|
|
for (var i = 0; i < table.cache["mainTable"].length; i++) {
|
if (table.cache["mainTable"][i].HMaterName.indexOf("\"") != -1 || table.cache["mainTable"][i].HMaterName.indexOf(";") != -1) {
|
table.cache["mainTable"][i].HMaterName = table.cache["mainTable"][i].HMaterName.replaceALL("\"", "”").replaceALL(";", ";")
|
}
|
if (table.cache["mainTable"][i].HMaterModel.indexOf("\"") != -1 || table.cache["mainTable"][i].HMaterModel.indexOf(";") != -1) {
|
table.cache["mainTable"][i].HMaterModel = table.cache["mainTable"][i].HMaterModel.replaceALL("\"", "”").replaceALL(";", ";")
|
}
|
}
|
|
var sMainStr = JSON.stringify(data.field);
|
var sSubStr = JSON.stringify(table.cache['mainTable']);
|
var sMainSub = sMainStr + ';' + sSubStr;
|
var _sSubStr = JSON.parse(sSubStr);
|
for (var i = 0; i < _sSubStr.length; i++) {
|
if (_sSubStr[i].HQty > 0 && (_sSubStr[i].HMinQty == 0 || _sSubStr[i].HWXQty == 0)) {
|
layer.msg("明细记录第" + (i + 1) + "行,包装数量不能为0!", { icon: 5, btn: ['确认'], time: 2000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
|
return Result = false;
|
}
|
//if (_sSubStr[i].HQty > _sSubStr[i].HNotBarcodeCount) {
|
// console.log("本次:" + _sSubStr[i].HQty);
|
// console.log("剩余:" + _sSubStr[i].HNotBarcodeCount);
|
// layer.msg("明细记录第" + (i + 1) + "行,本次生成条码数量不能超出未生成条码数量!", { icon: 5, btn: ['确认'], time: 2000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
|
// return Result = false;
|
//}
|
if (_sSubStr[i].HQty > 0 && _sSubStr[i].HISKFPERIOD == 1 && (/*_sSubStr[i].HBatchNo == "" ||*/ _sSubStr[i].HKFDate == "")) {
|
layer.msg("明细记录第" + (i + 1) + "行,生产日期不能为空!", { icon: 5, btn: ['确认'], time: 2000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
|
return Result = false;
|
}
|
if ((_sSubStr[i].HBatchManager == "是" && _sSubStr[i].HBatchNo == "") || (_sSubStr[i].HBatchManager == true && _sSubStr[i].HBatchNo == "")) {
|
layer.msg("明细记录第" + (i + 1) + "行,物料启用批次管理,批次为空,请填写批次信息!", { icon: 5, btn: ['确认'], time: 2000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
|
return Result = false;
|
}
|
////获取下标
|
//index = findIndex(_sSubStr[i].HMaterNumber, _sSubStr[i].HMaterModel, newArray);
|
//if (index === -1 || _sSubStr[i].HIsSplit == 0) {
|
// //如果数组中没有当前数据,则将数据添加进数组中
|
// newArray.push(_sSubStr[i]);
|
|
//} else {
|
// if (newArray[index].HPOOrderBillNo == _sSubStr[i].HPOOrderBillNo) {
|
// //如果数组中有和当前数据中物料代码、规格型号一致的信息,则将他们的数量累加
|
// newArray[index].HQty = Number(newArray[index].HQty) + Number(_sSubStr[i].HQty);
|
// }
|
//}
|
}
|
|
for (let i = 0; i < newArray.length; i++) {
|
//if (newArray[i].HQty > newArray[i].HNotBarcodeCount) {
|
if (newArray[i].HQty ) {
|
//layer.msg("编码:" + newArray[i].HMaterNumber + " 规格型号:" + newArray[i].HMaterModel + "<br>" + " 本次生成条码总数量超出剩余可生成条码数!" + "<br>" + " 本次生成总数量:" + newArray[i].HQty + " 可生成条码数量:" + newArray[i].HNotBarcodeCount, { icon: 5, btn: ['确认'], time: 10000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
|
layer.msg("编码:" + newArray[i].HMaterNumber + " 规格型号:" + newArray[i].HMaterModel + "<br>" + " 本次生成条码总数量超出剩余可生成条码数!" + "<br>" + " 本次生成总数量:" + newArray[i].HQty , { icon: 5, btn: ['确认'], time: 10000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
|
return Result = false;
|
}
|
}
|
layer.load(3)
|
$.ajax(
|
{
|
type: "POST",
|
url: GetWEBURL() + "/SRM_MaterialBarCodeBillController/GetBarcodeSaveBillBoxBycg", //方法所在页面和方法名
|
async: true,
|
data: { "msg": sMainSub },
|
dataType: "json",
|
success: function (data) {
|
if (data.count == 1) { // 说明验证成功了,
|
layer.msg(data.Message, { icon: 1 });
|
element.tabDelete('tabDemo', '2'); //删除
|
element.tabDelete('tabDemo', '3'); //删除
|
|
$('#HBarcodeSaverBox').addClass("layui-btn-disabled").attr("disabled", true);//生成条码按钮禁用
|
|
element.tabAdd('tabDemo', {
|
title: '成功条码'
|
, content: '<table class="layui-hide" id="subTable" lay-filter="subTable"></table>' //支持传入(html代码)不持支直接传入html页面
|
, id: '2' //选项卡标题的lay-id属性值
|
});
|
var option_Success;
|
option_Success = {
|
elem: '#subTable'
|
// , url: GetWEBURL() + 'showHBarCodeBillDetail' //h_v_Web_BarCodeBill_ForWeb1
|
, toolbar: '#toolbarDemo1'
|
, defaultToolbar: ['filter', 'exports']
|
, limit: 500
|
, cols: [[
|
{ field: 'HBarCode', title: '条码', width: 230, ellipsis: true }
|
, { field: 'HMaterID', title: '物料ID', width: 100, hide: true }
|
, { field: 'HBarItemID', title: '条码ID', width: 100, hide: true }
|
, { field: 'HMaterNumber', title: '物料编码', width: 120 }
|
/* , { field: 'HOldMaterNumber', title: '旧物料编码', width: 120, hide: true }*/
|
, { field: 'HMaterShortNumber', title: '物料代码', width: 120, hide: true }
|
/* , { field: 'HSubjoin', title: '物料代码', width: 120, hide: true }*/
|
, { field: 'HMaterName', title: '物料名称', width: 120 }
|
, { field: 'HMaterModel', title: '规格型号', width: 120 }
|
, { field: 'HQty', title: '本次生成条码数量', width: 135 }
|
, { field: 'HMinQty', title: '标准包装数(内箱装箱数)', width: 100 }
|
, { field: 'HBQty', title: '最小包装数(内箱数)', width: 100 }
|
, { field: 'biaoqianzhangshu', title: '标签张数', width: 100 }
|
, { field: 'HBatchNo', title: '批号', width: 100 }
|
, { field: 'HBatchManager', title: '启用批号', width: 100, hide: true }
|
, { field: 'HISKFPERIOD', title: '是否启用保质期', width: 100, hide: true }
|
, { field: 'HEXPUNIT', title: '保质期单位', width: 100, hide: true }
|
, { field: 'HSourceBillType', title: '条码类型', width: 100 }
|
, { field: 'HKFDate', title: '生产日期', align: 'center', width: 150 }//, event: "chooseHKFDate"
|
, { field: 'HKFPeriod', title: '保质期', width: 100 }//
|
, { field: 'HKFDQDate', title: '到期日期', align: 'center', width: 150 }//, event: "chooseHKFDQDate"
|
, { field: 'HSupID', title: '供应商ID', width: 150, hide: true }
|
, { field: 'HSupName', title: '供应商名称', width: 150, hide: true }
|
|
]]
|
}
|
//#region ADD
|
var barcodes = data.data;
|
|
// 将条码列表转换为逗号分隔的字符串
|
//var barcodeStr = barcodes.join('~');
|
$.ajax({
|
type: "GET",
|
url: GetWEBURL() + "/GetBarcodeDetails",
|
data: { barcodes: barcodes },
|
dataType: "json",
|
success: function (data_1) {
|
if (data_1.count != 0) {
|
var data = data_1.data;
|
var rowdata_1 = [];
|
|
for (var i = 0; i < data.length; i++) {
|
|
rowdata_1.push({
|
"HMaterID": data[i].HItemID,
|
"HBarItemID": data[i].HBarItemID,
|
"HBarCode": data[i].HBarCode,
|
"HMaterNumber": data[i].物料代码,
|
"HMaterShortNumber": "",
|
"HMaterName": data[i].物料名称,
|
"HMaterModel": data[i].规格型号,
|
"HMinQty": data[i].标准包装数,
|
"HBQty": data[i].最小包装数,
|
"HSourceBillType": data[i].条码类型,
|
"HBatchNo": data[i].批号,
|
"HISKFPERIOD": data[i].是否启用保质期 == null ? 0 : data[i].是否启用保质期,
|
"HKFPeriod": data[i].保质期 == null ? 0 : data[i].保质期,
|
"HKFDQDate": data[i].有效期,
|
"HKFDate": data[i].生产日期,
|
"HBatchManager": data[i].是否启用批号,
|
"HSupID": data[i].HSupID,
|
"HSupName": data[i].供应商名称,
|
"HEXPUNIT": data[i].保质期单位,
|
"HQty":data[i].生成条码数量 , // 本次生成条码数量
|
"biaoqianzhangshu": 1
|
});
|
|
|
|
}
|
|
// 更新表格数据
|
option_Success.data = rowdata_1;
|
table.render(option_Success);
|
}
|
}
|
});
|
//#endregion
|
|
// #region 成功条码展示
|
//$.ajax({
|
// type: "GET",
|
// url: GetWEBURL() + "/showHBarCodeBillDetail",
|
// async: true,
|
// data: { sMsg: lentryid, user: sessionStorage["Organization"] },
|
// dataType: "json",
|
// success: function (data_1) {
|
// if (data_1.count != 0) {
|
// var data = data_1.data;
|
// var rowdata_1 = [];
|
// var IDdif = data[0].HItemID;
|
// for (var i = 0,k=1; i < data.length; i++,k++) {
|
// var totalQty = data[i].生成条码数量; // 总条码数
|
// var standardQty = data[i].标准包装数; // 标准包装数
|
// var labelCount = Math.ceil(totalQty / standardQty); // 计算标签数
|
// var lastQty_sign = (totalQty % standardQty == 0) ? 0 : 1;//判断是否有余数
|
|
// if (k == labelCount && lastQty_sign==1) {
|
// rowdata_1.push({
|
// "HMaterID": data[i].HItemID,
|
// "HBarCode": data[i].HBarCode,
|
// "HMaterNumber": data[i].物料代码,
|
// "HMaterShortNumber": "",
|
// "HMaterName": data[i].物料名称,
|
// "HMaterModel": data[i].规格型号,
|
// "HMinQty": standardQty ,
|
// "HBQty": data[i].最小包装数,
|
// "HSourceBillType": data[i].条码类型,
|
// "HBatchNo": data[i].批号,
|
// "HISKFPERIOD": data[i].是否启用保质期 == null ? 0 : data[i].是否启用保质期,
|
// "HKFPeriod": data[i].保质期 == null ? 0 : data[i].保质期,
|
// "HKFDQDate": data[i].有效期,
|
// "HKFDate": data[i].生产日期,
|
// "HBatchManager": data[i].是否启用批号,
|
// "HSupID": data[i].供应商代码,
|
// "HSupName": data[i].供应商名称,
|
// "HEXPUNIT": data[i].保质期单位,
|
// "HQty": (totalQty % standardQty), // 本次生成条码数量
|
// "biaoqianzhangshu": 1
|
// });
|
// k = 1;
|
// }
|
// else {
|
// rowdata_1.push({
|
// "HMaterID": data[i].HItemID,
|
// "HBarCode": data[i].HBarCode,
|
// "HMaterNumber": data[i].物料代码,
|
// "HMaterShortNumber": "",
|
// "HMaterName": data[i].物料名称,
|
// "HMaterModel": data[i].规格型号,
|
// "HMinQty": standardQty,
|
// "HBQty": data[i].最小包装数,
|
// "HSourceBillType": data[i].条码类型,
|
// "HBatchNo": data[i].批号,
|
// "HISKFPERIOD": data[i].是否启用保质期 == null ? 0 : data[i].是否启用保质期,
|
// "HKFPeriod": data[i].保质期 == null ? 0 : data[i].保质期,
|
// "HKFDQDate": data[i].有效期,
|
// "HKFDate": data[i].生产日期,
|
// "HBatchManager": data[i].是否启用批号,
|
// "HSupID": data[i].供应商代码,
|
// "HSupName": data[i].供应商名称,
|
// "HEXPUNIT": data[i].保质期单位,
|
// "HQty": standardQty, // 本次生成条码数量
|
// "biaoqianzhangshu": 1
|
// });
|
// }
|
|
|
|
// }
|
|
// option_Success.data = rowdata_1;
|
// table.render(option_Success);
|
|
// }
|
// else {
|
// // $("#verifycode").click();
|
// f_alert(data.Message);
|
// }
|
// layer.closeAll("loading");
|
// },
|
// error: function (err) {
|
// f_alert("错误:" + err);
|
// layer.closeAll("loading");
|
// }
|
//});
|
// #endregion
|
}
|
|
layer.closeAll("loading");
|
},
|
error: function (err) {
|
f_alert("错误:" + err);
|
}
|
});
|
return false;
|
});
|
//#endregion
|
|
//#region 打印
|
//内箱打印
|
form.on('submit(Print)', function (data) {
|
var data2 = layui.table.cache["subTable"];//内箱条码
|
|
var rows = '';
|
var rows2 = '';
|
if (data2 == undefined) {
|
layer.msg("请先生成条码!")
|
return;
|
}
|
for (var j = 0; j < data2.length; j++) {
|
rows += data2[j].HBarItemID.toString() + ',';
|
rows2 += data2[j].HBarCode.toString() + ',';
|
}
|
rows = rows.substring(rows.length - 1, 0);
|
rows2 = rows2.substring(rows2.length - 1, 0);
|
if (rows == "") {
|
layer.msg("没有需要打印的数据!")
|
return;
|
}
|
else {
|
var url = "linteridSession";
|
$.ajax({
|
type: "POST",
|
url: GetWEBURL() + url, //方法所在页面和方法名
|
async: true,
|
data: { "linterid": rows.toString(), "HUserName": sessionStorage["HUserName"] },
|
dataType: "json",
|
success: function (data) {
|
layer.closeAll("loading");
|
},
|
error: function (err) {
|
layer.alert("错误:" + err, { icon: 5 });
|
}
|
});
|
sessionStorage["linterid"] = rows.toString();
|
layer.open({
|
type: 2
|
, area: ['50%', '50%']
|
, title: '打印模版选择'
|
, shade: 0.6 //遮罩透明度
|
, maxmin: false //允许全屏最小化
|
, anim: 0 //0-6的动画形式,-1不开启
|
, content: ['../../views/BaseSet/SRM_OpenTmpList.html?linterid=' + sessionStorage["linterid"] + '&HBarcode=&Type=SRM_POOrderBillList', 'yes']
|
, resize: false
|
//, cancel: function () {
|
// $(".layui-btn").removeClass("layui-btn-disabled");
|
//}
|
})
|
}
|
});
|
//#endregion
|
|
//获取供应商ID
|
function FetchSupInfo() {
|
var sWhere = "";
|
//var sWhere = " and 供应商名称 ='" + sessionStorage["HUserName"] + "'";
|
$.ajax({
|
url: GetWEBURL() + "/Gy_Supplier/list",
|
type: "GET",
|
data: { "sWhere": sWhere, "user": '', "Organization": sessionStorage["Organization"] },
|
success: function (result) {
|
if (result.data.length > 0) {
|
$("#HSupID").val(result.data[0].HItemID);
|
$("#HSupNumber").val(result.data[0].供应商代码);
|
$("#HSupName").val(result.data[0].供应商名称);
|
} else {
|
layer.msg("供应商信息未维护", { time: 5000 });
|
}
|
|
}
|
});
|
}
|
});
|
</script>
|
</body>
|
</html>
|