1
chenhaozhe
2025-07-02 fe50d723e5d050113c4ecc493220e264f39d8e5f
WebTM/views/Éú²ú¹ÜÀí/ÉÏÁÏ·À´íµ¥/Sc_Add_MaterToSourceBillList.html
@@ -99,8 +99,10 @@
                    <form id="form0" class="layui-form" lay-filter="component-form-group" action="">
                        <div class="layui-card-header">
                            <div class="layui-btn-group">
                                <button type="button" id="Add" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="Add">新增</button>
                                <button type="button" id="Saver" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="Saver">保存</button>
                                <button type="button" id="VerIfySaver" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="VerIfySaver">审核</button>
                                <button type="button" id="ReVerIfySaver" class="layui-btn layui-btn-normal layui-btn-circle" lay-submit="" lay-filter="ReVerIfySaver">反审核</button>
                                <button type="button" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="Exit">退出</button>
                            </div>
@@ -112,7 +114,7 @@
                                    <div class="layui-row" style="margin:10px auto;">
                                        <label class="layui-form-label" style="width: 85px;text-align:left;"><span style="color:red;">*</span>条形码</label>
                                        <div class="layui-input-block" style="margin-left: 100px;">
                                            <input type="text" name="HBarCode" id="HBarCode" lay-verify="required" placeholder="请键入后回车" autocomplete="off" class="layui-input">
                                            <input type="text" name="HBarCode" id="HBarCode"  placeholder="请键入后回车" autocomplete="off" class="layui-input">
                                        </div>
                                    </div>
                                    <div class="layui-tab layui-tab-card">
@@ -228,9 +230,9 @@
                                                    <div class="layui-inline">
                                                        <label class="layui-form-label">操作员:</label>
                                                        <div class="layui-input-inline">
                                                            <input type="text" name="HEmpName" id="HEmpName" class="layui-input" value="" style="float:left;width:150px;">
                                                            <input type="hidden" name="HEmpID" id="HEmpID" class="layui-input" value="" style="float:left;width:150px;">
                                                            <button type="button" lay-submit="" class="layui-btn" lay-filter="HEmpList" id="HEmpList" style="width:40px;">
                                                            <input type="text" name="HWorkerName" id="HWorkerName" class="layui-input" value="" style="float:left;width:150px;">
                                                            <input type="hidden" name="HWorkerID" id="HWorkerID" class="layui-input" value="" style="float:left;width:150px;">
                                                            <button type="button" lay-submit="" class="layui-btn" lay-filter="HWorkerList" id="HEmpList" style="width:40px;">
                                                                <i class="layui-icon layui-icon-search layuiadmin-button-btn" style="margin-left:-9px;"></i>
                                                            </button>
                                                        </div>
@@ -326,6 +328,22 @@
                                </div>
                            </div>
                        </div>
                        <script type="text/html" id="toolbarDemo">
                            <div class="layui-btn-container">
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-DeleteLine"><i class="layui-icon layui-icon-form"></i>删行</button>
                            </div>
                        </script>
                        <script type="text/html" id="toolbarDemo1">
                            <div class="layui-btn-container">
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-DeleteLine1"><i class="layui-icon layui-icon-form"></i>删行</button>
                            </div>
                        </script>
                        <script type="text/html" id="xuhao">
                            {{d.LAY_TABLE_INDEX+1}}
                        </script>
                        <script type="text/html" id="xuhao1">
                            {{d.LAY_TABLE_INDEX+1}}
                        </script>
                    </form>
                </div>
            </div>
