1
duhe
2024-08-15 40cd70d9a9d13001c1b6c2269334e8a363c562c3
WebTM/views/ÏúÊÛ¹ÜÀí/ÏúÊÛ¶©µ¥/Add_Edit_Xs_SeOrderBillList.html
@@ -744,7 +744,10 @@
                //数值格式校验工具
                var ref = /^\d+(\.\d+)?$/;          //非负数正则表达式
                var temp = "";
                var Dec = getDecByMaterID(obj.data.HMaterID) //获取精度
                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 oldText = $(this).prev().text();
                var value = obj.value //得到修改后的值
@@ -783,13 +786,12 @@
                        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);
                        //数字精度
                        HQty = Number(HQty.toFixed(HQtyDec));
                        HPrice = Number(HPrice.toFixed(HPriceDec));
                        HMoney = Number(HMoney.toFixed(HMoneyDec));
                        HlineTotal = Number(HlineTotal.toFixed(HMoneyDec));
                        HTaxPrice = Number(HPrice.toFixed(HPriceDec));
                        //同步更新表格和缓存对应的值
                        obj.update({
@@ -800,7 +802,7 @@
                            , HMoney: HMoney
                            , HlineTotal: HlineTotal
                        });
                        //table.render(option);
                        table.render(option);
                        //刷新表格同时根据option中HisStockGoods值设置下拉列表
                        setSelectHisStockGoodsByTableRender();
@@ -867,13 +869,12 @@
                        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);
                        //数字精度
                        HQty = Number(HQty.toFixed(HQtyDec));
                        HPrice = Number(HPrice.toFixed(HPriceDec));
                        HMoney = Number(HMoney.toFixed(HMoneyDec));
                        HlineTotal = Number(HlineTotal.toFixed(HMoneyDec));
                        HTaxPrice = Number(HPrice.toFixed(HPriceDec));
                        //同步更新表格和缓存对应的值
                        obj.update({
@@ -884,7 +885,7 @@
                            , HMoney: HMoney
                            , HlineTotal: HlineTotal
                        });
                        //table.render(option);
                        table.render(option);
                        //刷新表格同时根据option中HisStockGoods值设置下拉列表
                        setSelectHisStockGoodsByTableRender();
@@ -922,13 +923,12 @@
                        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);
                        //数字精度
                        HQty = Number(HQty.toFixed(HQtyDec));
                        HPrice = Number(HPrice.toFixed(HPriceDec));
                        HMoney = Number(HMoney.toFixed(HMoneyDec));
                        HlineTotal = Number(HlineTotal.toFixed(HMoneyDec));
                        HTaxPrice = Number(HPrice.toFixed(HPriceDec));
                        //同步更新表格和缓存对应的值
                        obj.update({
@@ -939,7 +939,7 @@
                            , HMoney: HMoney
                            , HlineTotal: HlineTotal
                        });
                        //table.render(option);
                        table.render(option);
                        //刷新表格同时根据option中HisStockGoods值设置下拉列表
                        setSelectHisStockGoodsByTableRender();
@@ -1007,13 +1007,12 @@
                        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);
                        //数字精度
                        HQty = Number(HQty.toFixed(HQtyDec));
                        HPrice = Number(HPrice.toFixed(HPriceDec));
                        HMoney = Number(HMoney.toFixed(HMoneyDec));
                        HlineTotal = Number(HlineTotal.toFixed(HMoneyDec));
                        HTaxPrice = Number(HPrice.toFixed(HPriceDec));
                        //同步更新表格和缓存对应的值
                        obj.update({
@@ -1024,7 +1023,7 @@
                            , HMoney: HMoney
                            , HlineTotal: HlineTotal
                        });
                        //table.render(option);
                        table.render(option);
                        //刷新表格同时根据option中HisStockGoods值设置下拉列表
                        setSelectHisStockGoodsByTableRender();
@@ -1448,7 +1447,7 @@
                                        "仓库": result.data[i]["子仓库"],
                                        "HQty": dealDoubleToFixed(result.data[i]["数量"], 1),
                                        "HPrice": dealDoubleToFixed(result.data[i]["单价"], 3),
                                        "HTaxPrice": dealDoubleToFixed(result.data[i]["含税单价"], 3),
                                        "HTaxPrice": dealDoubleToFixed(result.data[i]["HTaxPrice"], 3),
                                        "HMoney": dealDoubleToFixed(result.data[i]["金额"],2),
                                        "HDiscountRate": result.data[i]["折扣率"],
                                        "HRelTaxPrice": result.data[i]["实际含税单价"],
