1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- module.exports={
- getData:getData,
- insertData:insertData,
- deleteEquipment:deleteEquipment,
- updateEquipments:updateEquipments
- };
- let mongoose = require('mongoose');
- let equipmentPurchaseModel = mongoose.model("equipment_purchase");
- let consts = require('../../main/models/project_consts');
- function getPreUpdate (pre, doc){
- const update = {};
- for (const key in doc) {
- update[`${pre}.${key}`] = doc[key];
- }
- return update;
- };
- async function deleteEquipment(projectID,ID){
- await equipmentPurchaseModel.update({projectID},{'$pull':{equipments:{ ID }}});
- }
- async function insertData (projectID,data){
- await equipmentPurchaseModel.update({projectID},{'$push':{equipments:{ $each: data }}});
- return data
- }
- async function updateEquipments (projectID,updateData,total){
- let tasks = [];
- if(total !== undefined || total !== null) tasks.push({updateOne :{filter:{projectID},update:{$set:{total:total}}}});
- for(let data of updateData){
- if(data.type === 'insert' ){
- tasks.push({updateOne:{ filter:{projectID},update:{'$push':{equipments:{ $each: data.documents }}}}})
- }else {
- let task = {updateOne : {
- filter:{projectID,'equipments.ID':data.ID},
- update:{$set:getPreUpdate('equipments.$',data.doc)}
- }}
- tasks.push(task)
- }
- }
- if(tasks.length > 0) await equipmentPurchaseModel.bulkWrite(tasks);
- return updateData
- }
- function getData(projectID, callback) {
- equipmentPurchaseModel.findOne({'projectID': projectID}).lean().exec((err, data) => {
- if (err) {
- callback(1, '', null);
- } else {
- callback(0, consts.projectConst.EQUIPMENT_PURCHASE, data);
- }
- })
- }
|