/** * Created by Tony on 2017/1/12. */ var mongoose = require('mongoose'); var demodb = require('../db/demodb'); var cfgdb = require('../db/cfgdb'); //var Schema = demodb.mongoose.Schema; var Schema = mongoose.Schema; var BillsSchema = new Schema({ "SerialNo": Number, "ChapterID": Number, "ID": Number, "ParentID": Number, "NextSiblingID": Number, "Code": String, "FullCode": String, "Name": String, "Units": String, "Quantity": Number, "DesignQuantity": Number, "DesignQuantity2": Number, "DesignPrice": Number, "TotalPrice": Number, "Memostr": String }); var BillTagsSchema = new Schema({ isForSingleProj: Boolean, isConfirmed: Boolean, //是否固定ID //公路造价的设计概念,用于报表读取数据,在建筑需要换一种方式记录 confirmType: String, //与上配套 isTempEst: Boolean, //是否暂估 tmpEstType: String //专项指定类型(如:材料、工程设备、专业工程等) }); var CostSchema = new Schema({ "DirectPrj": Number, //直接工程费 "Labour": Number, //定额人工费 "LabourAdj": Number, //调整人工费 "Material": Number, //材料费 "Machine": Number, //定额机械费 "Machine_LabourAdj": Number, //调整机上人工费 //机上人工 = 公路的机械工,重庆特有,有单独的调整 "MainMaterial": Number, //主材费 "Equipment": Number, //设备费 "Management": Number, //企业管理费 "Profit": Number, //利润 "Risk": Number, //风险费 "Diff_Labour": Number, //人工价差 "Diff_Material": Number,//材料价差 "Diff_Machine": Number //机械价差 }); var ConstructBillsSchema = new Schema({ "ProjectID": Number, // "ID": Number, "ParentID": Number, "NextSiblingID": Number, "SerialNo": String, //序号 "Code": String, //项目编码 "Type": String, //类别:定额与非定额区分 "Name": String, //项目名称 "Units": String,//单位 "Feature": String, //项目特征 "Content": String, //工作内容 "PrjClass": String, //工程专业 "FeeClass": String, //取费专业 "MeaCalRule": String, //工程量计算规则 "RationAdjStatus": String, //定额调整状态 "Quantity": Number, //工程量 "UnitPrice": Number, //单价 "TotalPrice": Number,//合价 "CalFoundation": String, //计算基础 "FeeRate": Number, //费率 "MixedUnitPrice": Number, //综合单价 "MixedGrandTotal": Number,//综合合价 "UnitCost": CostSchema, "TotalCost": CostSchema, "Tags": BillTagsSchema, //"": Number, "Memo": String //备注 }); //var BillsData = demodb.mongoose.model("bills", BillsSchema); var BillsData = demodb.mongoose.model("gd_bills", BillsSchema); var dbConnection = null; var ConstructBillData = null; var BillDataDAO = function(){}; BillDataDAO.prototype.get = function(id, callback){ BillsData.find({ID: id}, function(err, templates){ if(templates.length){ callback(false, templates[0]); } else{ callback('No result found!'); } }) } BillDataDAO.prototype.getAll = function(userid, callback){ var me = this; me.iniDb('localhost', null, 'Demo', "gd_bills", BillsSchema) //BillsData.find({}, function(err, templates){ ConstructBillData.find({}, function(err, templates){ if(templates.length){ callback(false, templates); } else{ callback('No result found!'); } me.deIniDb(); }) } BillDataDAO.prototype.iniDb = function(server, port, dbName, collectionName, schema) { dbConnection = cfgdb.mongoose.getConnection(server, port, dbName); ConstructBillData = dbConnection.model(collectionName, schema); } BillDataDAO.prototype.deIniDb = function() { if (dbConnection) { dbConnection.close(); } } BillDataDAO.prototype.getAll_Construct = function(userid, prjid, callback){ var me = this; me.iniDb('localhost', null, 'Demo', "construct_bills", ConstructBillsSchema) ConstructBillData.find({"ProjectID":prjid}, function(err, templates){ me.deIniDb(); if(templates.length){ callback(false, templates); } else{ callback('No result found!'); } }) } module.exports = new BillDataDAO();