1
陈雯静
2024-04-11 5f9ea9822d4ea62177565d1d8dcab4921f4e07c8
WebTM/views/ÏúÊÛ¹ÜÀí/ÏúÊÛ¶©µ¥/Add_Edit_Xs_SeOrderBillList.html
@@ -89,21 +89,21 @@
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label">销售部门</label>
                                            <div class="layui-input-inline">
                                                <input type="text" name="HDeptName" id="HDeptName" class="layui-input" value="" style="float: left; width: 150px; background-color: #efefef4d;" readonly>
                                                <input type="hidden" name="HDeptID" id="HDeptID" class="layui-input" value="0" style="float:left;width:150px;">
                                                <button type="button" lay-submit="" class="layui-btn" lay-filter="HDeptList" style="width:40px;">
                                                    <i class="layui-icon layui-icon-search layuiadmin-button-btn" style="margin-left:-9px;"></i>
                                                </button>
                                            </div>
                                        </div>
                                        <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="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>
                                                </button>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label">销售部门</label>
                                            <div class="layui-input-inline">
                                                <input type="text" name="HDeptName" id="HDeptName" class="layui-input" value="" style="float: left; width: 150px; background-color: #efefef4d;" readonly>
                                                <input type="hidden" name="HDeptID" id="HDeptID" class="layui-input" value="0" style="float:left;width:150px;">
                                                <button type="button" lay-submit="" class="layui-btn" lay-filter="HDeptList" style="width:40px;">
                                                    <i class="layui-icon layui-icon-search layuiadmin-button-btn" style="margin-left:-9px;"></i>
                                                </button>
                                            </div>
@@ -379,10 +379,12 @@
                    <script type="text/html" id="toolbarDemo">
                        <div class="layui-btn-container">
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-AddLine"><i class="layui-icon layui-icon-form"></i>增加一行</button>
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-AddLines"><i class="layui-icon layui-icon-form"></i>增加多行</button>
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-InsertLine"><i class="layui-icon layui-icon-form"></i>插入一行</button>
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-CopyLine"><i class="layui-icon layui-icon-form"></i>复制一行</button>
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Up"><i class="layui-icon layui-icon-form"></i>上移</button>
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Under"><i class="layui-icon layui-icon-form"></i>下移</button>
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-batchDelete"><i class="layui-icon layui-icon-form"></i>批量删除</button>
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideColumn"><i class="layui-icon layui-icon-form"></i>列设置</button>
                        </div>
                    </script>
@@ -437,6 +439,10 @@
            var params = get_UrlVars();
            var OperationType = params[params[0]]; //从参数中获取 æ•°æ®ç±»åž‹  1添加 ä¿å­˜  2复制  3 ç¼–辑
            var linterid = params[params[1]]; //从参数中获取 å•据内码
            //需要批量删除的列表
            var btnBatchDeleteList = [];
            //#endregion
@@ -464,7 +470,7 @@
                //加载表体和表体数据
                RoadBillMain(linterid);
                //根据销售订单类型设置子表是否取库存选项
                setHisStockGoodsByHBillSubType();
                setHisStockGoodsByHBillSubType_For_RoadBillMain();
                //根据是否取库存获取定金比例
                setHEarnestRateByHisStockGoods();
@@ -489,7 +495,7 @@
                //加载表体和表体数据
                RoadBillMain(linterid);
                //根据销售订单类型设置子表是否取库存选项
                setHisStockGoodsByHBillSubType();
                setHisStockGoodsByHBillSubType_For_RoadBillMain();
                //根据是否取库存获取定金比例
                setHEarnestRateByHisStockGoods();
@@ -647,6 +653,9 @@
                    //新增一行
                    case 'btn-AddLine': btnAddLine(NewRow);
                        break;
                    //新增一行
                    case 'btn-AddLines': btnAddLines(NewRow);
                        break;
                    //复制一行
                    case 'btn-CopyLine': btnCopyLine(data);
                        break;
@@ -658,6 +667,9 @@
                        break;
                    //下移
                    case 'btn-Under': btn_under();
                        break;
                    //批量删除
                    case 'btn-batchDelete': btn_batchDelete();
                        break;
                    //列设置
                    case 'set_HideColumn':
