duhe
2024-07-03 5369fee6bde3aad82af136dfd46d4da343854094
WebTM/views/Ó¦ÊÕ¹ÜÀí/±¨±í·ÖÎö/Kf_SellOutEntryReport.html
@@ -164,9 +164,15 @@
                            <div class="layui-btn-container">
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="get_Refresh" id="get_Refresh"><i class="layui-icon layui-icon-refresh-3"></i>刷新</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="get_Exit" id="get_Exit"><i class="layui-icon layui-icon-logout"></i>退出</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="get_export" id="get_export"><i class="layui-icon layui-icon-export"></i>导出</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="get_export_normal" id="get_export_normal"><i class="layui-icon layui-icon-export"></i>导出(常规)</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="get_export" id="get_export"><i class="layui-icon layui-icon-export"></i>导出(特殊)</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideColumn" id="set_HideColumn"><i class="layui-icon layui-icon-form"></i>列设置</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="HideButton" id="HideButton"><i class="layui-icon layui-icon-form"></i>按钮设置</button>
                            </div>
                        </script>
                        <script type="text/html" id="toolbarDemo1">
                            <div class="layui-btn-container">
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="get_export_normal" id="get_export_normal"><i class="layui-icon layui-icon-export"></i>导出(常规)</button>
                            </div>
                        </script>
                    </form>
@@ -200,6 +206,11 @@
            //导出功能获取数据
            var option_Bak = {};
            var option1_Bak = {};
            var sWhere_Bak = "";
            var ins1;
            var ins2;
            //#endregion
            //#region è¿›å…¥é¡µé¢å³åŠ è½½
@@ -223,6 +234,10 @@
                    case 'get_export':
                        get_Export();
                        break;
                    //导出excel
                    case 'get_export_normal':
                        get_Export_Normal();
                        break;
                    //列设置
                    case 'set_HideColumn': get_HideColumn();
                        break;
@@ -231,6 +246,17 @@
                        var btns = document.getElementsByTagName("button");     //获取本页所有按钮对象
                        var HBillType = "Kf_SellOutEntryReport";
                        get_HideButton(btns, HBillType, HModName, sessionStorage["HUserName"]);
                        break;
                };
            });
            //#endregion
            //#region å¤´å·¥å…·æ äº‹ä»¶
            table.on('toolbar(mainTable1)', function (obj) {
                switch (obj.event) {
                    //导出excel
                    case 'get_export_normal':
                        get_Export1_Normal();
                        break;
                };
            });
