王 垚
2022-06-24 c71eab493f627d0d932b717624859b1c21359b58
WebSRM/layuiAdmin.std-v1.2.1/src/views/SRM/SRM_BarCodeBill.html
@@ -106,7 +106,7 @@
                                    <script type="text/html" id="toolbarDemo">
                                        <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-box">内外箱条码</button>-->
                                        </div>
                                    </script>
@@ -181,6 +181,15 @@
            var time = date.getFullYear() + "-" + month + "-" + day
            return time;
        }
        function DateDiff(sDate1, sDate2) {    //sDate1和sDate2是2002-12-18格式
            var aDate, oDate1, oDate2, iDays
            aDate = sDate1.split("-")
            oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0])    //转换为12-18-2002格式
            aDate = sDate2.split("-")
            oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0])
            iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24)    //把相差的毫秒数转换为天数
            return iDays
        }
        function getUrlVars() {
            var vars = [], hash;
            var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
@@ -195,15 +204,28 @@
        var linterid = params[params[0]];
        var lentryid = params[params[1]];
        var type = params[params[2]];
        //原生成条码方法
        //原生成条码方法(送货单默认)
        var mainUrl = "GetHBarCodeShowBillMain"; //表头数据加载ajax
        var subUrl = "GetHBarCodeShowBillSub";//表体数据加载ajax
        var subUrl = "GetHBarCodeShowBillSub";//表体数据加载ajax h_v_SRM_POInStockBillSub_ForWeb2
        var saveBarCode = "GetBarcodeSaveBillBox";//条码生成保存方法ajax
        var openTmpListType = "SRM_POInStockBillList"; //条码打印按钮 弹出界面
        var ordertype = "";
        //采购订单条码生成规则
        if (type == 'SRM_POOrderBillList') {
            mainUrl = 'GetHBarCodeShowBillMainBycg';
            subUrl = "GetHBarCodeShowBillSubBycg";
            subUrl = "GetHBarCodeShowBillSubBycg"; //h_v_Cg_POOrderBillSub_ForWeb2
            saveBarCode = "GetBarcodeSaveBillBoxBycg";
            openTmpListType = 'SRM_POOrderBillList';
            ordertype = "CG";
        }
        //委外订单
        else if (type == 'SRM_EntrustOrderBill') {
            mainUrl = 'GetHBarCodeShowBillMainBywy';
            subUrl = "GetHBarCodeShowBillSubBywy"; //h_v_srm_EntrustOrderBillSub_ForWeb2
            saveBarCode = "GetBarcodeSaveBillBoxBycg";//调用采购数据
            openTmpListType = 'SRM_POOrderBillList';
            ordertype = "WW";
        }
        // debugger;
        $.ajax({
@@ -388,9 +410,11 @@
                //debugger;
                var sMainStr = JSON.stringify(data.field);
                var sSubStr = JSON.stringify(table.cache['mainTable']);
                console.log(sMainStr)
                console.log(sSubStr)
                var sMainSub = sMainStr + ';' + sSubStr;
                if (!AllowLoadData())//数据验证
                {
                    return false;
                }
                layer.load(3)
                $.ajax(
                    {
@@ -411,7 +435,7 @@
                                });
                                table.render({
                                    elem: '#subTable'
                                    , url: GetWEBURL() + 'GetHBarCodeShowBillSub3'
                                    , url: GetWEBURL() + 'GetHBarCodeShowBillSub3'  //h_v_Web_BarCodeBill_ForWeb1
                                    , toolbar: '#toolbarDemo1'
                                    , defaultToolbar: ['filter', 'exports']
                                    , where: { sMsg: linterid }
@@ -510,6 +534,21 @@
                    layer.msg("至少选择一行记录!")
                }
                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%']
@@ -517,7 +556,7 @@
                        , shade: 0.6 //遮罩透明度
                        , maxmin: false //允许全屏最小化
                        , anim: 0 //0-6的动画形式,-1不开启
                        , content: ['../../views/BaseSet/SRM_OpenTmpList.html?linterid=' + rows.toString() + '&HBarcode=' + rows2.toString() + '&Type=HBarCodePrint', 'yes']
                        , content: ['../../views/BaseSet/SRM_OpenTmpList.html?linterid=' + sessionStorage["HUserName"] + '&HBarcode=&Type=SRM_POOrderBillList', 'yes']
                        , resize: false
                        //, cancel: function () {
                        //    $(".layui-btn").removeClass("layui-btn-disabled");
@@ -550,13 +589,16 @@
                , where: { sMsg: linterid, sMsg2: lentryid }
                , cols: [[
                    , { field: 'HMaterID', title: '物料ID', width: 100, hide: true }
                    , { field: 'HMaterNumber', title: '物料代码', width: 100 }
                    , { field: 'HMaterName', title: '物料名称', width: 200 }
                    , { field: 'HMaterModel', title: '规格型号', width: 200 }
                    , { field: 'HMaterNumber', title: '物料编码', width: 120 }
                    , { field: 'HMaterShortNumber', 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: 'HDDQty', title: '订单数量', width: 100 }
                    , { field: 'HNotBarcodeCount', title: '未生成条码数量', width: 100 }
                    , { field: 'HQty', title: '条码数量', width: 100, edit: 'text' }
                    , { field: 'HMinQty', title: '内箱包装数', width: 100, edit: 'text' }
                    , { field: 'HBQty', title: '内箱数', width: 100 }
                    , { field: 'HWXQty', title: '外箱包装数', width: 100, edit: 'text' }
@@ -567,9 +609,9 @@
                    , { field: 'HBatchNo', title: '批次', width: 100, edit: 'text' }
                    //, { 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: 'HKFDate', title: '生产日期', align: 'center', width: 150, data_field: 'HKFDate', event: "chooseHKFDate" }//
                    , { field: 'HKFPeriod', title: '保质期', width: 100,  event: "inputHKFPeriod" }//
                    , { 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 }
@@ -583,6 +625,7 @@
                    , { field: 'HSourceEntryID', title: '源单子内码', width: 150, hide: true }
                    , { field: 'HSourceInterID', title: '源单主内码', width: 150, hide: true }
                    , { field: 'HSupID', title: '供应商ID', width: 150, hide: true }
                    , { field: 'HSupName', title: '供应商名称', width: 150, hide: true }
                ]]
                , done: function (res, curr, count) {
@@ -621,8 +664,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, edit: 'text', event: "inputHKFPeriod" }
                                , { 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 }
@@ -722,7 +765,12 @@
                        , 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,
                                });
                            }
                        }
                    });
                }