@@ -671,6 +683,7 @@
            table.on('tool(mainTable)', function (obj) {
                set_GridDelete(obj);   //行内删除
                set_GridCellCheck(obj); //行内快捷键筛选
                //设置 å‘è´§æ—¶é—´
                if (obj.event == 'HDate') {
                    var data = obj.data;
@@ -750,7 +763,7 @@
                            , HMoney: HMoney
                            , HlineTotal: HlineTotal
                        });
                        table.render(option);
                        //table.render(option);
                        //刷新表格同时根据option中HisStockGoods值设置下拉列表
                        setSelectHisStockGoodsByTableRender();
@@ -834,7 +847,7 @@
                            , HMoney: HMoney
                            , HlineTotal: HlineTotal
                        });
                        table.render(option);
                        //table.render(option);
                        //刷新表格同时根据option中HisStockGoods值设置下拉列表
                        setSelectHisStockGoodsByTableRender();
@@ -889,7 +902,7 @@
                            , HMoney: HMoney
                            , HlineTotal: HlineTotal
                        });
                        table.render(option);
                        //table.render(option);
                        //刷新表格同时根据option中HisStockGoods值设置下拉列表
                        setSelectHisStockGoodsByTableRender();
@@ -974,7 +987,7 @@
                            , HMoney: HMoney
                            , HlineTotal: HlineTotal
                        });
                        table.render(option);
                        //table.render(option);
                        //刷新表格同时根据option中HisStockGoods值设置下拉列表
                        setSelectHisStockGoodsByTableRender();
@@ -984,6 +997,32 @@
                        break;
                    default:
                }
            });
            //#endregion
            //#region ç›‘听复选框选中事件
            table.on('checkbox(mainTable)', function (obj) {
                //获取选中行的索引列表
                var rowIndex = $(obj.tr).attr("data-index");
                if (typeof (rowIndex) == "undefined") {
                    if (btnBatchDeleteList.length == option.data.length) {
                        btnBatchDeleteList = [];
                    } else {
                        btnBatchDeleteList = [];
                        for (var i = 0; i < option.data.length; i++) {
                            btnBatchDeleteList.push(i + "");
                        }
                    }
                } else {
                    if ($.inArray(rowIndex, btnBatchDeleteList) > -1) {
                        var btnBatchDeleteList_New = btnBatchDeleteList.filter(item => item !== rowIndex);
                        btnBatchDeleteList = btnBatchDeleteList_New;
                    } else {
                        btnBatchDeleteList.push(rowIndex);
                    }
                }
                console.log(btnBatchDeleteList);
            });
            //#endregion
            //#endregion
@@ -1162,17 +1201,17 @@
                        , { field: 'HUnitID', title: 'HUnitID', width: 100, hide: true, style: 'background-color:#efefef4d;' }
                        , { field: '计量单位', title: '计量单位', width: 100, style: 'background-color:#efefef4d;' }//f7
                        , { field: 'HisStockGoods', title: '是否取库存', width: 120, templet: '#HisStockGoods' }
                        , { field: 'HQty', title: '数量', width: 100, totalRow: true, edit: 'text' }
                        , { field: 'HPrice', title: '单价', width: 100, edit: 'text' }
                        , { field: 'HTaxRate', title: '税率%', width: 100, edit: 'text' }
                        , { field: 'HTaxPrice', title: '含税单价', width: 100, edit: 'text' }
                        , { field: 'HQty', title: '数量', width: 100, totalRow: true, edit: 'text', event: "HQty" }
                        , { field: 'HPrice', title: '单价', width: 100, edit: 'text', event: "HPrice" }
                        , { field: 'HTaxRate', title: '税率%', width: 100, edit: 'text', event: "HTaxRate" }
                        , { field: 'HTaxPrice', title: '含税单价', width: 100, edit: 'text', event: "HTaxPrice" }
                        , { field: 'HMoney', title: '金额', width: 100, totalRow: true, style: 'background-color:#efefef4d;' }
                        , { field: 'HlineTotal', title: '价税合计', width: 100, totalRow: true, style: 'background-color:#efefef4d;' }
                        , { field: 'HCusMaterName', title: '客户物料名称', width: 100, edit: 'text' }
                        , { field: 'HCusMaterNumber', title: '客户物料编码', width: 100, edit: 'text' }
                        , { field: 'HCusModel', title: '客户规格型号', width: 100, edit: 'text' }
                        , { field: 'HDate', title: '交货日期', event: "HDate", width: 120 }
                        , { field: 'HRemark', title: '备注', width: 100, edit: 'text' }
                        , { field: 'HRemark', title: '备注', width: 100, edit: 'text', event: "HRemark" }
                        , { field: 'HDiscountRate', title: '折扣率', width: 100, edit: 'text', hide: true }
                        , { field: 'HRelTaxPrice', title: '实际含税单价', width: 110, hide: true }
                        , { field: 'HTaxMoney', title: '税额', width: 100, hide: true }
