智云srmLayUi(安瑞和瑞琪)(通用版本)
1
yusijie
2023-06-29 691eef3c0184b0aba60b6d0d4189e25ce0cbda7d
WebSRM/layuiAdmin.std-v1.2.1/src/views/SRM/SRM_BarCodeBill.html
@@ -11,7 +11,7 @@
    <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">
@@ -97,7 +97,7 @@
                                        <div class="layui-btn-container">
                                            <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-normal">普通条码</button>-->
                                            <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-box">内外箱条码</button>-->
                                            <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-add"><i class="layui-icon layui-icon-addition"></i>拆分</button>
                                        </div>
                                    </script>
                                </div>
@@ -197,7 +197,7 @@
        //原生成条码方法(送货单默认)
        var mainUrl = "GetHBarCodeShowBillMain"; //表头数据加载ajax
        var subUrl = "GetHBarCodeShowBillSub";//表体数据加载ajax h_v_SRM_POInStockBillSub_ForWeb2
        var saveBarCode = "GetBarcodeSaveBillBox";//条码生成保存方法ajax GetBarcodeSaveBillBox
        var saveBarCode = "GetBarcodeSaveBillBox";//条码生成保存方法ajax GetBarcodeSaveBillBox  GetBarcodeSaveBillOnlyInnerBox
        var openTmpListType = "HBarCodePrint"; //条码打印按钮 弹出界面
        //采购订单条码生成规则
        if (type == 'SRM_POOrderBillList') {
@@ -220,8 +220,6 @@
            type: "GET",
            data: { "sMsg": linterid },
            success: function (d) {
                console.log(d.data);
                //$("#HDate").val(d.)
                $("#HInterID").val(d.data[0].HInterID);
                $("#HBillNo").val(d.data[0].HBillNo);
                $("#HRemark").val(d.data[0].HRemark);
@@ -257,8 +255,6 @@
                //debugger;
                var sMainStr = JSON.stringify(data.field);
                var sSubStr = JSON.stringify(table.cache['mainTable']);
                console.log(sMainStr)
                console.log(sSubStr)
                var sMainSub = sMainStr + ';' + sSubStr;
                layer.load(3)
                $.ajax(
@@ -327,8 +323,6 @@
                //debugger;
                var sMainStr = JSON.stringify(data.field);
                var sSubStr = JSON.stringify(table.cache['mainTable']);
                console.log(sMainStr)
                console.log(sSubStr)
                var sMainSub = sMainStr + ';' + sSubStr;
                layer.load(3)
                $.ajax(
@@ -392,12 +386,60 @@
                    });
                return false;
            });
            //生成内外箱码
            //生成内外箱码
            //获取当前数据所在数组的下标
            function findIndex(HMaterNumber, HMaterModel, array) {
                for (var i = 0; i < array.length; i++) {
                    if (array[i].HMaterNumber === HMaterNumber && array[i].HMaterModel === HMaterModel) {
                        return i;
                    }
                }
                return -1;
            }
            form.on('submit(HBarcodeSaverBox)', function (data) {//保存
                var a = 0;
                var newArray = [];
                var index = -1;
                //debugger;
                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].HBatchNo == "" || _sSubStr[i].HKFDate == "")) {
                        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) {
                        //如果数组中没有当前数据,则将数据添加进数组中
                        newArray.push(_sSubStr[i]);
                    } else {
                        //如果数组中有和当前数据中物料代码、规格型号一致的信息,则将他们的数量累加
                        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) {
                        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: "温馨提示" });
                        return Result = false;
                    }
                }
                layer.load(3)
                $.ajax(
                    {
@@ -411,7 +453,7 @@
                                layer.msg(data.Message, { icon: 1 });
                                element.tabDelete('tabDemo', '2'); //删除
                                element.tabDelete('tabDemo', '3'); //删除
                                element.tabAdd('tabDemo', {
                                    title: '外箱条码'
                                    , content: '<table class="layui-hide" id="subTable" lay-filter="subTable"></table>' //支持传入(html代码)不持支直接传入html页面
@@ -442,13 +484,11 @@
                                        , { field: 'HKFDQDate', title: '到期日期', width: 100 }
                                    ]]
                                    // , data: [linterid]
                                    //  , page: true
                                    , done: function () {
                                        layer.closeAll("loading");
                                    }
                                });
                                element.tabAdd('tabDemo', {
                                    title: '内箱条码'
                                    , content: '<table class="layui-hide" id="subTable2" lay-filter="subTable2"></table>' //支持传入(html代码)不持支直接传入html页面
@@ -499,7 +539,6 @@
                    });
                return false;
            });
            form.on('submit(Print)', function (data) {//打印
                var data1 = layui.table.cache["subTable"]
                    , data2 = layui.table.cache["subTable2"];
@@ -520,10 +559,25 @@
                rows = rows.substring(rows.length - 1, 0);
                rows2 = rows2.substring(rows2.length - 1, 0);
                if (rows == "") {
                    layer.msg("至少选择一行记录!")
                    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%']
@@ -531,7 +585,7 @@
                        , shade: 0.6 //遮罩透明度
                        , maxmin: false //允许全屏最小化
                        , anim: 0 //0-6的动画形式,-1不开启
                        , content: ['../../views/BaseSet/SRM_OpenTmpList.html?linterid=' + rows.toString() + '&HBarcode=&Type=' + openTmpListType, 'yes']
                        , content: ['../../views/BaseSet/SRM_OpenTmpList.html?linterid=' + sessionStorage["HUserName"] + '&HBarcode=&Type=' + openTmpListType, 'yes']
                        , resize: false
                        //, cancel: function () {
                        //    $(".layui-btn").removeClass("layui-btn-disabled");
@@ -543,7 +597,6 @@
                var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
                parent.layer.close(index); //再执行关闭
            });
            //监听提交
            form.verify({
                numberOrEmpty: function (value, item) {
@@ -555,7 +608,6 @@
                }
            });
            layer.load(3)
            table.render({
                elem: '#mainTable'
                , url: GetWEBURL() + subUrl
@@ -563,18 +615,25 @@
                , 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: 'HMaterShortNumber', title: '物料代码', width: 120 }
                    , { field: 'HOldMaterNumber', title: '旧物料编码', width: 120 }
                    , { field: 'HMaterShortNumber', title: '物料代码', width: 120, hide: true }
                    , { field: 'HSubjoin', title: '物料代码', width: 120 }
                    , { field: 'HMaterName', title: '物料名称', width: 120 }
                    , { field: 'HMaterModel', title: '规格型号', width: 120 }
                    , { field: 'HUnitName', title: '计量单位', width: 100 }
                    , { field: 'HUnitNumber', title: '计量单位代码', width: 100, hide: true }
                    , { field: 'HUnitID', title: '计量单位ID', width: 100, hide: true }
                    , { field: 'HQty', title: '数量', width: 100 }
                    , { field: 'HMinQty', title: '内箱包装数', width: 100, edit: 'text' }
                    , { field: 'HDDQty', title: '订单数量', width: 100 }
                    , { field: 'HMrbQty', title: '退料数量', width: 100 }
                    , { field: 'HBarcodeCount', title: '已生成条码数量', width: 135 }
                    , { field: 'HNotBarcodeCount', title: '可生成条码数量', width: 135 }
                    , { field: 'HQty', title: '本次生成条码数量', width: 135, edit: 'text', event: "inputHQty" }
                    , { field: 'HMinQty', title: '内箱包装数', width: 100, edit: 'text', event: "inputHMinQty" }
                    , { field: 'HBQty', title: '内箱数', width: 100 }
                    , { field: 'HWXQty', title: '外箱包装数', width: 100, edit: 'text' }
                    , { field: 'HWXQty', title: '外箱包装数', width: 100, edit: 'text', event: "inputHWXQty" }
                    , { field: 'HWBQty', title: '外箱数', width: 100 }
                    , { field: 'HPrice', title: '单价', width: 100, hide: true }
                    , { field: 'HMoney', title: '金额', width: 100, hide: true }
@@ -583,8 +642,8 @@
                    //, { field: 'HBeginDate', title: '生产日期', width: 120, data_field: 'HBeginDate', event: "chooseHBeginDate" }
                    //, { field: 'HEndDate', title: '失效日期', width: 120, data_field: 'HEndDate', event: "chooseHEndDate" }
                    , { field: 'HKFDate', title: '生产日期', align: 'center', width: 150, data_field: 'HKFDate', event: "chooseHKFDate" }//
                    , { field: 'HKFPeriod', title: '保质期', width: 100, edit: 'text', event: "inputHKFPeriod" }//
                    , { field: 'HKFDQDate', title: '到期日期', align: 'center', width: 150, data_field: 'HKFDQDate', event: "chooseHKFDQDate" }//
                    , { field: 'HKFPeriod', title: '保质期', width: 100 }//
                    , { field: 'HKFDQDate', title: '到期日期', align: 'center', width: 150, data_field: 'HKFDQDate' }//, event: "chooseHKFDQDate"
                    //, { field: 'HDate', title: '要求交货日期', width: 150 }
                    , { field: 'HPOOrderInterID', title: '采购订单主内码', width: 150, hide: true }
                    , { field: 'HPOOrderEntryID', title: '采购订单子内码', width: 150, hide: true }
@@ -602,7 +661,6 @@
                ]]
                , done: function (res, curr, count) {
                    console.log(res);
                    layer.closeAll("loading");
                }
            });
