|
@@ -327,12 +327,12 @@ let executeObj = {
|
|
|
if (base.gljTypes.indexOf(md.glj_type) >= 0) {
|
|
|
let q = md["consumption"] ? md["consumption"] : 0;
|
|
|
let p = md["base_price"] ? md["base_price"] : 0;
|
|
|
- mdSum = mdSum + (q * p).toDecimal(me.digit);
|
|
|
- mdSum = (mdSum).toDecimal(me.digitDefault);
|
|
|
+ mdSum = mdSum + (q * p).toDecimal(decimalObj.process);
|
|
|
+ mdSum = (mdSum).toDecimal(decimalObj.process);
|
|
|
}
|
|
|
};
|
|
|
- result = result + (glj["quantity"] * mdSum).toDecimal(me.digitDefault);
|
|
|
- result = (result).toDecimal(me.digitDefault);
|
|
|
+ result = result + (glj["quantity"] * mdSum).toDecimal(decimalObj.process);
|
|
|
+ result = (result).toDecimal(decimalObj.process);
|
|
|
};
|
|
|
};
|
|
|
return result;
|
|
@@ -349,10 +349,10 @@ let executeObj = {
|
|
|
else if (base.calcType == baseCalcType.diffCalc){
|
|
|
let aprice = glj["adjustPrice"] ? glj["adjustPrice"] : 0;
|
|
|
let mprice = glj["marketPrice"] ? glj["marketPrice"] : 0;
|
|
|
- price = (parseFloat(mprice) - parseFloat(aprice)).toDecimal(me.digitDefault);
|
|
|
+ price = (parseFloat(mprice) - parseFloat(aprice)).toDecimal(decimalObj.process);
|
|
|
};
|
|
|
- result = result + (glj["quantity"] * price).toDecimal(me.digitDefault);
|
|
|
- result = (result).toDecimal(me.digitDefault);
|
|
|
+ result = result + (glj["quantity"] * price).toDecimal(decimalObj.process);
|
|
|
+ result = (result).toDecimal(decimalObj.process);
|
|
|
};
|
|
|
};
|
|
|
return result;
|
|
@@ -388,7 +388,7 @@ let executeObj = {
|
|
|
let me = this;
|
|
|
let p = me.treeNode.data.calcBase ? me.treeNode.data.calcBase : 0;
|
|
|
let q = me.treeNode.data.quantity ? me.treeNode.data.quantity : 1;
|
|
|
- let u = (p / q).toDecimal(me.digit);
|
|
|
+ let u = (p / q).toDecimal(decimalObj.decimal('unitPrice', me.treeNode));
|
|
|
return u;
|
|
|
}
|
|
|
};
|
|
@@ -418,9 +418,6 @@ class CalcProgram {
|
|
|
// 经测试,全部编译一次耗时0.003~0.004秒。耗时基本忽略不计。
|
|
|
compileAllTemps(){
|
|
|
let me = this;
|
|
|
- me.digit = 2;
|
|
|
- me.digitDefault = 6;
|
|
|
-
|
|
|
me.compiledFeeRates = {};
|
|
|
me.compiledLabourCoes = {};
|
|
|
me.compiledTemplates = {};
|
|
@@ -660,10 +657,10 @@ class CalcProgram {
|
|
|
for (let item of objsArr) {
|
|
|
let data = item.data;
|
|
|
if (data.feesIndex && data.feesIndex[ft.type]) {
|
|
|
- buf = (buf + parseFloat(data.feesIndex[ft.type].unitFee)).toDecimal(me.digitDefault);
|
|
|
- btf = (btf + parseFloat(data.feesIndex[ft.type].totalFee)).toDecimal(me.digitDefault);
|
|
|
- btuf = (btuf + parseFloat(data.feesIndex[ft.type].tenderUnitFee)).toDecimal(me.digitDefault);
|
|
|
- bttf = (bttf + parseFloat(data.feesIndex[ft.type].tenderTotalFee)).toDecimal(me.digitDefault);
|
|
|
+ buf = (buf + parseFloat(data.feesIndex[ft.type].unitFee)).toDecimal(decimalObj.process);
|
|
|
+ btf = (btf + parseFloat(data.feesIndex[ft.type].totalFee)).toDecimal(decimalObj.process);
|
|
|
+ btuf = (btuf + parseFloat(data.feesIndex[ft.type].tenderUnitFee)).toDecimal(decimalObj.process);
|
|
|
+ bttf = (bttf + parseFloat(data.feesIndex[ft.type].tenderTotalFee)).toDecimal(decimalObj.process);
|
|
|
};
|
|
|
};
|
|
|
}
|
|
@@ -683,32 +680,32 @@ class CalcProgram {
|
|
|
};
|
|
|
|
|
|
if (me.project.projSetting.billsCalcMode === leafBillGetFeeType.rationContent) {
|
|
|
- buf = (buf + (ruf * rq / bq).toDecimal(2)).toDecimal(2);
|
|
|
- btuf = (btuf + (rtuf * rq / bq).toDecimal(2)).toDecimal(2);
|
|
|
+ buf = (buf + (ruf * rq / bq).toDecimal(decimalObj.process)).toDecimal(decimalObj.process);
|
|
|
+ btuf = (btuf + (rtuf * rq / bq).toDecimal(decimalObj.process)).toDecimal(decimalObj.process);
|
|
|
};
|
|
|
|
|
|
- sum_rtf = (sum_rtf + rtf).toDecimal(2);
|
|
|
- sum_rttf = (sum_rttf + rttf).toDecimal(2);
|
|
|
+ sum_rtf = (sum_rtf + rtf).toDecimal(decimalObj.process);
|
|
|
+ sum_rttf = (sum_rttf + rttf).toDecimal(decimalObj.process);
|
|
|
};
|
|
|
|
|
|
if (me.project.projSetting.billsCalcMode === leafBillGetFeeType.rationPrice || me.project.projSetting.billsCalcMode === leafBillGetFeeType.rationPriceConverse) {
|
|
|
- buf = (sum_rtf / bq).toDecimal(2);
|
|
|
- btuf = (sum_rttf / bq).toDecimal(2);
|
|
|
+ buf = (sum_rtf / bq).toDecimal(decimalObj.process);
|
|
|
+ btuf = (sum_rttf / bq).toDecimal(decimalObj.process);
|
|
|
};
|
|
|
if (isBaseFeeType(ft.type) || (me.project.projSetting.billsCalcMode === leafBillGetFeeType.rationPriceConverse && ft.type == "common")){
|
|
|
btf = sum_rtf;
|
|
|
bttf = sum_rttf;
|
|
|
}
|
|
|
else{
|
|
|
- btf = (buf * bq).toDecimal(2);
|
|
|
- bttf = (btuf * bq).toDecimal(2);
|
|
|
+ btf = (buf * bq).toDecimal(decimalObj.process);
|
|
|
+ bttf = (btuf * bq).toDecimal(decimalObj.process);
|
|
|
};
|
|
|
};
|
|
|
|
|
|
- ftObj.unitFee = buf;
|
|
|
- ftObj.totalFee = btf;
|
|
|
- ftObj.tenderUnitFee = btuf;
|
|
|
- ftObj.tenderTotalFee = bttf;
|
|
|
+ ftObj.unitFee = buf.toDecimal(decimalObj.bills.unitPrice);
|
|
|
+ ftObj.totalFee = btf.toDecimal(decimalObj.bills.totalPrice);
|
|
|
+ ftObj.tenderUnitFee = btuf.toDecimal(decimalObj.bills.unitPrice);
|
|
|
+ ftObj.tenderTotalFee = bttf.toDecimal(decimalObj.bills.totalPrice);
|
|
|
checkFee(treeNode, ftObj);
|
|
|
|
|
|
rst.push(ftObj);
|
|
@@ -729,7 +726,7 @@ class CalcProgram {
|
|
|
delete treeNode.data.gljList;
|
|
|
let muf = treeNode.data.marketUnitFee ? treeNode.data.marketUnitFee : 0;
|
|
|
let q = treeNode.data.quantity ? treeNode.data.quantity : 0;
|
|
|
- treeNode.data.marketTotalFee = (muf * q).toDecimal(me.digit);
|
|
|
+ treeNode.data.marketTotalFee = (muf * q).toDecimal(decimalObj.ration.totalPrice);
|
|
|
}
|
|
|
else if (treeNode.data.type == rationType.gljRation){
|
|
|
|
|
@@ -767,11 +764,11 @@ class CalcProgram {
|
|
|
|
|
|
let feeRate = calcItem.feeRate;
|
|
|
if (!feeRate) feeRate = 100; // 100%
|
|
|
- calcItem.unitFee = (eval(calcItem.compiledExpr) * feeRate * 0.01).toDecimal(me.digit); // 如果eval()对清单树有影响,就换成小麦的Expression对象再试
|
|
|
+ calcItem.unitFee = (eval(calcItem.compiledExpr) * feeRate * 0.01).toDecimal(decimalObj.decimal('unitPrice', treeNode)); // 如果eval()对清单树有影响,就换成小麦的Expression对象再试
|
|
|
|
|
|
let quantity = treeNode.data.quantity;
|
|
|
if (!quantity) quantity = 0;
|
|
|
- calcItem.totalFee = (calcItem.unitFee * quantity).toDecimal(me.digit);
|
|
|
+ calcItem.totalFee = (calcItem.unitFee * quantity).toDecimal(decimalObj.decimal('totalPrice', treeNode));
|
|
|
|
|
|
checkFee(treeNode, calcItem);
|
|
|
};
|
|
@@ -782,7 +779,9 @@ class CalcProgram {
|
|
|
// 计算本节点(默认同时递归计算所有父节点,可选)
|
|
|
calculate(treeNode, calcParents = true){
|
|
|
let me = this;
|
|
|
-
|
|
|
+ console.log(decimalObj.decimal('unitPrice', treeNode));
|
|
|
+ console.log(decimalObj.decimal('unitFee', treeNode));
|
|
|
+ console.log(decimalObj.decimal('UnitFee', treeNode));
|
|
|
let isRation = treeNode.sourceType === me.project.Ration.getSourceType();
|
|
|
let isBill = treeNode.sourceType === me.project.Bills.getSourceType();
|
|
|
let isBillPriceCalc = me.project.projSetting.billsCalcMode === leafBillGetFeeType.billsPrice;
|