@@ -1385,8 +1424,8 @@
                            option.data = rowdata;
                            //出库数量、开票数量不可编辑
                            option.cols[0][22].edit = null;
                            option.cols[0][23].edit = null;
                            //option.cols[0][22].edit = null;
                            //option.cols[0][23].edit = null;
                            table.render(option);
@@ -1433,11 +1472,15 @@
                        }
                        $("#HEmpName").val(checkStatus.data[0].HName);
                        $("#HEmpID").val(checkStatus.data[0].HItemID);
                        getEmpInfoByHEmpID(checkStatus.data[0].HItemID);
                        layer.close(index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                    }
                    , btn2: function (index, layero) {
                        $("#HEmpName").val("");
                        $("#HEmpID").val("0");
                        getEmpInfoByHEmpID("0");
                    }
                })
            }
@@ -1452,7 +1495,7 @@
                    , area: ['90%', '90%']//大小
                    , title: '客户列表'//标题
                    , shift: 2//弹出动画
                    , content: ['../../Baseset/基础资料/Gy_CustomerList.html?Type=1&openType=3&HEmp=' + HEmpID, 'yes']
                    , content: ['../../Baseset/基础资料/Gy_CustomerList.html', 'yes']
                    , btn: ['确定', '取消']
                    , btn1: function (index, layero) {//按钮【按钮一】的回调
                        var iframeWindow = window['layui-layer-iframe' + index]  //获取弹框页面
@@ -1761,8 +1804,7 @@
                //#region å­è¡¨ æ•°æ®æ£€éªŒ
                for (var i = 0; i < option.data.length; i++) {
                    if (option.data[i]["HMaterID"] == "0") {
                        layer.msg("第" + i + "行:物料未选择!");
                        return false;
                        continue;
                    }
                    if (option.data[i]["HUnitID"] == "0") {
@@ -1929,15 +1971,15 @@
                //#endregion
                //#region å­è¡¨ å…³é”®å­—重复校验
                var num = [];
                for (var i = 0; i < option.data.length; i++) {
                    if ($.inArray(option.data[i]["HMaterID"], num) == -1) {
                        num.push(option.data[i]["HMaterID"]);
                    } else {
                        layer.msg("第" + (i + 1) + "行,物料:" + option.data[i]["HMaterID"] + "重复!");
                        return false;
                    }
                }
                //var num = [];
                //for (var i = 0; i < option.data.length; i++) {
                //    if ($.inArray(option.data[i]["HMaterID"], num) == -1) {
                //        num.push(option.data[i]["HMaterID"]);
                //    } else {
                //        layer.msg("第" + (i + 1) + "行,物料:" + option.data[i]["HMaterID"] + "重复!");
                //        return false;
                //    }
                //}
                //#endregion
                return true;
            }
@@ -1966,6 +2008,141 @@
                set_HBillMoney($("#HEarnestRate").val() * 1);
                //rows++;
                layer.msg('增加一行按钮!')
            }
            //#endregion
            //#region åœ¨æœ«å°¾å¢žåŠ æŒ‡å®šæ•°é‡çš„è¡Œ
            function btnAddLines(Row) {
                layer.prompt({ formType: 2, title: "请输入需要新增的行数", value: '1' },
                    function (value, index) {
                        //数值格式校验工具
                        var ref = /^[1-9]\d*$/;          //正整数正则表达式
                        var temp = "";
                        //数据校验
                        temp = value;
                        if (!ref.test(temp) || temp == "0") {
                            layer.msg("请输入大于0的整数");
                            return false;
                        } else if (temp * 1 > 50) {
                            layer.confirm("新增行数超过50行,是否确定新增?", function (index1) {
                                var RowsCount = value * 1;
                                for (var i = 0; i < RowsCount; i++) {
                                    var NewRow = {
                                        "HMaterID": "0",
                                        "物料代码": "",
                                        "物料名称": "",
                                        "HOrderLevID": "0",
                                        "订单等级代码": "",
                                        "订单等级名称": "",
                                        "规格型号": "",
                                        "HUnitID": "0",
                                        "计量单位": "",
                                        "HQty": "0",
                                        "HPrice": "0",
                                        "HTaxPrice": "0",
                                        "HMoney": "0",
                                        "HDiscountRate": "0",
                                        "HRelTaxPrice": "0",
                                        "HTaxRate": "0",
                                        "HTaxMoney": "0",
                                        "HlineTotal": "0",
                                        "HlineTotalBB": "0",
                                        "HDate": Format(new Date(), 'yyyy-MM-dd'),
                                        "HisStockGoods": "false",
                                        "HOutStockQty": "0",
                                        "HInvoiceQty": "0",
                                        "HRemark": "",
                                        "HCusMaterNumber": "",
                                        "HCusModel": "",
                                        "HCusMaterName": "",
                                        "HRelationQty": "0",
                                        "HRelationQty_SellOutCheck": "0",
                                        "HRelationMoney_SellOutCheck": "0",
                                        "HRelationQty_ICMO": "0",
                                        "HRelationQty_SellBack": "0",
                                        "HRelationQty_SellBackCheck": "0"
                                    };
                                    if (option.data.length > 0) {
                                        NewRow.HisStockGoods = option.data[0]["HisStockGoods"];
                                    } else {
                                        NewRow.HisStockGoods = "false";
                                    }
                                    table.cache["mainTable"].push(NewRow);
                                }
                                option.data = table.cache["mainTable"];
                                table.render(option);
                                //刷新表格同时根据option中HisStockGoods值设置下拉列表
                                setSelectHisStockGoodsByTableRender();
                                //根据是否取库存获取定金比例
                                //setHEarnestRateByHisStockGoods();
                                //设置表头所需金额
                                set_HBillMoney($("#HEarnestRate").val() * 1);
                                layer.close(index1);
                                layer.close(index);
                            })
                        } else {
                            var RowsCount = value * 1;
                            for (var i = 0; i < RowsCount; i++) {
                                var NewRow = {
                                    "HMaterID": "0",
                                    "物料代码": "",
                                    "物料名称": "",
                                    "HOrderLevID": "0",
                                    "订单等级代码": "",
                                    "订单等级名称": "",
                                    "规格型号": "",
                                    "HUnitID": "0",
                                    "计量单位": "",
                                    "HQty": "0",
                                    "HPrice": "0",
                                    "HTaxPrice": "0",
                                    "HMoney": "0",
                                    "HDiscountRate": "0",
                                    "HRelTaxPrice": "0",
                                    "HTaxRate": "0",
                                    "HTaxMoney": "0",
                                    "HlineTotal": "0",
                                    "HlineTotalBB": "0",
                                    "HDate": Format(new Date(), 'yyyy-MM-dd'),
                                    "HisStockGoods": "false",
                                    "HOutStockQty": "0",
                                    "HInvoiceQty": "0",
                                    "HRemark": "",
                                    "HCusMaterNumber": "",
                                    "HCusModel": "",
                                    "HCusMaterName": "",
                                    "HRelationQty": "0",
                                    "HRelationQty_SellOutCheck": "0",
                                    "HRelationMoney_SellOutCheck": "0",
                                    "HRelationQty_ICMO": "0",
                                    "HRelationQty_SellBack": "0",
                                    "HRelationQty_SellBackCheck": "0"
                                };
                                if (option.data.length > 0) {
                                    NewRow.HisStockGoods = option.data[0]["HisStockGoods"];
                                } else {
                                    NewRow.HisStockGoods = "false";
                                }
                                table.cache["mainTable"].push(NewRow);
                            }
                            option.data = table.cache["mainTable"];
                            table.render(option);
                            //刷新表格同时根据option中HisStockGoods值设置下拉列表
                            setSelectHisStockGoodsByTableRender();
                            //根据是否取库存获取定金比例
                            //setHEarnestRateByHisStockGoods();
                            //设置表头所需金额
                            set_HBillMoney($("#HEarnestRate").val() * 1);
                            layer.close(index);
                        }
                    });
            }
            //#endregion
@@ -2115,6 +2292,30 @@
            }
            //#endregion
            //#region æ‰¹é‡åˆ é™¤
            function btn_batchDelete() {
                var data = [];
                for (var i = 0; i < option.data.length; i++) {
                    if ($.inArray(i+"", btnBatchDeleteList) == -1) {
                        data.push(option.data[i]);
                    }
                }
                option.data = data;
                table.render(option);
                btnBatchDeleteList = [];
                //刷新表格同时根据option中HisStockGoods值设置下拉列表
                setSelectHisStockGoodsByTableRender();
                //根据是否取库存获取定金比例
                //setHEarnestRateByHisStockGoods();
                //设置表头所需金额
                set_HBillMoney($("#HEarnestRate").val() * 1);
            }
            //#endregion
            //#region è¡¨æ ¼è¡Œå†…事件删除
            function set_GridDelete(obj) {
                var data = obj.data;
@@ -2131,6 +2332,15 @@
                            oldData.splice(obj.tr.data('index'), 1);
                            option.data = oldData;
                            table.render(option);
                            //更新批量删除索引列表
                            var btnBatchDeleteList_New = btnBatchDeleteList.filter(item => item !== rowIndex);
                            btnBatchDeleteList = btnBatchDeleteList_New;
                            for (var i = 0; i < btnBatchDeleteList.length; i++) {
                                if (btnBatchDeleteList[i] * 1 > rowIndex * 1) {
                                    btnBatchDeleteList[i] = (btnBatchDeleteList[i] * 1 - 1) + "";
                                }
                            }
                            //刷新表格同时根据option中HisStockGoods值设置下拉列表
                            setSelectHisStockGoodsByTableRender();
@@ -2322,10 +2532,332 @@
                                }
                            })
                        }
                        //obj.event = "";
                        return false;
                    }
                    //#region æ‰¹é‡å¡«å……
                    //数值格式校验工具
                    var ref = /^\d+(\.\d+)?$/;          //非负数正则表达式
                    var temp = "";
                    //操作行索引
                    var rowIndex = $(obj.tr).attr("data-index");
                    if (event.key == "F6") {
                        //数量
                        if (obj.event == "HQty") {
                            var oldText = table.cache["mainTable"][rowIndex].HQty;
                            var value = e.target.value; //得到修改后的值
                            //数据格式校验
                            temp = value + "";
                            if (!ref.test(temp) || temp == 0) {
                                //恢复数据到编辑前
                                option.data[rowIndex].HQty = oldText;
                                table.render(option);
                                //刷新表格同时根据option中HisStockGoods值设置下拉列表
                                setSelectHisStockGoodsByTableRender();
                                layer.msg("数量请输入大于0的数字!");
                                return;
                            }
                            for (var i = rowIndex * 1; i < option.data.length; i++) {
                                //数据校验合格,重算记录
                                var HQty = value * 1;                           //数量
                                var HPrice = option.data[i].HPrice * 1;               //单价
                                var HTaxRate = option.data[i].HTaxRate * 0.01;           //税率
                                /*var HDiscountRate = option.data[i].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 = dealDoubleToFixed(HQty, 1);
                                HPrice = dealDoubleToFixed(HPrice, 3);
                                HTaxRate = HTaxRate;
                                HTaxPrice = dealDoubleToFixed(HTaxPrice, 3);
                                HMoney = dealDoubleToFixed(HMoney, 2);
                                HlineTotal = dealDoubleToFixed(HlineTotal, 2);
                                //同步更新表格和缓存对应的值
                                option.data[i].HQty = HQty;
                                option.data[i].HPrice = HPrice;
                                option.data[i].HTaxRate = HTaxRate * 100;
                                option.data[i].HTaxPrice = HTaxPrice;
                                option.data[i].HMoney = HMoney;
                                option.data[i].HlineTotal = HlineTotal;
                            }
                            table.render(option);
                            //刷新表格同时根据option中HisStockGoods值设置下拉列表
                            setSelectHisStockGoodsByTableRender();
                            //设置表头所需金额
                            set_HBillMoney($("#HEarnestRate").val() * 1);
                        }
                        //单价
                        if (obj.event == "HPrice") {
                            var oldText = table.cache["mainTable"][rowIndex].HPrice;
                            var value = e.target.value; //得到修改后的值
                            //数据格式校验
                            temp = value + "";
                            if ($("#HBillSubType").val() == "0") {
                                if (!ref.test(temp) || temp == 0) {
                                    //恢复数据到编辑前
                                    option.data[rowIndex].HPrice = oldText;
                                    table.render(option);
                                    //刷新表格同时根据option中HisStockGoods值设置下拉列表
                                    setSelectHisStockGoodsByTableRender();
                                    layer.msg("单价请输入大于0的数字!");
                                    return;
                                }
                            } else if ($("#HBillSubType").val() == "1") {
                                if (!ref.test(temp)) {
                                    //恢复数据到编辑前
                                    option.data[rowIndex].HPrice = oldText;
                                    table.render(option);
                                    //刷新表格同时根据option中HisStockGoods值设置下拉列表
                                    setSelectHisStockGoodsByTableRender();
                                    layer.msg("单价请输入不小于0的数字!");
                                    return;
                                }
                            } else {
                                if (!ref.test(temp)) {
                                    //恢复数据到编辑前
                                    option.data[rowIndex].HPrice = oldText;
                                    table.render(option);
                                    //刷新表格同时根据option中HisStockGoods值设置下拉列表
                                    setSelectHisStockGoodsByTableRender();
                                    layer.msg("单价请输入不小于0的数字!");
                                    return;
                                }
                            }
                            //数据校验合格,重算记录
                            for (var i = rowIndex * 1; i < option.data.length; i++) {
                                //数据校验合格,重算记录
                                var HQty = option.data[i].HQty * 1;                           //数量
                                var HPrice = value * 1;               //单价
                                var HTaxRate = option.data[i].HTaxRate * 0.01;           //税率
                                /*var HDiscountRate = option.data[i].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 = dealDoubleToFixed(HQty, 1);
                                HPrice = dealDoubleToFixed(HPrice, 3);
                                HTaxRate = HTaxRate;
                                HTaxPrice = dealDoubleToFixed(HTaxPrice, 3);
                                HMoney = dealDoubleToFixed(HMoney, 2);
                                HlineTotal = dealDoubleToFixed(HlineTotal, 2);
                                //同步更新表格和缓存对应的值
                                option.data[i].HQty = HQty;
                                option.data[i].HPrice = HPrice;
                                option.data[i].HTaxRate = HTaxRate * 100;
                                option.data[i].HTaxPrice = HTaxPrice;
                                option.data[i].HMoney = HMoney;
                                option.data[i].HlineTotal = HlineTotal;
                            }
                            table.render(option);
                            //刷新表格同时根据option中HisStockGoods值设置下拉列表
                            setSelectHisStockGoodsByTableRender();
                            //设置表头所需金额
                            set_HBillMoney($("#HEarnestRate").val() * 1);
                        }
                        //税率
                        if (obj.event == "HTaxRate") {
                            var oldText = table.cache["mainTable"][rowIndex].HTaxRate;
                            var value = e.target.value; //得到修改后的值
                            //数据格式校验
                            temp = value + "";
                            if (!ref.test(temp)) {
                                //恢复数据到编辑前
                                option.data[rowIndex].HTaxRate = oldText;
                                table.render(option);
                                //刷新表格同时根据option中HisStockGoods值设置下拉列表
                                setSelectHisStockGoodsByTableRender();
                                layer.msg("税率请输入不小于0的数字!");
                                return;
                            }
                            for (var i = rowIndex * 1; i < option.data.length; i++) {
                                //数据校验合格,重算记录
                                var HQty = option.data[i].HQty * 1;                           //数量
                                var HPrice = option.data[i].HPrice * 1;               //单价
                                var HTaxRate = value * 1 * 0.01;           //税率
                                /*var HDiscountRate = option.data[i].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 = dealDoubleToFixed(HQty, 1);
                                HPrice = dealDoubleToFixed(HPrice, 3);
                                HTaxRate = HTaxRate;
                                HTaxPrice = dealDoubleToFixed(HTaxPrice, 3);
                                HMoney = dealDoubleToFixed(HMoney, 2);
                                HlineTotal = dealDoubleToFixed(HlineTotal, 2);
                                //同步更新表格和缓存对应的值
                                option.data[i].HQty = HQty;
                                option.data[i].HPrice = HPrice;
                                option.data[i].HTaxRate = HTaxRate * 100;
                                option.data[i].HTaxPrice = HTaxPrice;
                                option.data[i].HMoney = HMoney;
                                option.data[i].HlineTotal = HlineTotal;
                            }
                            table.render(option);
                            //刷新表格同时根据option中HisStockGoods值设置下拉列表
                            setSelectHisStockGoodsByTableRender();
                            //设置表头所需金额
                            set_HBillMoney($("#HEarnestRate").val() * 1);
                        }
                        //含税单价
                        if (obj.event == "HTaxPrice") {
                            var oldText = table.cache["mainTable"][rowIndex].HTaxPrice;
                            var value = e.target.value; //得到修改后的值
                            //数据格式校验
                            temp = value + "";
                            if ($("#HBillSubType").val() == "0") {
                                if (!ref.test(temp) || temp == 0) {
                                    //恢复数据到编辑前
                                    option.data[rowIndex].HTaxPrice = oldText;
                                    table.render(option);
                                    //刷新表格同时根据option中HisStockGoods值设置下拉列表
                                    setSelectHisStockGoodsByTableRender();
                                    layer.msg("含税单价请输入大于0的数字!");
                                    return;
                                }
                            } else if ($("#HBillSubType").val() == "1") {
                                if (!ref.test(temp)) {
                                    //恢复数据到编辑前
                                    option.data[rowIndex].HTaxPrice = oldText;
                                    table.render(option);
                                    //刷新表格同时根据option中HisStockGoods值设置下拉列表
                                    setSelectHisStockGoodsByTableRender();
                                    layer.msg("含税单价请输入不小于0的数字!");
                                    return;
                                }
                            } else {
                                if (!ref.test(temp)) {
                                    //恢复数据到编辑前
                                    option.data[rowIndex].HTaxPrice = oldText;
                                    table.render(option);
                                    //刷新表格同时根据option中HisStockGoods值设置下拉列表
                                    setSelectHisStockGoodsByTableRender();
                                    layer.msg("含税单价请输入不小于0的数字!");
                                    return;
                                }
                            }
                            //数据校验合格,重算记录
                            for (var i = rowIndex * 1; i < option.data.length; i++) {
                                //数据校验合格,重算记录
                                var HQty = option.data[i].HQty * 1;                           //数量
                                var HTaxRate = option.data[i].HTaxRate * 0.01;           //税率
                                /*var HDiscountRate = option.data[i].HDiscountRate * 1; //折扣率*/
                                var HTaxPrice = value * 1;;        //含税单价=单价*(1+税率)
                                var HPrice = HTaxPrice / (1 + HTaxRate);        //单价=含税单据/(1+税率)
                                /*var HRelTaxPrice = HTaxPrice * HDiscountRate;   //实际含税单价=含税单价*折扣率*/
                                //折扣额 = å«ç¨Žå•ä»· * (1 - æŠ˜æ‰£çއ) * æ•°é‡
                                var HMoney = HQty * HPrice;                     //金额=数量*单价
                                var HTaxMoney = HMoney * HTaxRate;              //税额=金额*税率
                                var HlineTotal = HMoney + HTaxMoney;            //价税合计=金额+税额
                                //设置数据小数位数
                                HQty = dealDoubleToFixed(HQty, 1);
                                HPrice = dealDoubleToFixed(HPrice, 3);
                                HTaxRate = HTaxRate;
                                HTaxPrice = dealDoubleToFixed(HTaxPrice, 3);
                                HMoney = dealDoubleToFixed(HMoney, 2);
                                HlineTotal = dealDoubleToFixed(HlineTotal, 2);
                                //同步更新表格和缓存对应的值
                                option.data[i].HQty = HQty;
                                option.data[i].HPrice = HPrice;
                                option.data[i].HTaxRate = HTaxRate * 100;
                                option.data[i].HTaxPrice = HTaxPrice;
                                option.data[i].HMoney = HMoney;
                                option.data[i].HlineTotal = HlineTotal;
                            }
                            table.render(option);
                            //刷新表格同时根据option中HisStockGoods值设置下拉列表
                            setSelectHisStockGoodsByTableRender();
                            //设置表头所需金额
                            set_HBillMoney($("#HEarnestRate").val() * 1);
                        }
                        //备注
                        if (obj.event == "HRemark") {
                            var oldText = table.cache["mainTable"][rowIndex].HRemark;
                            var value = e.target.value; //得到修改后的值
                            //数据校验合格,重算记录
                            for (var i = rowIndex * 1; i < option.data.length; i++) {
                                option.data[i].HRemark = value;
                            }
                            table.render(option);
                            //刷新表格同时根据option中HisStockGoods值设置下拉列表
                            setSelectHisStockGoodsByTableRender();
                            //设置表头所需金额
                            set_HBillMoney($("#HEarnestRate").val() * 1);
                        }
                        obj.event = "";
                        return false;
                    }
                    //#endregion
                })
            }
            //#endregion
