|
@@ -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对象再试
|
|
|
|