|
|
@@ -129,16 +129,15 @@ const littleFixNames = ["小修", "养护检查预算", "日常养护预算"];
|
|
|
const progression = ["养护管理单位项目管理费", "工程监理费", "设计文件审查费"];
|
|
|
const deficiency = { 工程监理费: 10000, 设计文件审查费: 10000 };
|
|
|
if (typeof baseFigureMap !== "undefined") {
|
|
|
+ // projectKind: ["日常养护"], 有指定这个属性的,表示只有“日常养护”养护类别的项目显示。没有指定这个属性的,大家都显示。
|
|
|
const { fixedFlag } = commonConstants;
|
|
|
const budgetMap = {
|
|
|
- // 显示:除清单固定类别是“建筑安装工程费”的以外部分可显示。
|
|
|
建筑安装工程费: {
|
|
|
base: "JZAZGCF",
|
|
|
fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
|
|
|
filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE],
|
|
|
pick: false,
|
|
|
},
|
|
|
- // 显示:除清单固定类别是“建筑安装工程费”的以外部分可显示
|
|
|
"建筑安装工程费(不含设备费)": {
|
|
|
base: "JZAZGCFBHSB",
|
|
|
fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
|
|
|
@@ -152,7 +151,6 @@ if (typeof baseFigureMap !== "undefined") {
|
|
|
filter: [fixedFlag.SAFE_COST],
|
|
|
pick: true,
|
|
|
},
|
|
|
- // 显示:除清单固定类别是“建筑安装工程费”的以外部分可显示
|
|
|
定额建筑安装工程费: {
|
|
|
base: "DEJZAZGCF",
|
|
|
fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
|
|
|
@@ -167,41 +165,37 @@ if (typeof baseFigureMap !== "undefined") {
|
|
|
pick: true,
|
|
|
projectKind: ["日常养护"],
|
|
|
},
|
|
|
- 指标建筑安装工程费: {
|
|
|
- base: "ZBJZAZGCF",
|
|
|
- fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
|
|
|
- filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE],
|
|
|
- pick: false,
|
|
|
- projectKind: ["日常养护年度预算"],
|
|
|
- },
|
|
|
- "指标建筑安装工程费(不含专项费用)": {
|
|
|
- base: "ZBJZAZGCFBHZXF",
|
|
|
+ 施工场地建设费: {
|
|
|
+ isProgressive: true,
|
|
|
+ base: "SGCDJSF",
|
|
|
fixedFlag: null,
|
|
|
- filter: [fixedFlag.SPECIAL_COST],
|
|
|
+ filter: [fixedFlag.CONSTRUCTION_PLANT_COST],
|
|
|
pick: true,
|
|
|
- projectKind: ["日常养护年度预算"],
|
|
|
+ projectKind: ["日常养护"],
|
|
|
},
|
|
|
- // 显示:仅清单固定类别是“养护工程其他费用”部分可显示。
|
|
|
养护管理单位项目管理费: {
|
|
|
isProgressive: true,
|
|
|
base: "YHGLDWXMGLF",
|
|
|
fixedFlag: null,
|
|
|
filter: [fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
pick: true,
|
|
|
+ projectKind: ["日常养护"],
|
|
|
},
|
|
|
信息化费: {
|
|
|
isProgressive: true,
|
|
|
- base: "YHXMXXHF",
|
|
|
+ base: "XXHF",
|
|
|
fixedFlag: null,
|
|
|
filter: [fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
pick: true,
|
|
|
+ projectKind: ["日常养护"],
|
|
|
},
|
|
|
工程监理费: {
|
|
|
isProgressive: true,
|
|
|
- base: "YHGCJLF",
|
|
|
+ base: "GCJLF",
|
|
|
fixedFlag: null,
|
|
|
filter: [fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
pick: true,
|
|
|
+ projectKind: ["日常养护"],
|
|
|
},
|
|
|
前期工作费: {
|
|
|
isProgressive: true,
|
|
|
@@ -209,28 +203,76 @@ if (typeof baseFigureMap !== "undefined") {
|
|
|
fixedFlag: null,
|
|
|
filter: [fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
pick: true,
|
|
|
+ projectKind: ["日常养护"],
|
|
|
},
|
|
|
- 施工场地建设费: {
|
|
|
- isProgressive: true,
|
|
|
- base: "SGCDJSF",
|
|
|
- fixedFlag: null,
|
|
|
- filter: [fixedFlag.CONSTRUCTION_PLANT_COST],
|
|
|
- pick: true,
|
|
|
- },
|
|
|
- // 显示:除清单固定类别是“一二三四部分合计”的以外部分可显示。
|
|
|
一二三四部分合计: {
|
|
|
base: "YESSBFHJ",
|
|
|
fixedFlag: fixedFlag.ONE_TO_FOUR_TOTAL,
|
|
|
filter: [fixedFlag.ONE_TO_FOUR_TOTAL],
|
|
|
pick: false,
|
|
|
},
|
|
|
- // 显示:仅“价差预备费”可显示
|
|
|
价差预备费: {
|
|
|
base: "JCYBF",
|
|
|
fixedFlag: null,
|
|
|
filter: [fixedFlag.SPREAD_BUDGET_FEE],
|
|
|
pick: true,
|
|
|
},
|
|
|
+
|
|
|
+ // 以下是 河南日常养护-日常养护年度预算 用到的基数。和“指标”相关
|
|
|
+ 施工场地建设费: {
|
|
|
+ isProgressive: true,
|
|
|
+ base: "ZBSGCDJSF",
|
|
|
+ fixedFlag: null,
|
|
|
+ filter: [fixedFlag.CONSTRUCTION_PLANT_COST],
|
|
|
+ pick: true,
|
|
|
+ projectKind: ["日常养护年度预算"],
|
|
|
+ },
|
|
|
+ 养护管理单位项目管理费: {
|
|
|
+ isProgressive: true,
|
|
|
+ base: "ZBYHGLDWXMGLF",
|
|
|
+ fixedFlag: null,
|
|
|
+ filter: [fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
+ pick: true,
|
|
|
+ projectKind: ["日常养护年度预算"],
|
|
|
+ },
|
|
|
+ 信息化费: {
|
|
|
+ isProgressive: true,
|
|
|
+ base: "ZBXXHF",
|
|
|
+ fixedFlag: null,
|
|
|
+ filter: [fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
+ pick: true,
|
|
|
+ projectKind: ["日常养护年度预算"],
|
|
|
+ },
|
|
|
+ 工程监理费: {
|
|
|
+ isProgressive: true,
|
|
|
+ base: "ZBGCJLF",
|
|
|
+ fixedFlag: null,
|
|
|
+ filter: [fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
+ pick: true,
|
|
|
+ projectKind: ["日常养护年度预算"],
|
|
|
+ },
|
|
|
+ 前期工作费: {
|
|
|
+ isProgressive: true,
|
|
|
+ base: "ZBQQGZF",
|
|
|
+ fixedFlag: null,
|
|
|
+ filter: [fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
+ pick: true,
|
|
|
+ projectKind: ["日常养护年度预算"],
|
|
|
+ },
|
|
|
+ 指标建筑安装工程费: {
|
|
|
+ base: "ZBJZAZGCF",
|
|
|
+ fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
|
|
|
+ filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE],
|
|
|
+ pick: false,
|
|
|
+ projectKind: ["日常养护年度预算"],
|
|
|
+ },
|
|
|
+ "指标建筑安装工程费(不含专项费用)": {
|
|
|
+ base: "ZBJZAZGCFBHZXF",
|
|
|
+ fixedFlag: null,
|
|
|
+ filter: [fixedFlag.SPECIAL_COST],
|
|
|
+ pick: true,
|
|
|
+ projectKind: ["日常养护年度预算"],
|
|
|
+ },
|
|
|
};
|
|
|
const boqMap = {
|
|
|
//仅允许用于固定类别是“第100章至700章清单”以外的清单
|
|
|
@@ -270,11 +312,11 @@ const isLittleFix = (engName) => {
|
|
|
if (typeof baseFigureTemplate !== "undefined") {
|
|
|
const { fixedFlag } = commonConstants;
|
|
|
baseFigureTemplate.budget = {
|
|
|
- // 建筑安装工程费 算法:取清单固定类别是“建筑安装工程费”的建安费。
|
|
|
+ // {建筑安装工程费} 算法:取清单固定类别是“建筑安装工程费”的建安费。
|
|
|
JZAZGCF(tender) {
|
|
|
return cbTools.getBaseFee(fixedFlag.CONSTRUCTION_INSTALL_FEE, tender, "common");
|
|
|
},
|
|
|
- // 建筑安装工程费(不含设备费)算法:取清单固定类别是“建筑安装工程费”的金额 - {设备费}。
|
|
|
+ // {建筑安装工程费(不含设备费)} 算法:取清单固定类别是“建筑安装工程费”的金额 - {设备费}。
|
|
|
JZAZGCFBHSB(tender) {
|
|
|
// const engName = projectObj.project.property.engineeringName;
|
|
|
// if (isLittleFix(engName)) {
|
|
|
@@ -287,10 +329,11 @@ if (typeof baseFigureTemplate !== "undefined") {
|
|
|
// return cbTools.getFeeWithDeduction(fixedFlag.CONSTRUCTION_INSTALL_FEE, [fixedFlag.EQUIPMENT_ACQUISITION_FEE], tender, "common");
|
|
|
// }
|
|
|
},
|
|
|
+ // {建筑安装工程费(不含安全生产费)}
|
|
|
JZAZGCFBHAQSCF(tender) {
|
|
|
return cbTools.getFeeWithDeduction(fixedFlag.CONSTRUCTION_INSTALL_FEE, [fixedFlag.SAFE_COST], tender, "common");
|
|
|
},
|
|
|
- // 定额建筑安装工程费 算法:取清单固定类别是“建筑安装工程费”的定额建安费(其中定额设备费按40%计算)。
|
|
|
+ // {定额建筑安装工程费} 算法:取清单固定类别是“建筑安装工程费”的定额建安费(其中定额设备费按40%计算)。
|
|
|
DEJZAZGCF(tender) {
|
|
|
const feeField = "rationCommon";
|
|
|
const baseFee = cbTools.getBaseFee(fixedFlag.CONSTRUCTION_INSTALL_FEE, tender, feeField);
|
|
|
@@ -298,184 +341,67 @@ if (typeof baseFigureTemplate !== "undefined") {
|
|
|
const equipmentFee = cbTools.getEquipmentFee(fixedNode, tender, "equipment");
|
|
|
return (baseFee - equipmentFee * 0.6).toDecimal(decimalObj.bills.totalPrice);
|
|
|
},
|
|
|
+ // {定额建筑安装工程费(不含专项费用)}
|
|
|
DEJZAZGCFBHZXF(tender) {
|
|
|
- // 定额建筑安装工程费(不含专项费用)
|
|
|
return cbTools.getFeeWithDeduction(fixedFlag.CONSTRUCTION_INSTALL_FEE, [fixedFlag.SPECIAL_COST], tender, "rationCommon", true);
|
|
|
},
|
|
|
- ZBJZAZGCF(tender) {
|
|
|
- const feeField = "indexCommon";
|
|
|
- const baseFee = cbTools.getBaseFee(fixedFlag.CONSTRUCTION_INSTALL_FEE, tender, feeField);
|
|
|
- const fixedNode = projectObj.project.mainTree.roots.find((node) => node.getFlag() === fixedFlag.CONSTRUCTION_INSTALL_FEE);
|
|
|
- const equipmentFee = cbTools.getEquipmentFee(fixedNode, tender, "equipment");
|
|
|
- return (baseFee - equipmentFee * 0.6).toDecimal(decimalObj.bills.totalPrice);
|
|
|
- },
|
|
|
- ZBJZAZGCFBHZXF(tender) {
|
|
|
- return cbTools.getFeeWithDeduction(fixedFlag.CONSTRUCTION_INSTALL_FEE, [fixedFlag.SPECIAL_COST], tender, "indexCommon", true);
|
|
|
- },
|
|
|
- // 设备费 算法:取清单固定类别是“设备购置”的建安费
|
|
|
- SBF(tender) {
|
|
|
- return cbTools.getBaseFee(fixedFlag.EQUIPMENT_ACQUISITION_FEE, tender, "common");
|
|
|
- },
|
|
|
- // 设备费 算法:取清单固定类别是“设备购置”的定额建安费
|
|
|
- DESBF(tender) {
|
|
|
- return cbTools.getBaseFee(fixedFlag.EQUIPMENT_ACQUISITION_FEE, tender, "rationCommon");
|
|
|
- },
|
|
|
- // 养护工程费 算法:取清单固定类别是“养护工程费”的金额。
|
|
|
- YHGCF(tender) {
|
|
|
- return cbTools.getBaseFee(fixedFlag.MAINTENANCE_FEE, tender, "common");
|
|
|
- },
|
|
|
- // 定额养护工程费 算法:取清单固定类别是“养护工程费”的定额建安费(其中定额设备费按40%计算)。
|
|
|
- DEYHGCF(tender) {
|
|
|
- // const engName = projectObj.project.property.engineeringName;
|
|
|
- const feeField = "rationCommon";
|
|
|
- // if (isLittleFix(engName)) {
|
|
|
- // 小修的没有设备购置固定行
|
|
|
- const baseFee = cbTools.getBaseFee(fixedFlag.MAINTENANCE_FEE, tender, feeField);
|
|
|
- const fixedNode = projectObj.project.mainTree.items.find((node) => node.getFlag() === fixedFlag.MAINTENANCE_FEE);
|
|
|
- const equipmentFee = cbTools.getEquipmentFee(fixedNode, tender, "equipment");
|
|
|
- return (baseFee - equipmentFee * 0.6).toDecimal(decimalObj.bills.totalPrice);
|
|
|
- // } else {
|
|
|
- // const deductFlags = [fixedFlag.EQUIPMENT_ACQUISITION_FEE];
|
|
|
- // //建安费扣除定额设备购置费
|
|
|
- // const afterDeductFee = cbTools.getFeeWithDeduction(fixedFlag.MAINTENANCE_FEE, deductFlags, tender, feeField, false);
|
|
|
- // //定额设备购置费
|
|
|
- // const equipmentAcFee = cbTools.getBaseFee(deductFlags[0], tender, "equipment");
|
|
|
- // const equipmentAcTaxFee = cbTools.getBaseFee(deductFlags[0], tender, "tax");
|
|
|
- // return (afterDeductFee + equipmentAcFee * 0.4 + equipmentAcTaxFee).toDecimal(decimalObj.bills.totalPrice);
|
|
|
- // }
|
|
|
- },
|
|
|
- // 养护管理单位项目管理费 算法:以{定额建筑安装工程费}为基数,采用累进办法计算。。
|
|
|
- YHGLDWXMGLF(tender) {
|
|
|
- const baseFee = this["DEJZAZGCF"](tender);
|
|
|
- if (!tender) {
|
|
|
- calcBase.baseProgressiveFee = baseFee;
|
|
|
- }
|
|
|
- return calculateUtil.getProgressiveFee(
|
|
|
- baseFee,
|
|
|
- "养护管理单位项目管理费",
|
|
|
- projectObj.project.property.progressiveInterval,
|
|
|
- decimalObj.bills.totalPrice,
|
|
|
- deficiency
|
|
|
- );
|
|
|
- },
|
|
|
- // 工程监理费 算法:以{定额建筑安装工程费}为基数,采用累进办法计算
|
|
|
- YHGCJLF(tender) {
|
|
|
- const baseFee = this["DEJZAZGCF"](tender);
|
|
|
- if (!tender) {
|
|
|
- calcBase.baseProgressiveFee = baseFee;
|
|
|
- }
|
|
|
- return calculateUtil.getProgressiveFee(baseFee, "工程监理费", projectObj.project.property.progressiveInterval, decimalObj.bills.totalPrice, deficiency);
|
|
|
- },
|
|
|
- // 前期工作费 以{定额建筑安装工程费}为基数,采用累进办法计算。仅清单固定类别是“养护工程其他费”部分可显示。
|
|
|
- QQGZF(tender) {
|
|
|
- const baseFee = this["DEJZAZGCF"](tender);
|
|
|
- if (!tender) {
|
|
|
- calcBase.baseProgressiveFee = baseFee;
|
|
|
- }
|
|
|
- return calculateUtil.getProgressiveFee(baseFee, "前期工作费", projectObj.project.property.progressiveInterval, decimalObj.bills.totalPrice, deficiency);
|
|
|
- },
|
|
|
- // 养护工程监理费(路线工程) 算法:以{定额建筑安装工程费}为基数,采用累进办法计算
|
|
|
- YHGCJLFLXGC(tender) {
|
|
|
- const baseFee = this["DEJZAZGCF"](tender);
|
|
|
- if (!tender) {
|
|
|
- calcBase.baseProgressiveFee = baseFee;
|
|
|
- }
|
|
|
- return calculateUtil.getProgressiveFee(
|
|
|
- baseFee,
|
|
|
- "养护工程监理费(路线工程)",
|
|
|
- projectObj.project.property.progressiveInterval,
|
|
|
- decimalObj.bills.totalPrice,
|
|
|
- deficiency
|
|
|
- );
|
|
|
- },
|
|
|
- // 养护工程监理费(桥梁及隧道工程) 算法:以{定额建筑安装工程费}为基数,采用累进办法计算
|
|
|
- YHGCJLFQLJSDGC(tender) {
|
|
|
- const baseFee = this["DEJZAZGCF"](tender);
|
|
|
+ // {施工场地建设费} 算法:以{定额养护工程费}为基数,采用累进办法计算
|
|
|
+ SGCDJSF(tender) {
|
|
|
+ const baseFee = this["DEJZAZGCFBHZXF"](tender);
|
|
|
if (!tender) {
|
|
|
calcBase.baseProgressiveFee = baseFee;
|
|
|
}
|
|
|
return calculateUtil.getProgressiveFee(
|
|
|
baseFee,
|
|
|
- "养护工程监理费(桥梁及隧道工程)",
|
|
|
+ "施工场地建设费",
|
|
|
projectObj.project.property.progressiveInterval,
|
|
|
decimalObj.bills.totalPrice,
|
|
|
deficiency
|
|
|
);
|
|
|
},
|
|
|
- // 设计文件审查费 算法:以{定额建筑安装工程费}为基数,采用累进办法计算。
|
|
|
- SJWJSCF(tender) {
|
|
|
+ // {养护管理单位项目管理费} 算法:以{定额建筑安装工程费}为基数,采用累进办法计算。。
|
|
|
+ YHGLDWXMGLF(tender) {
|
|
|
const baseFee = this["DEJZAZGCF"](tender);
|
|
|
if (!tender) {
|
|
|
calcBase.baseProgressiveFee = baseFee;
|
|
|
}
|
|
|
return calculateUtil.getProgressiveFee(
|
|
|
baseFee,
|
|
|
- "设计文件审查费",
|
|
|
+ "养护管理单位项目管理费",
|
|
|
projectObj.project.property.progressiveInterval,
|
|
|
decimalObj.bills.totalPrice,
|
|
|
deficiency
|
|
|
);
|
|
|
},
|
|
|
// {信息化费} 算法:以{定额建筑安装工程费}为基数,采用累进办法计算。仅清单固定类别是“养护工程其他费”部分可显示。(计算结果去掉不足10000元时按10000元计取)
|
|
|
- YHXMXXHF(tender) {
|
|
|
+ XXHF(tender) {
|
|
|
const baseFee = this["DEJZAZGCF"](tender);
|
|
|
if (!tender) {
|
|
|
calcBase.baseProgressiveFee = baseFee;
|
|
|
}
|
|
|
return calculateUtil.getProgressiveFee(baseFee, "信息化费", projectObj.project.property.progressiveInterval, decimalObj.bills.totalPrice, deficiency);
|
|
|
},
|
|
|
- // 养护工程设计费(路线工程) 算法:以{定额建筑安装工程费}为基数,采用累进办法计算
|
|
|
- YHGCSJFLXGC(tender) {
|
|
|
+ // {工程监理费} 算法:以{定额建筑安装工程费}为基数,采用累进办法计算
|
|
|
+ GCJLF(tender) {
|
|
|
const baseFee = this["DEJZAZGCF"](tender);
|
|
|
if (!tender) {
|
|
|
calcBase.baseProgressiveFee = baseFee;
|
|
|
}
|
|
|
- return calculateUtil.getProgressiveFee(
|
|
|
- baseFee,
|
|
|
- "养护工程设计费(路线工程)",
|
|
|
- projectObj.project.property.progressiveInterval,
|
|
|
- decimalObj.bills.totalPrice,
|
|
|
- deficiency
|
|
|
- );
|
|
|
+ return calculateUtil.getProgressiveFee(baseFee, "工程监理费", projectObj.project.property.progressiveInterval, decimalObj.bills.totalPrice, deficiency);
|
|
|
},
|
|
|
- // 养护工程设计费(独立桥梁、隧道工程) 算法:以{定额建筑安装工程费}为基数,采用累进办法计算
|
|
|
- YHGCSJFQLSDGC(tender) {
|
|
|
+ // {前期工作费} 以{定额建筑安装工程费}为基数,采用累进办法计算。仅清单固定类别是“养护工程其他费”部分可显示。
|
|
|
+ QQGZF(tender) {
|
|
|
const baseFee = this["DEJZAZGCF"](tender);
|
|
|
if (!tender) {
|
|
|
calcBase.baseProgressiveFee = baseFee;
|
|
|
}
|
|
|
- return calculateUtil.getProgressiveFee(
|
|
|
- baseFee,
|
|
|
- "养护工程设计费(独立桥梁、隧道工程)",
|
|
|
- projectObj.project.property.progressiveInterval,
|
|
|
- decimalObj.bills.totalPrice,
|
|
|
- deficiency
|
|
|
- );
|
|
|
- },
|
|
|
- // 施工场地建设费 算法:以{定额养护工程费}为基数,采用累进办法计算
|
|
|
- SGCDJSF(tender) {
|
|
|
- const baseFee = this["DEJZAZGCFBHZXF"](tender);
|
|
|
- // 小修保养类别,施工场地建设费的计算基数定额建筑安装工程费超过30000000元时,不进行累进计算,直接按500000元计取。
|
|
|
- // const engName = projectObj.project.property.engineeringName;
|
|
|
- // if (isLittleFix(engName) && baseFee > 30000000) {
|
|
|
- // return 500000;
|
|
|
- // }
|
|
|
- if (!tender) {
|
|
|
- calcBase.baseProgressiveFee = baseFee;
|
|
|
- }
|
|
|
- return calculateUtil.getProgressiveFee(
|
|
|
- baseFee,
|
|
|
- "施工场地建设费",
|
|
|
- projectObj.project.property.progressiveInterval,
|
|
|
- decimalObj.bills.totalPrice,
|
|
|
- deficiency
|
|
|
- );
|
|
|
+ return calculateUtil.getProgressiveFee(baseFee, "前期工作费", projectObj.project.property.progressiveInterval, decimalObj.bills.totalPrice, deficiency);
|
|
|
},
|
|
|
- // 一二三四部分合计 算法:取清单固定类别是“一二三四部分合计”的金额
|
|
|
+ // {一二三四部分合计} 算法:取清单固定类别是“一二三四部分合计”的金额
|
|
|
YESSBFHJ(tender) {
|
|
|
return cbTools.getBaseFee(fixedFlag.ONE_TO_FOUR_TOTAL, tender, "common");
|
|
|
},
|
|
|
- /* 价差预备费 算法:以建筑安装工程费为基数,按设计文件编制年始至养护项目工程竣工年终的年数和年工程造价增涨率计算。
|
|
|
+ /* {价差预备费} 算法:以建筑安装工程费为基数,按设计文件编制年始至养护项目工程竣工年终的年数和年工程造价增涨率计算。
|
|
|
价差预备费 P * [(1+i)^(n-1) -1]
|
|
|
P——建筑安装工程费总额(元);
|
|
|
i——年工程造价增涨率(%);
|
|
|
@@ -491,87 +417,71 @@ if (typeof baseFigureTemplate !== "undefined") {
|
|
|
//= P * [(1+i)^(n-1) -1]
|
|
|
return (installFee * (Math.pow(1 + costGrowthRate, growthPeriod - 1) - 1)).toDecimal(decimalObj.bills.totalPrice);
|
|
|
},
|
|
|
- // 设计文件审查费(一阶段) 算法:以{定额建筑安装工程费}为基数,采用累进办法计算。
|
|
|
- // 设计文件审查费(一阶段)和 设计文件审查费(二阶段)两个基数计算后金额不满2000元均应按2000元计。
|
|
|
- SJWJSCFYJD(tender) {
|
|
|
- const baseFee = this["DEJZAZGCF"](tender);
|
|
|
- if (!tender) {
|
|
|
- calcBase.baseProgressiveFee = baseFee;
|
|
|
- }
|
|
|
- const rst = calculateUtil.getProgressiveFee(
|
|
|
- baseFee,
|
|
|
- "设计文件审查费(一阶段)",
|
|
|
- projectObj.project.property.progressiveInterval,
|
|
|
- decimalObj.bills.totalPrice,
|
|
|
- deficiency
|
|
|
- );
|
|
|
- return Math.max(rst, 2000);
|
|
|
+
|
|
|
+ // 以下是 河南日常养护-日常养护年度预算 用到的基数。和“指标”相关
|
|
|
+ // {指标建筑安装工程费}
|
|
|
+ ZBJZAZGCF(tender) {
|
|
|
+ const feeField = "indexCommon";
|
|
|
+ const baseFee = cbTools.getBaseFee(fixedFlag.CONSTRUCTION_INSTALL_FEE, tender, feeField);
|
|
|
+ const fixedNode = projectObj.project.mainTree.roots.find((node) => node.getFlag() === fixedFlag.CONSTRUCTION_INSTALL_FEE);
|
|
|
+ const equipmentFee = cbTools.getEquipmentFee(fixedNode, tender, "equipment");
|
|
|
+ return (baseFee - equipmentFee * 0.6).toDecimal(decimalObj.bills.totalPrice);
|
|
|
},
|
|
|
- SJWJSCFEJD(tender) {
|
|
|
- const baseFee = this["DEJZAZGCF"](tender);
|
|
|
+ // {指标建筑安装工程费(不含专项费用)}
|
|
|
+ ZBJZAZGCFBHZXF(tender) {
|
|
|
+ return cbTools.getFeeWithDeduction(fixedFlag.CONSTRUCTION_INSTALL_FEE, [fixedFlag.SPECIAL_COST], tender, "indexCommon", true);
|
|
|
+ },
|
|
|
+ // {指标施工场地建设费}
|
|
|
+ ZBSGCDJSF(tender) {
|
|
|
+ const baseFee = this["ZBJZAZGCFBHZXF"](tender);
|
|
|
if (!tender) {
|
|
|
calcBase.baseProgressiveFee = baseFee;
|
|
|
}
|
|
|
- const rst = calculateUtil.getProgressiveFee(
|
|
|
+ return calculateUtil.getProgressiveFee(
|
|
|
baseFee,
|
|
|
- "设计文件审查费(二阶段)",
|
|
|
+ "施工场地建设费",
|
|
|
projectObj.project.property.progressiveInterval,
|
|
|
decimalObj.bills.totalPrice,
|
|
|
deficiency
|
|
|
);
|
|
|
- return Math.max(rst, 2000);
|
|
|
},
|
|
|
- GCSJFYJD(tender) {
|
|
|
- const baseFee = this["DEJZAZGCF"](tender);
|
|
|
+ // {指标养护管理单位项目管理费}
|
|
|
+ ZBYHGLDWXMGLF(tender) {
|
|
|
+ const baseFee = this["ZBJZAZGCF"](tender);
|
|
|
if (!tender) {
|
|
|
calcBase.baseProgressiveFee = baseFee;
|
|
|
}
|
|
|
return calculateUtil.getProgressiveFee(
|
|
|
baseFee,
|
|
|
- "工程设计费(一阶段)",
|
|
|
+ "养护管理单位项目管理费",
|
|
|
projectObj.project.property.progressiveInterval,
|
|
|
decimalObj.bills.totalPrice,
|
|
|
deficiency
|
|
|
);
|
|
|
},
|
|
|
- GCSJFEJD(tender) {
|
|
|
- const baseFee = this["DEJZAZGCF"](tender);
|
|
|
+ // {指标信息化费}
|
|
|
+ ZBXXHF(tender) {
|
|
|
+ const baseFee = this["ZBJZAZGCF"](tender);
|
|
|
if (!tender) {
|
|
|
calcBase.baseProgressiveFee = baseFee;
|
|
|
}
|
|
|
- return calculateUtil.getProgressiveFee(
|
|
|
- baseFee,
|
|
|
- "工程设计费(二阶段)",
|
|
|
- projectObj.project.property.progressiveInterval,
|
|
|
- decimalObj.bills.totalPrice,
|
|
|
- deficiency
|
|
|
- );
|
|
|
+ return calculateUtil.getProgressiveFee(baseFee, "信息化费", projectObj.project.property.progressiveInterval, decimalObj.bills.totalPrice, deficiency);
|
|
|
},
|
|
|
- ZBDLFJBDBZF(tender) {
|
|
|
- const baseFee = this["DEJZAZGCF"](tender);
|
|
|
+ // {指标工程监理费}
|
|
|
+ ZBGCJLF(tender) {
|
|
|
+ const baseFee = this["ZBJZAZGCF"](tender);
|
|
|
if (!tender) {
|
|
|
calcBase.baseProgressiveFee = baseFee;
|
|
|
}
|
|
|
- return calculateUtil.getProgressiveFee(
|
|
|
- baseFee,
|
|
|
- "招标代理费及标底编制费",
|
|
|
- projectObj.project.property.progressiveInterval,
|
|
|
- decimalObj.bills.totalPrice,
|
|
|
- deficiency
|
|
|
- );
|
|
|
+ return calculateUtil.getProgressiveFee(baseFee, "工程监理费", projectObj.project.property.progressiveInterval, decimalObj.bills.totalPrice, deficiency);
|
|
|
},
|
|
|
- ZBDLFJBDBZFWSXZBDL(tender) {
|
|
|
- const baseFee = this["DEJZAZGCF"](tender);
|
|
|
+ // {指标前期工作费}
|
|
|
+ ZBQQGZF(tender) {
|
|
|
+ const baseFee = this["ZBJZAZGCF"](tender);
|
|
|
if (!tender) {
|
|
|
calcBase.baseProgressiveFee = baseFee;
|
|
|
}
|
|
|
- return calculateUtil.getProgressiveFee(
|
|
|
- baseFee,
|
|
|
- "招标代理费及标底编制费(未实行招标代理)",
|
|
|
- projectObj.project.property.progressiveInterval,
|
|
|
- decimalObj.bills.totalPrice,
|
|
|
- deficiency
|
|
|
- );
|
|
|
+ return calculateUtil.getProgressiveFee(baseFee, "前期工作费", projectObj.project.property.progressiveInterval, decimalObj.bills.totalPrice, deficiency);
|
|
|
},
|
|
|
};
|
|
|
|