From 88496fb9d0732926794479ac2635b410bf9183ae Mon Sep 17 00:00:00 2001 From: Sibunnayak Date: Fri, 18 Oct 2024 12:51:59 +0530 Subject: [PATCH] add multiple pd update --- ...EMINOVA_APP_PD_AS_ON_17_10_24_TEST_01.xlsx | Bin 0 -> 13195 bytes .../ShippingAddresses/ShippingAddressModel.js | 2 +- .../RDShippingAddressModel.js | 2 +- resources/Task/TaskController.js | 40 ++++++++++-------- resources/user/userController.js | 2 +- resources/user/userModel.js | 1 - 6 files changed, 25 insertions(+), 22 deletions(-) create mode 100644 public/uploads/CHEMINOVA_APP_PD_AS_ON_17_10_24_TEST_01.xlsx diff --git a/public/uploads/CHEMINOVA_APP_PD_AS_ON_17_10_24_TEST_01.xlsx b/public/uploads/CHEMINOVA_APP_PD_AS_ON_17_10_24_TEST_01.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..39b50ef83c54259c9aa867a4cb8192fa91e72854 GIT binary patch literal 13195 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 literal 0 HcmV?d00001 diff --git a/resources/ShippingAddresses/ShippingAddressModel.js b/resources/ShippingAddresses/ShippingAddressModel.js index 399c02d..18a401e 100644 --- a/resources/ShippingAddresses/ShippingAddressModel.js +++ b/resources/ShippingAddresses/ShippingAddressModel.js @@ -6,7 +6,7 @@ const shippingAddressSchema = new mongoose.Schema( type: String, }, phoneNumber: { - type: Number, + type: String, }, street: { type: String, diff --git a/resources/ShippingAddressesRD/RDShippingAddressModel.js b/resources/ShippingAddressesRD/RDShippingAddressModel.js index 8054fc0..759f1a4 100644 --- a/resources/ShippingAddressesRD/RDShippingAddressModel.js +++ b/resources/ShippingAddressesRD/RDShippingAddressModel.js @@ -6,7 +6,7 @@ const shippingAddressSchema = new mongoose.Schema( type: String, }, phoneNumber: { - type: Number, + type: String, }, street: { type: String, diff --git a/resources/Task/TaskController.js b/resources/Task/TaskController.js index a2c6f89..d7a8f77 100644 --- a/resources/Task/TaskController.js +++ b/resources/Task/TaskController.js @@ -384,27 +384,31 @@ export const getTodaysTasks = async (req, res) => { const skip = (currentPage - 1) * itemsPerPage; // Find tasks that are due today, with pagination - let tasksQuery = Task.find({ + const tasks = await Task.find({ taskDueDate: { $gte: startOfToday, $lte: endOfToday, }, }) - .populate('taskAssignedTo') // Optional: populate assigned coordinator details - .populate('taskAssignedBy') // Optional: populate assigned manager details + .populate("taskAssignedTo") // Optional: populate assigned coordinator details + .populate("taskAssignedBy") // Optional: populate assigned manager details .skip(skip) // Skip documents for pagination - .limit(itemsPerPage); // Limit the number of documents + .limit(itemsPerPage) // Limit the number of documents + .exec(); - // Modify the population based on the `addedFor` field value - tasksQuery = tasksQuery.populate({ - path: 'addedForId', - model: function (doc) { - return doc.addedFor === 'PrincipalDistributor' ? 'User' : 'RetailDistributor'; - }, - }); - - // Execute the query - const tasks = await tasksQuery.exec(); + // Populate addedForId conditionally + const populatedTasks = await Promise.all( + tasks.map(async (task) => { + if (task.addedFor === "PrincipalDistributor") { + // Populate with PrincipalDistributor + await task.populate("addedForId", User); + } else if (task.addedFor === "RetailDistributor") { + // Populate with RetailDistributor + await task.populate("addedForId", RetailDistributor); + } + return task; // Return the populated task + }) + ); // Count the total number of tasks for pagination metadata const totalTasks = await Task.countDocuments({ @@ -419,14 +423,14 @@ export const getTodaysTasks = async (req, res) => { // Send paginated tasks in response res.status(200).json({ - tasks, // Paginated tasks + tasks: populatedTasks, // Paginated and populated tasks currentPage, // Current page number itemsPerPage, // Number of tasks per page totalTasks, // Total number of tasks totalPages, // Total number of pages }); } catch (error) { - console.error('Error fetching today\'s tasks with pagination:', error); - res.status(500).json({ message: 'Failed to retrieve tasks for today' }); + console.error("Error fetching today's tasks with pagination:", error); + res.status(500).json({ message: "Failed to retrieve tasks for today" }); } -}; \ No newline at end of file +}; diff --git a/resources/user/userController.js b/resources/user/userController.js index 4a51f07..34c3162 100644 --- a/resources/user/userController.js +++ b/resources/user/userController.js @@ -553,7 +553,7 @@ export const uploadPrincipaldistributors = async (req, res) => { // Check for changes in address details const addressData = { Name: item.name, - phoneNumber: item.phone.toString(), + phoneNumber: item.phone.toString().trim(), street: item.street, city: item.city, state: item.state, diff --git a/resources/user/userModel.js b/resources/user/userModel.js index d9ce78c..67d14a1 100644 --- a/resources/user/userModel.js +++ b/resources/user/userModel.js @@ -38,7 +38,6 @@ const userSchema = new mongoose.Schema( name: { type: String, required: [true, "Please Enter Your Name"], - maxLength: [30, "Name cannot exceed 30 characters"], }, email: { type: String,