@@ -318,6 +344,28 @@
                option1 = {
                    elem: '#mainTable1'
                    , toolbar: '#toolbarDemo1'
                    , height: 'full-50'
                    , page: true
                    , totalRow: true
                    //, cellMinWidth: 90
                    , limit: 50
                    , limits: [50, 500, 5000, 50000]
                };
                option_Bak = {
                    elem: '#mainTable'
                    , toolbar: '#toolbarDemo'
                    , height: 'full-50'
                    , page: true
                    , totalRow: true
                    //, cellMinWidth: 90
                    , limit: 50
                    , limits: [50, 500, 5000, 50000]
                };
                option1_Bak = {
                    elem: '#mainTable1'
                    //, toolbar: '#toolbarDemo'
                    , height: 'full-50'
                    , page: true
@@ -375,11 +423,6 @@
                            //获取表2数据
                            option1.cols = [col];
                            option1.data = data1.data[1];
                            //获取导出数据
                            option_Bak = option;
                            option1_Bak = option1;
                            //设置表1:列表同一个单据只有第一条数据显示主表信息,其它记录只显示子表信息;合计数据
                            //设置数据:声明计算合计的变量
@@ -452,22 +495,24 @@
                            option1.data = result1;
                            //渲染表1、表2
                            table.render(option);
                            table.render(option1);
                            ins1 = table.render(option);
                            ins2 = table.render(option1);
                            DisPlay_HideColumn();
                            HPieceQtyTotalSum = HPieceQtySum + HPieceQtySum_YM;
                            HQtyTotalSum = HQtySum + HQtySum_YM;
                            HMoneyTotalSum = HMoneySum + HMoneySum_YM;
                            $("#HPieceQtySum").val(fixed(HPieceQtySum*1));
                            $("#HQtySum").val(fixed(HQtySum.toFixed(2)*1));
                            $("#HMoneySum").val(fixed(HMoneySum.toFixed(2)*1));
                            $("#HQtySum").val(fixed(HQtySum.toFixed(6)*1));
                            $("#HMoneySum").val(fixed(HMoneySum.toFixed(6)*1));
                            $("#HPieceQtySum_YM").val(fixed(HPieceQtySum_YM*1));
                            $("#HQtySum_YM").val(fixed(HQtySum_YM.toFixed(2)*1));
                            $("#HMoneySum_YM").val(fixed(HMoneySum_YM.toFixed(2)*1));
                            $("#HQtySum_YM").val(fixed(HQtySum_YM.toFixed(6)*1));
                            $("#HMoneySum_YM").val(fixed(HMoneySum_YM.toFixed(6)*1));
                            $("#HPieceQtyTotalSum").val(fixed(HPieceQtyTotalSum*1));
                            $("#HQtyTotalSum").val(fixed(HQtyTotalSum.toFixed(2)*1));
                            $("#HMoneyTotalSum").val(fixed(HMoneyTotalSum.toFixed(2)*1));
                            $("#HQtyTotalSum").val(fixed(HQtyTotalSum.toFixed(6)*1));
                            $("#HMoneyTotalSum").val(fixed(HMoneyTotalSum.toFixed(6)*1));
                            //刷新按钮显示
                            var btns = document.getElementsByTagName("button");     //获取本页所有按钮对象
@@ -548,7 +593,7 @@
                    sWhere += " and CONVERT(varchar(100),日期, 120) <= ''" + HDate1 + "''";
                }
                if (HCusName) {
                    sWhere += " and å®¢æˆ· like ''%" + HCusName + "%''";
                    sWhere += " and è´­è´§å•位 like ''%" + HCusName + "%''";
                }
                if (HEmpName) {
                    sWhere += " and ä¸šåŠ¡å‘˜ like ''%" + HEmpName + "%''";
@@ -560,6 +605,9 @@
                sWhere += getSWhereByHUser();
                get_Display(sWhere);
                sWhere_Bak = sWhere;
                sWhere = "";//调用接口后清空sWhere缓存
            }
            //#endregion
