|
|
@@ -33,18 +33,18 @@ function overwriteRationCalcBases() {
|
|
|
rationCalcBases['定额施工机械使用费'] = function (node, isTender) {
|
|
|
return calcTools.rationBaseFee(node, baseMachineTypes, priceTypes.ptBasePrice, isTender);
|
|
|
};
|
|
|
- rationCalcBases['定额商品砼费'] = function (node, isTender) {
|
|
|
- return calcTools.rationBaseFee(node, [gljType.COMMERCIAL_CONCRETE, gljType.COMMERCIAL_MORTAR], priceTypes.ptBasePrice, isTender);
|
|
|
- };
|
|
|
+ rationCalcBases['定额商品砼费'] = function (node, isTender) {
|
|
|
+ return calcTools.rationBaseFee(node, [gljType.COMMERCIAL_CONCRETE, gljType.COMMERCIAL_MORTAR], priceTypes.ptBasePrice, isTender);
|
|
|
+ };
|
|
|
rationCalcBases['定额设备费'] = function (node, isTender) {
|
|
|
return calcTools.rationBaseFee(node, [gljType.EQUIPMENT], priceTypes.ptBasePrice, isTender);
|
|
|
};
|
|
|
rationCalcBases['定额外购砼构件费'] = function (node, isTender) {
|
|
|
- return calcTools.rationBaseFee(node, [gljType.PURCHASE_COMPONENT], priceTypes.ptBasePrice, isTender);
|
|
|
- };
|
|
|
- rationCalcBases['定额绿化苗木费'] = function (node, isTender) {
|
|
|
- return calcTools.rationBaseFee(node, [gljType.GREEN_SEEDLING], priceTypes.ptBasePrice, isTender);
|
|
|
- };
|
|
|
+ return calcTools.rationBaseFee(node, [gljType.PURCHASE_COMPONENT], priceTypes.ptBasePrice, isTender);
|
|
|
+ };
|
|
|
+ rationCalcBases['定额绿化苗木费'] = function (node, isTender) {
|
|
|
+ return calcTools.rationBaseFee(node, [gljType.GREEN_SEEDLING], priceTypes.ptBasePrice, isTender);
|
|
|
+ };
|
|
|
};
|
|
|
|
|
|
(function overwriteFeeTypes() {
|
|
|
@@ -54,13 +54,13 @@ function overwriteRationCalcBases() {
|
|
|
{ type: 'marketMaterial', name: '材料费' },
|
|
|
{ type: 'marketMachine', name: '施工机械使用费' },
|
|
|
{ type: 'marketMachineLabour', name: '施工机械人工费' },
|
|
|
- {type: 'marketEquipment', name: '设备购置费'},
|
|
|
+ { type: 'marketEquipment', name: '设备购置费' },
|
|
|
{ type: 'marketDirect', name: '直接费' },
|
|
|
|
|
|
{ type: 'labour', name: '定额人工费' },
|
|
|
{ type: 'material', name: '定额材料费' },
|
|
|
{ type: 'machine', name: '定额施工机械使用费' },
|
|
|
- {type: 'equipment', name: '定额设备费'},
|
|
|
+ { type: 'equipment', name: '定额设备费' },
|
|
|
{ type: 'direct', name: '定额直接费' },
|
|
|
|
|
|
{ type: 'measure', name: '措施费' },
|
|
|
@@ -75,142 +75,165 @@ function overwriteRationCalcBases() {
|
|
|
})();
|
|
|
|
|
|
// 清单基数
|
|
|
-if (typeof baseFigureMap !== 'undefined') {
|
|
|
- baseFigureMap.budget = {
|
|
|
- // 显示:除清单固定类别是“建筑安装工程费”的以外部分可显示。
|
|
|
- '建筑安装工程费': {
|
|
|
- base: 'JZAZGCF',
|
|
|
- fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
|
|
|
- filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE],
|
|
|
- pick: false,
|
|
|
- },
|
|
|
- // 显示:仅清单固定类别是“安全生产费”的可显示。
|
|
|
- '建筑安装工程费(不含安全生产费)': {
|
|
|
- base: 'JZAZGCFBHSC',
|
|
|
- fixedFlag: null,
|
|
|
- filter: [fixedFlag.SAFE_COST],
|
|
|
- pick: true
|
|
|
- },
|
|
|
- // 显示:仅清单固定类别是“安全生产费”的可显示。
|
|
|
- '建筑安装工程费(不含设备费)': {
|
|
|
- base: 'JZAZGCFBHSB',
|
|
|
- fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
|
|
|
- filter: [fixedFlag.SAFE_COST],
|
|
|
- pick: true
|
|
|
- },
|
|
|
- // 显示:除清单固定类别是“建筑安装工程费”的以外部分可显示。
|
|
|
- '定额建筑安装工程费': {
|
|
|
- base: 'DEJZAZGCF',
|
|
|
- fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
|
|
|
- filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE],
|
|
|
- pick: false
|
|
|
- },
|
|
|
- // 显示:仅清单固定类别是“施工场地建设费”的可显示。
|
|
|
- '定额建筑安装工程费(不含定额设备购置费及专项管理费)': {
|
|
|
- base: 'DEJZAZGCFBHSBZXGLF',
|
|
|
- fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
|
|
|
- filter: [fixedFlag.CONSTRUCTION_PLANT_COST],
|
|
|
- pick: true,
|
|
|
- },
|
|
|
- // 显示:仅清单固定类别是“养护工程其他费用”的可显示。
|
|
|
- '定额建筑安装工程费(不含专项管理费)': {
|
|
|
- base: 'DEJZAZGCFBHZXGLF',
|
|
|
- fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
|
|
|
- filter: [fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
- pick: true,
|
|
|
- },
|
|
|
- // 显示:除清单固定类别是“建筑安装工程费”、“土地使用及拆迁补偿费”的以外部分可显示。
|
|
|
- '土地使用及拆迁补偿费': {
|
|
|
- base: 'TDSYJCQBCF',
|
|
|
- fixedFlag: fixedFlag.LAND_USED_DEMOLITION,
|
|
|
- filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE, fixedFlag.LAND_USED_DEMOLITION],
|
|
|
- pick: false,
|
|
|
- },
|
|
|
- // 显示:除清单固定类别是“建筑安装工程费”、“土地使用及拆迁补偿费”、“工程建设其他费用”的以外部分可显示。
|
|
|
- '工程建设其他费用': {
|
|
|
- base: 'GCJSQTFY',
|
|
|
- fixedFlag: fixedFlag.MAINTENANCE_EXPENSES,
|
|
|
- filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE, fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
- pick: false,
|
|
|
- },
|
|
|
- // 显示:仅清单固定类别是“施工场地建设费”的可显示。
|
|
|
- '施工场地建设费': {
|
|
|
- base: 'SGCDJSF',
|
|
|
- fixedFlag: null,
|
|
|
- filter: [fixedFlag.CONSTRUCTION_PLANT_COST],
|
|
|
- pick: true,
|
|
|
- },
|
|
|
- // 显示:仅清单固定类别是“养护工程其他费用”部分可显示。
|
|
|
- '养护单位管理费': {
|
|
|
- base: 'YHDWGLF',
|
|
|
- fixedFlag: null,
|
|
|
- filter: [fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
- pick: true,
|
|
|
- },
|
|
|
- // 显示:仅清单固定类别是“养护工程其他费用”部分可显示。
|
|
|
- '养护项目信息化费': {
|
|
|
- base: 'YHXMXXHF',
|
|
|
- fixedFlag: null,
|
|
|
- filter: [fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
- pick: true,
|
|
|
- },
|
|
|
- // 显示:仅清单固定类别是“养护工程其他费用”部分可显示。
|
|
|
- '工程监理费': {
|
|
|
- base: 'GCJLF',
|
|
|
- fixedFlag: null,
|
|
|
- filter: [fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
- pick: true,
|
|
|
- },
|
|
|
- // 显示:只有清单固定类别是“养护工程其他费用”部分可显示。
|
|
|
- '设计文件审查费': {
|
|
|
- base: 'SJWJSCF',
|
|
|
- fixedFlag: null,
|
|
|
- filter: [fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
- pick: true,
|
|
|
- },
|
|
|
- // 显示:只有清单固定类别是“养护工程其他费用”部分可显示。
|
|
|
- '前期工作费': {
|
|
|
- base: 'QQGZF',
|
|
|
- fixedFlag: null,
|
|
|
- filter: [fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
- pick: true,
|
|
|
- },
|
|
|
- // 显示:仅“价差预备费”可显示
|
|
|
- '价差预备费': {
|
|
|
- base: 'JCYBF',
|
|
|
- fixedFlag: null,
|
|
|
- filter: [fixedFlag.SPREAD_BUDGET_FEE],
|
|
|
- pick: true,
|
|
|
- },
|
|
|
- };
|
|
|
+const budgetMap = {
|
|
|
+ // 显示:除清单固定类别是“建筑安装工程费”的以外部分可显示。
|
|
|
+ '建筑安装工程费': {
|
|
|
+ base: 'JZAZGCF',
|
|
|
+ fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
|
|
|
+ filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE],
|
|
|
+ pick: false,
|
|
|
+ },
|
|
|
+ // 显示:仅清单固定类别是“安全生产费”的可显示。
|
|
|
+ '建筑安装工程费(不含安全生产费)': {
|
|
|
+ base: 'JZAZGCFBHSC',
|
|
|
+ fixedFlag: null,
|
|
|
+ filter: [fixedFlag.SAFE_COST],
|
|
|
+ pick: true
|
|
|
+ },
|
|
|
+ // 显示:仅清单固定类别是“安全生产费”的可显示。
|
|
|
+ '建筑安装工程费(不含设备费)': {
|
|
|
+ base: 'JZAZGCFBHSB',
|
|
|
+ fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
|
|
|
+ filter: [fixedFlag.SAFE_COST],
|
|
|
+ pick: true
|
|
|
+ },
|
|
|
+ // 显示:除清单固定类别是“建筑安装工程费”的以外部分可显示。
|
|
|
+ '定额建筑安装工程费': {
|
|
|
+ base: 'DEJZAZGCF',
|
|
|
+ fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
|
|
|
+ filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE],
|
|
|
+ pick: false
|
|
|
+ },
|
|
|
+ // 显示:仅清单固定类别是“施工场地建设费”的可显示。
|
|
|
+ '定额建筑安装工程费(不含定额设备购置费及专项管理费)': {
|
|
|
+ base: 'DEJZAZGCFBHSBZXGLF',
|
|
|
+ fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
|
|
|
+ filter: [fixedFlag.CONSTRUCTION_PLANT_COST],
|
|
|
+ pick: true,
|
|
|
+ },
|
|
|
+ // 显示:仅清单固定类别是“养护工程其他费用”的可显示。
|
|
|
+ '定额建筑安装工程费(不含专项管理费)': {
|
|
|
+ base: 'DEJZAZGCFBHZXGLF',
|
|
|
+ fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
|
|
|
+ filter: [fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
+ pick: true,
|
|
|
+ },
|
|
|
+ // 显示:除清单固定类别是“建筑安装工程费”、“土地使用及拆迁补偿费”的以外部分可显示。
|
|
|
+ '土地使用及拆迁补偿费': {
|
|
|
+ base: 'TDSYJCQBCF',
|
|
|
+ fixedFlag: fixedFlag.LAND_USED_DEMOLITION,
|
|
|
+ filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE, fixedFlag.LAND_USED_DEMOLITION],
|
|
|
+ pick: false,
|
|
|
+ },
|
|
|
+ // 显示:除清单固定类别是“建筑安装工程费”、“土地使用及拆迁补偿费”、“工程建设其他费用”的以外部分可显示。
|
|
|
+ '工程建设其他费用': {
|
|
|
+ base: 'GCJSQTFY',
|
|
|
+ fixedFlag: fixedFlag.MAINTENANCE_EXPENSES,
|
|
|
+ filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE, fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
+ pick: false,
|
|
|
+ },
|
|
|
+ // 显示:仅清单固定类别是“施工场地建设费”的可显示。
|
|
|
+ '施工场地建设费': {
|
|
|
+ isProgressive: true,
|
|
|
+ base: 'SGCDJSF',
|
|
|
+ fixedFlag: null,
|
|
|
+ filter: [fixedFlag.CONSTRUCTION_PLANT_COST],
|
|
|
+ pick: true,
|
|
|
+ },
|
|
|
+ // 显示:仅清单固定类别是“养护工程其他费用”部分可显示。
|
|
|
+ '养护单位管理费': {
|
|
|
+ isProgressive: true,
|
|
|
+ base: 'YHDWGLF',
|
|
|
+ fixedFlag: null,
|
|
|
+ filter: [fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
+ pick: true,
|
|
|
+ },
|
|
|
+ // 显示:仅清单固定类别是“养护工程其他费用”部分可显示。
|
|
|
+ '养护项目信息化费': {
|
|
|
+ isProgressive: true,
|
|
|
+ deficiency: 20000,
|
|
|
+ base: 'YHXMXXHF',
|
|
|
+ fixedFlag: null,
|
|
|
+ filter: [fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
+ pick: true,
|
|
|
+ },
|
|
|
+ // 显示:仅清单固定类别是“养护工程其他费用”部分可显示。
|
|
|
+ '工程监理费': {
|
|
|
+ isProgressive: true,
|
|
|
+ deficiency: 20000,
|
|
|
+ base: 'GCJLF',
|
|
|
+ fixedFlag: null,
|
|
|
+ filter: [fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
+ pick: true,
|
|
|
+ },
|
|
|
+ // 显示:只有清单固定类别是“养护工程其他费用”部分可显示。
|
|
|
+ '设计文件审查费': {
|
|
|
+ isProgressive: true,
|
|
|
+ base: 'SJWJSCF',
|
|
|
+ fixedFlag: null,
|
|
|
+ filter: [fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
+ pick: true,
|
|
|
+ },
|
|
|
+ // 显示:只有清单固定类别是“养护工程其他费用”部分可显示。
|
|
|
+ '前期工作费': {
|
|
|
+ isProgressive: true,
|
|
|
+ deficiency: 30000,
|
|
|
+ base: 'QQGZF',
|
|
|
+ fixedFlag: null,
|
|
|
+ filter: [fixedFlag.MAINTENANCE_EXPENSES],
|
|
|
+ pick: true,
|
|
|
+ },
|
|
|
+ // 显示:仅“价差预备费”可显示
|
|
|
+ '价差预备费': {
|
|
|
+ base: 'JCYBF',
|
|
|
+ fixedFlag: null,
|
|
|
+ filter: [fixedFlag.SPREAD_BUDGET_FEE],
|
|
|
+ pick: true,
|
|
|
+ },
|
|
|
+};
|
|
|
+const boqMap = {
|
|
|
+ //仅允许用于固定类别是“第100章至700章清单”以外的清单
|
|
|
+ '各章清单合计': {
|
|
|
+ base: 'GZQDHJ',
|
|
|
+ fixedFlag: fixedFlag.ONE_SEVEN_BILLS,
|
|
|
+ filter: [fixedFlag.ONE_SEVEN_BILLS],
|
|
|
+ pick: false
|
|
|
+ },
|
|
|
+ //仅允许用于固定类别是“第100章至700章清单”以外的清单
|
|
|
+ '专项暂定合计': {
|
|
|
+ base: 'ZXZDHJ',
|
|
|
+ fixedFlag: null,
|
|
|
+ filter: [fixedFlag.ONE_SEVEN_BILLS],
|
|
|
+ pick: false
|
|
|
+ },
|
|
|
+ /*
|
|
|
+ * 清单固定行[第100章至700章清单]下的[第100章清单]需要允许清单可使用基数{100章以外合计}
|
|
|
+ * 因此{100章以外合计}不设置关联的清单固定行
|
|
|
+ * */
|
|
|
+ //仅允许用于固定类别为“100章清单”引用
|
|
|
+ '100章以外清单合计': {
|
|
|
+ base: 'YBZYHQDHJ',
|
|
|
+ fixedFlag: null,
|
|
|
+ filter: [fixedFlag.ONE_HUNDRED_BILLS],
|
|
|
+ pick: true
|
|
|
+ }
|
|
|
+};
|
|
|
|
|
|
- baseFigureMap.boq = {
|
|
|
- //仅允许用于固定类别是“第100章至700章清单”以外的清单
|
|
|
- '各章清单合计': {
|
|
|
- base: 'GZQDHJ',
|
|
|
- fixedFlag: fixedFlag.ONE_SEVEN_BILLS,
|
|
|
- filter: [fixedFlag.ONE_SEVEN_BILLS],
|
|
|
- pick: false
|
|
|
- },
|
|
|
- //仅允许用于固定类别是“第100章至700章清单”以外的清单
|
|
|
- '专项暂定合计': {
|
|
|
- base: 'ZXZDHJ',
|
|
|
- fixedFlag: null,
|
|
|
- filter: [fixedFlag.ONE_SEVEN_BILLS],
|
|
|
- pick: false
|
|
|
- },
|
|
|
- /*
|
|
|
- * 清单固定行[第100章至700章清单]下的[第100章清单]需要允许清单可使用基数{100章以外合计}
|
|
|
- * 因此{100章以外合计}不设置关联的清单固定行
|
|
|
- * */
|
|
|
- //仅允许用于固定类别为“100章清单”引用
|
|
|
- '100章以外清单合计': {
|
|
|
- base: 'YBZYHQDHJ',
|
|
|
- fixedFlag: null,
|
|
|
- filter: [fixedFlag.ONE_HUNDRED_BILLS],
|
|
|
- pick: true
|
|
|
- }
|
|
|
- };
|
|
|
+const progression = [];
|
|
|
+const deficiency = {};
|
|
|
+for (const name in budgetMap) {
|
|
|
+ const item = budgetMap[name];
|
|
|
+ if (item.isProgressive) {
|
|
|
+ progression.push(item.progressiveName || name);
|
|
|
+ }
|
|
|
+ if (item.deficiency) {
|
|
|
+ deficiency[item.progressiveName || name] = item.deficiency;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+if (typeof baseFigureMap !== 'undefined') {
|
|
|
+ baseFigureMap.budget = budgetMap;
|
|
|
+ baseFigureMap.boq = boqMap;
|
|
|
}
|
|
|
|
|
|
if (typeof baseFigureTemplate !== 'undefined') {
|
|
|
@@ -271,7 +294,7 @@ if (typeof baseFigureTemplate !== 'undefined') {
|
|
|
if (!tender) {
|
|
|
calcBase.baseProgressiveFee = baseFee;
|
|
|
}
|
|
|
- return calculateUtil.getProgressiveFee(baseFee, '施工场地建设费', projectObj.project.property.progressiveInterval, decimalObj.bills.totalPrice);
|
|
|
+ return calculateUtil.getProgressiveFee(baseFee, '施工场地建设费', projectObj.project.property.progressiveInterval, decimalObj.bills.totalPrice, deficiency);
|
|
|
},
|
|
|
// 养护单位管理费 算法:以{定额建筑安装工程费(不含专项管理费) }为基数,采用累进办法计算。
|
|
|
YHDWGLF(tender) {
|
|
|
@@ -279,7 +302,7 @@ if (typeof baseFigureTemplate !== 'undefined') {
|
|
|
if (!tender) {
|
|
|
calcBase.baseProgressiveFee = baseFee;
|
|
|
}
|
|
|
- return calculateUtil.getProgressiveFee(baseFee, '养护单位管理费', projectObj.project.property.progressiveInterval, decimalObj.bills.totalPrice);
|
|
|
+ return calculateUtil.getProgressiveFee(baseFee, '养护单位管理费', projectObj.project.property.progressiveInterval, decimalObj.bills.totalPrice, deficiency);
|
|
|
},
|
|
|
// 养护项目信息化费 算法:以{定额建筑安装工程费}为基数,采用累进办法计算。(不足20000元时按20000元计算)
|
|
|
YHXMXXHF(tender) {
|
|
|
@@ -287,8 +310,7 @@ if (typeof baseFigureTemplate !== 'undefined') {
|
|
|
if (!tender) {
|
|
|
calcBase.baseProgressiveFee = baseFee;
|
|
|
}
|
|
|
- const fee = calculateUtil.getProgressiveFee(baseFee, '养护项目信息化费', projectObj.project.property.progressiveInterval, decimalObj.bills.totalPrice);
|
|
|
- return fee > 0 && fee < 20000 ? 20000 : fee;
|
|
|
+ return calculateUtil.getProgressiveFee(baseFee, '养护项目信息化费', projectObj.project.property.progressiveInterval, decimalObj.bills.totalPrice, deficiency);
|
|
|
},
|
|
|
// 工程监理费 算法:以{定额建筑安装工程费(不含专项管理费) }为基数,采用累进办法计算。(不足20000元时按20000元计算)
|
|
|
GCJLF(tender) {
|
|
|
@@ -296,8 +318,7 @@ if (typeof baseFigureTemplate !== 'undefined') {
|
|
|
if (!tender) {
|
|
|
calcBase.baseProgressiveFee = baseFee;
|
|
|
}
|
|
|
- const fee = calculateUtil.getProgressiveFee(baseFee, '工程监理费', projectObj.project.property.progressiveInterval, decimalObj.bills.totalPrice);
|
|
|
- return fee > 0 && fee < 20000 ? 20000 : fee;
|
|
|
+ return calculateUtil.getProgressiveFee(baseFee, '工程监理费', projectObj.project.property.progressiveInterval, decimalObj.bills.totalPrice, deficiency);
|
|
|
},
|
|
|
// 设计文件审查费 算法:以{定额建筑安装工程费(不含专项管理费) }为基数,采用累进办法计算。
|
|
|
SJWJSCF(tender) {
|
|
|
@@ -305,7 +326,7 @@ if (typeof baseFigureTemplate !== 'undefined') {
|
|
|
if (!tender) {
|
|
|
calcBase.baseProgressiveFee = baseFee;
|
|
|
}
|
|
|
- return calculateUtil.getProgressiveFee(baseFee, '设计文件审查费', projectObj.project.property.progressiveInterval, decimalObj.bills.totalPrice);
|
|
|
+ return calculateUtil.getProgressiveFee(baseFee, '设计文件审查费', projectObj.project.property.progressiveInterval, decimalObj.bills.totalPrice, deficiency);
|
|
|
},
|
|
|
// 前期工作费 算法:以{定额建筑安装工程费(不含专项管理费) }为基数,采用累进办法计算。(不足30000元时按30000元计算)
|
|
|
QQGZF(tender) {
|
|
|
@@ -313,8 +334,7 @@ if (typeof baseFigureTemplate !== 'undefined') {
|
|
|
if (!tender) {
|
|
|
calcBase.baseProgressiveFee = baseFee;
|
|
|
}
|
|
|
- const fee = calculateUtil.getProgressiveFee(baseFee, '前期工作费', projectObj.project.property.progressiveInterval, decimalObj.bills.totalPrice);
|
|
|
- return fee > 0 && fee < 30000 ? 30000 : fee;
|
|
|
+ return calculateUtil.getProgressiveFee(baseFee, '前期工作费', projectObj.project.property.progressiveInterval, decimalObj.bills.totalPrice, deficiency);
|
|
|
},
|
|
|
/* 价差预备费 算法:以建筑安装工程费为基数,按设计文件编制年始至养护项目工程竣工年终的年数和年工程造价增涨率计算。
|
|
|
价差预备费 P * [(1+i)^(n-1) -1]
|
|
|
@@ -326,12 +346,12 @@ if (typeof baseFigureTemplate !== 'undefined') {
|
|
|
//建筑安装工程费作为基数
|
|
|
const installFee = this['JZAZGCF'](tender);
|
|
|
//年造价增涨
|
|
|
- const costGrowthRate = calcBase.project.property.costGrowthRate
|
|
|
- ? calcBase.project.property.costGrowthRate
|
|
|
+ const costGrowthRate = calcBase.project.property.costGrowthRate
|
|
|
+ ? calcBase.project.property.costGrowthRate
|
|
|
: 0;
|
|
|
//增涨计费年限
|
|
|
- const growthPeriod = projectObj.project.property.growthPeriod
|
|
|
- ? calcBase.project.property.growthPeriod
|
|
|
+ const growthPeriod = projectObj.project.property.growthPeriod
|
|
|
+ ? calcBase.project.property.growthPeriod
|
|
|
: 0;
|
|
|
//= P * [(1+i)^(n-1) -1]
|
|
|
return (installFee * (Math.pow(1 + costGrowthRate, growthPeriod - 1) - 1)).toDecimal(decimalObj.bills.totalPrice);
|
|
|
@@ -396,8 +416,15 @@ if (typeof baseFigureTemplate !== 'undefined') {
|
|
|
|
|
|
// 安徽养护在新建分段的时候需要隐藏养护类别和费用标准
|
|
|
if (typeof $ !== 'undefined') { // 后端也有引用这个文件,后端引用时$没有定义会报错
|
|
|
- $(document).ready(function() {
|
|
|
+ $(document).ready(function () {
|
|
|
$('#tender-engineering-group').hide();
|
|
|
$('#tender-feeStandard-group').hide();
|
|
|
});
|
|
|
+}
|
|
|
+
|
|
|
+if (typeof module !== 'undefined') {
|
|
|
+ module.exports = {
|
|
|
+ progression,
|
|
|
+ deficiency
|
|
|
+ };
|
|
|
}
|