pd address add,update and delete
This commit is contained in:
parent
2c6e38094c
commit
af8634e05f
@ -110,9 +110,8 @@ export const createOrderCheckout = async (req, res) => {
|
||||
}));
|
||||
let addss = await ShippingAddress.findById(address);
|
||||
let shipping = {
|
||||
first_Name: addss.first_Name,
|
||||
last_Name: addss.last_Name,
|
||||
phone_Number: addss.phone_Number,
|
||||
Name: addss.Name,
|
||||
phoneNumber: addss.phoneNumber,
|
||||
street: addss.street,
|
||||
city: addss.city,
|
||||
state: addss.state,
|
||||
|
@ -43,9 +43,8 @@ export const poscreateOrderCheckout = async (req, res) => {
|
||||
let addss = await ShippingAddress.findById(address);
|
||||
|
||||
let shipping = {
|
||||
first_Name: addss.first_Name,
|
||||
last_Name: addss?.last_Name,
|
||||
phone_Number: addss?.phone_Number,
|
||||
Name: addss.Name,
|
||||
phoneNumber: addss?.phoneNumber,
|
||||
street: addss?.street,
|
||||
city: addss?.city,
|
||||
state: addss?.state,
|
||||
|
@ -180,9 +180,8 @@ export const checkout = async (req, res) => {
|
||||
let addss = await ShippingAddress.findById(address);
|
||||
|
||||
let shipping = {
|
||||
first_Name: addss.first_Name,
|
||||
last_Name: addss?.last_Name,
|
||||
phone_Number: addss?.phone_Number,
|
||||
Name: addss.Name,
|
||||
phoneNumber: addss?.phoneNumber,
|
||||
street: addss?.street,
|
||||
city: addss?.city,
|
||||
state: addss?.state,
|
||||
@ -662,9 +661,8 @@ export const handlePayment = async (req, res) => {
|
||||
let addss = await ShippingAddress.findById(address);
|
||||
// console.log(addss?.postalCode);
|
||||
let shipping = {
|
||||
first_Name: addss.first_Name,
|
||||
last_Name: addss.last_Name,
|
||||
phone_Number: addss.phone_Number,
|
||||
Name: addss.Name,
|
||||
phoneNumber: addss.phoneNumber,
|
||||
street: addss.street,
|
||||
city: addss.city,
|
||||
state: addss.state,
|
||||
|
@ -51,9 +51,8 @@ export const handlePayment = async (req, res) => {
|
||||
let addss = await ShippingAddress.findById(address);
|
||||
|
||||
let shipping = {
|
||||
first_Name: addss.first_Name,
|
||||
last_Name: addss.last_Name,
|
||||
phone_Number: addss.phone_Number,
|
||||
Name: addss.Name,
|
||||
phoneNumber: addss.phoneNumber,
|
||||
street: addss.street,
|
||||
city: addss.city,
|
||||
state: addss.state,
|
||||
|
@ -2,28 +2,17 @@ import ShippingAddress from "./ShippingAddressModel.js";
|
||||
export const AddshippingAddress = async (req, res) => {
|
||||
// console.log("request came here");
|
||||
try {
|
||||
const {
|
||||
first_Name,
|
||||
last_Name,
|
||||
phone_Number,
|
||||
street,
|
||||
city,
|
||||
state,
|
||||
postalCode,
|
||||
country,
|
||||
} = req.body;
|
||||
const { Name, phoneNumber, street, city, state, postalCode, country } =
|
||||
req.body;
|
||||
|
||||
// console.log(req.body);
|
||||
switch (true) {
|
||||
//validation
|
||||
case !first_Name: {
|
||||
return res.status(404).json({ msg: "please provide first_Name" });
|
||||
case !Name: {
|
||||
return res.status(404).json({ msg: "please provide Name" });
|
||||
}
|
||||
case !last_Name: {
|
||||
return res.status(404).json({ msg: "please provide last_Name" });
|
||||
}
|
||||
case !phone_Number: {
|
||||
return res.status(404).json({ msg: "please provide phone_Number" });
|
||||
case !phoneNumber: {
|
||||
return res.status(404).json({ msg: "please provide phoneNumber" });
|
||||
}
|
||||
case !street: {
|
||||
return res.status(404).json({ msg: "please provide street" });
|
||||
@ -60,6 +49,8 @@ export const AddshippingAddress = async (req, res) => {
|
||||
export const AddshippingAddressByAdmin = async (req, res) => {
|
||||
try {
|
||||
const {
|
||||
Name,
|
||||
phoneNumber,
|
||||
street,
|
||||
city,
|
||||
state,
|
||||
@ -69,14 +60,18 @@ export const AddshippingAddressByAdmin = async (req, res) => {
|
||||
tradeName,
|
||||
gstNumber,
|
||||
} = req.body;
|
||||
|
||||
// console.log(req.body);
|
||||
// Validate required fields
|
||||
if (!street || !city || !state || !postalCode || !panNumber) {
|
||||
return res.status(400).json({ msg: "Please provide all required fields" });
|
||||
return res
|
||||
.status(400)
|
||||
.json({ msg: "Please provide all required fields" });
|
||||
}
|
||||
|
||||
// Create shipping address object
|
||||
const newAddress = await ShippingAddress.create({
|
||||
Name,
|
||||
phoneNumber,
|
||||
street,
|
||||
city,
|
||||
state,
|
||||
@ -97,14 +92,16 @@ export const AddshippingAddressByAdmin = async (req, res) => {
|
||||
// console.error("Error creating shipping address:", error.message);
|
||||
|
||||
// Check for validation errors
|
||||
if (error.name === 'ValidationError') {
|
||||
const errorMessages = Object.values(error.errors).map(err => err.message);
|
||||
if (error.name === "ValidationError") {
|
||||
const errorMessages = Object.values(error.errors).map(
|
||||
(err) => err.message
|
||||
);
|
||||
return res.status(400).json({
|
||||
success: false,
|
||||
message: errorMessages.join(", "),
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// General error
|
||||
res.status(500).json({
|
||||
success: false,
|
||||
@ -164,13 +161,14 @@ export const deleteSelfShippingAddress = async (req, res) => {
|
||||
.status(400)
|
||||
.json({ message: "please Provide shipping Address Id" });
|
||||
const getselfAddress = await ShippingAddress.findById(req.params.id);
|
||||
const userId = req.body.userId ? req.body.userId : req.user._id;
|
||||
if (!getselfAddress) {
|
||||
return res.status(404).json({
|
||||
success: false,
|
||||
message: "No shipping Address Found!",
|
||||
});
|
||||
}
|
||||
if (getselfAddress?.user.toString() === req.user._id.toString()) {
|
||||
if (getselfAddress?.user.toString() === userId.toString()) {
|
||||
const address = await ShippingAddress.findByIdAndDelete(req.params.id);
|
||||
await address.remove();
|
||||
return res.status(200).json({
|
||||
@ -195,15 +193,18 @@ export const deleteSelfShippingAddress = async (req, res) => {
|
||||
export const updateShippingAddress = async (req, res) => {
|
||||
try {
|
||||
const {
|
||||
first_Name,
|
||||
last_Name,
|
||||
phone_Number,
|
||||
Name,
|
||||
phoneNumber,
|
||||
street,
|
||||
city,
|
||||
state,
|
||||
postalCode,
|
||||
country,
|
||||
panNumber,
|
||||
tradeName,
|
||||
gstNumber,
|
||||
} = req.body;
|
||||
// console.log(req.body);
|
||||
const _id = req.params.id;
|
||||
if (!req.params.id)
|
||||
return res
|
||||
@ -218,13 +219,10 @@ export const updateShippingAddress = async (req, res) => {
|
||||
}
|
||||
switch (true) {
|
||||
//validation
|
||||
case !first_Name: {
|
||||
return res.status(404).json({ msg: "please provide first_Name" });
|
||||
case !Name: {
|
||||
return res.status(404).json({ msg: "please provide Name" });
|
||||
}
|
||||
case !last_Name: {
|
||||
return res.status(404).json({ msg: "please provide last_Name" });
|
||||
}
|
||||
case !phone_Number: {
|
||||
case !phoneNumber: {
|
||||
return res.status(404).json({ msg: "please provide phone_Number" });
|
||||
}
|
||||
case !street: {
|
||||
@ -242,16 +240,27 @@ export const updateShippingAddress = async (req, res) => {
|
||||
case !country: {
|
||||
return res.status(404).json({ msg: "please provide country" });
|
||||
}
|
||||
case !panNumber: {
|
||||
return res.status(404).json({ msg: "please provide panNumber" });
|
||||
}
|
||||
case !tradeName: {
|
||||
return res.status(404).json({ msg: "please provide tradeName" });
|
||||
}
|
||||
case !gstNumber: {
|
||||
return res.status(404).json({ msg: "please provide gstNumber" });
|
||||
}
|
||||
}
|
||||
const updateAddressData = {
|
||||
first_Name,
|
||||
last_Name,
|
||||
phone_Number,
|
||||
Name,
|
||||
phoneNumber,
|
||||
street,
|
||||
city,
|
||||
state,
|
||||
postalCode,
|
||||
country,
|
||||
panNumber,
|
||||
tradeName,
|
||||
gstNumber,
|
||||
};
|
||||
const updateShippingAddress = await ShippingAddress.findByIdAndUpdate(
|
||||
{ _id: _id },
|
||||
|
@ -2,10 +2,7 @@ import mongoose from "mongoose";
|
||||
|
||||
const shippingAddressSchema = new mongoose.Schema(
|
||||
{
|
||||
firstName: {
|
||||
type: String,
|
||||
},
|
||||
lastName: {
|
||||
Name: {
|
||||
type: String,
|
||||
},
|
||||
phoneNumber: {
|
||||
|
@ -181,26 +181,39 @@ const getStartAndEndOfDay = (date) => {
|
||||
export const getTasksByDates = async (req, res) => {
|
||||
try {
|
||||
await updateOverdueTasks();
|
||||
|
||||
// Initialize filter object
|
||||
const filter = {};
|
||||
|
||||
// Determine the filter based on user type
|
||||
if (req.userType === "SalesCoOrdinator") {
|
||||
filter.taskAssignedTo = req.user._id; // Use `=` to assign values, and `===` for comparison
|
||||
} else {
|
||||
filter.taskAssignedBy = req.user._id;
|
||||
}
|
||||
|
||||
// Get the date from the query
|
||||
const { Date: queryDate } = req.query;
|
||||
let taskDate;
|
||||
// If date is provided in query, parse it, otherwise use today's date
|
||||
|
||||
// If date is provided in query, parse it; otherwise, use today's date
|
||||
if (queryDate) {
|
||||
taskDate = parseDate(queryDate);
|
||||
} else {
|
||||
// Get today's date in UTC
|
||||
taskDate = new Date();
|
||||
}
|
||||
|
||||
// Get the start and end of the day in UTC
|
||||
const { startOfDay, endOfDay } = getStartAndEndOfDay(taskDate);
|
||||
|
||||
// Find tasks for the user, filtered by createdAt within the start and end of the day
|
||||
const tasks = await Task.find({
|
||||
taskAssignedBy: req.user._id,
|
||||
...filter, // Use the filter object for querying
|
||||
createdAt: { $gte: startOfDay, $lte: endOfDay },
|
||||
})
|
||||
.populate({
|
||||
path: "taskAssignedTo",
|
||||
path: req.userType === "SalesCoOrdinator" ? "taskAssignedTo" : "taskAssignedBy", // Change path based on user type
|
||||
select: "name mobileNumber email",
|
||||
})
|
||||
.sort({ createdAt: -1 });
|
||||
|
@ -9,37 +9,22 @@ import {
|
||||
} from "./TaskController.js";
|
||||
import { isAuthenticatedSalesCoOrdinator } from "../../middlewares/SalesCoOrdinatorAuth.js";
|
||||
import { isAuthenticatedTerritoryManager } from "../../middlewares/TerritoryManagerAuth.js";
|
||||
import { isAuthenticated_SC_TM } from "../../middlewares/generalAuth.js";
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
// Route for Territory Manager to assign a task
|
||||
router.post(
|
||||
"/assign-task",
|
||||
isAuthenticatedTerritoryManager,
|
||||
assignTask
|
||||
);
|
||||
router.post("/assign-task", isAuthenticatedTerritoryManager, assignTask);
|
||||
|
||||
// Route for Sales Coordinator to view their tasks by status
|
||||
router.get(
|
||||
"/tasks/:status",
|
||||
isAuthenticatedSalesCoOrdinator,
|
||||
getTasksByStatus
|
||||
);
|
||||
router.get("/tasks/:status", isAuthenticatedSalesCoOrdinator, getTasksByStatus);
|
||||
router.get(
|
||||
"/alltasks/:status",
|
||||
isAuthenticatedTerritoryManager,
|
||||
getAllTasksByStatus
|
||||
);
|
||||
router.get(
|
||||
"/alltask",
|
||||
isAuthenticatedTerritoryManager,
|
||||
getTasksByDates
|
||||
);
|
||||
router.get(
|
||||
"/task/type/:task",
|
||||
isAuthenticatedSalesCoOrdinator,
|
||||
getTasksbytask
|
||||
);
|
||||
router.get("/alltask", isAuthenticated_SC_TM, getTasksByDates);
|
||||
router.get("/task/type/:task", isAuthenticatedSalesCoOrdinator, getTasksbytask);
|
||||
// Route to update task status
|
||||
router.put(
|
||||
"/update-task-status/:taskId",
|
||||
|
@ -503,9 +503,18 @@ export const uploadPrincipaldistributors = async (req, res) => {
|
||||
"tradeName",
|
||||
"postalCode",
|
||||
];
|
||||
const existingAddress = await ShippingAddress.findOne({
|
||||
let existingAddress = await ShippingAddress.findOne({
|
||||
user: distributor._id,
|
||||
});
|
||||
isDefault: true,
|
||||
}).exec();
|
||||
|
||||
if (!existingAddress) {
|
||||
existingAddress = await ShippingAddress.findOne({
|
||||
user: distributor._id,
|
||||
})
|
||||
.sort({ createdAt: 1 }) // Get the first created address as fallback
|
||||
.exec();
|
||||
}
|
||||
|
||||
// Check for changes in user details
|
||||
let userUpdated = false;
|
||||
@ -537,6 +546,8 @@ export const uploadPrincipaldistributors = async (req, res) => {
|
||||
|
||||
// Check for changes in address details
|
||||
const addressData = {
|
||||
Name: item.name,
|
||||
phoneNumber: item.phone,
|
||||
street: item.street,
|
||||
city: item.city,
|
||||
state: item.state,
|
||||
@ -609,6 +620,8 @@ export const uploadPrincipaldistributors = async (req, res) => {
|
||||
});
|
||||
// Now create the address for the new user
|
||||
const addressData = {
|
||||
Name: item.name,
|
||||
phoneNumber: item.phone,
|
||||
street: item.street,
|
||||
city: item.city,
|
||||
state: item.state,
|
||||
@ -618,6 +631,7 @@ export const uploadPrincipaldistributors = async (req, res) => {
|
||||
tradeName: item.tradeName,
|
||||
gstNumber: item.gstNumber,
|
||||
user: distributor._id, // Use the saved user's ID
|
||||
isDefault: true,
|
||||
};
|
||||
const newAddress = await ShippingAddress.create(addressData);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user