Browse Source

清单固定行:工程造价

zhongzewei 7 years ago
parent
commit
942b49ab8b

+ 45 - 0
modules/common/const/bills_fixed.js

@@ -0,0 +1,45 @@
+/**
+ * Created by Zhong on 2017/12/18.
+ */
+const fixedFlag = {
+    // 分部分项工程
+    SUB_ENGINERRING: 1,
+    // 措施项目
+    MEASURE: 2,
+    // 施工技术措施项目
+    CONSTRUCTION_TECH: 3,
+    // 安全文明施工按实计算费用
+    SAFETY_CONSTRUCTION_ACTUAL: 4,
+    // 施工组织措施专项费用
+    CONSTRUCTION_ORGANIZATION: 5,
+    // 安全文明施工专项费用
+    SAFETY_CONSTRUCTION: 6,
+    // 其他项目
+    OTHER: 7,
+    // 暂列金额
+    PROVISIONAL: 8,
+    // 暂估价
+    ESTIMATE: 9,
+    // 材料(工程设备)暂估价
+    MATERIAL_PROVISIONAL: 10,
+    // 专业工程暂估价
+    ENGINEERING_ESITIMATE: 11,
+    // 计日工
+    DAYWORK: 12,
+    // 总承包服务费
+    TURN_KEY_CONTRACT: 13,
+    // 索赔与现场签证
+    CLAIM_VISA: 14,
+    // 规费
+    CHARGE: 15,
+    // 社会保险费及住房公积金 Social insurance fee and housing accumulation fund
+    SOCIAL_INSURANCE_HOUSING_FUND: 16,
+    // 工程排污费 charges for disposing pollutants
+    POLLUTANTS: 17,
+    // 税金
+    TAX: 18,
+    //工程造价
+    ENGINEERINGCOST: 19
+};
+
+export default fixedFlag;

+ 2 - 2
modules/pm/controllers/pm_controller.js

@@ -43,8 +43,8 @@ module.exports = {
             callback(false);
             callback(false);
         });
         });
     },
     },
-    getProjects: function(req, res){
-        ProjectsData.getUserProjects(req.session.sessionUser.ssoId, req.session.sessionCompilation._id, function(err, message, projects){
+    getProjects: async function(req, res){
+         await ProjectsData.getUserProjects(req.session.sessionUser.ssoId, req.session.sessionCompilation._id, function(err, message, projects){
             if (projects) {
             if (projects) {
                 callback(req, res, err, message, projects);
                 callback(req, res, err, message, projects);
             } else {
             } else {

+ 14 - 7
modules/pm/models/project_model.js

@@ -6,6 +6,7 @@ import async_c from 'async';
 import UnitPriceFileModel from "../../glj/models/unit_price_file_model";
 import UnitPriceFileModel from "../../glj/models/unit_price_file_model";
 import UnitPriceFiles from '../../glj/models/schemas/unit_price_file';
 import UnitPriceFiles from '../../glj/models/schemas/unit_price_file';
 import {defaultDecimal, billsQuantityDecimal, basicInformation, projectFeature,displaySetting} from './project_property_template';
 import {defaultDecimal, billsQuantityDecimal, basicInformation, projectFeature,displaySetting} from './project_property_template';
+import fixedFlag from '../../common/const/bills_fixed';
 let FeeRateFiles = mongoose.model('fee_rate_file');
 let FeeRateFiles = mongoose.model('fee_rate_file');
 let counter = require("../../../public/counter/counter.js");
 let counter = require("../../../public/counter/counter.js");
 
 
@@ -15,6 +16,7 @@ let feeRateFacade = require('../../fee_rates/facade/fee_rates_facade');
 let labourCoeFacade = require('../../main/facade/labour_coe_facade');
 let labourCoeFacade = require('../../main/facade/labour_coe_facade');
 let calcProgramFacade = require('../../main/facade/calc_program_facade');
 let calcProgramFacade = require('../../main/facade/calc_program_facade');
 let logger = require("../../../logs/log_helper").logger;
 let logger = require("../../../logs/log_helper").logger;
+let BillsModel = require("../../main/models/bills").model;
 
 
 let Projects = require("./project_schema");
 let Projects = require("./project_schema");
 let projectType = {
 let projectType = {
@@ -30,14 +32,19 @@ let fileType = {
 
 
 let ProjectsDAO = function(){};
 let ProjectsDAO = function(){};
 
 
-ProjectsDAO.prototype.getUserProjects = function(userId, compilation, callback){
-    Projects.find({'$or': [{'userID': userId, 'compilation': compilation, 'deleteInfo': null}, {'userID': userId, 'compilation': compilation, 'deleteInfo.deleted': {'$in': [null, false]}}]}, '-_id', function(err, templates){
-        if (err) {
-            callback(1, 'Error', null);
-        } else {
-            callback(0, '', templates);
+ProjectsDAO.prototype.getUserProjects = async function(userId, compilation, callback){
+    try {
+        let projects = await Projects.find({'$or': [{'userID': userId, 'compilation': compilation, 'deleteInfo': null}, {'userID': userId, 'compilation': compilation, 'deleteInfo.deleted': {'$in': [null, false]}}]}, '-_id');
+        for(let i = 0 , len = projects.length; i < len; i++){
+            let proj = projects[i];
+            let engineeringCost = await BillsModel.find({projectID: proj.ID, 'flags.flag': fixedFlag.ENGINEERINGCOST, 'fees.totalFee': {$exists:  true}});
+            proj._doc.engineeringCost = engineeringCost.length > 0 ? engineeringCost[0].fees[0].totalFee : 0;
         }
         }
-    });
+        callback(0, '', projects);
+    }
+    catch (err){
+        callback(1, 'Error', null);
+    }
 };
 };
 
 
 ProjectsDAO.prototype.getUserProject = function (userId, ProjId, callback) {
 ProjectsDAO.prototype.getUserProject = function (userId, ProjId, callback) {

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

@@ -38,7 +38,9 @@ const fixedFlag = {
     // 工程排污费 charges for disposing pollutants
     // 工程排污费 charges for disposing pollutants
     POLLUTANTS: 17,
     POLLUTANTS: 17,
     // 税金
     // 税金
-    TAX: 18
+    TAX: 18,
+    //工程造价
+    ENGINEERINGCOST: 19
 };
 };
 
 
 let cbTools = {
 let cbTools = {

+ 1 - 0
web/building_saas/main/js/views/calc_base_view.js

@@ -138,6 +138,7 @@ let calcBaseView = {
         }
         }
         me.buildSheet();
         me.buildSheet();
         let baseObj = projectObj.project.calcBase.getBaseByClass(node);
         let baseObj = projectObj.project.calcBase.getBaseByClass(node);
+        console.log(baseObj);
         me.showData(me.toViewData(baseObj));
         me.showData(me.toViewData(baseObj));
 
 
     },
     },

+ 1 - 1
web/building_saas/pm/js/pm_main.js

@@ -101,7 +101,7 @@ let ProjTreeSetting = {
             event: {
             event: {
                 getText: function (html, node, text) {
                 getText: function (html, node, text) {
                     if(node.data.projType === projectType.tender){
                     if(node.data.projType === projectType.tender){
-                        html.push('0');
+                        let engineeringCostText = node.data.engineeringCost ? node.data.engineeringCost : 0;
                     }
                     }
                 }
                 }
             }
             }