@@ -771,6 +819,43 @@
            //            break;
            //    }
            //});
            //非空验证
            function AllowLoadData() {
                var Result = true;
                var sSubStr = JSON.stringify(table.cache['mainTable']);
                if (typeof (sSubStr) != "undefined" && typeof (sSubStr) != "") {
                    sSubStr = JSON.parse(sSubStr);
                    for (var i = 0; i < sSubStr.length; i++) {
                        if (sSubStr[i].HQty == 0)
                            continue;
                        if (sSubStr[i].HQty > 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].HBQty == '' || sSubStr[i].HWBQty == '')) {
                            layer.msg("明细记录第" + (i + 1) + "行,包装数量不能为空!", { icon: 5, btn: ['确认'], time: 2000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                            return Result = false;
                        }
                        if (sSubStr[i].HKFDate == '' || sSubStr[i].HKFDQDate == '') {
                            layer.msg("明细记录第" + (i + 1) + "行,生产日期或到期日期不能为空!", { icon: 5, btn: ['确认'], time: 2000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                            return Result = false;
                        }
                        if (sSubStr[i].HBatchNo == '') {
                            layer.msg("明细记录第" + (i + 1) + "行,批次不能为空!", { icon: 5, btn: ['确认'], time: 2000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                            return Result = false;
                        }
                        //HKFDate 生产日期
                        //HKFDQDate 到期日期
                        //HBatchNo 批次
                    }
                }
                else {
                    return Result = true;
                }
                return Result;
            }
            table.on('edit(mainTable)', function (obj) { //注:edit是固定事件名,test是table原始容器的属性 lay-filter="对应的值"
                var value = obj.value //得到修改后的值
                    , data = obj.data //得到所在行所有键值
@@ -778,6 +863,8 @@
                var HMinQty = 0;
                var HWXQty = 0;
                var HKFPeriod = 0;
                var HWBQty = 0;
                var HBQty = 0;
                if (obj.data.HMinQty != undefined) {
                    HMinQty = parseFloat(obj.data.HMinQty);
                }
@@ -787,32 +874,69 @@
                if (obj.data.HKFPeriod != undefined) {
                    HKFPeriod = parseFloat(obj.data.HKFPeriod);
                }
                HKFPeriod
                if (obj.data.HWBQty != undefined) {
                    HWBQty = parseFloat(obj.data.HWBQty);
                }
                if (obj.data.HBQty != undefined) {
                    HBQty = parseFloat(obj.data.HBQty);
                }
                //HMinQty 内箱包装数
                //HBQty 内箱数
                //HWXQty 外箱包装数
                //HWBQty 外箱数 HWBQty
                switch (field) {
                    case "HMinQty":
                        if (HMinQty > 0) {
                            if (HWXQty >= 0) {
                                if (isPositiveIntegerTimes(parseFloat(obj.value), HWXQty)) //外箱包装数能被内箱包装数整除
                                {
                                    obj.update({
                                        HBQty: Math.ceil(parseFloat(obj.data.HQty) / parseFloat(obj.value)),
                                    });
                                }
                                else {
                                    //obj.update({
                                    //    HMinQty: 0,
                                    //});
                                    f_alert("外箱包装数必须是内箱包装数的整数倍!");
                                }
                            }
                        }
                        else {
                            //obj.update({
                            //    HMinQty: 0,
                            //});
                    case "HQty":
                        obj.update({
                            HMinQty: 0,
                            HBQty: 0,
                            HWXQty: 0,
                            HWBQty: 0,
                        });
                        break;
                    case "HMinQty": //内箱包装数
                        if (HMinQty < 0) {
                            f_alert("内箱包装数不能为负数!");
                        }
                        else if (HWXQty > 0 && HMinQty > HWXQty) {
                            f_alert("内箱包装数量不能超出外箱包装数量")
                            obj.update({
                                HBQty: Math.ceil(parseFloat(obj.data.HQty) / parseFloat(obj.value)),
                                HWXQty: 0,
                                HWBQty: 0,
                            });
                            return;
                        }
                        else (HWXQty > 0)//外箱包装数大于0时候
                        {
                            obj.update({
                                //外箱包装总数 =  内箱数量/外箱数量 * 内箱包装数量
                                HBQty: Math.ceil(parseFloat(obj.data.HQty) / parseFloat(obj.value)),
                            });
                            if (parseFloat(obj.data.HWBQty) > 0)
                                obj.update({
                                    HWXQty: Math.ceil(parseFloat(obj.data.HBQty) / parseFloat(obj.data.HWBQty)) * parseFloat(obj.data.HMinQty),
                                });
                        }
                        break;
                    //case "HWBQty": //外箱个数发生变化
                    //    if (HWBQty < 0) {
                    //        f_alert("外箱数量不能为负数")
                    //        return;
                    //    }
                    //    else if (HWBQty > HBQty) {
                    //        f_alert("外箱数量不能超出内箱数量")
                    //        return;
                    //    }
                    //    else {
                    //        obj.update({
                    //            //外箱包装总数 =  内箱数量/外箱数量 * 内箱包装数量
                    //            HWXQty: Math.ceil(parseFloat(obj.data.HBQty) / parseFloat(obj.data.HWBQty)) * parseFloat(obj.data.HMinQty),
                    //            //HWXQty: 12
                    //        });
                    //    }
                    //    break;
                    case "HWXQty":
                        if (HWXQty > 0) {
                            if (HMinQty >= 0) {
@@ -870,6 +994,8 @@
                active[type] ? active[type].call(this) : '';
            });
        });
    </script>
</body>
</html>