@@ -610,7 +668,102 @@
            table.on('toolbar(mainTable)', function (obj) {
                var checkStatus = table.checkStatus(obj.config.id);
                switch (obj.event) {
                    case "btn-add":
                        var oldData = table.cache["mainTable"];
                        var checkStatus = table.checkStatus('mainTable')
                            , data = checkStatus.data;
                        var rows = '';
                        var arr = [];
                        arr.push(oldData);
                        arr.push(checkStatus);
                        for (var i = 0; i < data.length; i++) {
                            rows += data[i].HMaterID.toString() + ',';
                        }
                        rows = rows.substring(rows.length - 1, 0);
                        if (rows == "") {
                            layer.msg("至少选择一行记录!")
                        }
                        else {
                            var HRowCount;
                            layer.prompt({
                                formType: 2,
                                //value: '',
                                title: '请输入要拆成几行',
                                area: ['200px', '100px'] //自定义文本域宽高
                            }, function (value, index, elem) {
                                HRowCount = value.toString();
                                var count = parseInt(HRowCount);
                                if (count > 1) {
                                    var data1;
                                    var dataindex = 0;
                                    for (var i = 0; i < data.length; i++) {
                                        for (var j = 0; j < oldData.length; j++) {
                                            if (data[i].sorderid == oldData[j].sorderid) {
                                                dataindex = j;
                                                for (var x = 0; x < count - 1; x++) {
                                                    //dataindex = dataindex + x;
                                                    data1 = {
                                                        /*  "sorderid": oldData.length + 1*/
                                                        "HMaterID": data[i].HMaterID
                                                        , "HMaterNumber": data[i].HMaterNumber
                                                        , "HOldMaterNumber": data[i].HOldMaterNumber
                                                        , "HMaterShortNumber": data[i].HMaterShortNumber
                                                        , "HSubjoin": data[i].HSubjoin
                                                        , "HMaterName": data[i].HMaterName
                                                        , "HMaterModel": data[i].HMaterModel
                                                        , "HUnitName": data[i].HUnitName
                                                        , "HUnitNumber": data[i].HUnitNumber
                                                        , "HUnitID": data[i].HUnitID
                                                        , "HDDQty": data[i].HDDQty
                                                        , "HMrbQty": data[i].HMrbQty
                                                        , "HBarcodeCount": data[i].HBarcodeCount
                                                        , "HNotBarcodeCount": data[i].HNotBarcodeCount
                                                        , "HQty": data[i].HQty
                                                        , "HMinQty": data[i].HMinQty
                                                        , "HBQty": data[i].HBQty
                                                        , "HWXQty": data[i].HWXQty
                                                        , "HWBQty": data[i].HWBQty
                                                        , "HPrice": data[i].HPrice
                                                        , "HMoney": data[i].HMoney
                                                        , "HMTONO": data[i].HMTONO
                                                        , "HBatchNo": data[i].HBatchNo
                                                        , "HKFDate": data[i].HKFDate
                                                        , "HKFPeriod": data[i].HKFPeriod
                                                        , "HKFDQDate": data[i].HKFDQDate
                                                        , "HPOOrderInterID": data[i].HPOOrderInterID
                                                        , "HPOOrderEntryID": data[i].HPOOrderEntryID
                                                        , "HPOOrderBillNo": data[i].HPOOrderBillNo
                                                        , "HWWOrderInterID": data[i].HWWOrderInterID
                                                        , "HWWOrderEntryID": data[i].HWWOrderEntryID
                                                        , "HWWOrderDetaiLID": data[i].HWWOrderDetaiLID
                                                        , "HWWOrderBillNo": data[i].HWWOrderBillNo
                                                        , "HSourceBillType": data[i].HSourceBillType
                                                        , "HSourceBillNo": data[i].HSourceBillNo
                                                        , "HSourceEntryID": data[i].HSourceEntryID
                                                        , "HSourceInterID": data[i].HSourceInterID
                                                        , "HSupID": data[i].HSupID
                                                        , "HSupName": data[i].HSupName
                                                    }
                                                    //oldData.push(data1);
                                                    oldData.splice(dataindex, 0, data1);
                                                };
                                                break;
                                            }
                                        }
                                    }
                                    table.reload('mainTable', {
                                        url: '', //需要把url置空,否则table.reload()重载方法不生效。
                                        data: oldData
                                    });
                                    layer.close(index);
                                }
                                else {
                                    layer.msg("拆行数量至少为2!")
                                }
                            });
                        }
                        break;
                    //自定义头工具栏
                    case 'btn-normal':
                        table.render({
@@ -777,7 +930,28 @@
                    $(obj.tr).find(".layui-table-edit").keyup(function () {
                        var $input = $(this), val = $input.val();
                        if (!val) val = "1";
                        $input.val(val.replace(/[^\d]/g, ''));
                        $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') {
                    $(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, ''));
                    });
                }
            });