yangle
2024-10-27 f6d6a3c0c65103cb4a58e4f929ed7a1c8da21b9a
WebTM/views/ÏúÊÛ¹ÜÀí/ÏúÊÛ¶©µ¥/Add_Edit_Xs_SeOrderBillList.html
@@ -91,7 +91,7 @@
                                        <div class="layui-inline">
                                            <label class="layui-form-label">销售员</label>
                                            <div class="layui-input-inline">
                                                <input type="text" name="HEmpName" id="HEmpName" class="layui-input" value="" style="float: left; width: 150px; background-color: #efefef4d;" readonly>
                                                <input type="text" name="HEmpName" id="HEmpName" class="layui-input" value="" style="float: left; width: 150px;">
                                                <input type="hidden" name="HEmpID" id="HEmpID" class="layui-input" value="0" style="float:left;width:150px;">
                                                <button type="button" lay-submit="" class="layui-btn" lay-filter="HEmpList" style="width:40px;">
                                                    <i class="layui-icon layui-icon-search layuiadmin-button-btn" style="margin-left:-9px;"></i>
@@ -437,6 +437,15 @@
        </select>
    </script>
    <script>
        //#region æ–‡æœ¬æ¡†è¾“入搜索相关数据-变量
        var childPage = null;                       //获取子窗口对象,用于操作子窗口的变量和方法
        var currRowIndex = 0;                       //用于定位子窗口当前选中的行
        var childData = null;                       //用于获取子窗口返回的数据
        //#endregion
        //#region æŠ˜å æ³¨é‡Š
        var HDataEmp = {};
        //#endregion
