|
|
@@ -148,29 +148,17 @@ let calcTools = {
|
|
|
if (!treeNode.data.fees) {
|
|
|
treeNode.data.fees = [];
|
|
|
treeNode.data.feesIndex = {};
|
|
|
- // treeNode.updateData.fees = []; // 在某种未知情况下,treeNode.data.fees有值,导致这句无法执行。下同
|
|
|
- // treeNode.updateData.feesIndex = {};
|
|
|
+ treeNode.updateData.fees = []; // 在某种未知情况下,treeNode.data.fees有值,导致这句无法执行。下同
|
|
|
+ treeNode.updateData.feesIndex = {};
|
|
|
treeNode.changed = true;
|
|
|
}
|
|
|
else if (!treeNode.data.feesIndex){
|
|
|
treeNode.data.feesIndex = {};
|
|
|
- // treeNode.updateData.feesIndex = {};
|
|
|
+ treeNode.updateData.feesIndex = {};
|
|
|
for (let fee of treeNode.data.fees){
|
|
|
treeNode.data.feesIndex[fee.fieldName] = fee;
|
|
|
- // treeNode.updateData.feesIndex[fee.fieldName] = fee;
|
|
|
- };
|
|
|
- treeNode.changed = true;
|
|
|
- };
|
|
|
-
|
|
|
- if (!treeNode.updateData.fees) {
|
|
|
- treeNode.updateData.fees = [];
|
|
|
- treeNode.updateData.feesIndex = {};
|
|
|
- treeNode.changed = true;
|
|
|
- }
|
|
|
- else if (!treeNode.updateData.feesIndex){
|
|
|
- treeNode.updateData.feesIndex = {};
|
|
|
- for (let fee of treeNode.updateData.fees)
|
|
|
treeNode.updateData.feesIndex[fee.fieldName] = fee;
|
|
|
+ };
|
|
|
treeNode.changed = true;
|
|
|
};
|
|
|
},
|
|
|
@@ -306,6 +294,7 @@ let calcTools = {
|
|
|
machineDetailFee: function (treeNode, gljArr, masterTypeFilter, detailType, isTender) {
|
|
|
if (!gljArr) return 0;
|
|
|
let result = 0;
|
|
|
+ let nodeQ = calcTools.uiNodeQty(treeNode) ? calcTools.uiNodeQty(treeNode) : 0;
|
|
|
for (let glj of gljArr) {
|
|
|
if (baseMachineMasterTypes.includes(glj.type)){
|
|
|
// 机型不符
|
|
|
@@ -330,7 +319,7 @@ let calcTools = {
|
|
|
mdSum = (mdSum).toDecimal(decimalObj.glj.unitPriceHasMix);
|
|
|
}
|
|
|
}
|
|
|
- result = (result + (gljQ * mdSum).toDecimal(decimalObj.process)).toDecimal(decimalObj.process)
|
|
|
+ result = (result + (nodeQ * gljQ * mdSum).toDecimal(decimalObj.process)).toDecimal(decimalObj.process)
|
|
|
}
|
|
|
}
|
|
|
result = (result).toDecimal(decimalObj.ration.totalPrice);
|
|
|
@@ -478,19 +467,22 @@ let calcTools = {
|
|
|
|
|
|
let rcj = (treeNode.data.subType === gljType.LABOUR && calcTools.inBase(baseName, 'RGF')) ||
|
|
|
(baseMaterialTypes.includes(treeNode.data.subType) && calcTools.inBase(baseName, 'CLF')) ||
|
|
|
- (treeNode.data.subType === gljType.GENERAL_MACHINE && calcTools.inBase(baseName, 'JXF'));
|
|
|
+ (treeNode.data.subType === gljType.GENERAL_MACHINE && calcTools.inBase(baseName, 'JXF')) ||
|
|
|
+ (treeNode.data.subType === gljType.EQUIPMENT && calcTools.inBase(baseName, 'SBF')) ||
|
|
|
|
|
|
- if (typeof isJX2017 != 'undefined') {
|
|
|
- rcj = rcj || (treeNode.data.subType === gljType.LABOUR && calcTools.inBase(baseName, 'SC_RGF')) ||
|
|
|
- (baseMaterialTypes.includes(treeNode.data.subType) && calcTools.inBase(baseName, 'SC_CLF')) ||
|
|
|
- (treeNode.data.subType === gljType.GENERAL_MACHINE && calcTools.inBase(baseName, 'SC_JXF'))
|
|
|
- };
|
|
|
+ (treeNode.data.subType === gljType.LABOUR && calcTools.inBase(baseName, 'SC_RGF')) ||
|
|
|
+ (baseMaterialTypes.includes(treeNode.data.subType) && calcTools.inBase(baseName, 'SC_CLF')) ||
|
|
|
+ (treeNode.data.subType === gljType.GENERAL_MACHINE && calcTools.inBase(baseName, 'SC_JXF')) ||
|
|
|
+ (treeNode.data.subType === gljType.EQUIPMENT && calcTools.inBase(baseName, 'SC_SBF'));
|
|
|
|
|
|
if (rcj ||
|
|
|
- (treeNode.data.subType === gljType.MAIN_MATERIAL && calcTools.inBase(baseName, 'ZCF')) ||
|
|
|
- (treeNode.data.subType === gljType.EQUIPMENT && calcTools.inBase(baseName, 'SBF'))) {
|
|
|
- if (treeNode.data.type == rationType.volumePrice)
|
|
|
- result = treeNode.data.marketUnitFee ? parseFloat(treeNode.data.marketUnitFee).toDecimal(decimalObj.ration.unitPrice) : 0
|
|
|
+ (treeNode.data.subType === gljType.MAIN_MATERIAL && calcTools.inBase(baseName, 'ZCF'))
|
|
|
+ ) {
|
|
|
+ if (treeNode.data.type == rationType.volumePrice){
|
|
|
+ let nodeQ = calcTools.uiNodeQty(treeNode) ? calcTools.uiNodeQty(treeNode) : 0;
|
|
|
+ result = treeNode.data.marketUnitFee ? (parseFloat(treeNode.data.marketUnitFee) * nodeQ).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,受限于项目属性的三个选项。
|
|
|
@@ -836,17 +828,19 @@ let rationCalcBasesNameKinds = {
|
|
|
RGF: ['定额基价人工费', '定额人工费'],
|
|
|
CLF: ['定额基价材料费', '定额材料费'],
|
|
|
QTCLF: ['定额其他材料费'],
|
|
|
- JXF: ['定额基价机械费', '定额机械费', '定额施工机具使用费'],
|
|
|
- JSRGF: ['定额基价机上人工费'],
|
|
|
+ JXF: ['定额基价机械费', '定额机械费', '定额施工机具使用费', '定额施工机械使用费'],
|
|
|
+ JSRGF: ['定额基价机上人工费', '定额施工机械人工费'],
|
|
|
ZCF: ['主材费', '市场价主材费'],
|
|
|
- SBF: ['设备费'],
|
|
|
+ SBF: ['定额设备费'],
|
|
|
RGGR: ['人工工日'],
|
|
|
ZGCLF: ['暂估材料费'],
|
|
|
|
|
|
// 市场价人工费、市场价材料费、市场价机械费。江西用,跟重庆区分开,概念上不太统一,这里要注意区分。
|
|
|
SC_RGF: ['人工费'],
|
|
|
SC_CLF: ['材料费'],
|
|
|
- SC_JXF: ['机械费'],
|
|
|
+ SC_JXF: ['机械费', '施工机具使用费', '施工机械使用费'],
|
|
|
+ SC_JSRGF: ['施工机械人工费'],
|
|
|
+ SC_SBF: ['设备费', '市场价设备费', '设备购置费'],
|
|
|
|
|
|
JC_RGF: ['人工费价差'],
|
|
|
JC_CLF: ['材料费价差'],
|
|
|
@@ -887,8 +881,14 @@ let rationCalcBases = {
|
|
|
'施工机械人工费': function (node, isTender) {
|
|
|
return calcTools.machineDetailFee(node, node.data.gljList, [], gljType.MACHINE_LABOUR, isTender);
|
|
|
},
|
|
|
- '商品砼费': function (node, isTender) {
|
|
|
- return calcTools.rationBaseFee(node, [gljType.COMMERCIAL_CONCRETE, gljType.COMMERCIAL_MORTAR], priceTypes.ptMarketPrice, isTender);
|
|
|
+ '定额商品砼费': function (node, isTender) {
|
|
|
+ return calcTools.rationBaseFee(node, [gljType.COMMERCIAL_CONCRETE, gljType.COMMERCIAL_MORTAR], priceTypes.ptBasePrice, isTender);
|
|
|
+ },
|
|
|
+ '定额外购砼构件费': function (node, isTender) {
|
|
|
+ return calcTools.rationBaseFee(node, [gljType.PURCHASE_COMPONENT], priceTypes.ptBasePrice, isTender);
|
|
|
+ },
|
|
|
+ '定额绿化苗木费': function (node, isTender) {
|
|
|
+ return calcTools.rationBaseFee(node, [gljType.GREEN_SEEDLING], priceTypes.ptBasePrice, isTender);
|
|
|
},
|
|
|
'设备购置费': function (node, isTender) {
|
|
|
return calcTools.rationBaseFee(node, [gljType.EQUIPMENT], priceTypes.ptMarketPrice, isTender);
|