1
duhe
2024-07-31 d9a642bfaf83001831ac9a56bb9637e767e48feb
WebTM/views/²É¹º¹ÜÀí/²É¹º¶©µ¥/Cg_POOrderBillEdit.html
@@ -46,6 +46,7 @@
                    <div class="layui-card-header">
                        <div class="layui-btn-group">
                            <button type="button" id="add-btn" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="set_SaveBill">保存</button>
                            <button type="button" id="print-btn" class="layui-btn layui-btn-normal layui-btn-radius layui-btn-disabled" lay-submit="" lay-filter="get_PrintReport" disabled>打印</button>
                            <button type="button" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="Exit">退出</button>
                        </div>
                    </div>
@@ -325,6 +326,8 @@
                        <div class="layui-btn-container">
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-AddLine"><i class="layui-icon layui-icon-form"></i>增加一行</button>
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-CopyLine"><i class="layui-icon layui-icon-form"></i>复制一行</button>
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="get_Inventory" id="get_Inventory"><i class="layui-icon layui-icon-form"></i>库存查询</button>
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="get_InOutSum" id="get_InOutSum"><i class="layui-icon layui-icon-form"></i>出入库记录查询</button>
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideColumn"><i class="layui-icon layui-icon-form"></i>列设置</button>
                        </div>
                    </script>
@@ -465,14 +468,15 @@
                }
               
            } else {//如果修改则走下面 new
                $("#HInterID").val(linterid);   // å°† ID ä¸º HInterID çš„元素的值设置为变量 linterid çš„值。
                $("#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": "", "HRemark": ""
                , "HPrice": "", "HTaxPrice": "", "HMoney": "", "HDiscountRate": 1, "HRelTaxPrice": "", "HTaxRate": 0, "HTaxMoney": "", "HlineTotal": "", "HlineTotalBB": "", "HDate": Format(new Date, "yyyy- MM - dd"),
                "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’, ç©ºï¼ŒçŠ¶æ€ä¸º1  è®¾ç½®æ—¶é—´ç±»åž‹yyyy-mm-dd
            // åˆå§‹åŒ–界
@@ -484,8 +488,8 @@
                    , data = checkStatus.data;          //从选中状态中提取数据,这些数据是表格中被选中的行   
                //新增行表格数据
                var NewRow = {
                    "HMaterID": 0, "物料代码": "", "物料名称": "", "规格型号": "", "HUnitID": 0, "计量单位": "", "HWHID": 0, "HWHName": "", "HQty": "", "HRemark": ""
                    , "HPrice": "", "HTaxPrice": "", "HMoney": "", "HDiscountRate": "1", "HRelTaxPrice": "", "HTaxRate":0, "HTaxMoney": "", "HlineTotal": "", "HlineTotalBB": "", "HDate": Format(new Date, "yyyy- MM - dd")
                    "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")
                };  ////定义 NewRow的对象,它包含了新行应该有的数据字段  è®¾ç½®å€¼ä¸ºç©ºæˆ–默认值
                switch (obj.event) { // switch (obj.event)用于根据obj.event的值来决定执行哪个case块
                    case 'btn-AddLine':   //当为新增
@@ -514,6 +518,12 @@
                            //checkRefresh();
                        }
                        break;
                    //库存查询
                    case 'get_Inventory': get_Inventory();
                        break;
                    //出入库记录查询
                    case 'get_InOutSum': get_InOutSum();
                        break;
                    ////列设置
                    //case 'set_HideColumn':
                    //    get_HideColumn();
@@ -527,7 +537,11 @@
            form.on('submit(Exit)', function () {
                Pub_Close(1);
            })
            //#region æ‰“印
            form.on('submit(get_PrintReport)', function (data) {
                get_PrintReport();
            });
            //#endregion
            //选择采购员按钮
            form.on('submit(HEmpList)', function () {
                get_checkEmp();
@@ -610,6 +624,7 @@
                // å•元格编辑之前的值
                var oldText = $(this).prev().text();                         //获取当前的值赋值给oldtext           èŽ·å–å½“å‰å…ƒç´ ï¼ˆå¯èƒ½æ˜¯ä¸€ä¸ªè¡¨æ ¼å•å…ƒæ ¼ï¼‰çš„å‰ä¸€ä¸ªåŒçº§å…ƒç´ çš„æ–‡æœ¬å†…å®¹ï¼Œå¹¶å°†è¿™ä¸ªæ–‡æœ¬å†…å®¹å­˜å‚¨åœ¨å˜é‡oldText中
                console.log(oldText);
                var value = obj.value                   //得到修改后的值
                    , data = obj.data                   //得到所在行所有键值
                    , field = obj.field;                        //得到字段
@@ -658,7 +673,7 @@
                            obj.update({            //更新表格某一行数据
                                HPrice: oldText     //将hprice字段恢复到保存前的值
                            });
                            table.render(option);
                            layer.msg("单价请输入数字!");   //请输入单价的数值
                            return;
                        }
@@ -696,7 +711,7 @@
                            obj.update({                //更新表格某一行数据
                                HTaxRate: oldText       //  å°†å­—段HTaxRate的数据恢复到更新之前的数据
                            });
                            table.render(option);
                            layer.msg("税率请输入数字!"); //提示请输入税率的数值
                            return;
                        }
@@ -738,7 +753,7 @@
                            obj.update({
                                HDiscountRate: oldText
                            });
                            table.render(option);
                            layer.msg("折扣率请输入不小于0的数字!");
                            return;
                        }
