project_glj.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. /**
  2. * Created by jimiz on 2017/4/1.
  3. * 工料机汇总
  4. */
  5. /*
  6. var mongoose = require("mongoose");
  7. var db = require("../db/project_db");
  8. var Schema = mongoose.Schema;
  9. var deleteSchema = require('../../../public/models/delete_schema');
  10. var consts = require('./project_consts');
  11. var projectConsts = consts.projectConst;
  12. var commonConsts = consts.commonConst;
  13. var unitPriceFile = require('../../glj_bak/models/unit_price_file');
  14. var upGLJList = require('../../glj_bak/models/glj_list');
  15. var projectProperties = require('./project_properties.js')
  16. var projectGLJSchema = new Schema({
  17. ID: Number,
  18. code: String,
  19. name: String,
  20. projectID: Number,
  21. amount: String, // Decimal
  22. isInterim: Boolean, // 是否暂估
  23. provideType: Number, // 供货方式
  24. partyAAmount: String, // Decimal 甲供数量
  25. deliveryType: String, // 交货方式
  26. deliveryPlace: String, // 送达地点
  27. noTender: Boolean,
  28. deleteInfo: deleteSchema
  29. });
  30. var projectGLJ = db.model("projectGLJ", projectGLJSchema, "projectGLJ");
  31. var projectGLJDAO = function(){};
  32. projectGLJDAO.prototype.getData = function(projectID, callback){
  33. function combineGLJData(fileID, gljList){
  34. var gljIndex = {};
  35. upGLJList.getData(fileID, function (err, message, datas) {
  36. if (!err) {
  37. for (var i = 0; i < datas.length; i++){
  38. var data = datas[i];
  39. gljIndex[data.code + '_' + data.name] = data;
  40. }
  41. for (var j = 0; j < gljList.length; j++){
  42. var pGLJ = gljList[j];
  43. var glj = gljIndex[pGLJ.code + '_' + pGLJ.name];
  44. for (var p in data) {
  45. if (p != 'ID' && p != 'fileID' && p != 'deleteInfo') {
  46. pGLJ[p] = glj[p];
  47. }
  48. }
  49. }
  50. callback(0, projectConsts.PROJECTGLJ, gljList);
  51. }
  52. else {
  53. callback(3, 'can not get unitPriceFile gljList', null);
  54. }
  55. })
  56. }
  57. function getGLJDatas(gljList){
  58. projectProperties.getData(projectID, function (err, message, datas) {
  59. if (!err) {
  60. var fileID = datas[0];
  61. combineGLJData(fileID, gljList);
  62. } else {
  63. callback(2, 'can not get unitPriceFileID', null);
  64. }
  65. })
  66. }
  67. projectGLJ.find({'$or': [{projectID: projectID, deleteInfo: null}, {projectID: projectID, 'deleteInfo.deleted': {$in: [null, false]}}]}, '-_id', function(err, datas){
  68. if (!err) {
  69. getGLJDatas(datas);
  70. } else {
  71. callback(1, 'can not get projectGLJ', null);
  72. }
  73. });
  74. };
  75. // 工料机汇总的工料机不在这里新增,只能由add方法新增,删除需要在前端projectGLJ判断:1、是新工料机;2、没有定额引用,才可以删除
  76. projectGLJDAO.prototype.save = function(projectID, datas, callback){
  77. var functions = [];
  78. var data;
  79. function saveOne(data) {
  80. return function (cb) {
  81. switch (doc.updateType) {
  82. case commonConsts.UT_UPDATE:
  83. projectGLJ.update({ID: doc.ID}, doc, cb);
  84. break;
  85. // commonConsts.UT_DELETE:
  86. // 假删除
  87. // var item = new ration(doc);
  88. // item.remove(cb);
  89. }
  90. }
  91. }
  92. for (var i = 0; i < datas.length; i++){
  93. functions.push(saveOne(data));
  94. }
  95. async.parallel(functions, callback);
  96. };
  97. projectGLJDAO.prototype.add = function(projectID, fileID, count, callback){
  98. function addGLJ(err, datas){
  99. }
  100. unitPriceFile.add(fileID, count, callback);
  101. };
  102. projectGLJDAO.prototype.syncData = function(projectID, datas, callback){
  103. };
  104. module.exports = new projectGLJDAO();
  105. */