Browse Source

调价优化

chenshilong 5 years ago
parent
commit
3d91afe2e3

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

@@ -2207,6 +2207,26 @@ class CalcProgram {
         return me.getTotalFee(baseNodes, excludeNodes, tender);
         return me.getTotalFee(baseNodes, excludeNodes, tender);
     };
     };
 
 
+    // 反向调价需初始化调价树、缓存数据等
+    initReverseTenderDatas (){
+        for(let node of tender_obj.tenderTree.items){
+            if (node.data.rationQuantityCoe) node.data.rationQuantityCoe = null;
+            let qcObj = node.data.quantityCoe;
+            if (qcObj){
+                for (let pn in qcObj){
+                    qcObj[pn] = null;
+                };
+            };
+            this.clearTenderCache(node);
+        };
+        // 反向调价时人材机单价调整系数要归1:因为既可以调量又可以调价,以哪个为基准进行反调?过于复杂,仅以通用的调量逻辑为基准即可满足需求。
+        if (projectObj.project.property.tenderSetting && projectObj.project.property.tenderSetting.gljPriceTenderCoe
+            && (projectObj.project.property.tenderSetting.gljPriceTenderCoe != 1)){
+            projectObj.project.property.tenderSetting.gljPriceTenderCoe = 1;    // 修改缓存值,用于计算
+            projectObj.project.property.needRestoreGgljPriceTenderCoe = true;   // 做个标记,告诉回调函数
+        }
+    };
+
     // 反向调价
     // 反向调价
     calcTenderReverse(treeNode, tender){
     calcTenderReverse(treeNode, tender){
         if (tender == tenderTypes.ttReverseRation) {
         if (tender == tenderTypes.ttReverseRation) {

+ 5 - 24
web/building_saas/main/js/views/tender_price_view.js

@@ -415,29 +415,8 @@ let tender_obj={
         $('#cbShowTenderFields').prop("checked", showTenderFields);
         $('#cbShowTenderFields').prop("checked", showTenderFields);
     },
     },
     doTenderCalc: function(tender){
     doTenderCalc: function(tender){
-        function initReverseTenderDatas (){
-            for(let node of tender_obj.tenderTree.items){
-                if (node.data.rationQuantityCoe) node.data.rationQuantityCoe = null;
-                let qcObj = node.data.quantityCoe;
-                if (qcObj){
-                    for (let pn in qcObj){
-                        qcObj[pn] = null;
-                    };
-                };
-                projectObj.project.calcProgram.clearTenderCache(node);
-            };
-            // 反向调价时人材机单价调整系数要归1:因为既可以调量又可以调价,以哪个为基准进行反调?过于复杂,仅以通用的调量逻辑为基准即可满足需求。
-            if (projectObj.project.property.tenderSetting && projectObj.project.property.tenderSetting.gljPriceTenderCoe
-                && (projectObj.project.property.tenderSetting.gljPriceTenderCoe != 1)){
-                projectObj.project.property.tenderSetting.gljPriceTenderCoe = 1;    // 修改缓存值,用于计算
-                projectObj.project.property.needRestoreGgljPriceTenderCoe = true;   // 标记:需保存入库
-            }
-
-        };
-
-        if (tender != tenderTypes.ttCalc) initReverseTenderDatas();
         let callback = function () {
         let callback = function () {
-            projectObj.project.saveProperty('hasTender', true);
+            // projectObj.project.saveProperty('hasTender', true);  // 一定调价,这个属性已失去意义
             if (projectObj.project.property.needRestoreGgljPriceTenderCoe){         // 入库存储,清理标记,刷新UI显示
             if (projectObj.project.property.needRestoreGgljPriceTenderCoe){         // 入库存储,清理标记,刷新UI显示
                 projectObj.project.saveProperty('tenderSetting.gljPriceTenderCoe', 1);
                 projectObj.project.saveProperty('tenderSetting.gljPriceTenderCoe', 1);
                 delete projectObj.project.property.needRestoreGgljPriceTenderCoe;
                 delete projectObj.project.property.needRestoreGgljPriceTenderCoe;
@@ -446,12 +425,14 @@ let tender_obj={
 
 
             tender_obj.showTenderData();
             tender_obj.showTenderData();
             projectObj.project.projectGLJ.calcQuantity();
             projectObj.project.projectGLJ.calcQuantity();
-            // projectGljObject.refreshViewsData();
         };
         };
+
         if (tender == tenderTypes.ttReverseGLJ || 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.prepareForDistribute(tender_obj.tenderTree.roots[0]);
             projectObj.project.calcProgram.distributeTargetTotalFee(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.calcAllNodesAndSave(calcAllType.catAll, callback, tender);
     }
     }
 };
 };
@@ -488,7 +469,7 @@ $(function () {
             }
             }
         }
         }
         datas.push({type:ModuleNames.project,data:{'ID' : projectObj.project.ID(),'property.tenderSetting.gljPriceTenderCoe':1}});//恢复人材机单价调整系数为1。
         datas.push({type:ModuleNames.project,data:{'ID' : projectObj.project.ID(),'property.tenderSetting.gljPriceTenderCoe':1}});//恢复人材机单价调整系数为1。
-        datas.push({type:ModuleNames.project,data:{'ID' : projectObj.project.ID(),'property.hasTender': false}});
+        // datas.push({type:ModuleNames.project,data:{'ID' : projectObj.project.ID(),'property.hasTender': false}});
         me.updateTenderData(datas,function () {
         me.updateTenderData(datas,function () {
             me.refreshTenderTreeByDatas(datas);
             me.refreshTenderTreeByDatas(datas);
         });
         });