bills_template_model.js 2.7 KB

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