@@ -2617,6 +3149,39 @@
            }
            //#endregion
            //#region æ ¹æ®é”€å”®è®¢å•类型设置子表是否取库存选项——编辑、复制初始化设置子表是否取库存
            function setHisStockGoodsByHBillSubType_For_RoadBillMain() {
                if ($("#HBillSubType").val() == "0") {
                    //设置子表是否取库存字段值
                    //for (var i = 1; i <= option.data.length; i++) {
                    //    option.data[i - 1].HisStockGoods = "false";
                    //}
                    //重新渲染子表是否取库存下拉列表并赋值
                    var HisStockGoodsList = '<option value="false">否</option>';
                    HisStockGoodsList += '<option value="true">是</option>';
                    for (var i = 1; i <= option.data.length; i++) {
                        $('#HisStockGoods' + i + '').empty();
                        $('#HisStockGoods' + i + '').append(HisStockGoodsList);
                        $('#HisStockGoods' + i + '').val(option.data[i - 1].HisStockGoods);
                    }
                    form.render('select');
                } else if ($("#HBillSubType").val() == "1") {
                    //设置子表是否取库存字段值
                    for (var i = 1; i <= option.data.length; i++) {
                        option.data[i - 1].HisStockGoods = "true";
                    }
                    //重新渲染子表是否取库存下拉列表并赋值
                    var HisStockGoodsList = '<option value="true">是</option>';
                    for (var i = 1; i <= option.data.length; i++) {
                        $('#HisStockGoods' + i + '').empty();
                        $('#HisStockGoods' + i + '').append(HisStockGoodsList);
                        $('#HisStockGoods' + i + '').val(option.data[i - 1].HisStockGoods);
                    }
                    form.render('select');
                }
            }
            //#endregion
            //#region èŽ·å–æºå•-销售订单单据状态
            function getSourceBillStatus_SeOrderBill() {
                var HSourceBillData = "none";
@@ -2661,6 +3226,8 @@
        {
            $("#HEmpName").val(obj[0].HName);
            $("#HEmpID").val(obj[0].HItemID);
            getEmpInfoByHEmpID(obj[0].HItemID)
        }
        function GetHSupValue(obj)  //返回客户
@@ -2765,6 +3332,7 @@
                type: "GET",
                data: {
                    "HCusID": HCusID
                    , "CurUserName": sessionStorage["HUserName"]
                },
                success: function (result) {
                    if (result.code == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
@@ -2774,7 +3342,38 @@
                        $("#HCreditRating_Now").val(data.HCreditRating_Now == null ? 0 : data.HCreditRating_Now);
                        $("#HAvailableBalance").val(data.HAvailableBalance == null ? 0 : data.HAvailableBalance);
                    } else {
                        layer.alert(result.Message, { icon: 5, btn: ['退出'], time: 100000, offset: 't' });
                        $("#HCusBalance").val("");
                        $("#HCreditRating_Now").val("");
                        $("#HAvailableBalance").val("");
                        //layer.alert(result.Message, { icon: 5});
                    }
                }, error: function () {
                    layer.alert("发生错误!", { icon: 5 });
                    $("#HCusBalance").val("");
                    $("#HCreditRating_Now").val("");
                    $("#HAvailableBalance").val("");
                }
            });
        }
        //#endregion
        //#region æ ¹æ®èŒå‘˜èŽ·å–éƒ¨é—¨
        function getEmpInfoByHEmpID(HEmpID) {
            $.ajax({
                url: GetWEBURL() + "/Xs_SeOrderBill/getEmpInfoByHEmpID",
                async: false,
                type: "GET",
                data: {
                    "HEmpID": HEmpID
                },
                success: function (result) {
                    if (result.code == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
                        var data = result.data[0];
                        $("#HDeptID").val(data.HDeptID);
                        $("#HDeptName").val(data.HDeptName);
                    } else {
                        layer.alert(result.Message, { icon: 5 });
                    }
                }, error: function () {
                    layer.alert("发生错误!", { icon: 5 });