Bläddra i källkod

feat: 项目管理总造价汇总时的容错处理

zhangweicheng 2 år sedan
förälder
incheckning
20e726419e
1 ändrade filer med 10 tillägg och 7 borttagningar
  1. 10 7
      modules/pm/facade/pm_facade.js

+ 10 - 7
modules/pm/facade/pm_facade.js

@@ -1238,14 +1238,17 @@ function getCommonTotalFee(bills) {
 function summarizeToParent(parent, child, flagFieldMapping) {
     const decimal = -2;
     let costFields = [];
-    for (let flag in flagFieldMapping) {
-        let costItems = flagFieldMapping[flag];
-        for (let costItem of costItems) {
-            costFields.push(costItem.name);
+    //删除相关的逻辑或哪里有bug出现parent被删除,child还没有被标记为删除状态,这时,parent会为undefine 这时就会报错
+    if(parent && child){
+        for (let flag in flagFieldMapping) {
+            let costItems = flagFieldMapping[flag];
+            for (let costItem of costItems) {
+                costFields.push(costItem.name);
+            }
+        }
+        for (let field of costFields) {
+            parent[field] = scMathUtil.roundTo(parseFloat(parent[field]) + parseFloat(child[field]), decimal);
         }
-    }
-    for (let field of costFields) {
-        parent[field] = scMathUtil.roundTo(parseFloat(parent[field]) + parseFloat(child[field]), decimal);
     }
 }