@@ -339,6 +357,7 @@
        var HSourceBillNo = "";   //源单单号
        var HSourceBillType = "";  //源单类型
        var refSav = "";   //提交类型
        var tableBak = []; //备料列表数据临时数组
        //获取页面跳转参数  //单据编辑状态: 1.无源单新增  Â 2.有源单新增  Â 3.编辑  4.浏览  5.变更
        var params = get_UrlVars();
        if (typeof (params[params[0]]) == "undefined") {
@@ -364,7 +383,8 @@
        }).extend({
            index: 'lib/index' //主入口模块
        }).use(['index', 'form', 'laydate', 'table', 'element'], function () {
             //#region å…¬ç”¨å˜é‡
            //#region å…¬ç”¨å˜é‡
            var $ = layui.$
                , admin = layui.admin
                , layer = layui.layer
@@ -372,11 +392,17 @@
                , form = layui.form
                , laydate = layui.laydate
                , element = layui.element;
            var option;
            var option2;
            //#endregion
            //#region è¿›å…¥é¡µé¢å³åŠ è½½
            //初始化表单插件
            set_InitFrom();
            //初始化表格
            set_InitGrid();
            //判断操作类型
            if (OperationType == 1) {//无源单
@@ -392,6 +418,366 @@
            else {
                layer.alert("未知操作类型!", { icon: 5 });
            }
            //#endregion
            //#region è§¦å‘事件:包括form.on(){}格式的所有点击事件、选择事件等
            //新增保存
            form.on('submit(Add)', function (data) {
                refSav = "Add";
                //初始基本信息赋值
                $("#form0")[0].reset();
                layui.form.render();
                get_MAXNum();
                $("#HDate").val(Format(new Date(), "yyyy-MM-dd hh:mm:ss"));      //单据日期
                $("#HWorkReportDate").val(Format(new Date(), "yyyy-MM-dd hh:mm:ss"));  //报工日期
                $("#HMakeDate").val(Format(new Date(), "yyyy-MM-dd hh:mm:ss"));  //制单日期
                $("#HMaker").val(sessionStorage["HUserName"]);     //制单人
            });
            //保存提交
            form.on('submit(Saver)', function (data) {
                var sMainStr = JSON.stringify(data.field);
                var sSubStr = JSON.stringify(table.cache['mainTable']);
                var sSubStr1 = JSON.stringify(table.cache['mainTable1']);
                var sMainSub = sMainStr + ';' + sSubStr + ';' + refSav;
                if (!AllowLoadData(sSubStr, sSubStr1))//数据验证
                {
                    return false;
                }
                $.ajax({
                    type: "POST",
                    url: GetWEBURL() + "/Sc_MaterToSourceBill/SaveGetMaterToSourceFrom", //方法所在页面和方法名
                    async: false,
                    data: { "msg": sMainSub },
                    dataType: "json",
                    success: function (data) {
                        if (data.count == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
                            $("#HInterID").val(data.HInterID);//获取提交成功返回的单据主ID
                            layer.confirm(data.Message, {
                                icon: 1,
                                btn: ['确认']
                            }, function (index) {
                                if (data.Verify == "Y") //自动审核
                                {
                                    layer.close(index);
                                    SaveVerify(); //审核
                                }
                                else {
                                    layer.close(index);
                                }
                            });
                        }
                        else {
                            layer.alert(data.Message, { icon: 5 })
                        }
                    },
                    error: function (err) {
                        layer.alert(err, { icon: 5 })
                    }
                })
            });
            //审核
            form.on('submit(VerIfySaver)', function (data) {
                SaveVerify();
            });
            //反审核
            form.on('submit(ReVerIfySaver)', function (data) {
                ReVerIfySaver();
            });
            //退出
            form.on('submit(Exit)', function (data) {
                Pub_Close(1);
                window.parent.location.reload();
            });
            //条形码回车方法
            $('#HBarCode').on('keydown', function (event) {
                var HBarCode = $('#HBarCode').val();
                if (event.keyCode == 13) {
                    if (!HBarCode) {
                        layer.msg("条形码不能为空!")
                        return;
                    }
                    if (HBarCode != "") {
                        $('#HBarCode').val("");
                    }
                    $.ajax({
                        url: GetWEBURL() + "/Sc_MaterToSourceBill/get_CheckTypeByBarCode_Json",
                        type: "GET",
                        data: { "HBarCode": HBarCode, "HSourceID": "111", "HICMOInterID": "100030", "HICMOEntryID": "100050" },
                        success: function (result) {
                            console.info(result);
                            if (result.count == 1) {
                                if (result.Verify == '资源条码') {
                                    $("#HSourceID").val(result.data.Gy_Source[0].HItemID);
                                    $("#HSourceName").val(result.data.Gy_Source[0].HName);
                                }
                                if (result.Verify == '用料清单物料条码') {
                                    //回写用料清单数据列表
                                    // æºæ•°æ®
                                    tableBak = table.cache.mainTable;
                                    console.log(tableBak.length);
                                    //获取物料条码信息
                                    var NewRow = { "HBarCode": result.data[0].HBarCode, "HMaterID": result.data[0].HMaterID, "HNumber": result.data[0].HNumber, "HName": result.data[0].HName, "HModel": result.data[0].HModel, "HUnitID": result.data[0].HUnitID, "HUnitName": result.data[0].HUnitName, "HMQty": result.data[0].HMQty, "HQty": result.data[0].HQty };
                                    if (tableBak.length <= 0) {
                                        table.cache["mainTable"].push(NewRow);
                                        option.data = table.cache["mainTable"];
                                        table.render(option);
                                    }
                                    else {
                                        // åŽ»é‡(不能有相同扫码物料)
                                        for (var i = 0; i < tableBak.length; i++) {
                                            console.log(tableBak[i].HMaterID, result.data[0].HMaterID);
                                            if (tableBak[i].HMaterID == result.data[0].HMaterID) {
                                                layer.msg("已扫描,请勿重复扫码!", { icon: 0, time: 2000 });
                                                return;
                                            }
                                        }
                                        table.cache["mainTable"].push(NewRow);
                                        option.data = table.cache["mainTable"];
                                        table.render(option);
                                    }
                                }
                            }
                            else {
                                layer.msg(result.Message, { icon: 5, btn: ['确认'], time: 10000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                            }
                        },
                        error: function (err) {
                            layer.msg("接口请求失败!" + err, { icon: 5, btn: ['确认'], time: 10000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                        }
                    });
                }
            });
            //表头信息产品弹窗
            form.on('submit(HMaterList)', function () {
                //页面层-自定义
                layer.open({
                    type: 2,
                    skin: 'layui-layer-rim', //加上边框
                    title: '产品列表',
                    closeBtn: 1,
                    shift: 2,
                    area: ['80%', '80%'],
                    maxmin: true,
                    content: ['../../PublicPage/PartInformation.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('请选择数据');
                        }
                        $("#HMaterName").val(checkStatus.data[0].HName);
                        $("#HMaterCode").val(checkStatus.data[0].HNumber);
                        $("#HMaterID").val(checkStatus.data[0].HItemID);
                        $("#HMaterSpec").val(checkStatus.data[0].HModel);
                        layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                    }
                    , btn2: function (index, layero) {
                        //按钮【按钮二】的回调
                        //return false å¼€å¯è¯¥ä»£ç å¯ç¦æ­¢ç‚¹å‡»è¯¥æŒ‰é’®å…³é—­
                    },
                    end: function () {
                    },
                    success: function (layero, index) {
                    }
                });
            });
            //生产资源
            form.on('submit(HSourceList)', function () {
                //页面层-自定义
                layer.open({
                    type: 2,
                    skin: 'layui-layer-rim', //加上边框
                    title: '资源列表',
                    closeBtn: 1,
                    shift: 2,
                    area: ['80%', '80%'],
                    maxmin: true,
                    content: ['../../基础资料/生产基础资料/Gy_Source.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('请选择数据');
                        }
                        $("#HSourceName").val(checkStatus.data[0].生产资源名称);
                        $("#HSourceID").val(checkStatus.data[0].HItemID);
                        layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                    }
                    , btn2: function (index, layero) {
                        //按钮【按钮二】的回调
                        //return false å¼€å¯è¯¥ä»£ç å¯ç¦æ­¢ç‚¹å‡»è¯¥æŒ‰é’®å…³é—­
                    },
                    end: function () {
                    },
                    success: function (layero, index) {
                    }
                });
            });
            //操作员
            form.on('submit(HWorkerList)', function () {
                //页面层-自定义
                layer.open({
                    type: 2,
                    skin: 'layui-layer-rim', //加上边框
                    title: '人员列表',
                    closeBtn: 1,
                    shift: 2,
                    area: ['80%', '80%'],
                    maxmin: true,
                    content: ['../../基础资料/公用基础资料/Gy_EmployeeList.html?type=HEmp', '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('请选择数据');
                        }
                        $("#HWorkerName").val(checkStatus.data[0].职员名称);
                        $("#HWorkerID").val(checkStatus.data[0].HItemID);
                        layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                    }
                    , btn2: function (index, layero) {
                        //按钮【按钮二】的回调
                        //return false å¼€å¯è¯¥ä»£ç å¯ç¦æ­¢ç‚¹å‡»è¯¥æŒ‰é’®å…³é—­
                    },
                    end: function () {
                    },
                    success: function (layero, index) {
                    }
                });
            });
            //表头信息班组弹窗
            form.on('submit(HGroupList)', function () {
                //页面层-自定义
                layer.open({
                    type: 2,
                    skin: 'layui-layer-rim', //加上边框
                    title: '班组列表',
                    closeBtn: 1,
                    shift: 2,
                    area: ['80%', '80%'],
                    maxmin: true,
                    content: ['../../基础资料/工资基础资料/Gy_Group.html?type=HGroup', '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('请选择数据');
                        }
                        $("#HGroupName").val(checkStatus.data[0].班组名称);
                        $("#HGroupID").val(checkStatus.data[0].HItemID);
                        layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                    }
                    , btn2: function (index, layero) {
                        //按钮【按钮二】的回调
                        //return false å¼€å¯è¯¥ä»£ç å¯ç¦æ­¢ç‚¹å‡»è¯¥æŒ‰é’®å…³é—­
                    },
                    end: function () {
                    },
                    success: function (layero, index) {
                    }
                });
            });
            //表头信息车间弹窗
            form.on('submit(HDeptList)', function () {
                //页面层-自定义
                layer.open({
                    type: 2,
                    skin: 'layui-layer-rim', //加上边框
                    title: '班组列表',
                    closeBtn: 1,
                    shift: 2,
                    area: ['80%', '80%'],
                    maxmin: true,
                    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(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                    }
                    , btn2: function (index, layero) {
                        //按钮【按钮二】的回调
                        //return false å¼€å¯è¯¥ä»£ç å¯ç¦æ­¢ç‚¹å‡»è¯¥æŒ‰é’®å…³é—­
                    },
                    end: function () {
                    },
                    success: function (layero, index) {
                    }
                });
            });
            // å¤´å·¥å…·æ äº‹ä»¶
            table.on('toolbar(mainTable)', function (obj) {
                var rowid = 0;
                var checkStatus = table.checkStatus('mainTable')
                    , data = checkStatus.data;;
                var AddRow = table.cache['mainTable'];
                switch (obj.event) {
                    //删除一行
                    case 'btn-DeleteLine': btnDeleteLine(checkStatus, data, obj);
                        break;
                }
            });
            // å¤´å·¥å…·æ äº‹ä»¶
            table.on('toolbar(mainTable1)', function (obj) {
                var rowid = 0;
                var checkStatus = table.checkStatus('mainTable1')
                    , data = checkStatus.data;;
                var AddRow = table.cache['mainTable1'];
                switch (obj.event) {
                    //新增一行
                    case 'btn-DeleteLine1': btnDeleteLine1(checkStatus, data, obj);
                        break;
                }
            });
            //#endregion
            //#region æœ¬é¡µé¢æ‰€æœ‰è¢«è°ƒç”¨çš„æ–¹æ³•
            //初始化插件
            function set_InitFrom() {
@@ -422,19 +808,224 @@
                });
            }
            //初始化表格
            function set_InitGrid() {
                Table1();  //保养项列表
                Table2();  //配件项列表
            }
            //初始化配料列表
            function Table1() {
                //表头
                columns = [
                    { type: 'checkbox', fixed: 'left' }
                    , { templet: '#xuhao', title: '序号', sort: true, fixed: 'left', event: "qwe" }
                    , { field: 'HBarCode', title: '扫描条码', edit: 'text', hide: true }
                    , { field: 'HMaterID', title: '物料ID', edit: 'text', hide: true }
                    , { field: 'HNumber', title: '物料代码', edit: 'text' }
                    , { field: 'HName', title: '物料名称', edit: 'text' }
                    , { field: 'HModel', title: '规格型号', edit: 'text' }
                    , { field: 'HUnitID', title: '单位ID', edit: 'text', hide: true }
                    , { field: 'HUnitName', title: '单位', edit: 'text' }
                    , { field: 'HMQty', title: '配料数量', edit: 'text' }
                    , { field: 'HQty', title: '实配数量', edit: 'text' }
                ];
                option = {
                    id: 'mainTable'
                    , elem: '#mainTable'
                    , toolbar: '#toolbarDemo'
                    , defaultToolbar: false  //是否显示右侧工具栏
                    , page: false
                    , cellMinWidth: 120
                    , height: 350
                    , cols: [columns]
                    , done: function (res, curr, count) {
                    }
                };
            }
            //初始化配件项列表
            function Table2() {
                //表头
                columns1 = [
                    { type: 'checkbox', fixed: 'left' }
                    , { templet: '#xuhao1', title: '序号', sort: true, fixed: 'left', event: "qwe" }
                    , { field: 'HMouldID', title: '治具ID', edit: 'text', hide: true}
                    , { field: 'HMouldNumber', title: '治具代码', edit: 'text' }
                    , { field: 'HMouldName', title: '治具名称', edit: 'text' }
                    , { field: 'HMouldSpec', title: '规格型号', edit: 'text' }
                ];
                option2 = {
                    id: 'mainTable1'
                    , elem: '#mainTable1'
                    , toolbar: '#toolbarDemo1'
                    , defaultToolbar: false  //是否显示右侧工具栏
                    , page: false
                    , cellMinWidth: 120
                    , height: 350
                    , cols: [columns1]
                    , done: function (res, curr, count) {
                    }
                };
            }
            //无源单新增
            function set_AddFNew()
            {
                //加源单类型区分(可以写不同的方法)
               //加源单类型区分(可以写不同的方法)
                refSav = "Add";
                //初始基本信息赋值
                $("#form0")[0].reset();
                layui.form.render();
                get_MAXNum();
                $("#HDate").val(Format(new Date(), "yyyy-MM-dd hh:mm:ss"));      //单据日期
                $("#HWorkReportDate").val(Format(new Date(), "yyyy-MM-dd hh:mm:ss"));  //报工日期
                $("#HMakeDate").val(Format(new Date(), "yyyy-MM-dd hh:mm:ss"));  //制单日期
                $("#HMaker").val(sessionStorage["HUserName"]);     //制单人
            }
            //有源单新增
            function set_AddNew() {
                get_MAXNum();
                set_SourceAdd();
                option.data = [];
                option2.data = [];
                table.render(option);
                table.render(option2);
            }
            //编辑
            function set_EditFromGrid()
            {
                $("#HInterID").val(linterid);//修改时主表ID
                refSav = "Update";
                $('#HMaterCode').attr("disabled", true);
                $('#HMaterList').addClass("layui-btn-disabled").attr("disabled", true);
                $('#HMaterName').attr("disabled", true);
                $('#HMaterSpec').attr("disabled", true);
                $('#HBeginDate').attr("disabled", true);
                $('#HSourceName').attr("disabled", true);
                $('#HSourceList').addClass("layui-btn-disabled").attr("disabled", true);
                $('#HMainSourceBillNo').attr("disabled", true);
                $('#XDHList').addClass("layui-btn-disabled").attr("disabled", true);
                $('#SourceType').attr("disabled", true);
                form.render('select');
                $('#HICMOBillNo').attr("disabled", true);
                set_EditForm(linterid);  //编辑获取表头
                set_EditGrid(linterid);  //编辑获取表体
            }
            //编辑获取表头
            function set_EditForm(linterid) {
                //查询检验方案单是否存在
                $.ajax({
                    url: GetWEBURL() + "Sc_MaterToSourceBill/Sc_MaterToSourceBillListCheckDetai",
                    type: "GET",
                    data: {
                        "HID": linterid
                    },
                    success: function (result) {
                        if (result.code == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
                            var data = result.data.h_v_Sc_MaterToSourceBillMain[0];
                            form.val("component-form-group", {
                                "HInterID": data.hmainid
                                , "HBillNo": data.单据号
                                , "HDate": formatDate(data.日期)
                                , "HPlanQty":"0"
                                , "HICMOBillNo": data.任务单号
                                , "HICMOInterID": data.HICMOInterID
                                , "HICMOEntryID": data.HICMOEntryID
                                , "HProcExchBillNo": data.工序流转卡号
                                , "HProcExchQty": ""
                                , "HSourceInterID": data.HMainSourceInterID
                                , "HSourceEntryID": data.HMainSourceEntryID
                                , "HSourceBillNo": data.HMainSourceBillNo
                                , "HSourceBillType": data.HMainSourceBillType
                                , "HProcName":""
                                , "HProcID": "0"
                                , "HMaterCode": data.产品代码
                                , "HMaterID": data.HMaterID
                                , "HMaterName": data.产品名称
                                , "HMaterSpec": data.规格型号
                                , "HSourceID": data.HSourceID
                                , "HSourceName": data.生产资源
                                , "HGroupName": data.生产班组
                                , "HGroupID": data.HGroupID
                                , "HWorkerName": data.操作工
                                , "HWorkerID": data.HWorkerID
                                , "HMaker": data.制单人                                            //制单人
                                , "HMakeDate": formatDate(data.制单日期)                           //制单日期
                                , "HUpDater": sessionStorage["HUserName"]                          //修改人
                                , "HUpDateDate": Format(new Date(), "yyyy-MM-dd hh:mm:ss")         //修改日期
                                , "HChecker": data.审核人                                          //审核人
                                , "HCheckDate": formatDate(data.审核日期)                          //审核日期
                                , "HCloseMan": data.关闭人                                         //关闭人
                                , "HCloseDate": formatDate(data.关闭日期)                          //关闭日期
                                , "HDeleteMan": data.作废人                                        //作废人
                                , "HDeleteDate": formatDate(data.作废日期)                         //作废日期
                            });
                        } else {
                            layer.alert(result.msg, { icon: 5, btn: ['退出'], time: 100000, offset: 't' });
                        }
                    }, error: function () {
                        layer.alert("发生错误!", { icon: 5 });
                    }
                });
            }
            // ç¼–辑获取表头时时间格式矫正方式
            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_EditGrid(linterid) {
                $("#HInterID").val(linterid);//修改时主表ID
                //编辑加载数据
                $.ajax({
                    url: GetWEBURL() + 'Sc_MaterToSourceBill/Sc_MaterToSourceBillListProjectDetai',
                    type: "GET",
                    data: { "HInterID": linterid },
                    success: function (result) {
                        if (result.count == 1) {
                            option.data = result.list[0];
                            table.render(option);
                            option2.data = result.list[1];
                            table.render(option2);
                        } else {
                            layer.alert(result.code + result.Message, { icon: 5 });
                        }
                    }, error: function () {
                        layer.close(index0);
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
            }
            //有源单新增
            function set_SourceAdd() {
                refSav = "Add";
                 //初始基本信息赋值
                //初始基本信息赋值
                $("#HDate").val(Format(new Date(), "yyyy-MM-dd hh:mm:ss"));      //单据日期
                $("#HWorkReportDate").val(Format(new Date(), "yyyy-MM-dd hh:mm:ss"))  //报工日期
                $("#HWorkReportDate").val(Format(new Date(), "yyyy-MM-dd hh:mm:ss"));  //报工日期
                $("#HMakeDate").val(Format(new Date(), "yyyy-MM-dd hh:mm:ss"));  //制单日期
                $("#HMaker").val(sessionStorage["HUserName"]);     //制单人
@@ -444,7 +1035,7 @@
                $('#HProcExchBillNo').attr("disabled", true);
                $('#HProcName').attr("disabled", true);
                $('#HMaterCode').attr("disabled", true);
                $('#HMaterList').addClass("layui-btn-disabled").attr("disabled", true);
                $('#HMaterList').addClass("layui-btn-disabled").attr("disabled",true);
                $('#HMaterName').attr("disabled", true);
                $('#HMaterSpec').attr("disabled", true);
                $('#HPlanQty').attr("disabled", true);
@@ -501,87 +1092,8 @@
                    });
            }
            //编辑
            function set_EditFromGrid()
            {
                refSav = "Update";
                $('#HMaterCode').attr("disabled", true);
                $('#HMaterList').addClass("layui-btn-disabled").attr("disabled", true);
                $('#HMaterName').attr("disabled", true);
                $('#HMaterSpec').attr("disabled", true);
                $('#HBeginDate').attr("disabled", true);
                $('#HSourceName').attr("disabled", true);
                $('#HSourceList').addClass("layui-btn-disabled").attr("disabled", true);
                $('#HMainSourceBillNo').attr("disabled", true);
                $('#XDHList').addClass("layui-btn-disabled").attr("disabled", true);
                $('#HDeptName').attr("disabled", true);
                $('#HDeptList').addClass("layui-btn-disabled").attr("disabled", true);
                $('#SourceType').attr("disabled", true);
                form.render('select');
                $('#HICMOBillNo').attr("disabled", true);
                $.ajax({
                    url: GetWEBURL() + "Sc_MESBeginWorkBill/Sc_MESBeginWorkBillListCheckDetai",
                    type: "GET",
                    data: {
                        "HID": linterid
                    },
                    success: function (result) {
                        if (result.code == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
                            var data = result.data.h_v_Sc_MESBeginWorkBillList_NEW[0];
                            form.val("component-form-group", { //formTest å³ class="layui-form" æ‰€åœ¨å…ƒç´ å±žæ€§ lay-filter="" å¯¹åº”的值
                                "HInterID": data.hmainid
                                , "HBillNo": data.单据号
                                , "HDate": formatDate(data.日期)
                                , "HProcID": data.HProcID
                                , "HProcName": data.工序名称
                                , "HMaterID": data.HMaterID
                                , "HMaterCode": data.产品代码
                                , "HMaterName": data.产品名称
                                , "HMaterSpec": data.规格型号
                                , "HBeginDate": data.开工时间
                                , "HSourceID": data.HSourceID              //资源ID
                                , "HSourceName": data.资源名称             //资源名称
                                , "HEmpID": data.HEmpID                   //操作员ID
                                , "HEmpName": data.申请开工人员           //操作员
                                , "HMainSourceInterID": data.HMainSourceInterID                 //源单ID
                                , "HMainSourceEntryID": data.HMainSourceEntryID                 //源单子ID
                                , "HMainSourceBillNo": data.HMainSourceBillNo                 //源单单号
                                , "HMainSourceBillType": data.HMainSourceBillType               //源单类型
                                , "HGroupID": data.HGroupID                //班组ID
                                , "HGroupName": data.班组名称              //班组名称
                                , "HDeptID": data.HDeptID                  //部门ID
                                , "HDeptName": data.部门名称               //部门名称
                                , "HICMOInterID": data.HICMOInterID                       //生产订单主ID
                                , "HICMOEntryID": data.HICMOEntryID                        //生产订单子ID
                                , "HICMOBillNo": data.HICMOBillNo                        //生产订单
                                , "HRemark": data.备注                    //备注
                                , "HMaker": data.制单人                            //制单人
                                , "HMakeDate": data.制单日期                          //制单日期
                                , "HUpDater": sessionStorage["HUserName"]             //修改人
                                , "HUpDateDate": Format(new Date(), "yyyy-MM-dd hh:mm:ss")//修改日期
                                , "HChecker": data.审核人             //审核人
                                , "HCheckDate": data.审核日期   //审核日期
                                , "HCloseMan": data.关闭人                //关闭人
                                , "HCloseDate": data.关闭日期             //关闭日期
                                , "HDeleteMan": data.作废人               //作废人
                                , "HDeleteDate": data.作废日期       //作废日期
                            });
                        } else {
                            layer.alert(result.msg, { icon: 5, btn: ['退出'], time: 100000, offset: 't' });
                        }
                    }, error: function () {
                        layer.alert("发生错误!", { icon: 5 });
                    }
                });
            }
            //判断是否新增
            if (linterid == null || linterid == 0) {
            //获取最大单据号及默认值赋值
            function get_MAXNum() {
                //获取最大单据号 new
                $("#HInterID").val("0");
                $("#HBillNo").val("");
@@ -595,92 +1107,20 @@
                    }
                });
            }
            else {//如果修改则走下面 new
                $("#HInterID").val(linterid);//修改时主表ID
            }
              //获取下拉选中值
            form.on('select(SourceType)', function (data) {
                Sctag = data.value;
                form.render('select');
                if (Sctag != "2")  //无源单
                {
                    $("#HMainSourceInterID").val("");
                    $("#HMainSourceEntryID").val("");
                    $("#HMainSourceBillNo").val("");
                    $("#HMainSourceBillType").val("");
                    $('#HMainSourceBillNo').attr("disabled", false);
                    $('#XDHList').addClass("layui-btn-disabled").attr("disabled", true);
                    OperationType = 1;
                }
                else {
                    $('#HMainSourceBillNo').attr("disabled", true);
                    $('#XDHList').removeClass("layui-btn-disabled").attr("disabled", false);
                    OperationType = 2;
                }
            });
            //保存提交
            form.on('submit(Saver)', function (data) {
                var sMainStr = JSON.stringify(data.field);
                var sMainSub = sMainStr + ';' + sessionStorage["HUserName"] + ';' + refSav;
                if (!AllowLoadData())//数据验证
                {
                    return false;
                }
                $.ajax({
                    type: "POST",
                    url: GetWEBURL() + "/Sc_MESBeginWorkBill/SaveGetMESBeginWorkFrom", //方法所在页面和方法名
                    async: false,
                    data: { "msg": sMainSub },
                    dataType: "json",
                    success: function (data) {
                        if (data.count == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
                            $("#HInterID").val(data.HInterID);//获取提交成功返回的单据主ID
                            layer.confirm(data.Message, {
                                btn: ['确认']
                            }, function (index) {
                                    if (data.Verify == "Y") //自动审核
                                    {
                                        layer.close(index);
                                        SaveVerify(); //审核
                                    }
                                    else {
                                        layer.close(index);
                                    }
                            });
                        }
                        else {
                            layer.alert(data.Message, { icon: 5 })
                        }
                    },
                    error: function (err) {
                        layer.alert(err, { icon: 5 })
                    }
                })
            });
            //审核按钮提交
            form.on('submit(VerIfySaver)', function (data) {
                SaveVerify();
            });
            //审核提交
            function SaveVerify()
            {
                var InterID = $("#HInterID").val();
                if (!AllowLoadData())//数据验证
                var sSubStr = JSON.stringify(table.cache['mainTable']);
                var sSubStr1 = JSON.stringify(table.cache['mainTable1']);
                if (!AllowLoadData(sSubStr, sSubStr1))//数据验证
                {
                    return false;
                }
                $.ajax({
                    type: "GET",
                    url: GetWEBURL() + "/Sc_MESBeginWorkBill/AuditProcessReportList", //方法所在页面和方法名
                    url: GetWEBURL() + "/Sc_MaterToSourceBill/AuditProcessReportList", //方法所在页面和方法名
                    async: true,
                    data: { "HInterID": InterID, "IsAudit": 0, "CurUserName": sessionStorage["HUserName"] },
                    dataType: "json",
@@ -701,213 +1141,93 @@
                })
            }
            //退出
            form.on('submit(Exit)', function (data) {
                Pub_Close(1);
                window.parent.location.reload();
            });
            //表头信息产品弹窗
            form.on('submit(HMaterList)', function () {
                //页面层-自定义
                layer.open({
                    type: 2,
                    skin: 'layui-layer-rim', //加上边框
                    title: '产品列表',
                    closeBtn: 1,
                    shift: 2,
                    area: ['80%', '80%'],
                    maxmin: true,
                    content: ['../../PublicPage/PartInformation.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('请选择数据');
            //反审核提交
            function ReVerIfySaver() {
                var InterID = $("#HInterID").val();
                var sSubStr = JSON.stringify(table.cache['mainTable']);
                var sSubStr1 = JSON.stringify(table.cache['mainTable1']);
                if (!AllowLoadData(sSubStr, sSubStr1))//数据验证
                {
                    return false;
                }
                $.ajax({
                    type: "GET",
                    url: GetWEBURL() + "/Sc_MaterToSourceBill/AuditProcessReportList", //方法所在页面和方法名
                    async: true,
                    data: { "HInterID": InterID, "IsAudit": 1, "CurUserName": sessionStorage["HUserName"] },
                    dataType: "json",
                    success: function (data) {
                        if (data.count == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
                            layer.msg(data.Message, { time: 1 * 2000, icon: 1 }, function (index) {
                                //layer.close(layer.index);
                                //window.parent.location.reload();
                            });
                        }
                        $("#HMaterName").val(checkStatus.data[0].HName);
                        $("#HMaterCode").val(checkStatus.data[0].HNumber);
                        $("#HMaterID").val(checkStatus.data[0].HItemID);
                        $("#HMaterSpec").val(checkStatus.data[0].HModel);
                        layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                    }
                    , btn2: function (index, layero) {
                        //按钮【按钮二】的回调
                        //return false å¼€å¯è¯¥ä»£ç å¯ç¦æ­¢ç‚¹å‡»è¯¥æŒ‰é’®å…³é—­
                    },
                    end: function () {
                    },
                    success: function (layero, index) {
                    }
                });
            });
            //生产资源
            form.on('submit(HSourceList)', function () {
                //页面层-自定义
                layer.open({
                    type: 2,
                    skin: 'layui-layer-rim', //加上边框
                    title: '资源列表',
                    closeBtn: 1,
                    shift: 2,
                    area: ['80%', '80%'],
                    maxmin: true,
                    content: ['../../PublicPage/SourceInformation.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('请选择数据');
                        else {
                            layer.alert(data.Message, { icon: 5 })
                        }
                        $("#HSourceName").val(checkStatus.data[0].HName);
                        $("#HSourceID").val(checkStatus.data[0].HItemID);
                        layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                    }
                    , btn2: function (index, layero) {
                        //按钮【按钮二】的回调
                        //return false å¼€å¯è¯¥ä»£ç å¯ç¦æ­¢ç‚¹å‡»è¯¥æŒ‰é’®å…³é—­
                    },
                    end: function () {
                    },
                    success: function (layero, index) {
                    error: function (err) {
                        layer.alert(err, { icon: 5 })
                    }
                })
            }
            //删除行
            function btnDeleteLine(checkStatus,data) {
                var tableDT = table.cache.mainTable;//1获取之前编辑过的全部数据,前提是编辑数据是要更新缓存,buttonList ä¸ºè¡¨æ ¼çš„id
                var data = checkStatus.data;//2获取选中数据
                if (data.length <= 0) {
                    layer.msg('最少选择一行');
                    return;
                }
                //方法二:遍历缓存列表,将选中的按钮信息删除(选中的删除)
                var tableArr = [];
                for (var i = 0; i < tableDT.length; i++) {//遍历表格缓存数组
                    var btnObj = tableDT[i];
                    if (btnObj.LAY_CHECKED) {//条件:选中
                        tableDT.splice(i, 1);//移除后后造成数组下标索引发生变化,所以下面需要i--
                        i--;
                    }
                }
                tableArr = tableDT;
                table.reload("mainTable", {
                    data: tableArr   // å°†æ–°æ•°æ®é‡æ–°è½½å…¥è¡¨æ ¼
                });
            });
            }
            //操作员
            form.on('submit(HEmpList)', function () {
                //页面层-自定义
                layer.open({
                    type: 2,
                    skin: 'layui-layer-rim', //加上边框
                    title: '人员列表',
                    closeBtn: 1,
                    shift: 2,
                    area: ['80%', '80%'],
                    maxmin: true,
                    content: ['../../PublicPage/UserInformation.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('请选择数据');
                        }
                        $("#HEmpName").val(checkStatus.data[0].HName);
                        $("#HEmpID").val(checkStatus.data[0].HItemID);
                        layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
            //删除行
            function btnDeleteLine1(checkStatus,data) {
                var tableDT = table.cache.mainTable1;//1获取之前编辑过的全部数据,前提是编辑数据是要更新缓存,buttonList ä¸ºè¡¨æ ¼çš„id
                var data = checkStatus.data;//2获取选中数据
                if (data.length <= 0) {
                    layer.msg('最少选择一行');
                    return;
                }
                //方法二:遍历缓存列表,将选中的按钮信息删除(选中的删除)
                var tableArr = [];
                for (var i = 0; i < tableDT.length; i++) {//遍历表格缓存数组
                    var btnObj = tableDT[i];
                    if (btnObj.LAY_CHECKED) {//条件:选中
                        tableDT.splice(i, 1);//移除后后造成数组下标索引发生变化,所以下面需要i--
                        i--;
                    }
                    , btn2: function (index, layero) {
                        //按钮【按钮二】的回调
                        //return false å¼€å¯è¯¥ä»£ç å¯ç¦æ­¢ç‚¹å‡»è¯¥æŒ‰é’®å…³é—­
                    },
                    end: function () {
                }
                tableArr = tableDT;
                    },
                    success: function (layero, index) {
                    }
                table.reload("mainTable1", {
                    data: tableArr   // å°†æ–°æ•°æ®é‡æ–°è½½å…¥è¡¨æ ¼
                });
            });
            }
            //源单单号 XDHList
            //表头信息班组弹窗
            form.on('submit(HGroupList)', function () {
                //页面层-自定义
                layer.open({
                    type: 2,
                    skin: 'layui-layer-rim', //加上边框
                    title: '班组列表',
                    closeBtn: 1,
                    shift: 2,
                    area: ['80%', '80%'],
                    maxmin: true,
                    content: ['../../PublicPage/GroupInformation.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('请选择数据');
                        }
                        $("#HGroupName").val(checkStatus.data[0].HName);
                        $("#HGroupID").val(checkStatus.data[0].HItemID);
                        layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                    }
                    , btn2: function (index, layero) {
                        //按钮【按钮二】的回调
                        //return false å¼€å¯è¯¥ä»£ç å¯ç¦æ­¢ç‚¹å‡»è¯¥æŒ‰é’®å…³é—­
                    },
                    end: function () {
                    },
                    success: function (layero, index) {
                    }
                });
            });
            //表头信息车间弹窗
            form.on('submit(HDeptList)', function () {
                //页面层-自定义
                layer.open({
                    type: 2,
                    skin: 'layui-layer-rim', //加上边框
                    title: '班组列表',
                    closeBtn: 1,
                    shift: 2,
                    area: ['80%', '80%'],
                    maxmin: true,
                    content: ['../../PublicPage/DeptInformation.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].HName);
                        $("#HDeptID").val(checkStatus.data[0].HItemID);
                        layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                    }
                    , btn2: function (index, layero) {
                        //按钮【按钮二】的回调
                        //return false å¼€å¯è¯¥ä»£ç å¯ç¦æ­¢ç‚¹å‡»è¯¥æŒ‰é’®å…³é—­
                    },
                    end: function () {
                    },
                    success: function (layero, index) {
                    }
                });
            });
            //#endregion
            //以上为layui模块
        });
        function AllowLoadData() {  //非空验证
        function AllowLoadData(sSubStr,sSubStr1) {  //非空验证
            var Result = true;
            if ($("#HBillNo").val() == '' || $("#HBillNo").val() == null) {
                layer.msg("单据号不能为空!", { icon: 5, btn: ['确认'], time: 2000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
@@ -917,28 +1237,28 @@
                layer.msg("单据日期不能为空!", { icon: 5, btn: ['确认'], time: 2000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                return Result = false;
            }
            if ($("#HMaterID").val() == '' || $("#HMaterID").val() == null) {
                layer.msg("产品编码不能为空!", { icon: 5, btn: ['确认'], time: 2000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
            if ($("#HICMOBillNo").val() == '' || $("#HICMOBillNo").val() == null) {
                layer.msg("订单号不能为空!", { icon: 5, btn: ['确认'], time: 2000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                return Result = false;
            }
            if ($("#HBeginDate").val() == '' || $("#HBeginDate").val() == null) {
                layer.msg("开工时间不能为空!", { icon: 5, btn: ['确认'], time: 2000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
            if ($("#HPlanQty").val() == '' || $("#HPlanQty").val() == null) {
                layer.msg("订单数量不能为空!", { icon: 5, btn: ['确认'], time: 2000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                return Result = false;
            }
            if ($("#HMaterID").val() == '' || $("#HMaterID").val() == null) {
                layer.msg("产品编码不能为空!", { icon: 5, btn: ['确认'], time: 2000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                return Result = false;
            }
            if ($("#HSourceID").val() == '' || $("#HSourceID").val() == null) {
                layer.msg("生产资源不能为空!", { icon: 5, btn: ['确认'], time: 2000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                return Result = false;
            }
            if ($("#HEmpID").val() == '' || $("#HEmpID").val() == null) {
            if ($("#HWorkerID").val() == '' || $("#HWorkerID").val() == null) {
                layer.msg("操作员不能为空!", { icon: 5, btn: ['确认'], time: 2000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                return Result = false;
            }
            if ($("#HGroupID").val() == '' || $("#HGroupID").val() == null) {
                layer.msg("班组不能为空!", { icon: 5, btn: ['确认'], time: 2000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                return Result = false;
            }
            if ($("#HDeptID").val() == '' || $("#HDeptID").val() == null) {
                layer.msg("车间不能为空!", { icon: 5, btn: ['确认'], time: 2000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                return Result = false;
            }
            if (OperationType == "2") {
@@ -947,6 +1267,11 @@
                    return Result = false;
                }
            }
            if (typeof (sSubStr) == "undefined" || sSubStr == "" || sSubStr == "[]") {
                layer.msg("配料记录不能为空", { icon: 5, btn: ['确认'], time: 2000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                return Result = false;
            }
            return Result;
        }
@@ -961,6 +1286,17 @@
            return [year, month, day].join('-');
        }
        //操作员
        function GetHEmpValue(obj) {
            $("#HWorkerName").val(obj[0].职员名称);
            $("#HWorkerID").val(obj[0].HItemID);
        }
        //生产班组
        function GetHGroupValue(obj) {
            $("#HGroupName").val(obj[0].班组名称);
            $("#HGroupID").val(obj[0].HItemID);
        }
    </script>
</body>
</html>