@@ -613,6 +661,50 @@
                    success: function (result) {
                        if (result.count == 1) {
                            exportAll();
                        } else {
                            layer.alert("当前模块没有导出权限!", { icon: 5 });
                        }
                    }, error: function () {
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
            }
            //#endregion
            //#region å¸¸è§„导出Execel
            function get_Export_Normal() {
                var ModRightNameCheck = "Kf_SellOutEntryReport_ExportExcel";
               //逻辑审核方法
                $.ajax({
                    type: "GET",
                    url: GetWEBURL() + "/LMES/getReportByModRightNameCheck", //方法所在页面和方法名
                    data: { "ModRightNameCheck": ModRightNameCheck, "user": sessionStorage["HUserName"] },
                    success: function (result) {
                        if (result.count == 1) {
                            table.exportFile(ins1.config.id, option.data, "xls");
                        } else {
                            layer.alert("当前模块没有导出权限!", { icon: 5 });
                        }
                    }, error: function () {
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
            }
            //#endregion
            //#region å¸¸è§„导出Execel
            function get_Export1_Normal() {
                var ModRightNameCheck = "Kf_SellOutEntryReport_ExportExcel";
                //逻辑审核方法
                $.ajax({
                    type: "GET",
                    url: GetWEBURL() + "/LMES/getReportByModRightNameCheck", //方法所在页面和方法名
                    data: { "ModRightNameCheck": ModRightNameCheck, "user": sessionStorage["HUserName"] },
                    success: function (result) {
                        if (result.count == 1) {
                            table.exportFile(ins2.config.id, option1.data, "xls");
                        } else {
                            layer.alert("当前模块没有导出权限!", { icon: 5 });
                        }
@@ -788,7 +880,7 @@
            //#region å¯¼å‡º
            function oneTable(option) {
                var exportCols = ["购货单位", "产品名称", "件数", "米数", "单价", "金额", "业务员"];
                var exportCols = ["购货单位", "产品名称", "件数", "米数", "单价", "税率%", "金额", "业务员"];
                //获取列数据,根据exportCols数组中列的顺序导出
                var colsList = [];
@@ -804,16 +896,24 @@
                //获取行数据
                var listData = [];                             //获取行数据
                var HPieceQtyTotalSum = 0;
                var HQtyTotalSum = 0;
                var HTaxMoneyTotalSum = 0;
                if (option.data.length > 0) {
                    var HEmpID = option.data[0]["HEmpID"];          //用于区分不同客户
                    var HEmpID = option.data[0]["HEmpID"];          //用于区分不同业务员
                    var HCusID = option.data[0]["HCusID"];          //用于区分不同客户
                    var HPieceQtySum = 0;                           //件数合计
                    var HQtySum = 0;                                //数量合计
                    var HTaxMoneySum = 0;                           //金额合计
                    for (var i = 0; i < option.data.length; i++) {
                        if (HEmpID != option.data[i]["HEmpID"]) {
                            var sumTemp = { "购货单位": "合计", "产品名称": "", "件数": HPieceQtySum, "米数": HQtySum, "单价": "", "金额": HTaxMoneySum, "业务员": "" };
                            var emptyTemp = { "购货单位": "", "产品名称": "", "件数": "", "米数": "", "单价": "", "金额": "", "业务员": "" };
                            var titleTemp = { "购货单位": "购货单位", "产品名称": "产品名称", "件数": "件数", "米数": "米数", "单价": "单价", "金额": "金额", "业务员": "业务员" };
                        if (HEmpID != option.data[i]["HEmpID"] || HCusID != option.data[i]["HCusID"]) {
                            HPieceQtyTotalSum += HPieceQtySum;
                            HQtyTotalSum += HQtySum;
                            HTaxMoneyTotalSum += HTaxMoneySum;
                            var sumTemp = { "购货单位": "合计:", "产品名称": "", "件数": fixed(HPieceQtySum * 1) + "ä»¶", "米数": fixed(HQtySum.toFixed(6) * 1) + "ç±³", "单价": "", "税率%": "", "金额": fixed(HTaxMoneySum.toFixed(6) * 1), "业务员": "" };
                            var emptyTemp = { "购货单位": "", "产品名称": "", "件数": "", "米数": "", "单价": "", "税率%": "", "金额": "", "业务员": "" };
                            var titleTemp = { "购货单位": "购货单位", "产品名称": "产品名称", "件数": "件数", "米数": "米数", "单价": "单价", "税率%": "税率%", "金额": "金额", "业务员": "业务员" };
                            listData.push(sumTemp);
                            listData.push(emptyTemp);
                            listData.push(emptyTemp);
@@ -821,6 +921,7 @@
                            //记录新客户的内码
                            HEmpID = option.data[i]["HEmpID"];
                            HCusID = option.data[i]["HCusID"];
                            //初始化件数合计、数量合计、金额合计
                            HPieceQtySum = 0;
@@ -834,19 +935,31 @@
                        HTaxMoneySum += option.data[i]["金额"] * 1;
                        if (i == option.data.length - 1) {
                            var sumTemp = { "购货单位": "合计", "产品名称": "", "件数": HPieceQtySum, "米数": HQtySum, "单价": "", "金额": HTaxMoneySum, "业务员": "" };
                            HPieceQtyTotalSum += HPieceQtySum;
                            HQtyTotalSum += HQtySum;
                            HTaxMoneyTotalSum += HTaxMoneySum;
                            HPieceQtyTotalSum = fixed(HPieceQtyTotalSum * 1);
                            HQtyTotalSum = fixed(HQtyTotalSum.toFixed(6) * 1);
                            HTaxMoneyTotalSum = fixed(HTaxMoneyTotalSum.toFixed(6) * 1);
                            var sumTemp = { "购货单位": "合计:", "产品名称": "", "件数": fixed(HPieceQtySum * 1) + "ä»¶", "米数": fixed(HQtySum.toFixed(6) * 1) + "ç±³", "单价": "", "税率%": "", "金额": fixed(HTaxMoneySum.toFixed(6) * 1), "业务员": "" };
                            var emptyTemp = { "购货单位": "", "产品名称": "", "件数": "", "米数": "", "单价": "", "税率%": "", "金额": "", "业务员": "" };
                            var totalTemp = { "购货单位": "总合计:", "产品名称": "", "件数": HPieceQtyTotalSum + "ä»¶", "米数": HQtyTotalSum + "ç±³", "单价": "", "税率%": "", "金额": HTaxMoneyTotalSum, "业务员": "" };
                            listData.push(sumTemp);
                            listData.push(emptyTemp);
                            listData.push(emptyTemp);
                            listData.push(totalTemp);
                        }
                    }
                }
                //设置sheet中的数据
                let news = [[]];
                for (var i = 0; i < colsList.length; i++) {
                    news[0].push(colsList[i].title);
                }
                for (var i = 0; i < listData.length; i++) {
                    news.push([listData[i][exportCols[0]], listData[i][exportCols[1]], listData[i][exportCols[2]], listData[i][exportCols[3]], listData[i][exportCols[4]], listData[i][exportCols[5]], listData[i][exportCols[6]] ]);
                    news.push([listData[i][exportCols[0]], listData[i][exportCols[1]], listData[i][exportCols[2]], listData[i][exportCols[3]], listData[i][exportCols[4]], listData[i][exportCols[5]], listData[i][exportCols[6]], listData[i][exportCols[7]]]);
                }
                //创建sheet
@@ -854,7 +967,7 @@
                return sheet;
            }
            function twoTable(option) {
                var exportCols = ["购货单位", "产品名称", "件数", "米数", "单价", "金额", "业务员"];
                var exportCols = ["购货单位", "产品名称", "件数", "米数", "单价", "税率%", "金额", "业务员"];
                //获取列数据,根据exportCols数组中列的顺序导出
                var colsList = [];
@@ -870,16 +983,24 @@
                //获取行数据
                var listData = [];                             //获取行数据
                var HPieceQtyTotalSum = 0;
                var HQtyTotalSum = 0;
                var HTaxMoneyTotalSum = 0;
                if (option.data.length > 0) {
                    var HEmpID = option.data[0]["HEmpID"];          //用于区分不同客户
                    var HEmpID = option.data[0]["HEmpID"];          //用于区分不同业务员
                    var HCusID = option.data[0]["HCusID"];          //用于区分不同客户
                    var HPieceQtySum = 0;                           //件数合计
                    var HQtySum = 0;                                //数量合计
                    var HTaxMoneySum = 0;                           //金额合计
                    for (var i = 0; i < option.data.length; i++) {
                        if (HEmpID != option.data[i]["HEmpID"]) {
                            var sumTemp = { "购货单位": "合计", "产品名称": "", "件数": HPieceQtySum, "米数": HQtySum, "单价": "", "金额": HTaxMoneySum, "业务员": "" };
                            var emptyTemp = { "购货单位": "", "产品名称": "", "件数": "", "米数": "", "单价": "", "金额": "", "业务员": "" };
                            var titleTemp = { "购货单位": "购货单位", "产品名称": "产品名称", "件数": "件数", "米数": "米数", "单价": "单价", "金额": "金额", "业务员": "业务员" };
                        if (HEmpID != option.data[i]["HEmpID"] || HCusID != option.data[i]["HCusID"]) {
                            HPieceQtyTotalSum += HPieceQtySum;
                            HQtyTotalSum += HQtySum;
                            HTaxMoneyTotalSum += HTaxMoneySum;
                            var sumTemp = { "购货单位": "合计:", "产品名称": "", "件数": fixed(HPieceQtySum * 1) + "ä»¶", "米数": fixed(HQtySum.toFixed(6) * 1) + "ç±³", "单价": "", "税率%": "", "金额": fixed(HTaxMoneySum.toFixed(6) * 1), "业务员": "" };
                            var emptyTemp = { "购货单位": "", "产品名称": "", "件数": "", "米数": "", "单价": "", "税率%": "", "金额": "", "业务员": "" };
                            var titleTemp = { "购货单位": "购货单位", "产品名称": "产品名称", "件数": "件数", "米数": "米数", "单价": "单价", "税率%": "税率%", "金额": "金额", "业务员": "业务员" };
                            listData.push(sumTemp);
                            listData.push(emptyTemp);
                            listData.push(emptyTemp);
@@ -887,6 +1008,7 @@
                            //记录新客户的内码
                            HEmpID = option.data[i]["HEmpID"];
                            HCusID = option.data[i]["HCusID"];
                            //初始化件数合计、数量合计、金额合计
                            HPieceQtySum = 0;
@@ -900,8 +1022,20 @@
                        HTaxMoneySum += option.data[i]["金额"] * 1;
                        if (i == option.data.length - 1) {
                            var sumTemp = { "购货单位": "合计", "产品名称": "", "件数": HPieceQtySum, "米数": HQtySum, "单价": "", "金额": HTaxMoneySum, "业务员": "" };
                            HPieceQtyTotalSum += HPieceQtySum;
                            HQtyTotalSum += HQtySum;
                            HTaxMoneyTotalSum += HTaxMoneySum;
                            HPieceQtyTotalSum = fixed(HPieceQtyTotalSum * 1);
                            HQtyTotalSum = fixed(HQtyTotalSum.toFixed(6) * 1);
                            HTaxMoneyTotalSum = fixed(HTaxMoneyTotalSum.toFixed(6) * 1);
                            var sumTemp = { "购货单位": "合计:", "产品名称": "", "件数": fixed(HPieceQtySum * 1) + "ä»¶", "米数": fixed(HQtySum.toFixed(6) * 1) + "ç±³", "单价": "", "税率%": "", "金额": fixed(HTaxMoneySum.toFixed(6) * 1), "业务员": "" };
                            var emptyTemp = { "购货单位": "", "产品名称": "", "件数": "", "米数": "", "单价": "", "税率%": "", "金额": "", "业务员": "" };
                            var totalTemp = { "购货单位": "总合计:", "产品名称": "", "件数": HPieceQtyTotalSum + "ä»¶", "米数": HQtyTotalSum + "ç±³", "单价": "", "税率%": "", "金额": HTaxMoneyTotalSum, "业务员": "" };
                            listData.push(sumTemp);
                            listData.push(emptyTemp);
                            listData.push(emptyTemp);
                            listData.push(totalTemp);
                        }
                    }
                }
@@ -912,7 +1046,7 @@
                    news[0].push(colsList[i].title);
                }
                for (var i = 0; i < listData.length; i++) {
                    news.push([listData[i][exportCols[0]], listData[i][exportCols[1]], listData[i][exportCols[2]], listData[i][exportCols[3]], listData[i][exportCols[4]], listData[i][exportCols[5]], listData[i][exportCols[6]]]);
                    news.push([listData[i][exportCols[0]], listData[i][exportCols[1]], listData[i][exportCols[2]], listData[i][exportCols[3]], listData[i][exportCols[4]], listData[i][exportCols[5]], listData[i][exportCols[6]], listData[i][exportCols[7]]]);
                }
                //创建sheet
@@ -920,22 +1054,69 @@
                return sheet;
            }
            function exportAll() {
                //获取sheet
                let sheet1 = oneTable(option_Bak);
                let sheet2 = twoTable(option1_Bak);
                $.ajax({
                    url: GetWEBURL() + '/Kf_SellOutEntryReport/list',
                    type: "GET",
                    data: { "sWhere": sWhere_Bak, "user": sessionStorage["HUserName"], "userid": sessionStorage["Czybm"] },
                    success: function (data1) {
                        if (data1.count == 1) {
                            var totalArray = ["件数", "米数", "金额"];
                            var data = [];
                            var col = [];
                            //给空的数组赋值
                            for (var key in data1.list) {
                                data.push({ "id": data1.list[key].ColmCols, "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });
                            }
                            //在列表左边添加勾选框
                            col.push({ type: 'checkbox', fixed: 'left' });
                            for (var i = 0; i < data.length; i++) {
                                // if (data[i].name == 'HInterID' || data[i].name == 'HBillType' || data[i].name == 'hmainid') {
                                if ($.inArray(data[i].name, titleData) > -1) {
                                    col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //隐藏id列
                                }
                                else if ($.inArray(data[i].name, totalArray) > -1) {
                                    col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, totalRow: true, width: 120, templet: "<div>{{d." + data[i].name + " ==null ?'':fixed(d." + data[i].name + ")}}</div>" });
                                }
                                else {
                                    switch (data[i].Type) {
                                        //int
                                        case 'DateTime':
                                            col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, templet: "<div>{{d." + data[i].name + " ==null ?'':layui.util.toDateString(d." + data[i].name + ", 'yyyy-MM-dd')}}</div>", width: 120 });
                                            break;
                                        default:
                                            col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 120 });
                                    }
                                }
                            }
                //创建excel文档
                const wb = XLSX.utils.book_new();
                XLSX.utils.book_append_sheet(wb, sheet1, "涤纶");
                XLSX.utils.book_append_sheet(wb, sheet2, "羊毛");
                const workbookBlob = workbook2blob(wb);
                            //设置表1导出数据
                            option_Bak.cols = [col];
                            option_Bak.data = data1.data[0];
                // å¯¼å‡ºæœ€åŽçš„æ€»è¡¨
                var ExcelName = "销售出库明细报表" + Format(new Date(), "yyyy-MM-dd") + ".xlsx";
                openDownloadDialog(workbookBlob, ExcelName);
                            //获取表2导出数据
                            option1_Bak.cols = [col];
                            option1_Bak.data = data1.data[1];
                            //获取sheet
                            let sheet1 = oneTable(option_Bak);
                            let sheet2 = twoTable(option1_Bak);
                // å°†blob对象 åˆ›å»ºbloburl,然后用a标签实现弹出下载框
                            //创建excel文档
                            const wb = XLSX.utils.book_new();
                            XLSX.utils.book_append_sheet(wb, sheet1, "FDY");
                            XLSX.utils.book_append_sheet(wb, sheet2, "羊毛");
                            const workbookBlob = workbook2blob(wb);
                            // å¯¼å‡ºæœ€åŽçš„æ€»è¡¨
                            var ExcelName = "销售出库明细报表" + Format(new Date(), "yyyy-MM-dd") + ".xlsx";
                            openDownloadDialog(workbookBlob, ExcelName);
                        } else {
                            layer.alert(data1.code + data1.Message, { icon: 5 });
                        }
                    }, error: function () {
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
            }
            //#region è®¾ç½®å¯¼å‡ºå‚æ•°
            function workbook2blob(workbook) {