wtt
2025-03-12 7c92d0185e478029308fe3e22e74ee331d57464a
tableSelect优化,欠料运算优化
4个文件已修改
323 ■■■■ 已修改文件
WebTM/layuiadmin/modules/tableSelect.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/生产管理/欠料运算/JIT_MaterialLevelShorAnalysisReport.html 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/计划管理/工艺路线/Gy_RoutingBillWorkQty.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/采购管理/采购订单/Cg_POOrderBillEdit.html 303 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/layuiadmin/modules/tableSelect.js
@@ -23,9 +23,9 @@
        opt.searchKey = opt.searchKey || 'keyword';//可多个用,分割
        opt.table.page = opt.table.page || false;
        opt.table.height = opt.table.height || 290;
        elem.off('click').on('click', function(e) {
        elem.off('keyup').on('keyup', function(e) {
            e.stopPropagation();
            if($('div.tableSelect').length >= 1){
            if ($('div.tableSelect').length >= 1 || elem.val().length<=2) {
                return false;
            }
WebTM/views/Éú²ú¹ÜÀí/Ç·ÁÏÔËËã/JIT_MaterialLevelShorAnalysisReport.html
@@ -252,12 +252,16 @@
            var columns = [];
            columns.push({ type: 'checkbox', fixed: 'left', sort: true});
            columns.push({ field: '需求车间ID', title: '需求车间ID', sort: true, filter: true });
            columns.push({ field: '需求车间编码', title: '需求车间编码', sort: true, filter: true });
            columns.push({ field: '需求车间名称', title: '需求车间名称', sort: true, filter: true });
            columns.push({ field: '物料ID', title: '物料ID', sort: true, filter: true });
            columns.push({ field: '物料编码', title: '物料编码', sort: true, filter: true });
            columns.push({ field: '物料名称', title: '物料名称', sort: true, filter: true });
            columns.push({ field: '生产车间ID', title: '生产车间ID', sort: true, filter: true  });
            columns.push({ field: '生产车间编码', title: '生产车间编码', sort: true,  filter: true  });
            columns.push({ field: '生产车间名称', title: '生产车间名称', sort: true, filter: true });
            columns.push({ field: '物料属性', title: '物料属性', sort: true, filter: true });
            columns.push({ field: '供货车间ID', title: '供货车间ID', sort: true, filter: true  });
            columns.push({ field: '供货车间编码', title: '供货车间编码', sort: true,  filter: true  });
            columns.push({ field: '供货车间名称', title: '供货车间名称', sort: true, filter: true });
            columns.push({ field: '是否匹配到订单', title: '是否匹配到订单', sort: true, filter: true, templet: function (d) { return d.是否匹配到订单 ? '否' : '是'; }  });
            //columns.push({ field: 'HPOOrderBillRemark', title: '摘要' });
            //columns.push({ field: 'HPOOrderBillNote', title: '备注' });
@@ -404,7 +408,7 @@
                sWhere += " and T1.HStockORGID= " + HORGID+" ";
            }
            if (HWorkShopID != 0) {
                sWhere += " and T1.HWorkShopID= " + HWorkShopID + " ";
                sWhere += " and T1.HSupplyWorkShopID= " + HWorkShopID + " ";
            }
            //if (HBEGINDATE != null && HENDDATE != null) {
            //    sWhere += " and HDate between ''" + HBEGINDATE + "'' and ''" + HENDDATE + "'' ";
WebTM/views/¼Æ»®¹ÜÀí/¹¤ÒÕ·Ïß/Gy_RoutingBillWorkQty.html
@@ -119,7 +119,7 @@
        var option = [];
        var rowdata = [{
            "HInterID": HBillInterID, "HEntryID": HBillEntryID, "HSourceID": 0, "HSourceNumber": "", "HSourceName": ""
            , "HWorkQty_Source": "", "HEntryStdEmpQty": "", "HEntryStdEmpAvg": "", "HSortNum": "", "HRemark": ""
            , "HWorkQty_Source": "0", "HEntryStdEmpQty": "0", "HEntryStdEmpAvg": "0", "HSortNum": "0", "HRemark": ""
        }];
        //#endregion
@@ -149,7 +149,7 @@
            //新增行表格数据
            var NewRow = {
                "HInterID": HBillInterID, "HEntryID": HBillEntryID, "HSourceID": 0, "HSourceNumber": "", "HSourceName": ""
                , "HWorkQty_Source": "", "HEntryStdEmpQty": "", "HEntryStdEmpAvg": "", "HSortNum": "", "HRemark": ""
                , "HWorkQty_Source": 0, "HEntryStdEmpQty": 0, "HEntryStdEmpAvg": 0, "HSortNum": 0, "HRemark": ""
            };
            switch (obj.event) {
WebTM/views/²É¹º¹ÜÀí/²É¹º¶©µ¥/Cg_POOrderBillEdit.html
@@ -1013,48 +1013,48 @@
            function set_InitGrid() {
                //供应商输入框
                tableSelect.render({
                    elem: '#HSupName',//输入框dom选择
                    searchKey: '供应商名称,HItemID',//查询的列名
                    sWhere: '',//table搜索sWhere条件 //默认筛选项
                    ajaxSelect: function (sWhere) {
                        var data = '';
                        $.ajax({
                            url: GetWEBURL() + '/Gy_Supplier/list',
                            type: "GET",
                            data: { "sWhere": sWhere, "user": '翁涛涛', "Organization": '浙江智云迈思' },
                            async: false,
                            success: function (data1) {
                                if (data1.count == 1) {
                                    data = data1.data
                                }
                            },
                            error: function () {
                                layer.alert('获取列表失败!', { icon: 15, title: '通信错误' });
                            }
                        });
                        return data;
                    },//设置前端分页时可以设置的
                    table: {
                        //url: GetWEBURL() + 'Gy_Supplier/page',
                        //where: { user: '翁涛涛', Organization: '浙江智云迈思' },
                        cols: [[
                            { type: 'radio', fixed: 'left' },//需要加这个fixed属性不然点击checkbox会触发行点击导致无法正确点击
                            { field: 'HItemID', title: 'HItemID' },
                            { field: '供应商名称', title: '供应商名称' },
                        ]],
                        page: true,
                        limit: 5,
                        limits:[5]
                    },
                    done: function (elem, data) {
                        if (data != []) {
                            $("#HSupName").val(data.data[0]['供应商名称']);
                            $("#HSupID").val(data.data[0]['HItemID']);
                        }
                //tableSelect.render({
                //    elem: '#HSupName',//输入框dom选择
                //    searchKey: '供应商名称,HItemID',//查询的列名
                //    sWhere: '',//table搜索sWhere条件 //默认筛选项
                //    ajaxSelect: function (sWhere) {
                //        var data = '';
                //        $.ajax({
                //            url: GetWEBURL() + '/Gy_Supplier/list',
                //            type: "GET",
                //            data: { "sWhere": sWhere, "user": '翁涛涛', "Organization": '浙江智云迈思' },
                //            async: false,
                //            success: function (data1) {
                //                if (data1.count == 1) {
                //                    data = data1.data
                //                }
                //            },
                //            error: function () {
                //                layer.alert('获取列表失败!', { icon: 15, title: '通信错误' });
                //            }
                //        });
                //        return data;
                //    },//设置前端分页时可以设置的
                //    table: {
                //        //url: GetWEBURL() + 'Gy_Supplier/page',
                //        //where: { user: '翁涛涛', Organization: '浙江智云迈思' },
                //        cols: [[
                //            { type: 'radio', fixed: 'left' },//需要加这个fixed属性不然点击checkbox会触发行点击导致无法正确点击
                //            { field: 'HItemID', title: 'HItemID' },
                //            { field: '供应商名称', title: '供应商名称' },
                //        ]],
                //        page: true,
                //        limit: 5,
                //        limits:[5]
                //    },
                //    done: function (elem, data) {
                //        if (data != []) {
                //            $("#HSupName").val(data.data[0]['供应商名称']);
                //            $("#HSupID").val(data.data[0]['HItemID']);
                //        }
                        
                    }
                })
                //    }
                //})
                option = {
                    elem: '#mainTable'      // ä½¿ç”¨#mainTable作为表格的DOM元素 
                    , toolbar: '#toolbarDemo'        //加载tolbardemo这个表格
@@ -1376,7 +1376,7 @@
            function set_GridCellCheck(obj) {       //定义了一个名为set_GridCellCheck的函数,它接受一个参数obj    
                //使用$(document).off('keydown', ".layui-table-edit")来移除(如果存在的话)之前绑定到文档中所有.layui-table-edit类元素上的keydown事件监听器
                $(document).off('keydown', ".layui-table-edit").on('keydown', '.layui-table-edit', function (e) {  
                    try {
                    if (event.key == "F7") {//检查触发事件的键盘按键是否是F7键
                        //物料
                        if (obj.event == "HMaterID") {//判断传入的obj对象的event属性是否等于字符串"HMaterID"
@@ -1449,6 +1449,13 @@
                                                "HInterID": HSupID
                                            },
                                            success: function (d) {
                                                    if (d.code == 1) { // å¦‚果服务器返回的数据中的`code字段等于1,这可能表示审核操作成功执行
                                                        HTaxRate = 0;
                                                        if (typeof (d.data[0].增值税率) == undefined || d.data[0].增值税率 == null) {
                                                            layer.alert("发生错误数据库表增值税率字段有误!", { icon: 5 });
                                                        } else {
                                                            HTaxRate = parseInt(d.data[0].增值税率);
                                                        }
                                                var HTaxRate = parseInt(d.data[0].增值税率) * 0.01;
                                                var HExRate = $("#HExRate").val();                      //汇率
                                                //数据校验合格,重算记录
@@ -1487,6 +1494,11 @@
                                                    , HRelTaxPrice: HRelTaxPrice            //更新HRelTaxPrice字段,其值来自变量HRelTaxPrice
                                                    , HlineTotalBB: HlineTotalBB              //更新HlineTotalBB字段,其值来自变量HlineTotalBB
                                                })
                                                    }
                                                    else {
                                                        layer.alert(result.Message, { icon: 5, btn: ['退出'], time: 100000, offset: 't' }); //result.msg对象,提示弹窗 ç±»åž‹ä¸º5, æŒ‰é’®ï¼Œå’ŒæŒ‰é’®çš„名称为退出  æ—¶é—´ ä¸º100秒,以及偏移量(`offset: 't'
                                                    }
                                            }
                                        });
                                    } else {
@@ -1579,31 +1591,178 @@
                    obj.event = ""; //把boj.event属性  åˆå§‹åŒ–为空
                    return false;
                }
                })
                //物料表格下拉搜索框
                tableSelect.render({
                    elem: 'td[data-field="物料代码"] .layui-table-edit',
                    checkedKey: 'HItemID',
                    searchKey: '物料代码',
                    sWhere: '',//table搜索sWhere条件
                    table: {
                        url: GetWEBURL() + 'Gy_Material/page',
                        where: { user: '翁涛涛', Organization: '浙江智云迈思' },
                        cols: [[
                            { type: 'checkbox',fixed:'left' },
                            { field: 'HItemID', title: 'HItemID' },
                            { field: '物料代码', title: '物料代码' },
                            { field: '物料名称', title: '物料名称' },
                        ]],
                        page: true,
                        limit: 5,
                        limits: [5]
                    },
                    done: function (elem, data) {
                        $(".layui-table-edit").blur();//单元格失去焦点
                        setTableByHMater(obj, data);
                        // å¤„理资源的代码
                    } catch (error) {
                        // å¤„理异常的代码
                        layer.alert("发生错误!" + error, { icon: 5 });
                    }
                })
                $('.layui-table-box tbody td[data-field="物料代码"]').off('dblclick').on('dblclick', function () {
                    try {
                        //手动失焦
                        var element = document.getElementById("HBillNo");
                        element.focus();
                        var HOrgID = $("#HOrgID").val();  //获取id="HOrgID"的元素中获取其值,并将该值存储在变量HOrgID中
                        layer.open({  //打开层
                            type: 2         // //表示弹出层的内容是一个 iframe       ç±»åž‹ä¸º2
                            , skin: "layui-layer-rim" //加上边框
                            , title: "物料列表"  //标题
                            , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                            , shift: 2 //弹出动画
                            , area: ["90%", "90%"] //窗体大小
                            , maxmin: true //设置最大最小按钮是否显示
                            , content: ['../../基础资料/公用基础资料/Gy_Material.html?openType=2&HOrgID=' + HOrgID, 'yes']   //页面加载
                            , btn: ["确定", "取消"]  //属性定义了弹出层上的按钮数“确定”和“取消
                            , btn1: function (index, laero) { //当点击“确定”按钮时会被调用
                                //按钮一  çš„回调
                                var iframeWindow = window["layui-layer-iframe" + index];//获取弹框页面
                                var checkStatus = iframeWindow.layui.table.checkStatus("mainTable");//获取选中的数据
                                OptionData = checkStatus.data[0];  //把选中数据的第一条赋值给OptionData变量
                                var TaxRate = getHTaxRateByHSupID();
                                //选中多行时
                                if (checkStatus.data.length > 1) {
                                    var rowIndex = $(obj.tr).attr("data-index") * 1;  //attr("data-index")用于获取该tr元素上data-index属性的值*1转换类型然后赋值给rowIndex
                                    for (var i = 0; i < checkStatus.data.length; i++) {  //判断选中的数据的长度  ç”¨äºŽéåކcheckStatus.data数组中的每个元素
                                        if (rowIndex + i >= option.data.length) {           //判断rowIndex + i的索引超出了option.data数组的长度,说明option.data数组需要扩展以包含更多行
                                            var NewRow = {
                                                "HMaterID": 0, "物料代码": "", "物料名称": "", "规格型号": "", "HUnitID": 0, "计量单位": "", "HWHID": 0, "HWHName": "", "HQty": 1, "HRemark": ""
                                                , "HPrice": "0", "HTaxPrice": "0", "HMoney": "0", "HDiscountRate": "1", "HRelTaxPrice": "0", "HTaxRate": "0", "HTaxMoney": "0", "HlineTotal": "0", "HlineTotalBB": "0", "HDate": Format(new Date, "yyyy- MM - dd")
                                            };  // åˆ›å»ºä¸€ä¸ªæ–°çš„包含数组   å…¶åˆå§‹å€¼ä¸ºç©ºæˆ–者0  æˆ–者是时间格式
                                            table.cache["mainTable"].push(NewRow);    //创建新的包含数组  ä¼ å…¥table.cache["mainTable"]数组
                                            option.data = table.cache["mainTable"];  //把传入 table.cache["mainTable"]数组的值赋值给option.data çš„属性
                                            table.render(option);//渲染界面
                                        }
                                        var HMaterID = checkStatus.data[i].HItemID; //checkStatus.data数组中的当前元素(索引为i)中获取HItemID属性的值 å¹¶èµ‹å€¼ç»™HMaterID
                                        var resultData = getMaterialByMaterID(HMaterID);  //使用HMaterID作为参数来调用getMaterialByMaterID函数来获取该物料的详细信息
                                        option.data[rowIndex + i].HMaterID = resultData.HMaterID;  //将option.data数组中对应行的HMaterID属性更新为从resultData对象中获取的物料ID
                                        option.data[rowIndex + i].物料代码 = resultData.HMaterNumber; //将option.data数组中对应行的 ç‰©æ–™ä»£ç  å±žæ€§æ›´æ–°ä¸ºä»ŽresultData对象中获取的物料ID
                                        option.data[rowIndex + i].物料名称 = resultData.HMaterName; //将option.data数组中对应行的  ç‰©æ–™åç§°  å±žæ€§æ›´æ–°ä¸ºä»ŽresultData对象中获取的物料ID
                                        option.data[rowIndex + i].规格型号 = resultData.HMaterModel; //将option.data数组中对应行的  è§„格型号  å±žæ€§æ›´æ–°ä¸ºä»ŽresultData对象中获取的物料ID
                                        option.data[rowIndex + i].HUnitID = resultData.HUnitID; //将option.data数组中对应行的 HUnitID å±žæ€§æ›´æ–°ä¸ºä»ŽresultData对象中获取的物料ID
                                        option.data[rowIndex + i].计量单位 = resultData.HUnitName; //将option.data数组中对应行的 è®¡é‡å•位 å±žæ€§æ›´æ–°ä¸ºä»ŽresultData对象中获取的物料ID   æ›´æ–°è®¡é‡å•位属性
                                        option.data[rowIndex + i].HQty = 1;  //将对应行的HQty属性(可能代表数量)设置为1。这表示对于每个选中的物料,其默认数量被设置为1
                                        option.data[rowIndex + i].HTaxRate = TaxRate;
                                    }
                                    table.render(option); //重新渲染表格以显示更新后的数据
                                }
                                layer.closeAll();  //关闭所有通过layer
                                //layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                            }
                            , btn2: function (index, layero) {   //当点击“取消”按钮时会被调用
                                //按钮【按钮二】的回调
                                //return false å¼€å¯è¯¥ä»£ç å¯ç¦æ­¢ç‚¹å‡»è¯¥æŒ‰é’®å…³é—­
                            },
                            end: function () {
                                //通过供应商id获取税率
                                var HSupID = $("#HSupID").val();
                                if (HSupID != 0 && typeof (OptionData.HItemID) != "undefined") {
                                    var Dec = getDecByMaterID(OptionData.HItemID) //获取精度
                                    var HQtyDec = (Dec["HQtyDec"] == null || Dec["HQtyDec"] == 0) ? 4 : Dec["HQtyDec"];  //数量精度
                                    var HPriceDec = (Dec["HPriceDec"] == null || Dec["HPriceDec"] == 0) ? 4 : Dec["HPriceDec"];  //单价精度
                                    var HMoneyDec = (Dec["HMoneyDec"] == null || Dec["HMoneyDec"] == 0) ? 2 : Dec["HMoneyDec"];  //金额精度
                                    $.ajax({
                                        url: GetWEBURL() + "/Gy_Supplier/xg",
                                        //url: "http://localhost:12761/Gy_Supplier/xg",
                                        type: "GET",
                                        data: {
                                            "HInterID": HSupID
                                        },
                                        success: function (d) {
                                            var HTaxRate = 0;
                                            if (typeof (d.data[0].增值税率) == undefined) {
                                                layer.alert("发生错误数据库表无增值税率字段!", { icon: 5 });
                                            } else {
                                                HTaxRate = parseInt(d.data[0].增值税率) * 0.01;
                                            }
                                            var HExRate = $("#HExRate").val();                      //汇率
                                            //数据校验合格,重算记录
                                            var HQty = obj.data.HQty * 1;                           //数量
                                            var HPrice = obj.data.HPrice * 1;               //单价
                                            var HMoney = HQty * HPrice;                     //金额=数量*单价
                                            var HTaxMoney = Number((HMoney * HTaxRate));         //税额=金额*税率
                                            var HlineTotal = HMoney + HTaxMoney;            //价税合计=金额+税额
                                            var HTaxPrice = Number((HPrice * (1 + HTaxRate)));        //含税单价=单价*(1+税率)
                                            var HDiscountRate = obj.data.HDiscountRate * 1;   //折扣率
                                            var HRelTaxPrice = Number((HTaxPrice * HDiscountRate));   //实际含税单价=含税单价*折扣率
                                            var HlineTotalBB = Number(((HMoney + HTaxMoney) * HExRate));     //本位币价税合计=(税额+金额)*汇率
                                            //数字精度
                                            HQty = Number(HQty.toFixed(HQtyDec));
                                            HPrice = Number(HPrice.toFixed(HPriceDec));
                                            HMoney = Number(HMoney.toFixed(HMoneyDec));
                                            HTaxMoney = Number(HTaxMoney.toFixed(HMoneyDec));
                                            HlineTotal = Number(HlineTotal.toFixed(HMoneyDec));
                                            HTaxPrice = Number(HTaxPrice.toFixed(HPriceDec));
                                            HRelTaxPrice = Number(HRelTaxPrice.toFixed(HPriceDec));
                                            HlineTotalBB = Number(HlineTotalBB.toFixed(HMoneyDec));
                                            obj.update({ //更新表格数据
                                                "HMaterID": OptionData.HItemID             //设置HItemID的值为“HBillNo”字段的值HItemID`的值
                                                , "物料代码": OptionData.物料代码
                                                , "物料名称": OptionData.物料名称
                                                , "规格型号": OptionData.规格型号
                                                , "HUnitID": OptionData.HUnitID
                                                , "计量单位": OptionData.计量单位名称
                                                , "HTaxRate": HTaxRate * 100
                                                , HQty: HQty                               //更新HQty字段,HQty
                                                , HPrice: HPrice                         //更新HPrice字段,HPrice
                                                , HMoney: HMoney                      //更新HMoney字段,HMoney
                                                , HTaxMoney: HTaxMoney                  //更新HTaxMoney字段,HTaxMoney
                                                , HlineTotal: HlineTotal             //更新HlineTotal字段,HlineTotal
                                                , HTaxPrice, HTaxPrice                   //更新HTaxPrice字段,HTaxPrice
                                                , HRelTaxPrice: HRelTaxPrice            //更新HRelTaxPrice字段,其值来自变量HRelTaxPrice
                                                , HlineTotalBB: HlineTotalBB              //更新HlineTotalBB字段,其值来自变量HlineTotalBB
                                            })
                                        }
                                    });
                                } else {
                                    obj.update({ //更新表格数据
                                        "HMaterID": OptionData.HItemID             //设置HItemID的值为“HBillNo”字段的值HItemID`的值
                                        , "物料代码": OptionData.物料代码
                                        , "物料名称": OptionData.物料名称
                                        , "规格型号": OptionData.规格型号
                                        , "HUnitID": OptionData.HUnitID
                                        , "计量单位": OptionData.计量单位名称
                                    })
                                }
                            }
                        });
                        obj.event = "";
                    } catch (error) {
                        layer.alert("发生错误!" + error, { icon: 5 });
                    }
                });
                //物料表格下拉搜索框
                //tableSelect.render({
                //    elem: 'td[data-field="物料代码"] .layui-table-edit',
                //    checkedKey: 'HItemID',
                //    searchKey: '物料代码',
                //    sWhere: '',//table搜索sWhere条件
                //    table: {
                //        url: GetWEBURL() + 'Gy_Material/page',
                //        where: { user: '翁涛涛', Organization: '浙江智云迈思' },
                //        cols: [[
                //            { type: 'checkbox',fixed:'left' },
                //            { field: 'HItemID', title: 'HItemID' },
                //            { field: '物料代码', title: '物料代码' },
                //            { field: '物料名称', title: '物料名称' },
                //        ]],
                //        page: true,
                //        limit: 5,
                //        limits: [5]
                //    },
                //    done: function (elem, data) {
                //        $(".layui-table-edit").blur();//单元格失去焦点
                //        setTableByHMater(obj, data);
                //    }
                //})
            }
            //选择物料单选或多选改变表格信息
            function setTableByHMater(obj, data) {
@@ -1996,7 +2155,7 @@
            //#region é€šè¿‡ä¾›åº”商id获取税率
            function getHTaxRateByHSupID() {
                var HTaxRate;
                var HTaxRate = 0;
                //通过供应商id获取税率
                var HSupID = $("#HSupID").val();
                if (HSupID != 0) {
@@ -2008,8 +2167,20 @@
                            "HInterID": HSupID
                        },
                        success: function (d) {
                            if (d.code == 1) {
                                HTaxRate = 0;
                                if (typeof (d.data[0].增值税率) == undefined || d.data[0].增值税率 == null) {
                                    layer.alert("发生错误数据库表增值税率字段有误!", { icon: 5 });
                                } else {
                            HTaxRate = parseInt(d.data[0].增值税率);
                        }
                            }
                            else {
                                layer.alert(result.message, { icon: 5, btn: ['退出'], time: 100000, offset: 't' }); //result.msg对象,提示弹窗 ç±»åž‹ä¸º5, æŒ‰é’®ï¼Œå’ŒæŒ‰é’®çš„名称为退出  æ—¶é—´ ä¸º100秒,以及偏移量(`offset: 't'
                            }
                        }, error: function (err) {
                            layer.alert("发生错误!" + err, { icon: 5 });
                        }
                    });
                } else {
                    HTaxRate = 0;