Jelajahi Sumber

从养护同步Bug:
①点击清空调价,人材机单价调整系数不会回到默认值1。
②调价后,回到造价书计算程序,数据刷新有误。(Case 语法不能用Delphi那种)
③当清单为大项费用和父清单时,综合单价列不允许输入值。
④A标进行了调价,复制整块到B标,B标不需要A标的调价数据。

chenshilong 5 tahun lalu
induk
melakukan
88a001d0a2

+ 5 - 0
web/building_saas/main/js/controllers/block_controller.js

@@ -582,6 +582,9 @@ let BlockController = {
             delete tem_ration.referenceRationID;//删除关联的主定额信息
             delete tem_ration.__v;
             delete tem_ration.sourceType;
+            delete tem_ration.quantityCoe;
+            delete tem_ration.rationQuantityCoe;
+            delete tem_ration.tenderQuantity;
 
             tem_ration.projectID = projectObj.project.ID();
             tem_ration.ID = uuid.v1();
@@ -607,6 +610,8 @@ let BlockController = {
             delete  temData.quantity_details;
             delete  temData.__v;
             delete  temData.sourceType;
+            delete  temData.quantityCoe;
+            delete  temData.rationQuantityCoe;
 
             temData.projectID = projectObj.project.ID();
             let newID = uuid.v1(); //新的清单ID

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

@@ -2215,6 +2215,14 @@ class CalcProgram {
         return me.getTotalFee(baseNodes, excludeNodes, tender);
     };
 
+    initGljPriceTenderCoe (){
+        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;   // 做个标记,告诉回调函数
+        }
+    };
+
     // 反向调价需初始化调价树、缓存数据等
     initReverseTenderDatas (){
         for(let node of tender_obj.tenderTree.items){
@@ -2228,11 +2236,7 @@ class CalcProgram {
             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;   // 做个标记,告诉回调函数
-        }
+        this.initGljPriceTenderCoe();
     };
 
     // 反向调价

+ 2 - 1
web/building_saas/main/js/views/calc_program_view.js

@@ -52,7 +52,8 @@ let calcProgramObj = {
             case 1:
                 // doNothing
                 break;
-            case 2, 4:
+            case 2:
+            case 4:
                 projectObj.project.calcProgram.innerCalc(treeNode, []);
                 projectObj.project.calcProgram.rationMap = null;
                 delete treeNode.changed;

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

@@ -226,12 +226,17 @@ let tender_obj={
 
     },
     onEnterCell : function (sender,args) {
-        let me = tender_obj, row = args.row, col = args.col;
+        let me = tender_obj, row = args.row, col = args.col, lock = false;
         if ([7, 8].includes(col)){                                  // 目标单价、目标合价
             let treeNode = me.tenderTree.items[row];
-            if (calcTools.isCalcBaseBill(treeNode)){                    // 公式结点只读
+            if (calcTools.isCalcBaseBill(treeNode))                   // 公式结点只读
+                lock = true;
+
+            if ((col = 7) && calcTools.isParentBill(treeNode))
+                lock = true;
+
+            if (lock)
                 me.tenderSheet.getCell(row, col).locked(true);
-            };
         }
     },
     updateChildrenValue:function (node,dataCode,value,datas,nodes) {
@@ -460,27 +465,6 @@ $(function () {
         //console.log($('#gljPriceTenderCoe').val()) ;
     });
 
-    $('#cleanTender').bind('click',function () {
-        let me = tender_obj,datas = [];
-        for(let node of me.tenderTree.items){
-            let tem_updateData = {type:node.sourceType,data:{}};
-            me.cleanTargetPrice(tem_updateData,node);
-            me.cleanTenderCoe(tem_updateData,node);
-            me.cleanTenderPrice(tem_updateData,node);
-            if(!_.isEmpty(tem_updateData.data)){//如果需要更新
-                tem_updateData.data.ID = node.data.ID;
-                datas.push(tem_updateData);
-            }
-        }
-        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}});
-        me.updateTenderData(datas,function () {
-            // me.refreshTenderTreeByDatas(datas);
-            $('#calcTender').trigger('click');
-        });
-
-    });
-
     $('#calcPriceOption').change(function(){
         let me = tender_obj;
 
@@ -528,6 +512,28 @@ $(function () {
         projectObj.project.calcProgram.doTenderCalc(callback);
     });
 
+    $('#cleanTender').bind('click',function () {
+        let me = tender_obj,datas = [];
+        for(let node of me.tenderTree.items){
+            let tem_updateData = {type:node.sourceType,data:{}};
+            me.cleanTargetPrice(tem_updateData,node);
+            me.cleanTenderCoe(tem_updateData,node);
+            me.cleanTenderPrice(tem_updateData,node);
+            if(!_.isEmpty(tem_updateData.data)){//如果需要更新
+                tem_updateData.data.ID = node.data.ID;
+                datas.push(tem_updateData);
+            }
+        };
+        projectObj.project.calcProgram.initGljPriceTenderCoe();
+        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}});
+        me.updateTenderData(datas,function () {
+            // me.refreshTenderTreeByDatas(datas);
+            $('#calcTender').trigger('click');
+        });
+
+    });
+
     $('#cbShowTenderFields').on('click', function () {
         let showFields = $('#cbShowTenderFields').prop("checked");
         projectObj.project.saveProperty('tenderSetting.showTenderFields', showFields);