| | |
| | | <div class="layui-form-item"> |
| | | <div class="layui-row"> |
| | | <div class="layui-col-xs3"> |
| | | <label class="layui-form-label"> 供 应 商:</label> |
| | | <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"> |
| | | <input class="layui-input" name="HSupNumber" lay-verify="HSupNumber" id="HSupNumber" readonly="readonly" autocomplete="off"> |
| | | <input id="HSupID" name="HSupID" type="hidden" /> |
| | | </div> |
| | | </div> |
| | |
| | | <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"> |
| | | <input id="HSupName" name="HSupName" type="hidden" /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | |
| | | <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"> |
| | | <!--<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> |
| | | </div>--> |
| | | </script> |
| | | <!-- 条码类型下拉框模板 --> |
| | | <script type="text/html" id="barCodeTypeTpl"> |
| | |
| | | , element = layui.element; //Tab的切换功能,切换事件监听等,需要依赖element模块 |
| | | |
| | | var option; |
| | | //FetchSupInfo(); |
| | | option = { |
| | | elem: '#mainTable' |
| | | , toolbar: '#toolbarDemo' |
| | |
| | | , cols: [[ |
| | | { type: 'checkbox', fixed: 'left' } |
| | | , { field: 'HMaterID', title: '物料ID', width: 100, hide: true } |
| | | , { field: 'HItemID', title: 'ID', width: 100, hide: true } |
| | | , { field: 'HMaterNumber', title: '物料编码', width: 120 } |
| | | /* , { field: 'HOldMaterNumber', title: '旧物料编码', width: 120, hide: true }*/ |
| | | /* , { field: 'HOldMaterNumber', title: '旧物料编码', width: 120, hide: true }*/ |
| | | , { field: 'HMaterShortNumber', title: '物料代码', width: 120, hide: true } |
| | | /* , { field: 'HSubjoin', title: '物料代码', width: 120, hide: true }*/ |
| | | , { field: 'HSubjoin', title: '物料简称', width: 120, } |
| | | , { field: 'HMaterName', title: '物料名称', width: 120 } |
| | | , { field: 'HMaterModel', title: '规格型号', width: 120 } |
| | | , { field: 'HStatusMan', title: '工号', width: 120, edit: 'text' } |
| | | , { field: 'HQty', title: '本次生成条码数量', width: 135, edit: 'text', event: "inputHQty" } |
| | | , { field: 'HMinQty', title: '标准包装数(内箱装箱数)', width: 100, edit: 'text', event: "inputHMinQty" } |
| | | , { field: 'HMinQty', title: '标准包装数(内箱装箱数)', width: 100, event: "inputHMinQty" } |
| | | , { field: 'HBQty', title: '最小包装数(内箱数)', width: 100 } |
| | | , { field: 'biaoqianzhangshu', title: '标签张数', width: 100 } |
| | | , { field: 'HBatchNo', title: '批号', width: 100, edit: 'text' } |
| | | , { field: 'HBatchNo', title: '批号', width: 100, edit: 'text', hide: true } |
| | | , { 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: 'HSourceBillType', title: '条码类型', width: 100, templet: '#barCodeTypeTpl', hide: true } |
| | | , { field: 'HKFDate', title: '生产日期', align: 'center', width: 150, data_field: 'HKFDate', event: "chooseHKFDate", hide: true }//, event: "chooseHKFDate" |
| | | , { field: 'HBarCodeDate', title: '条码日期', align: 'center', width: 150, data_field: 'HBarCodeDate', event: "chooseHBarCodeDate" } |
| | | , { field: 'HKFPeriod', title: '保质期', width: 100, event: "inputHKFPeriod", hide: true }// |
| | | , { field: 'HKFDQDate', title: '到期日期', align: 'center', width: 150, data_field: 'HKFDQDate', hide: true }//, event: "chooseHKFDQDate" |
| | | , { field: 'HSupID', title: '供应商ID', width: 150, hide: true } |
| | | , { field: 'HSupName', title: '供应商名称', width: 150, hide: true } |
| | | ]] |
| | |
| | | , { field: 'HSubjoin', title: '物料代码', width: 120, hide: true } |
| | | , { field: 'HMaterName', title: '物料名称', width: 120 } |
| | | , { field: 'HMaterModel', title: '规格型号', width: 120 } |
| | | , { field: 'HStatusMan', title: '工号', width: 120, edit: 'text'} |
| | | , { field: 'HQty', title: '本次生成条码数量', width: 135, edit: 'text', event: "inputHQty" } |
| | | , { field: 'HMinQty', title: '标准包装数(内箱装箱数)', width: 100, edit: 'text', event: "inputHMinQty" } |
| | | , { field: 'HMinQty', title: '标准包装数(内箱装箱数)', width: 100, event: "inputHMinQty" } |
| | | , { field: 'HBQty', title: '最小包装数(内箱数)', width: 100 } |
| | | , { field: 'biaoqianzhangshu', title: '标签张数', width: 100 } |
| | | , { field: 'HBatchNo', title: '批号', width: 100, edit: 'text' } |
| | | , { field: 'HBatchNo', title: '批号', width: 100, edit: 'text', hide: true } |
| | | , { 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: 'HBarCodeDate', title: '条码日期', align: 'center', width: 150, data_field: 'HBarCodeDate', event: "chooseHBarCodeDate" } |
| | | , { field: 'HSourceBillType', title: '条码类型', width: 100, hide: true } |
| | | , { field: 'HKFDate', title: '生产日期', align: 'center', width: 150, data_field: 'HKFDate', event: "chooseHKFDate", hide: true }//, event: "chooseHKFDate" |
| | | , { field: 'HKFPeriod', title: '保质期', width: 100, hide: true }// |
| | | , { field: 'HKFDQDate', title: '到期日期', align: 'center', width: 150, data_field: 'HKFDQDate', hide: true}//, event: "chooseHKFDQDate" |
| | | , { field: 'HSupID', title: '供应商ID', width: 150, hide: true } |
| | | , { field: 'HSupName', title: '供应商名称', width: 150, hide: true } |
| | | |
| | |
| | | else { |
| | | //合并数量生成条码 |
| | | layer.load(3); |
| | | FetchSupInfo(); |
| | | $("#HDate").val(Format(new Date(), "yyyy-MM-dd")); |
| | | $.ajax({ |
| | | type: "GET", |
| | |
| | | var data = data.data; |
| | | var rowdata = []; |
| | | |
| | | $("#HSupID").val(data[0].HSupID); |
| | | $("#HSupNumber").val(data[0].供应商代码); |
| | | $("#HSupName").val(data[0].供应商名称); |
| | | |
| | | for (var i = 0; i < data.length; i++) { |
| | | rowdata.push({ |
| | | "HMaterID": data[i].HItemID, |
| | | "HMaterID": data[i].MaterID, |
| | | "HItemID": data[i].HItemID, |
| | | "HMaterNumber": data[i].物料代码, |
| | | /* "HOldMaterNumber": "",*/ |
| | | "HMaterShortNumber": "", |
| | | /*"HSubjoin": "",*/ |
| | | "HSubjoin": data[i].物料简称, |
| | | "HMaterName": data[i].物料名称, |
| | | "HMaterModel": data[i].规格型号, |
| | | "HMinQty": data[i].标准包装数, |
| | |
| | | "HKFDQDate": data[i].有效期, |
| | | "HKFDate": data[i].生产日期, |
| | | "HBatchManager": data[i].是否启用批号, |
| | | "HSupID": data[i].供应商代码, |
| | | "HSupID": data[i].HSupID, |
| | | "HSupName": data[i].供应商名称, |
| | | "HEXPUNIT": data[i].保质期单位, |
| | | "HQty": 1, // 默认生成条码数量 |
| | | "HQty": 0, // 默认生成条码数量 |
| | | "HBarCodeDate": data[i].条码日期, |
| | | "biaoqianzhangshu": 1 // 标签张数 |
| | | }); |
| | | } |
| | |
| | | } |
| | | }); |
| | | } |
| | | else if (obj.event == 'chooseHBarCodeDate') { |
| | | 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(); |
| | |
| | | |
| | | } |
| | | else if (obj.event == 'inputHMinQty') { |
| | | var oldHMinQty = data.HMinQty; |
| | | var $input = $(this), val = $input.val(); |
| | | |
| | | $(obj.tr).find(".layui-table-edit").keyup(function () { |
| | | var $input = $(this), val = $input.val(); |
| | |
| | | } |
| | | if (HMinQty < HBQty) { |
| | | f_alert("标准包装数量不能小于最小包装数量!请重新输入!") |
| | | obj.update({ |
| | | HBQty: Math.ceil(parseFloat(obj.data.HQty) / parseFloat(obj.value)), |
| | | }); |
| | | return; |
| | | } |
| | | else { |
| | | obj.update({ |
| | | biaoqianzhangshu: Math.ceil(parseFloat(obj.data.HQty) / parseFloat(obj.value)), |
| | | }); |
| | | |
| | | } |
| | | break; |
| | | } |
| | |
| | | |
| | | var sMainStr = JSON.stringify(data.field); |
| | | var sSubStr = JSON.stringify(table.cache['mainTable']); |
| | | var sMainSub = sMainStr + ';' + sSubStr; |
| | | var sMainSub = sMainStr + ';' + sSubStr + ';' + sessionStorage["HUserName"] + ';' + sessionStorage["OrganizationID"]; |
| | | 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) + "行,本次生成条码数量不能超出未生成条码数量!", { icon: 5, btn: ['确认'], time: 2000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" }); |
| | | // return Result = false; |
| | | //} |
| | | |
| | | if (_sSubStr[i].HQty == 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 > 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; |
| | |
| | | var option_Success; |
| | | option_Success = { |
| | | elem: '#subTable' |
| | | // , url: GetWEBURL() + 'showHBarCodeBillDetail' //h_v_Web_BarCodeBill_ForWeb1 |
| | | // , url: GetWEBURL() + 'showHBarCodeBillDetail' //h_v_Web_BarCodeBill_ForWeb1 |
| | | , toolbar: '#toolbarDemo1' |
| | | , defaultToolbar: ['filter', 'exports'] |
| | | , limit: 500 |
| | | , cols: [[ |
| | | , { field: 'HBarCode', title: '条码', width: 100 } |
| | | { field: 'HLSH', title: '流水号', align: 'center', width: 150, data_field: 'HBarCodeDate' } |
| | | , { 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: 'LSH', 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: 'HSubjoin', title: '物料简称', width: 120 } |
| | | , { field: 'HMaterName', title: '物料名称', width: 120, hide: true } |
| | | , { field: 'HMaterModel', title: '规格型号', width: 120 } |
| | | , { field: 'HStatusMan', 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: 'HBarCodeDate', title: '条码日期', align: 'center', width: 150, data_field: 'HBarCodeDate' } |
| | | , { field: 'HBatchNo', title: '批号', width: 100, hide: true } |
| | | , { 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: 'HSourceBillType', title: '条码类型', width: 100, hide: true } |
| | | , { field: 'HKFDate', title: '生产日期', align: 'center', width: 150, hide: true }//, event: "chooseHKFDate" |
| | | , { field: 'HKFPeriod', title: '保质期', width: 100, hide: true }// |
| | | , { field: 'HKFDQDate', title: '到期日期', align: 'center', width: 150, hide: true }//, 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() + "/showHBarCodeBillDetail", |
| | | async: true, |
| | | data: { sMsg: lentryid }, |
| | | url: GetWEBURL() + "/GetBarcodeDetails", |
| | | data: { barcodes: barcodes }, |
| | | dataType: "json", |
| | | success: function (data_1) { |
| | | if (data_1.count != 0) { |
| | |
| | | var rowdata_1 = []; |
| | | |
| | | for (var i = 0; i < data.length; i++) { |
| | | var totalQty = data[i].生成条码数量; // 总条码数 |
| | | var standardQty = data[i].标准包装数; // 标准包装数 |
| | | var labelCount = Math.ceil(totalQty / standardQty); // 计算标签数 |
| | | |
| | | // 生成前n-1个标准标签 |
| | | for (var j = 0; j < labelCount - 1; j++) { |
| | | 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 |
| | | }); |
| | | } |
| | | |
| | | // 生成最后一个标签(余数) |
| | | var lastQty = totalQty % standardQty; |
| | | if (lastQty === 0) lastQty = standardQty; // 如果整除,最后一个也是标准包装数 |
| | | |
| | | rowdata_1.push({ |
| | | "HMaterID": data[i].HItemID, |
| | | "HMaterID": data[i].HMaterID, |
| | | "HBarItemID": data[i].HBarItemID, |
| | | /* "LSH": data[i].HBarItemID,*/ |
| | | "HBarCode": data[i].HBarCode, |
| | | "HMaterNumber": data[i].物料代码, |
| | | "HMaterShortNumber": "", |
| | | "HSubjoin": data[i].物料简称, |
| | | "HMaterName": data[i].物料名称, |
| | | "HMaterModel": data[i].规格型号, |
| | | "HMinQty": standardQty, |
| | | "HMinQty": data[i].标准包装数, |
| | | "HBQty": data[i].最小包装数, |
| | | "HSourceBillType": data[i].条码类型, |
| | | "HBatchNo": data[i].批号, |
| | |
| | | "HKFDQDate": data[i].有效期, |
| | | "HKFDate": data[i].生产日期, |
| | | "HBatchManager": data[i].是否启用批号, |
| | | "HSupID": data[i].供应商代码, |
| | | "HSupID": data[i].HSupID, |
| | | "HSupName": data[i].供应商名称, |
| | | "HEXPUNIT": data[i].保质期单位, |
| | | "HQty": lastQty, // 最后一个标签的数量 |
| | | "biaoqianzhangshu": 1 |
| | | "HQty": data[i].生成条码数量, // 本次生成条码数量 |
| | | "biaoqianzhangshu": 1, |
| | | "HStatusMan": data[i].工号, |
| | | "HBarCodeDate": data[i].条码日期, |
| | | "HLSH": data[i].流水号, |
| | | }); |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | // 更新表格数据 |
| | | 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 |
| | | |
| | | |
| | | } else { |
| | | layer.msg(data.Message); |
| | | } |
| | | |
| | | |
| | | layer.closeAll("loading"); |
| | | }, |
| | | error: function (err) { |
| | |
| | | return; |
| | | } |
| | | for (var j = 0; j < data2.length; j++) { |
| | | rows += data2[j].HMaterID.toString() + ','; |
| | | rows += data2[j].HBarItemID.toString() + ','; |
| | | rows2 += data2[j].HBarCode.toString() + ','; |
| | | } |
| | | rows = rows.substring(rows.length - 1, 0); |
| | |
| | | //获取供应商ID |
| | | function FetchSupInfo() { |
| | | var sWhere = ""; |
| | | //var sWhere = " and 供应商名称 ='" + sessionStorage["HUserName"] + "'"; |
| | | 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].供应商名称); |
| | | $("#HSupID").val(result.data[0].供应商代码); |
| | | } else { |
| | | layer.msg("供应商信息未维护", { time: 5000 }); |
| | | } |