zrg
2024-01-16 7de00c5824ecfd39fec748386298ba0cedd4504e
WebTM/views/Éú²ú¹ÜÀí/Éú²ú×°Ïäµ¥/QK_PackingBill.html
@@ -9,14 +9,13 @@
    <link rel="stylesheet" href="../../../layuiadmin/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../../layuiadmin/style/admin.css" media="all">
    <!--<script src="../../../layuiadmin/layui/layui.js"></script>-->
    <script src="../../../layuiadmin/layui/layui.js"></script>
    <script src="../../../layuiadmin/zgqCustom/zgqCustom.js"></script>
    <script src="../../../layuiadmin/layui/layui.js"></script>
    <script src="../../../layuiadmin/Scripts/json2.js"></script>
    <script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
    <script src="../../../layuiadmin/Scripts/webConfig.js"></script>
    <script src="../../../layuiadmin/PubCustom.js"></script>
    <script src="../../../layuiadmin/zgqCustom/zgqCustom.js"></script>
    <style type="text/css">
        input.layui-input.layui-unselect {
            padding-right: 0;
@@ -35,9 +34,10 @@
                                    <label class="layui-form-label" style="width: 100px">生产任务单号:</label>
                                    <div class="layui-input-inline">
                                        <input type="text" name="HBillNo" id="HBillNo" placeholder="请输入后回车" class="layui-input" value="" style="float:left;width:260px;">
                                        <input type="text" name="HBillNo1" id="HBillNo1" style="display:none">
                                    </div>
                                </div>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnPack" id="btnPack" style="padding: 0 30px; margin-left: 150px">整装生成</button>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnPack" id="btnPack" style="padding: 0 30px; margin-left: 150px">条码生成</button>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnAssembly" id="btnAssembly" style="padding:0 30px">拼装生成</button>
                            </div>
                        </div>
@@ -110,12 +110,60 @@
            //整箱生成
            form.on('submit(btnPack)', function (data) {
                var flag = "ZZ";
                SavePack(flag);
                var sSubStr = table.checkStatus('mainTable');
                if (sSubStr.data.length > 0) {
                    SavePack(flag,sSubStr);
                }
                else {
                    layer.msg('请最少选择1行数据!');
                    return;
                }
            });
            //拼箱生成
            form.on('submit(btnAssembly)', function (data) {
                var flag = "PZ";
                SavePack(flag);
                var sSubStr = table.checkStatus('mainTable');
                if (sSubStr.data.length > 1) {
                    SavePack(flag,sSubStr);
                }
                else {
                    layer.msg('请最少选择2行数据!');
                }
            });
            //监听单元格编辑  å•元格编辑后 å˜æ›´
            table.on('edit(mainTable)', function (obj) {
                // å•元格编辑之前的值
                var oldText = $(this).prev().text();
                var value = obj.value //得到修改后的值
                    , data = obj.data //得到所在行所有键值
                    , field = obj.field; //得到字段
                switch (field) {
                    case "HSPlanQty":  //最小包装数
                        var HPlanQty = parseInt(isNaN(data.HPlanQty) ? 0 : data.HPlanQty);
                        if (HPlanQty<=0) {
                            layer.msg('数量为空,无可处理数量');
                            obj.update({
                                HSPlanQty: 0,
                                HMinQty: 0,                          //最小包装数
                                HTotalQty:0,      //生成包装数=数量/最小包装数
                                HSpsQty: 0,              //剩余数量=数量%最小包装数
                            });
                        }
                        break;
                    case "HMinQty":  //最小包装数
                        value = parseInt(isNaN(value) ? 0 : value);
                        var HSPlanQty = parseInt(isNaN(data.HSPlanQty) ? 0 : data.HSPlanQty);
                        var HPlanQty = parseInt(isNaN(data.HPlanQty) ? 0 : data.HPlanQty);
                        //同步更新表格和缓存对应的值
                        obj.update({
                            HMinQty: value,                          //最小包装数
                            HTotalQty: Math.floor(HSPlanQty / value),     //生成包装数=数量/最小包装数
                            HSpsQty: HPlanQty-(HSPlanQty - HSPlanQty % value)               //剩余数量=数量%最小包装数
                        });
                        break;
                    default:
                }
            });
            //#endregion
@@ -125,33 +173,41 @@
            function set_InitGrid() {
                columns = [
                    { type: 'checkbox', fixed: 'left' }
                    , { field: 'HSeOrderBillNo', title: '销售订单号', edit: 'text', width: 100, hide: true }
                    , { field: 'HInterID', title: 'HInterID', edit: 'text', width: 100, hide: true }
                    , { field: 'HEntryID', title: 'HEntryID', edit: 'text', width: 100, hide: true }
                    , { field: 'HBillNo', title: 'HBillNo', edit: 'text', width: 100, hide: true }
                    , { field: 'HMaterID', title: 'HMaterID', edit: 'text', width: 100, hide: true }
                    , { field: 'HMaterCode', title: '物料代码', edit: 'text', width: 100 }
                    , { field: 'HMaterName', title: '物料名称', edit: 'text', width: 100 }
                    , { field: 'HMaterNumber', title: 'HMaterNumber', edit: 'text', width: 100, hide: true }
                    , { field: 'HMaterName', title: '物料名称', edit: 'false', width: 100 }
                    , { field: 'HUnitID', title: 'HUnitID', edit: 'text', width: 100, hide: true }
                    , { field: 'HUnitName', title: '计量单位', edit: 'text', width: 100 }
                    , { field: 'HWeight', title: '净重', edit: 'text', width: 100 }
                    , { field: 'HMWeight', title: '毛重', edit: 'text', width: 100 }
                    , { field: 'HPWeight', title: '皮重', edit: 'text', width: 100 }
                    , { field: 'HUnitName', title: '计量单位', edit: 'false', width: 100 }
                    , { field: 'HQty', title: '数量', edit: 'text', width: 100 }
                    , { field: 'HPlanQty', title: '数量', edit: 'false', width: 100 }
                    , { field: 'HSPlanQty', title: '处理数量', edit: 'text', event: 'HSPlanQty', width: 100 }
                    , { field: 'HMinQty', title: '最小包装数', edit: 'text', event: 'HMinQty', width: 100 }
                    , { field: 'HTotalQty', title: '生成条数', edit: 'text', width: 100 }
                    , { field: 'HSpsQty', title: '剩余数量', edit: 'text', width: 100 }
                    , { field: 'HAddress', title: '交货地点', edit: 'text', width: 100 }
                    , { field: 'HDate', title: '交货日期',  width: 100, templet: "<div>{{d.HDate ==null ?'':layui.util.toDateString(d.HDate, 'yyyy-MM-dd')}}</div>"}
                    , { field: 'HOutStockQty', title: '出库数量', edit: 'text', width: 100 }
                    , { field: 'HInvoiceQty', title: '开票数量', edit: 'text', width: 100 }
                    , { field: 'HTaxPrice', title: '含税单价', edit: 'text', width: 100 }
                    , { field: 'HPrice', title: '不含税单价', edit: 'text', width: 100 }
                    , { field: 'HMoney', title: '金额', edit: 'text', width: 100 }
                    , { field: 'HTotalQty', title: '生成条数', edit: 'false', width: 100 }
                    , { field: 'HSpsQty', title: '剩余数量', edit: 'false', width: 100 }
                    , { field: 'HXH', title: '箱号', edit: 'false', width: 100 }
                    , { field: 'FBillNo', title: '销售订单号', edit: 'false', width: 100 }
                    , { field: 'FLXName', title: '联系人', edit: 'text',  width: 100 }
                    , { field: 'FInAddress', title: '收货方地址', edit: 'false', width: 100 }
                    , { field: 'FMaterName', title: '销售物料名称', edit: 'false', width: 100 }
                    , { field: 'FBZFS', title: '包装方式', edit: 'false', width: 100 }
                    , { field: 'FHX', title: '花型', edit: 'false', width: 100 }
                    , { field: 'FQK', title: '墙咔缝', edit: 'false', width: 100 }
                    , { field: 'FWBBZ', title: '外包备注', edit: 'false', width: 100 }
                    , { field: 'HCusID', title: 'HCusID', edit: 'text', width: 100, hide: true }
                    , { field: 'HCusName', title: '客户', edit: 'text',  width: 100 }
                    , { field: 'HEmpID', title: 'HEmpID', edit: 'text', width: 100, hide: true}
                    , { field: 'HEmpName', title: '业务员', edit: 'text', width: 100 }
                    , { field: 'HCusName', title: '客户', edit: 'false', width: 100 }
                    , { field: 'HEmpID', title: 'HEmpID', edit: 'text', width: 100, hide: true }
                    , { field: 'HEmpName', title: '业务员', edit: 'false', width: 100 }
                    , { field: 'HDeptID', title: 'HDeptID', edit: 'text', width: 100, hide: true }
                    , { field: 'HDeptName', title: '生产车间', edit: 'false', width: 100 }
                    , { field: 'HPlanEndDate', title: '计划完工日期', width: 100, templet: "<div>{{d.HPlanEndDate ==null ?'':layui.util.toDateString(d.HPlanEndDate, 'yyyy-MM-dd')}}</div>"}
                ];
                option = {
                    id: 'mainTable'
@@ -165,12 +221,11 @@
                    , done: function (res, curr, count) {
                    }
                };
                option.data = [{ "HMaterID": 0, "HMaterCode": "", "HMaterName": "", "HUnitID": 0, "HUnitName": "", "HWeight": 0, "HMWeight": 0,"HPWeight":0,"HQty": 0, "HMinQty": 0, "HTotalQty": 0, "HSpsQty": 0, "HAddress": "", "HDate": "", "HOutStockQty": 0, "HInvoiceQty": 0, "HTaxPrice": 0, "HPrice": 0, "HMoney": 0, "HCusID": 0, "HCusName": "", "HEmpID": 0, "HEmpName": "" }];
                option.data = [{ "HMaterID": 0, "HMaterName": "", "HUnitID": 0, "HUnitName": "", "HPlanQty": 0, "HSPlanQty": 0, "HMinQty": 0, "HTotalQty": 0, "HSpsQty": 0, "HCusID": 0, "HCusName": "", "HEmpID": 0, "HEmpName": "", "HDeptID": 0, "HDeptName": "","HPlanEndDate":"" }];
                table.render(option);
            }
            //整箱生成
            function SavePack(flag) {
                var sSubStr = JSON.stringify(table.cache['mainTable']) + ";" + sessionStorage["HUserName"] + ";" + flag;
            //生成
            function SavePack(flag,sSubStr) {
                if (!AllowLoadData(sSubStr))//数据验证
                {
                    return false;
@@ -180,15 +235,22 @@
                        type: "POST",
                        url: GetWEBURL() + "/Sc_ICMOBill/QK_PackingBillSavePack", //方法所在页面和方法名
                        async: true,
                        data: { "msg": sSubStr},
                        data: { "msg": JSON.stringify(sSubStr.data) + ";" + sessionStorage["HUserName"] + ";" + sessionStorage["OrganizationID"] + ";" + flag + ";" + $('#HBillNo').val()},
                        dataType: "json",
                        success: function (data) {
                            if (data.count == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
                                layer.msg(data.Message, { time: 1 * 1000, icon: 1 }, function () {
                                    $('#add-btn').addClass("layui-btn-disabled").attr("disabled", true);
                                    var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
                                    parent.layer.close(index); //再执行关闭
                                });
                                var PrintIds = data.code;
                                PrintIds = PrintIds.substring(0, PrintIds.length - 1);
                                var Type = "HQKPackBill";
                                var OpenTmp = "";
                                if (sSubStr.data[0].FBZFS == "" && (sSubStr.data[0].FHX != "" || sSubStr.data[0].FMaterName != "")) {
                                    OpenTmp = "花型条码";
                                }
                                else {
                                    OpenTmp = "包装方式条码";
                                }
                                window.open("../../基础资料/公用基础资料/HBarPlanPrint.html?linterid=" + PrintIds.toString() + "&Type=" + Type.toString() + "&OpenTmp=" + OpenTmp.toString());
                            }
                            else {
                                f_alert(data.Message);
@@ -199,7 +261,6 @@
                        error: function (err) {
                            f_alert("错误:" + err);
                            console.log("Reason" + sMainStr);
                        }
                    });
            }
@@ -208,12 +269,15 @@
            function AllowLoadData(sSubStr) {
                var Result = true;
                if (typeof (sSubStr) != "undefined" && typeof (sSubStr) != "") {
                    sSubStr = JSON.parse(sSubStr);
                    for (var i = 0; i < sSubStr.length; i++) {
                        if (sSubStr[i].HMinQty == "") {
                    for (var i = 0; i < sSubStr.data.length; i++) {
                        if (sSubStr.data[i].HMinQty == "") {
                            layer.msg("明细记录第" + (i + 1) + "行,最小包装数不能为空!", { icon: 5, btn: ['确认'], time: 2000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                            return Result = false;
                        }
                        if (sSubStr.data[i].HXH == "") {
                            layer.msg("明细记录第" + (i + 1) + "行,箱号不能为空!", { icon: 5, btn: ['确认'], time: 2000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                            return Result = false;
                        }
                    }
                }
                else {