wtt
2025-08-05 ebef191888d9d2c2a2e7a7f677189164e4eef0b3
WebTM/views/¹¤×ʹÜÀí/¿Û²¹ÏîÄ¿·ÑÓõ¥/Pay_DuSubsidyItemBill.html
@@ -2,7 +2,7 @@
<html>
<head>
    <meta charset="utf-8" />
    <title>异常工时申请单</title>
    <title>扣补项目费用单</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
@@ -14,7 +14,8 @@
    <script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
    <script src="../../../layuiadmin/Scripts/webConfig.js"></script>
    <script src="../../../layuiadmin/PubCustom.js"></script>
    <style>
    <script src="../../../layuiadmin/PageTitle.js"></script>
    <!--<style>
        .main-btn { /*头部主按钮*/
            padding: 0 2px; /*调整按钮左右空隙大小*/
            height: 30px;
@@ -44,7 +45,7 @@
        .layui-form-label {
            width: 25%;
        }
    </style>
    </style>-->
</head>
<body>
@@ -65,6 +66,7 @@
                        <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="set_CancelCloseBill" id="set_CancelCloseBill">反关闭</button>-->
                    </div>
                    <div class="layui-tab" lay-filter="tab-POStockInBill">
                        <h1 style="text-align: center; padding: 10px 0;"><b>扣补项目费用单</b></h1>
                        <ul class="layui-tab-title" lay-filter="tab-all">
                            <li lay-id="1" style="padding:1px;" class="layui-this">基本信息</li>
                            <li lay-id="2" style="padding:1px;">其他信息</li>
@@ -75,14 +77,14 @@
                                <div class="layui-form-item" style="padding-top: 10px;">
                                    <div class="layui-row">
                                        <div class="layui-inline" style="width:500px;">
                                            <label class="layui-form-label" style="width: 85px;">单据号</label>
                                            <label class="layui-form-label" style="width: 85px;">单据号<label style="color:red"> * </label></label>
                                            <div class="layui-input-block" style="margin-left: 120px; width: 180px;">
                                                <input type="text" class="layui-input" name="HBillNo" lay-verify="HBillNo" id="HBillNo" style="background-color:#efefef4d;" readonly>
                                                <input type="hidden" name="HInterID" id="HInterID" lay-verify="HInterID">
                                            </div>
                                        </div>
                                        <div class="layui-inline" style="width:500px;">
                                            <label class="layui-form-label" style="width: 85px;">日期</label>
                                            <label class="layui-form-label" style="width: 85px;">日期<label style="color:red"> * </label></label>
                                            <div class="layui-input-block" style="margin-left: 120px; width:180px;">
                                                <input type="date" class="layui-input" lay-verify="HDate" name="HDate" id="HDate" style="padding-left: 80px;">
                                            </div>
@@ -96,7 +98,7 @@
                                    </div>
                                    <div class="layui-row">
                                        <div class="layui-inline" style="width:500px;">
                                            <label class="layui-form-label" style="width: 85px;padding: 9px 18px;">班组</label>
                                            <label class="layui-form-label" style="width: 85px;padding: 9px 18px;">班组<label style="color:red"> * </label></label>
                                            <div class="layui-input-block" style="margin-left: 77px; width: 270px;">
                                                <input type="text" class="layui-input" lay-verify="HGroupName" name="HGroupName" id="HGroupName" style="background-color: #efefef4d; width: 180px; display: inline-block;" readonly>
                                                <input type="hidden" name="HGroupID" id="HGroupID" lay-verify="HGroupID" value="0">
@@ -106,7 +108,7 @@
                                            </div>
                                        </div>
                                        <div class="layui-inline" style="width:500px;">
                                            <label class="layui-form-label" style="width: 85px;padding: 9px 18px;">部门</label>
                                            <label class="layui-form-label" style="width: 85px;padding: 9px 18px;">部门<label style="color:red"> * </label></label>
                                            <div class="layui-input-block" style="margin-left: 77px; width: 270px;">
                                                <input type="text" class="layui-input" lay-verify="HDeptName" name="HDeptName" id="HDeptName" style="background-color: #efefef4d; width: 180px; display: inline-block;" readonly>
                                                <input type="hidden" name="HDeptID" id="HDeptID" lay-verify="HDeptID" value="0">
@@ -236,8 +238,8 @@
                            <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-CopyLine"><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>
                            <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_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>-->
                        </div>
                    </script>
                </form>
@@ -250,7 +252,7 @@
        <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
    </script>
    <script>
        var OptionData = [];
        layui.config({
            base: '../../../layuiadmin/' //静态资源所在路径
        }).extend({
@@ -267,13 +269,21 @@
            //模块名
            var HModName = "Pay_DuSubsidyItemBill";
            //#region ã€åŠ¨æ€èŽ·å–æ¨¡å—åç§°ã€‘
            var HModuleType = "2233";
            //通过单据类型,从数据库动态获取单据模块命名,引用js文件 PageTitle.js
            var HPageTitle = get_PageTitle(HModuleType) == "" ? $("h1").html() : get_PageTitle(HModuleType);
            $("h1").html('<b>' + HPageTitle + '</b>');
            //#endregion
            //表格渲染参数
            var option = {};            //子表渲染参数
            //获取参数
            var params = getUrlVars();
            var OperationType = params[params[0]]; //从参数中获取 æ•°æ®ç±»åž‹  1添加 ä¿å­˜  2复制  3 ç¼–辑
            var linterid = params[params[1]]; //从参数中获取 å•据内码
            //#endregion
            //#region è¿›å…¥é¡µé¢å³åŠ è½½
@@ -541,24 +551,25 @@
                option = {
                    elem: '#mainTable'
                    , toolbar: '#toolbarDemo'
                    , page: true
                    , limit: 500
                    , limits: [50, 500, 5000, 50000]
                    //, page: true
                    //, limit: 500
                    //, limits: [50, 500, 5000, 50000]
                    , totalRow: true
                    , cellMinWidth: 120
                    , height: 400
                    , cols: [[
                        { type: 'checkbox', totalRowText: '合计行' }
                        , { type: 'numbers', title: '序号', totalRow: true }
                        , { field: 'RowID', title: '行号', hide: true }                                                   //行标识,用于下一行、上一行识别所在行
                        , { field: 'HEmpID', title: '职员ID', hide: true }
                        { type: 'checkbox', totalRowText: '合计' }
                        , { type: 'numbers', title: '序号', style: 'background-color: #f9f9f9;' }
                        , { field: 'RowID', title: '行号', hide: true, style: 'background-color: #f9f9f9;' }                                                   //行标识,用于下一行、上一行识别所在行
                        , { field: 'HEmpID', title: '职员ID', hide: true, style: 'background-color: #f9f9f9;' }
                        , { field: 'HEmpNumber', title: '职员代码', edit: 'text', event: "HEmpNumber" }     //f7
                        , { field: 'HEmpName', title: '职员名称' }
                        , { field: 'HDuSubsidyItemID', title: '扣补项目ID', hide: true }
                        , { field: 'HEmpName', title: '职员名称', style: 'background-color: #f9f9f9;' }
                        , { field: 'HDuSubsidyItemID', title: '扣补项目ID', hide: true, style: 'background-color: #f9f9f9;' }
                        , { field: 'HDuSubsidyItemNumber', title: '扣补项目代码', edit: 'text', event: "HDuSubsidyItemNumber" }     //f7
                        , { field: 'HDuSubsidyItemName', title: '扣补项目名称' }
                        , { field: 'HQty', title: '数量', edit: 'text'}     //f7
                        , { field: 'HDuSubsidyItemName', title: '扣补项目名称', style: 'background-color: #f9f9f9;' }
                        , { field: 'HQty', title: '数量', edit: 'text', totalRow: true}     //f7
                        , { field: 'HPrice', title: '单价', edit: 'text'}     //f7
                        , { field: 'HMoney', title: '金额' }
                        , { field: 'HMoney', title: '金额', totalRow: true, style: 'background-color: #f9f9f9;', totalRow: true }
                        , { field: 'HRemark', title: '备注', edit: 'text' }
                        , { fixed: 'right', title: '操作', toolbar: '#barDemo' }
                    ]]
@@ -595,7 +606,7 @@
                    , shift: 2                                          //弹出动画
                    , area: ["90%", "90%"]                              //窗体大小
                    , maxmin: true                                      //设置最大最小按钮是否显示
                    , content: ["../../../views/Baseset/基础资料/Gy_DepartmentList.html?Type=HDeptID", "yes"]
                    , content: ["../../基础资料/公用基础资料/Gy_DepartmentList.html", "yes"]
                    , btn: ["确定", "取消"]
                    , btn1: function (index, laero) {
                        //按钮一  çš„回调
@@ -607,7 +618,7 @@
                        }
                        $("#HDeptID").val(checkStatus.data[0].HItemID);//内码
                        $("#HDeptName").val(checkStatus.data[0].HName);//名称
                        $("#HDeptName").val(checkStatus.data[0].部门名称);//名称
                        layer.close(index);//关闭弹窗
                    }
                    , btn2: function (index, layero) { }
@@ -626,7 +637,7 @@
                    , shift: 2                                          //弹出动画
                    , area: ["90%", "90%"]                              //窗体大小
                    , maxmin: true                                      //设置最大最小按钮是否显示
                    , content: ["../../../views/Baseset/基础资料/Gy_GetProductionTeamList.html?Type=HGroupID", "yes"]
                    , content: ["../../基础资料/工资基础资料/Gy_Group.html?Type=HGroup", "yes"]
                    , btn: ["确定", "取消"]
                    , btn1: function (index, laero) {
                        //按钮一  çš„回调
@@ -638,7 +649,7 @@
                        }
                        $("#HGroupID").val(checkStatus.data[0].HItemID);//内码
                        $("#HGroupName").val(checkStatus.data[0].班组);//名称
                        $("#HGroupName").val(checkStatus.data[0].班组名称);//名称
                        layer.close(index);//关闭弹窗
                    }
                    , btn2: function (index, layero) { }
@@ -752,76 +763,87 @@
            //#region æ•°æ®æ ¡éªŒ
            function AllowLoadData(data) {
                //#region è¡¨å¤´æ•°æ®æ£€éªŒ
                //if ($("#HBillNo").val() == "") {
                //    layer.msg("单据号不能为空!");
                //    return false;
                //}
                //if ($("#HInnerBillNo").val() == "") {
                //    layer.msg("内部单据号不能为空!");
                //    return false;
                //}
                //if ($("#HGroupName").val() == "") {
                //    layer.msg("班组未选择!");
                //    return false;
                //}
                //if ($("#HDeptName").val() == "") {
                //    layer.msg("部门未选择!");
                //    return false;
                //}
                //if ($("#HEmpName").val() == "") {
                //    layer.msg("主管未选择!");
                //    return false;
                //}
                //if ($("#HPayTypeName").val() == "") {
                //    layer.msg("工资类型未选择!");
                //    return false;
                //}
                if ($("#HBillNo").val() == "") {
                    layer.msg("单据号不能为空!");
                    return false;
                }
                if ($("#HDate").val() == "") {
                    layer.msg("日期不能为空!");
                    return false;
                }
                if ($("#HGroupID").val() == "0") {
                    layer.msg("班组未选择!");
                    return false;
                }
                if ($("#HDeptID").val() == "0") {
                    layer.msg("部门未选择!");
                    return false;
                }
                //#endregion
                //#region å­è¡¨æ•°æ®æ£€éªŒ
                //var temp;                               //记录需要检验的属性的值,用于检验
                //var ref = /^\d+(\.\d+)?$/;          //判断是否是非负浮点数
                //var ref1 = /^\d+$/;            //判断是否是非负整数
                //var value1 = ["HTimes", "HQty", "HPrice", "HPriceRate", "HSubsidyQty", "HSubsidyMoney", "HSubsidyTotal", "HDeuctTotal", "HPackQty", "HPackPrice", "HPackMoney", "HMoney"];  //子表需要进行浮点数验证的属性清单
                //var value1_ = ["工时", "数量", "工价", "定额浮动比率", "补贴数量", "补贴金额", "补贴合计", "扣款小计", "包装数量", "包装单价", "包装金额", "金额"];  ////子表需要进行浮点数验证的属性清单对应的列名清单
                //var value2 = ["HICMOInterID", "HProcReportInterID", "HProcReportEntryID", "HProcPlanInterID", "HProcPlanEntryID"];  //子表需要整数检验的属性清单
                //var value2_ = ["生产任务单ID", "工序汇报单ID", "工序汇报单子ID", "工序计划单ID", "工序计划单子ID"]; //子表需要整数检验的属性清单对应的列名清单
                //var value3 = ["HMaterNumber", "HProcNumber", "HEmpNumber", "HPackMaterName"];       //子表需要进行非空检验的属性清单
                //var value3_ = ["物料", "工序", "职员", "包装方式"];                                 //子表需要进行非空检验的属性清单对应的列名清单
                //for (var i = 0; i < option.data.length; i++) {
                //    if (option.data[i] != "") {
                //        //非空检验
                //        for (var j = 0; j < value3.length; j++) {
                //            temp = option.data[i][value3[j]] + "";
                //            if (temp == "") {
                //                layer.msg("第" + (i + 1) + "行:" + value3_[j] + "未选择!");
                //                return false;
                //            }
                //        }
                //        //整数检验
                //        for (var j = 0; j < value2.length; j++) {
                //            temp = option.data[i][value2[j]] + "";
                //            if (temp == "") {
                //                layer.msg("第" + (i + 1) + "行:" + value2_[j] + "不能为空!");
                //                return false;
                //            } else if (!ref1.test(temp)) {
                //                layer.msg("第" + (i + 1) + "行:" + value2_[j] + "请输入非负整数!");
                //                return false;
                //            }
                //        }
                //        //浮点数检验
                //        for (var j = 0; j < value1.length; j++) {
                //            temp = option.data[i][value1[j]] + "";
                //            if (temp == "") {
                //                layer.msg("第" + (i + 1) + "行:" + value1_[j] + "不能为空!");
                //                return false;
                //            } else if (!ref.test(temp)) {
                //                layer.msg("第" + (i + 1) + "行:" + value1_[j] + "请输入正确非负数字!");
                //                return false;
                //            }
                //        }
                //    }
                //}
                var temp;                               //记录需要检验的属性的值,用于检验
                var ref = /^\d+(\.\d+)?$/;          //判断是否是非负浮点数
                var ref1 = /^\d+$/;            //判断是否是非负整数
                var value1 = ["HQty","HPrice"];  //子表需要进行浮点数验证的属性清单
                var value1_ = ["数量", "单价"];  ////子表需要进行浮点数验证的属性清单对应的列名清单
                var value2 = [];  //子表需要整数检验的属性清单
                var value2_ = []; //子表需要整数检验的属性清单对应的列名清单
                var value3 = ["HEmpID", "HDuSubsidyItemID"];       //子表需要进行非空检验的属性清单
                var value3_ = ["职员"," æ‰£è¡¥é¡¹ç›®"];                                 //子表需要进行非空检验的属性清单对应的列名清单
                for (var i = 0; i < option.data.length; i++) {
                    if (option.data[i] != "") {
                        //非空检验
                        for (var j = 0; j < value3.length; j++) {
                            temp = option.data[i][value3[j]] + "";
                            if (temp == "0") {
                                layer.msg("第" + (i + 1) + "行:" + value3_[j] + "未选择!");
                                return false;
                            }
                        }
                        //整数检验
                        for (var j = 0; j < value2.length; j++) {
                            temp = option.data[i][value2[j]] + "";
                            if (temp == "") {
                                layer.msg("第" + (i + 1) + "行:" + value2_[j] + "不能为空!");
                                return false;
                            } else if (!ref1.test(temp)) {
                                layer.msg("第" + (i + 1) + "行:" + value2_[j] + "请输入非负整数!");
                                return false;
                            }
                        }
                        //浮点数检验
                        for (var j = 0; j < value1.length; j++) {
                            temp = option.data[i][value1[j]] + "";
                            if (temp == "") {
                                layer.msg("第" + (i + 1) + "行:" + value1_[j] + "不能为空!");
                                return false;
                            } else if (!ref.test(temp)) {
                                layer.msg("第" + (i + 1) + "行:" + value1_[j] + "请输入正确非负数字!");
                                return false;
                            }
                        }
                        //特殊检验
                        temp = option.data[i]["HQty"] + "";
                        if (temp == "0") {
                            layer.msg("第" + (i + 1) + "行:数量不能为0!");
                            return false;
                        }
                    }
                }
                //#endregion
                //#region å­è¡¨å…³é”®å­—段重复检验
                var num = [];
                for (var i = 0; i < option.data.length; i++) {
                    temp = option.data[i]["HEmpID"] + "|" + option.data[i]["HDuSubsidyItemID"];
                    if ($.inArray(temp, num) != -1) {
                        layer.msg("第" + (i + 1) + "行:职员、扣补项目重复,请重新选择!");
                        return false;
                    }
                    num.push(temp);
                }
                //#endregion
                return true;
            }
@@ -908,7 +930,7 @@
                                , shift: 2                                          //弹出动画
                                , area: ["90%", "90%"]                              //窗体大小
                                , maxmin: true                                      //设置最大最小按钮是否显示
                                , content: ["../../Baseset/基础资料/Gy_EmployeeList.html", "yes"]
                                , content: ["../../基础资料/公用基础资料/Gy_EmployeeList.html?Type=HEmpList", "yes"]
                                , btn: ["确定", "取消"]
                                , btn1: function (index, laero) {
                                    //按钮一  çš„回调
@@ -918,13 +940,16 @@
                                    if (checkStatus.data.length != 1) {
                                        return layer.msg("请选择一条数据");
                                    }
                                    OptionData = checkStatus.data[0];
                                    layer.close(index);//关闭弹窗
                                },
                                end: function () {
                                    //更新表格缓存的数据
                                    obj.update({
                                        "HEmpID": checkStatus.data[0].HItemID
                                        , "HEmpNumber": checkStatus.data[0].HNumber
                                        , "HEmpName": checkStatus.data[0].HName
                                        "HEmpID": OptionData.HItemID
                                        , "HEmpNumber": OptionData.职员代码
                                        , "HEmpName": OptionData.职员名称
                                    })
                                    layer.close(index);//关闭弹窗
                                }
                            })
                        }
