bills_template_model.js 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /**
  2. * Created by Mai on 2017/4/14.
  3. * 清单模板,新建项目使用
  4. */
  5. const BaseModel = require("../../../common/base/base_model");
  6. const mongoose = require('mongoose');
  7. const BillsTemplateSchema = mongoose.model('std_bills_template_items');
  8. class BillsTemplateModel extends BaseModel {
  9. /**
  10. * 构造函数
  11. *
  12. * @return {void}
  13. */
  14. constructor() {
  15. let parent = super();
  16. parent.model = BillsTemplateSchema;
  17. parent.init();
  18. }
  19. /**
  20. * 获取模板库对应的清单模板
  21. * @param libID
  22. * @returns {*}
  23. */
  24. async getTemplateData (libID) {
  25. // 筛选字段
  26. let field = {_id: 1, valuationId: 1, ID: 1, ParentID: 1, NextSiblingID: 1, code: 1, name: 1, unit: 1, flags: 1, calcBase: 1};
  27. let data = await this.findDataByCondition({valuationId: valuationId, engineering: engineering}, field, false);
  28. return data === null ? [] : data;
  29. }
  30. /**
  31. * 新建项目时,获取模板库对应的清单模板
  32. * @param valuationId
  33. * @param engineering
  34. * @returns {*}
  35. */
  36. async getTemplateDataForNewProj (libID) {
  37. // 筛选字段
  38. let field = {_id: 0, ID: 1, ParentID: 1, NextSiblingID: 1, code: 1, name: 1, unit: 1, flags: 1,type:1, calcBase: 1,feeRateID:1,quantity:1};
  39. let data = await this.findDataByCondition({libID: libID}, field, false);
  40. return data === null ? [] : data;
  41. }
  42. async updateTemplate (valuationId, datas) {
  43. try {
  44. for (let data of datas) {
  45. data.data.valuationId = valuationId;
  46. let condition = {valuationId: valuationId, ID: data.data.ID}, result;
  47. if (data.type === 'update') {
  48. result = await this.db.update(condition, data.data);
  49. if (result === undefined || result.ok ===undefined || !result.ok) {
  50. throw '更新数据错误';
  51. }
  52. } else if (data.type === 'new') {
  53. result = await this.db.create(data.data);
  54. if (!result) {
  55. throw '新增数据错误';
  56. }
  57. } else if (data.type === 'delete') {
  58. result = await this.db.delete(condition);
  59. if (result === undefined || result.ok ===undefined || !result.ok) {
  60. throw '删除数据错误';
  61. }
  62. }
  63. }
  64. return true;
  65. } catch (error) {
  66. console.log(error);
  67. }
  68. }
  69. };
  70. module.exports = BillsTemplateModel;