calc_program_model.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /**
  2. * Created by CSL on 2017-10-22.
  3. */
  4. let mongoose = require('mongoose');
  5. let Schema = mongoose.Schema;
  6. let calcItemSchema = new Schema({
  7. ID: Number,
  8. code: String,
  9. name: String,
  10. fieldName: String,
  11. dispExpr: String,
  12. dispExprUser: String,
  13. expression: String,
  14. compiledExpr: String,
  15. statement: String,
  16. feeRateID: Number,
  17. feeRate: String,
  18. labourCoeID: Number,
  19. memo: String,
  20. custom: Boolean
  21. },{versionKey:false, _id: false});
  22. let templateSchema = new Schema({
  23. ID: Number,
  24. name: String,
  25. calcItems: [calcItemSchema],
  26. custom: Boolean
  27. },{versionKey:false, _id: false});
  28. let stdCalcPrograms = new Schema({
  29. ID: Number,
  30. region: String,
  31. libName: String,
  32. templates: [templateSchema]
  33. },{versionKey:false, _id: false});
  34. let projectCalcPrograms = new Schema({
  35. ID: {type: String, index: true},
  36. projectID: {type: Number, index: true},
  37. name: String,
  38. libID: Number,
  39. libName: String,
  40. templates: [templateSchema]
  41. },{versionKey:false});
  42. let gatherCalcItemSchema = new Schema({
  43. ID: Number,
  44. code: String,
  45. dispExprUser: String,
  46. displayFieldName: String,
  47. fieldName: String,
  48. name: String,
  49. statement: String,
  50. totalFee: String,
  51. unitFee: String,
  52. feeRate: String,
  53. memo: String
  54. },{versionKey:false, _id: false});
  55. let gatherCalcProgramSchema = new Schema({
  56. ID: Number,
  57. name: String,
  58. totalFee: String,
  59. calcItems: [gatherCalcItemSchema],
  60. },{versionKey:false, _id: false});
  61. let gatherCalcPrograms = new Schema({
  62. projectID: {type: Number, index: true},
  63. totalFee: String,
  64. calcPrograms: [gatherCalcProgramSchema]
  65. },{versionKey:false});
  66. mongoose.model('std_calc_programs', stdCalcPrograms, 'std_calc_programs');
  67. mongoose.model('calc_programs', projectCalcPrograms, 'calc_programs');
  68. mongoose.model('gather_calc_programs', gatherCalcPrograms, 'gather_calc_programs');