llj
2026-02-05 555f562385913f405eeafac19b89a942cfe52cba
WebTM/views/ÁìÁÏ·¢»õ/ÁìÁϳö¿â/Kf_MateOutBackBillEdit.html
@@ -57,6 +57,15 @@
                                                </div>
                                            </div>
                                            <div class="layui-inline">
                                                <label class="layui-form-label">单据类型</label>
                                                <div class="layui-input-inline">
                                                    <select name="HBillSubType" lay-filter="HBillSubType" id="HBillSubType">
                                                        <option value="标准领料" selected="selected">标准领料</option>
                                                        <option value="白坯领料">白坯领料</option>
                                                    </select>
                                                </div>
                                            </div>
                                            <div class="layui-inline">
                                                <label class="layui-form-label">日期</label>
                                                <div class="layui-input-inline">
                                                    <input class="layui-input" name="HDate" id="HDate" autocomplete="off" model="datetime" dateFormat="yyyy-MM-dd" placeholder="yyyy-MM-dd">
@@ -121,6 +130,7 @@
                                                <div class="layui-input-inline">
                                                    <select name="HSourceBillType" lay-filter="HSourceBillType" id="HSourceBillType">
                                                        <option value="3720" selected="selected">生产用料清单</option>
                                                        <option value="3710">生产订单</option>
                                                    </select>
                                                </div>
                                            </div>
