chenhaozhe
2025-05-30 f025d969dcf4e664ef8f7f33ee2060e113c3adff
WebTM/views/²É¹º¹ÜÀí/²É¹º¶©µ¥/Cg_POOrderBillEdit.html
@@ -446,59 +446,6 @@
                OperationType = 1;//操作类型初始化
            }
            //判断是否新增
            if (linterid == null || linterid == 0) {    //判断 linterid å˜é‡æ˜¯å¦ä¸ºç©ºæˆ–者等于0
                //获取最大单据号 new
                OptionData = 1;  // å°†å˜é‡ OptionData è®¾ç½®ä¸º 1。这个变量可能用于控制某些逻辑或行为
                $("#HMaker").val(sessionStorage["HUserName"]);   //通过HMaker  id获取 å­˜å‚¨å™¨  sessionStorage中HUserName键对应的值
                $("#HInterID").val("0");                // å°è¯•获取id ä¸º HInterID的元素 å­—符串为‘’0‘’的值             å°† ID ä¸º HInterID çš„元素的值设置为 "0"
                $("#HBillNo").val("");                  // å°è¯•获取id ä¸º HBillNo的元素的值元素清空,即设置为空字符串。
                $.ajax({                            //异步请求
                    url: GetWEBURL() + "/WEBSController/GetMaxBillNoAndID_Json",//请求地址
                    type: "GET",                    //请求类型
                    data: { "HBillType": '1102' },      //请求值 HBillType类型  è®¾ç½®å­—符串为1102   //请求参数  hbillteyp  å€¼ä¸º1100
                    success: function (d) {  // å®šä¹‰å½“请求成功时的回调函数。这个函数接受一个参数 d包含了服务器响应的数据
                        //console.log(d.data);
                        $("#HBillNo").val(d.data[0].HBillNo);     //设置 ID ä¸º HBillNo çš„元素的值为响应数据中 data æ•°ç»„的第一个元素的 HBillNo å±žæ€§å€¼    é€šå¸¸ç”¨äºŽè‡ªåŠ¨å¡«å……æœ€å¤§å•æ®å·
                        $("#HDate").val(Format(new Date(), "yyyy-MM-dd"));//调用 Format çš„函数,将当前日期格式化为 "yyyy-MM-dd" æ ¼å¼ï¼Œå¹¶è®¾ç½® ID ä¸º HDate çš„元素的值。   ç”¨äºŽè‡ªåŠ¨å¡«å……å•æ®çš„æ—¥æœŸ
                        $("#HInterID").val(d.data[0].HInterID);             //更新 ID ä¸º HInterID çš„元素的值为响应数据中 data æ•°ç»„的第一个元素的 HInterID å±žæ€§å€¼ã€‚
                        $("#HSSDate").val(Format(new Date(), "yyyy-MM-dd")); //结算方式           å†æ¬¡è°ƒç”¨ Format å‡½æ•°å°†å½“前日期格式化为 "yyyy-MM-dd" æ ¼å¼ï¼Œå¹¶è®¾ç½® ID ä¸º HSSDate çš„元素的值
                    }
                });
                //页面初始化加载
                $("#HDeptID").val(sessionStorage["HDeptID"]);  // èŽ·å–é¡µé¢ä¸ŠID为"HDeptID"的元素的值设置为sessionStorage中"HDeptID"键对应的值
                $("#HDeptName").val(sessionStorage["HDept"]);  // èŽ·å–é¡µé¢ä¸ŠID为"HDeptName"的元素的值设置为sessionStorage中"HDeptName"键对应的值
                $("#HEmpName").val(sessionStorage["HEmpName"]);   // èŽ·å–é¡µé¢ä¸ŠID为"HEmpName"的元素的值设置为sessionStorage中"HEmpName"键对应的值
                $("#HEmpID").val(sessionStorage["HEmpID"]);     // èŽ·å–é¡µé¢ä¸ŠID为"HEmpID"的元素的值设置为sessionStorage中"HEmpID"键对应的值
                //根据当前登录用户的部门 èŽ·å– ä¸»ç®¡
                if ($("#HDeptID").val() != 0) {       //  åˆ¤æ–­ èŽ·å–åˆ°id为hdeptid的值是为0
                    $.ajax({                          //异步请求
                        url: GetWEBURL() + "Gy_Department/list", //请求的地址
                        async: false,                   //是否异步
                        type: "GET",                        //请求类型
                        data: {         //定义发送到服务器的数据
                             //sWhere(用于筛选条件的字符串,基于HDeptID的值)、user(从sessionStorage中获取的当前用户名)、Organization(从sessionStorage中获取的当前组织信息)
                            "sWhere": "and HItemID = '" + $("#HDeptID").val() + "'", "user": sessionStorage["HUserName"], "Organization": sessionStorage["Organization"]//定义的类型有HItemID,user,Organization
                        },
                        success: function (result) {    //请求成功时的回调函数
                            if (result.code == "1") {
                                $("#HManagerID").val(result.data[0].HEmpID);  // å°† ID ä¸º HManagerID çš„元素的值设置为响应数据中 data æ•°ç»„的第一个元素的 HEmpID å±žæ€§å€¼ã€‚
                                $("#HManagerName").val(result.data[0].负责人); // æ›´æ–°è¿”回数据第一个对象的负责人名称
                            }
                        }, error: function () {
                            layer.alert("发生错误!", { icon: 5 });   //提示发生错误  è­¦ç¤ºæ ‡å‡†ä¸º5的类型
                        }
                    });
                }
            } else {//如果修改则走下面 new
                $("#HInterID").val(linterid);   // å°† ID ä¸º HInterID çš„元素的值设置为变量 linterid çš„值。
                $('#print-btn').prop('disabled', false).removeClass('layui-btn-disabled');
                RoadBillMain(linterid);//调用一个名为RoadBillMain的函数,并将linterid作为参数传递
            }
            //#endregion
            var rowdata = [{
                "HMaterID": 0, "物料代码": "", "物料名称": "", "规格型号": "", "HUnitID": 0, "计量单位": "", "HWHID": 0, "HWHName": "", "HQty": "0", "HRemark": ""
                , "HPrice": "0", "HTaxPrice": "0", "HMoney": "0", "HDiscountRate": 1, "HRelTaxPrice": "0", "HTaxRate": 0, "HTaxMoney": "0", "HlineTotal": "0", "HlineTotalBB": "0", "HDate": Format(new Date, "yyyy- MM - dd"),
@@ -506,6 +453,34 @@
            // åˆå§‹åŒ–界
            set_InitGrid();//执行初始化界面方法
            //判断是否新增
            if (linterid == null || linterid == 0) {    //判断 linterid å˜é‡æ˜¯å¦ä¸ºç©ºæˆ–者等于0
                //获取最大单据号 new
                OptionData = 1;  // å°†å˜é‡ OptionData è®¾ç½®ä¸º 1。这个变量可能用于控制某些逻辑或行为
                //生成单据号
                createBillNo();
                //根据用户绑定信息加载业务员、部门、主管
                setInitPageData();
                /*set_InitGrid();//执行初始化界面方法*/
            }
            else if (OperationType == 2) {                                              //复制
                //加载表体和表体数据
                RoadBillMain_Copy(linterid);
                //获取最大单据号 new
                OptionData = 1;  // å°†å˜é‡ OptionData è®¾ç½®ä¸º 1。这个变量可能用于控制某些逻辑或行为
            }
            else {//如果修改则走下面 new
                $("#HInterID").val(linterid);   // å°† ID ä¸º HInterID çš„元素的值设置为变量 linterid çš„值。
                $('#print-btn').prop('disabled', false).removeClass('layui-btn-disabled');
                RoadBillMain(linterid);//调用一个名为RoadBillMain的函数,并将linterid作为参数传递
            }
            //#endregion
            //头工具栏事件
            table.on('toolbar(mainTable)', function (obj) {   //监听mainTable表格上的工具栏事件 è§¦å‘回调函数obj参数
@@ -1012,6 +987,65 @@
            }
            //#endregion
            //#region ç”Ÿæˆå•据号
            function createBillNo() {
                $("#HMaker").val(sessionStorage["HUserName"]);   //通过HMaker  id获取 å­˜å‚¨å™¨  sessionStorage中HUserName键对应的值
                $("#HMakeDate").val("");
                $("#HUpDater").val("");
                $("#HUpDateDate").val("");
                $("#HChecker").val("");
                $("#HCheckDate").val("");
                $("#HDeleteMan").val("");                // å°è¯•获取id ä¸º HInterID的元素 å­—符串为‘’0‘’的值             å°† ID ä¸º HInterID çš„元素的值设置为 "0"
                $("#HDeleteDate").val("");                  // å°è¯•获取id ä¸º HBillNo的元素的值元素清空,即设置为空字符串。
                $("#HCloseMan").val("");
                $("#HCloseDate").val("");
                $.ajax({                            //异步请求
                    url: GetWEBURL() + "/WEBSController/GetMaxBillNoAndID_Json",//请求地址
                    async: false,
                    type: "GET",                    //请求类型
                    data: { "HBillType": '1102' },      //请求值 HBillType类型  è®¾ç½®å­—符串为1102   //请求参数  hbillteyp  å€¼ä¸º1100
                    success: function (d) {  // å®šä¹‰å½“请求成功时的回调函数。这个函数接受一个参数 d包含了服务器响应的数据
                        //console.log(d.data);
                        $("#HBillNo").val(d.data[0].HBillNo);     //设置 ID ä¸º HBillNo çš„元素的值为响应数据中 data æ•°ç»„的第一个元素的 HBillNo å±žæ€§å€¼    é€šå¸¸ç”¨äºŽè‡ªåŠ¨å¡«å……æœ€å¤§å•æ®å·
                        $("#HDate").val(Format(new Date(), "yyyy-MM-dd"));//调用 Format çš„函数,将当前日期格式化为 "yyyy-MM-dd" æ ¼å¼ï¼Œå¹¶è®¾ç½® ID ä¸º HDate çš„元素的值。   ç”¨äºŽè‡ªåŠ¨å¡«å……å•æ®çš„æ—¥æœŸ
                        $("#HInterID").val(d.data[0].HInterID);             //更新 ID ä¸º HInterID çš„元素的值为响应数据中 data æ•°ç»„的第一个元素的 HInterID å±žæ€§å€¼ã€‚
                        $("#HSSDate").val(Format(new Date(), "yyyy-MM-dd")); //结算方式           å†æ¬¡è°ƒç”¨ Format å‡½æ•°å°†å½“前日期格式化为 "yyyy-MM-dd" æ ¼å¼ï¼Œå¹¶è®¾ç½® ID ä¸º HSSDate çš„元素的值
                    }
                });
            }
            //#endregion
            //#region æ ¹æ®ç”¨æˆ·ç»‘定信息加载业务员、部门、主管
            function setInitPageData() {
                //页面初始化加载
                $("#HDeptID").val(sessionStorage["HDeptID"]);  // èŽ·å–é¡µé¢ä¸ŠID为"HDeptID"的元素的值设置为sessionStorage中"HDeptID"键对应的值
                $("#HDeptName").val(sessionStorage["HDept"]);  // èŽ·å–é¡µé¢ä¸ŠID为"HDeptName"的元素的值设置为sessionStorage中"HDeptName"键对应的值
                $("#HEmpName").val(sessionStorage["HEmpName"]);   // èŽ·å–é¡µé¢ä¸ŠID为"HEmpName"的元素的值设置为sessionStorage中"HEmpName"键对应的值
                $("#HEmpID").val(sessionStorage["HEmpID"]);     // èŽ·å–é¡µé¢ä¸ŠID为"HEmpID"的元素的值设置为sessionStorage中"HEmpID"键对应的值
                //根据当前登录用户的部门 èŽ·å– ä¸»ç®¡
                if ($("#HDeptID").val() != 0) {       //  åˆ¤æ–­ èŽ·å–åˆ°id为hdeptid的值是为0
                    $.ajax({                          //异步请求
                        url: GetWEBURL() + "Gy_Department/list", //请求的地址
                        async: false,                   //是否异步
                        type: "GET",                        //请求类型
                        data: {         //定义发送到服务器的数据
                            //sWhere(用于筛选条件的字符串,基于HDeptID的值)、user(从sessionStorage中获取的当前用户名)、Organization(从sessionStorage中获取的当前组织信息)
                            "sWhere": "and HItemID = '" + $("#HDeptID").val() + "'", "user": sessionStorage["HUserName"], "Organization": sessionStorage["Organization"]//定义的类型有HItemID,user,Organization
                        },
                        success: function (result) {    //请求成功时的回调函数
                            if (result.code == "1") {
                                $("#HManagerID").val(result.data[0].HEmpID);  // å°† ID ä¸º HManagerID çš„元素的值设置为响应数据中 data æ•°ç»„的第一个元素的 HEmpID å±žæ€§å€¼ã€‚
                                $("#HManagerName").val(result.data[0].负责人); // æ›´æ–°è¿”回数据第一个对象的负责人名称
                            }
                        }, error: function () {
                            layer.alert("发生错误!", { icon: 5 });   //提示发生错误  è­¦ç¤ºæ ‡å‡†ä¸º5的类型
                        }
                    });
                }
            }
            //#endregion
            //#region æ‰“印
            function get_PrintReport() {
                if (linterid == null || linterid == "") {
@@ -1032,48 +1066,48 @@
            function set_InitGrid() {
                //供应商输入框
                tableSelect.render({
                    elem: '#HSupName',//输入框dom选择
                    searchKey: '供应商名称,HItemID',//查询的列名
                    sWhere: '',//table搜索sWhere条件 //默认筛选项
                    ajaxSelect: function (sWhere) {
                        var data = '';
                        $.ajax({
                            url: GetWEBURL() + '/Gy_Supplier/list',
                            type: "GET",
                            data: { "sWhere": sWhere, "user": '翁涛涛', "Organization": '浙江智云迈思' },
                            async: false,
                            success: function (data1) {
                                if (data1.count == 1) {
                                    data = data1.data
                                }
                            },
                            error: function () {
                                layer.alert('获取列表失败!', { icon: 15, title: '通信错误' });
                            }
                        });
                        return data;
                    },//设置前端分页时可以设置的
                    table: {
                        //url: GetWEBURL() + 'Gy_Supplier/page',
                        //where: { user: '翁涛涛', Organization: '浙江智云迈思' },
                        cols: [[
                            { type: 'radio', fixed: 'left' },//需要加这个fixed属性不然点击checkbox会触发行点击导致无法正确点击
                            { field: 'HItemID', title: 'HItemID' },
                            { field: '供应商名称', title: '供应商名称' },
                        ]],
                        page: true,
                        limit: 5,
                        limits:[5]
                    },
                    done: function (elem, data) {
                        if (data != []) {
                            $("#HSupName").val(data.data[0]['供应商名称']);
                            $("#HSupID").val(data.data[0]['HItemID']);
                        }
                //tableSelect.render({
                //    elem: '#HSupName',//输入框dom选择
                //    searchKey: '供应商名称,HItemID',//查询的列名
                //    sWhere: '',//table搜索sWhere条件 //默认筛选项
                //    ajaxSelect: function (sWhere) {
                //        var data = '';
                //        $.ajax({
                //            url: GetWEBURL() + '/Gy_Supplier/list',
                //            type: "GET",
                //            data: { "sWhere": sWhere, "user": '翁涛涛', "Organization": '浙江智云迈思' },
                //            async: false,
                //            success: function (data1) {
                //                if (data1.count == 1) {
                //                    data = data1.data
                //                }
                //            },
                //            error: function () {
                //                layer.alert('获取列表失败!', { icon: 15, title: '通信错误' });
                //            }
                //        });
                //        return data;
                //    },//设置前端分页时可以设置的
                //    table: {
                //        //url: GetWEBURL() + 'Gy_Supplier/page',
                //        //where: { user: '翁涛涛', Organization: '浙江智云迈思' },
                //        cols: [[
                //            { type: 'radio', fixed: 'left' },//需要加这个fixed属性不然点击checkbox会触发行点击导致无法正确点击
                //            { field: 'HItemID', title: 'HItemID' },
                //            { field: '供应商名称', title: '供应商名称' },
                //        ]],
                //        page: true,
                //        limit: 5,
                //        limits:[5]
                //    },
                //    done: function (elem, data) {
                //        if (data != []) {
                //            $("#HSupName").val(data.data[0]['供应商名称']);
                //            $("#HSupID").val(data.data[0]['HItemID']);
                //        }
                        
                    }
                })
                //    }
                //})
                option = {
                    elem: '#mainTable'      // ä½¿ç”¨#mainTable作为表格的DOM元素 
                    , toolbar: '#toolbarDemo'        //加载tolbardemo这个表格
@@ -1123,6 +1157,7 @@
                var ajaxLoad = layer.load();;//遮罩    æŠŠlayer.load è°ƒç”¨èµ‹å€¼ç»™å®šä¹‰å˜é‡ ajaxLoad
                $.ajax({                //异步请求
                    url: GetWEBURL() + "/Cg_POOrderBill/cx",  //请求地址
                    //async: false,
                    type: "GET",  //请求类型
                    data: { "HInterID": linterid },  // å°†linterid作为请求参数发送 
                    success: function (result) {
@@ -1184,7 +1219,7 @@
                                        , "规格型号": data[i].规格型号, "HUnitID": data[i].HUnitID
                                        , "计量单位": data[i].计量单位, "HWHID": data[i].HWHID, "HWHName": data[i].仓库名称, "HQty": data[i].数量, "HRemark": data[i].表体备注
                                        , "HPrice": data[i].单价, "HMoney": data[i].金额, "HTaxRate": data[i].税率
                                        , "HTaxMoney": data[i].金额 * data[i].税率, "HlineTotal": data[i].金额 + data[i].税额, "HlineTotalBB": (data[i].金额 + data[i].税额) * data[i].汇率
                                        , "HTaxMoney": data[i].税额, "HlineTotal": data[i].价税合计, "HlineTotalBB": data[i].本位币价税合计
                                        , "HTaxPrice": data[i].含税单价, "HDiscountRate": data[i].折扣率, "HRelTaxPrice": data[i].实际含税单价
                                        , "HDate": Format(new Date(data[i].交货日期), "yyyy-MM-dd")
                                    }
@@ -1201,6 +1236,111 @@
                            form.render('select');  //用form.render方法,并指定'select'作为参数  ä¸ºç¡®è®¤æ•°æ®å˜åŒ–相关的选择框都被正确地更新或渲染
                           
                            layer.close(ajaxLoad); //调用layer.close方法,并传入ajaxLoad作为参数关闭这个加载层     è¡¨æ˜Žå¼‚步请求已经完成并且数据已经被处理
                        } else {
                            layer.close(ajaxLoad); //关闭加载层  åœ¨å¼‚步请求失败或返回了错误结果时执行。
                            layer.alert(result.msg, { icon: 5, btn: ['退出'], time: 100000, offset: 't' });//result.msg对象,提示弹窗 ç±»åž‹ä¸º5, æŒ‰é’®ï¼Œå’ŒæŒ‰é’®çš„名称为退出  æ—¶é—´ ä¸º100秒,以及偏移量(`offset: 't'
                        }
                    }, error: function () {
                        layer.close(ajaxLoad);  //关闭
                        layer.alert("发生错误!", { icon: 5 });//提示发生错误 è­¦ç¤ºæ ‡å¿— 5
                    }
                });
            }
            //#endregion
            //#region åŠ è½½è¡¨å¤´
            function RoadBillMain_Copy(linterid) {
                //查询检验方案单是否存在
                var ajaxLoad = layer.load();;//遮罩    æŠŠlayer.load è°ƒç”¨èµ‹å€¼ç»™å®šä¹‰å˜é‡ ajaxLoad
                $.ajax({                //异步请求
                    url: GetWEBURL() + "/Cg_POOrderBill/cx",  //请求地址
                    //async: false,
                    type: "GET",  //请求类型
                    data: { "HInterID": linterid },  // å°†linterid作为请求参数发送
                    success: function (result) {
                        if (result.code == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
                            var data = result.data;   //声明data变量,并将其赋值为result对象中的data属性
                            allVal = result.data[0];  //result.data数组(或类数组对象)的第一个元素赋值给变量allVal
                            form.val("component-form-group", { //formTest å³ class="layui-form" æ‰€åœ¨å…ƒç´ å±žæ€§ lay-filter="" å¯¹åº”的值
                                "HBillNo": data[0].单据号   //设置单据号的第一个值为“HBillNo”字段的值是data[0].单据号`的值
                                , "HDate": formatDate(data[0].日期)   //设置“HDate”字段的值为`data[0].日期`经过`formatDate`函数处理后的格式
                                , "HSSDate": formatDate(data[0].结算日期) //但设置的是“结算日期”字段。
                                //, "HInnerBillNo": data.内部单据号
                                , "HAddress": data[0].交货地点  // è®¾ç½®â€œäº¤è´§åœ°ç‚¹â€å­—段的值。
                                , "HDeptName": data[0].部门// è®¾ç½®â€œéƒ¨é—¨â€åç§°å­—段的值。
                                , "HDeptID": data[0].HDeptID  // è®¾ç½®â€œHDeptID”名称字段的值。
                                , "HSupID": data[0].HSupID    // è®¾ç½®â€œHSupID”名称字段的值。
                                , "HSupName": data[0].供应商   // è®¾ç½®â€œä¾›åº”商”名称字段的值。
                                , "HEmpID": data[0].HEmpID
                                , "HEmpName": data[0].业务员  // è®¾ç½®â€œä¸šåŠ¡å‘˜â€åç§°å­—æ®µçš„å€¼ã€‚
                                , "HCurID": data[0].HCurID
                                , "HCurName": data[0].币别            // è®¾ç½®â€œå¸åˆ«â€åç§°å­—段的值。
                                , "HExRate": data[0].汇率         // è®¾ç½®â€œæ±‡çŽ‡â€åç§°å­—æ®µçš„å€¼ã€‚
                                , "HManagerName": data[0].主管        // è®¾ç½®â€œä¸»ç®¡â€åç§°å­—段的值。
                                , "HManagerID": data[0].HManagerID
                                , "HPSStyleID": data[0].HPSStyleID
                                , "HPSStyleName": data[0].采购方式       // è®¾ç½®â€œé‡‡è´­æ–¹å¼â€åç§°å­—段的值。
                                , "HSSID": data[0].HSSID
                                , "HSSName": data[0].结算方式       // è®¾ç½®â€œç»“算方式”名称字段的值。
                                , "HLinkMan": data[0].联系人       // è®¾ç½®â€œè”系人”名称字段的值。
                                , "HLinkPhone": data[0].联系人电话       // è®¾ç½®â€œè”系电话”名称字段的值。
                                , "HInnerBillNo": data[0].辅助字段       // è®¾ç½®â€œè¾…助字段”名称字段的值。
                                , "HProjectID": data[0].HProjectID
                                , "HProjectNumber": data[0].项目代码       // è®¾ç½®â€œé¡¹ç›®ä»£ç â€åç§°å­—段的值。
                                , "HProjectName": data[0].项目名称       // è®¾ç½®â€œé¡¹ç›®åç§°â€åç§°å­—段的值。
                                , "HWHID": data[0].HWHID
                                , "HOrgID": data[0].HOrgID
                                , "HWHName": data[0].仓库       // è®¾ç½®â€œä»“库”名称字段的值。
                                , "HRemark": data[0].表头备注       // è®¾ç½®â€œè¡¨å¤´å¤‡æ³¨â€åç§°å­—段的值。
                                , "HMaker": data[0].制单人       // è®¾ç½®â€œåˆ¶å•人”名称字段的值。
                                , "HChecker": data[0].审核人       // è®¾ç½®â€œå®¡æ ¸äººâ€åç§°å­—段的值。
                                , "HCloseMan": data[0].关闭人       // è®¾ç½®â€œå…³é—­äººâ€åç§°å­—段的值。
                                , "HUpDater": data[0].修改人       // è®¾ç½®â€œä¿®æ”¹äººâ€åç§°å­—段的值。
                                , "HDeleteMan": data[0].作废人       // è®¾ç½®â€œä½œåºŸäººâ€åç§°å­—段的值。
                                , "HMakeDate": data[0].制单日期 == null ? "" : Pub_Format(data[0].制单日期, "yyyy-MM-dd hh:mm:ss")
                                , "HCheckDate": data[0].审核日期 == null ? "" : Pub_Format(data[0].审核日期, "yyyy-MM-dd hh:mm:ss")
                                , "HCloseDate": data[0].关闭日期 == null ? "" : Pub_Format(data[0].关闭日期, "yyyy-MM-dd hh:mm:ss")
                                , "HUpDateDate": data[0].修改日期 == null ? "" : Pub_Format(data[0].修改日期, "yyyy-MM-dd hh:mm:ss")
                                , "HDeleteDate": data[0].作废日期 == null ? "" : Pub_Format(data[0].作废日期, "yyyy-MM-dd hh:mm:ss")
                            });
                            //组织的值HOrgID变化,重新渲染
                            HOrgIDBar = data.HOrgID; //修改变量赋值,确保从数组中获取HOrgID
                            //子表  èµ‹å€¼
                            var rowdata = [];   //初始化一个空数组 rowdata,用于存储处理后的数据行
                            for (var i = 0; i < data.length; i++) {//开始一个循环,遍历 data æ•°ç»„中的每个元素。
                                rowdata.push(   // rowdata.push(...) å°†ä¸€ä¸ªæ–°å¯¹è±¡æ·»åŠ åˆ° rowdata æ•°ç»„中
                                    {
                                        "HMaterID": data[i].HMaterID, "物料代码": data[i].物料代码, "物料名称": data[i].物料名称
                                        , "规格型号": data[i].规格型号, "HUnitID": data[i].HUnitID
                                        , "计量单位": data[i].计量单位, "HWHID": data[i].HWHID, "HWHName": data[i].仓库名称, "HQty": data[i].数量, "HRemark": data[i].表体备注
                                        , "HPrice": data[i].单价, "HMoney": data[i].金额, "HTaxRate": data[i].税率
                                        , "HTaxMoney": data[i].金额 * data[i].税率, "HlineTotal": data[i].金额 + data[i].税额, "HlineTotalBB": (data[i].金额 + data[i].税额) * data[i].汇率
                                        , "HTaxPrice": data[i].含税单价, "HDiscountRate": data[i].折扣率, "HRelTaxPrice": data[i].实际含税单价
                                        , "HDate": Format(new Date(data[i].交货日期), "yyyy-MM-dd")
                                    }
                                )
                            }
                            //根据供应商获取联系人及联系电话
                            getLinkManBySup_layui();
                            $("#HLinkMan").val(data[0].联系人);
                            $("#HLinkPhone").val(data[0].联系人电话);
                            option.data = rowdata;  //将数组rowdata赋值 ç»™option.data的属性
                            table.render(option);       //渲染表格
                            form.render('select');  //用form.render方法,并指定'select'作为参数  ä¸ºç¡®è®¤æ•°æ®å˜åŒ–相关的选择框都被正确地更新或渲染
                            //生成单据号
                            createBillNo();
                            //根据用户绑定信息加载业务员、部门、主管
                            setInitPageData();
                            layer.close(ajaxLoad); //调用layer.close方法,并传入ajaxLoad作为参数关闭这个加载层     è¡¨æ˜Žå¼‚步请求已经完成并且数据已经被处理
                        } else {
                            layer.close(ajaxLoad); //关闭加载层  åœ¨å¼‚步请求失败或返回了错误结果时执行。
@@ -1409,221 +1549,642 @@
            function set_GridCellCheck(obj) {       //定义了一个名为set_GridCellCheck的函数,它接受一个参数obj    
                //使用$(document).off('keydown', ".layui-table-edit")来移除(如果存在的话)之前绑定到文档中所有.layui-table-edit类元素上的keydown事件监听器
                $(document).off('keydown', ".layui-table-edit").on('keydown', '.layui-table-edit', function (e) {  
                    try {
                        if (event.key == "F7") {//检查触发事件的键盘按键是否是F7键
                            //物料
                            if (obj.event == "HMaterID") {//判断传入的obj对象的event属性是否等于字符串"HMaterID"
                                var HOrgID = $("#HOrgID").val();  //获取id="HOrgID"的元素中获取其值,并将该值存储在变量HOrgID中
                                layer.open({  //打开层
                                    type: 2         // //表示弹出层的内容是一个 iframe       ç±»åž‹ä¸º2
                                    , skin: "layui-layer-rim" //加上边框
                                    , title: "物料列表"  //标题
                                    , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                                    , shift: 2 //弹出动画
                                    , area: ["90%", "90%"] //窗体大小
                                    , maxmin: true //设置最大最小按钮是否显示
                                    , content: ['../../基础资料/公用基础资料/Gy_Material.html?openType=2&HOrgID=' + HOrgID, 'yes']   //页面加载
                                    , btn: ["确定", "取消"]  //属性定义了弹出层上的按钮数“确定”和“取消
                                    , btn1: function (index, laero) { //当点击“确定”按钮时会被调用
                                        //按钮一  çš„回调
                                        var iframeWindow = window["layui-layer-iframe" + index];//获取弹框页面
                                        var checkStatus = iframeWindow.layui.table.checkStatus("mainTable");//获取选中的数据
                                        OptionData = checkStatus.data[0];  //把选中数据的第一条赋值给OptionData变量
                                        var TaxRate = getHTaxRateByHSupID();
                                        //选中多行时
                                        if (checkStatus.data.length > 1) {
                                            var rowIndex = $(obj.tr).attr("data-index") * 1;  //attr("data-index")用于获取该tr元素上data-index属性的值*1转换类型然后赋值给rowIndex
                                            for (var i = 0; i < checkStatus.data.length; i++) {  //判断选中的数据的长度  ç”¨äºŽéåކcheckStatus.data数组中的每个元素
                                                if (rowIndex + i >= option.data.length) {           //判断rowIndex + i的索引超出了option.data数组的长度,说明option.data数组需要扩展以包含更多行
                                                    var NewRow = {
                                                        "HMaterID": 0, "物料代码": "", "物料名称": "", "规格型号": "", "HUnitID": 0, "计量单位": "", "HWHID": 0, "HWHName": "", "HQty": 1, "HRemark": ""
                                                        , "HPrice": "0", "HTaxPrice": "0", "HMoney": "0", "HDiscountRate": "1", "HRelTaxPrice": "0", "HTaxRate": "0", "HTaxMoney": "0", "HlineTotal": "0", "HlineTotalBB": "0", "HDate": Format(new Date, "yyyy- MM - dd")
                                                    };  // åˆ›å»ºä¸€ä¸ªæ–°çš„包含数组   å…¶åˆå§‹å€¼ä¸ºç©ºæˆ–者0  æˆ–者是时间格式
                    if (event.key == "F7") {//检查触发事件的键盘按键是否是F7键
                        //物料
                        if (obj.event == "HMaterID") {//判断传入的obj对象的event属性是否等于字符串"HMaterID"
                            var HOrgID = $("#HOrgID").val();  //获取id="HOrgID"的元素中获取其值,并将该值存储在变量HOrgID中
                            layer.open({  //打开层
                                type: 2         // //表示弹出层的内容是一个 iframe       ç±»åž‹ä¸º2
                                , skin: "layui-layer-rim" //加上边框
                                , title: "物料列表"  //标题
                                , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                                , shift: 2 //弹出动画
                                , area: ["90%", "90%"] //窗体大小
                                , maxmin: true //设置最大最小按钮是否显示
                                , content: ['../../基础资料/公用基础资料/Gy_Material.html?openType=2&HOrgID=' + HOrgID, 'yes']   //页面加载
                                , btn: ["确定", "取消"]  //属性定义了弹出层上的按钮数“确定”和“取消
                                , btn1: function (index, laero) { //当点击“确定”按钮时会被调用
                                    //按钮一  çš„回调
                                    var iframeWindow = window["layui-layer-iframe" + index];//获取弹框页面
                                    var checkStatus = iframeWindow.layui.table.checkStatus("mainTable");//获取选中的数据
                                    OptionData = checkStatus.data[0];  //把选中数据的第一条赋值给OptionData变量
                                    var TaxRate = getHTaxRateByHSupID();
                                    //选中多行时
                                    if (checkStatus.data.length > 1) {
                                        var rowIndex = $(obj.tr).attr("data-index") * 1;  //attr("data-index")用于获取该tr元素上data-index属性的值*1转换类型然后赋值给rowIndex
                                        for (var i = 0; i < checkStatus.data.length; i++) {  //判断选中的数据的长度  ç”¨äºŽéåކcheckStatus.data数组中的每个元素
                                            if (rowIndex + i >= option.data.length) {           //判断rowIndex + i的索引超出了option.data数组的长度,说明option.data数组需要扩展以包含更多行
                                                var NewRow = {
                                                    "HMaterID": 0, "物料代码": "", "物料名称": "", "规格型号": "", "HUnitID": 0, "计量单位": "", "HWHID": 0, "HWHName": "", "HQty": 1, "HRemark": ""
                                                    , "HPrice": "0", "HTaxPrice": "0", "HMoney": "0", "HDiscountRate": "1", "HRelTaxPrice": "0", "HTaxRate": "0", "HTaxMoney": "0", "HlineTotal": "0", "HlineTotalBB": "0", "HDate": Format(new Date, "yyyy- MM - dd")
                                                };  // åˆ›å»ºä¸€ä¸ªæ–°çš„包含数组   å…¶åˆå§‹å€¼ä¸ºç©ºæˆ–者0  æˆ–者是时间格式
                                                    table.cache["mainTable"].push(NewRow);    //创建新的包含数组  ä¼ å…¥table.cache["mainTable"]数组
                                                    option.data = table.cache["mainTable"];  //把传入 table.cache["mainTable"]数组的值赋值给option.data çš„属性
                                                table.cache["mainTable"].push(NewRow);    //创建新的包含数组  ä¼ å…¥table.cache["mainTable"]数组
                                                option.data = table.cache["mainTable"];  //把传入 table.cache["mainTable"]数组的值赋值给option.data çš„属性
                                                table.render(option);//渲染界面
                                                    table.render(option);//渲染界面
                                                }
                                                var HMaterID = checkStatus.data[i].HItemID; //checkStatus.data数组中的当前元素(索引为i)中获取HItemID属性的值 å¹¶èµ‹å€¼ç»™HMaterID
                                                var resultData = getMaterialByMaterID(HMaterID);  //使用HMaterID作为参数来调用getMaterialByMaterID函数来获取该物料的详细信息
                                                option.data[rowIndex + i].HMaterID = resultData.HMaterID;  //将option.data数组中对应行的HMaterID属性更新为从resultData对象中获取的物料ID
                                                option.data[rowIndex + i].物料代码 = resultData.HMaterNumber; //将option.data数组中对应行的 ç‰©æ–™ä»£ç  å±žæ€§æ›´æ–°ä¸ºä»ŽresultData对象中获取的物料ID
                                                option.data[rowIndex + i].物料名称 = resultData.HMaterName; //将option.data数组中对应行的  ç‰©æ–™åç§°  å±žæ€§æ›´æ–°ä¸ºä»ŽresultData对象中获取的物料ID
                                                option.data[rowIndex + i].规格型号 = resultData.HMaterModel; //将option.data数组中对应行的  è§„格型号  å±žæ€§æ›´æ–°ä¸ºä»ŽresultData对象中获取的物料ID
                                                option.data[rowIndex + i].HUnitID = resultData.HUnitID; //将option.data数组中对应行的 HUnitID å±žæ€§æ›´æ–°ä¸ºä»ŽresultData对象中获取的物料ID
                                                option.data[rowIndex + i].计量单位 = resultData.HUnitName; //将option.data数组中对应行的 è®¡é‡å•位 å±žæ€§æ›´æ–°ä¸ºä»ŽresultData对象中获取的物料ID   æ›´æ–°è®¡é‡å•位属性
                                                option.data[rowIndex + i].HQty = 1;  //将对应行的HQty属性(可能代表数量)设置为1。这表示对于每个选中的物料,其默认数量被设置为1
                                                option.data[rowIndex + i].HTaxRate = TaxRate;
                                            }
                                            var HMaterID = checkStatus.data[i].HItemID; //checkStatus.data数组中的当前元素(索引为i)中获取HItemID属性的值 å¹¶èµ‹å€¼ç»™HMaterID
                                            var resultData = getMaterialByMaterID(HMaterID);  //使用HMaterID作为参数来调用getMaterialByMaterID函数来获取该物料的详细信息
                                            option.data[rowIndex + i].HMaterID = resultData.HMaterID;  //将option.data数组中对应行的HMaterID属性更新为从resultData对象中获取的物料ID
                                            option.data[rowIndex + i].物料代码 = resultData.HMaterNumber; //将option.data数组中对应行的 ç‰©æ–™ä»£ç  å±žæ€§æ›´æ–°ä¸ºä»ŽresultData对象中获取的物料ID
                                            option.data[rowIndex + i].物料名称 = resultData.HMaterName; //将option.data数组中对应行的  ç‰©æ–™åç§°  å±žæ€§æ›´æ–°ä¸ºä»ŽresultData对象中获取的物料ID
                                            option.data[rowIndex + i].规格型号 = resultData.HMaterModel; //将option.data数组中对应行的  è§„格型号  å±žæ€§æ›´æ–°ä¸ºä»ŽresultData对象中获取的物料ID
                                            option.data[rowIndex + i].HUnitID = resultData.HUnitID; //将option.data数组中对应行的 HUnitID å±žæ€§æ›´æ–°ä¸ºä»ŽresultData对象中获取的物料ID
                                            option.data[rowIndex + i].计量单位 = resultData.HUnitName; //将option.data数组中对应行的 è®¡é‡å•位 å±žæ€§æ›´æ–°ä¸ºä»ŽresultData对象中获取的物料ID   æ›´æ–°è®¡é‡å•位属性
                                            option.data[rowIndex + i].HQty = 1;  //将对应行的HQty属性(可能代表数量)设置为1。这表示对于每个选中的物料,其默认数量被设置为1
                                            option.data[rowIndex + i].HTaxRate = TaxRate;
                                            option.data[rowIndex + i].HWHID = resultData.HWHID;
                                            option.data[rowIndex + i].HWHName = resultData["默认仓库"];
                                            table.render(option); //重新渲染表格以显示更新后的数据
                                        }
                                        table.render(option); //重新渲染表格以显示更新后的数据
                                        layer.closeAll();  //关闭所有通过layer
                                        //layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                                    }
                                    layer.closeAll();  //关闭所有通过layer
                                    //layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                                }
                                , btn2: function (index, layero) {   //当点击“取消”按钮时会被调用
                                    //按钮【按钮二】的回调
                                    //return false å¼€å¯è¯¥ä»£ç å¯ç¦æ­¢ç‚¹å‡»è¯¥æŒ‰é’®å…³é—­
                                },
                                end: function () {
                                    //通过供应商id获取税率
                                    var HSupID = $("#HSupID").val();
                                    if (HSupID != 0 && typeof (OptionData.HItemID) != "undefined") {
                                        var Dec = getDecByMaterID(OptionData.HItemID) //获取精度
                                        var HQtyDec = (Dec["HQtyDec"] == null || Dec["HQtyDec"] == 0) ? 4 : Dec["HQtyDec"];  //数量精度
                                        var HPriceDec = (Dec["HPriceDec"] == null || Dec["HPriceDec"] == 0) ? 4 : Dec["HPriceDec"];  //单价精度
                                        var HMoneyDec = (Dec["HMoneyDec"] == null || Dec["HMoneyDec"] == 0) ? 2 : Dec["HMoneyDec"];  //金额精度
                                        $.ajax({
                                            url: GetWEBURL() + "/Gy_Supplier/xg",
                                            //url: "http://localhost:12761/Gy_Supplier/xg",
                                            type: "GET",
                                            data: {
                                                "HInterID": HSupID
                                            },
                                            success: function (d) {
                                                var HTaxRate = parseInt(d.data[0].增值税率) * 0.01;
                                                var HExRate = $("#HExRate").val();                      //汇率
                                                //数据校验合格,重算记录
                                                var HQty = obj.data.HQty * 1;                           //数量
                                                var HPrice = obj.data.HPrice * 1;               //单价
                                                var HMoney = HQty * HPrice;                     //金额=数量*单价
                                                var HTaxMoney = Number((HMoney * HTaxRate));         //税额=金额*税率
                                                var HlineTotal = HMoney + HTaxMoney;            //价税合计=金额+税额
                                                var HTaxPrice = Number((HPrice * (1 + HTaxRate)));        //含税单价=单价*(1+税率)
                                                var HDiscountRate = obj.data.HDiscountRate * 1;   //折扣率
                                                var HRelTaxPrice = Number((HTaxPrice * HDiscountRate));   //实际含税单价=含税单价*折扣率
                                                var HlineTotalBB = Number(((HMoney + HTaxMoney) * HExRate));     //本位币价税合计=(税额+金额)*汇率
                                                //数字精度
                                                HQty = Number(HQty.toFixed(HQtyDec));
                                                HPrice = Number(HPrice.toFixed(HPriceDec));
                                                HMoney = Number(HMoney.toFixed(HMoneyDec));
                                                HTaxMoney = Number(HTaxMoney.toFixed(HMoneyDec));
                                                HlineTotal = Number(HlineTotal.toFixed(HMoneyDec));
                                                HTaxPrice = Number(HTaxPrice.toFixed(HPriceDec));
                                                HRelTaxPrice = Number(HRelTaxPrice.toFixed(HPriceDec));
                                                HlineTotalBB = Number(HlineTotalBB.toFixed(HMoneyDec));
                                                obj.update({ //更新表格数据
                                                    "HMaterID": OptionData.HItemID             //设置HItemID的值为“HBillNo”字段的值HItemID`的值
                                                    , "物料代码": OptionData.物料代码
                                                    , "物料名称": OptionData.物料名称
                                                    , "规格型号": OptionData.规格型号
                                                    , "HUnitID": OptionData.HUnitID
                                                    , "计量单位": OptionData.计量单位名称
                                                    , "HTaxRate": HTaxRate * 100
                                                    , HQty: HQty                               //更新HQty字段,HQty
                                                    , HPrice: HPrice                         //更新HPrice字段,HPrice
                                                    , HMoney: HMoney                      //更新HMoney字段,HMoney
                                                    , HTaxMoney: HTaxMoney                  //更新HTaxMoney字段,HTaxMoney
                                                    , HlineTotal: HlineTotal             //更新HlineTotal字段,HlineTotal
                                                    , HTaxPrice, HTaxPrice                   //更新HTaxPrice字段,HTaxPrice
                                                    , HRelTaxPrice: HRelTaxPrice            //更新HRelTaxPrice字段,其值来自变量HRelTaxPrice
                                                    , HlineTotalBB: HlineTotalBB              //更新HlineTotalBB字段,其值来自变量HlineTotalBB
                                                })
                                            }
                                        });
                                    } else {
                                        obj.update({ //更新表格数据
                                            "HMaterID": OptionData.HItemID             //设置HItemID的值为“HBillNo”字段的值HItemID`的值
                                            , "物料代码": OptionData.物料代码
                                            , "物料名称": OptionData.物料名称
                                            , "规格型号": OptionData.规格型号
                                            , "HUnitID": OptionData.HUnitID
                                    , btn2: function (index, layero) {   //当点击“取消”按钮时会被调用
                                        //按钮【按钮二】的回调
                                        //return false å¼€å¯è¯¥ä»£ç å¯ç¦æ­¢ç‚¹å‡»è¯¥æŒ‰é’®å…³é—­
                                    },
                                    end: function () {
                                        //通过供应商id获取税率
                                        var HSupID = $("#HSupID").val();
                                        if (HSupID != 0 && typeof (OptionData.HItemID) != "undefined") {
                                            var Dec = getDecByMaterID(OptionData.HItemID) //获取精度
                                            var HQtyDec = (Dec["HQtyDec"] == null || Dec["HQtyDec"] == 0) ? 4 : Dec["HQtyDec"];  //数量精度
                                            var HPriceDec = (Dec["HPriceDec"] == null || Dec["HPriceDec"] == 0) ? 4 : Dec["HPriceDec"];  //单价精度
                                            var HMoneyDec = (Dec["HMoneyDec"] == null || Dec["HMoneyDec"] == 0) ? 2 : Dec["HMoneyDec"];  //金额精度
                                            $.ajax({
                                                url: GetWEBURL() + "/Gy_Supplier/xg",
                                                //url: "http://localhost:12761/Gy_Supplier/xg",
                                                type: "GET",
                                                data: {
                                                    "HInterID": HSupID
                                                },
                                                success: function (d) {
                                                    if (d.code == 1) { // å¦‚果服务器返回的数据中的`code字段等于1,这可能表示审核操作成功执行
                                                        HTaxRate = 0;
                                                        if (typeof (d.data[0].增值税率) == undefined || d.data[0].增值税率 == null) {
                                                            layer.alert("发生错误数据库表增值税率字段有误!", { icon: 5 });
                                                        } else {
                                                            HTaxRate = parseInt(d.data[0].增值税率);
                                                        }
                                                        var HTaxRate = parseInt(d.data[0].增值税率) * 0.01;
                                                        var HExRate = $("#HExRate").val();                      //汇率
                                                        //数据校验合格,重算记录
                                                        var HQty = obj.data.HQty * 1;                           //数量
                                                        var HPrice = obj.data.HPrice * 1;               //单价
                                                        var HMoney = HQty * HPrice;                     //金额=数量*单价
                                                        var HTaxMoney = Number((HMoney * HTaxRate));         //税额=金额*税率
                                                        var HlineTotal = HMoney + HTaxMoney;            //价税合计=金额+税额
                                                        var HTaxPrice = Number((HPrice * (1 + HTaxRate)));        //含税单价=单价*(1+税率)
                                                        var HDiscountRate = obj.data.HDiscountRate * 1;   //折扣率
                                                        var HRelTaxPrice = Number((HTaxPrice * HDiscountRate));   //实际含税单价=含税单价*折扣率
                                                        var HlineTotalBB = Number(((HMoney + HTaxMoney) * HExRate));     //本位币价税合计=(税额+金额)*汇率
                                                        //数字精度
                                                        HQty = Number(HQty.toFixed(HQtyDec));
                                                        HPrice = Number(HPrice.toFixed(HPriceDec));
                                                        HMoney = Number(HMoney.toFixed(HMoneyDec));
                                                        HTaxMoney = Number(HTaxMoney.toFixed(HMoneyDec));
                                                        HlineTotal = Number(HlineTotal.toFixed(HMoneyDec));
                                                        HTaxPrice = Number(HTaxPrice.toFixed(HPriceDec));
                                                        HRelTaxPrice = Number(HRelTaxPrice.toFixed(HPriceDec));
                                                        HlineTotalBB = Number(HlineTotalBB.toFixed(HMoneyDec));
                                                        obj.update({ //更新表格数据
                                                            "HMaterID": OptionData.HItemID             //设置HItemID的值为“HBillNo”字段的值HItemID`的值
                                                            , "物料代码": OptionData.物料代码
                                                            , "物料名称": OptionData.物料名称
                                                            , "规格型号": OptionData.规格型号
                                                            , "HUnitID": OptionData.HUnitID
                                                            , "计量单位": OptionData.计量单位名称
                                                            , "HTaxRate": HTaxRate * 100
                                                            , HQty: HQty                               //更新HQty字段,HQty
                                                            , HPrice: HPrice                         //更新HPrice字段,HPrice
                                                            , HMoney: HMoney                      //更新HMoney字段,HMoney
                                                            , HTaxMoney: HTaxMoney                  //更新HTaxMoney字段,HTaxMoney
                                                            , HlineTotal: HlineTotal             //更新HlineTotal字段,HlineTotal
                                                            , HTaxPrice, HTaxPrice                   //更新HTaxPrice字段,HTaxPrice
                                                            , HRelTaxPrice: HRelTaxPrice            //更新HRelTaxPrice字段,其值来自变量HRelTaxPrice
                                                            , HlineTotalBB: HlineTotalBB              //更新HlineTotalBB字段,其值来自变量HlineTotalBB
                                                        })
                                                    }
                                                    else {
                                                        layer.alert(result.Message, { icon: 5, btn: ['退出'], time: 100000, offset: 't' }); //result.msg对象,提示弹窗 ç±»åž‹ä¸º5, æŒ‰é’®ï¼Œå’ŒæŒ‰é’®çš„名称为退出  æ—¶é—´ ä¸º100秒,以及偏移量(`offset: 't'
                                                    }
                                                }
                                            });
                                        } else {
                                            obj.update({ //更新表格数据
                                                "HMaterID": OptionData.HItemID             //设置HItemID的值为“HBillNo”字段的值HItemID`的值
                                                , "物料代码": OptionData.物料代码
                                                , "物料名称": OptionData.物料名称
                                                , "规格型号": OptionData.规格型号
                                                , "HUnitID": OptionData.HUnitID
                                                , "计量单位": OptionData.计量单位名称
                                            })
                                        }
                                    }
                                });
                            }
                            //计量单位
                            if (obj.event == "HUnitID") {  //判断  obj.event事件 æ˜¯å¦ç­‰äºŽå­—符串 'HUnitID'。如果等于,则执行if循环
                                layer.open({
                                    type: 2             //表示弹出层的内容是一个 iframe       ç±»åž‹ä¸º2
                                    , skin: "layui-layer-rim"        //加上边框
                                    , title: "计量单位列表"           //标题
                                    , closeBtn: 1                    //窗体右上角关闭 çš„ æ ·å¼
                                    , shift: 2                  //弹出动画
                                    , area: ["90%", "90%"]          //窗体大小
                                    , maxmin: true                  //设置最大最小按钮是否显示
                                    , content: ['../../基础资料/公用基础资料/Gy_Unit.html', 'yes']   //设置 iframe çš„ URL,URL ä¸­åŒ…含了查询参数,来调用所需要的值
                                    , 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("请选择一条数据");  //提示请选中一条
                                        }
                                        OptionData = checkStatus.data[0];
                                        //更新表格缓存的数据
                                        obj.update({
                                            "HUnitID": checkStatus.data[0].HItemID
                                            , "计量单位": checkStatus.data[0].计量单位名称
                                        })
                                        layer.close(index);//关闭弹窗
                                    }
                                    , end: function () {
                                        obj.update({
                                            "HUnitID": OptionData.HItemID
                                            , "计量单位": OptionData.计量单位名称
                                        })
                                    }
                                }
                            });
                                })
                            }
                            //仓库
                            if (obj.event == "HWHID") {  //判断obj.event事件  çš„字符串是否==HWHID
                                var HOrgName = $('select[name="HOrgID"] option:selected').text();
                                layer.open({            //打开层
                                    type: 2      //表示弹出层的内容是一个 iframe       ç±»åž‹ä¸º2
                                    , skin: "layui-layer-rim" //加上边框
                                    , title: "计量单位列表"  //标题
                                    , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                                    , shift: 2   //弹出动画
                                    , area: ["90%", "90%"] //窗体大小
                                    , maxmin: true //设置最大最小按钮是否显示
                                    , content: ['../../基础资料/公用基础资料/Gy_Warehouse.html?type=Warehouse&HOrgName=' + HOrgName, 'yes']//设置 iframe çš„ URL,URL ä¸­åŒ…含了查询参数,来调用所需要的值
                                    , 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("请选择一条数据");
                                        }
                                        OptionData = checkStatus.data[0];
                                        //更新表格缓存的数据
                                        obj.update({
                                            "HWHID": checkStatus.data[0].HItemID
                                            , "HWHName": checkStatus.data[0].仓库名称
                                        })
                                        layer.close(index);//关闭弹窗
                                    }
                                    , end: function () {
                                        obj.update({
                                            "HWHID": OptionData.HItemID
                                            , "HWHName": OptionData.仓库名称
                                        })
                                    }
                                })
                            }
                            obj.event = ""; //把boj.event属性  åˆå§‹åŒ–为空
                            return false;
                        }
                        //计量单位
                        if (obj.event == "HUnitID") {  //判断  obj.event事件 æ˜¯å¦ç­‰äºŽå­—符串 'HUnitID'。如果等于,则执行if循环
                            layer.open({
                                type: 2             //表示弹出层的内容是一个 iframe       ç±»åž‹ä¸º2
                                , skin: "layui-layer-rim"        //加上边框
                                , title: "计量单位列表"           //标题
                                , closeBtn: 1                    //窗体右上角关闭 çš„ æ ·å¼
                                , shift: 2                  //弹出动画
                                , area: ["90%", "90%"]          //窗体大小
                                , maxmin: true                  //设置最大最小按钮是否显示
                                , content: ['../../基础资料/公用基础资料/Gy_Unit.html', 'yes']   //设置 iframe çš„ URL,URL ä¸­åŒ…含了查询参数,来调用所需要的值
                                , btn: ["确定", "取消"]        //自定义选择按钮  å…¶æŒ‰é’®çš„名称为  ç¡®å®šï¼Œå–消
                                , btn1: function (index, laero) {  //按钮监听 è°ƒç”¨å›žè°ƒ
                        if (event.key == "F8") {//检查触发事件的键盘按键是否是F7键
                            //物料
                            if (obj.event == "HMaterID") {//判断传入的obj对象的event属性是否等于字符串"HMaterID"
                                var HOrgID = $("#HOrgID").val();  //获取id="HOrgID"的元素中获取其值,并将该值存储在变量HOrgID中
                                layer.open({  //打开层
                                    type: 2         // //表示弹出层的内容是一个 iframe       ç±»åž‹ä¸º2
                                    , skin: "layui-layer-rim" //加上边框
                                    , title: "物料列表"  //标题
                                    , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                                    , shift: 2 //弹出动画
                                    , area: ["90%", "90%"] //窗体大小
                                    , maxmin: true //设置最大最小按钮是否显示
                                    , content: ['../../基础资料/公用基础资料/Gy_Material.html?openType=2&HOrgID=' + HOrgID + '&openType2=POOrder', 'yes']   //页面加载
                                    , btn: ["确定", "取消"]  //属性定义了弹出层上的按钮数“确定”和“取消
                                    , btn1: function (index, laero) { //当点击“确定”按钮时会被调用
                                        //按钮一  çš„回调
                                        var iframeWindow = window["layui-layer-iframe" + index];//获取弹框页面
                                        var checkStatus = iframeWindow.layui.table.checkStatus("mainTable");//获取选中的数据
                                        OptionData = checkStatus.data[0];  //把选中数据的第一条赋值给OptionData变量
                                        var TaxRate = getHTaxRateByHSupID();
                                        //选中多行时
                                        if (checkStatus.data.length > 1) {
                                            var rowIndex = $(obj.tr).attr("data-index") * 1;  //attr("data-index")用于获取该tr元素上data-index属性的值*1转换类型然后赋值给rowIndex
                                            for (var i = 0; i < checkStatus.data.length; i++) {  //判断选中的数据的长度  ç”¨äºŽéåކcheckStatus.data数组中的每个元素
                                                if (rowIndex + i >= option.data.length) {           //判断rowIndex + i的索引超出了option.data数组的长度,说明option.data数组需要扩展以包含更多行
                                                    var NewRow = {
                                                        "HMaterID": 0, "物料代码": "", "物料名称": "", "规格型号": "", "HUnitID": 0, "计量单位": "", "HWHID": 0, "HWHName": "", "HQty": 1, "HRemark": ""
                                                        , "HPrice": "0", "HTaxPrice": "0", "HMoney": "0", "HDiscountRate": "1", "HRelTaxPrice": "0", "HTaxRate": "0", "HTaxMoney": "0", "HlineTotal": "0", "HlineTotalBB": "0", "HDate": Format(new Date, "yyyy- MM - dd")
                                                    };  // åˆ›å»ºä¸€ä¸ªæ–°çš„包含数组   å…¶åˆå§‹å€¼ä¸ºç©ºæˆ–者0  æˆ–者是时间格式
                                                    table.cache["mainTable"].push(NewRow);    //创建新的包含数组  ä¼ å…¥table.cache["mainTable"]数组
                                                    option.data = table.cache["mainTable"];  //把传入 table.cache["mainTable"]数组的值赋值给option.data çš„属性
                                                    table.render(option);//渲染界面
                                                }
                                                var HMaterID = checkStatus.data[i].HItemID; //checkStatus.data数组中的当前元素(索引为i)中获取HItemID属性的值 å¹¶èµ‹å€¼ç»™HMaterID
                                                var resultData = getMaterialByMaterID(HMaterID);  //使用HMaterID作为参数来调用getMaterialByMaterID函数来获取该物料的详细信息
                                                option.data[rowIndex + i].HMaterID = resultData.HMaterID;  //将option.data数组中对应行的HMaterID属性更新为从resultData对象中获取的物料ID
                                                option.data[rowIndex + i].物料代码 = resultData.HMaterNumber; //将option.data数组中对应行的 ç‰©æ–™ä»£ç  å±žæ€§æ›´æ–°ä¸ºä»ŽresultData对象中获取的物料ID
                                                option.data[rowIndex + i].物料名称 = resultData.HMaterName; //将option.data数组中对应行的  ç‰©æ–™åç§°  å±žæ€§æ›´æ–°ä¸ºä»ŽresultData对象中获取的物料ID
                                                option.data[rowIndex + i].规格型号 = resultData.HMaterModel; //将option.data数组中对应行的  è§„格型号  å±žæ€§æ›´æ–°ä¸ºä»ŽresultData对象中获取的物料ID
                                                option.data[rowIndex + i].HUnitID = resultData.HPOUnitID; //将option.data数组中对应行的 HUnitID å±žæ€§æ›´æ–°ä¸ºä»ŽresultData对象中获取的物料ID
                                                option.data[rowIndex + i].计量单位 = resultData.HPOUnitName; //将option.data数组中对应行的 è®¡é‡å•位 å±žæ€§æ›´æ–°ä¸ºä»ŽresultData对象中获取的物料ID   æ›´æ–°è®¡é‡å•位属性
                                                option.data[rowIndex + i].HQty = 1;  //将对应行的HQty属性(可能代表数量)设置为1。这表示对于每个选中的物料,其默认数量被设置为1
                                                option.data[rowIndex + i].HTaxRate = TaxRate;
                                            }
                                            table.render(option); //重新渲染表格以显示更新后的数据
                                        }
                                        layer.closeAll();  //关闭所有通过layer
                                        //layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                                    }
                                    , btn2: function (index, layero) {   //当点击“取消”按钮时会被调用
                                        //按钮【按钮二】的回调
                                        //return false å¼€å¯è¯¥ä»£ç å¯ç¦æ­¢ç‚¹å‡»è¯¥æŒ‰é’®å…³é—­
                                    },
                                    end: function () {
                                        //通过供应商id获取税率
                                        var HSupID = $("#HSupID").val();
                                        if (HSupID != 0 && typeof (OptionData.HItemID) != "undefined") {
                                            var Dec = getDecByMaterID(OptionData.HItemID) //获取精度
                                            var HQtyDec = (Dec["HQtyDec"] == null || Dec["HQtyDec"] == 0) ? 4 : Dec["HQtyDec"];  //数量精度
                                            var HPriceDec = (Dec["HPriceDec"] == null || Dec["HPriceDec"] == 0) ? 4 : Dec["HPriceDec"];  //单价精度
                                            var HMoneyDec = (Dec["HMoneyDec"] == null || Dec["HMoneyDec"] == 0) ? 2 : Dec["HMoneyDec"];  //金额精度
                                            $.ajax({
                                                url: GetWEBURL() + "/Gy_Supplier/xg",
                                                //url: "http://localhost:12761/Gy_Supplier/xg",
                                                type: "GET",
                                                data: {
                                                    "HInterID": HSupID
                                                },
                                                success: function (d) {
                                                    if (d.code == 1) { // å¦‚果服务器返回的数据中的`code字段等于1,这可能表示审核操作成功执行
                                                        HTaxRate = 0;
                                                        if (typeof (d.data[0].增值税率) == undefined || d.data[0].增值税率 == null) {
                                                            layer.alert("发生错误数据库表增值税率字段有误!", { icon: 5 });
                                                        } else {
                                                            HTaxRate = parseInt(d.data[0].增值税率);
                                                        }
                                                        var HTaxRate = parseInt(d.data[0].增值税率) * 0.01;
                                                        var HExRate = $("#HExRate").val();                      //汇率
                                                        //数据校验合格,重算记录
                                                        var HQty = obj.data.HQty * 1;                           //数量
                                                        var HPrice = obj.data.HPrice * 1;               //单价
                                                        var HMoney = HQty * HPrice;                     //金额=数量*单价
                                                        var HTaxMoney = Number((HMoney * HTaxRate));         //税额=金额*税率
                                                        var HlineTotal = HMoney + HTaxMoney;            //价税合计=金额+税额
                                                        var HTaxPrice = Number((HPrice * (1 + HTaxRate)));        //含税单价=单价*(1+税率)
                                                        var HDiscountRate = obj.data.HDiscountRate * 1;   //折扣率
                                                        var HRelTaxPrice = Number((HTaxPrice * HDiscountRate));   //实际含税单价=含税单价*折扣率
                                                        var HlineTotalBB = Number(((HMoney + HTaxMoney) * HExRate));     //本位币价税合计=(税额+金额)*汇率
                                                        //数字精度
                                                        HQty = Number(HQty.toFixed(HQtyDec));
                                                        HPrice = Number(HPrice.toFixed(HPriceDec));
                                                        HMoney = Number(HMoney.toFixed(HMoneyDec));
                                                        HTaxMoney = Number(HTaxMoney.toFixed(HMoneyDec));
                                                        HlineTotal = Number(HlineTotal.toFixed(HMoneyDec));
                                                        HTaxPrice = Number(HTaxPrice.toFixed(HPriceDec));
                                                        HRelTaxPrice = Number(HRelTaxPrice.toFixed(HPriceDec));
                                                        HlineTotalBB = Number(HlineTotalBB.toFixed(HMoneyDec));
                                                        obj.update({ //更新表格数据
                                                            "HMaterID": OptionData.HItemID             //设置HItemID的值为“HBillNo”字段的值HItemID`的值
                                                            , "物料代码": OptionData.物料代码
                                                            , "物料名称": OptionData.物料名称
                                                            , "规格型号": OptionData.规格型号
                                                            , "HUnitID": OptionData.HPOUnitID
                                                            , "计量单位": OptionData.采购计量单位
                                                            , "HTaxRate": HTaxRate * 100
                                                            , HQty: HQty                               //更新HQty字段,HQty
                                                            , HPrice: HPrice                         //更新HPrice字段,HPrice
                                                            , HMoney: HMoney                      //更新HMoney字段,HMoney
                                                            , HTaxMoney: HTaxMoney                  //更新HTaxMoney字段,HTaxMoney
                                                            , HlineTotal: HlineTotal             //更新HlineTotal字段,HlineTotal
                                                            , HTaxPrice, HTaxPrice                   //更新HTaxPrice字段,HTaxPrice
                                                            , HRelTaxPrice: HRelTaxPrice            //更新HRelTaxPrice字段,其值来自变量HRelTaxPrice
                                                            , HlineTotalBB: HlineTotalBB              //更新HlineTotalBB字段,其值来自变量HlineTotalBB
                                                        })
                                                    }
                                                    else {
                                                        layer.alert(result.Message, { icon: 5, btn: ['退出'], time: 100000, offset: 't' }); //result.msg对象,提示弹窗 ç±»åž‹ä¸º5, æŒ‰é’®ï¼Œå’ŒæŒ‰é’®çš„名称为退出  æ—¶é—´ ä¸º100秒,以及偏移量(`offset: 't'
                                                    }
                                                }
                                            });
                                        } else {
                                            obj.update({ //更新表格数据
                                                "HMaterID": OptionData.HItemID             //设置HItemID的值为“HBillNo”字段的值HItemID`的值
                                                , "物料代码": OptionData.物料代码
                                                , "物料名称": OptionData.物料名称
                                                , "规格型号": OptionData.规格型号
                                                , "HUnitID": OptionData.HPOUnitID
                                                , "计量单位": OptionData.采购计量单位
                                            })
                                        }
                                    }
                                });
                            }
                            //计量单位
                            if (obj.event == "HUnitID") {  //判断  obj.event事件 æ˜¯å¦ç­‰äºŽå­—符串 'HUnitID'。如果等于,则执行if循环
                                layer.open({
                                    type: 2             //表示弹出层的内容是一个 iframe       ç±»åž‹ä¸º2
                                    , skin: "layui-layer-rim"        //加上边框
                                    , title: "计量单位列表"           //标题
                                    , closeBtn: 1                    //窗体右上角关闭 çš„ æ ·å¼
                                    , shift: 2                  //弹出动画
                                    , area: ["90%", "90%"]          //窗体大小
                                    , maxmin: true                  //设置最大最小按钮是否显示
                                    , content: ['../../基础资料/公用基础资料/Gy_Unit.html', 'yes']   //设置 iframe çš„ URL,URL ä¸­åŒ…含了查询参数,来调用所需要的值
                                    , 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("请选择一条数据");  //提示请选中一条
                                        }
                                        OptionData = checkStatus.data[0];
                                        //更新表格缓存的数据
                                        obj.update({
                                            "HUnitID": checkStatus.data[0].HItemID
                                            , "计量单位": checkStatus.data[0].计量单位名称
                                        })
                                        layer.close(index);//关闭弹窗
                                    }
                                    , end: function () {
                                        obj.update({
                                            "HUnitID": OptionData.HItemID
                                            , "计量单位": OptionData.计量单位名称
                                        })
                                    }
                                })
                            }
                            //仓库
                            if (obj.event == "HWHID") {  //判断obj.event事件  çš„字符串是否==HWHID
                                var HOrgName = $('select[name="HOrgID"] option:selected').text();
                                layer.open({            //打开层
                                    type: 2      //表示弹出层的内容是一个 iframe       ç±»åž‹ä¸º2
                                    , skin: "layui-layer-rim" //加上边框
                                    , title: "计量单位列表"  //标题
                                    , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                                    , shift: 2   //弹出动画
                                    , area: ["90%", "90%"] //窗体大小
                                    , maxmin: true //设置最大最小按钮是否显示
                                    , content: ['../../基础资料/公用基础资料/Gy_Warehouse.html?type=Warehouse&HOrgName=' + HOrgName, 'yes']//设置 iframe çš„ URL,URL ä¸­åŒ…含了查询参数,来调用所需要的值
                                    , 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("请选择一条数据");
                                        }
                                        OptionData = checkStatus.data[0];
                                        //更新表格缓存的数据
                                        obj.update({
                                            "HWHID": checkStatus.data[0].HItemID
                                            , "HWHName": checkStatus.data[0].仓库名称
                                        })
                                        layer.close(index);//关闭弹窗
                                    }
                                    , end: function () {
                                        obj.update({
                                            "HWHID": OptionData.HItemID
                                            , "HWHName": OptionData.仓库名称
                                        })
                                    }
                                })
                            }
                            obj.event = ""; //把boj.event属性  åˆå§‹åŒ–为空
                            return false;
                        }
                        // å¤„理资源的代码
                    } catch (error) {
                        // å¤„理异常的代码
                        layer.alert("发生错误!" + error, { icon: 5 });
                    }
                })
                $('.layui-table-box tbody td[data-field="物料代码"]').off('dblclick').on('dblclick', function () {
                    try {
                        //手动失焦
                        var element = document.getElementById("HBillNo");
                        element.focus();
                        var HOrgID = $("#HOrgID").val();  //获取id="HOrgID"的元素中获取其值,并将该值存储在变量HOrgID中
                        layer.open({  //打开层
                            type: 2         // //表示弹出层的内容是一个 iframe       ç±»åž‹ä¸º2
                            , skin: "layui-layer-rim" //加上边框
                            , title: "物料列表"  //标题
                            , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                            , shift: 2 //弹出动画
                            , area: ["90%", "90%"] //窗体大小
                            , maxmin: true //设置最大最小按钮是否显示
                            , content: ['../../基础资料/公用基础资料/Gy_Material.html?openType=2&HOrgID=' + HOrgID + '&openType2=POOrder', 'yes']   //页面加载
                            , btn: ["确定", "取消"]  //属性定义了弹出层上的按钮数“确定”和“取消
                            , btn1: function (index, laero) { //当点击“确定”按钮时会被调用
                                //按钮一  çš„回调
                                var iframeWindow = window["layui-layer-iframe" + index];//获取弹框页面
                                var checkStatus = iframeWindow.layui.table.checkStatus("mainTable");//获取选中的数据
                                OptionData = checkStatus.data[0];  //把选中数据的第一条赋值给OptionData变量
                                var TaxRate = getHTaxRateByHSupID();
                                //选中多行时
                                if (checkStatus.data.length > 1) {
                                    var rowIndex = $(obj.tr).attr("data-index") * 1;  //attr("data-index")用于获取该tr元素上data-index属性的值*1转换类型然后赋值给rowIndex
                                    for (var i = 0; i < checkStatus.data.length; i++) {  //判断选中的数据的长度  ç”¨äºŽéåކcheckStatus.data数组中的每个元素
                                        if (rowIndex + i >= option.data.length) {           //判断rowIndex + i的索引超出了option.data数组的长度,说明option.data数组需要扩展以包含更多行
                                            var NewRow = {
                                                "HMaterID": 0, "物料代码": "", "物料名称": "", "规格型号": "", "HUnitID": 0, "计量单位": "", "HWHID": 0, "HWHName": "", "HQty": 1, "HRemark": ""
                                                , "HPrice": "0", "HTaxPrice": "0", "HMoney": "0", "HDiscountRate": "1", "HRelTaxPrice": "0", "HTaxRate": "0", "HTaxMoney": "0", "HlineTotal": "0", "HlineTotalBB": "0", "HDate": Format(new Date, "yyyy- MM - dd")
                                            };  // åˆ›å»ºä¸€ä¸ªæ–°çš„包含数组   å…¶åˆå§‹å€¼ä¸ºç©ºæˆ–者0  æˆ–者是时间格式
                                            table.cache["mainTable"].push(NewRow);    //创建新的包含数组  ä¼ å…¥table.cache["mainTable"]数组
                                            option.data = table.cache["mainTable"];  //把传入 table.cache["mainTable"]数组的值赋值给option.data çš„属性
                                            table.render(option);//渲染界面
                                        }
                                        var HMaterID = checkStatus.data[i].HItemID; //checkStatus.data数组中的当前元素(索引为i)中获取HItemID属性的值 å¹¶èµ‹å€¼ç»™HMaterID
                                        var resultData = getMaterialByMaterID(HMaterID);  //使用HMaterID作为参数来调用getMaterialByMaterID函数来获取该物料的详细信息
                                        option.data[rowIndex + i].HMaterID = resultData.HMaterID;  //将option.data数组中对应行的HMaterID属性更新为从resultData对象中获取的物料ID
                                        option.data[rowIndex + i].物料代码 = resultData.HMaterNumber; //将option.data数组中对应行的 ç‰©æ–™ä»£ç  å±žæ€§æ›´æ–°ä¸ºä»ŽresultData对象中获取的物料ID
                                        option.data[rowIndex + i].物料名称 = resultData.HMaterName; //将option.data数组中对应行的  ç‰©æ–™åç§°  å±žæ€§æ›´æ–°ä¸ºä»ŽresultData对象中获取的物料ID
                                        option.data[rowIndex + i].规格型号 = resultData.HMaterModel; //将option.data数组中对应行的  è§„格型号  å±žæ€§æ›´æ–°ä¸ºä»ŽresultData对象中获取的物料ID
                                        option.data[rowIndex + i].HUnitID = resultData.HUnitID; //将option.data数组中对应行的 HUnitID å±žæ€§æ›´æ–°ä¸ºä»ŽresultData对象中获取的物料ID
                                        option.data[rowIndex + i].计量单位 = resultData.HUnitName; //将option.data数组中对应行的 è®¡é‡å•位 å±žæ€§æ›´æ–°ä¸ºä»ŽresultData对象中获取的物料ID   æ›´æ–°è®¡é‡å•位属性
                                        option.data[rowIndex + i].HQty = 1;  //将对应行的HQty属性(可能代表数量)设置为1。这表示对于每个选中的物料,其默认数量被设置为1
                                        option.data[rowIndex + i].HTaxRate = TaxRate;
                                    }
                                    table.render(option); //重新渲染表格以显示更新后的数据
                                }
                                layer.closeAll();  //关闭所有通过layer
                                //layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                            }
                            , btn2: function (index, layero) {   //当点击“取消”按钮时会被调用
                                //按钮【按钮二】的回调
                                //return false å¼€å¯è¯¥ä»£ç å¯ç¦æ­¢ç‚¹å‡»è¯¥æŒ‰é’®å…³é—­
                            },
                            end: function () {
                                //通过供应商id获取税率
                                var HSupID = $("#HSupID").val();
                                if (HSupID != 0 && typeof (OptionData.HItemID) != "undefined") {
                                    var Dec = getDecByMaterID(OptionData.HItemID) //获取精度
                                    var HQtyDec = (Dec["HQtyDec"] == null || Dec["HQtyDec"] == 0) ? 4 : Dec["HQtyDec"];  //数量精度
                                    var HPriceDec = (Dec["HPriceDec"] == null || Dec["HPriceDec"] == 0) ? 4 : Dec["HPriceDec"];  //单价精度
                                    var HMoneyDec = (Dec["HMoneyDec"] == null || Dec["HMoneyDec"] == 0) ? 2 : Dec["HMoneyDec"];  //金额精度
                                    $.ajax({
                                        url: GetWEBURL() + "/Gy_Supplier/xg",
                                        //url: "http://localhost:12761/Gy_Supplier/xg",
                                        type: "GET",
                                        data: {
                                            "HInterID": HSupID
                                        },
                                        success: function (d) {
                                            var HTaxRate = 0;
                                            if (typeof (d.data[0].增值税率) == undefined) {
                                                layer.alert("发生错误数据库表无增值税率字段!", { icon: 5 });
                                            } else {
                                                HTaxRate = parseInt(d.data[0].增值税率) * 0.01;
                                            }
                                            var HExRate = $("#HExRate").val();                      //汇率
                                            //数据校验合格,重算记录
                                            var HQty = obj.data.HQty * 1;                           //数量
                                            var HPrice = obj.data.HPrice * 1;               //单价
                                            var HMoney = HQty * HPrice;                     //金额=数量*单价
                                            var HTaxMoney = Number((HMoney * HTaxRate));         //税额=金额*税率
                                            var HlineTotal = HMoney + HTaxMoney;            //价税合计=金额+税额
                                            var HTaxPrice = Number((HPrice * (1 + HTaxRate)));        //含税单价=单价*(1+税率)
                                            var HDiscountRate = obj.data.HDiscountRate * 1;   //折扣率
                                            var HRelTaxPrice = Number((HTaxPrice * HDiscountRate));   //实际含税单价=含税单价*折扣率
                                            var HlineTotalBB = Number(((HMoney + HTaxMoney) * HExRate));     //本位币价税合计=(税额+金额)*汇率
                                            //数字精度
                                            HQty = Number(HQty.toFixed(HQtyDec));
                                            HPrice = Number(HPrice.toFixed(HPriceDec));
                                            HMoney = Number(HMoney.toFixed(HMoneyDec));
                                            HTaxMoney = Number(HTaxMoney.toFixed(HMoneyDec));
                                            HlineTotal = Number(HlineTotal.toFixed(HMoneyDec));
                                            HTaxPrice = Number(HTaxPrice.toFixed(HPriceDec));
                                            HRelTaxPrice = Number(HRelTaxPrice.toFixed(HPriceDec));
                                            HlineTotalBB = Number(HlineTotalBB.toFixed(HMoneyDec));
                                            obj.update({ //更新表格数据
                                                "HMaterID": OptionData.HItemID             //设置HItemID的值为“HBillNo”字段的值HItemID`的值
                                                , "物料代码": OptionData.物料代码
                                                , "物料名称": OptionData.物料名称
                                                , "规格型号": OptionData.规格型号
                                                , "HUnitID": OptionData.HUnitID
                                                , "计量单位": OptionData.计量单位名称
                                                , "HTaxRate": HTaxRate * 100
                                                , HQty: HQty                               //更新HQty字段,HQty
                                                , HPrice: HPrice                         //更新HPrice字段,HPrice
                                                , HMoney: HMoney                      //更新HMoney字段,HMoney
                                                , HTaxMoney: HTaxMoney                  //更新HTaxMoney字段,HTaxMoney
                                                , HlineTotal: HlineTotal             //更新HlineTotal字段,HlineTotal
                                                , HTaxPrice, HTaxPrice                   //更新HTaxPrice字段,HTaxPrice
                                                , HRelTaxPrice: HRelTaxPrice            //更新HRelTaxPrice字段,其值来自变量HRelTaxPrice
                                                , HlineTotalBB: HlineTotalBB              //更新HlineTotalBB字段,其值来自变量HlineTotalBB
                                            })
                                        }
                                    });
                                } else {
                                    obj.update({ //更新表格数据
                                        "HMaterID": OptionData.HItemID             //设置HItemID的值为“HBillNo”字段的值HItemID`的值
                                        , "物料代码": OptionData.物料代码
                                        , "物料名称": OptionData.物料名称
                                        , "规格型号": OptionData.规格型号
                                        , "HUnitID": OptionData.HUnitID
                                        , "计量单位": OptionData.计量单位名称
                                    })
                                }
                            }
                        });
                        obj.event = "";
                    } catch (error) {
                        layer.alert("发生错误!" + error, { icon: 5 });
                    }
                });
                $('.layui-table-box tbody td[data-field="HWHName"]').off('dblclick').on('dblclick', function () {
                    try {
                        //手动失焦
                        var element = document.getElementById("HBillNo");
                        element.focus();
                        var HOrgName = $('select[name="HOrgID"] option:selected').text();
                        layer.open({            //打开层
                            type: 2      //表示弹出层的内容是一个 iframe       ç±»åž‹ä¸º2
                            , skin: "layui-layer-rim" //加上边框
                            , title: "计量单位列表"  //标题
                            , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                            , shift: 2   //弹出动画
                            , area: ["90%", "90%"] //窗体大小
                            , maxmin: true //设置最大最小按钮是否显示
                            , content: ['../../基础资料/公用基础资料/Gy_Warehouse.html?type=Warehouse&HOrgName=' + HOrgName, 'yes']//设置 iframe çš„ URL,URL ä¸­åŒ…含了查询参数,来调用所需要的值
                            , 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("请选择一条数据");  //提示请选中一条
                                if (checkStatus.data.length != 1) {
                                    return layer.msg("请选择一条数据");
                                }
                                OptionData = checkStatus.data[0];
                                //更新表格缓存的数据
                                obj.update({
                                    "HUnitID": checkStatus.data[0].HItemID
                                    , "计量单位": checkStatus.data[0].计量单位名称
                                    "HWHID": checkStatus.data[0].HItemID
                                    , "HWHName": checkStatus.data[0].仓库名称
                                })
                                layer.close(index);//关闭弹窗
                            }
                            , end: function () {
                                obj.update({
                                    "HUnitID": OptionData.HItemID
                                    , "计量单位": OptionData.计量单位名称
                                    "HWHID": OptionData.HItemID
                                    , "HWHName": OptionData.仓库名称
                                })
                            }
                        })
                        }
                        //仓库
                        if (obj.event == "HWHID") {  //判断obj.event事件  çš„字符串是否==HWHID
                            var HOrgName = $('select[name="HOrgID"] option:selected').text();
                            layer.open({            //打开层
                                type: 2      //表示弹出层的内容是一个 iframe       ç±»åž‹ä¸º2
                                , skin: "layui-layer-rim" //加上边框
                                , title: "计量单位列表"  //标题
                                , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                                , shift: 2   //弹出动画
                                , area: ["90%", "90%"] //窗体大小
                                , maxmin: true //设置最大最小按钮是否显示
                                , content: ['../../基础资料/公用基础资料/Gy_Warehouse.html?type=Warehouse&HOrgName=' + HOrgName, 'yes']//设置 iframe çš„ URL,URL ä¸­åŒ…含了查询参数,来调用所需要的值
                                , btn: ["确定", "取消"]  //自定义选择按钮  å…¶æŒ‰é’®çš„名称为  ç¡®å®šï¼Œå–消
                                , btn1: function (index, laero) {  //当为为确认时
                                    //按钮一  çš„回调
                                    var iframeWindow = window["layui-layer-iframe" + index];//获取弹框页面
                                    var checkStatus = iframeWindow.layui.table.checkStatus("mainTable");//获取选中的数据
                        obj.event = "";
                    } catch (error) {
                        layer.alert("发生错误!" + error, { icon: 5 });
                    }
                                    if (checkStatus.data.length != 1) {
                                        return layer.msg("请选择一条数据");
                                    }
                                    OptionData = checkStatus.data[0];
                                    //更新表格缓存的数据
                                    obj.update({
                                        "HWHID": checkStatus.data[0].HItemID
                                        , "HWHName": checkStatus.data[0].仓库名称
                                    })
                                    layer.close(index);//关闭弹窗
                                }
                                , end: function () {
                                    obj.update({
                                        "HWHID": OptionData.HItemID
                                        , "HWHName": OptionData.仓库名称
                                    })
                                }
                            })
                        }
                    obj.event = ""; //把boj.event属性  åˆå§‹åŒ–为空
                    return false;
                }
                })
                });
                //物料表格下拉搜索框
                tableSelect.render({
                    elem: 'td[data-field="物料代码"] .layui-table-edit',
                    checkedKey: 'HItemID',
                    searchKey: '物料代码',
                    sWhere: '',//table搜索sWhere条件
                    searchKey: '物料代码,物料名称',
                    sWhere: " and ç‰©æ–™å±žæ€§='外购'",//table搜索sWhere条件
                    table: {
                        url: GetWEBURL() + 'Gy_Material/page',
                        where: { user: '翁涛涛', Organization: '浙江智云迈思' },
                        where: { user: sessionStorage["HUserName"], Organization: sessionStorage["Organization"] },
                        cols: [[
                            { type: 'checkbox',fixed:'left' },
                            { field: 'HItemID', title: 'HItemID' },
@@ -2037,7 +2598,7 @@
            //#region é€šè¿‡ä¾›åº”商id获取税率
            function getHTaxRateByHSupID() {
                var HTaxRate;
                var HTaxRate = 0;
                //通过供应商id获取税率
                var HSupID = $("#HSupID").val();
                if (HSupID != 0) {
@@ -2049,7 +2610,19 @@
                            "HInterID": HSupID
                        },
                        success: function (d) {
                            HTaxRate = parseInt(d.data[0].增值税率);
                            if (d.code == 1) {
                                HTaxRate = 0;
                                if (typeof (d.data[0].增值税率) == undefined || d.data[0].增值税率 == null) {
                                    layer.alert("发生错误数据库表增值税率字段有误!", { icon: 5 });
                                } else {
                                    HTaxRate = parseInt(d.data[0].增值税率);
                                }
                            }
                            else {
                                layer.alert(result.message, { icon: 5, btn: ['退出'], time: 100000, offset: 't' }); //result.msg对象,提示弹窗 ç±»åž‹ä¸º5, æŒ‰é’®ï¼Œå’ŒæŒ‰é’®çš„名称为退出  æ—¶é—´ ä¸º100秒,以及偏移量(`offset: 't'
                            }
                        }, error: function (err) {
                            layer.alert("发生错误!" + err, { icon: 5 });
                        }
                    });
                } else {