| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605 |
- /**
- * Created by CSL on 2022/12/19. 内蒙古高速养护(2022)。
- */
- function overwriteRationCalcBases() {
- if (typeof rationCalcBases == "undefined") return;
- for (let key in rationCalcBases) delete rationCalcBases[key];
- rationCalcBases["人工费"] = function (node, isTender) {
- return calcTools.rationBaseFee(node, [gljType.LABOUR], priceTypes.ptMarketPrice, isTender);
- };
- rationCalcBases["材料费"] = function (node, isTender) {
- return calcTools.rationBaseFee(node, baseMaterialTypes, priceTypes.ptMarketPrice, isTender);
- };
- rationCalcBases["施工机械使用费"] = function (node, isTender) {
- return calcTools.rationBaseFee(node, baseMachineTypes, priceTypes.ptMarketPrice, isTender);
- };
- rationCalcBases["施工机械人工费"] = function (node, isTender) {
- return calcTools.machineDetailFee(node, node.data.gljList, [], gljType.MACHINE_LABOUR, isTender);
- };
- rationCalcBases["设备购置费"] = function (node, isTender) {
- return calcTools.rationBaseFee(node, [gljType.EQUIPMENT], priceTypes.ptMarketPrice, isTender);
- };
- rationCalcBases["定额人工费"] = function (node, isTender) {
- return calcTools.rationBaseFee(node, [gljType.LABOUR], priceTypes.ptBasePrice, isTender);
- };
- rationCalcBases["定额材料费"] = function (node, isTender) {
- return calcTools.rationBaseFee(node, baseMaterialTypes, priceTypes.ptBasePrice, isTender);
- };
- 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.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);
- };
- }
- (function overwriteFeeTypes() {
- if (typeof cpFeeTypes == "undefined") return;
- cpFeeTypes = [
- { type: "marketDirect", name: "直接费" },
- { type: "marketLabour", name: "人工费" },
- { type: "marketMaterial", name: "材料费" },
- { type: "marketMachine", name: "施工机械使用费" },
- { type: "marketMachineLabour", name: "施工机械人工费" },
- { type: "marketEquipment", name: "设备购置费" },
- { type: "labour", name: "定额人工费" },
- { type: "material", name: "定额材料费" },
- { type: "machine", name: "定额施工机械使用费" },
- { type: "equipment", name: "定额设备购置费" },
- { type: "direct", name: "定额直接费" },
- { type: "measure", name: "措施费" },
- { type: "manage", name: "企业管理费" },
- { type: "force", name: "规费" },
- { type: "profit", name: "利润" },
- { type: "tax", name: "税金" },
- { type: "common", name: "建安费" },
- { type: "rationCommon", name: "定额建安费" },
- ];
- })();
- // 清单基数
- const progression = [
- "养护单位项目管理费",
- "养护项目信息化费",
- "工程监理费",
- "工程设计费",
- "设计文件审查费(一阶段)",
- "设计文件审查费(二阶段)",
- "采用一阶段施工图设计的养护工程项目前期工作费",
- "采用一阶段技术(方案)设计的养护工程项目前期工作费",
- "独立进行维修、加固的一般桥梁工程设计费",
- "独立进行维修、加固的技术复杂大桥工程设计费",
- "独立进行维修、加固的隧道工程设计费",
- "招标费",
- ];
- const deficiency = {
- 设计文件审查费: 3000,
- 工程设计费: 5000,
- "设计文件审查费(一阶段)": 3000,
- "设计文件审查费(二阶段)": 3000,
- 采用一阶段施工图设计的养护工程项目前期工作费: 5000,
- "采用一阶段技术(方案)设计的养护工程项目前期工作费": 5000,
- "独立进行维修、加固的一般桥梁工程设计费": 5000,
- "独立进行维修、加固的技术复杂大桥工程设计费": 5000,
- "独立进行维修、加固的隧道工程设计费": 5000,
- 招标费: 5000,
- };
- if (typeof baseFigureMap !== "undefined") {
- const { fixedFlag } = commonConstants;
- const budgetMap = {
- // 清单固定类别是“建筑安装工程费”的以外部分可显示:取清单固定类别是“建筑安装工程”的金额
- 建筑安装工程费: {
- base: "JZAZGCF",
- fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
- filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE],
- pick: false,
- },
- // 清单固定类别是“建筑安装工程费”的以外部分可显示。(定额设备购置费按40%计)
- 定额建筑安装工程费: {
- // base: "DEJZAZGCFSBSS",
- base: "DEJZAZGCF",
- fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
- filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE],
- pick: false,
- },
- // 清单固定类别是“建筑安装工程费”的以外部分可显示
- "建筑安装工程费(不含设备费)": {
- base: "JZAZGCFBHSB",
- fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
- filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE],
- pick: false,
- },
- "定额建筑安装工程费(不含专项费用)": {
- base: "DEJZAZGCFBHZXF",
- fixedFlag: null,
- filter: [fixedFlag.SPECIAL_COST],
- pick: true,
- },
- "建筑安装工程费(不含安全生产费)": {
- base: "JZAZGCFBHAQSCF",
- // fixedFlag: fixedFlag.CONSTRUCTION_INSTALL_FEE,
- fixedFlag: null,
- filter: [fixedFlag.SAFE_COST],
- pick: true,
- },
- // 取清单固定类别是“养护工程其他费”的金额。“建筑安装工程费”、“养护工程其他费”以外部分可显示。
- 养护工程其他费: {
- base: "YHGCQTFY",
- fixedFlag: fixedFlag.MAINTENANCE_EXPENSES,
- filter: [fixedFlag.CONSTRUCTION_INSTALL_FEE, fixedFlag.LAND_USED_DEMOLITION, fixedFlag.MAINTENANCE_EXPENSES],
- pick: false,
- },
- // 养护管理单位项目管理费: 按“定额建筑安装工程费”为基数,以累进办法计算。仅在清单固定类别是“养护工程其他费”的清单显示
- 养护管理单位项目管理费: {
- isProgressive: true,
- base: "YHDWXMGLF",
- fixedFlag: null,
- filter: [fixedFlag.MAINTENANCE_EXPENSES],
- pick: true,
- },
- // 养护管理单位项目管理费: 按“定额建筑安装工程费”为基数,以累进办法计算。仅在清单固定类别是“养护工程其他费”的清单显示
- 养护项目信息化费: {
- isProgressive: true,
- base: "XXHF",
- fixedFlag: null,
- filter: [fixedFlag.MAINTENANCE_EXPENSES],
- pick: true,
- },
- // 工程监理费: 按“定额建筑安装工程费”为基数,以累进办法计算。仅在清单固定类别是“养护工程其他费”的清单显示
- 工程监理费: {
- isProgressive: true,
- base: "GCJLF",
- fixedFlag: null,
- filter: [fixedFlag.MAINTENANCE_EXPENSES],
- pick: true,
- },
- // 工程设计费: 按“定额建筑安装工程费”为基数,以累进办法计算。仅在清单固定类别是“养护工程其他费”的清单显示。不足5000元,按5000元计取。
- 工程设计费: {
- isProgressive: true,
- deficiency: 5000,
- base: "GCSJF",
- fixedFlag: null,
- filter: [fixedFlag.MAINTENANCE_EXPENSES],
- pick: true,
- },
- // 设计文件审查费(一阶段): 按“定额建筑安装工程费”为基数,以累进办法计算。只有清单固定类别是“养护工程其他费用”部分可显示。不足3000元,按3000元计取。
- "设计文件审查费(一阶段)": {
- isProgressive: true,
- deficiency: 3000,
- base: "SJWJSCFYJD",
- fixedFlag: null,
- filter: [fixedFlag.MAINTENANCE_EXPENSES],
- pick: true,
- },
- // 设计文件审查费(二阶段): 按“定额建筑安装工程费”为基数,以累进办法计算。只有清单固定类别是“养护工程其他费用”部分可显示。不足3000元,按3000元计取。
- "设计文件审查费(二阶段)": {
- isProgressive: true,
- deficiency: 3000,
- base: "SJWJSCFEJD",
- fixedFlag: null,
- filter: [fixedFlag.MAINTENANCE_EXPENSES],
- pick: true,
- },
- // 采用一阶段施工图设计的养护工程项目前期工作费: 按“定额建筑安装工程费”为基数,以累进办法计算。只有清单固定类别是“养护工程其他费用”部分可显示。不足5000元,按5000元计取。
- 采用一阶段施工图设计的养护工程项目前期工作费: {
- isProgressive: true,
- deficiency: 5000,
- base: "SGTSJQQGZF",
- fixedFlag: null,
- filter: [fixedFlag.MAINTENANCE_EXPENSES],
- pick: true,
- },
- // 采用一阶段技术(方案)设计的养护工程项目前期工作费: 按“定额建筑安装工程费”为基数,以累进办法计算。只有清单固定类别是“养护工程其他费用”部分可显示。不足5000元,按5000元计取。
- "采用一阶段技术(方案)设计的养护工程项目前期工作费": {
- isProgressive: true,
- deficiency: 5000,
- base: "JSFASJQQGZF",
- fixedFlag: null,
- filter: [fixedFlag.MAINTENANCE_EXPENSES],
- pick: true,
- },
- // 独立进行维修、加固的一般桥梁工程设计费: 按“定额建筑安装工程费”为基数,以累进办法计算。只有清单固定类别是“养护工程其他费用”部分可显示。不足5000元,按5000元计取。
- "独立进行维修、加固的一般桥梁工程设计费": {
- isProgressive: true,
- deficiency: 5000,
- base: "DLLXJXWXJGDYBQLGCSJF",
- fixedFlag: null,
- filter: [fixedFlag.MAINTENANCE_EXPENSES],
- pick: true,
- },
- // 独立进行维修、加固的技术复杂大桥工程设计费: 按“定额建筑安装工程费”为基数,以累进办法计算。只有清单固定类别是“养护工程其他费用”部分可显示。不足5000元,按5000元计取。
- "独立进行维修、加固的技术复杂大桥工程设计费": {
- isProgressive: true,
- deficiency: 5000,
- base: "DLLXJXWXJGDJSFZDQGCSJF",
- fixedFlag: null,
- filter: [fixedFlag.MAINTENANCE_EXPENSES],
- pick: true,
- },
- // 独立进行维修、加固的隧道工程设计费: 按“定额建筑安装工程费”为基数,以累进办法计算。只有清单固定类别是“养护工程其他费用”部分可显示。不足5000元,按5000元计取。
- "独立进行维修、加固的隧道工程设计费": {
- isProgressive: true,
- deficiency: 5000,
- base: "DLLXJXWXJGDSDGCSJF",
- fixedFlag: null,
- filter: [fixedFlag.MAINTENANCE_EXPENSES],
- pick: true,
- },
- // 招标费: 按“定额建筑安装工程费”为基数,以累进办法计算。只有清单固定类别是“养护工程其他费用”部分可显示。不足5000元,按5000元计取。
- 招标费: {
- isProgressive: true,
- deficiency: 5000,
- base: "ZBF",
- fixedFlag: null,
- filter: [fixedFlag.MAINTENANCE_EXPENSES],
- pick: true,
- },
- // 工程保险费: 按“定额建筑安装工程费(不含设备费)”为基数,以0.4费率计算。仅清单固定类别是“养护工程其他费”可显示。
- 工程保险费: {
- base: "GCBXF",
- 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.budget = budgetMap;
- baseFigureMap.boq = boqMap;
- }
- // 清单基数
- if (typeof baseFigureTemplate !== "undefined") {
- const { fixedFlag } = commonConstants;
- baseFigureTemplate.budget = {
- // 建筑安装工程费
- JZAZGCF(tender) {
- return cbTools.getBaseFee(fixedFlag.CONSTRUCTION_INSTALL_FEE, tender, "common");
- },
- // 定额建筑安装工程费(定额设备购置费按40%计): 算法1:直接减去设备购置的60%,其它全部在(全额设备税金)
- DEJZAZGCF(tender) {
- const feeField = "rationCommon";
- 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);
- },
- // 定额建筑安装工程费(定额设备购置费按40%计): 算法2:有“定额设备购置费”的清单,取其40%
- DEJZAZGCFSBSS(tender) {
- const feeField = "rationCommon";
- //建安费扣除定额设备购置费
- const afterDeductFee = cbTools.getFeeWithDeduction(fixedFlag.CONSTRUCTION_INSTALL_FEE, [fixedFlag.EQUIPMENT_ACQUISITION_FEE], tender, feeField, false);
- //定额设备购置费
- const equipmentAcFee = cbTools.getBaseFee(fixedFlag.EQUIPMENT_ACQUISITION_FEE, tender, feeField);
- return (afterDeductFee + equipmentAcFee * 0.4).toDecimal(decimalObj.bills.totalPrice);
- },
- // 建筑安装工程费(不含设备费):取清单固定类别是“建筑安装工程”的金额,但要扣除清单固定类别是“设备购置费”的金额
- // JZAZGCFBHSB(tender) {
- // //建安费扣除设备费
- // return cbTools.getFeeWithDeduction(fixedFlag.CONSTRUCTION_INSTALL_FEE, [fixedFlag.EQUIPMENT_ACQUISITION_FEE], tender, "common");
- // },
- JZAZGCFBHSB(tender) {
- const baseFee = cbTools.getBaseFee(fixedFlag.CONSTRUCTION_INSTALL_FEE, tender, "common");
- const fixedNode = projectObj.project.mainTree.roots.find((node) => node.getFlag() === fixedFlag.CONSTRUCTION_INSTALL_FEE);
- const equipmentFee = cbTools.getEquipmentFee(fixedNode, tender, "common");
- return (baseFee - equipmentFee).toDecimal(decimalObj.bills.totalPrice);
- },
- // 土地使用及拆迁补偿费:取清单固定类别是“土地使用及拆迁补偿费”的金额
- TDSYJCQBCF(tender) {
- return cbTools.getBaseFee(fixedFlag.LAND_USED_DEMOLITION, tender, "common");
- },
- // 养护工程其他费用:取清单固定类别是“养护工程其他费用”的金额
- YHGCQTFY(tender) {
- return cbTools.getBaseFee(fixedFlag.MAINTENANCE_EXPENSES, tender, "common");
- },
- // 预备费:取清单固定类别是“预备费”的金额
- YBF(tender) {
- return cbTools.getBaseFee(fixedFlag.BUDGET_FEE, tender, "common");
- },
- // 养护单位项目管理费
- YHDWXMGLF(tender) {
- const baseFee = this.DEJZAZGCF(tender);
- if (!tender) {
- calcBase.baseProgressiveFee = baseFee;
- }
- return calculateUtil.getProgressiveFee(
- baseFee,
- "养护单位项目管理费",
- projectObj.project.property.progressiveInterval,
- decimalObj.bills.totalPrice,
- deficiency
- );
- },
- // 信息化费
- XXHF(tender) {
- const baseFee = this.DEJZAZGCF(tender);
- if (!tender) {
- calcBase.baseProgressiveFee = baseFee;
- }
- return calculateUtil.getProgressiveFee(baseFee, "信息化费", projectObj.project.property.progressiveInterval, decimalObj.bills.totalPrice, deficiency);
- },
- // 工程监理费
- GCJLF(tender) {
- const baseFee = this.DEJZAZGCF(tender);
- if (!tender) {
- calcBase.baseProgressiveFee = baseFee;
- }
- return calculateUtil.getProgressiveFee(baseFee, "工程监理费", projectObj.project.property.progressiveInterval, decimalObj.bills.totalPrice, deficiency);
- },
- // 价差预备费
- JCYBF(tender) {
- //建筑安装工程费作为基数
- const installFee = this["JZAZGCF"](tender);
- //年造价增涨
- const costGrowthRate = calcBase.project.property.costGrowthRate ? calcBase.project.property.costGrowthRate : 0;
- //增涨计费年限
- 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);
- },
- // 定额建筑安装工程费(不含专项费用)
- // DEJZAZGCFBHZXF(tender) {
- // const baseFee = this["DEJZAZGCF"](tender);
- // const zxf = cbTools.getBaseFee(fixedFlag.SPECIAL_COST, tender, "rationCommon");
- // return (baseFee - zxf).toDecimal(decimalObj.bills.totalPrice);
- // },
- DEJZAZGCFBHZXF(tender) {
- // 定额建筑安装工程费(不含专项费用)
- return cbTools.getFeeWithDeduction(fixedFlag.CONSTRUCTION_INSTALL_FEE, [fixedFlag.SPECIAL_COST], tender, "rationCommon", true);
- },
- // {建筑安装工程费(不含安全生产费)}
- JZAZGCFBHAQSCF(tender) {
- return cbTools.getFeeWithDeduction(fixedFlag.CONSTRUCTION_INSTALL_FEE, [fixedFlag.SAFE_COST], tender, "common");
- },
- GCSJF(tender) {
- const baseFee = this["DEJZAZGCF"](tender);
- if (!tender) {
- calcBase.baseProgressiveFee = baseFee;
- }
- return calculateUtil.getProgressiveFee(baseFee, "工程设计费", projectObj.project.property.progressiveInterval, decimalObj.bills.totalPrice, deficiency);
- },
- SJWJSCFYJD(tender) {
- const baseFee = this["DEJZAZGCF"](tender);
- if (!tender) {
- calcBase.baseProgressiveFee = baseFee;
- }
- return calculateUtil.getProgressiveFee(
- baseFee,
- "设计文件审查费(一阶段)",
- projectObj.project.property.progressiveInterval,
- decimalObj.bills.totalPrice,
- deficiency
- );
- },
- SJWJSCFEJD(tender) {
- const baseFee = this["DEJZAZGCF"](tender);
- if (!tender) {
- calcBase.baseProgressiveFee = baseFee;
- }
- return calculateUtil.getProgressiveFee(
- baseFee,
- "设计文件审查费(二阶段)",
- projectObj.project.property.progressiveInterval,
- decimalObj.bills.totalPrice,
- deficiency
- );
- },
- DLLXJXWXJGDYBQLGCSJF(tender) {
- const baseFee = this["DEJZAZGCF"](tender);
- if (!tender) {
- calcBase.baseProgressiveFee = baseFee;
- }
- return calculateUtil.getProgressiveFee(
- baseFee,
- "独立进行维修、加固的一般桥梁工程设计费",
- projectObj.project.property.progressiveInterval,
- decimalObj.bills.totalPrice,
- deficiency
- );
- },
- DLLXJXWXJGDJSFZDQGCSJF(tender) {
- const baseFee = this["DEJZAZGCF"](tender);
- if (!tender) {
- calcBase.baseProgressiveFee = baseFee;
- }
- return calculateUtil.getProgressiveFee(
- baseFee,
- "独立进行维修、加固的技术复杂大桥工程设计费",
- projectObj.project.property.progressiveInterval,
- decimalObj.bills.totalPrice,
- deficiency
- );
- },
- DLLXJXWXJGDSDGCSJF(tender) {
- const baseFee = this["DEJZAZGCF"](tender);
- if (!tender) {
- calcBase.baseProgressiveFee = baseFee;
- }
- return calculateUtil.getProgressiveFee(
- baseFee,
- "独立进行维修、加固的隧道工程设计费",
- projectObj.project.property.progressiveInterval,
- decimalObj.bills.totalPrice,
- deficiency
- );
- },
- ZBF(tender) {
- const baseFee = this["DEJZAZGCF"](tender);
- if (!tender) {
- calcBase.baseProgressiveFee = baseFee;
- }
- return calculateUtil.getProgressiveFee(baseFee, "招标费", projectObj.project.property.progressiveInterval, decimalObj.bills.totalPrice, deficiency);
- },
- SGTSJQQGZF(tender) {
- const baseFee = this["DEJZAZGCF"](tender);
- if (!tender) {
- calcBase.baseProgressiveFee = baseFee;
- }
- return calculateUtil.getProgressiveFee(
- baseFee,
- "采用一阶段施工图设计的养护工程项目前期工作费",
- projectObj.project.property.progressiveInterval,
- decimalObj.bills.totalPrice,
- deficiency
- );
- },
- JSFASJQQGZF(tender) {
- const baseFee = this["DEJZAZGCF"](tender);
- if (!tender) {
- calcBase.baseProgressiveFee = baseFee;
- }
- return calculateUtil.getProgressiveFee(
- baseFee,
- "采用一阶段技术(方案)设计的养护工程项目前期工作费",
- projectObj.project.property.progressiveInterval,
- decimalObj.bills.totalPrice,
- deficiency
- );
- },
- GCBXF(tender) {
- return (this.JZAZGCFBHSB(tender) * 0.004).toDecimal(decimalObj.bills.totalPrice);
- },
- };
- baseFigureTemplate.boq = {
- //{各章清单合计}
- // 取清单固定类别是“第100章至700章清单”的金额
- GZQDHJ: function (tender) {
- return cbTools.getBaseFee(calcBase.fixedFlag.ONE_SEVEN_BILLS, tender, "common");
- },
- //{专项暂定合计}
- // 第100章至700章清单行的暂估合价
- ZXZDHJ: function (tender) {
- return cbTools.getBaseFee(calcBase.fixedFlag.ONE_SEVEN_BILLS, tender, "estimate");
- },
- //{100章以外清单合计}
- // 取清单固定清单[第100章至700章清单]的金额,但扣除清单100章下的金额。
- // 如果是固定清单[第100章至700章清单]下100章以外清单引用此基数,要排除自身(目前只允许100章的清单使用,所以暂时不需要此判断)
- YBZYHQDHJ: function (tender) {
- let oneToSeven = cbTools.findNodeByFlag(fixedFlag.ONE_SEVEN_BILLS);
- if (!oneToSeven) {
- return 0;
- }
- //100-700章固定节点的所有子节点
- let allChildren = [];
- function getChildren(nodes) {
- allChildren = allChildren.concat(nodes);
- for (let node of nodes) {
- if (node.children.length > 0) {
- getChildren(node.children);
- }
- }
- }
- getChildren(oneToSeven.children);
- //扣除的节点:100章的节点[100-200)
- let deductNodes = allChildren.filter(cbTools.withingOneHundred);
- //计算金额
- let fullFeeField = tender ? "common.tenderTotalFee" : "common.totalFee";
- return projectObj.project.calcProgram.getTotalFee([oneToSeven], deductNodes, fullFeeField).toDecimal(decimalObj.bills.totalPrice);
- },
- // 清单项目基数:{定额建筑安装工程费(定额设备购置费按40%计)} 算法:取清单固定类别是“第100章至700章清单”的定额建安费(其中定额设备费+设备税金之和按40%计算)。显示:只有清单固定类别是“第100章清单总则”的部分可显示。
- DEJZAZGCF(tender) {
- const baseFee = cbTools.getBaseFee(fixedFlag.ONE_SEVEN_BILLS, tender, "rationCommon");
- const fixedNode = projectObj.project.mainTree.roots.find((node) => node.getFlag() === fixedFlag.ONE_SEVEN_BILLS);
- const equipmentTaxFee = cbTools.getEquipmentFee(fixedNode, tender, "rationCommon");
- return (baseFee - equipmentTaxFee * 0.6).toDecimal(decimalObj.bills.totalPrice);
- },
- };
- }
- if (typeof materialCalcObj !== "undefined" && materialCalcObj.rationSetting) {
- let h = _.find(materialCalcObj.rationSetting.header, { dataCode: "feeType" });
- if (h) h.visible = true;
- let mt = _.find(materialCalcObj.freightSetting.header, { dataCode: "materialType" });
- if (mt) mt.visible = true;
- }
- //内蒙施工进出场(km)费率值修改特殊处理
- if (typeof feeRateObject !== "undefined") {
- feeRateObject.feeRateSpecialHandle = function (subRate, value) {
- let result = {};
- if (subRate.name == "施工进出场(km)" && value && value < 5) {
- result.valueKey = "5"; // 5km 内按 5km 计。
- result.value = scMathUtil.roundForObj(value, getDecimal("feeRate"));
- }
- return result;
- };
- }
- if (typeof module !== "undefined") {
- const defaultDecimal = {
- bills: { unitPrice: 2, totalPrice: 0 },
- ration: { quantity: 3, unitPrice: 2, totalPrice: 0 },
- glj: { quantity: 3, unitPriceHasMix: 2, unitPrice: 2 },
- feeRate: 4,
- quantity_detail: 4,
- material: 5,
- process: 6,
- marketPriceProcess: 2,
- temProcess: 6,
- };
- module.exports = {
- progression,
- deficiency,
- defaultDecimal,
- };
- }
- if (typeof projectObj !== "undefined") {
- projectObj.isInsertEquipmentVisable = function (selected) {
- // if (projectObj.project.property.valuationType !== "ration") {
- // //预算项目中,右键“插入设备”,仅在第一部分中显示。
- // return projectObj.project.Bills.isConstructionInstall(selected);
- // }
- return true;
- };
- }
|