/** * Created by jimiz on 2017/4/1. * 工料机汇总 */ /* var mongoose = require("mongoose"); var db = require("../db/project_db"); var Schema = mongoose.Schema; var deleteSchema = require('../../../public/models/delete_schema'); var consts = require('./project_consts'); var projectConsts = consts.projectConst; var commonConsts = consts.commonConst; var unitPriceFile = require('../../glj_bak/models/unit_price_file'); var upGLJList = require('../../glj_bak/models/glj_list'); var projectProperties = require('./project_properties.js') var projectGLJSchema = new Schema({ ID: Number, code: String, name: String, projectID: Number, amount: String, // Decimal isInterim: Boolean, // 是否暂估 provideType: Number, // 供货方式 partyAAmount: String, // Decimal 甲供数量 deliveryType: String, // 交货方式 deliveryPlace: String, // 送达地点 noTender: Boolean, deleteInfo: deleteSchema }); var projectGLJ = db.model("projectGLJ", projectGLJSchema, "projectGLJ"); var projectGLJDAO = function(){}; projectGLJDAO.prototype.getData = function(projectID, callback){ function combineGLJData(fileID, gljList){ var gljIndex = {}; upGLJList.getData(fileID, function (err, message, datas) { if (!err) { for (var i = 0; i < datas.length; i++){ var data = datas[i]; gljIndex[data.code + '_' + data.name] = data; } for (var j = 0; j < gljList.length; j++){ var pGLJ = gljList[j]; var glj = gljIndex[pGLJ.code + '_' + pGLJ.name]; for (var p in data) { if (p != 'ID' && p != 'fileID' && p != 'deleteInfo') { pGLJ[p] = glj[p]; } } } callback(0, projectConsts.PROJECTGLJ, gljList); } else { callback(3, 'can not get unitPriceFile gljList', null); } }) } function getGLJDatas(gljList){ projectProperties.getData(projectID, function (err, message, datas) { if (!err) { var fileID = datas[0]; combineGLJData(fileID, gljList); } else { callback(2, 'can not get unitPriceFileID', null); } }) } projectGLJ.find({'$or': [{projectID: projectID, deleteInfo: null}, {projectID: projectID, 'deleteInfo.deleted': {$in: [null, false]}}]}, '-_id', function(err, datas){ if (!err) { getGLJDatas(datas); } else { callback(1, 'can not get projectGLJ', null); } }); }; // 工料机汇总的工料机不在这里新增,只能由add方法新增,删除需要在前端projectGLJ判断:1、是新工料机;2、没有定额引用,才可以删除 projectGLJDAO.prototype.save = function(projectID, datas, callback){ var functions = []; var data; function saveOne(data) { return function (cb) { switch (doc.updateType) { case commonConsts.UT_UPDATE: projectGLJ.update({ID: doc.ID}, doc, cb); break; // commonConsts.UT_DELETE: // 假删除 // var item = new ration(doc); // item.remove(cb); } } } for (var i = 0; i < datas.length; i++){ functions.push(saveOne(data)); } async.parallel(functions, callback); }; projectGLJDAO.prototype.add = function(projectID, fileID, count, callback){ function addGLJ(err, datas){ } unitPriceFile.add(fileID, count, callback); }; projectGLJDAO.prototype.syncData = function(projectID, datas, callback){ }; module.exports = new projectGLJDAO(); */