其他应付单 增加子表保存,目录放到采购管理,其他入库单编辑模块
并完善 其他出库单 列表功能;(
常规 功能, 新增,修改,删除,审核,作废,关闭,自定义过滤,源单类型列表(源单 手工录入), 合计行,保存控制,审核控制,删除控制,关联数回填 等等 )
(注: 基础资料选择, 均用 基础资料列表 的方式)
2 文件已重命名
4个文件已修改
1个文件已添加
2436 ■■■■■ 已修改文件
WebTM/WebTM.csproj 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/采购管理/其他应付单/YF_PayMentOtherBillMain.html 679 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/采购管理/其他应付单/YF_PayMentOtherBillMainList.html 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/采购管理/采购订单/Cg_POOrderBillList.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/销售管理/其他应收单/YS_ReceiveOtherBillMain.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/验收入库/其他入库/Add_Edit_Kf_OtherInBill.html 1408 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/验收入库/其他入库/Kf_OtherInBillList.html 330 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/WebTM.csproj
@@ -1595,8 +1595,8 @@
    <Content Include="views\采购管理\采购退料单\Cg_PurchaseReturn_Add_Up.html" />
    <Content Include="views\销售管理\信用额度申请单\Xs_CusRatingChangeBill.html" />
    <Content Include="views\销售管理\信用额度申请单\Xs_CusRatingChangeBillList.html" />
    <Content Include="views\销售管理\其他应付单\YF_PayMentOtherBillMain.html" />
    <Content Include="views\销售管理\其他应付单\YF_PayMentOtherBillMainList.html" />
    <Content Include="views\采购管理\其他应付单\YF_PayMentOtherBillMain.html" />
    <Content Include="views\采购管理\其他应付单\YF_PayMentOtherBillMainList.html" />
    <Content Include="views\销售管理\其他应收单\YS_ReceiveOtherBillMainList.html" />
    <Content Include="views\销售管理\其他应收单\YS_ReceiveOtherBillMain.html" />
    <Content Include="views\销售管理\发货通知单\Add_Edit_Xs_SeOutStockBillList.html" />
@@ -1687,6 +1687,7 @@
    <Content Include="views\领料发货\领料出库\Kf_StockOutRequestBillList.html" />
    <Content Include="views\验收入库\产品入库\Kf_ICStockBillSub_WMS_List.html" />
    <Content Include="views\验收入库\产品入库\Kf_ProductInBillList.html" />
    <Content Include="views\验收入库\其他入库\Add_Edit_Kf_OtherInBill.html" />
    <Content Include="views\验收入库\其他入库\Kf_OtherInBillList.html" />
    <Content Include="views\模治具管理\模治具管理\Kf_ProductInBillList.html" />
    <Content Include="views\验收入库\其他入库\Kf_OtherOutBill_Check_New.html" />
WebTM/views/²É¹º¹ÜÀí/ÆäËûÓ¦¸¶µ¥/YF_PayMentOtherBillMain.html
File was renamed from WebTM/views/ÏúÊÛ¹ÜÀí/ÆäËûÓ¦¸¶µ¥/YF_PayMentOtherBillMain.html
@@ -15,7 +15,18 @@
    <script src="../../../layuiadmin/Scripts/webConfig.js"></script>
    <script src="../../../layuiadmin/PubCustom.js"></script>
    <script src="../../../layuiadmin/PageTitle.js"></script>
    <style>
        /* é˜²æ­¢ä¸‹æ‹‰æ¡†çš„下拉列表被隐藏---必须设置--- */
        .layui-table-cell {
            overflow: visible !important;
        }
        /* ä½¿å¾—下拉框与单元格刚好合适 */
        td .layui-form-select {
            margin-top: -10px;
            margin-left: -15px;
            margin-right: -15px;
        }
    </style>
</head>
<body>
    <div class="layui-fluid" style="padding: 0;">
@@ -99,7 +110,7 @@
                                            <div class="layui-input-inline">
                                                <input class="layui-input" name="HExRate" id="HExRate" autocomplete="off" value="0" style="background-color: #efefef4d;" readonly>
                                            </div>
                                        </div>
                                        </div>
                                    </div>
                                    <div class="layui-row">
                                        <div class="layui-inline">
@@ -130,19 +141,19 @@
                                        <div class="layui-inline">
                                            <label class="layui-form-label">不含税金额</label>
                                            <div class="layui-input-inline">
                                                <input type="text" class="layui-input" name="HMoney" id="HMoney" style="background-color: #efefef4d;" value="0"  autocomplete="off" readonly >
                                                <input type="text" class="layui-input" name="HMoney" id="HMoney" style="background-color: #efefef4d;" value="0" autocomplete="off" readonly>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label">税率</label>
                                            <div class="layui-input-inline">
                                                <input type="text" class="layui-input" name="HTaxRate" id="HTaxRate"  value="0"  autocomplete="off" >
                                                <input type="text" class="layui-input" name="HTaxRate" id="HTaxRate" value="0" autocomplete="off">
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label">单据金额</label>
                                            <div class="layui-input-inline">
                                                <input type="text" class="layui-input" name="HSumMoney" id="HSumMoney"  value="0"  autocomplete="off">
                                                <input type="text" class="layui-input" name="HSumMoney" id="HSumMoney" value="0" autocomplete="off">
                                            </div>
                                        </div>
                                        <div class="layui-inline">
@@ -264,11 +275,43 @@
                                </div>
                            </div>
                        </div>
                        <div class="layui-tab" lay-filter="tab-POStockInBill">
                            <ul class="layui-tab-title" lay-filter="tab-all">
                                <li lay-id="1" style="padding:1px;" class="layui-this">费用项目</li>
                            </ul>
                            <div class="layui-tab-content">
                                <!--子表-->
                                <div class="layui-tab-item layui-show">
                                    <table class="layui-hide" id="mainTable" lay-filter="mainTable"></table>
                                    <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-CopyLine"><i class="layui-icon layui-icon-form"></i>复制一行</button>
                                        </div>
                                    </script>
                                </div>
                            </div>
                        </div>
                    </div>
                </form>
            </div>
        </div>
    </div>
    <!--子表表:删除-->
    <script type="text/html" id="barDemo">
        <!--<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>-->
        <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
    </script>
    <!--行下拉选择(发票类型)-->
    <script type="text/html" id="HTypeSub">
        <select name="HTypeSub" lay-filter="HTypeSub" id="HTypeSub{{d.LAY_TABLE_INDEX+1}}">
            <option value="普通发票">普通发票</option>
            <option value="增值税发票">增值税发票</option>
            <option value="其他">其他</option>
        </select>
    </script>
    <script>
@@ -307,7 +350,7 @@
            //通过单据类型,从数据库动态获取单据模块命名,引用js文件 PageTitle.js
            var HPageTitle = get_PageTitle(HModuleType) == "" ? $("h1").html() : get_PageTitle(HModuleType);
            $("h1").html('<b>' + HPageTitle + '</b>');
            //#endregion
            //#endregion
            ColFilter();//发票类型
@@ -319,26 +362,34 @@
                OperationType = 1;
                //生成并设置主表的内码和单据号
                createBillNo();
                //子表页面初始化
                get_InitGrid();
                //根据登录用户 èŽ·å– éƒ¨é—¨ ç»æ‰‹äºº
                getCzyglByUser();
                //初始化制单人和制单时间
                $("#HMaker").val(sessionStorage["HUserName"]);
                $("#HMakeDate").val(Format(new Date(), "yyyy-MM-dd"));
                $("#HDate").val(Format(new Date(), "yyyy-MM-dd"));
                $("#HAccDate").val(Format(new Date(), "yyyy-MM-dd"));
            }
            else if (OperationType == 3) {                                                 //编辑
                //子表页面初始化
                get_InitGrid();
                //加载编辑页面
                RoadBillMain(linterid);
            }
            //#endregion
            //#region ç»„织初始化
            Organ();
            //#endregion
            //#endregion
            //#region è§¦å‘事件:包括form.on(){}格式的所有点击事件、选择事件等
@@ -375,8 +426,204 @@
            });
            //#endregion
            //#region å­è¡¨ï¼šå¤´å·¥å…·æ äº‹ä»¶
            table.on('toolbar(mainTable)', function (obj) {
                var checkStatus = table.checkStatus('mainTable')
                    , data = checkStatus.data;
                //新增行表格数据
                var NewRow =
                {
                    "HProjectMoneyID": "0"
                    , "HPMoneyName": ""
                    , "HTypeSub": ""
                    , "HMoney": "0"
                    , "HTaxRate": "0"
                    , "HSumMoney": "0"
                    , "HRemark": ""
                };
                switch (obj.event) {
                    case 'btn-AddLine':
                        table.cache["mainTable"].push(NewRow);
                        option.data = table.cache["mainTable"];
                        table.render(option);
                        for (var i = 1; i <= option.data.length; i++) {
                            $('#HTypeSub' + i + '').find("option[value='" + option.data[i - 1].HTypeSub + "']").attr("selected", true);
                        }
                        form.render('select');
                        break;
                    case 'btn-CopyLine':
                        var copydata = JSON.stringify(data);
                        if (data.length <= 0) {
                            layer.msg("请选择需要复制的一行!");
                        }
                        else if (data.length > 1) {
                            layer.msg("只能选择复制一行!");
                        }
                        else {
                            var copydata2 = copydata.substring(1, copydata.length);//去除首行字符'['
                            var copyrow = copydata2.substring(0, copydata2.length - 1);//去除末尾字符']'
                            table.cache["mainTable"].push(JSON.parse(copyrow));//将复制的行强转成json追加到表格上
                            option.data = table.cache["mainTable"];//将数据绑定到data上
                            table.render(option);//将数据渲染到表格上
                            for (var i = 1; i <= option.data.length; i++) {
                                $('#HTypeSub' + i + '').find("option[value='" + option.data[i - 1].HTypeSub + "']").attr("selected", true);
                            }
                            form.render('select');
                        }
                        break;
                }
            });
            //#endregion
            //#region å­è¡¨ï¼šè¡Œå†…事件
            table.on('tool(mainTable)', function (obj) {
                set_GridDelete(obj);   //行内删除
                set_GridCellCheck(obj); //行内快捷键筛选
            });
            //#endregion
            //#region ç›‘听单元格编辑  å•元格编辑后 å˜æ›´
            table.on('edit(mainTable)', function (obj) {
                //数值格式校验工具
                var ref = /^\d+(\.\d+)?$/;          //非负数正则表达式
                var temp = "";
                // å•元格编辑之前的值
                var oldText = $(this).prev().text();
                var value = obj.value //得到修改后的值
                    , data = obj.data //得到所在行所有键值
                    , field = obj.field; //得到字段
                switch (field) {
                    case "HMoney":                   //不含税金额
                        //数据格式校验
                        temp = value + "";
                        if (!ref.test(temp) || temp == 0) {
                            //恢复数据到编辑前
                            obj.update({
                                HMoney: oldText
                            });
                            table.render(option);
                            layer.msg("不含税金额请输入大于0的数字!");
                            return;
                        }
                        //数据校验合格,重算记录
                        var HMoney = value * 1;                           //不含税金额
                        var HTaxRate = obj.data.HTaxRate * 1;           //税率
                        var HSumMoney = HMoney * (1 + (HTaxRate * 0.01));    //总金额=不含税金额*(1+(税率*0.01))
                        //设置数据小数位数
                        HMoney = dealDoubleToFixed(HMoney, 2);
                        HTaxRate = HTaxRate;
                        HSumMoney = dealDoubleToFixed(HSumMoney, 2);
                        //同步更新表格和缓存对应的值
                        obj.update({
                            HMoney: HMoney
                            , HTaxRate: HTaxRate
                            , HSumMoney: HSumMoney
                        });
                        break;
                    case "HTaxRate":                                                       //单价
                        //数据格式校验
                        temp = value + "";
                        if (!ref.test(temp) || temp == 0) {
                            //恢复数据到编辑前
                            obj.update({
                                HTaxRate: oldText
                            });
                            table.render(option);
                            layer.msg("税率请输入大于0的数字!");
                            return;
                        }
                        //数据校验合格,重算记录
                        var HTaxRate = value * 1;                           //税率
                        var HMoney = obj.data.HMoney * 1;           //不含税金额
                        var HSumMoney = HMoney * (1 + (HTaxRate * 0.01));    //总金额=不含税金额*(1+(税率*0.01))
                        //设置数据小数位数
                        HMoney = dealDoubleToFixed(HMoney, 2);
                        HTaxRate = HTaxRate;
                        HSumMoney = dealDoubleToFixed(HSumMoney, 2);
                        //同步更新表格和缓存对应的值
                        obj.update({
                            HMoney: HMoney
                            , HTaxRate: HTaxRate
                            , HSumMoney: HSumMoney
                        });
                        break;
                    case "HSumMoney":                                                       //数量
                        //数据格式校验
                        temp = value + "";
                        if (!ref.test(temp)) {
                            //恢复数据到编辑前
                            obj.update({
                                HSumMoney: oldText
                            });
                            layer.msg("税率请输入不小于0的数字!");
                            return;
                        }
                        //数据校验合格,重算记录
                        var HSumMoney = value * 1;                           //总金额
                        var HTaxRate = obj.data.HTaxRate * 1;           //税率
                        var HMoney = HSumMoney / (1 + (HTaxRate * 0.01));
                        //设置数据小数位数
                        HMoney = dealDoubleToFixed(HMoney, 2);
                        HTaxRate = HTaxRate;
                        HSumMoney = dealDoubleToFixed(HSumMoney, 2);
                        //同步更新表格和缓存对应的值
                        obj.update({
                            HMoney: HMoney
                            , HTaxRate: HTaxRate
                            , HSumMoney: HSumMoney
                        });
                    default:
                }
            });
            //#endregion
            //#region è¡¨æ ¼è¡Œé€‰æ‹©å¤„理
            form.on('select(HTypeSub)', function (data) {
                //获取下拉框选中的值
                var elem = data.othis.parents('tr');
                var dataindex = elem.attr("data-index");
                $.each(option.data, function (index, value) {
                    if (value.LAY_TABLE_INDEX == dataindex) {
                        value.HTypeSub = data.value;//把选中下拉框id值赋值给表格缓存
                    }
                });
            });
            //#endregion
            //#region å¤é€‰æ¡†è§¦å‘事件