@@ -548,42 +558,179 @@
            });
            //表头源单弹窗
            form.on('submit(HSourceInterList)', function () {
                //页面层-自定义
                layer.open({
                    type: 2,
                    skin: 'layui-layer-rim', //加上边框
                    title: '生产用料列表',
                    closeBtn: 1,
                    shift: 2,
                    area: ['80%', '80%'],
                    maxmin: true,
                    content: ['../../生产管理/生产投料单/Sc_PPBomBillList.html', 'yes'],
                    btn: ['确定', '取消']
                    , btn1: function (index, layero) {
                var sourceBillType = $("#HSourceBillType").val();
                var url = '';
                var title = '';
                        //按钮【按钮一】的回调
                        var iframeWindow = window['layui-layer-iframe' + index]  //获取弹框页面
                        var checkStatus = iframeWindow.layui.table.checkStatus('mainTable');//获取table的elem:"#test"
                        if (checkStatus.data.length === 0) {
                            return layer.msg('请选择数据');
                if (sourceBillType == '3720') {
                    url = '../../生产管理/生产投料单/Sc_PPBomBillList.html';
                    title = '生产用料列表';
                    layer.open({
                        type: 2,
                        skin: 'layui-layer-rim', //加上边框
                        title: title,
                        closeBtn: 1,
                        shift: 2,
                        area: ['80%', '80%'],
                        maxmin: true,
                        content: [url, 'yes'],
                        btn: ['确定', '取消']
                        , btn1: function (index, layero) {
                            //按钮【按钮一】的回调
                            var iframeWindow = window['layui-layer-iframe' + index]  //获取弹框页面
                            var checkStatus = iframeWindow.layui.table.checkStatus('mainTable');//获取table的elem:"#test"
                            if (checkStatus.data.length === 0) {
                                return layer.msg('请选择数据');
                            }
                            $("#HSourceBillNo").val(checkStatus.data[0].单据号);
                            $("#HSourceInterID").val(checkStatus.data[0].hmainid);
                            layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                        }
                        $("#HSourceBillNo").val(checkStatus.data[0].单据号);
                        $("#HSourceInterID").val(checkStatus.data[0].hmainid);
                        layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                    }
                    , btn2: function (index, layero) {
                        //按钮【按钮二】的回调
                        //return false å¼€å¯è¯¥ä»£ç å¯ç¦æ­¢ç‚¹å‡»è¯¥æŒ‰é’®å…³é—­
                    },
                    end: function () {
                        , btn2: function (index, layero) {
                            //按钮【按钮二】的回调
                            //return false å¼€å¯è¯¥ä»£ç å¯ç¦æ­¢ç‚¹å‡»è¯¥æŒ‰é’®å…³é—­
                        },
                        end: function () {
                        },
                        success: function (layero, index) {
                        }
                    });
                }
                else if (sourceBillType == '3710') {
                    // ç”Ÿäº§è®¢å•(多选追加到子表)
                    url = '../../生产管理/生产任务单/Sc_ICMOBillList.html?openType=2';
                    title = '生产订单列表';
                    },
                    success: function (layero, index) {
                    layer.open({
                        type: 2,
                        skin: 'layui-layer-rim', //加上边框
                        title: title,
                        closeBtn: 1,
                        shift: 2,
                        area: ['90%', '90%'],
                        maxmin: true,
                        content: [url, 'yes'],
                        btn: ['确定追加', '取消']
                        , btn1: function (index, layero) {
                            //按钮【按钮一】的回调
                            var iframeWindow = window['layui-layer-iframe' + index]  //获取弹框页面
                            var checkStatus = iframeWindow.layui.table.checkStatus('mainTable');//获取table的elem:"#test"
                            if (checkStatus.data.length === 0) {
                                return layer.msg('请选择数据');
                            }
                    }
                });
                            // æ¸…空表头源单信息(因为是按行追加)
                            $("#HSourceBillNo").val(checkStatus.data[0].单据号);
                            $("#HSourceInterID").val(checkStatus.data[0].hmainid);
                            // è°ƒç”¨å‡½æ•°å°†é€‰ä¸­çš„æ•°æ®è¿½åŠ åˆ°å­è¡¨
                            appendICMODataToTable(checkStatus.data);
                            layer.close(layer.index); //关闭弹窗
                        }
                        , btn2: function (index, layero) {
                            //按钮【按钮二】的回调
                            //return false å¼€å¯è¯¥ä»£ç å¯ç¦æ­¢ç‚¹å‡»è¯¥æŒ‰é’®å…³é—­
                        },
                        end: function () {
                        },
                        success: function (layero, index) {
                        }
                    });
                }
                else {
                    layer.msg('未知的源单类型');
                }
            });
            //#region ç”Ÿäº§è®¢å•数据追加到子表
            function appendICMODataToTable(selectedData) {
                if (!selectedData || selectedData.length === 0) {
                    layer.msg('未选择有效数据');
                    return;
                }
                // èŽ·å–å½“å‰è¡¨æ ¼æ•°æ®
                var currentData = table.cache["mainTable"] || [];
                // æ£€æŸ¥ç¬¬ä¸€è¡Œæ˜¯å¦æ˜¯ç©ºè¡Œï¼ˆæ‰€æœ‰å…³é”®å­—段都是空或0)
                var firstRowIsEmpty = true;
                if (currentData.length > 0) {
                    var firstRow = currentData[0];
                    if (firstRow.HMaterID !== 0 && firstRow.HMaterID !== "0") {
                        firstRowIsEmpty = false;
                    }
                    if (firstRow.HMaterCode && firstRow.HMaterCode.trim() !== "") {
                        firstRowIsEmpty = false;
                    }
                    if (firstRow.HMaterName && firstRow.HMaterName.trim() !== "") {
                        firstRowIsEmpty = false;
                    }
                }
                // å¦‚果第一行是空行,则先清空表格数据
                if (firstRowIsEmpty) {
                    currentData = [];
                    table.cache["mainTable"] = currentData;
                }
                var addedCount = 0;
                // éåŽ†æ‰€æœ‰é€‰ä¸­çš„è¡Œ
                for (var i = 0; i < selectedData.length; i++) {
                    var rowData = selectedData[i];
                    // ç¡®ä¿æ•°æ®æœ‰æ•ˆæ€§
                    if (!rowData.HMaterID || rowData.HMaterID === 0) {
                        // å¦‚果行数据中没有HMaterID,尝试使用其他字段
                        if (!rowData.产品代码 || rowData.产品代码.trim() === "") {
                            continue; // è·³è¿‡æ— æ•ˆæ•°æ®
                        }
                    }
                    // æž„造子表行数据
                    var newRow = {
                        "HMaterID": rowData.HMaterID || 0,
                        "HMaterCode": rowData["产品代码"] || rowData["物料代码"] || "",
                        "HMaterName": rowData["产品名称"] || rowData["物料名称"] || "",
                        "HMaterSpec": rowData["规格型号"] || "",
                        "HUnitID": rowData.HUnitID || 0,
                        "HUnitCode": rowData["计量单位代码"] || "",
                        "HUnitName": rowData["计量单位"] || "",
                        "HQtyMust": parseFloat(rowData["生产任务单数量"] || rowData["计划生产数量"] || 0),
                        "HQty": parseFloat(rowData["生产任务单数量"] || rowData["计划生产数量"] || 0), // é»˜è®¤å®žå‘数量等于应发数量
                        "HPrice": 0,
                        "HMoney": 0,
                        "HWHID": $("#HWHID").val() || 0,
                        "HWHCode": "",
                        "HWHName": $("#HWHName").val() || "",
                        "HRemark": rowData["底部备注"] || rowData["表头备注"] || "",
                        // å¯ä»¥æ·»åŠ æºå•ä¿¡æ¯å­—æ®µ
                        "HSourceInterID": rowData.hmainid || 0,
                        "HSourceEntryID": rowData.hsubid || 0,
                        "HSourceBillNo": rowData["单据号"] || "",
                        "HSourceBillType": "3710"
                    };
                    // å°†æ–°è¡Œè¿½åŠ åˆ°å­è¡¨
                    currentData.push(newRow);
                    addedCount++;
                }
                // æ›´æ–°è¡¨æ ¼ç¼“存和数据
                table.cache["mainTable"] = currentData;
                option.data = currentData;
                // é‡æ–°æ¸²æŸ“表格
                table.render(option);
                // æ»šåŠ¨åˆ°åº•éƒ¨æ˜¾ç¤ºæ–°æ·»åŠ çš„è¡Œ
                setTimeout(function () {
                    var $tableBody = $('#mainTable').next('.layui-table-view').find('.layui-table-body');
                    $tableBody.scrollTop($tableBody[0].scrollHeight);
                }, 100);
                layer.msg('成功添加' + addedCount + '行数据');
            }
            //保存
            form.on('submit(Saver)', function (data) {
                var refSav = "";
@@ -597,7 +744,7 @@
                var sMainStr = JSON.stringify(data.field);
                var sSubStr = JSON.stringify(table.cache['mainTable']);
                var sMainSub = sMainStr + ';' + sSubStr + ';' + refSav + ';' + sessionStorage["HUserName"];
                console.log("源单类型", $("#HBillSubType").val());
                if (!AllowLoadData(sSubStr))//数据验证
                {
                    return false;
@@ -780,6 +927,8 @@
                    , { field: 'HWHCode', title: '发料仓库代码', edit: 'text', event: 'HWHCode', width: 120 }
                    , { field: 'HWHName', title: '发料仓库名称', edit: 'text', width: 120 }
                    , { field: 'HRemark', title: '备注', edit: 'text', width: 100 }
                    , { field: 'HSourceBillNo', title: '源单号', width: 100 }
                    , { field: 'HSourceInterID', title: 'HSourceInterID', width: 100, hide: true }
                    , { fixed: 'right', title: '操作', toolbar: '#barDemo' }
                ];
                option = {
@@ -794,12 +943,15 @@
                    , done: function (res, curr, count) {
                    }
                };
                option.data = [];
                table.render(option);
            }
            //无源单新增
            function set_AddFNew() {
                //获取最大单据号
                get_MAXNum();
                option.data = [{ "HMaterID": 0, "HMaterCode": "", "HMaterName": "", "HMaterSpec": "", "HUnitID": 0, "HUnitCode": "", "HUnitName": "", "HQtyMust": 0, "HQty": 0, "HPrice": 0, "HMoney": 0, "HWHID": 0, "HWHCode": "", "HWHName": "", "HRemark": "" }];
                option.data = [];
                //option.data = [{ "HMaterID": 0, "HMaterCode": "", "HMaterName": "", "HMaterSpec": "", "HUnitID": 0, "HUnitCode": "", "HUnitName": "", "HQtyMust": 0, "HQty": 0, "HPrice": 0, "HMoney": 0, "HWHID": 0, "HWHCode": "", "HWHName": "", "HRemark": "" }];
                table.render(option);
            }
            //获取最大单据号
@@ -824,7 +976,7 @@
            function set_EditFromGrid(linterid) {
                set_EditForm(linterid);  //编辑获取表头
                set_EditGrid(linterid);  //编辑获取表体
                option.data = [{ "HMaterID": 0, "HMaterCode": "", "HMaterName": "", "HMaterSpec": "", "HUnitID": 0, "HUnitCode": "", "HUnitName": "", "HQtyMust": 0, "HQty": 0, "HPrice": 0, "HMoney": 0, "HWHID": 0, "HWHCode": "", "HWHName": "", "HRemark": "" }];
                //option.data = [{ "HMaterID": 0, "HMaterCode": "", "HMaterName": "", "HMaterSpec": "", "HUnitID": 0, "HUnitCode": "", "HUnitName": "", "HQtyMust": 0, "HQty": 0, "HPrice": 0, "HMoney": 0, "HWHID": 0, "HWHCode": "", "HWHName": "", "HRemark": "" }];
                table.render(option);
            }
            //编辑获取表头
@@ -844,7 +996,10 @@
                                , "HDate": formatDate(data[0]["日期"])
                                //, "HInnerBillNo": data.内部单据号
                                , "HWHID": data[0]["HWHIDMain"]                    //仓库ID
                                , "HSourceInterID": data[0]["HSourceInterID"]                    //仓库ID
                                , "HSourceBillNo": data[0]["HSourceBillNo"]                    //仓库ID
                                , "HWHName": data[0]["仓库"]                   //仓库名称
                                , "HBillSubType": data[0]["HBillSubType"]                   //仓库名称
                                , "HSecManagerID": data[0]["hsecmanagerid"]    //验收员ID
                                , "HSecManagerName": data[0]["领料员"]         //验收员名称
                                , "HKeeperID": data[0]["hkeeperid"]            //保管员ID
@@ -853,7 +1008,7 @@
                                , "HMangerName": data[0]["主管"]             //保管员名称
                                , "HDeptID": data[0]["HDeptID"]                 //部门ID
                                , "HDeptName": data[0]["部门"]                  //部门名称
                                , "HSourceBillType": data[0]["源单类型"]        //源单类型
                                , "HSourceBillType": data[0]["HSourceBillType"]        //源单类型
                                , "XDH": ""                               //选单号
                                , "HRemark": data[0]["表头备注"]                    //备注
                            });