@@ -597,6 +606,102 @@
                get_checkWH();
            });
             //#endregion
            //#endregion
            //#region è¡¨å¤´åŸºç¡€èµ„料选择弹窗
            //#region æ–‡æœ¬æ¡†ç›‘听
            $(document).ready(function () {
                //#region é”€å”®å‘˜åŸºç¡€èµ„料筛选弹窗
                $("#HEmpName").on('keydown', function (data) {
                    var errKeys = ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight", "Enter"];
                    if ($.inArray(event.key, errKeys) == -1) {              //如果按下的键位不是 æ–¹å‘键,则刷新弹窗中的数据
                        if (childPage == null) {                            //判断当前子窗口是否已经打开,若未打卡,则打开页面,并获取子窗口的对象
                            var offset = $(this).offset();                  //获取触发事件的元素的位置,用于定位子窗口打开的位置
                            var innerHeight = window.innerHeight;
                            var top = offset.top + 0.05 * innerHeight;
                            var left = offset.left;
                            if (top + 0.05 * innerHeight + 0.3 * innerHeight > innerHeight) {
                                top = top - 0.3 * innerHeight - 0.05 * innerHeight;
                            }
                            layer.open({
                                type: 2                                                                                     //弹窗类型
                                , skin: 'layui-layer-rim'                                                                   //加上边框
                                , area: ['25%', '30%']                                                                      //大小
                                , shadeClose: true                                                                          //点击遮罩时关闭弹窗
                                , offset: [top, left]
                                , title: false                                                                              //不显示标题栏
                                //, title: '项目费用列表'                                                                     //标题
                                , shift: 2                                                                                  //弹出动画
                                , closeBtn: 0                                                                               //禁用关闭按钮
                                , content: ["../../基础资料/通用基础资料/Gy_CommonBaseData.html?OperationType=2", "yes"]
                                , success: function (layero, index) {
                                    setTimeout(function () {
                                        var value = $("#HEmpName").val().replace(/'/g, "");                                  //获取文本框最新值
                                        currRowIndex = 0;
                                        var tableView = "h_v_IF_EmployeeList";
                                        var childSWhere = "select top(10) HItemID,职员名称 from " + tableView + " where 1=1 and ç»„织名称 = '" + sessionStorage["Organization"] + "' and (职员代码 like '%" + value + "%' or èŒå‘˜åç§° like '%" + value + "%') order by èŒå‘˜ä»£ç ";
                                        childPage.getData(childSWhere, tableView);
                                    }, 200);
                                }
                                , end: function () {
                                    childPage = null;
                                    currRowIndex = 0;
                                    if (childData != null) {
                                        $("#HEmpName").val(childData.职员名称);
                                        $("#HEmpID").val(childData.HItemID);
                                        getEmpInfoByHEmpID(childData.HItemID);
                                        childData = null;
                                    }
                                }
                            });
                        } else {
                            setTimeout(function () {
                                var value = $("#HEmpName").val().replace(/'/g,"");                                  //获取文本框最新值
                                currRowIndex = 0;
                                var tableView = "h_v_IF_EmployeeList";
                                var childSWhere = "select top(10) HItemID,职员名称 from " + tableView + " where 1=1 and ç»„织名称 = '" + sessionStorage["Organization"] + "' and (职员代码 like '%" + value + "%' or èŒå‘˜åç§° like '%" + value + "%') order by èŒå‘˜ä»£ç ";
                                childPage.getData(childSWhere, tableView);
                            }, 200);
                        }
                    } else {                                                    //如果按下的键位是 æ–¹å‘键,则调整窗口中 é€‰ä¸­è¡Œ çš„位置
                        if (event.key == "ArrowUp") {
                            currRowIndex--;
                            childPage.setSelectedRow(currRowIndex);
                        } else if (event.key == "ArrowDown") {
                            currRowIndex++;
                            childPage.setSelectedRow(currRowIndex);
                        } else if (event.key == "Enter") {
                            //手动失焦
                            var element = document.getElementById("HBillNo");
                            element.focus();
                            childPage.getSelectedData(currRowIndex);
                            if ($("#HEmpName").val() == "") {
                                $("#HEmpName").val("");
                                $("#HEmpID").val("0");
                                $("#HDeptID").val("0");
                                $("#HDeptName").val("");
                            } else {
                                $("#HEmpName").val(childData.职员名称);
                                $("#HEmpID").val(childData.HItemID);
                                getEmpInfoByHEmpID(childData.HItemID);
                            }
                            childPage = null;
                            currRowIndex = 0;
                            childData = null;
                        }
                    }
                });
                //#endregion
            });
            //#endregion
            //#endregion
            //#region è¡¨å¤´æŒ‰é’®è§¦å‘事件
@@ -2561,6 +2666,203 @@
            //#region è¡Œå†…快捷键筛选
            function set_GridCellCheck(obj) {
                $(document).off('keydown', ".layui-table-edit").on('keydown', '.layui-table-edit', function (e) {
                    //#region å­è¡¨æ–‡æœ¬æ¡†è¾“入后检索数据
                    if (event.key != "F7") {
                        var errKeys = ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight", "Enter"];
                        if (obj.event == "HMaterID") {                           //定位当前正在输入的文本框的列名
                            if ($.inArray(event.key, errKeys) == -1) {              //如果按下的键位不是 æ–¹å‘键,则刷新弹窗中的数据
                                if (childPage == null) {                            //判断当前子窗口是否已经打开,若未打卡,则打开页面,并获取子窗口的对象
                                    var offset = $(this).offset();                  //获取触发事件的元素的位置,用于定位子窗口打开的位置
                                    var innerHeight = window.innerHeight;
                                    var top = offset.top + 0.05 * innerHeight;
                                    var left = offset.left;
                                    if (top + 0.05 * innerHeight + 0.3 * innerHeight > innerHeight) {
                                        top = top - 0.3 * innerHeight - 0.05 * innerHeight;
                                    }
                                    layer.open({
                                        type: 2                                                                                     //弹窗类型
                                        , skin: 'layui-layer-rim'                                                                   //加上边框
                                        , area: ['25%', '30%']                                                                      //大小
                                        , shadeClose: true                                                                          //点击遮罩时关闭弹窗
                                        , offset: [top, left]
                                        , title: false                                                                              //不显示标题栏
                                        //, title: '项目费用列表'                                                                     //标题
                                        , shift: 2                                                                                  //弹出动画
                                        , closeBtn: 0                                                                               //禁用关闭按钮
                                        , content: ["../../基础资料/通用基础资料/Gy_CommonBaseData.html?OperationType=2", "yes"]
                                        , success: function (layero, index) {
                                            setTimeout(function () {
                                                var value = $(e.currentTarget).val().replace("'", "");                                  //获取文本框最新值
                                                currRowIndex = 0;
                                                var tableView = "h_v_Gy_MaterialList";
                                                var childSWhere = "select top(10) HItemID,物料代码,物料名称,规格型号,HUnitID,计量单位名称 from " + tableView + " where 1=1 and ç»„织名称 = '" + sessionStorage["Organization"] + "' and (物料代码 like '%" + value + "%' or ç‰©æ–™åç§° like '%" + value + "%') order by ç‰©æ–™ä»£ç  desc";
                                                childPage.getData(childSWhere, tableView);
                                            }, 200);
                                        }
                                        , end: function () {
                                            obj.event = "";
                                            childPage = null;
                                            currRowIndex = 0;
                                            if (childData != null) {
                                                var rowIndex = $(obj.tr).attr("data-index") * 1;
                                                var Dec = getDecByMaterID(childData.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"];  //金额精度
                                                //数值格式校验工具
                                                var ref = /^\d+(\.\d+)?$/;                                  //非负数正则表达式
                                                var temp = "";
                                                //获取选择物料前后的税率
                                                var value_TaxRate = subHTaxRate;                                    //选择物料后根据客户得到的税率
                                                var oldText = option.data[rowIndex].HTaxRate;           //该记录中原有的税率
                                                //税率数据格式校验,若根据客户获取的税率不合法,则使用记录中原有的税率,并提示
                                                temp = value_TaxRate + "";
                                                if (!ref.test(temp)) {
                                                    value_TaxRate = oldText;
                                                    layer.msg("获取到的税率不合法,已自动变更为原有税率!");
                                                }
                                                //数据校验合格,重算记录
                                                var HQty = option.data[rowIndex].HQty * 1;                  //数量
                                                var HPrice = option.data[rowIndex].HPrice * 1;              //单价
                                                var HTaxRate = value_TaxRate * 0.01;                                //税率
                                                /*var HDiscountRate = obj.data.HDiscountRate * 1;           //折扣率*/
                                                var HTaxPrice = HPrice * (1 + HTaxRate);                    //含税单价=单价*(1+税率)
                                                /*var HRelTaxPrice = HTaxPrice * HDiscountRate;             //实际含税单价=含税单价*折扣率*/
                                                //折扣额 = å«ç¨Žå•ä»· * (1 - æŠ˜æ‰£çއ) * æ•°é‡
                                                var HMoney = HQty * HPrice;                                 //金额=数量*单价
                                                var HTaxMoney = HMoney * HTaxRate;                          //税额=金额*税率
                                                var HlineTotal = HMoney + HTaxMoney;                        //价税合计=金额+税额
                                                //数字精度
                                                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));
                                                option.data[rowIndex].HMaterID = childData.HItemID;
                                                option.data[rowIndex].物料代码 = childData.物料代码;
                                                option.data[rowIndex].物料名称 = childData.物料名称;
                                                option.data[rowIndex].规格型号 = childData.规格型号;
                                                option.data[rowIndex].HUnitID = childData.HUnitID;
                                                option.data[rowIndex].计量单位 = childData.计量单位名称;
                                                option.data[rowIndex].HQty = HQty;
                                                option.data[rowIndex].HPrice = HPrice;
                                                option.data[rowIndex].HTaxRate = HTaxRate * 100;
                                                option.data[rowIndex].HTaxPrice = HTaxPrice;
                                                option.data[rowIndex].HMoney = HMoney;
                                                option.data[rowIndex].HlineTotal = HlineTotal;
                                                table.render(option);
                                                //刷新表格同时根据option中HisStockGoods值设置下拉列表
                                                setSelectHisStockGoodsByTableRender();
                                                //设置表头所需金额
                                                set_HBillMoney($("#HEarnestRate").val() * 1);
                                                childData = null;
                                            }
                                        }
                                    });
                                } else {
                                    setTimeout(function () {
                                        var value = $(e.currentTarget).val().replace("'", "");                                  //获取文本框最新值
                                        currRowIndex = 0;
                                        var tableView = "h_v_Gy_MaterialList";
                                        var childSWhere = "select top(10) HItemID,物料代码,物料名称,规格型号,HUnitID,计量单位名称 from " + tableView + " where 1=1 and ç»„织名称 = '" + sessionStorage["Organization"] + "' and (物料代码 like '%" + value + "%' or ç‰©æ–™åç§° like '%" + value + "%')  order by ç‰©æ–™ä»£ç  desc";
                                        childPage.getData(childSWhere, tableView);
                                    }, 200);
                                }
                            } else {                                                    //如果按下的键位是 æ–¹å‘键,则调整窗口中 é€‰ä¸­è¡Œ çš„位置
                                if (event.key == "ArrowUp") {
                                    currRowIndex--;
                                    childPage.setSelectedRow(currRowIndex);
                                } else if (event.key == "ArrowDown") {
                                    currRowIndex++;
                                    childPage.setSelectedRow(currRowIndex);
                                } else if (event.key == "Enter") {
                                    //手动失焦
                                    var element = document.getElementById("HBillNo");
                                    element.focus();
                                    childPage.getSelectedData(currRowIndex);
                                    var Dec = getDecByMaterID(childData.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"];  //金额精度
                                    //数值格式校验工具
                                    var ref = /^\d+(\.\d+)?$/;                                  //非负数正则表达式
                                    var temp = "";
                                    //获取选择物料前后的税率
                                    var value_TaxRate = subHTaxRate;                                    //选择物料后根据客户得到的税率
                                    var oldText = option.data[rowIndex].HTaxRate;           //该记录中原有的税率
                                    //税率数据格式校验,若根据客户获取的税率不合法,则使用记录中原有的税率,并提示
                                    temp = value_TaxRate + "";
                                    if (!ref.test(temp)) {
                                        value_TaxRate = oldText;
                                        layer.msg("获取到的税率不合法,已自动变更为原有税率!");
                                    }
                                    //数据校验合格,重算记录
                                    var HQty = option.data[rowIndex].HQty * 1;                  //数量
                                    var HPrice = option.data[rowIndex].HPrice * 1;              //单价
                                    var HTaxRate = value_TaxRate * 0.01;                                //税率
                                    /*var HDiscountRate = obj.data.HDiscountRate * 1;           //折扣率*/
                                    var HTaxPrice = HPrice * (1 + HTaxRate);                    //含税单价=单价*(1+税率)
                                    /*var HRelTaxPrice = HTaxPrice * HDiscountRate;             //实际含税单价=含税单价*折扣率*/
                                    //折扣额 = å«ç¨Žå•ä»· * (1 - æŠ˜æ‰£çއ) * æ•°é‡
                                    var HMoney = HQty * HPrice;                                 //金额=数量*单价
                                    var HTaxMoney = HMoney * HTaxRate;                          //税额=金额*税率
                                    var HlineTotal = HMoney + HTaxMoney;                        //价税合计=金额+税额
                                    //数字精度
                                    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));
                                    option.data[rowIndex].HMaterID = childData.HItemID;
                                    option.data[rowIndex].物料代码 = childData.物料代码;
                                    option.data[rowIndex].物料名称 = childData.物料名称;
                                    option.data[rowIndex].规格型号 = childData.规格型号;
                                    option.data[rowIndex].HUnitID = childData.HUnitID;
                                    option.data[rowIndex].计量单位 = childData.计量单位名称;
                                    option.data[rowIndex].HQty = HQty;
                                    option.data[rowIndex].HPrice = HPrice;
                                    option.data[rowIndex].HTaxRate = HTaxRate * 100;
                                    option.data[rowIndex].HTaxPrice = HTaxPrice;
                                    option.data[rowIndex].HMoney = HMoney;
                                    option.data[rowIndex].HlineTotal = HlineTotal;
                                    table.render(option);
                                    //刷新表格同时根据option中HisStockGoods值设置下拉列表
                                    setSelectHisStockGoodsByTableRender();
                                    //设置表头所需金额
                                    set_HBillMoney($("#HEarnestRate").val() * 1);
                                    childPage = null;
                                    currRowIndex = 0;
                                    childData = null;
                                    obj.event = "";
                                }
                            }
                        }
                    }
                    //#endregion
                    if (event.key == "F7") {
                        //物料
                        if (obj.event == "HMaterID") {