status maintain in order schema

master^2
Bhaskar 8 months ago
parent 55310b1407
commit 3d33e2e465

@ -203,86 +203,93 @@ exports.createTeamMember = async (request, reply) => {
exports.assignTeamMemberToQuotation = async (request, reply) => {
try {
const { installationId } = request.params;
const { teamMemberId, quotationId } = request.body;
if (!teamMemberId || !quotationId) {
return reply.status(400).send({
simplydata: {
error: true,
message: "Both teamMemberId and quotationId are required",
},
});
}
const { installationId } = request.params;
const { teamMemberId, quotationId } = request.body;
// Find installation by installationId
const installation = await Install.findOne({ installationId });
if (!teamMemberId || !quotationId) {
return reply.status(400).send({
simplydata: {
error: true,
message: "Both teamMemberId and quotationId are required",
},
});
}
if (!installation) {
return reply.status(404).send({
simplydata: {
error: true,
message: "Installation not found",
},
});
}
// 🔹 Find installation by installationId
const installation = await Install.findOne({ installationId });
// Extract team members list
const teamMembers = installation.team_member?.team_member || [];
if (!installation) {
return reply.status(404).send({
simplydata: {
error: true,
message: "Installation not found",
},
});
}
// Check if the provided teamMemberId exists in the installation's team
const assignedTeamMember = teamMembers.find(member => member.teamMemberId === teamMemberId);
// 🔹 Extract team members list
const teamMembers = installation.team_member?.team_member || [];
if (!assignedTeamMember) {
return reply.status(404).send({
simplydata: {
error: true,
message: "Team member not found in this installation",
},
});
}
// 🔹 Check if the provided teamMemberId exists in the installation's team
const assignedTeamMember = teamMembers.find(
(member) => member.teamMemberId === teamMemberId
);
// Find or create the quotation for the given installationId
let quotation = await Order.findOne({ installationId, quatationId: quotationId });
if (!assignedTeamMember) {
return reply.status(404).send({
simplydata: {
error: true,
message: "Team member not found in this installation",
},
});
}
if (!quotation) {
quotation = new Order({
installationId,
quatationId: quotationId,
// assignedTeamMembers: [],
});
}
// 🔹 Find or create the quotation for the given installationId
let quotation = await Order.findOne({ installationId, quatationId: quotationId });
// Assign the team member to the quotation
if (!quotation.assignedTeamMembers) {
quotation.assignedTeamMembers = [];
}
if (!quotation) {
quotation = new Order({
installationId,
quatationId: quotationId,
assignedTeamMembers: [],
status: "Pending", // Default status when created
});
}
if (!quotation.assignedTeamMembers.includes(teamMemberId)) {
quotation.assignedTeamMembers.push(teamMemberId);
}
// 🔹 Assign the team member to the quotation
if (!quotation.assignedTeamMembers) {
quotation.assignedTeamMembers = [];
}
// Save the updated quotation
await quotation.save();
if (!quotation.assignedTeamMembers.includes(teamMemberId)) {
quotation.assignedTeamMembers.push(teamMemberId);
}
return reply.send({
simplydata: {
error: false,
message: "Team member assigned to quotation successfully",
quotation,
},
});
// 🔹 Update order status when a team member is assigned
quotation.status = "Assigned"; // Update status
// 🔹 Save the updated quotation
await quotation.save();
return reply.send({
simplydata: {
error: false,
message: "Team member assigned to quotation successfully",
quotation,
},
});
} catch (err) {
console.error("Error assigning team member to quotation:", err);
reply.status(500).send({
simplydata: {
error: true,
message: "Internal server error",
},
});
console.error("Error assigning team member to quotation:", err);
reply.status(500).send({
simplydata: {
error: true,
message: "Internal server error",
},
});
}
};
exports.getAllInstallers = async (request, reply) => {
try {
const { departmentName } = request.params; // Get installationId from request params

Loading…
Cancel
Save