Quellcode durchsuchen

项目管理金额汇总.

chenshilong vor 7 Jahren
Ursprung
Commit
192b5e813c

+ 3 - 3
modules/main/models/bills.js

@@ -97,9 +97,9 @@ class billsModel extends baseModel {
                                 bills.update({projectID: doc.updateData.projectID, ID: doc.updateData.ID,deleteInfo: null}, doc.updateData, asyncCB);
                             },
                             function (asyncCB) {
-                                if (doc.updateData.SummaryFees){
-                                    // console.log('%%%%%%%%%%%%%%%%%%%  ' + doc.updateData.projectID + ' | ' + JSON.stringify(doc.updateData.SummaryFees));
-                                    projectModel.update({ID: doc.updateData.projectID}, {"SummaryFees": doc.updateData.SummaryFees}, asyncCB);
+                                if (doc.updateData.summaryFees){
+                                    // console.log('%%%%%%%%%%%%%%%%%%%  ' + doc.updateData.projectID + ' | ' + JSON.stringify(doc.updateData.summaryFees));
+                                    projectModel.update({ID: doc.updateData.projectID}, {"summaryFees": doc.updateData.summaryFees}, asyncCB);
                                 }else {
                                     asyncCB(null, {});
                                 };

+ 1 - 1
modules/pm/models/project_schema.js

@@ -24,7 +24,7 @@ let ProjectSchema = new Schema({
         type: Schema.Types.Mixed,
         default: {}
     },
-    "SummaryFees":{
+    "summaryFees":{
         totalFee: String,
         estimateFee: String,
         safetyFee: String,

+ 1 - 1
web/building_saas/main/js/models/calc_base.js

@@ -307,7 +307,7 @@ let cbTools = {
             let nodes = this.getFormulaNodes();
             if (nodes.length > 0) projectObj.mainController.refreshTreeNode(nodes);
         } catch (err) {
-            console.log(err.message);
+            alert('公式引用行号显示刷新失败:' + err.message);
         }
     },
     // 判断结点是否被其它结点的表达式引用。

+ 25 - 19
web/building_saas/main/js/models/calc_program.js

@@ -470,8 +470,8 @@ let treeNodeTools = {
         treeNode.changed = true;
     },
     initSummaryFee(treeNode){
-        if (!treeNode.data.SummaryFees){
-            treeNode.data.SummaryFees = {
+        if (!treeNode.data.summaryFees){
+            treeNode.data.summaryFees = {
                 totalFee: 0,
                 estimateFee: 0,
                 safetyFee: 0,
@@ -735,7 +735,7 @@ class CalcProgram {
                     contain:node.data.contain,
                     quantityEXP:node.data.quantityEXP
                 };
-                if (node.data.SummaryFees) data.SummaryFees = node.data.SummaryFees;
+                if (node.data.summaryFees) data.summaryFees = node.data.summaryFees;
                 if(node.sourceType==ModuleNames.ration && node.data.type==rationType.gljRation){//定额类型的工料机做特殊处理
                     data.code=node.data.code;
                     data.projectGLJID = node.data.projectGLJID;
@@ -915,6 +915,25 @@ class CalcProgram {
             let tf = (me.project.property.billsCalcMode === leafBillGetFeeType.rationPrice) ? (b * f / 100).toDecimal(decimalObj.bills.totalPrice) : (uf * q).toDecimal(decimalObj.bills.totalPrice);
             let ttf = tf;
 
+            function newCommonFee(){
+                treeNodeTools.initFeeField(treeNode, 'common');
+                treeNode.data.feesIndex.common.unitFee = uf;
+                treeNode.data.feesIndex.common.totalFee = tf;
+                treeNode.data.feesIndex.common.tenderUnitFee = tuf;
+                treeNode.data.feesIndex.common.tenderTotalFee = ttf;
+                treeNode.changed = true;
+                // 如果是总造价清单,还要做单项工程、建设项目金额汇总
+                if (treeNodeTools.isEngineeringCostBill(treeNode)){
+                    treeNodeTools.initSummaryFee(treeNode);
+                    treeNode.data.summaryFees.totalFee = tf;
+                    treeNode.data.summaryFees.estimateFee = 0;//treeNode.data.feesIndex.zangu.totalFee;
+                    let bill_safe = cbTools.findBill(fixedFlag.SAFETY_CONSTRUCTION);
+                    treeNode.data.summaryFees.safetyFee = (bill_safe && bill_safe.feesIndex && bill_safe.feesIndex.common)?bill_safe.feesIndex.common.totalFee:0;
+                    let bill_charge = cbTools.findBill(fixedFlag.CHARGE);
+                    treeNode.data.summaryFees.chargeFee = (bill_charge && bill_charge.feesIndex && bill_charge.feesIndex.common)?bill_charge.feesIndex.common.totalFee:0;
+                }
+            };
+
             if (treeNode.data.feesIndex && treeNode.data.feesIndex.common){
                 if (treeNode.data.feesIndex.common.unitFee != uf ||
                     treeNode.data.feesIndex.common.totalFee != tf ||
@@ -922,23 +941,10 @@ class CalcProgram {
                     treeNode.data.feesIndex.common.tenderTotalFee != ttf ){
                     delete treeNode.data.fees;    // 直接删掉再新增。从其它计算方式切换到公式计算方式,会多出其它的费(不光是common)所以这里直接删掉,不用一个个费判断更新,效率更高。
                     delete treeNode.data.feesIndex;
-                    treeNodeTools.initFeeField(treeNode, 'common');
-                    treeNode.data.feesIndex.common.unitFee = uf;
-                    treeNode.data.feesIndex.common.totalFee = tf;
-                    treeNode.data.feesIndex.common.tenderUnitFee = tuf;
-                    treeNode.data.feesIndex.common.tenderTotalFee = ttf;
-                    treeNode.changed = true;
-                    // 如果是总造价清单,还要做单项工程、建设项目金额汇总
-                    if (treeNodeTools.isEngineeringCostBill(treeNode)){
-                        treeNodeTools.initSummaryFee(treeNode);
-                        treeNode.data.SummaryFees.totalFee = tf;
-                        treeNode.data.SummaryFees.estimateFee = 0;//treeNode.data.feesIndex.zangu.totalFee;
-                        let bill_safe = cbTools.findBill(fixedFlag.SAFETY_CONSTRUCTION);
-                        treeNode.data.SummaryFees.safetyFee = bill_safe?bill_safe.feesIndex.common.totalFee:0;
-                        let bill_charge = cbTools.findBill(fixedFlag.CHARGE);
-                        treeNode.data.SummaryFees.chargeFee = bill_charge?bill_charge.feesIndex.common.totalFee:0;
-                    }
+                    newCommonFee();
                 }
+            }else{
+                newCommonFee();
             };
             treeNode.data.calcTemplate = {"calcItems": []};
         }

+ 40 - 9
web/building_saas/pm/js/pm_main.js

@@ -101,7 +101,9 @@ let ProjTreeSetting = {
             event: {
                 getText: function (html, node, text) {
                     if(node.data.projType === projectType.tender){
-                        let engineeringCostText = node.data.engineeringCost ? node.data.engineeringCost : 0;
+                        // let engineeringCostText = node.data.engineeringCost ? node.data.engineeringCost : 0;
+                        let engineeringCostText = node.data.summaryFees ? node.data.summaryFees.totalFee : 0;
+                        html.push(engineeringCostText);
                     }
                 }
             }
@@ -1656,29 +1658,58 @@ function setDataToSideBar() {
         return;
     }*/
     if(selectedItem.children.length > 0){
+
+/*        function calcNode(node) {
+            let sum_tf = 0, sum_ef = 0, sum_sf = 0, sum_cf = 0;
+
+            if (node.children.length > 0){
+                for (let cNode of node.children){
+                     calcNode(cNode);
+                };
+            };
+
+            if (node.data.projType == projectType.tender){
+
+            }
+
+        }*/
         // 建设项目相关
         let counter = 1;
         let html = '';
+        let sum_tf = 0, sum_ef = 0, sum_sf = 0, sum_cf = 0;
         for(let tmp of selectedItem.children) {
+            let tf = 0, ef = 0, sf = 0, cf = 0;
+            if (tmp.data.summaryFees){
+                tf = parseFloat(tmp.data.summaryFees.totalFee);
+                ef = parseFloat(tmp.data.summaryFees.estimateFee);
+                sf = parseFloat(tmp.data.summaryFees.safetyFee);
+                cf = parseFloat(tmp.data.summaryFees.chargeFee);
+                sum_tf = sum_tf + tf;
+                sum_ef = sum_ef + ef;
+                sum_sf = sum_sf + sf;
+                sum_cf = sum_cf + cf;
+            };
+
             html += '<tr>' +
                 '<td>'+ counter +'</td>' +
                 '<td>'+ counter +'</td>' +
                 '<td>'+ tmp.data.name +'</td>' +
-                '<td></td>' +
-                '<td></td>' +
-                '<td></td>' +
-                '<td></td>' +
+                '<td>'+ tf + '</td>' +
+                '<td>'+ ef + '</td>' +
+                '<td>'+ sf + '</td>' +
+                '<td>'+ cf + '</td>' +
                 '</tr>';
 
         }
+
         html += '<tr>' +
             '<td>'+ (counter + 1) +'</td>' +
             '<td> </td>' +
             '<td>合计</td>' +
-            '<td></td>' +
-            '<td></td>' +
-            '<td></td>' +
-            '<td></td>' +
+            '<td>'+ sum_tf + '</td>' +
+            '<td>'+ sum_ef + '</td>' +
+            '<td>'+ sum_sf + '</td>' +
+            '<td>'+ sum_cf + '</td>' +
             '</tr>';
         $(target + '-table tbody').html(html);
     }