|
|
@ -2718,13 +2718,18 @@ exports.getOrdersByInstallationId = async (req, reply) => {
|
|
|
|
// Step 2: Process each order
|
|
|
|
// Step 2: Process each order
|
|
|
|
for (const order of orders) {
|
|
|
|
for (const order of orders) {
|
|
|
|
// Filter master_connections to keep active ones
|
|
|
|
// Filter master_connections to keep active ones
|
|
|
|
const activeMasters = (order.master_connections || []).filter(mc =>
|
|
|
|
const activeMasters = (order.master_connections || []).filter(
|
|
|
|
mc.work_status === 'active' || mc.work_status === '' || mc.work_status == null
|
|
|
|
(mc) =>
|
|
|
|
|
|
|
|
mc.work_status === "active" ||
|
|
|
|
|
|
|
|
mc.work_status === "" ||
|
|
|
|
|
|
|
|
mc.work_status == null
|
|
|
|
);
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
if (activeMasters.length) {
|
|
|
|
if (activeMasters.length) {
|
|
|
|
// Fetch customer details
|
|
|
|
// Fetch customer details
|
|
|
|
const customer = await User.findOne({ customerId: order.customerId }).lean();
|
|
|
|
const customer = await User.findOne({
|
|
|
|
|
|
|
|
customerId: order.customerId,
|
|
|
|
|
|
|
|
}).lean();
|
|
|
|
|
|
|
|
|
|
|
|
// Find assigned team members from installation.team_member.team_member
|
|
|
|
// Find assigned team members from installation.team_member.team_member
|
|
|
|
let assignedTeamMembersDetails = [];
|
|
|
|
let assignedTeamMembersDetails = [];
|
|
|
@ -2735,15 +2740,21 @@ exports.getOrdersByInstallationId = async (req, reply) => {
|
|
|
|
order.assignedTeamMembers &&
|
|
|
|
order.assignedTeamMembers &&
|
|
|
|
order.assignedTeamMembers.length > 0
|
|
|
|
order.assignedTeamMembers.length > 0
|
|
|
|
) {
|
|
|
|
) {
|
|
|
|
assignedTeamMembersDetails = installationDoc.team_member.team_member.filter(tm =>
|
|
|
|
assignedTeamMembersDetails =
|
|
|
|
|
|
|
|
installationDoc.team_member.team_member.filter((tm) =>
|
|
|
|
order.assignedTeamMembers.includes(tm.teamMemberId)
|
|
|
|
order.assignedTeamMembers.includes(tm.teamMemberId)
|
|
|
|
);
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Extract work_status from first active master
|
|
|
|
|
|
|
|
const work_status =
|
|
|
|
|
|
|
|
activeMasters.length > 0 ? activeMasters[0].work_status : null;
|
|
|
|
|
|
|
|
|
|
|
|
// Build response
|
|
|
|
// Build response
|
|
|
|
ordersWithDetails.push({
|
|
|
|
ordersWithDetails.push({
|
|
|
|
...order.toObject(),
|
|
|
|
...order.toObject(),
|
|
|
|
master_connections: activeMasters,
|
|
|
|
master_connections: activeMasters,
|
|
|
|
|
|
|
|
work_status, // 👈 placed above customer
|
|
|
|
customer: customer || null,
|
|
|
|
customer: customer || null,
|
|
|
|
assignedTeamMembersDetails,
|
|
|
|
assignedTeamMembersDetails,
|
|
|
|
});
|
|
|
|
});
|
|
|
@ -2755,7 +2766,6 @@ exports.getOrdersByInstallationId = async (req, reply) => {
|
|
|
|
message: "Orders with active master connections fetched successfully",
|
|
|
|
message: "Orders with active master connections fetched successfully",
|
|
|
|
data: ordersWithDetails,
|
|
|
|
data: ordersWithDetails,
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
} catch (err) {
|
|
|
|
} catch (err) {
|
|
|
|
console.error("Error fetching orders:", err);
|
|
|
|
console.error("Error fetching orders:", err);
|
|
|
|
return reply.status(500).send({ error: "Internal server error" });
|
|
|
|
return reply.status(500).send({ error: "Internal server error" });
|
|
|
@ -2766,6 +2776,7 @@ exports.getOrdersByInstallationId = async (req, reply) => {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
exports.getPendingOrdersByInstallationAndTeamMember = async (req, reply) => {
|
|
|
|
exports.getPendingOrdersByInstallationAndTeamMember = async (req, reply) => {
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
const { installationId, teamMemberId } = req.params;
|
|
|
|
const { installationId, teamMemberId } = req.params;
|
|
|
|