|
|
@@ -557,7 +557,7 @@ let divideObj = {
|
|
|
b.dividePrice =0;
|
|
|
b.originalPrice=0;
|
|
|
b.totalPrice =0;
|
|
|
- b.price=0;
|
|
|
+ b.price= b.price?b.price:0;
|
|
|
b.divideRate = scMathUtil.roundForObj(b.divideRate * 0.01,3);
|
|
|
b.dividePrice = scMathUtil.roundForObj(item.marketTotalFee * b.divideRate,getDecimal("bills.totalPrice"));
|
|
|
b.originalPrice = calcOriginalPrice(bNode);
|
|
|
@@ -1307,25 +1307,30 @@ let divideObj = {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- if(datas.length == 0) return;
|
|
|
+ if(datas.length == 0){//分摊的定额没有变,但是清单的金额可能变了,所以要更新
|
|
|
+ reCalcAfterUpdateNodes(bills);
|
|
|
+ return callback();
|
|
|
+ }
|
|
|
//刷新缓存和树节点的插入删除
|
|
|
let nodes = await projectObj.project.syncUpdateNodesAndRefresh(datas);
|
|
|
//重新计算
|
|
|
cbTools.refreshFormulaNodes();
|
|
|
projectObj.project.calcProgram.calcNodesAndSave(changeNode.concat(nodes),function(){
|
|
|
+ reCalcAfterUpdateNodes(bills);
|
|
|
+ callback();
|
|
|
+ });
|
|
|
+ function reCalcAfterUpdateNodes(bills){
|
|
|
//反算分摊右边表中的金额
|
|
|
for(let b of bills){
|
|
|
let bNode = projectObj.project.mainTree.findNode(b.ID);
|
|
|
if(bNode.data.feesIndex&&bNode.data.feesIndex.common){
|
|
|
let totalFee = scMathUtil.roundForObj(bNode.data.feesIndex.common.totalFee,getDecimal("bills.totalPrice"));
|
|
|
- b.price = totalFee;
|
|
|
+ b.price = totalFee;
|
|
|
}
|
|
|
- callback();
|
|
|
- }
|
|
|
-
|
|
|
- });
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
},
|
|
|
cancelDivide:async function(divideID){//如果不传ID,相当于取消所有
|
|
|
let changeNode=[],datas=[],itemDatas=[];
|