@@ -406,12 +653,12 @@
                    var HRelSumMoney = HMoney * (1 + HTaxRate);    //总金额
                    //$("#HSumMoney").val(HRelSumMoney);
                });
                //#endregion
                //#region ç¨ŽçŽ‡å¤±ç„¦äº‹ä»¶
@@ -434,13 +681,13 @@
                    var HTaxRate = newHTaxRate * 1; //税率
                    var HSumMoney = $("#HSumMoney").val() * 1;      //单据金额
                    var HMoney = HSumMoney / (1 + (HTaxRate * 0.01));    //不含税金额
                    $("#HMoney").val(HMoney);
                });
                //#endregion
                  ///不含税金额= å«ç¨Žé‡‘额/(100+税率)/100
                ///不含税金额= å«ç¨Žé‡‘额/(100+税率)/100
                //#region å•据金额失焦事件
                var oldHSumMoney = "";                          //修改前的值
@@ -450,7 +697,7 @@
                    oldHSumMoney = $("#HSumMoney").val() * 1;   //单据金额文本框获取焦点时获取修改前的值
                }).on('blur', function (data) {
                    newHSumMoney = $("#HSumMoney").val();       //单据金额文本框失焦时获取修改后的值
                    if (newHSumMoney!=0) {
                    if (newHSumMoney != 0) {
                        //判断输入的金额是否合法
                        var ref = /^\d+(\.\d+)?$/;          //非负数正则表达式
                        if (!ref.test(newHSumMoney)) {
@@ -462,26 +709,28 @@
                        //输入的总金额合法,重算不含税金额
                        var HSumMoney = newHSumMoney * 1;                    //不含税金额
                        var HTaxRate = $("#HTaxRate").val() * 1;      //税率
                        var HMoney = HSumMoney / (100 + HTaxRate)/100;    //不含税金额
                        var HMoney = HSumMoney / (100 + HTaxRate) / 100;    //不含税金额
                        $("#HMoney").val(HMoney);
                    }
                });
                //#endregion
                //#endregion
            });
            //#endregion
            //#region æ“ä½œæŒ‰é’®è§¦å‘事件
            //#region ä¿å­˜æäº¤
            form.on('submit(btnSave)', function (data) {//提交
                set_AddNew(data);
                if (AllowLoadData(data)) {
                    set_AddNew(data);
                }
            });
            //#endregion
            //#region é€€å‡º
            form.on('submit(btnEdit)', function (data) {
@@ -590,8 +839,111 @@
            }
            //#endregion
            //#region å¼¹çª—页面方法
            //#region å…¶ä»–应收单子表初始化
            function get_InitGrid() {
                option = {
                    elem: '#mainTable'
                    , toolbar: '#toolbarDemo'
                    , totalRow: true
                    , cellMinWidth: 120
                    , height: 400
                    , cols: [[
                        { type: 'checkbox', totalRowText: '合计行' }
                        , { type: 'numbers', title: '序号', style: 'background-color: #f9f9f9;' }
                        , { field: 'HProjectMoneyID', title: '费用项目ID', hide: true, style: 'background-color: #f9f9f9;' }
                        , { field: 'HPMoneyName', title: '费用项目名称', edit: 'text', event: "HPMoneyName", style: 'background-color: #f9f9f9;' }     //f7
                        , { field: 'HTypeSub', title: '发票类型',  templet: '#HTypeSub' }
                        , { field: 'HMoney', title: '不含税金额',  edit: 'text', style: 'background-color: #f9f9f9;' }
                        , { field: 'HTaxRate', title: '税率',  edit: 'text', style: 'background-color: #f9f9f9;' }
                        //, { field: 'HQty', title: '数量', edit: 'text', style: 'background-color: #f9f9f9;' }
                        //, { field: 'HPrice', title: '单价', edit: 'text', style: 'background-color: #f9f9f9;' }
                        , { field: 'HSumMoney', title: '总金额', style: 'background-color: #f9f9f9;' }
                        , { field: 'HRemark', title: '子表备注', edit: 'text', style: 'background-color: #f9f9f9;' }
                        , { fixed: 'right', title: '操作', toolbar: '#barDemo' }
                    ]]
                }
                var rowdata = [
                    {
                        "HProjectMoneyID": "0"
                        , "HPMoneyName": ""
                        , "HTypeSub": ""
                        , "HMoney": "0"
                        , "HTaxRate": "0"
                        , "HSumMoney": "0"
                        , "HRemark": ""
                    }
                ];
                option.data = rowdata;
                table.render(option);
            }
            //#endregion
            //#region è¡Œå†…删除
            function set_GridDelete(obj) {
                var data = obj.data;
                var rowIndex = $(obj.tr).attr("data-index");
                if (obj.event === 'del') {
                    layer.confirm('真的删除行吗?', function (index) {
                        //if (rowIndex === '0') {
                        //    layer.msg('首行无法删除!!!');
                        //} else {
                        var oldData = table.cache["mainTable"];
                        oldData.splice(obj.tr.data('index'), 1)
                        option.data = oldData;//将数据绑定到data上
                        table.render(option);
                        layer.close(index);
                        /*}*/
                    });
                }
            }
            //#endregion
            //#region å¼¹çª—页面方法
            //#region å­è¡¨ï¼šå¿«æ·é”®(F7)打开弹窗
            function set_GridCellCheck(obj) {
                $(document).off('keydown', ".layui-table-edit").on('keydown', '.layui-table-edit', function (e) {
                    if (event.key == "F7") {
                        //器具管理
                        if (obj.event == "HPMoneyName") {
                            //打开器具管理小窗体
                            layer.open({
                                type: 2//弹窗类型
                                , skin: 'layui-layer-rim' //加上边框
                                , area: ['90%', '90%']//大小
                                , title: '项目费用列表'//标题
                                , shift: 2//弹出动画
                                , content: ["../../基础资料/公用基础资料/Gy_ProjectMoney.html?OperationType=2", "yes"]
                                , btn: ['确定', '取消']
                                , btn1: function (index, layero) {//按钮【按钮一】的回调
                                    var iframeWindow = window['layui-layer-iframe' + index]  //获取弹框页面
                                    var checkStatus = iframeWindow.layui.table.checkStatus('mainTable');//获取table的elem:"#test"
                                    if (checkStatus.data.length === 0) {
                                        return layer.msg('请选择数据');
                                    }
                                    obj.update({
                                        "HProjectMoneyID": checkStatus.data[0].HItemID
                                        , "HPMoneyName": checkStatus.data[0].项目费用名称
                                    })
                                    layer.close(index);//关闭弹窗
                                }
                            });
                        }
                        obj.event = "";
                        return false;
                    }
                })
            }
            //#endregion
            //#region é€‰æ‹©éƒ¨é—¨
            function get_checkDept() {
                layer.open({
@@ -684,9 +1036,9 @@
                        if (checkStatus.data.length === 0) {
                            return layer.msg('请选择数据');
                        }
                        $("#HCusID").val(checkStatus.data[0].HItemID);
                        $("#HCusName").val(checkStatus.data[0].供应商名称 );
                        $("#HCusName").val(checkStatus.data[0].供应商名称);
                        layer.close(index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                    }
@@ -711,7 +1063,7 @@
                        if (checkStatus.data.length === 0) {
                            return layer.msg('请选择数据');
                        }
                        $("#HProjectMoneyID").val(checkStatus.data[0].HItemID);
                        $("#HProjectMoneyName").val(checkStatus.data[0].项目费用名称);
@@ -739,10 +1091,93 @@
            }
            //#endregion
            //#region éžç©ºéªŒè¯
            function AllowLoadData(data) {
                //数值格式校验工具
                var ref = /^\d+(\.\d+)?$/;          //非负数正则表达式
                var temp = "";
                //#region è¡¨å¤´æ•°æ®æ£€éªŒ
                if ($("#HBillNo").val() == "") {
                    layer.msg("单据号不能为空!");
                    return false;
                }
                if ($("#HDate").val() == "") {
                    layer.msg("日期不能为空!");
                    return false;
                }
                if ($("#HCusID").val() == "0") {
                    layer.msg("客户不能为空!");
                    return false;
                }
                if ($("#HEmpID").val() == "0") {
                    layer.msg("经手人未选择!");
                    return false;
                }
                //#region å­è¡¨æ ¡éªŒ
                for (var i = 0; i < option.data.length; i++) {
                    //费用项目校验
                    if (option.data[i].HProjectMoneyID == "0") {
                        layer.msg("第" + (i + 1) + "行:请选择费用项目!");
                        return false;
                    }
                    //数量格式校验
                    temp = option.data[i]["HMoney"] + "";
                    if (temp == "0") {
                        layer.msg("第" + (i + 1) + "行:不含税金额不能为0!");
                        return false;
                    } else if (!ref.test(temp)) {
                        layer.msg("第" + (i + 1) + "行:不含税金额请输入大于0的数字!");
                        return false;
                    }
                    //单价格式校验
                    temp = option.data[i]["HTaxRate"] + "";
                    if (temp == "0") {
                        layer.msg("第" + (i + 1) + "行:税率不能为0!");
                        return false;
                    } else if (!ref.test(temp)) {
                        layer.msg("第" + (i + 1) + "行:税率请输入大于0的数字!");
                        return false;
                    }
                    //总金额格式校验
                    temp = option.data[i]["HSumMoney"] + "";
                    if (temp == "0") {
                        layer.msg("第" + (i + 1) + "行:总金额不能为0!");
                        return false;
                    } else if (!ref.test(temp)) {
                        layer.msg("第" + (i + 1) + "行:总金额请输入大于0的数字!");
                        return false;
                    }
                }
                //#endregion
                return true;
            }
            //#endregion
            //#endregion
            //#endregion
            //#region ä¿å­˜HMaker
            function set_AddNew(data) {
                //获取项目费用表数据
                var num = [];
                for (var i = 0; i < table.cache["mainTable"].length; i++) {
                    if (table.cache["mainTable"][i] != "") {
                        table.cache["mainTable"][i].LAY_TABLE_INDEX = i;
                        num.push(table.cache["mainTable"][i])
                    }
                }
                //获取操作方式
                var refSav = "";
                if (OperationType == 1 || OperationType == 2 || OperationType == 4) {
@@ -763,9 +1198,11 @@
                //获取表头数据并序列化
                var sMainStr = JSON.stringify(data.field);              //主表数据
                //其他应收单子表序列化
                var sSubStr = JSON.stringify(num);
                //拼接序列化的数据
                var sMainSub = sMainStr + ';' + refSav + ';' + sessionStorage["HUserName"];
                var sMainSub = sMainStr + ';' + sSubStr + ';' + refSav + ';' + sessionStorage["HUserName"];
                $.ajax({
                    type: "POST",
@@ -807,51 +1244,62 @@
                    success: function (result) {
                        if (result.code == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
                            var data = result.data[0];
                            var data1 = result.data[1];
                            form.val("formData", { //formTest å³ class="layui-form" æ‰€åœ¨å…ƒç´ å±žæ€§ lay-filter="" å¯¹åº”的值
                                "HInterID": data.hmainid
                                ,"HBillNo": data.单据号
                                , "HDate": formatDate(data.日期)
                                , "HAccDate": formatDate(data.收款日期)
                                , "HCusID": data.HCusID
                                , "HCusName": data.供应商
                                , "HCurID": data.HCurID
                                , "HCurName": data.币别
                                , "HExRate": data.汇率
                                , "HDeptID": data.HDeptID
                                , "HDeptName": data.部门
                                , "HEmpID": data.HEmpID
                                , "HEmpName": data.经手人
                                , "HProjectMoneyID": data.HProjectMoneyID
                                , "HProjectMoneyName": data.费用项目
                                , "HType": data.发票类型
                                , "HMoney": data.不含税金额
                                , "HTaxRate": data.税率
                                , "HSumMoney": data.单据金额
                                , "HExplanation": data.摘要
                                , "HInnerBillNo": data.内部单据号
                                , "HRemark": data.表头备注
                                "HInterID": data[0]["hmainid"]
                                , "HBillNo": data[0]["单据号"]
                                , "HDate": formatDate(data[0]["日期"])
                                , "HAccDate": formatDate(data[0]["收款日期"])
                                , "HCusID": data[0]["HCusID"]
                                , "HCusName": data[0]["供应商"]
                                , "HCurID": data[0]["HCurID"]
                                , "HCurName": data[0]["币别"]
                                , "HExRate": data[0]["汇率"]
                                , "HDeptID": data[0]["HDeptID"]
                                , "HDeptName": data[0]["部门"]
                                , "HEmpID": data[0]["HEmpID"]
                                , "HEmpName": data[0]["经手人"]
                                , "HMainSourceInterID": data.HMainSourceInterID == null ? 0 : data.HMainSourceInterID
                                , "HMainSourceEntryID": data.HMainSourceEntryID == null ? 0 : data.HMainSourceEntryID
                                , "HMainSourceBillNo": data.HMainSourceBillNo
                                , "HMainSourceBillType": data.HMainSourceBillType
                                , "HMaker": data.制单人
                                , "HMakeDate": data.制单日期 == null ? "" : Format(new Date(data.制单日期), "yyyy-MM-dd")
                                , "HUpDater": data.修改人
                                , "HUpDateDate": data.修改日期 == null ? "" : Format(new Date(data.修改日期), "yyyy-MM-dd")
                                , "HChecker": data.审核人
                                , "HCheckDate": data.审核日期 == null ? "" : Format(new Date(data.审核日期), "yyyy-MM-dd")
                                , "HCloseMan": data.关闭人
                                , "HCloseDate": data.关闭日期 == null ? "" : Format(new Date(data.关闭日期), "yyyy-MM-dd")
                                , "HDeleteMan": data.作废人
                                , "HDeleteDate": data.作废日期 == null ? "" : Format(new Date(data.作废日期), "yyyy-MM-dd")
                                , "HProjectMoneyID": data[0]["HProjectMoneyID"]
                                , "HProjectMoneyName": data[0]["费用项目"]
                                , "HType": data[0]["发票类型"]
                                , "HMoney": data[0]["不含税金额"]
                                , "HTaxRate": data[0]["税率"]
                                , "HSumMoney": data[0]["单据金额"]
                                , "HExplanation": data[0]["摘要"]
                                , "HInnerBillNo": data[0]["内部单据号"]
                                , "HRemark": data[0]["表头备注"]
                                , "HMainSourceInterID": data[0]["HMainSourceInterID"] == null ? 0 : data[0]["HMainSourceInterID"]
                                , "HMainSourceEntryID": data[0]["HMainSourceEntryID"] == null ? 0 : data[0]["HMainSourceEntryID"]
                                , "HMainSourceBillNo": data[0]["HMainSourceBillNo"]
                                , "HMainSourceBillType": data[0]["HMainSourceBillType"]
                                , "HMaker": data[0]["制单人"]
                                , "HMakeDate": data[0]["制单日期"] == null ? "" : Format(new Date(data[0]["制单日期"]), "yyyy-MM-dd")
                                , "HUpDater": data[0]["修改人"]
                                , "HUpDateDate": data[0]["修改日期"] == null ? "" : Format(new Date(data[0]["修改日期"]), "yyyy-MM-dd")
                                , "HChecker": data[0]["审核人"]
                                , "HCheckDate": data[0]["审核日期"] == null ? "" : Format(new Date(data[0]["审核日期"]), "yyyy-MM-dd")
                                , "HCloseMan": data[0]["关闭人"]
                                , "HCloseDate": data[0]["关闭日期"] == null ? "" : Format(new Date(data[0]["关闭日期"]), "yyyy-MM-dd")
                                , "HDeleteMan": data[0]["作废人"]
                                , "HDeleteDate": data[0]["作废日期"] == null ? "" : Format(new Date(data[0]["作废日期"]), "yyyy-MM-dd")
                            });
                            HOrgIDBar = data.HOrgID == null ? 0 : data.HOrgID;
                            HOrgIDBar = data[0]["HOrgID"] == null ? 0 : data[0]["HOrgID"];
                            //子表数据赋值
                            option.data = data1;
                            table.render(option);
                            for (var i = 0; i < data1.length; i++) {
                                //发票类型
                                $('#HTypeSub' + (i + 1)).find("option[value='" + data1[i].HTypeSub + "']").attr("selected", true);
                            }
                            form.render('select');
                            form.render('checkbox');
                            layer.close(ajaxLoad);
                        } else {
@@ -866,32 +1314,93 @@
            }
            //#endregion
            //#region æ ¹æ®ç™»å½•用户 èŽ·å–éƒ¨é—¨  ç»æ‰‹äºº
            function getCzyglByUser() {
                $.ajax({
                    url: GetWEBURL() + "/Xs_SeOrderBill/getCzyglByUser",
                    async: false,
                    type: "GET",
                    data: {
                        "CurUserName": sessionStorage["HUserName"]
                    },
                    success: function (result) {
                        if (result.code == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
                            var data = result.data[0];
                            $("#HEmpID").val(data.HEmpID);  //经手人id
                            $("#HEmpName").val(data.HEmpName);  //经手人
                            $("#HDeptID").val(data.HDeptID);      //部门id
                            $("#HDeptName").val(data.HDeptName);  //部门
                        } else {
                            layer.alert(result.msg, { icon: 5, btn: ['退出'], time: 100000, offset: 't' });
                        }
                    }, error: function () {
                        layer.alert("发生错误!", { icon: 5 });
                    }
                });
            }
            //#endregion
            //#endregion
        });
        function GetHDeptNameValue(obj)  //返回部门
        {
            $("#HDeptName").val(obj[0].HName);
            $("#HDeptID").val(obj[0].HItemID);
        }
        //function GetHDeptNameValue(obj)  //返回部门
        //{
        //    $("#HDeptName").val(obj[0].HName);
        //    $("#HDeptID").val(obj[0].HItemID);
        //}
        function GetHEmpValue(obj)  //返回经手人
        {
            $("#HEmpName").val(obj[0].HName);
            $("#HEmpID").val(obj[0].HItemID);
        }
        //function GetHEmpValue(obj)  //返回经手人
        //{
        //    $("#HEmpName").val(obj[0].HName);
        //    $("#HEmpID").val(obj[0].HItemID);
        //}
        function GetHSupValue(obj)  //返回客户
        {
            $("#HCusName").val(obj[0].HName);
            $("#HCusID").val(obj[0].HItemID);
        }
        //function GetHSupValue(obj)  //返回客户
        //{
        //    $("#HCusName").val(obj[0].HName);
        //    $("#HCusID").val(obj[0].HItemID);
        //}
        //#region å¤„理小数显示位数(data:需要处理的数据;num:数据的类型(如1:数量;2:金额;3:单价))
        function dealDoubleToFixed(data, num) {
            //用于设置小数位数
            var dotLength = 0;
            if (num == 1) {                                    //当数据为数量时,最多保留6位小数
                //设置最多保留6位小数
                dotLength = 6;
            } else if (num == 2) {                             //当数据为金额时,最多保留2位小数
                //设置最多保留2位小数
                dotLength = 2;
            } else if (num == 3) {                             //当数据为单价时,最多保留4位小数
                //设置最多保留4位小数
                dotLength = 4;
            }
            //判断是否存在小数点及其索引位置
            data = data + "";
            var index = data.indexOf(".");
            //处理数据并返回
            if (index < 0) {
                return data * 1;
            } else {
                //获取小数位数
                var length = data.length - index - 1;
                if (length <= dotLength) {
                    return data * 1;
                } else {
                    data = data * 1;
                    return data.toFixed(dotLength);
                }
            }
        }
            //#endregion
    </script>
</body>
</html>
WebTM/views/²É¹º¹ÜÀí/ÆäËûÓ¦¸¶µ¥/YF_PayMentOtherBillMainList.html
File was renamed from WebTM/views/ÏúÊÛ¹ÜÀí/ÆäËûÓ¦¸¶µ¥/YF_PayMentOtherBillMainList.html
@@ -131,7 +131,7 @@
            var HModName = "YF_PayMentOtherBillMainList";
            //不需要显示的字段 å¯æ‰©å±•
            var titleData = ["hmainid", "HDeptID", "HEmpID",  "HCurID", "HCusID", "HProjectMoneyID",];
            var titleData = ["hmainid", "HDeptID", "HEmpID",  "HCurID", "HCusID", "HProjectMoneyID","子费用项目ID"];
            //#region ã€åŠ¨æ€èŽ·å–æ¨¡å—åç§°ã€‘
            var HModuleType = "2102";
@@ -259,7 +259,7 @@
                    , area: ['100%', '100%']
                    , title: '收款单-编辑'
                    , shift: 0//弹出动画
                    , content: '../../销售管理/其他应付单/YF_PayMentOtherBillMain.html?OperationType=3&linterid=' + linterid + '&HSouceBillType='
                    , content: '../../采购管理/其他应付单/YF_PayMentOtherBillMain.html?OperationType=3&linterid=' + linterid + '&HSouceBillType='
                    , btn: ['确定'],
                    end: function (index, layero, that) {
                        //刷新页面
@@ -460,7 +460,7 @@
                    , area: ['100%', '100%']
                    , title: '新增' + HPageTitle
                    , shift: 0//弹出动画
                    , content: '../../销售管理/其他应付单/YF_PayMentOtherBillMain.html?OperationType=1&linterid=0&HSouceBillType='
                    , content: '../../采购管理/其他应付单/YF_PayMentOtherBillMain.html?OperationType=1&linterid=0&HSouceBillType='
                    ,btn: [],
                    end: function (index, layero, that) {
                        //刷新页面
@@ -482,7 +482,7 @@
                        , area: ['100%', '100%']
                        , title: '编辑' + HPageTitle
                        , shift: 0//弹出动画
                        , content: '../../销售管理/其他应付单/YF_PayMentOtherBillMain.html?OperationType=3&linterid=' + linterid + '&HSouceBillType='
                        , content: '../../采购管理/其他应付单/YF_PayMentOtherBillMain.html?OperationType=3&linterid=' + linterid + '&HSouceBillType='
                        , btn: [],
                        end: function (index, layero, that) {
                            //刷新页面
WebTM/views/²É¹º¹ÜÀí/²É¹º¶©µ¥/Cg_POOrderBillList.html
@@ -1532,13 +1532,13 @@
                                }
                            }
                            table.render(option);
                            var HBillType = "1102";
                            //刷新按钮显示
                            var btns = document.getElementsByTagName("button");     //获取本页所有按钮对象
                            Display_HideButton(btns, HBillType, HModName, sessionStorage["HUserName"]);
                        } else {
                            table.render(option);
                            var HBillType = "1102";
                            //刷新按钮显示
                            var btns = document.getElementsByTagName("button");     //获取本页所有按钮对象
                            Display_HideButton(btns, HBillType, HModName, sessionStorage["HUserName"]);
WebTM/views/ÏúÊÛ¹ÜÀí/ÆäËûÓ¦ÊÕµ¥/YS_ReceiveOtherBillMain.html
@@ -1304,7 +1304,7 @@
                            for (var i = 0; i <data1.length; i++) {
                                //延迟原因
                                //发票类型
                                $('#HTypeSub' + (i + 1)).find("option[value='" + data1[i].HTypeSub + "']").attr("selected", true);
                            }
                            form.render('select');
WebTM/views/ÑéÊÕÈë¿â/ÆäËûÈë¿â/Add_Edit_Kf_OtherInBill.html
New file
@@ -0,0 +1,1408 @@
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <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">
    <link rel="stylesheet" href="../../../layuiadmin/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../../layuiadmin/style/admin.css" media="all">
    <script src="../../../layuiadmin/layui/layui.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/zgqCustom/zgqCustom.js"></script>
    <script src="../../../layuiadmin/PageTitle.js"></script>
    <style type="text/css">
        /*begin æ­¤æ ·å¼ç”¨äºŽæ¶ˆé™¤è¡Œå…ƒç´ ä¸­å¸ƒå±€å®½åº¦ä¸å¤Ÿçš„问题*/
        .layui-form-item .layui-inline {
            margin-top: 5px;
            margin-bottom: 5px;
            margin-right: 0px;
        }
        /*end*/
        html {
            background-color: white;
            color: white;
        }
        .layui-table-cell {
            overflow: visible !important;
        }
        td .layui-form-select {
            margin-top: -10px;
            margin-left: -15px;
            margin-right: -15px;
        }
    </style>
</head>
<body>
    <div class="layui-fluid" style="padding: 0;">
        <div class="layui-card" style="padding: 15px;">
            <div class="layui-card-body" style="padding: 1px;">
                <form class="layui-form" lay-filter="component-form-group" action="">
                    <div class="layui-card-header">
                        <div class="layui-btn-group">
                            <button type="button" id="add-btn" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="set_SaveBill">保存</button>
                            <button type="button" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="Exit">退出</button>
                        </div>
                    </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>
                        </ul>
                        <div class="layui-tab-content">
                            <!--基本信息-->
                            <div class="layui-tab-item layui-show">
                                <div class="layui-form-item" style="padding-top: 10px;">
                                    <div class="layui-row">
                                        <div class="layui-col-xs4 layui-inline">
                                            <label class="layui-form-label">单据号</label>
                                            <div class="layui-input-inline">
                                                <input type="text" class="layui-input" name="HBillNo" id="HBillNo" style="background-color:#efefef4d;" readonly>
                                                <input type="hidden" name="HInterID" id="HInterID" value="0">
                                            </div>
                                        </div>
                                        <div class="layui-col-xs4 layui-inline">
                                            <label class="layui-form-label">日期</label>
                                            <div class="layui-input-inline">
                                                <input class="layui-input" name="HDate" id="HDate" autocomplete="off" model="datetime" dateFormat="yyyy-MM-dd" placeholder="yyyy-MM-dd">
                                            </div>
                                        </div>
                                        <div class="layui-col-xs4 layui-inline">
                                            <label class="layui-form-label">内部单据号</label>
                                            <div class="layui-input-inline">
                                                <input class="layui-input" name="HInnerBillNo" id="HInnerBillNo" autocomplete="off">
                                            </div>
                                        </div>
                                    </div>
                                    <div class="layui-row">
                                        <div class="layui-col-xs4 layui-inline" style="display:none;">
                                            <label class="layui-form-label">调出仓库ID</label>
                                            <div class="layui-input-inline">
                                                <input type="hidden" name="HSCWHID" id="HSCWHID" class="layui-input" value=0 style="float:left;width:150px;">
                                            </div>
                                        </div>
                                        <div class="layui-col-xs4 layui-inline" style="display:none;">
                                            <label class="layui-form-label">往来单位</label>
                                            <div class="layui-input-inline">
                                                <input type="hidden" name="HSupID" id="HSupID" class="layui-input" value=0 style="float:left;width:150px;">
                                            </div>
                                        </div>
                                        <div class="layui-col-xs4 layui-inline" style="display:none;">
                                            <label class="layui-form-label">业务员</label>
                                            <div class="layui-input-inline">
                                                <input type="hidden" name="HEmpID" id="HEmpID" class="layui-input" value=0 style="float:left;width:150px;">
                                            </div>
                                        </div>
                                        <div class="layui-col-xs4 layui-inline">
                                            <label class="layui-form-label">主管</label>
                                            <div class="layui-input-inline">
                                                <input type="text" name="HMangerName" id="HMangerName" class="layui-input" value="" style="float:left;width:150px;">
                                                <input type="hidden" name="HManagerID" id="HManagerID" class="layui-input" value=0 style="float:left;width:150px;">
                                                <button type="button" lay-submit="" class="layui-btn" lay-filter="HManagerList" style="width:40px;">
                                                    <i class="layui-icon layui-icon-search layuiadmin-button-btn" style="margin-left:-9px;"></i>
                                                </button>
                                            </div>
                                        </div>
                                        <div class="layui-col-xs4 layui-inline">
                                            <label class="layui-form-label">仓库</label>
                                            <div class="layui-input-inline">
                                                <input type="text" name="HWHName" id="HWHName" class="layui-input" value="" style="float:left;width:150px;">
                                                <input type="hidden" name="HWHID" id="HWHID" class="layui-input" value=0 style="float:left;width:150px;">
                                                <button type="button" lay-submit="" class="layui-btn" lay-filter="HWHList" style="width:40px;">
                                                    <i class="layui-icon layui-icon-search layuiadmin-button-btn" style="margin-left:-9px;"></i>
                                                </button>
                                            </div>
                                        </div>
                                        <div class="layui-col-xs4 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;">
                                                <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>
                                    <div class="layui-row">
                                        <div class="layui-col-xs4 layui-inline">
                                            <label class="layui-form-label">验收员</label>
                                            <div class="layui-input-inline">
                                                <input type="text" name="HSecManagerName" id="HSecManagerName" class="layui-input" value="" style="float:left;width:150px;">
                                                <input type="hidden" name="HSecManagerID" id="HSecManagerID" class="layui-input" value=0 style="float:left;width:150px;">
                                                <button type="button" lay-submit="" class="layui-btn" lay-filter="HSecManagerList" style="width:40px;">
                                                    <i class="layui-icon layui-icon-search layuiadmin-button-btn" style="margin-left:-9px;"></i>
                                                </button>
                                            </div>
                                        </div>
                                        <div class="layui-col-xs4 layui-inline">
                                            <label class="layui-form-label">保管员</label>
                                            <div class="layui-input-inline">
                                                <input type="text" name="HKeeperName" id="HKeeperName" class="layui-input" value="" style="float:left;width:150px;">
                                                <input type="hidden" name="HKeeperID" id="HKeeperID" class="layui-input" value=0 style="float:left;width:150px;">
                                                <button type="button" lay-submit="" class="layui-btn" lay-filter="HKeeperList" style="width:40px;">
                                                    <i class="layui-icon layui-icon-search layuiadmin-button-btn" style="margin-left:-9px;"></i>
                                                </button>
                                            </div>
                                        </div>
                                    </div>
                                    <div class="layui-row">
                                        <div class="layui-col-xs4 layui-inline">
                                            <label class="layui-form-label">源单类型</label>
                                            <div class="layui-input-inline">
                                                <select name="HSourceBillType" lay-filter="HSourceBillType" id="HSourceBillType">
                                                    <option value="手工录入" selected="selected">手工录入</option>
                                                </select>
                                            </div>
                                        </div>
                                        <div class="layui-col-xs4 layui-inline">
                                            <label class="layui-form-label">选单号</label>
                                            <div class="layui-input-inline">
                                                <input type="text" name="" id="" class="layui-input" value="" style="float:left;width:150px;">
                                                <button type="button" lay-submit="" class="layui-btn" lay-filter="XDHList" id="XDHList" style="width:40px;">
                                                    <i class="layui-icon layui-icon-search layuiadmin-button-btn" style="margin-left:-9px;"></i>
                                                </button>
                                            </div>
                                        </div>
                                    </div>
                                    <div class="layui-row">
                                        <div class="layui-col-xs7 layui-inline">
                                            <label class="layui-form-label">摘要</label>
                                            <div class="layui-input-block">
                                                <input class="layui-input" name="HExplanation" id="HExplanation" autocomplete="off">
                                            </div>
                                        </div>
                                    </div>
                                    <div class="layui-row">
                                        <div class="layui-col-xs7 layui-inline">
                                            <label class="layui-form-label">备注</label>
                                            <div class="layui-input-block">
                                                <input class="layui-input" name="HRemark" id="HRemark" autocomplete="off">
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <!--制单信息-->
                            <div class="layui-tab-item">
                                <div class="layui-form-item">
                                    <div class="layui-row">
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">制单人</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HMaker" id="HMaker" style="background-color:#efefef4d;" readonly>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">审核人</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HChecker" id="HChecker" style="background-color:#efefef4d;" readonly>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">关闭人</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HCloseMan" id="HCloseMan" style="background-color:#efefef4d;" readonly>
                                            </div>
                                        </div>
                                    </div>
                                    <div class="layui-row">
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">修改人</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HUpDater" id="HUpDater" style="background-color:#efefef4d;" readonly>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">作废人</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HDeleteMan " id="HDeleteMan " style="background-color:#efefef4d;" readonly>
                                            </div>
                                        </div>
                                    </div>
                                    <div class="layui-row">
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">制单日期</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HMakeDate" id="HMakeDate" style="background-color:#efefef4d;" readonly>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">审核日期</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HCheckDate" id="HCheckDate" style="background-color:#efefef4d;" readonly>
                                            </div>
                                        </div>
                                        <div class="layui-inline" >
                                            <label class="layui-form-label" style="width: 85px;">关闭日期</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HCloseDate" id="HCloseDate" style="background-color:#efefef4d;" readonly>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">修改日期</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HUpDateDate" id="HUpDateDate" style="background-color:#efefef4d;" readonly>
                                            </div>
                                        </div>
                                        <div class="layui-row">
                                            <div class="layui-inline">
                                                <label class="layui-form-label" style="width: 85px;">作废日期</label>
                                                <div class="layui-input-block" style="margin-left: 120px;">
                                                    <input type="text" class="layui-input" name="HDeleteDate" id="HDeleteDate" style="background-color:#efefef4d;" readonly>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                    <table class="layui-hide" id="mainTable" lay-filter="mainTable"></table>
                    <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-CopyLine"><i class="layui-icon layui-icon-form"></i>复制一行</button>
                        </div>
                    </script>
                    <script type="text/html" id="xuhao">
                        {{d.LAY_TABLE_INDEX+1}}
                    </script>
                </form>
            </div>
        </div>
    </div>
    <script type="text/html" id="barDemo">
        <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
    </script>
    <script>
        //#region æŠ˜å æ³¨é‡Š
        //#endregion
        layui.config({
            base: '../../../layuiadmin/' //静态资源所在路径
        }).extend({
            index: 'lib/index' //主入口模块
        }).use(['index', 'form', 'laydate', 'table', 'element'], function () {
            //#region å…¬ç”¨å˜é‡
            var $ = layui.$
                , admin = layui.admin
                , layer = layui.layer
                , table = layui.table
                , form = layui.form
                , element = layui.element;
            var sWhere = "";
            var date = new Date();
            var day = date.getDate();
            var month = date.getMonth() + 1;
            var year = date.getFullYear();
            var shijian = year + "-" + month + "-" + day;
            var allVal;
            //#endregion
            //#region è¿›å…¥é¡µé¢å³åŠ è½½
            //判断是否登录 æœªç™»å½•则跳到登录页
            get_LoginIs();
            //#region ã€åŠ¨æ€èŽ·å–æ¨¡å—åç§°ã€‘
            var HModuleType = "1203";
            //通过单据类型,从数据库动态获取单据模块命名,引用js文件 PageTitle.js
            var HPageTitle = get_PageTitle(HModuleType) == "" ? $("h1").html() : get_PageTitle(HModuleType);
            $("h1").html('<b>' + HPageTitle + '</b>');
            //#endregion
            //Organ();//显示组织
            //获取源单类型
            //HSourceBillType();
            //获取页面跳转参数
            var params = get_UrlVars();
            var OperationType = params[params[0]]; //从参数中获取 æ•°æ®ç±»åž‹  1添加 ä¿å­˜  2复制  3 ç¼–辑
            var linterid = params[params[1]]; //从参数中获取 å•据内码
            if (typeof (params[params[0]]) == "undefined") {
                OperationType = 1;//操作类型
            } else {
                OperationType = params[params[0]];//操作类型
                linterid = params[params[1]];//源单id
            }
            //判断操作类型
            if (OperationType == 1) {//无源单新增
                $("#HItemID").val(0);
            }
            else if (OperationType == 3) {//编辑
                $("#HItemID").val(linterid);//修改时主表ID
                //编辑状态时,根据内码,获取信息并写入界面
                RoadBillMain(linterid);
            }
            else {
                layer.alert("未知操作类型!", { icon: 5 });
            }
            //#endregion
            //判断是否新增
            if (linterid == null || linterid == 0) {
                //获取最大单据号 new
                $("#HMaker").val(sessionStorage["HUserName"]);
                $("#HInterID").val("0");
                $("#HBillNo").val("");
                $.ajax({
                    url: GetWEBURL() + "/Web/GetMAXNum",
                    type: "GET",
                    data: { "HBillType": '1203' },
                    success: function (d) {
                        $("#HBillNo").val(d.data[0].HBillNo);
                        $("#HDate").val(Format(new Date(), "yyyy-MM-dd"));
                        $("#HInterID").val(d.data[0].HInterID);
                    }
                });
            } else {//如果修改则走下面 new
                $("#HInterID").val(linterid);
                RoadBillMain(linterid);
            }
            //#endregion
            //#endregion
            var rowdata = [{
                "HMaterID": 0, "物料代码": "", "物料名称": "", "规格型号": "",   "HUnitID": 0, "计量单位": "",   "HRemark": "",
                "HQtyMust": "","HQty": "","HPrice": "0", "HMoney": "0",   "HWHID": 0, "收料仓库": "",
                "HSPID": 0, "HSPGroupID": 0, "仓位名称": "", "HBatchNo": "", "HPOOrderInterID": 0, "HPOOrderEntryID": 0,
                "HPOOrderBillNo": "", "HSeOrderInterID": 0, "HSeOrderEntryID": 0, "HSeOrderBillNo": "",
                "HSourceBillNo": 0, "HSourceBillType": 0, "HSourceInterID": 0, "HSourceEntryID": 0,
            }];
            // åˆå§‹åŒ–界
            set_InitGrid();
            //头工具栏事件
            table.on('toolbar(mainTable)', function (obj) {
                var checkStatus = table.checkStatus('mainTable')
                    , data = checkStatus.data;
                //新增行表格数据
                var NewRow = {
                    "HMaterID": 0, "物料代码": "", "物料名称": "", "规格型号": "", "HUnitID": 0, "计量单位": "", "HRemark": "",
                    "HQtyMust": "", "HQty": "", "HPrice": "0", "HMoney": "0", "HWHID": 0, "收料仓库": "",
                    "HSPID": 0, "HSPGroupID": 0, "仓位名称": "", "HBatchNo": "", "HPOOrderInterID": 0, "HPOOrderEntryID": 0,
                    "HPOOrderBillNo": "", "HSeOrderInterID": 0, "HSeOrderEntryID": 0, "HSeOrderBillNo": "",
                    "HSourceBillNo": 0, "HSourceBillType": 0, "HSourceInterID": 0, "HSourceEntryID": 0,
                };
                switch (obj.event) {
                    case 'btn-AddLine':
                        table.cache["mainTable"].push(NewRow);
                        option.data = table.cache["mainTable"];
                        table.render(option);
                        //刷新复选框
                        //checkRefresh();
                        break;
                    case 'btn-CopyLine':
                        var copydata = JSON.stringify(data);
                        if (data.length <= 0) {
                            layer.msg("请选择需要复制的一行!");
                        }
                        else if (data.length > 1) {
                            layer.msg("只能选择复制一行!");
                        }
                        else {
                            var copydata2 = copydata.substring(1, copydata.length);//去除首行字符'['
                            var copyrow = copydata2.substring(0, copydata2.length - 1);//去除末尾字符']'
                            table.cache["mainTable"].push(JSON.parse(copyrow));//将复制的行强转成json追加到表格上
                            option.data = table.cache["mainTable"];//将数据绑定到data上
                            table.render(option);//将数据渲染到表格上
                            //刷新复选框
                            //checkRefresh();
                        }
                        break;
                }
            });
            //#region è§¦å‘事件:包括form.on(){}格式的所有点击事件、选择事件等
            //退出按钮
            form.on('submit(Cancel)', function () {
                Pub_Close(1);
            })
            //选择业务员按钮
            //form.on('submit(HEmpList)', function () {
            //    get_checkEmp();
            //});
            //选择供应商按钮
            //form.on('submit(HSupList)', function () {
            //    get_checkSup();
            //});
            //选择主管按钮
            form.on('submit(HManagerList)', function () {
                get_checkManager();
            });
            //选择仓库按钮
            form.on('submit(HWHList)', function () {
                get_checkWH();
            });
            //选择验收员按钮
            form.on('submit(HSecManagerList)', function () {
                get_checkSecManager();
            });
            //选择保管员按钮
            form.on('submit(HKeeperList)', function () {
                get_checkKeeper();
            });
            //选择部门按钮
            form.on('submit(HDeptList)', function () {
                get_checkDept();
            });
            //保存按钮
            form.on('submit(set_SaveBill)', function (data) {
                set_SaveBill(data);
            });
            //行内事件
            table.on('tool(mainTable)', function (obj) {
                set_GridDelete(obj);   //行内删除
                set_GridCellCheck(obj); //行内快捷键筛选
                var data = obj.data;
                if (obj.event == 'HDate') {
                    var field = $(this).data('field');
                    laydate.render({
                        elem: this.firstChild
                        , show: true //直接显示
                        , closeStop: this
                        , done: function (nowDate) {
                            //时间选择完成,行数据更新
                            data[field] = nowDate;
                            obj.update(data);
                            //刷新复选框
                            //checkRefresh();
                        }
                    });
                }
            });
            //#endregion
            //#region ç›‘听单元格编辑  å•元格编辑后 å˜æ›´
            table.on('edit(mainTable)', function (obj) {
                //数值格式校验工具
                var ref = /^\d+(\.\d+)?$/;          //非负数正则表达式
                var temp = "";
                // å•元格编辑之前的值
                var oldText = $(this).prev().text();
                var value = obj.value //得到修改后的值
                    , data = obj.data //得到所在行所有键值
                    , field = obj.field; //得到字段
                switch (field) {
                    case "HQty":                                         //数量
                        //数据格式校验
                        temp = value + "";
                        if (!ref.test(temp) || temp == 0) {
                            //恢复数据到编辑前
                            obj.update({
                                HQty: oldText
                            });
                            table.render(option);
                            layer.msg("数量请输入大于0的数字!");
                            return;
                        }
                        //数据校验合格,重算记录
                        var HQty = value * 1;                           //数量
                        var HPrice = obj.data.HPrice * 1;               //单价
                        var HMoney = HQty * HPrice;                     //金额=数量*单价
                        //同步更新表格和缓存对应的值
                        obj.update({
                            HQty: HQty
                            , HPrice: HPrice
                            , HMoney: HMoney
                        });
                        /* table.render(option);*/
                        break;
                    case "HPrice":                                         //单价
                        //数据格式校验
                        temp = value + "";
                        if (!ref.test(temp) || temp == 0) {
                            //恢复数据到编辑前
                            obj.update({
                                HPrice: oldText
                            });
                            /* table.render(option);*/
                            layer.msg("单价请输入大于0的数字!");
                            return;
                        }
                        //数据校验合格,重算记录
                        var HQty = obj.data.HQty * 1;                   //数量
                        var HPrice = value * 1;
                        var HMoney = HQty * HPrice;                     //金额=数量*单价
                        //同步更新表格和缓存对应的值
                        obj.update({
                            HQty: HQty
                            , HPrice: HPrice
                            , HMoney: HMoney
                        });
                        break;
                    case "HMoney":                                         //金额
                        //数据格式校验
                        temp = value + "";
                        if (!ref.test(temp) || temp == 0) {
                            //恢复数据到编辑前
                            obj.update({
                                HMoney: oldText
                            });
                            /* table.render(option);*/
                            layer.msg("金额请输入大于0的数字!");
                            return;
                        }
                        //数据校验合格,重算记录
                        var HQty = obj.data.HQty * 1;                   //数量
                        var HMoney = value * 1;
                        var HPrice = (HMoney / HQty).toFixed(2);       //单价=金额/数量
                        //同步更新表格和缓存对应的值
                        obj.update({
                            HQty: HQty
                            , HPrice: HPrice
                            , HMoney: HMoney
                        });
                        break;
                        table.render(option);
                    default:
                }
            });
            //#endregion
            //#endregion
            //#endregion
            //#region æœ¬é¡µé¢æ‰€æœ‰è¢«è°ƒç”¨çš„æ–¹æ³•
            //#region åˆ¤æ–­æ˜¯å¦ç™»å½• æœªç™»å½•则跳到登录页
            function get_LoginIs() {
                if (sessionStorage.login != "login") {
                    layer.confirm("登录失效,请重新登录!", {
                        icon: 4, skin: 'layui-layer-lan', title: "温馨提示", closeBtn: 0, btn: ['重新登录']
                    }, function () { window.location.href = "../../user/login.html"; });
                }
            }
            //#endregion
            //获取组织
            function Organ() {
                //获取登录页组织列
                var Organization = '';
                $.ajax({
                    type: "get",
                    url: GetWEBURL() + "/Web/GetOrganizations",
                    success: function (result) {
                        if (result.count == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
                            var data = result.data;
                            for (var i = 0; i < data.length; i++) {
                                Organization += '<option  style="color:blue;" value="' + data[i].ID + '">' + data[i].Name + '</option>';
                            }
                            $("#HUSEORGID").append(Organization);
                            $("#HUSEORGID").val(sessionStorage["OrganizationID"])
                            form.render('select');
                        }
                        layer.closeAll("loading");
                    }
                })
            }
            //日期格式化
            function formatDate(date) {
                var d = new Date(date),
                    month = '' + (d.getMonth() + 1),
                    day = '' + d.getDate(),
                    year = d.getFullYear();
                if (month.length < 2) month = '0' + month;
                if (day.length < 2) day = '0' + day;
                return [year, month, day].join('-');
            }
            //子表
            function set_InitGrid() {
                option = {
                    elem: '#mainTable'
                    , toolbar: '#toolbarDemo'
                    , limit: 500
                    , height: 500
                    , loading: false
                    , totalRow: true
                    , cols: [[ //子表
                        { type: 'checkbox', totalRowText: '合计行' }
                        , { type: 'numbers', title: '序号', width: 100 }
                        , { type: 'HSourceBillNo', title: '源单号', width: 100, hide: true }//源单号
                        , { field: 'HSourceBillType', title: '源单类型', width: 100, hide: true }//源单类型
                        , { type: 'HSourceInterID', title: '源单主内码', width: 100, hide: true }//源单主内码
                        , { field: 'HSourceEntryID', title: '源单子内码', width: 100, hide: true }//源单子内码
                        , { field: 'HMaterID', title: 'HMaterID', width: 100, hide: true }
                        , { field: '物料代码', title: '物料代码', width: 150, edit: 'text', event: "HMaterID" }//f7
                        , { field: '物料名称', title: '物料名称', width: 150, }
                        , { field: '规格型号', title: '规格型号', width: 100, }
                        //, { field: 'HAuxPropID', title: 'HAuxPropID', width: 100, hide: true }
                        //, { field: '物料辅助属性', title: '物料辅助属性', width: 150, edit: 'text'}//f7
                        , { field: 'HUnitID', title: 'HUnitID', width: 100, hide: true }
                        , { field: '计量单位', title: '计量单位', width: 100, edit: 'text', event: "HUnitID" }//f7
                        , { field: 'HQtyMust', title: '应收数量', width: 150, edit: 'text', totalRow: true}
                        , { field: 'HQty', title: '实收数量', width: 150, edit: 'text', totalRow: true}
                        , { field: 'HPrice', title: '单价', width: 100, edit: 'text' }
                        , { field: 'HMoney', title: '金额', width: 100, edit: 'text', totalRow: true }
                        , { field: 'HWHID ', title: 'HWHID ', width: 100, hide: true }
                        , { field: '收料仓库', title: '收料仓库', width: 100, edit: 'text', event: "HWHID" }//f7
                        , { field: 'HSPID', title: 'HSPID', width: 100, hide: true }
                        , { field: 'HSPGroupID', title: 'HSPGroupID', width: 100, hide: true }
                        , { field: '仓位名称', title: '仓位名称', width: 100, edit: 'text', event: "HSPID" }//f7
                        , { field: 'HBatchNo', title: '批次', width: 150, edit: 'text', hide: true }
                        , { field: 'HPOOrderInterID', title: '采购订单主内码', width: 100, hide: true }//采购订单主内码
                        , { field: 'HPOOrderEntryID', title: '采购订单子内码', width: 100, hide: true }//采购订单子内码
                        , { field: 'HPOOrderBillNo', title: '采购订单号', width: 100, edit: 'text', event: "HPOOrderBillNo" }//采购订单号
                        , { field: 'HSeOrderInterID', title: '销售订单主内码', width: 100, hide: true }//销售订单主内码
                        , { field: 'HSeOrderEntryID', title: '销售订单子内码', width: 100, hide: true }//销售订单子内码
                        , { field: 'HSeOrderBillNo', title: '销售订单号', width: 100, edit: 'text', event: "HSeOrderBillNo" }//销售订单号
                        , { field: 'HRemark', title: '备注', width: 100, edit: 'text' }
                        , { fixed: 'right', title: '操作', toolbar: '#barDemo', width: 70 }
                    ]]
                }
                option.data = [];
                table.render(option);
            }
            //#region åŠ è½½è¡¨å¤´
            function RoadBillMain(linterid) {
                //查询检验方案单是否存在
                var ajaxLoad = layer.load();
                $.ajax({
                    url: GetWEBURL() + "Kf_OtherInBill/Kf_OtherInBillEdit",
                    type: "GET",
                    data: {
                        "HInterID": linterid
                    },
                    success: function (result) {
                        if (result.code == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
                            var data = result.data[0];
                            data1 = result.data[1];
                            form.val("component-form-group", { //formTest å³ class="layui-form" æ‰€åœ¨å…ƒç´ å±žæ€§ lay-filter="" å¯¹åº”的值
                                "HInterID": data[0]["hmainid"]
                                , "HBillNo": data[0]["单据号"]
                                , "HDate": formatDate(data[0]["日期"])
                                , "HInnerBillNo": data[0]["内部单据号"]
                                , "HWHID": data[0]["HWHID"]
                                , "HWHName": data[0]["仓库"]
                                , "HSecManagerID": data[0]["HSecManagerID"]
                                , "HSecManagerName": data[0]["验收员"]
                                , "HKeeperID": data[0]["HKeeperID"]
                                , "HKeeperName": data[0]["保管员"]
                                , "HDeptName": data[0]["部门"]
                                , "HDeptID": data[0]["HDeptID"]
                                , "HManagerID": data[0]["HManagerID"]
                                , "HMangerName": data[0]["主管"]
                                , "HExplanation": data[0]["HExplanation"]
                                , "HRemark": data[0]["表头备注"]
                                , "HMaker": data[0]["制单人"]
                                , "HMakeDate": data[0]["制单日期"] == null ? "" : Format(new Date(data[0]["制单日期"]), "yyyy-MM-dd")
                                , "HUpDater": data[0]["修改人"]
                                , "HUpDateDate": data[0]["修改日期"] == null ? "" : Format(new Date(data[0]["修改日期"]), "yyyy-MM-dd")
                                , "HChecker": data[0]["审核人"]
                                , "HCheckDate": data[0]["审核日期"] == null ? "" : Format(new Date(data[0]["审核日期"]), "yyyy-MM-dd")
                                , "HCloseMan": data[0]["关闭人"]
                                , "HCloseDate": data[0]["关闭日期"] == null ? "" : Format(new Date(data[0]["关闭日期"]), "yyyy-MM-dd")
                                , "HDeleteMan": data[0]["作废人"]
                                , "HDeleteDate": data[0]["作废日期"] == null ? "" : Format(new Date(data[0]["作废日期"]), "yyyy-MM-dd")
                            });
                            option.data = data1;
                            table.render(option);
                            form.render('select');
                            layer.close(ajaxLoad);
                        } else {
                            layer.close(ajaxLoad);
                            layer.alert(result.msg, { icon: 5, btn: ['退出'], time: 100000, offset: 't' });
                        }
                    }, error: function () {
                        layer.close(ajaxLoad);
                        layer.alert("发生错误!", { icon: 5 });
                    }
                });
            }
            //#endregion
            //退出
            form.on('submit(Exit)', function (data) {
                if (linterid == undefined) {
                    //关闭页签
                    Pub_Close(2);
                }
                else {
                    //关闭页签
                    Pub_Close(1);
                }
            });
            //#region ä¿å­˜æ–¹æ³•
            function set_SaveBill(data) {
                if ($("#HDeptName").val() == 0) {
                    layer.msg("请选择部门!", { icon: 5, btn: ['确认'], time: 100000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                    return;
                }
                if ($("#HWHName").val() == 0) {
                    layer.msg("请选择仓库!", { icon: 5, btn: ['确认'], time: 100000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                    return;
                }
                if ($("#HKeeperID").val() == 0) {
                    layer.msg("请选择保管员!", { icon: 5, btn: ['确认'], time: 100000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                    return;
                }
                if ($("#HSecManagerID").val() == 0) {
                    layer.msg("请选择验收员!", { icon: 5, btn: ['确认'], time: 100000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                    return;
                }
                var num = [];
                for (var i = 0; i < table.cache["mainTable"].length; i++) {
                    if (table.cache["mainTable"][i] != "") {
                        table.cache["mainTable"][i].LAY_TABLE_INDEX = i;
                        num.push(table.cache["mainTable"][i])
                    }
                }
                //checkDuplicateData(num);
                //const duplicateRows = checkDuplicateData(num);
                //if (duplicateRows.length > 0) {
                //    let message = '表格中存在重复数据,重复行数为:';
                //    for (let i = 0; i < duplicateRows.length; i++) {
                //        const { row1, row2 } = duplicateRows[i];
                //        message += `第${row1}行与第${row2}行相同`;
                //        if (i !== duplicateRows.length - 1) {
                //            message += ',';
                //        }
                //    }
                //    message += ',请删除其中一行';
                //    layer.alert(message);
                //}
                //获取操作方式
                var refSav = "";
                if (OperationType == 1 || OperationType == 2 || OperationType == 4) {
                    refSav = "Add";
                }
                if (OperationType == 3) {
                    refSav = "Update";
                }
                //若为编辑-保存,则更新修改人和修改时间
                if (OperationType == 3) {
                    data.field.HUpDater = sessionStorage["HUserName"];
                    data.field.HUpDateDate = Format(new Date(), "yyyy-MM-dd");
                    $("#HUpDater").val(sessionStorage["HUserName"]);
                    $("#HUpDateDate").val(Format(new Date(), "yyyy-MM-dd"));
                }
                var sMainStr = JSON.stringify(data.field);
                var sSubStr = JSON.stringify(num);
                var sMainSub = sMainStr + ';' + sSubStr + ';' + refSav + ';' + sessionStorage["HUserName"];
                $.ajax({
                    type: "POST",
                    url: GetWEBURL() + "Kf_OtherInBill/SaveKf_OtherInBillMain", //方法所在页面和方法名
                    async: true,
                    data: { "msg": sMainSub },
                    dataType: "json",
                    success: function (data) {
                        if (data.count == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
                            layer.msg(data.Message, { icon: 1 });
                            $('#add-btn').addClass("layui-btn-disabled").attr("disabled", true);
                            //保存后浏览
                            //ReRoadBillMain();
                        }
                        else {
                            layer.alert(data.Message, { icon: 5 });
                        }
                        layer.closeAll("loading");
                    },
                    error: function (err) {
                        layer.alert("错误:" + err, { icon: 5 });
                        console.log("Reason" + sMainStr);
                    }
                });
            }
            //#endregion
            ////#endregion
              //#region  ä»“库 éƒ¨é—¨ ä¿ç®¡å‘˜ ä¸»ç®¡ éªŒæ”¶å‘˜
            //仓库
            function get_checkWH() {
                layer.open({
                    type: 2//弹窗类型
                    , skin: 'layui-layer-rim' //加上边框
                    , area: ['90%', '90%']//大小
                    , title: '仓库列表'//标题
                    , shift: 2//弹出动画
                    , content: ['../../基础资料/公用基础资料/Gy_Warehouse.html', 'yes']
                    , btn: ['确定', '取消']
                    , btn1: function (index, layero) {//按钮【按钮一】的回调
                        var iframeWindow = window['layui-layer-iframe' + index]  //获取弹框页面
                        var checkStatus = iframeWindow.layui.table.checkStatus('mainTable');//获取table的elem:"#test"
                        if (checkStatus.data.length === 0) {
                            return layer.msg('请选择数据');
                        }
                        $("#HWHName").val(checkStatus.data[0].仓库名称);
                        $("#HWHID").val(checkStatus.data[0].HItemID);
                        layer.close(index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                    }
                    , btn2: function (index, layero) { }
                })
            }
            //验收员
            function get_checkSecManager() {
                layer.open({
                    type: 2//弹窗类型
                    , skin: 'layui-layer-rim' //加上边框
                    , area: ['90%', '90%']//大小
                    , title: '验收员列表'//标题
                    , shift: 2//弹出动画
                    , content: ['../../基础资料/公用基础资料/Gy_EmployeeList.html', 'yes']
                    , btn: ['确定', '取消']
                    , btn1: function (index, layero) {//按钮【按钮一】的回调
                        var iframeWindow = window['layui-layer-iframe' + index]  //获取弹框页面
                        var checkStatus = iframeWindow.layui.table.checkStatus('mainTable');//获取table的elem:"#test"
                        if (checkStatus.data.length === 0) {
                            return layer.msg('请选择数据');
                        }
                        $("#HSecManagerName").val(checkStatus.data[0].职员名称);
                        $("#HSecManagerID").val(checkStatus.data[0].HItemID);
                        layer.close(index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                    }
                    , btn2: function (index, layero) { }
                })
            }
            //保管员
            function get_checkKeeper() {
                layer.open({
                    type: 2//弹窗类型
                    , skin: 'layui-layer-rim' //加上边框
                    , area: ['90%', '90%']//大小
                    , title: '保管员列表'//标题
                    , shift: 2//弹出动画
                    , content: ['../../基础资料/公用基础资料/Gy_EmployeeList.html', 'yes']
                    , btn: ['确定', '取消']
                    , btn1: function (index, layero) {//按钮【按钮一】的回调
                        var iframeWindow = window['layui-layer-iframe' + index]  //获取弹框页面
                        var checkStatus = iframeWindow.layui.table.checkStatus('mainTable');//获取table的elem:"#test"
                        if (checkStatus.data.length === 0) {
                            return layer.msg('请选择数据');
                        }
                        $("#HKeeperName").val(checkStatus.data[0].职员名称);
                        $("#HKeeperID").val(checkStatus.data[0].HItemID);
                        layer.close(index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                    }
                    , btn2: function (index, layero) { }
                })
            }
            //部门
            function get_checkDept() {
                layer.open({
                    type: 2//弹窗类型
                    , skin: 'layui-layer-rim' //加上边框
                    , area: ['90%', '90%']//大小
                    , title: '部门列表'//标题
                    , shift: 2//弹出动画
                    , content: ['../../基础资料/公用基础资料/Gy_DepartmentList.html', 'yes']
                    , btn: ['确定', '取消']
                    , btn1: function (index, layero) {//按钮【按钮一】的回调
                        var iframeWindow = window['layui-layer-iframe' + index]  //获取弹框页面
                        var checkStatus = iframeWindow.layui.table.checkStatus('mainTable');//获取table的elem:"#test"
                        if (checkStatus.data.length === 0) {
                            return layer.msg('请选择数据');
                        }
                        $("#HDeptName").val(checkStatus.data[0].部门名称);
                        $("#HDeptID").val(checkStatus.data[0].HItemID);
                        layer.close(index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                    }
                    , btn2: function (index, layero) { }
                })
            }
            //主管
            function get_checkManager() {
                layer.open({
                    type: 2//弹窗类型
                    , skin: 'layui-layer-rim' //加上边框
                    , area: ['90%', '90%']//大小
                    , title: '主管列表'//标题
                    , shift: 2//弹出动画
                    , content: ['../../基础资料/公用基础资料/Gy_EmployeeList.html', 'yes']
                    , btn: ['确定', '取消']
                    , btn1: function (index, layero) {//按钮【按钮一】的回调
                        var iframeWindow = window['layui-layer-iframe' + index]  //获取弹框页面
                        var checkStatus = iframeWindow.layui.table.checkStatus('mainTable');//获取table的elem:"#test"
                        if (checkStatus.data.length === 0) {
                            return layer.msg('请选择数据');
                        }
                        $("#HManagerID").val(checkStatus.data[0].HItemID);
                        $("#HMangerName").val(checkStatus.data[0].职员名称);
                        layer.close(index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                    }
                    , btn2: function (index, layero) { }
                })
            }
             //#endregion
            //行内快捷键筛选
            function set_GridCellCheck(obj) {
                $(document).off('keydown', ".layui-table-edit").on('keydown', '.layui-table-edit', function (e) {
                    if (event.key == "F7") {
                        //物料
                        if (obj.event == "HMaterID") {
                            layer.open({
                                type: 2
                                , skin: "layui-layer-rim" //加上边框
                                , title: "物料列表"  //标题
                                , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                                , shift: 2 //弹出动画
                                , area: ["90%", "90%"] //窗体大小
                                , maxmin: true //设置最大最小按钮是否显示
                                , content: ['../../基础资料/公用基础资料/Gy_Material.html', 'yes']
                                , btn: ["确定", "取消"]
                                , btn1: function (index, laero) {
                                    //按钮一  çš„回调
                                    var iframeWindow = window["layui-layer-iframe" + index];//获取弹框页面
                                    var checkStatus = iframeWindow.layui.table.checkStatus("mainTable");//获取选中的数据
                                    if (checkStatus.data.length != 1) {
                                        return layer.msg("请选择一条数据");
                                    }
                                    //更新表格缓存的数据
                                    obj.update({
                                        "HMaterID": checkStatus.data[0].HItemID,
                                        "物料代码": checkStatus.data[0].物料代码,
                                        "物料名称": checkStatus.data[0].物料名称,
                                        "规格型号": checkStatus.data[0].规格型号
                                    })
                                    layer.close(index);//关闭弹窗
                                }
                            });
                        }
                        //计量单位
                        if (obj.event == "HUnitID") {
                            layer.open({
                                type: 2
                                , skin: "layui-layer-rim" //加上边框
                                , title: "计量单位列表"  //标题
                                , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                                , shift: 2 //弹出动画
                                , area: ["90%", "90%"] //窗体大小
                                , maxmin: true //设置最大最小按钮是否显示
                                , content: ['../../基础资料/公用基础资料/Gy_Unit.html', 'yes']
                                , btn: ["确定", "取消"]
                                , btn1: function (index, laero) {
                                    //按钮一  çš„回调
                                    var iframeWindow = window["layui-layer-iframe" + index];//获取弹框页面
                                    var checkStatus = iframeWindow.layui.table.checkStatus("mainTable");//获取选中的数据
                                    if (checkStatus.data.length != 1) {
                                        return layer.msg("请选择一条数据");
                                    }
                                    //更新表格缓存的数据
                                    obj.update({
                                        "HUnitID": checkStatus.data[0].HItemID,
                                        "计量单位": checkStatus.data[0].计量单位名称
                                    })
                                    layer.close(index);//关闭弹窗
                                }
                            })
                        }
                        //收料仓库
                        if (obj.event == "HWHID") {
                            layer.open({
                                type: 2
                                , skin: "layui-layer-rim" //加上边框
                                , title: "收料仓库列表"  //标题
                                , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                                , shift: 2 //弹出动画
                                , area: ["90%", "90%"] //窗体大小
                                , maxmin: true //设置最大最小按钮是否显示
                                , content: ['../../基础资料/公用基础资料/Gy_Warehouse.html', 'yes']
                                , btn: ["确定", "取消"]
                                , btn1: function (index, laero) {
                                    //按钮一  çš„回调
                                    var iframeWindow = window["layui-layer-iframe" + index];//获取弹框页面
                                    var checkStatus = iframeWindow.layui.table.checkStatus("mainTable");//获取选中的数据
                                    if (checkStatus.data.length != 1) {
                                        return layer.msg("请选择一条数据");
                                    }
                                    //更新表格缓存的数据
                                    obj.update({
                                        "HWHID": checkStatus.data[0].HItemID,
                                        "收料仓库": checkStatus.data[0].仓库名称
                                    })
                                    layer.close(index);//关闭弹窗
                                }
                            })
                        }
                        //仓位
                        if (obj.event == "HSPID") {
                            layer.open({
                                type: 2
                                , skin: "layui-layer-rim" //加上边框
                                , title: "仓位名称列表"  //标题
                                , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                                , shift: 2 //弹出动画
                                , area: ["90%", "90%"] //窗体大小
                                , maxmin: true //设置最大最小按钮是否显示
                                , content: ['../../基础资料/公用基础资料/Gy_StockPlace_List.html', 'yes']
                                , btn: ["确定", "取消"]
                                , btn1: function (index, laero) {
                                    //按钮一  çš„回调
                                    var iframeWindow = window["layui-layer-iframe" + index];//获取弹框页面
                                    var checkStatus = iframeWindow.layui.table.checkStatus("mainTable");//获取选中的数据
                                    if (checkStatus.data.length != 1) {
                                        return layer.msg("请选择一条数据");
                                    }
                                    //更新表格缓存的数据
                                    obj.update({
                                        "HSPID": checkStatus.data[0].HItemID,
                                         "仓位名称": checkStatus.data[0].仓位名称
                                    })
                                    layer.close(index);//关闭弹窗
                                }
                            })
                        }
                        //采购订单号
                        if (obj.event == "HPOOrderBillNo") {
                            layer.open({
                                type: 2
                                , skin: "layui-layer-rim" //加上边框
                                , title: "采购订单列表"  //标题
                                , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                                , shift: 2 //弹出动画
                                , area: ["90%", "90%"] //窗体大小
                                , maxmin: true //设置最大最小按钮是否显示
                                , content: ['../../采购管理/采购订单/Cg_POOrderBillList.html', 'yes']
                                , btn: ["确定", "取消"]
                                , btn1: function (index, laero) {
                                    //按钮一  çš„回调
                                    var iframeWindow = window["layui-layer-iframe" + index];//获取弹框页面
                                    var checkStatus = iframeWindow.layui.table.checkStatus("mainTable");//获取选中的数据
                                    if (checkStatus.data.length != 1) {
                                        return layer.msg("请选择一条数据");
                                    }
                                    //更新表格缓存的数据
                                    obj.update({
                                        "HPOOrderInterID": checkStatus.data[0].hmainid,
                                        "HPOOrderEntryID": checkStatus.data[0].hsubid,
                                        "HPOOrderBillNo": checkStatus.data[0].单据号
                                    })
                                    layer.close(index);//关闭弹窗
                                }
                            })
                        }
                        //销售订单号
                        if (obj.event == "HSeOrderBillNo") {
                            layer.open({
                                type: 2
                                , skin: "layui-layer-rim" //加上边框
                                , title: "销售订单列表"  //标题
                                , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                                , shift: 2 //弹出动画
                                , area: ["90%", "90%"] //窗体大小
                                , maxmin: true //设置最大最小按钮是否显示
                                , content: ['../../销售管理/销售订单/Xs_SeOrderBillList.html', 'yes']
                                , btn: ["确定", "取消"]
                                , btn1: function (index, laero) {
                                    //按钮一  çš„回调
                                    var iframeWindow = window["layui-layer-iframe" + index];//获取弹框页面
                                    var checkStatus = iframeWindow.layui.table.checkStatus("mainTable");//获取选中的数据
                                    if (checkStatus.data.length != 1) {
                                        return layer.msg("请选择一条数据");
                                    }
                                    //更新表格缓存的数据
                                    obj.update({
                                        "HSeOrderInterID": checkStatus.data[0].hmainid,
                                        "HSeOrderEntryID": checkStatus.data[0].hsubid,
                                        "HSeOrderBillNo": checkStatus.data[0].单据号
                                    })
                                    layer.close(index);//关闭弹窗
                                }
                            })
                        }
                        obj.event = "";
                        return false;
                    }
                })
            }
            //行内事件
            table.on('tool(mainTable)', function (obj) {
                set_GridDelete(obj);   //行内删除
                set_GridCellCheck(obj); //行内快捷键筛选
            });
            //#region åŠ¨æ€å¼¹å‡ºé¡µé¢
            function getSupType() {
                var type = $("#HSourceBillType").val();
                switch (type) {
                    case '1102':
                        return { url: "../../采购管理/采购订单/Cg_POOrderBillList.html", name: "采购订单" };
                        break;
                    case '1103':
                        return { url: "../../采购管理/收料通知单/Cg_POInStockBillList.html", name: "收料通知单" };
                        break;
                }
            }
           //#endregion
            //表头信息选择单据弹窗
            form.on('submit(XDHList)', function () {
                if ($("#HSourceBillType").val() != 0 && $("#HSourceBillType").val()!== null) {
                    return layer.msg('你选择的源单不存在');
                }
                var url = getSupType().url;
                url = encodeURI(url);
                //页面层-自定义
                layer.open({
                    type: 2
                    , skin: "layui-layer-rim" //加上边框
                    , title: '' + getSupType().name + '列表'  //标题
                    , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                    , shift: 2 //弹出动画
                    , area: ["90%", "90%"] //窗体大小
                    , maxmin: true //设置最大最小按钮是否显示
                    , content: [url, "yes"]
                    , btn: ["确定", "取消"]
                    , btn1: function (index, laero) {
                        //按钮一  çš„回调
                        var iframeWindow = window["layui-layer-iframe" + index];//获取弹框页面
                        var checkStatus = iframeWindow.layui.table.checkStatus("mainTable");//获取选中的数据
                        if (checkStatus.data.length == 0) {
                            return layer.msg("请至少选择一条数据!");
                        }
                        layer.alert("你已选择" + checkStatus.data.length + "条数据");
                        //获取收料通知单代码
                        var ProcessNumber = [];
                        for (var i = 0; i < checkStatus.data.length; i++) {
                            ProcessNumber.push(checkStatus.data[i]);
                        }
                        //获取当前位置所在行数
                        var NowNum = 0;
                        NowNum = option.data.length;
                        if (getSupType().name == "采购订单") {
                            var j = 0;
                            for (var i = 0; i < checkStatus.data.length; i++) {
                                option.data.push({
                                    "HMaterID": checkStatus.data[j].HMaterID, "物料代码": checkStatus.data[j].物料代码, "物料名称": checkStatus.data[j].物料名称, "规格型号": checkStatus.data[j].规格型号,
                                    "HUnitID": checkStatus.data[j].HUnitID, "计量单位": checkStatus.data[j].计量单位,
                                    "HQty": checkStatus.data[j].数量, "HPrice": checkStatus.data[j].单价,
                                    "HMoney": checkStatus.data[j].金额,
                                    "HSourceBillNo": checkStatus.data[j].单据号, "HSourceBillType": checkStatus.data[j].HBillType, "HSourceInterID": checkStatus.data[j].hmainid, "HSourceEntryID": checkStatus.data[j].hsubid,
                                })
                                j++;
                            }
                            table.render(option);
                            layer.close(index);
                        } else if (getSupType().name =="收料通知单") {
                            var j = 0;
                            for (var i = 0; i < ProcessNumber.length; i++) {
                                option.data.push({
                                    "HMaterID": checkStatus.data[j].HMaterID, "物料代码": checkStatus.data[j].物料代码, "物料名称": checkStatus.data[j].物料名称, "规格型号": checkStatus.data[j].规格型号,
                                    "   ": 0, "物料辅助属性": "", "HUnitID": checkStatus.data[j].HUnitID, "计量单位": checkStatus.data[j].计量单位, "HQtyMust": "", "HQty": checkStatus.data[j].数量, "HRemark": "",
                                    "HPrice": checkStatus.data[j].单价, "HMoney": checkStatus.data[j].金额,   "HWHID": checkStatus.data[j].HWHID, "收料仓库": checkStatus.data[j].收料仓库,
                                    "HSPID": checkStatus.data[j].HSPID, "仓位名称": checkStatus.data[j].仓位名称, "HBatchNo": "", "HPOOrderInterID": 0, "HPOOrderEntryID": 0,
                                    "HPOOrderBillNo": "", "HSeOrderInterID": 0, "HSeOrderEntryID": 0, "HSeOrderBillNo": "",
                                    "HSourceBillNo": checkStatus.data[j].单据号, "HSourceBillType": checkStatus.data[j].HBillType, "HSourceInterID": checkStatus.data[j].hmainid, "HSourceEntryID": checkStatus.data[j].hsubid,
                                })
                                j++;
                            }
                            table.render(option);
                            layer.close(index);//关闭弹窗
                        }
                    }
                });
            });
            //判断所选着与表格是否有重复数据
            function checkDuplicateData(data) {
                const duplicates = [];
                for (let i = 0; i < data.length; i++) {
                    const currentItem = data[i];
                    let isDuplicate = false;
                    for (let j = i + 1; j < data.length; j++) {
                        const compareItem = data[j];
                        if (currentItem.HSourceInterID === compareItem.HSourceInterID && currentItem.HSourceEntryID === compareItem.HSourceEntryID) {
                            isDuplicate = true;
                            duplicates.push({ row1: i + 1, row2: j + 1 }); // è®°å½•重复数据所在行数
                        }
                    }
                    if (isDuplicate && !duplicates.some(item => item.row1 === i + 1)) {
                        duplicates.push({ row1: i + 1, row2: -1 }); // è®°å½•重复数据所在行数,-1 è¡¨ç¤ºæœªæ‰¾åˆ°ä¸Žå½“前行重复的行
                    }
                }
                return duplicates;
            }
            //行内删除
            function set_GridDelete(obj) {
                var data = obj.data;
                var rowIndex = $(obj.tr).attr("data-index");
                if (obj.event === 'del') {
                    layer.confirm('真的删除行吗?', function (index) {
                        console.log("索引为:" + rowIndex);
                        if (rowIndex === '0') {
                            layer.msg('首行无法删除!!!');
                        } else {
                            obj.del();
                            option.data = table.cache["mainTable"];//将数据绑定到data上
                            table.reload(option);
                            layer.close(index);
                        }
                    });
                }
            }
            //#region ä¿å­˜åŽæµè§ˆæ–¹æ³•
            function ReRoadBillMain() {
                location.replace('Add_Edit_Kf_POStockInBillList.html?OperationType=4&linterid=' + linterid + '&HSouceBillType=');
                //document.location.href('Add_Edit_Gy_Source.html ? OperationType = 4 & linterid=' + linterid + ' & HSouceBillType=');
                $('#set_SaveBill').addClass("layui-btn-disabled").attr("disabled", true);//保存后加载数据时保存按钮禁用
            }
            //#endregion
            //#region èŽ·å–æºå•ç±»åž‹
            function HSourceBillType() {
                var HName = '其他入库单';
                //获取登录页组织列
                $.ajax({
                    type: "get",
                    async: false,
                    data: { "HName": HName },
                    url: GetWEBURL() + "/Web/GetHSourceBillType",
                    success: function (result) {
                        var HSourceBillTypes = "";
                        if (result.count == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
                            var data = result.data;
                            for (var i = 0; i < data.length; i++) {
                                HSourceBillTypes += '<option  style="color:blue;" value="' + data[i].HSourceBillType + '">' + data[i].HSourceBillTypeName + '</option>';
                            }
                            $("#HSourceBillType").append(HSourceBillTypes);
                            form.render('select');
                        }
                    }
                })
            }
            //#endregion
            //#endregion
            //以上是layui模块
        });
    </script>
</body>
</html>
WebTM/views/ÑéÊÕÈë¿â/ÆäËûÈë¿â/Kf_OtherInBillList.html
@@ -41,67 +41,71 @@
                                <div class="layui-inline">
                                    <label class="layui-form-label">开始日期</label>
                                    <div class="layui-input-block">
                                        <input type="date" class="layui-input" id="HBeginDate" style="width:190px;">
                                        <input type="date" class="layui-input ForFilteringSchemes" id="HBeginDate" style="width:190px;">
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label">结束日期</label>
                                    <div class="layui-input-block">
                                        <input type="date" class="layui-input" id="HEndDate" style="width:190px;">
                                        <input type="date" class="layui-input ForFilteringSchemes" id="HEndDate" style="width:190px;">
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label">单据号</label>
                                    <div class="layui-input-block">
                                        <input type="text" class="layui-input" name="HBillNo" id="HBillNo" style="width:190px;">
                                        <input type="text" class="layui-input ForFilteringSchemes" name="HBillNo" id="HBillNo" style="width:190px;">
                                    </div>
                                </div>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnSearch" id="btnSearch">
                                    <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
                                </button>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnReSearch" id="btnReSearch" style="padding:0 5px">重置</button>
                                <!--显示当前过滤方案-->
                                <div class="layui-inline" style="margin-left:5px;">
                                    <div style="text-align:center;font-size:15px;font-weight:bold;color:#fc9393" id="HFilterScheme_Now"></div>
                                </div>
                                <div class="layui-colla-content">
                                    <div class="layui-inline">
                                        <label class="layui-form-label">部门</label>
                                        <div class="layui-input-block">
                                            <input type="text" class="layui-input" name="HDeptID" id="HDeptID" style="width:190px;">
                                            <input type="text" class="layui-input ForFilteringSchemes" name="HDeptID" id="HDeptID" style="width:190px;">
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <label class="layui-form-label">物料代码</label>
                                        <div class="layui-input-block">
                                            <input type="text" class="layui-input" name="MaterialCode" id="MaterialCode" style="width:190px;">
                                            <input type="text" class="layui-input ForFilteringSchemes" name="MaterialCode" id="MaterialCode" style="width:190px;">
                                        </div>
                                    </div>
                                    <!--<hr />-->
                                    <div class="layui-inline">
                                        <label class="layui-form-label">物料名称</label>
                                        <div class="layui-input-block">
                                            <input type="text" class="layui-input" name="MaterialName" id="MaterialName" style="width:190px;">
                                            <input type="text" class="layui-input ForFilteringSchemes" name="MaterialName" id="MaterialName" style="width:190px;">
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <label class="layui-form-label">规格型号</label>
                                        <div class="layui-input-block">
                                            <input type="text" class="layui-input" name="SpecificationModel" id="SpecificationModel" style="width:190px;">
                                            <input type="text" class="layui-input ForFilteringSchemes" name="SpecificationModel" id="SpecificationModel" style="width:190px;">
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <label class="layui-form-label">源单单号</label>
                                        <div class="layui-input-block">
                                            <input type="text" class="layui-input" name="HSourceBillNo" id="HSourceBillNo" style="width:190px;">
                                            <input type="text" class="layui-input ForFilteringSchemes" name="HSourceBillNo" id="HSourceBillNo" style="width:190px;">
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <label class="layui-form-label">仓库</label>
                                        <div class="layui-input-block">
                                            <input type="text" class="layui-input" name="Warehouse" id="Warehouse" style="width:190px;">
                                            <input type="text" class="layui-input ForFilteringSchemes" name="Warehouse" id="Warehouse" style="width:190px;">
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <label class="layui-form-label">制单人</label>
                                        <div class="layui-input-block">
                                            <input type="text" class="layui-input" name="Hmaker" id="Hmaker" style="width:190px;">
                                            <input type="text" class="layui-input ForFilteringSchemes" name="Hmaker" id="Hmaker" style="width:190px;">
                                        </div>
                                    </div>
                                </div>
@@ -126,6 +130,8 @@
                                <button type="button" class="layui-btn layui-btn-sm" style="display:none;" id="set_HideColumn" lay-event="set_HideColumn"><i class="layui-icon layui-icon-form"></i>列设置</button>
                                <button type="button" class="layui-btn layui-btn-sm" style="display:none;" lay-event="set_HideButton" id="HideButton"><i class="layui-icon layui-icon-form"></i>按钮设置</button>
                                <button type="button" class="layui-btn layui-btn-sm" style="display:none;" id="btn-BarCodeDetail" lay-event="btn-BarCodeDetail"><i class="layui-icon layui-icon-form"></i>条码明细</button>
                                <button type="button" class="layui-btn layui-btn-sm" style="display:none;"  lay-event="set_SaveScheme" id="set_SaveScheme"><i class="layui-icon layui-icon-template"></i>保存方案</button>
                                <button type="button" class="layui-btn layui-btn-sm" style="display:none;"  lay-event="set_ReadScheme" id="set_ReadScheme"><i class="layui-icon layui-icon-set"></i>读取方案</button>
                                <button type="button" class="layui-btn layui-btn-sm" style="display:none;" id="get_Exit" lay-event="get_Exit"><i class="layui-icon layui-icon-logout"></i>退出</button>
                            </div>
                        </script>
@@ -162,6 +168,19 @@
            //#endregion
            //#region ã€è¿‡æ»¤æ–¹æ¡ˆã€‘
            //过滤条件的classç±»
            var HClassTag = "ForFilteringSchemes";
            //模块名称(中文版) æ¯ä¸ªæ¨¡å—页面都需要修改
            window.HModuleName = "其他入库单维护";
            //是否已经选择了过滤方案(全局变量)
            window.HDefaultFilter = "";
            //选择的过滤方案内码(全局变量)
            window.HInterID_Choose = 0;
            //#endregion
            //#region è¿›å…¥é¡µé¢å³åŠ è½½
            var HModName = "Kf_OtherInBillList";
@@ -182,6 +201,27 @@
                get_FastQuery();
            });
            //#region ç‚¹å‡»è¡Œé€‰ä¸­é«˜äº®
            table.on('row(mainTable)', function (obj) {
                //选中行改变颜色
                var flag = !obj.tr.find(':checkbox:first').prop('checked');
                obj.tr.find(':checkbox').prop('checked', flag);
                if (flag) {
                    obj.tr.find('.layui-form-checkbox').addClass('layui-form-checked');  //设置复选框选中样式
                    $(obj.tr.selector).attr({ "style": "background:#ceedfa;color:black" });//改变当前tr背景颜色和字体颜色
                } else {
                    obj.tr.find('.layui-form-checkbox').removeClass('layui-form-checked');//取消复选框选中样式
                    $(obj.tr.selector).attr({ "style": "background:" });//取消当前tr颜色
                }
                //mainTable ä¸ºè¡¨æ ¼ID   æ³¨æ„æ­¤å¤„如果ID不正确将导致你在监听复选框时获取不到你选择的数据,前面的只是添加或删除选中未选中样式以及设置背景色,字体颜色
                layui.each(table.cache.mainTable, function (i, l) {
                    if (obj.tr.index() == l.LAY_TABLE_INDEX) {
                        l.LAY_CHECKED = flag;
                    }
                });
            })
            //#endregion
            //头工具栏事件
            table.on('toolbar(mainTable)', function (obj) {
                var checkStatus = table.checkStatus(obj.config.id);
@@ -191,12 +231,12 @@
                        layer.open({
                            type: 2,
                            skin: 'layui-layer-rim', //加上边框
                            title: '新增退货通知单',
                            title: '新增其他入库单',
                            closeBtn: 1,
                            shift: 2,
                            area: ['100%', '100%'],
                            maxmin: true,
                            content: '../../采购管理/收料通知单/Add_Edit_Cg_POInStockBillList.html?OperationType=1&linterid=0&HSouceBillType=0&closeType=1',
                            content: '../../验收入库/其他入库/Add_Edit_Kf_OtherInBill.html?OperationType=1&linterid=0&HSouceBillType=0&closeType=1',
                            end: function () {
                                //刷新页面,
                                location.reload();
@@ -215,12 +255,12 @@
                            layer.open({
                                type: 2
                                , area: ['100%', '100%']
                                , title: '编辑退货通知单'
                                , title: '编辑其他入库单'
                                , closeBtn: 1
                                , shade: 0.6 //遮罩透明度
                                , maxmin: true //允许全屏最小化
                                , anim: 0 //0-6的动画形式,-1不开启
                                , content: '../../采购管理/收料通知单/Add_Edit_Cg_POInStockBillList.html?OperationType=3&linterid=' + hID + '&HSouceBillType=0&closeType=1'
                                , content: '../../验收入库/其他入库/Add_Edit_Kf_OtherInBill.html?OperationType=3&linterid=' + hID + '&HSouceBillType=0&closeType=1'
                                , resize: false,
                                end: function () {
                                    //刷新页面,
@@ -245,7 +285,7 @@
                            layer.confirm("确认要删除吗,删除后不能恢复", { title: "删除确认" }, function (index) {
                                $.ajax({
                                    type: "GET",
                                    url: GetWEBURL() + "Kf_SellOutBill/DeltetSellOutBill", //方法所在页面和方法名
                                    url: GetWEBURL() + "Kf_SellOutBill/DeleteKf_ICStockBillMain", //方法所在页面和方法名
                                    data: { "HInterID": InterID, "user": sessionStorage["HUserName"]},
                                    success: function (result) {
                                        if (result.count == 1) {
@@ -275,7 +315,12 @@
                    case 'btn-WmsSub':
                        getWmsSub();
                        break;
                    //保存方案
                    case 'set_SaveScheme': set_SaveScheme();
                        break;
                    //读取方案
                    case 'set_ReadScheme': set_ReadScheme();
                        break;
                    //刷新
                    case 'get_Refresh': get_Refresh();
                        break;
@@ -290,6 +335,7 @@
                        break;
                    //反关闭
                    case 'set_CancelCloseBill': set_CloseBill(2);
                        break;
                    //作废按钮        ï¼ˆ1:作废、2:反作废)
                    case 'btn-Drop':
                        set_DropBill(1);
@@ -298,7 +344,7 @@
                    case 'btn-DeDrop':
                        set_DropBill(2);
                        break;
                        break;
                    //退出按钮
                    case 'get_Exit': Pub_Close(2);
                        break;
@@ -326,9 +372,12 @@
                set_InitGrid();
                //查询
                get_Display(sWhere);
                //初始化日期
                $("#HBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * 30), "yyyy-MM-dd"));
                $("#HEndDate").val(Format(new Date(), "yyyy-MM-dd"));
                //查询当前登录用户有没有在当前模块设置默认过滤方案
                get_DefaultModule();
            }
            // åˆå§‹åŒ–表格方法
@@ -720,6 +769,7 @@
                            data: { "HInterID": HInterID, "Type": num, "user": sessionStorage["HUserName"] },
                            success: function (result) {
                                if (result.count == 1) {
                                    get_FastQuery();
                                    layer.msg(result.Message, { icon: 1 });
                                    layer.close(wait);
                                } else {
@@ -778,9 +828,255 @@
            //#endregion
            //#region ã€è¿‡æ»¤æ–¹æ¡ˆã€‘
            //获取当前用户的默认过滤方案
            function get_DefaultModule() {
                $.ajax({
                    url: GetWEBURL() + '/Xt_FastICScheme/Chooselist',
                    type: "GET",
                    data: { "user": sessionStorage["Czybm"], "HModuleName": HModuleName, "HInterID": 0, "Type": "Default" },
                    success: function (data1) {
                        if (data1.count == 1) {
                            //当前用户设置有默认的过滤方案
                            var data = data1.data;
                            //当前选择的过滤方案
                            HInterID_Choose = data[0].hmainid;
                            //过滤方案内码
                            HInterID = data[0].hmainid
                            //过滤方案名称
                            HDefaultFilter = data[0].方案名称
                            //过滤方案的备注(方案信息描述)
                            var HRemark = data[0].备注
                            //显示出当前的默认过滤方案
                            document.getElementById("HFilterScheme_Now").style.display = "block";
                            document.getElementById('HFilterScheme_Now').innerHTML = "当前过滤方案:" + HDefaultFilter + '<span style="font-size: 15px; font-weight: bold; color:#7b90fb">  ' + "(" + HRemark + ")" + '</span>';
                            //把过滤条件值回写到页面上
                            for (let i = 0; i < data.length; i++) {
                                $("#" + data[i].过滤字段ID).val(data[i].过滤值);
                                if (data[i].过滤标签类型 == 'SELECT') {
                                    $("#" + data[i].过滤字段ID).find("option[value='" + data[i].过滤值 + "']").attr("selected", true);
                                }
                            }
                            //执行查询方法
                            get_FastQuery()
                            form.render("select");
                        } else {
                            //当前用户没有设置默认的过滤方案
                            //隐藏显示过滤方案的标签信息
                            document.getElementById("HFilterScheme_Now").style.display = "none";
                            //执行查询方法
                            get_FastQuery()
                            form.render("select");
                        }
                    }, error: function () {
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
            }
            //保存方案
            function set_SaveScheme() {
                var index = layer.open()
                //判断用户是否点击了右上角的“叉号”关闭弹窗页面
                var HIsClose_Manual = false;
                //获取本页所有过滤条件对象(class中包含"ForFilteringSchemes"的元素)
                var Filter = document.getElementsByClassName(HClassTag);
                var HFilterIdList = "";//过滤条件
                var HFilterIdLists = "";//拼接多个过滤条件
                var HValue = "";//过滤值
                var HElement_type = "";//过滤标签类型
                for (var i = 0; i < Filter.length; i++) {
                    HFilterIdList = Filter[i].id; //过滤条件ID
                    HFilterIdLists += Filter[i].id + ","; //过滤条件ID(拼接)
                    HValue += $("#" + HFilterIdList).val() + ","; //过滤条件中输入的值
                    HElement_type += document.getElementById(HFilterIdList).tagName + ",";//通过标签id获取标签类型
                }
                //去除末尾逗号
                HFilterIdLists = HFilterIdLists.substring(0, HFilterIdLists.length - 1);
                HValue = HValue.substring(0, HValue.length - 1);
                HElement_type = HElement_type.substring(0, HElement_type.length - 1);
                //当前页面上没有选择过滤方案,进入新增方法
                if (HDefaultFilter == "") {
                    layer.open({
                        type: 2
                        , area: ['40%', '80%']
                        , title: '过滤方案'
                        , shift: 0//弹出动画
                        , content: '../../系统管理/过滤方案设置/Xt_FastICScheme.html?OperationType=1&HModuleName=' + HModuleName + '&HFilterIdLists=' + HFilterIdLists + '&HValue=' + HValue + '&HElement_type=' + HElement_type
                        , cancel: function () {
                            // å³ä¸Šè§’关闭事件的逻辑
                            HIsClose_Manual = true;
                        }
                        , end: function () {
                            if (HIsClose_Manual != true) {
                                get_FastQuery();
                                //显示当前的过滤方案
                                document.getElementById("HFilterScheme_Now").style.display = "block";
                                document.getElementById('HFilterScheme_Now').innerHTML = "当前过滤方案:" + sessionStorage["HFilterSchemeName_" + sessionStorage["Czybm"]] + '<span style="font-size: 15px; font-weight: bold; color:#7b90fb">  ' + "(" + sessionStorage["HFilterSchemeRemark_" + sessionStorage["Czybm"]] + ")" + '</span>';
                            }
                        }
                    })
                    layer.close(index)
                } else {
                    //当前页面已有过滤方案,用户选择 æ–°å¢žæˆ–者编辑
                    layer.confirm('当前已选择过滤方案,是否修改?请选择对应操作', {
                        title: "操作提示",
                        icon: 0,
                        btn: ['新增方案', '保存修改当前方案', '取消']
                    }, function (index, layero) {
                        //新增
                        layer.open({
                            type: 2
                            , area: ['40%', '80%']
                            , title: '过滤方案'
                            , shift: 0//弹出动画
                            , content: '../../系统管理/过滤方案设置/Xt_FastICScheme.html?OperationType=1&HModuleName=' + HModuleName + '&HFilterIdLists=' + HFilterIdLists + '&HValue=' + HValue + '&HElement_type=' + HElement_type
                            , end: function () {
                                get_FastQuery()
                                //显示当前的过滤方案
                                document.getElementById("HFilterScheme_Now").style.display = "block";
                                document.getElementById('HFilterScheme_Now').innerHTML = "当前过滤方案:" + sessionStorage["HFilterSchemeName_" + sessionStorage["Czybm"]] + '<span style="font-size: 15px; font-weight: bold; color:#7b90fb">  ' + "(" + sessionStorage["HFilterSchemeRemark_" + sessionStorage["Czybm"]] + ")" + '</span>';
                            }
                        })
                        layer.close(index)
                    }, function (index) {
                        //编辑
                        var Filter_Edit = document.getElementsByClassName(HClassTag); //获取本页所有过滤条件对象(class中包含"ForFilteringSchemes"的元素)
                        HFilterIdList = "";
                        HFilterIdLists = "";
                        HValue = "";
                        HElement_type = "";
                        for (var i = 0; i < Filter_Edit.length; i++) {
                            HFilterIdList = Filter_Edit[i].id; //过滤条件ID
                            HFilterIdLists += Filter_Edit[i].id + ","; //过滤条件ID(拼接)
                            HValue += $("#" + HFilterIdList).val() + ","; //过滤条件中输入的值
                            HElement_type += document.getElementById(HFilterIdList).tagName + ",";//通过标签id获取标签类型
                        }
                        //去除末尾逗号
                        HFilterIdLists = HFilterIdLists.substring(0, HFilterIdLists.length - 1);
                        HValue = HValue.substring(0, HValue.length - 1);
                        HElement_type = HElement_type.substring(0, HElement_type.length - 1);
                        var sMainSub = HInterID_Choose + ';' + HFilterIdLists + ';' + HValue + ';' + HElement_type + ';' + sessionStorage["Czybm"] + ';' + 3;
                        //修改
                        $.ajax({
                            type: "POST",
                            url: GetWEBURL() + "/Xt_FastICScheme/save", //方法所在页面和方法名
                            async: true,
                            data: { "oMain": sMainSub },
                            dataType: "json",
                            success: function (data) {
                                if (data.count == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
                                    layer.msg(data.Message, { time: 1 * 1000, icon: 1 });
                                }
                                else {
                                }
                                layer.closeAll("loading");
                            },
                            error: function (err) {
                            }
                        });
                        layer.close(index)
                    }, function (index) {
                        //取消
                        layer.alert('取消')
                        layer.close(index)
                    });
                }
            }
            //读取方案
            function set_ReadScheme() {
                var HIsClose_Manual = false;
                var Filter = document.getElementsByClassName(HClassTag); //获取本页所有过滤条件对象(class中包含"ForFilteringSchemes"的元素)
                var HFilterIdList = "";
                var HFilterIdLists = "";
                var HValue = "";
                var HElement_type = "";
                for (var i = 0; i < Filter.length; i++) {
                    HFilterIdList = Filter[i].id; //过滤条件ID
                    HFilterIdLists += Filter[i].id + ","; //过滤条件ID(拼接)
                    HValue += $("#" + HFilterIdList).val() + ","; //过滤条件中输入的值
                    HElement_type += document.getElementById(HFilterIdList).tagName + ",";//通过标签id获取标签类型
                }
                //去除末尾逗号
                HFilterIdLists = HFilterIdLists.substring(0, HFilterIdLists.length - 1);
                HValue = HValue.substring(0, HValue.length - 1);
                HElement_type = HElement_type.substring(0, HElement_type.length - 1);
                layer.open({
                    type: 2
                    , area: ['80%', '80%']
                    , title: '过滤方案列表'
                    , shift: 0//弹出动画
                    , content: '../../系统管理/过滤方案设置/Xt_FastICSchemeList.html?HType=Select&HFilterIdLists=' + HFilterIdLists + '&HValue=' + HValue + '&HElement_type=' + HElement_type + '&HModuleName=' + HModuleName
                    , cancel: function () {
                        // å³ä¸Šè§’关闭事件的逻辑
                        HIsClose_Manual = true;
                    }
                    , end: function () {
                        if (HIsClose_Manual != true) {
                            get_FastQuery()
                            form.render("select");
                        }
                    }
                })
            }
            //#endregion
            //以上是layui模块
        });
        //#region ã€è¿‡æ»¤æ–¹æ¡ˆè¿”回数据】
        function HFilterScheme(obj)  //返回过滤方案
        {
            var HInterID = obj[0].hmainid;
            HInterID_Choose = obj[0].hmainid;
            $.ajax({
                url: GetWEBURL() + '/Xt_FastICScheme/Chooselist',
                type: "GET",
                data: { "user": sessionStorage["Czybm"], "HModuleName": HModuleName, "HInterID": HInterID, "Type": "Select" },
                success: function (data1) {
                    if (data1.count == 1) {
                        var data = data1.data;
                        //赋值过滤方案名称
                        HDefaultFilter = data[0].方案名称
                        var HRemark = data[0].备注
                        //显示当前的过滤方案
                        document.getElementById("HFilterScheme_Now").style.display = "block";
                        document.getElementById('HFilterScheme_Now').innerHTML = "当前过滤方案:" + HDefaultFilter + '<span style="font-size: 15px; font-weight: bold; color:#7b90fb">  ' + "(" + HRemark + ")" + '</span>';
                        HInterID = data[0].hmainid
                        //根据选择的过滤方案回填数据到列表过滤条件
                        for (let i = 0; i < data.length; i++) {
                            $("#" + data[i].过滤字段ID).val(data[i].过滤值);
                            if (data[i].过滤标签类型 == 'SELECT') {
                                $("#" + data[i].过滤字段ID).find("option[value='" + data[i].过滤值 + "']").attr("selected", true);
                            }
                        }
                    } else {
                        layer.close(ajaxLoad);
                        layer.alert(data1.code + data1.Message, { icon: 5 });
                    }
                }, error: function () {
                    layer.close(ajaxLoad);
                    layer.alert("接口请求失败!", { icon: 5 });
                }
            });
        }
        //#endregion