|
@@ -210,7 +210,8 @@ let calcTools = {
|
|
|
else if (this.isBill(treeNode)){
|
|
|
let nodeQ = this.uiNodeQty(treeNode);
|
|
|
let q = nodeQ ? nodeQ : 1;
|
|
|
- let rNodes = projectObj.project.Ration.getRationNodes(treeNode);
|
|
|
+ let allNodes = projectObj.project.Ration.getRationNodes(treeNode);
|
|
|
+ let rNodes = allNodes.filter(function (node) {return node.data.type != rationType.volumePrice});
|
|
|
let rations = rNodes.map(function (node) {return node.data});
|
|
|
treeNode.data.gljList = projectObj.project.ration_glj.getGatherGljArrByRations(rations, needOneBill, q);
|
|
|
};
|
|
@@ -724,8 +725,17 @@ let calcTools = {
|
|
|
}
|
|
|
else {
|
|
|
if (isRCJZC(treeNode, baseName)) {
|
|
|
- if (treeNode.data.type == rationType.volumePrice)
|
|
|
- result = treeNode.data.marketUnitFee ? parseFloat(treeNode.data.marketUnitFee).toDecimal(decimalObj.ration.unitPrice) : 0
|
|
|
+ if (treeNode.data.type == rationType.volumePrice){
|
|
|
+ if (isTender){
|
|
|
+ let coe = this.tenderCoe_GLJPrice();
|
|
|
+ if (treeNode.data.marketUnitFee)
|
|
|
+ result = (parseFloat(treeNode.data.marketUnitFee) * coe).toDecimal(decimalObj.ration.unitPrice)
|
|
|
+ else
|
|
|
+ result = 0;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ result = treeNode.data.marketUnitFee ? parseFloat(treeNode.data.marketUnitFee).toDecimal(decimalObj.ration.unitPrice) : 0
|
|
|
+ }
|
|
|
else if (treeNode.data.type == rationType.gljRation)
|
|
|
// result = treeNode.data.basePrice ? parseFloat(treeNode.data.basePrice).toDecimal(decimalObj.ration.unitPrice) : 0;
|
|
|
// 这里因为是算基数所以要取基价,但不能直接取basePrice,受限于项目属性的三个选项。
|
|
@@ -908,6 +918,58 @@ let calcTools = {
|
|
|
uiNodeQty: function (treeNode){
|
|
|
return parseFloatPlus(treeNode.data.quantity).toDecimal(decimalObj.decimal("quantity", treeNode));
|
|
|
},
|
|
|
+
|
|
|
+ // 在项目工料机里检查该工料机是否参与调价
|
|
|
+ isTenderGLJ: function (glj){
|
|
|
+ let projGLJ = this.getProjectGLJ(glj);
|
|
|
+ return !(projGLJ && projGLJ.is_adjust_price == 1);
|
|
|
+ },
|
|
|
+ // 取单价调价系数
|
|
|
+ tenderCoe_GLJPrice: function (){
|
|
|
+ let coe = 1;
|
|
|
+ if (projectObj.project.property.tenderSetting && projectObj.project.property.tenderSetting.gljPriceTenderCoe){
|
|
|
+ coe = projectObj.project.property.tenderSetting.gljPriceTenderCoe;
|
|
|
+ if (coe == '0') coe = 1; // 这里加个保护
|
|
|
+ };
|
|
|
+ return coe;
|
|
|
+ },
|
|
|
+ tenderCoe_NodeQty: function (treeNode){
|
|
|
+ let coe = 1;
|
|
|
+ if (treeNode.data.rationQuantityCoe){
|
|
|
+ coe = treeNode.data.rationQuantityCoe;
|
|
|
+ if (coe == '0') coe = 1; // 这里加个保护
|
|
|
+ };
|
|
|
+ return coe;
|
|
|
+ },
|
|
|
+ tenderCoe_GLJQty: function (treeNode, glj){
|
|
|
+ let coe = 1;
|
|
|
+ if (!treeNode.data.quantityCoe) return coe;
|
|
|
+
|
|
|
+ if (gljType.LABOUR == glj.type){
|
|
|
+ if (treeNode.data.quantityCoe.labour)
|
|
|
+ coe = treeNode.data.quantityCoe.labour;
|
|
|
+ }
|
|
|
+ else if (baseMaterialTypes.indexOf(glj.type)){
|
|
|
+ if (treeNode.data.quantityCoe.material)
|
|
|
+ coe = treeNode.data.quantityCoe.material;
|
|
|
+ }
|
|
|
+ else if (baseMachineTypes.indexOf(glj.type)){
|
|
|
+ if (treeNode.data.quantityCoe.machine)
|
|
|
+ coe = treeNode.data.quantityCoe.machine;
|
|
|
+ }
|
|
|
+ else if (gljType.MAIN_MATERIAL == glj.type){
|
|
|
+ if (treeNode.data.quantityCoe.main)
|
|
|
+ coe = treeNode.data.quantityCoe.main;
|
|
|
+ }
|
|
|
+ else if (gljType.EQUIPMENT == glj.type){
|
|
|
+ if (treeNode.data.quantityCoe.equipment)
|
|
|
+ coe = treeNode.data.quantityCoe.equipment;
|
|
|
+ };
|
|
|
+
|
|
|
+ if (coe == '0') coe = 1; // 这里加个保护
|
|
|
+ return coe;
|
|
|
+ },
|
|
|
+
|
|
|
uiNodeTenderQty: function (treeNode){
|
|
|
return this.calcNodeTenderQty(treeNode);
|
|
|
},
|
|
@@ -937,35 +999,13 @@ let calcTools = {
|
|
|
calcGLJTenderQty: function (treeNode, glj){
|
|
|
if (treeNode.data.quantityCoe == undefined){
|
|
|
glj.tenderQuantity = glj.quantity;
|
|
|
- return glj.tenderQuantity;
|
|
|
- };
|
|
|
-
|
|
|
- let qCoe = 1;
|
|
|
- let projGLJ = calcTools.getProjectGLJ(glj);
|
|
|
- if (projGLJ.is_adjust_price != 1) { // 先检查项目工料机里,该工料机是否参与调价
|
|
|
- if (gljType.LABOUR == glj.type){
|
|
|
- if (treeNode.data.quantityCoe.labour)
|
|
|
- qCoe = treeNode.data.quantityCoe.labour;
|
|
|
- }
|
|
|
- else if (baseMaterialTypes.indexOf(glj.type)){
|
|
|
- if (treeNode.data.quantityCoe.material)
|
|
|
- qCoe = treeNode.data.quantityCoe.material;
|
|
|
- }
|
|
|
- else if (baseMachineTypes.indexOf(glj.type)){
|
|
|
- if (treeNode.data.quantityCoe.machine)
|
|
|
- qCoe = treeNode.data.quantityCoe.machine;
|
|
|
- }
|
|
|
- else if (gljType.MAIN_MATERIAL == glj.type){
|
|
|
- if (treeNode.data.quantityCoe.main)
|
|
|
- qCoe = treeNode.data.quantityCoe.main;
|
|
|
- }
|
|
|
- else if (gljType.EQUIPMENT == glj.type){
|
|
|
- if (treeNode.data.quantityCoe.equipment)
|
|
|
- qCoe = treeNode.data.quantityCoe.equipment;
|
|
|
- };
|
|
|
}
|
|
|
- if (qCoe == '0' || qCoe == 0) qCoe = 1; // 这里加个保护
|
|
|
- glj.tenderQuantity = (glj.quantity * qCoe).toDecimal(decimalObj.glj.quantity);
|
|
|
+ else{
|
|
|
+ let coe = 1;
|
|
|
+ if (this.isTenderGLJ(glj))
|
|
|
+ coe = this.tenderCoe_GLJQty(treeNode, glj);
|
|
|
+ glj.tenderQuantity = (glj.quantity * coe).toDecimal(decimalObj.glj.quantity);
|
|
|
+ }
|
|
|
return glj.tenderQuantity;
|
|
|
},
|
|
|
calcGLJTenderPrice: function (glj) {
|
|
@@ -974,15 +1014,13 @@ let calcTools = {
|
|
|
glj.tenderPrice = projectObj.project.projectGLJ.getTenderMarketPrice(projGLJ);
|
|
|
}else{
|
|
|
let pCoe = 1;
|
|
|
- if (projGLJ.is_adjust_price != 1){ // 先检查项目工料机里,该工料机是否参与调价
|
|
|
- if (projectObj.project.property.tenderSetting && projectObj.project.property.tenderSetting.gljPriceTenderCoe)
|
|
|
- pCoe = projectObj.project.property.tenderSetting.gljPriceTenderCoe;
|
|
|
- };
|
|
|
- if (pCoe == '0' || pCoe == 0) pCoe = 1; // 这里加个保护
|
|
|
+ // 先从项目工料机里检查该工料机是否参与调价
|
|
|
+ if (projGLJ.is_adjust_price != 1) pCoe = this.tenderCoe_GLJPrice();
|
|
|
glj.tenderPrice = (glj.marketPrice * pCoe).toDecimal(decimalObj.glj.unitPrice);
|
|
|
};
|
|
|
return glj.tenderPrice;
|
|
|
},
|
|
|
+
|
|
|
// 界面显示的工料机价格,包括定额价、市场价等。参数 price 传入一个普通的价格数值即可。
|
|
|
uiGLJPrice: function (price, glj){
|
|
|
if (price){
|
|
@@ -2429,7 +2467,7 @@ class CalcProgram {
|
|
|
distributeTargetTotalFee(treeNode){
|
|
|
if (!treeNode) return;
|
|
|
|
|
|
- if (treeNode.data.feesIndex['common']){ // 空清单忽略
|
|
|
+ if (treeNode.data.feesIndex && treeNode.data.feesIndex['common']){ // 空清单忽略
|
|
|
// 默认能够执行到这里时每个节点已经被初始化,缓存已删除
|
|
|
treeNode.data.tender_activeTotal = treeNode.data.feesIndex['common'].totalFee;
|
|
|
|