chenshilong 7 years ago
parent
commit
420d355685
1 changed files with 10 additions and 2 deletions
  1. 10 2
      web/building_saas/main/js/models/calc_program.js

+ 10 - 2
web/building_saas/main/js/models/calc_program.js

@@ -488,6 +488,7 @@ let analyzer = {
 let executeObj = {
     treeNode: null,
     template: null,
+    tempCalcItem: null,
 
     at: function(ID) {
         let me = executeObj;
@@ -512,8 +513,14 @@ let executeObj = {
         // 量价、工料机形式的定额, 要把自己的市场单价用于计算程序中的基数。
         if (me.treeNode.data.type == rationType.volumePrice || me.treeNode.data.type == rationType.gljRation)
             return marketPriceToBase(baseName)
-        else
-            return rationCalcBaser[baseName](me.treeNode);
+        else{
+            if (!rationCalcBaser[baseName]){
+                alert('定额基数“' + baseName + '”末定义,计算错误。 (模板 ' + me.template.ID + ',规则 ' + me.tempCalcItem.ID +')');
+                return 0;
+            }
+            else
+                return rationCalcBaser[baseName](me.treeNode);
+        }
     },
     HJ: function () {
         let me = this;
@@ -1069,6 +1076,7 @@ class CalcProgram {
 
                 for (let idx of template.compiledSeq) {
                     let calcItem = template.calcItems[idx];
+                    $CE.tempCalcItem = calcItem;
                     let feeRate = parseFloatPlus(calcItem.feeRate) ? parseFloatPlus(calcItem.feeRate).toDecimal(decimalObj.feeRate) : 100;  // 100%
                     calcItem.unitFee = (eval(calcItem.compiledExpr) * feeRate * 0.01).toDecimal(decimalObj.decimal('unitPrice', treeNode));   // 如果eval()对清单树有影响,就换成小麦的Expression对象再试