1
yxj
2024-11-26 e9d2113417213c45750130861c935267498a90b1
WebTM/views/²É¹º¹ÜÀí/Ó¦¸¶µ¥/Cg_PayableBill.html
@@ -47,6 +47,7 @@
                        <div class="layui-btn-group">
                            <button type="button" id="set_SaveBill" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="Saver">保存</button>
                            <button type="button" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="set_CheckBill">审核</button>
                            <button type="button" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="set_SelectMainBill">选整单</button>
                            <button type="button" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="Exit">退出</button>
                        </div>
                    </div>
@@ -498,6 +499,12 @@
            });
            //#endregion
            //#region é€‰æ•´å•
            form.on('submit(set_SelectMainBill)', function (data) {
                set_SelectMainBill();
            });
            //#endregion
            //#region ä¿å­˜æŒ‰é’®
            form.on('submit(Saver)', function (data) {
                //#region åˆ¤æ–­æºå•状态
@@ -615,6 +622,7 @@
                    var url;
                    //判断文本框是否有数据    new
                    if (HSourceBillNo == "") {
                        layer.close(ajaxLoad);
                        return;
                    }
                    if ($("#BillType").val() == "1102") {
@@ -709,7 +717,7 @@
                                            }
                                        );
                                    }
                                    optionEntry.data = rowdataEntry;
                                    optionEntry.data = JSON.parse(JSON.stringify(rowdataEntry));
                                    table.render(optionEntry);
                                    //子表汇总
                                    for (var i = 0; i < rowdataEntry.length; i++) {
@@ -810,7 +818,7 @@
                                            }
                                        );
                                    }
                                    optionEntry.data = rowdataEntry;
                                    optionEntry.data = JSON.parse(JSON.stringify(rowdataEntry));
                                    table.render(optionEntry);
                                    //子表汇总
                                    for (var i = 0; i < rowdataEntry.length; i++) {
@@ -1303,6 +1311,316 @@
                })
            }
            //#endregion
            //#region é€‰æ•´å•
            function set_SelectMainBill() {
                var url;
                if ($("#BillType").val() == "1102") {
                    url = "../../采购管理/采购订单/Cg_POOrderBillQuery.html?openType=2&HOrgID=" + HOrgID;
                } else if ($("#BillType").val() == "1201") {
                    url = "../../验收入库/外购入库/Kf_POStockInBillListQuery.html?openType=2&HOrgID=" + HOrgID;
                } else {
                    return layer.msg('当前不支持该源单选择!!');
                }
                //页面层-自定义
                layer.open({
                    type: 2
                    , skin: "layui-layer-rim" //加上边框
                    , title: '' + '源单' + '列表'  //标题
                    , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                    , shift: 2 //弹出动画
                    , area: ["90%", "90%"] //窗体大小
                    , maxmin: true //设置最大最小按钮是否显示
                    , content: [url, "yes"]
                    , btn: ["确定", "取消"]
                    , btn1: function (index, laero) {
                        //按钮一  çš„回调
                        var iframeWindow = window["layui-layer-iframe" + index];//获取弹框页面
                        var checkStatus = iframeWindow.layui.table.checkStatus("mainTable");//获取选中的数据
                        if (checkStatus.data.length == 0) {
                            return layer.msg("请至少选择一条数据!");
                        }
                        var HSupID = $("#HSupID").val();//判断供应商
                        if (HSupID == 0 || HSupID == '') {
                            HSupID = checkStatus.data[0]["HSupID"];
                        }
                        //获取供应商代码,设置条件
                        var sMainWhere = " and hmainid in(";
                        for (var i = 0; i < checkStatus.data.length; i++) {
                            if (checkStatus.data[i]["HSupID"] != HSupID) {
                                layer.msg("下推失败!已经选中的记录中存在不同供应商!");
                                layer.close(index);//关闭弹窗
                                return;
                            }
                            sMainWhere += checkStatus.data[i]["hmainid"]
                            if (i != checkStatus.data.length - 1) {
                                sMainWhere += ",";
                            } else {
                                sMainWhere += ") ";
                            }
                        }
                        getSeletMainInfo(sMainWhere);
                        layer.close(index);//关闭弹窗
                    }
                });
            }
            //#endregion
            //#region æ•´å•信息获取方法
            function getSeletMainInfo(sMainWhere) {
                var ajaxLoad = layer.load();
                if ($("#BillType").val() == "1102") {
                    $.ajax({
                        url: GetWEBURL() + '/Cg_POOrderBill/list',
                        async: false,
                        type: "GET",
                        data: { "sWhere": sMainWhere, "user": sessionStorage["HUserName"] },
                        success: function (data1) {
                            if (data1.count == 1) {
                                var dataArray = data1.data;
                                option.data = [];//清空子表
                                form.val("component-form-group", { //formTest å³ class="layui-form" æ‰€åœ¨å…ƒç´ å±žæ€§ lay-filter="" å¯¹åº”的值
                                    "HMainSourceInterID": "0"
                                    , "HMainSourceEntryID": "0"
                                    /*, "HMainSourceBillNo": ""*/
                                    , "HMainSourceBillType": $("#BillType").val()
                                    , "HDeptID": dataArray[0].HDeptID
                                    , "HDeptName": dataArray[0].部门
                                    , "HMangerID": dataArray[0].HManagerID
                                    , "HMangerName": dataArray[0].主管
                                    , "HEmpID": dataArray[0].HEmpID
                                    , "HEmpName": dataArray[0].业务员
                                    , "HSupID": dataArray[0].HSupID
                                    , "HSupName": dataArray[0].供应商
                                    , "HCurID": dataArray[0].HCurID
                                    , "HCurName": dataArray[0].币别
                                    , "HExRate": dataArray[0].汇率
                                    , "HSSID": dataArray[0].HSSID
                                    , "HSSName": dataArray[0].结算方式
                                    , "HPSStyleID": dataArray[0].HPSStyleID
                                    , "HPSStyleName": dataArray[0].采购方式
                                    , "HProjectID": dataArray[0].HProjectID
                                    , "HProjectName": dataArray[0].项目名称
                                    , "HProjectNumber": dataArray[0].项目代码
                                });
                                //子表Entry  èµ‹å€¼
                                var rowdataEntry = [];
                                for (var i = 0; i < dataArray.length; i++) {
                                    var HQty = dataArray[i].数量 - dataArray[i].关联数量;                           //数量
                                    var HPrice = dataArray[i].单价;               //单价
                                    var HMoney = HQty * HPrice;                     //金额=数量*单价
                                    var HTaxRate = dataArray[i].税率 * 0.01;           //税率
                                    var HTaxMoney = Number((HMoney * HTaxRate));         //税额=金额*税率
                                    var HlineTotal = HMoney + HTaxMoney;            //价税合计=金额+税额
                                    var HExRate = $("#HExRate").val();                      //汇率
                                    var HlineTotalBB = Number(((HMoney + HTaxMoney) * HExRate));      //本位币价税合计=(税额+金额)*汇率
                                    var HMoneyBB = HMoney * HExRate;
                                    rowdataEntry.push(
                                        {
                                            "HMaterID": dataArray[i].HMaterID
                                            , "物料代码": dataArray[i].物料代码
                                            , "物料名称": dataArray[i].物料名称
                                            , "规格型号": dataArray[i].规格型号
                                            , "HUnitID": dataArray[i].HUnitID
                                            , "计量单位": dataArray[i].计量单位
                                            , "HQty": dealDoubleToFixed(HQty, 1)
                                            , "HPrice": dealDoubleToFixed(dataArray[i].单价, 3)
                                            , "HTaxPrice": dealDoubleToFixed(dataArray[i].含税单价, 3)
                                            , 'HDiscountRate': "1"                                                     //
                                            , 'HRelTaxPrice': dealDoubleToFixed(dataArray[i].含税单价, 3)
                                            , "HTaxRate": dataArray[i].税率
                                            , 'HTaxMoney': HTaxMoney                                                         //
                                            , "HMoney": dealDoubleToFixed(HMoney, 2)
                                            , 'HMoneyBB': dealDoubleToFixed(HMoneyBB, 2)
                                            , 'HlineTotal': dealDoubleToFixed(HlineTotal, 2)
                                            , 'HlineTotalBB': dealDoubleToFixed(HlineTotalBB, 2)
                                            , "HRemark": ""
                                            , "HSourceInterID": dataArray[i].hmainid
                                            , "HSourceEntryID": dataArray[i].hsubid
                                            , "HSourceBillNo": dataArray[i].单据号
                                            , "HSourceBillType": dataArray[i].单据类型
                                            , "HRelationQty": "0"
                                            , "HRelationMoney": "0"
                                            , 'HPOOrderInterID': "0"
                                            , 'HPOOrderEntryID': "0"
                                            , 'HPOOrderBillNo': ""
                                            , 'HSeOrderTaxPrice': dealDoubleToFixed(dataArray[i].含税单价, 3)
                                            , "HSeOrderInterID": dataArray[i].hmainid
                                            , "HSeOrderEntryID": dataArray[i].hsubid
                                            , "HSeOrderBillNo": dataArray[i].单据号
                                        }
                                    );
                                }
                                optionEntry.data = JSON.parse(JSON.stringify(rowdataEntry));
                                table.render(optionEntry);
                                //子表汇总
                                for (var i = 0; i < rowdataEntry.length; i++) {
                                    var item = rowdataEntry[i];
                                    for (var j = i + 1; j < rowdataEntry.length; j++) {
                                        if (rowdataEntry[j].HMaterID == item.HMaterID) {
                                            rowdataEntry[i].HQty += rowdataEntry[j].HQty;//数量
                                            rowdataEntry[i].HMoney = rowdataEntry[i].HQty * rowdataEntry[i].HPrice//金额=数量*单价
                                            rowdataEntry[i].HTaxMoney = Number((rowdataEntry[i].HMoney * rowdataEntry[i].HTaxRate).toFixed(4))//税额
                                            rowdataEntry[i].HlineTotal = rowdataEntry[i].HMoney + rowdataEntry[i].HTaxMoney //价税合计
                                            var HExRate = $("#HExRate").val();
                                            rowdataEntry[i].HlineTotalBB = Number(((rowdataEntry[i].HMoney + rowdataEntry[i].HTaxMoney) * HExRate).toFixed(4)) //本位币价税合计
                                            rowdataEntry[i].HMoneyBB = Number((rowdataEntry[i].HMoney * HExRate).toFixed(4)) //本位币金额
                                            rowdataEntry.splice(j, 1);
                                            j = j - 1;
                                        }
                                    }
                                }
                                set_InitGridHaveSource();
                                option.data = rowdataEntry;
                                haveSource = true;
                                table.render(option);
                                layer.close(ajaxLoad);
                                //layer.alert("查询成功", { icon: 1 });
                            } else {
                                layer.close(ajaxLoad);
                                layer.alert(data1.code + data1.Message, { icon: 5 });
                                return;
                            }
                        }, error: function () {
                            layer.close(ajaxLoad);
                            layer.alert("接口请求失败!", { icon: 5 });
                            return;
                        }
                    });
                } else if ($("#BillType").val() == "1201") {
                    $.ajax({
                        url: GetWEBURL() + '/Kf_POStockInBill/list',
                        type: "GET",
                        data: { "sWhere": sMainWhere, "user": sessionStorage["HUserName"] },
                        success: function (data1) {
                            if (data1.count == 1) {
                                dataArray = data1.data;
                                form.val("component-form-group", { //formTest å³ class="layui-form" æ‰€åœ¨å…ƒç´ å±žæ€§ lay-filter="" å¯¹åº”的值
                                    "HMainSourceInterID": "0"
                                    , "HMainSourceEntryID": "0"
                                    /*, "HMainSourceBillNo": ""*/
                                    , "HMainSourceBillType": $("#BillType").val()
                                    , "HDeptID": dataArray[0].HDeptID
                                    , "HDeptName": dataArray[0].部门
                                    , "HMangerID": dataArray[0].hmanagerid == null ? "0" : dataArray[0].hmanagerid
                                    , "HMangerName": dataArray[0].主管
                                    , "HEmpID": dataArray[0].HEmpID
                                    , "HEmpName": dataArray[0].业务员
                                    , "HSupID": dataArray[0].HSupID
                                    , "HSupName": dataArray[0].供应商
                                    , "HCurID": dataArray[0].HCurID
                                    , "HCurName": dataArray[0].币别
                                    , "HExRate": dataArray[0].汇率
                                    , "HSSID": "0"
                                    , "HSSName": ""
                                    , "HPSStyleID": dataArray[0].HPSStyleID
                                    , "HPSStyleName": dataArray[0].采购方式
                                    , "HProjectID": dataArray[0].HProjectID
                                    , "HProjectName": dataArray[0].项目名称
                                    , "HProjectNumber": dataArray[0].项目代码
                                    , "HInvoiceBillNo": dataArray[0].发票编号
                                });
                                //子表Entry  èµ‹å€¼
                                var rowdataEntry = [];
                                for (var i = 0; i < dataArray.length; i++) {
                                    var HQty = dataArray[i].实收数量 - dataArray[i].关联数量;                           //数量
                                    var HPrice = dataArray[i].单价;               //单价
                                    var HMoney = HQty * HPrice;                     //金额=数量*单价
                                    var HTaxRate = dataArray[i].税率 * 0.01;           //税率
                                    var HTaxMoney = Number((HMoney * HTaxRate));         //税额=金额*税率
                                    var HlineTotal = HMoney + HTaxMoney;            //价税合计=金额+税额
                                    var HExRate = $("#HExRate").val();                      //汇率
                                    var HlineTotalBB = Number(((HMoney + HTaxMoney) * HExRate));      //本位币价税合计=(税额+金额)*汇率
                                    var HMoneyBB = HMoney * HExRate;
                                    rowdataEntry.push(
                                        {
                                            "HMaterID": dataArray[i].HMaterID
                                            , "物料代码": dataArray[i].物料代码
                                            , "物料名称": dataArray[i].物料名称
                                            , "规格型号": dataArray[i].规格型号
                                            , "HUnitID": dataArray[i].HUnitID
                                            , "计量单位": dataArray[i].计量单位
                                            , "HQty": dealDoubleToFixed(HQty, 1)
                                            , "HPrice": dealDoubleToFixed(dataArray[i].单价, 3)
                                            , "HTaxPrice": dealDoubleToFixed(dataArray[i].含税单价, 3)
                                            , 'HDiscountRate': "1"                                                     //
                                            , 'HRelTaxPrice': dealDoubleToFixed(dataArray[i].含税单价, 3)
                                            , "HTaxRate": dataArray[i].税率
                                            , 'HTaxMoney': HTaxMoney                                                         //
                                            , "HMoney": dealDoubleToFixed(HMoney, 2)
                                            , 'HMoneyBB': dealDoubleToFixed(HMoneyBB, 2)
                                            , 'HlineTotal': dealDoubleToFixed(HlineTotal, 2)
                                            , 'HlineTotalBB': dealDoubleToFixed(HlineTotalBB, 2)
                                            , "HRemark": ""
                                            , "HSourceInterID": dataArray[i].hmainid
                                            , "HSourceEntryID": dataArray[i].hsubid
                                            , "HSourceBillNo": dataArray[i].单据号
                                            , "HSourceBillType": dataArray[i].单据类型
                                            , "HRelationQty": "0"
                                            , "HRelationMoney": "0"
                                            , 'HPOOrderInterID': "0"
                                            , 'HPOOrderEntryID': "0"
                                            , 'HPOOrderBillNo': ""
                                            // , 'HSeOrderTaxPrice': dealDoubleToFixed(dataArray[i].含税单价, 3)
                                            , "HSeOrderInterID": dataArray[i].HSourceBillType == "1401" ? dataArray[i].HSourceInterID : "0"
                                            , "HSeOrderEntryID": dataArray[i].HSourceBillType == "1401" ? dataArray[i].HSourceEntryID : "0"
                                            , "HSeOrderBillNo": dataArray[i].HSourceBillType == "1401" ? dataArray[i].源单单号 : ""
                                        }
                                    );
                                }
                                optionEntry.data = JSON.parse(JSON.stringify(rowdataEntry));
                                table.render(optionEntry);
                                //子表汇总
                                for (var i = 0; i < rowdataEntry.length; i++) {
                                    var item = rowdataEntry[i];
                                    for (var j = i + 1; j < rowdataEntry.length; j++) {
                                        if (rowdataEntry[j].HMaterID == item.HMaterID) {
                                            rowdataEntry[i].HQty += rowdataEntry[j].HQty;
                                            rowdataEntry[i].HMoney = rowdataEntry[i].HQty * rowdataEntry[i].HPrice//金额=数量*单价
                                            rowdataEntry[i].HTaxMoney = Number((rowdataEntry[i].HMoney * rowdataEntry[i].HTaxRate).toFixed(4))//税额
                                            rowdataEntry[i].HlineTotal = rowdataEntry[i].HMoney + rowdataEntry[i].HTaxMoney //价税合计
                                            var HExRate = $("#HExRate").val();
                                            rowdataEntry[i].HlineTotalBB = Number(((rowdataEntry[i].HMoney + rowdataEntry[i].HTaxMoney) * HExRate).toFixed(4)) //本位币价税合计
                                            rowdataEntry[i].HMoneyBB = Number((rowdataEntry[i].HMoney * HExRate).toFixed(4)) //本位币金额
                                            rowdataEntry.splice(j, 1);
                                            j = j - 1;
                                        }
                                    }
                                }
                                set_InitGridHaveSource();
                                option.data = rowdataEntry;
                                haveSource = true;
                                table.render(option);
                                layer.close(ajaxLoad);
                            } else {
                                layer.close(ajaxLoad);
                                layer.alert(data1.code + data1.Message, { icon: 5 });
                                return;
                            }
                        }, error: function () {
                            layer.close(ajaxLoad);
                            layer.alert("接口请求失败!", { icon: 5 });
                            return;
                        }
                    });
                } else {
                    return layer.msg('当前不支持该源单选择!!');
                }
            }
            //#endregion
            //#endregion
            //#region å­è¡¨åˆå§‹åŒ–
@@ -2096,7 +2414,7 @@
                    $("#HUpDateDate").val(Format(new Date(), "yyyy-MM-dd hh:mm:ss"));
                }
                var sMainStr = JSON.stringify(data.field);
                debugger
                //获取子表数据
                var num = [];
                for (var i = 0; i < table.cache["mainTable"].length; i++) {
@@ -2948,7 +3266,7 @@
                        }
                    );
                }
                optionEntry.data = rowdataEntry;
                optionEntry.data = JSON.parse(JSON.stringify(rowdataEntry));
                table.render(optionEntry);
                //子表汇总
                for (var i = 0; i < rowdataEntry.length; i++) {
@@ -3082,7 +3400,7 @@
                        }
                    );
                }
                optionEntry.data = rowdataEntry;
                optionEntry.data = JSON.parse(JSON.stringify(rowdataEntry));
                table.render(optionEntry);
                //子表汇总
                for (var i = 0; i < rowdataEntry.length; i++) {