@@ -2575,13 +2574,17 @@
                                    var checkStatus = iframeWindow.layui.table.checkStatus("mainTable");//获取选中的数据
                                    var rowIndex = $(obj.tr).attr("data-index") * 1;
                                    var Dec = getDecByMaterID(obj.data.HMaterID) //获取精度
                                    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"];  //金额精度
                                    for (var i = 0; i < checkStatus.data.length; i++) {
                                        if (rowIndex + i >= option.data.length) {
                                            var NewRow = {
                                                "HMaterID": "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'), "HOutStockQty": "0", "HInvoiceQty": "0", "HRemark": "", "HCusMaterNumber": "",
                                                "HCusModel": "","HCusMaterName": ""
                                                "HCusModel": "", "HCusMaterName": ""
                                            }
                                            btnAddLine(NewRow);
                                        }
@@ -2604,8 +2607,8 @@
                                        }
                                        //数据校验合格,重算记录
                                        var HQty = option.data[rowIndex + i].HQty;                  //数量
                                        var HPrice = option.data[rowIndex + i].HPrice;              //单价
                                        var HQty = option.data[rowIndex + i].HQty * 1;                  //数量
                                        var HPrice = option.data[rowIndex + i].HPrice * 1;              //单价
                                        var HTaxRate = value * 0.01;                                //税率
                                        /*var HDiscountRate = obj.data.HDiscountRate * 1;           //折扣率*/
                                        var HTaxPrice = HPrice * (1 + HTaxRate);                    //含税单价=单价*(1+税率)
@@ -2614,7 +2617,13 @@
                                        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 + i].HMaterID = resultData.HItemID;
                                        option.data[rowIndex + i].物料代码 = resultData.物料代码;
@@ -2644,6 +2653,42 @@
                                }
                                , end: function () {
                                    if (typeof (HDataEmp.HItemID) != "undefined") {
                                        var value = subHTaxRate;
                                        //数值格式校验工具
                                        var ref = /^\d+(\.\d+)?$/;
                                        //税率数据格式校验,若根据客户获取的税率不合法,则使用记录中原有的税率,并提示
                                        temp = value + "";
                                        if (ref.test(temp)) {
                                            var Dec = getDecByMaterID(obj.data.HMaterID) //获取精度
                                            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 HQty = obj.data.HQty * 1;                           //数量
                                            var HPrice = obj.data.HPrice * 1;               //单价
                                            var HTaxRate = value * 0.01;           //税率
                                            var HTaxPrice = HPrice * (1 + HTaxRate);        //含税单价=单价*(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));
                                            HlineTotal = Number(HlineTotal.toFixed(HMoneyDec));
                                            HTaxPrice = Number(HPrice.toFixed(HPriceDec));
                                            //同步更新表格和缓存对应的值
                                            obj.update({
                                                HQty: HQty
                                                , HPrice: HPrice
                                                , HTaxRate: HTaxRate * 100
                                                , HTaxPrice: HTaxPrice
                                                , HMoney: HMoney
                                                , HlineTotal: HlineTotal
                                            });
                                        }
                                        //更新表格缓存的数据
                                        obj.update({
                                            "HMaterID": HDataEmp.HItemID
@@ -3145,6 +3190,156 @@
                    //#endregion
                })
                //双击
                $('.layui-table-box tbody td[data-field="物料代码"]').off('dblclick').on('dblclick', function () {
                    var HOrgID = $("#HOrgID").val();
                    layer.open({
                        type: 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");//获取选中的数据
                            var rowIndex = $(obj.tr).attr("data-index") * 1;
                            var Dec = getDecByMaterID(obj.data.HMaterID) //获取精度
                            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"];  //金额精度
                            for (var i = 0; i < checkStatus.data.length; i++) {
                                if (rowIndex + i >= option.data.length) {
                                    var NewRow = {
                                        "HMaterID": "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'), "HOutStockQty": "0", "HInvoiceQty": "0", "HRemark": "", "HCusMaterNumber": "",
                                        "HCusModel": "", "HCusMaterName": ""
                                    }
                                    btnAddLine(NewRow);
                                }
                                //获取选中的物料信息
                                var resultData = checkStatus.data[i];
                                //数值格式校验工具
                                var ref = /^\d+(\.\d+)?$/;                                  //非负数正则表达式
                                var temp = "";
                                //获取选择物料前后的税率
                                var value = subHTaxRate;                                    //选择物料后根据客户得到的税率
                                var oldText = option.data[rowIndex + i].HTaxRate;           //该记录中原有的税率
                                //税率数据格式校验,若根据客户获取的税率不合法,则使用记录中原有的税率,并提示
                                temp = value + "";
                                if (!ref.test(temp)) {
                                    value = oldText;
                                    layer.msg("获取到的税率不合法,已自动变更为原有税率!");
                                }
                                //数据校验合格,重算记录
                                var HQty = option.data[rowIndex + i].HQty * 1;                  //数量
                                var HPrice = option.data[rowIndex + i].HPrice * 1;              //单价
                                var HTaxRate = value * 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 + i].HMaterID = resultData.HItemID;
                                option.data[rowIndex + i].物料代码 = resultData.物料代码;
                                option.data[rowIndex + i].物料名称 = resultData.物料名称;
                                option.data[rowIndex + i].规格型号 = resultData.规格型号;
                                option.data[rowIndex + i].HUnitID = resultData.HUnitID;
                                option.data[rowIndex + i].计量单位 = resultData.计量单位名称;
                                option.data[rowIndex + i].HQty = HQty;
                                option.data[rowIndex + i].HPrice = HPrice;
                                option.data[rowIndex + i].HTaxRate = HTaxRate * 100;
                                option.data[rowIndex + i].HTaxPrice = HTaxPrice;
                                option.data[rowIndex + i].HMoney = HMoney;
                                option.data[rowIndex + i].HlineTotal = HlineTotal;
                            }
                            table.render(option);
                            //刷新表格同时根据option中HisStockGoods值设置下拉列表
                            setSelectHisStockGoodsByTableRender();
                            //设置表头所需金额
                            set_HBillMoney($("#HEarnestRate").val() * 1);
                            layer.close(index);//关闭弹窗
                        }
                        , end: function () {
                            if (typeof (HDataEmp.HItemID) != "undefined") {
                                var value = subHTaxRate;
                                //数值格式校验工具
                                var ref = /^\d+(\.\d+)?$/;
                                //税率数据格式校验,若根据客户获取的税率不合法,则使用记录中原有的税率,并提示
                                temp = value + "";
                                if (ref.test(temp)) {
                                    var Dec = getDecByMaterID(obj.data.HMaterID) //获取精度
                                    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 HQty = obj.data.HQty * 1;                           //数量
                                    var HPrice = obj.data.HPrice * 1;               //单价
                                    var HTaxRate = value * 0.01;           //税率
                                    var HTaxPrice = HPrice * (1 + HTaxRate);        //含税单价=单价*(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));
                                    HlineTotal = Number(HlineTotal.toFixed(HMoneyDec));
                                    HTaxPrice = Number(HPrice.toFixed(HPriceDec));
                                    //同步更新表格和缓存对应的值
                                    obj.update({
                                        HQty: HQty
                                        , HPrice: HPrice
                                        , HTaxRate: HTaxRate * 100
                                        , HTaxPrice: HTaxPrice
                                        , HMoney: HMoney
                                        , HlineTotal: HlineTotal
                                    });
                                }
                                //更新表格缓存的数据
                                obj.update({
                                    "HMaterID": HDataEmp.HItemID
                                    , "物料代码": HDataEmp.物料代码
                                    , "物料名称": HDataEmp.物料名称
                                    , "规格型号": HDataEmp.规格型号
                                    , "HUnitID": HDataEmp.HUnitID
                                    , "计量单位": HDataEmp.计量单位名称
                                })
                                HDataEmp = {};
                            }
                        }
                    })
                });
            }
            //#endregion
