Browse Source

旧项目个别定额调价兼容问题

chenshilong 4 years ago
parent
commit
f2b85ae986

+ 5 - 3
web/building_saas/main/js/models/calc_program.js

@@ -1928,11 +1928,13 @@ class CalcProgram {
         let fnArr = [];
         calcTools.getGLJList(treeNode, true);
 
+        let nQ = calcTools.uiNodeQty(treeNode);
+        let nTQ = calcTools.uiNodeTenderQty(treeNode);
+
         if (treeNode.calcType == treeNodeCalcType.ctRationCalcProgram) {
             // 量价、工料机类型的定额要求"市场合价"
             if (calcTools.isVP_or_GLJR(treeNode)){
                 let u = treeNode.data.marketUnitFee ? treeNode.data.marketUnitFee : 0;
-                let nQ = calcTools.uiNodeQty(treeNode);
                 let t = (u * nQ).toDecimal(decimalObj.ration.totalPrice);
                 if (treeNode.data.marketTotalFee != t){
                     treeNode.data.marketTotalFee = t;
@@ -1959,11 +1961,11 @@ class CalcProgram {
                     feeRate = parseFloat(calcItem.feeRate).toDecimal(decimalObj.feeRate);
 
                 calcItem.unitFee = (eval(calcItem.compiledExpr) * feeRate * 0.01).toDecimal(decimalObj.decimal('unitPrice', treeNode));
-                calcItem.totalFee = (calcItem.unitFee * calcTools.uiNodeQty(treeNode)).toDecimal(decimalObj.decimal('totalPrice', treeNode));
+                calcItem.totalFee = (calcItem.unitFee * nQ).toDecimal(decimalObj.decimal('totalPrice', treeNode));
 
                 let tExpr = analyzer.getCompiledTenderExpr(calcItem.compiledExpr);
                 calcItem.tenderUnitFee = (eval(tExpr) * feeRate * 0.01).toDecimal(decimalObj.decimal('unitPrice', treeNode));
-                calcItem.tenderTotalFee = (calcItem.tenderUnitFee * treeNode.data.tenderQuantity).toDecimal(decimalObj.decimal('totalPrice', treeNode));
+                calcItem.tenderTotalFee = (calcItem.tenderUnitFee * nTQ).toDecimal(decimalObj.decimal('totalPrice', treeNode));
 
                 if (calcItem.fieldName) {
                     fnArr.push(calcItem.fieldName);

+ 7 - 6
web/building_saas/main/js/views/project_view.js

@@ -1030,13 +1030,14 @@ var projectObj = {
                     disableSpread(that.mainSpread);
                 }
 
-                // 检查旧项目是否有调价数据,没有则自动生成
-                let node = projectObj.project.mainTree.firstNode();
-                if (node.data.feesIndex && node.data.feesIndex.common && node.data.feesIndex.common.totalFee
-                    && node.data.feesIndex.common.totalFee != 0){
-                    if (node.data.feesIndex.common.tenderTotalFee == undefined || node.data.feesIndex.common.tenderTotalFee == 0)
+                // 检查旧项目是否有调价数据,没有则自动生成 ----- 有种情况不行,如下:
+                // 未知情况:有调价数据,但调价算的不对,所以这里无论什么情况,打开时都要全局算一遍,牺牲速度体验,换来数据稳定。
+                // let node = projectObj.project.mainTree.firstNode();
+                // if (node.data.feesIndex && node.data.feesIndex.common && node.data.feesIndex.common.totalFee
+                //     && node.data.feesIndex.common.totalFee != 0){
+                //     if (node.data.feesIndex.common.tenderTotalFee == undefined || node.data.feesIndex.common.tenderTotalFee == 0)
                         projectObj.project.calcProgram.doTenderCalc();
-                };
+                // };
                 $.bootstrapLoading.end();
             }
             else {