@@ -949,14 +974,17 @@
                                    if (checkStatus.data.length != 1) {
                                        return layer.msg("请选择一条数据");
                                    }
                                    OptionData = checkStatus.data[0];
                                    layer.close(index);//关闭弹窗
                                },
                                end: function () {
                                    //更新表格缓存的数据
                                    obj.update({
                                        "HDuSubsidyItemID": checkStatus.data[0].HItemID
                                        , "HDuSubsidyItemNumber": checkStatus.data[0].扣补资料代码
                                        , "HDuSubsidyItemName": checkStatus.data[0].扣补资料名称
                                        "HDuSubsidyItemID": OptionData.HItemID
                                        , "HDuSubsidyItemNumber": OptionData.扣补资料代码
                                        , "HDuSubsidyItemName": OptionData.扣补资料名称
                                    })
                                    layer.close(index);//关闭弹窗
                                }
                            })
                        }
@@ -1029,9 +1057,9 @@
                                }
                                //设置内容字体大小
                                if (data1.data[0].HFontSize != 0) {
                                    option.cols[0][i + 1]["style"] = "font-size:" + data1.data[0].HFontSize + "px;";
                                    option.cols[0][i + 1]["style"] += "font-size:" + data1.data[0].HFontSize + "px;";
                                } else {
                                    option.cols[0][i + 1]["style"] = "font-size:100%";
                                    option.cols[0][i + 1]["style"] += "font-size:100%";
                                }
                                //设置列宽
                                //if (data1.data[0].HColumnWidth != 0) {
@@ -1091,8 +1119,28 @@
        });
        //双击返回基础资料数据    è¡¨å¤´
        function GetHDeptNameValue(obj)  //返回部门
        {
            $("#HDeptName").val(obj[0].部门名称);
            $("#HDeptID").val(obj[0].HItemID);
        }
        function GetHGroupValue(obj)  //返回班组
        {
            $("#HGroupName").val(obj[0].班组名称);
            $("#HGroupID").val(obj[0].HItemID);
            $("#HDeptID").val(obj[0].HDeptID);//部门代码
            $("#HDeptName").val(obj[0].部门名称);//部门名称
        }
        function GetHEmpListValue(data)  //返回职员
        {
            OptionData = data
        }
        function GetHDuSubsidyItemBillValue(data)  //返回扣补项目
        {
            OptionData = data[0]
        }
    </script>
</body>
</html>