| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 | 
							- /**
 
-  * 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/models/unit_price_file');
 
- var upGLJList = require('../../glj/models/glj_list');
 
- var projectProperties = require('./prj_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();
 
 
  |