@@ -840,6 +855,21 @@
            }
            //#endregion
            //#region æ‰“印
            function get_PrintReport() {
                layer.open({
                    type: 2
                    , area: ['50%', '50%']
                    , title: '打印模版选择'
                    , shade: 0.6 //遮罩透明度
                    , maxmin: false //允许全屏最小化
                    , anim: 0 //0-6的动画形式,-1不开启
                    , content: ['../../BaseSet/SRM_OpenTmpList.html?linterid=' + linterid.toString() + '&MyMsg=' + linterid.toString() + '&Type=HPOOrderBillByID', 'yes']
                    , resize: false
                })
            }
            //#endregion
            function set_InitGrid() {
                option = {
                    elem: '#mainTable'      // ä½¿ç”¨#mainTable作为表格的DOM元素 
@@ -861,13 +891,13 @@
                        , { field: 'HWHName', title: '仓库名称', width: 100, edit: 'text', event: "HWHID" }//f7
                        , { field: 'HQty', title: '数量', width: 100, edit: 'text', totalRow: true}
                        , { field: 'HPrice', title: '单价', width: 100, edit: 'text'}
                        , { field: 'HTaxPrice', title: '含税单价', width: 100, edit: 'text'}
                        , { field: 'HTaxPrice', title: '含税单价', width: 100,style: 'background-color:#efefef4d;'}
                        , { field: 'HMoney', title: '金额', width: 100, totalRow: true , style: 'background-color:#efefef4d;'}
                        , { field: 'HDiscountRate', title: '折扣率', width: 100, style: 'background-color:#efefef4d;'}
                        , { field: 'HDiscountRate', title: '折扣率', width: 100}
                        , { field: 'HRelTaxPrice', title: '实际含税单价', width: 110, style: 'background-color:#efefef4d;' }
                        , { field: 'HTaxRate', title: '税率', width: 100, edit: 'text' }
                        , { field: 'HTaxMoney', title: '税额', width: 100, style: 'background-color:#efefef4d;'}
                        , { field: 'HlineTotal', title: '价税合计', width: 100, edit: 'text' }
                        , { field: 'HlineTotal', title: '价税合计', width: 100, style: 'background-color:#efefef4d;' }
                        , { field: 'HlineTotalBB', title: '本位币价税合计', width: 120, style: 'background-color:#efefef4d;' }
                        , { field: 'HDate', title: '到货日期', width: 120, event: 'HDate'}
                        , { field: 'HRemark', title: '备注', width: 100, edit: 'text' }
@@ -1014,7 +1044,7 @@
                    }
                    var rowData = option.data[i];   //option.data[i]元素是一个有效的对象将其赋值给rowData变量
                    for (var col of Object.keys(rowData)) {  //遍历rowData对象的所有键  Object.keys(rowData)返回一个包含rowData所有自身属性键的数组
                        if (rowData[col] == "0" && col != "LAY_TABLE_INDEX") {  //检查当前属性的值是否等于"0",并且属性名不是"LAY_TABLE_INDEX"
                        if (rowData[col] == "0" && (col == "HQty" || col =="HMaterID")) {  //检查当前属性的值是否等于"0",并且属性名不是"LAY_TABLE_INDEX"
                            layer.msg("第" + (i + 1) + "行:" + col + "不能为0!"); //提示第几行不能为0                          å¦‚果找到值为"0"的属性,并且该属性名不是"LAY_TABLE_INDEX",则通过layer.msg显示一个警告消息,指出哪个行和哪个列的值不能为0
                            return; 
                        }
@@ -1062,6 +1092,56 @@
            }
            //#endregion
            //#region åº“存查询
            function get_Inventory() {
                var checkStatus = table.checkStatus('mainTable')
                    , data = checkStatus.data;
                if (checkStatus.data.length === 1 && data[0].HMaterID != 0 ) {
                    var HMaterID = data[0].HMaterID.toString();
                    //弹窗方法
                    layer.open({
                        type: 2//弹窗类型
                        , skin: 'layui-layer-rim' //加上边框
                        , area: ['90%', '90%']//大小
                        , title: '库存查询列表'//标题
                        , shift: 2//弹出动画
                        , content: ['../../仓存管理/条码报表/Kf_ICinventoryQueryReport.html?Type=1&HMaterID=' + HMaterID, 'yes']
                        , btn: ['取消']
                        , btn1: function (index, layero) {
                            layer.close(index);
                        }
                    })
                }
                else {
                    layer.msg('请选择一行有物料数据查询!');
                }
            }
            //#endregion
            //#region å‡ºå…¥åº“记录查询
            function get_InOutSum() {
                var checkStatus = table.checkStatus('mainTable')
                    , data = checkStatus.data;
                if (checkStatus.data.length === 1 && data[0].HMaterID != 0) {
                    var HMaterID = data[0].HMaterID.toString();
                    layer.open({
                        type: 2//弹窗类型
                        , skin: 'layui-layer-rim' //加上边框
                        , area: ['90%', '90%']//大小
                        , title: '出入库记录列表'//标题
                        , shift: 2//弹出动画
                        , content: ['../../仓存管理/条码报表/Kf_StockInOutSumQueryReport.html?Type=1&HMaterID=' + HMaterID, 'yes']
                        , btn: ['取消']
                        , btn1: function (index, layero) {
                            layer.close(index);
                        }
                    })
                }
                else {
                    layer.msg('请选择一行有物料数据查询!');
                }
            }
            //#endregion
            //行内快捷键筛选
            function set_GridCellCheck(obj) {       //定义了一个名为set_GridCellCheck的函数,它接受一个参数obj    
                //使用$(document).off('keydown', ".layui-table-edit")来移除(如果存在的话)之前绑定到文档中所有.layui-table-edit类元素上的keydown事件监听器
@@ -1087,6 +1167,7 @@
                                    var checkStatus = iframeWindow.layui.table.checkStatus("mainTable");//获取选中的数据
                                    OptionData = checkStatus.data[0];  //把选中数据的第一条赋值给OptionData变量
                                    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数组需要扩展以包含更多行
@@ -1112,9 +1193,9 @@
                                        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
                                    }
                                    table.render(option); //重新渲染表格以显示更新后的数据
                                    table.reload(option)
                                    layer.closeAll();  //关闭所有通过layer
                                    //layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                                }
@@ -1122,7 +1203,7 @@
                                    //按钮【按钮二】的回调
                                    //return false å¼€å¯è¯¥ä»£ç å¯ç¦æ­¢ç‚¹å‡»è¯¥æŒ‰é’®å…³é—­
                                },
                                end: function () {
                                end: function () {
                                    obj.update({ //更新表格数据
                                        "HMaterID": OptionData.HItemID             //设置HItemID的值为“HBillNo”字段的值HItemID`的值
                                        ,"物料代码" : OptionData.物料代码
@@ -1130,7 +1211,6 @@
                                        ,"规格型号" : OptionData.规格型号
                                        ,"HUnitID" :OptionData.HUnitID
                                        , "计量单位": OptionData.计量单位名称
                                        ,"HQty":1
                                })
                                    }
                                });
@@ -1451,14 +1531,14 @@
                        $("#HWHName").val(checkStatus.data[0].仓库名称);
                        $("#HWHID").val(checkStatus.data[0].HItemID);
                        if (option.data.length > 0) {
                            for (var i = 0; i < option.data.length; i++) {
                                if (option.data[i]["HWHID"] == 0) {
                                    option.data[i]["HWHID"] = checkStatus.data[0].HItemID;
                                    option.data[i]["HWHName"] = checkStatus.data[0].仓库名称;
                                }
                            }
                        }
                        //if (option.data.length > 0) {
                        //    for (var i = 0; i < option.data.length; i++) {
                        //        if (option.data[i]["HWHID"] == 0) {
                        //            option.data[i]["HWHID"] = checkStatus.data[0].HItemID;
                        //            option.data[i]["HWHName"] = checkStatus.data[0].仓库名称;
                        //        }
                        //    }
                        //}
                        table.render(option);
                      
                        layer.close(index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的