瀏覽代碼

定额建安费(不含定额设备购置费)只在重庆养护工程量清单项目中添加

vian 5 年之前
父節點
當前提交
565ba73463
共有 3 個文件被更改,包括 259 次插入15 次删除
  1. 86 6
      web/over_write/js/anhui_2019.js
  2. 86 4
      web/over_write/js/neimeng_2019.js
  3. 87 5
      web/over_write/js/zhejiang_2005.js

+ 86 - 6
web/over_write/js/anhui_2019.js

@@ -74,9 +74,8 @@ function overwriteRationCalcBases() {
     ];
 })();
 
-// 清单基数,工程量清单的基数没有变化,只修改预算的
-// 清单基数-预算
-if (typeof baseFigureMap !== 'undefined' && baseFigureMap.budget) {
+// 清单基数
+if (typeof baseFigureMap !== 'undefined') {
     baseFigureMap.budget = {
         // 显示:除清单固定类别是“建筑安装工程费”的以外部分可显示。
         '建筑安装工程费': {
@@ -183,11 +182,38 @@ if (typeof baseFigureMap !== 'undefined' && baseFigureMap.budget) {
             filter: [fixedFlag.SPREAD_BUDGET_FEE],
             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
+        }
+    };
 }
 
-// 清单基数-预算
-if (typeof baseFigureTemplate !== 'undefined' && baseFigureTemplate.budget) {
+if (typeof baseFigureTemplate !== 'undefined') {
     baseFigureTemplate.budget = {
         // 建筑安装工程费 算法:取清单固定类别是“建筑安装工程费”的金额。
         JZAZGCF(tender) {
@@ -294,6 +320,60 @@ if (typeof baseFigureTemplate !== 'undefined' && baseFigureTemplate.budget) {
         }
 
     };
+
+    baseFigureTemplate.boq = {
+        //{各章清单合计}
+        // 取清单固定类别是“第100章至700章清单”的金额
+        'GZQDHJ': function (tender) {
+            let feeField = 'common',
+                subFeeField = tender ? 'tenderTotalFee' : 'totalFee';
+            return cbTools.getBillsFee(calcBase.fixedFlag.ONE_SEVEN_BILLS, feeField, subFeeField);
+        },
+        //{专项暂定合计}
+        // 汇总专项暂定列有值的清单的金额
+        'ZXZDHJ': function (tender) {
+            let rst = 0,
+                feeField = 'common',
+                subFeeField = tender ? 'tenderTotalFee' : 'totalFee';
+            let billsData = calcBase.project.Bills.datas,
+                filterData = billsData.filter(function (data) {
+                    return data.specialProvisional;
+                });
+            for (let data of filterData) {
+                if (cbTools.isUnDef(data.feesIndex) || _.isEmpty(data.feesIndex) ||
+                    cbTools.isUnDef(data.feesIndex[feeField]) || cbTools.isUnDef(data.feesIndex[feeField][subFeeField])) {
+                    continue;
+                }
+                rst += data.feesIndex[feeField][subFeeField];
+            }
+            return rst.toDecimal(decimalObj.bills.totalPrice);
+        },
+        //{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);
+        }
+    };
 }
 
 // 安徽养护在新建分段的时候需要隐藏养护类别和费用标准

+ 86 - 4
web/over_write/js/neimeng_2019.js

@@ -74,7 +74,7 @@ function overwriteRationCalcBases() {
     ];
 })();
 
-// 清单基数,工程量清单的基数没有变化,只修改预算的
+// 清单基数
 if (typeof baseFigureMap !== 'undefined' && baseFigureMap.budget) {
     baseFigureMap.budget = {
         // 清单固定类别是“建筑安装工程费”的以外部分可显示
@@ -159,11 +159,39 @@ if (typeof baseFigureMap !== 'undefined' && baseFigureMap.budget) {
             filter: [fixedFlag.SPREAD_BUDGET_FEE],
             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
+        }
+    };
 }
 
-// 清单基数,工程量清单的基数没有变化,只修改预算的
-if (typeof baseFigureTemplate !== 'undefined' && baseFigureTemplate.budget) {
+// 清单基数
+if (typeof baseFigureTemplate !== 'undefined') {
     baseFigureTemplate.budget = {
         // 定额建筑安装工程费(定额设备购置费按40%计):取清单固定类别是“建筑安装工程”的定额建安费,其中定额设备购置费按40%计算
         DEJZAZGCFSBSS(tender) {
@@ -247,6 +275,60 @@ if (typeof baseFigureTemplate !== 'undefined' && baseFigureTemplate.budget) {
             return (installFee * (Math.pow(1 + costGrowthRate, growthPeriod - 1) - 1)).toDecimal(decimalObj.bills.totalPrice);
         },
     };
+
+    baseFigureTemplate.boq = {
+        //{各章清单合计}
+        // 取清单固定类别是“第100章至700章清单”的金额
+        'GZQDHJ': function (tender) {
+            let feeField = 'common',
+                subFeeField = tender ? 'tenderTotalFee' : 'totalFee';
+            return cbTools.getBillsFee(calcBase.fixedFlag.ONE_SEVEN_BILLS, feeField, subFeeField);
+        },
+        //{专项暂定合计}
+        // 汇总专项暂定列有值的清单的金额
+        'ZXZDHJ': function (tender) {
+            let rst = 0,
+                feeField = 'common',
+                subFeeField = tender ? 'tenderTotalFee' : 'totalFee';
+            let billsData = calcBase.project.Bills.datas,
+                filterData = billsData.filter(function (data) {
+                    return data.specialProvisional;
+                });
+            for (let data of filterData) {
+                if (cbTools.isUnDef(data.feesIndex) || _.isEmpty(data.feesIndex) ||
+                    cbTools.isUnDef(data.feesIndex[feeField]) || cbTools.isUnDef(data.feesIndex[feeField][subFeeField])) {
+                    continue;
+                }
+                rst += data.feesIndex[feeField][subFeeField];
+            }
+            return rst.toDecimal(decimalObj.bills.totalPrice);
+        },
+        //{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);
+        }
+    };
 }
 
 if(typeof materialCalcObj !== 'undefined' && materialCalcObj.rationSetting){

+ 87 - 5
web/over_write/js/zhejiang_2005.js

@@ -39,8 +39,8 @@ function overwriteRationCalcBases (taxType){
     ];
 })();
 
-// 清单基数,工程量清单的基数没有变化,只修改预算的
-if (typeof baseFigureMap !== 'undefined' && baseFigureMap.budget) {
+// 清单基数
+if (typeof baseFigureMap !== 'undefined') {
     baseFigureMap.budget = {
         // 除清单固定类别是“建筑安装工程费”的以外部分可显示
         '公路养护工程费': {
@@ -85,10 +85,38 @@ if (typeof baseFigureMap !== 'undefined' && baseFigureMap.budget) {
             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
+        }
+    };
 }
-// 清单基数,工程量清单的基数没有变化,只修改预算的
-if (typeof baseFigureTemplate !== 'undefined' && baseFigureTemplate.budget) {
+
+if (typeof baseFigureTemplate !== 'undefined') {
     baseFigureTemplate.budget = {
         // 公路养护工程费:取清单固定类别是“建筑安装工程费”的金额
         GLYHGCF(tender) {
@@ -136,6 +164,60 @@ if (typeof baseFigureTemplate !== 'undefined' && baseFigureTemplate.budget) {
             return (baseFee * (Math.pow(1 + costGrowthRate, growthPeriod - 1) - 1)).toDecimal(decimalObj.bills.totalPrice);
         }
     };
+
+    baseFigureTemplate.boq = {
+        //{各章清单合计}
+        // 取清单固定类别是“第100章至700章清单”的金额
+        'GZQDHJ': function (tender) {
+            let feeField = 'common',
+                subFeeField = tender ? 'tenderTotalFee' : 'totalFee';
+            return cbTools.getBillsFee(calcBase.fixedFlag.ONE_SEVEN_BILLS, feeField, subFeeField);
+        },
+        //{专项暂定合计}
+        // 汇总专项暂定列有值的清单的金额
+        'ZXZDHJ': function (tender) {
+            let rst = 0,
+                feeField = 'common',
+                subFeeField = tender ? 'tenderTotalFee' : 'totalFee';
+            let billsData = calcBase.project.Bills.datas,
+                filterData = billsData.filter(function (data) {
+                    return data.specialProvisional;
+                });
+            for (let data of filterData) {
+                if (cbTools.isUnDef(data.feesIndex) || _.isEmpty(data.feesIndex) ||
+                    cbTools.isUnDef(data.feesIndex[feeField]) || cbTools.isUnDef(data.feesIndex[feeField][subFeeField])) {
+                    continue;
+                }
+                rst += data.feesIndex[feeField][subFeeField];
+            }
+            return rst.toDecimal(decimalObj.bills.totalPrice);
+        },
+        //{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);
+        }
+    };
 }
 
 if (typeof gljOprObj !== 'undefined') {