/** * Created by Mai on 2017/4/14. * 清单模板,新建项目使用 */ const BaseModel = require("../../../common/base/base_model"); const mongoose = require("mongoose"); const BillsTemplateSchema = mongoose.model("std_bills_template_items"); class BillsTemplateModel extends BaseModel { /** * 构造函数 * * @return {void} */ constructor() { let parent = super(); parent.model = BillsTemplateSchema; parent.init(); } /** * 获取模板库对应的清单模板 * @param libID * @returns {*} */ async getTemplateData(libID) { // 筛选字段 let field = { _id: 1, valuationId: 1, ID: 1, ParentID: 1, NextSiblingID: 1, code: 1, name: 1, unit: 1, flags: 1, calcBase: 1 }; let data = await this.findDataByCondition({ valuationId: valuationId, engineering: engineering }, field, false); return data === null ? [] : data; } /** * 新建项目时,获取模板库对应的清单模板 * @param valuationId * @param engineering * @returns {*} */ async getTemplateDataForNewProj(libID) { // 筛选字段 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, itemCharacterText: 1, jobContentText: 1, }; let data = await this.findDataByCondition({ libID: libID }, field, false); return data === null ? [] : data; } async updateTemplate(valuationId, datas) { try { for (let data of datas) { data.data.valuationId = valuationId; let condition = { valuationId: valuationId, ID: data.data.ID }, result; if (data.type === "update") { result = await this.db.update(condition, data.data); if (result === undefined || result.ok === undefined || !result.ok) { throw "更新数据错误"; } } else if (data.type === "new") { result = await this.db.create(data.data); if (!result) { throw "新增数据错误"; } } else if (data.type === "delete") { result = await this.db.delete(condition); if (result === undefined || result.ok === undefined || !result.ok) { throw "删除数据错误"; } } } return true; } catch (error) { console.log(error); } } } module.exports = BillsTemplateModel;