@@ -3546,6 +3741,32 @@
            }
            //#endregion
            //#region æ ¹æ®ç‰©æ–™ID获取精度
            function getDecByMaterID(HMaterID) {
                var resultData = {};
                $.ajax({  // å¼‚步请求
                    url: GetWEBURL() + "Gy_Material/getDecByID",  //请求地址
                    async: false,   //是否开启异步
                    type: "GET",   //请求类型
                    data: {   //定义发送到服务器的数据
                        "HMaterID": HMaterID     //  å°†hmaterid作为请求参数发送
                    },
                    success: function (result) {   // å½“请求成功时,执行这个函数
                        if (result.code == 1) { // å¦‚果服务器返回的数据中的`code字段等于1,这可能表示审核操作成功执行
                            var data = result.data; //声明data变量,并将其赋值为result对象中的data属性
                            resultData = data[0];   //将data数组(或类数组对象)的第一个元素赋值给变量resultData
                        }
                        //else {
                        //    layer.alert(result.Message, { icon: 5, btn: ['退出'], time: 100000, offset: 't' }); //result.msg对象,提示弹窗 ç±»åž‹ä¸º5, æŒ‰é’®ï¼Œå’ŒæŒ‰é’®çš„名称为退出  æ—¶é—´ ä¸º100秒,以及偏移量(`offset: 't'
                        //}
                    }, error: function () {
                        layer.alert("发生错误!", { icon: 5 });  //提示弹窗 å‘生错误 ï¼Œè­¦ç¤ºæ ‡å¿—为5的
                    }
                });
                return resultData;
            }
            //#endregion
            //#region åˆ·æ–°è¡¨æ ¼åŒæ—¶æ ¹æ®option中HisStockGoods值设置下拉列表
            function setSelectHisStockGoodsByTableRender() {
                for (var i = 1; i <= option.data.length; i++) {