Pārlūkot izejas kodu

旧项目缺少调价数据的兼容处理。

chenshilong 5 gadi atpakaļ
vecāks
revīzija
9e0f23cf5c

+ 23 - 0
web/building_saas/main/js/models/calc_program.js

@@ -1043,6 +1043,12 @@ let calcTools = {
             return false;
         }
         return totalFee > maxPrice;
+    },
+    getTenderCalcType: function () {
+        let tenderSetting = projectObj.project.property.tenderSetting;
+        let ct = tenderSetting && tenderSetting.calcPriceOption? tenderSetting.calcPriceOption : "coeBase";
+        if (ct == 'priceBase') ct = 'priceBase_RCJ';   // 兼容旧项目
+        return ct;
     }
 };
 
@@ -2440,6 +2446,23 @@ class CalcProgram {
             return result;
         }
     };
+
+    doTenderCalc(callback){
+        let sOption = calcTools.getTenderCalcType();
+        let tender;
+        if (sOption =='coeBase')
+            tender = tenderTypes.ttCalc
+        else if (sOption =='priceBase_RCJ')
+            tender = tenderTypes.ttReverseGLJ
+        else if (sOption =='priceBase_ZM')
+            tender = tenderTypes.ttReverseRation;
+        if (tender == tenderTypes.ttReverseGLJ || tender == tenderTypes.ttReverseRation){
+            this.initReverseTenderDatas();
+            this.prepareForDistribute(tender_obj.tenderTree.roots[0]);
+            this.distributeTargetTotalFee(tender_obj.tenderTree.roots[0]);
+        };
+        this.calcAllNodesAndSave(calcAllType.catAll, callback, tender);
+    };
 };
 
 // export default analyzer;

+ 8 - 0
web/building_saas/main/js/views/project_view.js

@@ -1025,6 +1025,14 @@ var projectObj = {
                 if(projectReadOnly){
                     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)
+                        projectObj.project.calcProgram.doTenderCalc();
+                };
                 $.bootstrapLoading.end();
             }
             else {

+ 3 - 21
web/building_saas/main/js/views/tender_price_view.js

@@ -392,11 +392,11 @@ let tender_obj={
         }
         return true;
     },
-    initPageContent : function () {
+    initPageContent: function () {
         let tenderSetting = projectObj.project.property.tenderSetting;
-        let calcPriceOption = tenderSetting && tenderSetting.calcPriceOption? tenderSetting.calcPriceOption :"coeBase";
         let gljPriceTenderCoe = tenderSetting && tenderSetting.gljPriceTenderCoe?tenderSetting.gljPriceTenderCoe:1;
         let showTenderFields = tenderSetting && tenderSetting.showTenderFields?tenderSetting.showTenderFields:false;
+        let calcPriceOption = calcTools.getTenderCalcType();
         $('#calcPriceOption').val(calcPriceOption);
         $('#gljPriceTenderCoe').val(gljPriceTenderCoe);
         if(calcPriceOption == 'coeBase'){
@@ -477,8 +477,6 @@ $(function () {
     });
 
     $('#tenderPrice').on('click', function () {
-
-        // tender_obj.doTenderCalc(tenderTypes.ttCalc);
         let callback = function () {
             // projectObj.project.saveProperty('hasTender', true);  // 一定调价,这个属性已失去意义
             if (projectObj.project.property.needRestoreGgljPriceTenderCoe){         // 入库存储,清理标记,刷新UI显示
@@ -486,26 +484,10 @@ $(function () {
                 delete projectObj.project.property.needRestoreGgljPriceTenderCoe;
                 $('#gljPriceTenderCoe').val(1);
             }
-
             tender_obj.showTenderData();
             projectObj.project.projectGLJ.calcQuantity();
         };
-
-        let tender;
-        if ($('#calcPriceOption').val() =='coeBase')
-            tender = tenderTypes.ttCalc
-        else if ($('#calcPriceOption').val() =='priceBase_RCJ')
-            tender = tenderTypes.ttReverseGLJ
-        else if ($('#calcPriceOption').val() =='priceBase_ZM')
-            tender = tenderTypes.ttReverseRation;
-
-        if (tender == tenderTypes.ttReverseGLJ || tender == tenderTypes.ttReverseRation){
-            projectObj.project.calcProgram.initReverseTenderDatas();
-            projectObj.project.calcProgram.prepareForDistribute(tender_obj.tenderTree.roots[0]);
-            projectObj.project.calcProgram.distributeTargetTotalFee(tender_obj.tenderTree.roots[0]);
-        };
-
-        projectObj.project.calcProgram.calcAllNodesAndSave(calcAllType.catAll, callback, tender);
+        projectObj.project.calcProgram.doTenderCalc(callback);
     });
 
     // $('#tenderGLJQuantity').on('click', function () {