bills.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. /**
  2. * Created by Tony on 2017/1/12.
  3. */
  4. var mongoose = require('mongoose');
  5. var demodb = require('../db/demodb');
  6. var cfgdb = require('../db/cfgdb');
  7. //var Schema = demodb.mongoose.Schema;
  8. var Schema = mongoose.Schema;
  9. var BillsSchema = new Schema({
  10. "SerialNo": Number,
  11. "ChapterID": Number,
  12. "ID": Number,
  13. "ParentID": Number,
  14. "NextSiblingID": Number,
  15. "Code": String,
  16. "FullCode": String,
  17. "Name": String,
  18. "Units": String,
  19. "Quantity": Number,
  20. "DesignQuantity": Number,
  21. "DesignQuantity2": Number,
  22. "DesignPrice": Number,
  23. "TotalPrice": Number,
  24. "Memostr": String
  25. });
  26. var BillTagsSchema = new Schema({
  27. isForSingleProj: Boolean,
  28. isConfirmed: Boolean, //是否固定ID //公路造价的设计概念,用于报表读取数据,在建筑需要换一种方式记录
  29. confirmType: String, //与上配套
  30. isTempEst: Boolean, //是否暂估
  31. tmpEstType: String //专项指定类型(如:材料、工程设备、专业工程等)
  32. });
  33. var CostSchema = new Schema({
  34. "DirectPrj": Number, //直接工程费
  35. "Labour": Number, //定额人工费
  36. "LabourAdj": Number, //调整人工费
  37. "Material": Number, //材料费
  38. "Machine": Number, //定额机械费
  39. "Machine_LabourAdj": Number, //调整机上人工费 //机上人工 = 公路的机械工,重庆特有,有单独的调整
  40. "MainMaterial": Number, //主材费
  41. "Equipment": Number, //设备费
  42. "Management": Number, //企业管理费
  43. "Profit": Number, //利润
  44. "Risk": Number, //风险费
  45. "Diff_Labour": Number, //人工价差
  46. "Diff_Material": Number,//材料价差
  47. "Diff_Machine": Number //机械价差
  48. });
  49. var ConstructBillsSchema = new Schema({
  50. "ProjectID": Number, //
  51. "ID": Number,
  52. "ParentID": Number,
  53. "NextSiblingID": Number,
  54. "SerialNo": String, //序号
  55. "Code": String, //项目编码
  56. "Type": String, //类别:定额与非定额区分
  57. "Name": String, //项目名称
  58. "Units": String,//单位
  59. "Feature": String, //项目特征
  60. "Content": String, //工作内容
  61. "PrjClass": String, //工程专业
  62. "FeeClass": String, //取费专业
  63. "MeaCalRule": String, //工程量计算规则
  64. "RationAdjStatus": String, //定额调整状态
  65. "Quantity": Number, //工程量
  66. "UnitPrice": Number, //单价
  67. "TotalPrice": Number,//合价
  68. "CalFoundation": String, //计算基础
  69. "FeeRate": Number, //费率
  70. "MixedUnitPrice": Number, //综合单价
  71. "MixedGrandTotal": Number,//综合合价
  72. "UnitCost": CostSchema,
  73. "TotalCost": CostSchema,
  74. "Tags": BillTagsSchema,
  75. //"": Number,
  76. "Memo": String //备注
  77. });
  78. //var BillsData = demodb.mongoose.model("bills", BillsSchema);
  79. var BillsData = demodb.mongoose.model("gd_bills", BillsSchema);
  80. var dbConnection = null;
  81. var ConstructBillData = null;
  82. var BillDataDAO = function(){};
  83. BillDataDAO.prototype.get = function(id, callback){
  84. BillsData.find({ID: id}, function(err, templates){
  85. if(templates.length){
  86. callback(false, templates[0]);
  87. }
  88. else{
  89. callback('No result found!');
  90. }
  91. })
  92. }
  93. BillDataDAO.prototype.getAll = function(userid, callback){
  94. var me = this;
  95. me.iniDb('localhost', null, 'Demo', "gd_bills", BillsSchema)
  96. //BillsData.find({}, function(err, templates){
  97. ConstructBillData.find({}, function(err, templates){
  98. if(templates.length){
  99. callback(false, templates);
  100. }
  101. else{
  102. callback('No result found!');
  103. }
  104. me.deIniDb();
  105. })
  106. }
  107. BillDataDAO.prototype.iniDb = function(server, port, dbName, collectionName, schema) {
  108. dbConnection = cfgdb.mongoose.getConnection(server, port, dbName);
  109. ConstructBillData = dbConnection.model(collectionName, schema);
  110. }
  111. BillDataDAO.prototype.deIniDb = function() {
  112. if (dbConnection) {
  113. dbConnection.close();
  114. }
  115. }
  116. BillDataDAO.prototype.getAll_Construct = function(userid, prjid, callback){
  117. var me = this;
  118. me.iniDb('localhost', null, 'Demo', "construct_bills", ConstructBillsSchema)
  119. ConstructBillData.find({"ProjectID":prjid}, function(err, templates){
  120. me.deIniDb();
  121. if(templates.length){
  122. callback(false, templates);
  123. }
  124. else{
  125. callback('No result found!');
  126. }
  127. })
  128. }
  129. module.exports = new BillDataDAO();