|
@@ -272,8 +272,8 @@ let calcTools = {
|
|
|
calcTools.calcGLJTenderQty(treeNode, glj);
|
|
|
};
|
|
|
let qty = isTender ? me.uiGLJQty(glj["tenderQuantity"]) : me.uiGLJQty(glj["quantity"]);
|
|
|
- let mprice = isTender ? me.uiGLJPrice(glj["tenderPrice"]) : me.uiGLJPrice(glj["marketPrice"]);
|
|
|
- let aprice = calcTools.hasAdjustPrice() ? me.uiGLJPrice(glj["adjustPrice"]) : me.uiGLJPrice(glj["basePrice"]);
|
|
|
+ let mprice = isTender ? me.uiGLJPrice(glj["tenderPrice"], glj) : me.uiGLJPrice(glj["marketPrice"], glj);
|
|
|
+ let aprice = calcTools.hasAdjustPrice() ? me.uiGLJPrice(glj["adjustPrice"], glj) : me.uiGLJPrice(glj["basePrice"], glj);
|
|
|
|
|
|
if (priceType == priceTypes.ptDiffPrice){
|
|
|
if (aprice != mprice){
|
|
@@ -282,7 +282,7 @@ let calcTools = {
|
|
|
}
|
|
|
}
|
|
|
else {
|
|
|
- if (priceType == priceTypes.ptBasePrice){ price = me.uiGLJPrice(glj["basePrice"]);}
|
|
|
+ if (priceType == priceTypes.ptBasePrice){ price = me.uiGLJPrice(glj["basePrice"], glj);}
|
|
|
else if (priceType == priceTypes.ptAdjustPrice){price = aprice;}
|
|
|
else if (priceType == priceTypes.ptMarketPrice){price = mprice;}
|
|
|
temp = (qty * price).toDecimal(decimalObj.process);
|
|
@@ -378,7 +378,7 @@ let calcTools = {
|
|
|
|
|
|
let rst = 0;
|
|
|
for (let obj of GLJObjs){
|
|
|
- let tp = (me.uiGLJQty(obj.quantity) * me.uiGLJPrice(obj.marketPrice)).toDecimal(decimalObj.bills.totalPrice);
|
|
|
+ let tp = (me.uiGLJQty(obj.quantity) * me.uiGLJPrice(obj.marketPrice, obj)).toDecimal(decimalObj.bills.totalPrice);
|
|
|
rst = (rst + tp).toDecimal(decimalObj.bills.totalPrice);
|
|
|
};
|
|
|
return rst;
|
|
@@ -401,7 +401,7 @@ let calcTools = {
|
|
|
for (let glj of treeNode.data.gljList) {
|
|
|
if (!allMaterialTypes.includes(glj.type)) continue;
|
|
|
if (glj.isEstimate){
|
|
|
- rst = rst + (me.uiGLJQty(glj.quantity) * me.uiGLJPrice(glj.marketPrice)).toDecimal(decimalObj.process);
|
|
|
+ rst = rst + (me.uiGLJQty(glj.quantity) * me.uiGLJPrice(glj.marketPrice, glj)).toDecimal(decimalObj.process);
|
|
|
rst = rst.toDecimal(decimalObj.process);
|
|
|
}
|
|
|
else{ // 组成物
|
|
@@ -725,14 +725,17 @@ let calcTools = {
|
|
|
pCoe = projectObj.project.property.tenderSetting.gljPriceTenderCoe;
|
|
|
glj.tenderPrice = (glj.marketPrice * pCoe).toDecimal(decimalObj.glj.unitPrice);
|
|
|
}else{
|
|
|
- let projGLJ = projectObj.project.projectGLJ.getDataByID(glj.projectGLJID);
|
|
|
+ let projGLJ = calcTools.getProjectGLJ(glj);
|
|
|
glj.tenderPrice = projectObj.project.projectGLJ.getTenderMarketPrice(projGLJ);
|
|
|
};
|
|
|
},
|
|
|
// 界面显示的工料机价格,包括定额价、市场价等。参数 price 传入一个普通的价格数值即可。
|
|
|
- uiGLJPrice: function (price){
|
|
|
- if (price)
|
|
|
- return parseFloat(price).toDecimal(decimalObj.glj.unitPrice)
|
|
|
+ uiGLJPrice: function (price, glj){
|
|
|
+ if (price){
|
|
|
+ let projGLJ = glj ? calcTools.getProjectGLJ(glj) : null;
|
|
|
+ let d = (projGLJ.ratio_data.length > 0) ? decimalObj.glj.unitPriceHasMix : decimalObj.glj.unitPrice;
|
|
|
+ return parseFloat(price).toDecimal(d);
|
|
|
+ }
|
|
|
else return 0;
|
|
|
},
|
|
|
// 界面显示的工料机数量。参数 quantity 传入一个普通的数量数值即可。
|
|
@@ -780,6 +783,12 @@ let calcTools = {
|
|
|
discreteNodes.push(node);
|
|
|
};
|
|
|
return discreteNodes;
|
|
|
+ },
|
|
|
+ getProjectGLJ(glj){
|
|
|
+ if (glj.projectGLJID){
|
|
|
+ return projectObj.project.projectGLJ.getDataByID(glj.projectGLJID);
|
|
|
+ }
|
|
|
+ else return null;
|
|
|
}
|
|
|
};
|
|
|
|