Browse Source

概算:计算优化

chenshilong 4 years ago
parent
commit
73209bdde5
1 changed files with 17 additions and 13 deletions
  1. 17 13
      web/building_saas/main/js/models/calc_program.js

+ 17 - 13
web/building_saas/main/js/models/calc_program.js

@@ -2014,27 +2014,31 @@ class CalcProgram {
       // 只有人、材、机、主、设。
       let fieldNames = ['labour', 'material', 'machine', 'mainMaterial', 'equipment', 'common'];
       let funcNames = ['定额人工费','定额材料费','定额施工机具使用费','市场价主材费','市场价设备费'];
-      debugger;
-      for (let i = 0; i < 6; i++) {
+      // let funcNames = ['定额人工费','定额材料费','定额施工机具使用费','定额主材费','定额设备费'];
+      // debugger;
+      let sum = 0;
+      for (let i = 0; i < 5; i++) {
+        if (!rationCalcBases[funcNames[i]]){
+          hintBox.infoBox('错误提示', `定额基数${hintBox.font('[' +funcNames[i] + ']')}未定义!`, 1);
+          return;
+        }
         let obj = {};
         obj.fieldName = fieldNames[i];
-        if (obj.fieldName != 'common'){
-          obj.unitFee = (rationCalcBases[funcNames[i]](treeNode)).toDecimal(decimalObj.decimal('unitPrice', treeNode));
-        }
-        else{
-            let sum = 0;
-            for (let i = 0; i < fieldNames.length - 1; i++) {
-                let u = treeNode.data.feesIndex[fieldNames[i]]? treeNode.data.feesIndex[fieldNames[i]].unitFee : 0;
-                sum = sum + u;
-            }
-          obj.unitFee = sum.toDecimal(decimalObj.decimal('unitPrice', treeNode))
-        }
+        obj.unitFee = (rationCalcBases[funcNames[i]](treeNode)).toDecimal(decimalObj.decimal('unitPrice', treeNode));
         obj.totalFee = (obj.unitFee * nQ).toDecimal(decimalObj.decimal('totalPrice', treeNode));
         obj.tenderUnitFee = obj.unitFee;
         obj.tenderTotalFee = obj.totalFee;
+        sum = sum + obj.unitFee;
         calcTools.checkFeeField(treeNode, obj);
       };
 
+      let obj = {};
+      obj.fieldName = 'common';
+      obj.unitFee = obj.unitFee = sum.toDecimal(decimalObj.decimal('unitPrice', treeNode));
+      obj.totalFee = (obj.unitFee * nQ).toDecimal(decimalObj.decimal('totalPrice', treeNode));
+      obj.tenderUnitFee = obj.unitFee;
+      obj.tenderTotalFee = obj.totalFee;
+      calcTools.checkFeeField(treeNode, obj);
     };
 
     // 定额部分抽取出来,供分摊定额公用。