chenhaozhe
2025-05-21 94853e46b9d4911fb4cf00389f00a4b820db5d3c
WebTM/views/Éú²ú¹ÜÀí/Èռƻ®±¨±í/ReportPODemandPlanBillList_S.html
@@ -5,12 +5,15 @@
    <title>提料计划报表</title>
    <link rel="stylesheet" href="../../../layuiadmin/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../../layuiadmin/style/admin.css" media="all">
    <link rel="stylesheet" href="../../../layuiadmin/ext/soulTable.css" media="all">
    <script src="../../../layuiadmin/zgqCustom/zgqCustom.js"></script>
    <script src="../../../layuiadmin/layui/layui.js"></script>
    <script src="../../../layuiadmin/Scripts/json2.js"></script>
    <script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
    <script src="../../../layuiadmin/Scripts/webConfig.js"></script>
    <script src="../../../layuiadmin/PubCustom.js"></script>
    <script src="../../../layuiadmin/SetColumn.js"></script>
    <!--<script src="../../../layuiadmin/soulTable.slim.js"></script>--><!--标题筛选不能引用此js文件-->
</head>
<body>
    <div class="layui-fluid">
@@ -47,6 +50,8 @@
                                </div>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnSearch" id="btnSearch">查询</button>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnReSearch" id="btnReSearch">重置</button>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnExport" id="btnExport">导出</button>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="bthHideColumn" id="bthHideColumn">列设置</button>
                                <div class="layui-colla-content" style="padding: 0px; margin-left: 6%;">
                                    <div class="layui-row" style="margin-top:10px;">
                                        <div class="layui-inline">
@@ -103,7 +108,8 @@
        base: '../../../layuiadmin/' //静态资源所在路径
    }).extend({
        index: 'lib/index', //主入口模块
    }).use(['tree', 'index', 'form', 'table', 'element', 'laypage', 'laydate', 'util'], function () {
        soulTable: '../ext/soulTable',
    }).use(['tree', 'index', 'form', 'table', 'element', 'laypage', 'laydate', 'util','soulTable','flow'], function () {
        //#region å…¬ç”¨å˜é‡
        var $ = layui.$
            , admin = layui.admin
@@ -116,8 +122,12 @@
            , util = layui.util
            , tree = layui.tree
            , util = layui.util
            , soulTable = layui.soulTable
            , flow = layui.flow
        var sWhere = " where 1=1 ";
        var option = [];
        var ins;                        //用于导出excel
        var HModName = "ReportPODemandPlanBillList_S";
        //#endregion
        //#region è¿›å…¥é¡µé¢å³åŠ è½½
@@ -153,6 +163,18 @@
        });
        //#endregion
        //#region å¯¼å‡ºæŒ‰é’®
        form.on('submit(btnExport)', function (data) {
            getExportData();
        });
        //#endregion
        //#region åˆ—设置按钮
        form.on('submit(bthHideColumn)', function (data) {
            get_HideColumnNoPageForPlan(HModName, option, get_FastQuery);
        });
        //#endregion
        //#endregion
        //#region æœ¬é¡µé¢è¢«è°ƒç”¨çš„æ‰€æœ‰æ–¹æ³•
