From dd5d357afe653987bf49fba98e5b85925ea3a1b3 Mon Sep 17 00:00:00 2001 From: satheesh Date: Thu, 6 Apr 2017 18:42:52 +0530 Subject: [PATCH] [#005]-CSV duplicate fix --- imports/collections/staff/serverCsvUpload.js | 38 +++++++----- imports/collections/students/serverCsvUpload.js | 79 +++++++++++++------------ 2 files changed, 65 insertions(+), 52 deletions(-) diff --git a/imports/collections/staff/serverCsvUpload.js b/imports/collections/staff/serverCsvUpload.js index 945a1e8..270a72c 100644 --- a/imports/collections/staff/serverCsvUpload.js +++ b/imports/collections/staff/serverCsvUpload.js @@ -64,6 +64,8 @@ export const addStaffCSV= new ValidatedMethod({ //username: data["First Name*"], firstName: data["First Name*"], lastName: data['Last Name*'], + emails: [{ address: data['Staff Email*'],verified: false }], + phones: [{ number: data['Staff Phone*'],verified: false }], orgId: orgId, role: 'STAFF' }); @@ -141,9 +143,6 @@ export const staffUploadCsv = new ValidatedMethod({ run({data}) { let validation = new Validation(); let constants = new Constants(); - //console.log("++++++++++++++++++++++++"+constants.csv_students_data()); - temp = constants.csv_students_data(); - console.log(temp); var CSV_valid_buffer = []; var CSV_invalid_buffer = []; var filename = "Staff-" + new Date().getTime().toString(); @@ -177,22 +176,33 @@ export const staffUploadCsv = new ValidatedMethod({ } var is_valid = formate_validation && is_not_null ; + + + if (is_valid) { - CSV_valid_buffer.push(item); - console.log("----------------------------------------1"); + exists = Users.findOne({"firstName": item["First Name*"],"lastName": item["Last Name*"],'emails.$.address' : item['Staff Email*'],'phones.$.number' : item['Staff Phone*']}, {"_id": 1}); - Meteor.call('staff.addCSV',item); - console.log("----------------------------------------2"); - + if (!exists) + { + CSV_valid_buffer.push(item); + Meteor.call('staff.addCSV',item); + console.warn('done'); + } + else + { + console.warn('This data already exists.'); + errors.push('This data already exists'); + var str = errors.toString(); + item.Errors = str; + CSV_invalid_buffer.push(item); + } + } - else - { - var str = errors.toString(); - item.Errors = str; - CSV_invalid_buffer.push(item); - } + } + + console.log(csv_filepath+filename+"_CSV_invalid_data"+".csv"); Meteor.call('staff.saveCsvData',{ item : CSV_invalid_buffer, filename: csv_filepath+filename+"_CSV_invalid_data"+".csv",csv_fiels :constants.csv_staff_data()}); Meteor.call('staff.saveCsvData',{ item : CSV_valid_buffer,filename: csv_filepath+filename+"_CSV_valid_data"+".csv",csv_fiels :constants.csv_staff_data()}); diff --git a/imports/collections/students/serverCsvUpload.js b/imports/collections/students/serverCsvUpload.js index b198f07..d2a630b 100644 --- a/imports/collections/students/serverCsvUpload.js +++ b/imports/collections/students/serverCsvUpload.js @@ -58,9 +58,6 @@ export const addStudentCSV= new ValidatedMethod({ run(item){ data = item ; - console.log("data"); - console.log(data); - // return true; const user = Users.findOne({_id: this.userId}); orgId = user.orgId; newStudentId = Users.insert({ @@ -74,9 +71,12 @@ export const addStudentCSV= new ValidatedMethod({ newParentUserId = Users.insert({ //emails: [{address:data.parentEmail, verified: false}], //3: data['Parent Name*'], - firstName: data['Parent Name*'], orgId: orgId, + firstName: data['Parent Name*'], + emails: [{ address: data['Parent Email*'],verified: false }], + phones: [{ number: data['Parent Mobile*'],verified: false }], role: 'PARENT' + }); if(newParentUserId){ newParentId = Parents.insert({ @@ -135,10 +135,7 @@ export const studentUploadCsv = new ValidatedMethod({ run({data}) { let validation = new Validation(); let constants = new Constants(); - //console.log("++++++++++++++++++++++++"+constants.csv_students_data()); - temp = constants.csv_students_data(); - // - console.log(temp); + // var data_1=csv1.csvtojson(("/Users/satheeshnagaraj/Downloads/11.csv")); //csvtojson is function that accepts csv filenames and returns JSON object //console.log(data);'' // Stores = new Mongo.Collection('stores'); @@ -147,7 +144,8 @@ export const studentUploadCsv = new ValidatedMethod({ var CSV_valid_buffer = []; var CSV_invalid_buffer = []; var filename = "Student" + new Date().getTime().toString(); - var csv_filepath = '/Users/deepak/dev/yd/csv'; + var csv_filepath ='/Users/satheeshnagaraj/Documents/Workspace/Meteor/production/ydapp/CSV_Files/'; + //var csv_filepath = '/Users/deepak/dev/yd/csv'; @@ -193,35 +191,40 @@ export const studentUploadCsv = new ValidatedMethod({ // console.log(formate_validation); if (is_valid) { - CSV_valid_buffer.push(item); - console.log("----------------------------------------1"); - console.log("----------------------------------------item"); - console.log(item); - console.log (Users.findOne({"firstName": item["First Name*"],"lastName": item["Last Name*"]})); - - Meteor.call('student.addCSV',item); - console.log("----------------------------------------2"); - - // exists = Stores.findOne({ - // "Student 'Admission' ID*": item["Student Admission ID*"] - // }); - // if (!exists) - // { - // Stores.insert(item); - // } - // else - // { - // console.warn('Rejected. This item already exists.'); - // } - } - else - { - var str = errors.toString(); - item.Errors = str; - CSV_invalid_buffer.push(item); - //console.log(str); - // console.log(CSV_invalid_buffer); - } + + exists = Users.findOne({"firstName": item["First Name*"],"lastName": item["Last Name*"]}, {"_id": 1}); + + if (!exists) + { + CSV_valid_buffer.push(item); + Meteor.call('student.addCSV',item); + console.warn('done'); + } + else + { + console.log(exists._id); + student_data = Students.findOne({"userId":exists._id}); + console.log("--------------"+student_data); + + parent_data = Users.findOne({"_id":student_data.parent[0].id}); + + console.log(parent_data.emails[0].address); + if ( parent_data.emails[0].address != item["Parent Email*"]) + { + CSV_valid_buffer.push(item); + Meteor.call('student.addCSV',item); + console.warn('done'); + } + else + { + console.warn('This data already exists.'); + errors.push('This data already exists'); + var str = errors.toString(); + item.Errors = str; + CSV_invalid_buffer.push(item); + } + } + } } Meteor.call('save_csv_data',{ item : CSV_invalid_buffer, filename: csv_filepath+filename+"_CSV_invalid_data"+".csv",csv_fiels :constants.csv_students_data()}); Meteor.call('save_csv_data',{ item : CSV_valid_buffer,filename: csv_filepath+filename+"_CSV_valid_data"+".csv",csv_fiels :constants.csv_students_data()}); -- 2.0.0