@@ -160,59 +182,106 @@
        //#region åˆå§‹åŒ–界面
        function set_ClearBill() {
            //初始化日期
            $("#HBEGINDATE").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * 30), "yyyy-MM-dd"));
            $("#HENDDATE").val(Format(new Date(), "yyyy-MM-dd"));
            $("#HBEGINDATE").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * 25), "yyyy-MM-dd"));//提料日期
            var HEndDate = Format(new Date().setDate(new Date().getDate() + 25), "yyyy-MM-dd");
            $("#HENDDATE").val(HEndDate);//至
            //生产组织加载
            Organ();
            //初始化表格
            set_InitGrid();
            //快速过滤
            get_FastQuery(1);
            ColFilter();
        }
        //#endregion
        //#region åˆå§‹åŒ–表格方法
        function set_InitGrid() {
            var columns = [];
            var myDate = new Date();
            var yyyy = myDate.getFullYear();
            var MM = myDate.getMonth() + 1;
            var dd = myDate.getDate();
            var SumMonth = 31; //动态两月之差 new Date(yyyy, MM, 0).getDate()
            var MonthCount = new Date(yyyy, MM-1, 0).getDate();
            columns.push({ type: 'checkbox', fixed: 'left' });
            columns.push({ field: '组织', title: '采购组织' });
            columns.push({ field: 'FMATERIALNAME', title: '物料名称' });
            columns.push({ field: 'FSPECIFICATION', title: '物料规格' });
            columns.push({ field: 'FNAME', title: '供应商' });
            columns.push({ field: 'FSUMQTY', title: '合计' });
            columns.push({ field: 'HPOOrderBillNo', title: '采购订单号' });
            columns.push({ field: 'HSeOrderBillNo', title: '需求单号' });
            columns.push({ type: 'checkbox', fixed: 'left', sort: true});
            columns.push({ field: '组织', title: '采购组织', sort: true, filter: true });
            columns.push({ field: 'FMATERIALNAME', title: '物料名称', sort: true, filter: true });
            columns.push({ field: 'FSPECIFICATION', title: '物料规格', sort: true, filter: true });
            columns.push({ field: 'FNAME', title: '供应商', sort: true, filter: true  });
            columns.push({ field: 'FSUMQTY', title: '合计', sort: true, hide: true, filter: true  });
            columns.push({ field: 'HPOOrderBillNo', title: '采购订单号', sort: true, hide: true, filter: true  });
            columns.push({ field: 'HSeOrderBillNo', title: '需求单号', sort: true, hide: true, filter: true  });
            //columns.push({ field: 'HPOOrderBillRemark', title: '摘要' });
            //columns.push({ field: 'HPOOrderBillNote', title: '备注' });
            //columns.push({ field: '采购员', title: '采购员' });
            columns.push({ field: 'FNUMBER', title: '物料编码' });
            columns.push({ field: '计量单位名称', title: '计量单位' });
            columns.push({ field: 'TQSUM', title: '提料拖期数量' });
            for (var i = 1; i <= (MonthCount - dd); i++) {
                columns.push({ field: Format(yyyy + '/' + (MM - 1) + '/' + (dd + i), 'yyyy-MM-dd'), title: Format(yyyy + '/' + (MM - 1) + '/' + (dd + i), 'MM.dd'), width: 70 })//0
            columns.push({ field: 'FNUMBER', title: '物料编码', sort: true, filter: true });
            columns.push({ field: '计量单位名称', title: '计量单位', sort: true, filter: true });
            columns.push({ field: 'TQSUM', title: '提料拖期数量', sort: true, totalRow: true, filter: true });
            columns.push({ field: 'TQSUM', title: '提料拖期数量', sort: true, totalRow: true, filter: true });
            columns.push({ field: '逾期提料总和', title: '逾期提料总和', sort: true, totalRow: true, filter: true });
            columns.push({ field: '提料总和', title: '提料总和', sort: true, totalRow: true, filter: true });
            //获取两个月期之间的相差
            var time1 = Date.parse(new Date());//开始时间
            var time2 = Date.parse(new Date($("#HENDDATE").val()));//结束时间
            var Days = Math.abs(parseInt((time2 - time1) / 1000 / 3600 / 24));
            //获取年
            var yyyy = new Date().getFullYear();
            //获取月份
            var MM = new Date().getMonth() + 1;
            //获取开始月份的最大天数
            var SumMonth = new Date(yyyy, MM, 0).getDate(); //动态两月之差
            //获取开始日期的天数
            var HBEGINDATE = new Date(new Date()).getDate(); //获取开始日期天数
            var k = 0;//收集循环次数
            for (var j = 0; j <= (Days - k); j++) {
                columns.push({ field: Format(yyyy + '/' + MM + '/' + (HBEGINDATE + j), 'yyyy-MM-dd'), title: Format(yyyy + '/' + MM + '/' + (HBEGINDATE + j), 'MM.dd'), width: 70, totalRow: true, filter: true })
                //跨年的话 ä¼šä»Žä¸€æœˆä¸€å·å¼€å§‹
                if (MM == 12 && (HBEGINDATE + j) == 31) {
                    yyyy += 1;
                    MM = 1;
                    SumMonth = new Date(yyyy, MM, 0).getDate();
                    HBEGINDATE = 0;
                    k += j;
                    j = 0;
                } else if ((HBEGINDATE + j) == SumMonth) { //跨月 æœˆæ•°åР䏀  å¤©æ•°ä»Žä¸€å¼€å§‹
                    HBEGINDATE = 0;
                    MM += 1;
                    SumMonth = new Date(yyyy, MM, 0).getDate();
                    k += j;
                    j = 0;
                }
            }
            for (var i = 1; i <= (SumMonth - MonthCount + dd); i++) {
                columns.push({ field: Format(yyyy + '/' + MM + '/' + i, 'yyyy-MM-dd'), title: Format(yyyy + '/' + MM + '/' + i, 'MM.dd'), width: 70 })//0
            }
            columns.push({ field: '', title: '提料计划合计' });
            columns.push({
                field: '提料计划合计', title: '提料计划合计', filter: true, templet: function (d) {
                    //console.log(d); // å¾—到当前行数据
                    //console.log(this); // å¾—到表头当前列配置项
                    //console.log(d.LAY_NUM);
                    let sum = 0;
                    // éåŽ†æ•°æ®å¯¹è±¡çš„æ‰€æœ‰å±žæ€§
                    for (let key in d) {
                        // æ£€æŸ¥åˆ—名是否符合 isValidDate æ¡ä»¶
                        if (isValidDate(key)) {
                            // å°† null/undefined è½¬ä¸º 0
                            sum += d[key] ? parseFloat(d[key]) : 0;
                        }
                    }
                    return sum; // ä¿ç•™ä¸¤ä½å°æ•°
                }
            });
            option = {
                elem: '#mainTable'
                , toolbar: '#toolbarDemo'
                //, toolbar: '#toolbarDemo'
                , height: 'full-50'
                , page: true
                , cellMinWidth: 90
                , limit: 50
                , limits: [50, 500, 5000, 20000]
                , limit: 1000
                , limits: [50, 500,1000, 5000, 20000]
                , totalRow: true
                , loading: false
                , cols: [columns]
                , done: function (res, curr, count) {
                    soulTable.render(this);
                }
            };
        }
        //#endregion
@@ -245,11 +314,14 @@
            $.ajax({
                url: GetWEBURL() + '/JIT_Cg_PODemandPlanBill/ReportPODemandPlanBillList_S',
                type: "GET",
                data: { "sWhere": sWhere, "user": sessionStorage["HUserName"] },
                data: { "sWhere": sWhere, "user": sessionStorage["HUserName"], HBEGINDATE: $("#HBEGINDATE").val(), HENDDATE: $("#HENDDATE").val() },
                success: function (result) {
                    if (result.count == 1) {
                    if (result.count == 1) {
                        option.data = result.data;
                        table.render(option);
                        //列设置
                        DisPlay_HideColumnForPlan(HModName, sessionStorage["HUserName"], option);
                        ins = table.render(option);
                        layer.close(ajaxLoad);
                        //layer.alert("查询成功", { icon: 1 });
                    } else {
@@ -263,6 +335,23 @@
            });
        }
        //#endregion
        //#region èŽ·å–å¯¼å‡ºæ•°æ®
        function getExportData() {
            data = option.data;
            data.forEach((item) => {
                for (let itemobj in item) {
                    if (item[itemobj] == null) {
                        item[itemobj] = "";
                    }
                    if (item[itemobj].length > 0) {  // å‡è®¾å­—段名为field
                        item[itemobj] = item[itemobj].toString().replace(/[\r\n]+/g, '');  // å°†æ¢è¡Œç¬¦æ›¿æ¢ä¸ºç©ºå­—符串
                    }
                }
            });
            table.exportFile(ins.config.id, data, "xls");
        }
        //#endregion
        //#region å¿«é€Ÿè¿‡æ»¤
@@ -280,6 +369,10 @@
            var HSUPPLIERID = $("#HSUPPLIERID").val();//供应商
            var HXQD = $("#HXQD").val();//需求单号
            var HPURORDERNO = $("#HPURORDERNO").val();//采购订单号
            if (HBEGINDATE > HENDDATE) {
                return layer.msg("开始日期不能小于结束日期!");
            }
            if (HORGID != "") {
                sWhere += " and a.HPURCHASEORGID= " + HORGID+" ";
@@ -300,7 +393,8 @@
            if (HPURORDERNO) {
                sWhere += " and HPOOrderBillNo like''%" + HPURORDERNO + "%'' ";
            }
            //初始化表格
            set_InitGrid();
            get_Display(sWhere);
            sWhere = " where 1=1 ";//调用接口后清空sWhere缓存
        }
@@ -309,8 +403,8 @@
        //#region é‡ç½®è¿‡æ»¤æ¡ä»¶æ–¹æ³•
        function set_ClearQuery() {
            $("#HORGID").val(sessionStorage["OrganizationID"]);//组织
            $("#HBEGINDATE").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * 30), "yyyy-MM-dd"));//提料日期
            $("#HENDDATE").val(Format(new Date(), "yyyy-MM-dd"));//至
            $("#HBEGINDATE").val(Format(new Date(new Date()), "yyyy-MM-dd"));//提料日期
            $("#HENDDATE").val(Format(new Date($("#HBEGINDATE").val()).setDate(new Date($("#HBEGINDATE").val()).getDate() + 30), "yyyy-MM-dd"));//至
            $("#HMATERIALID").val("");//物料/产品
            $("#HMATERIALNAME").val("");
            $("#HSUPPLIERID").val("");//供应商
@@ -330,7 +424,7 @@
                , area: ['90%', '90%']//大小
                , title: '物料列表'//标题
                , shift: 2//弹出动画
                , content: ['../../Baseset/基础资料/Gy_MaterialList.html', 'yes']
                , content: ['../../基础资料/公用基础资料/Gy_Material.html', 'yes']
                , btn: ['确定', '取消']
                , btn1: function (index, layero) {//按钮【按钮一】的回调
                    var iframeWindow = window['layui-layer-iframe' + index]  //获取弹框页面
@@ -340,7 +434,7 @@
                    }
                    //获取数据
                    $("#HMATERIALID").val(checkStatus.data[0].HItemID);
                    $("#HMATERIALNAME").val(checkStatus.data[0].HName);
                    $("#HMATERIALNAME").val(checkStatus.data[0].物料名称);
                    layer.close(index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                }
                , btn2: function (index, layero) { }
@@ -355,7 +449,7 @@
                , area: ['90%', '90%']//大小
                , title: '供应商列表'//标题
                , shift: 2//弹出动画
                , content: ['../../Baseset/基础资料/Gy_SupplierList.html', 'yes']
                , content: ['../../基础资料/采购基础资料/Gy_Supplier.html?Type=HSup', 'yes']
                , btn: ['确定', '取消']
                , btn1: function (index, layero) {//按钮【按钮一】的回调
                    var iframeWindow = window['layui-layer-iframe' + index]  //获取弹框页面
@@ -365,16 +459,40 @@
                    }
                    //获取数据
                    $("#HSUPPLIERID").val(checkStatus.data[0].HItemID);
                    $("#HSUPPLIERNAME").val(checkStatus.data[0].HName);
                    $("#HSUPPLIERNAME").val(checkStatus.data[0].供应商名称);
                    layer.close(index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                }
                , btn2: function (index, layero) { }
            })
        }
        //列明显示下拉框
        function ColFilter() {
            var Organization = '<option  value="0" selected="selected" ></option>';
            for (var i = 1; i < option.cols[0].length; i++) {
                if (option.cols[0][i].hide != true) {
                    Organization += '<option  style="color:blue;" value="' + option.cols[0][i].field + '">' + option.cols[0][i].field + '</option>';
                }
            }
            $("#ColName").empty();
            $("#ColName").append(Organization);
            $("#ColName1").empty();
            $("#ColName1").append(Organization);
            $("#ColName2").empty();
            $("#ColName2").append(Organization);
            form.render('select');
        }
        //#endregion
        //以上是layui模块
    });
    function GetHSupNameValue(obj) {
        $("#HSUPPLIERID").val(obj[0].HItemID);
        $("#HSUPPLIERNAME").val(obj[0].供应商名称);
    }
    function GetGyMaterial(obj) {
        $("#HMATERIALID").val(obj.HItemID);
        $("#HMATERIALNAME").val(obj.物料名称);
    }
</script>