ashok 5 months ago
commit 7535042aea

@ -2511,37 +2511,44 @@ exports.getOrdersByInstallationId = async (req, reply) => {
const { installationId } = req.params; const { installationId } = req.params;
if (!installationId) { if (!installationId) {
return reply.status(400).send({ error: "storeId is required" }); return reply.status(400).send({ error: "installationId is required" });
} }
// Fetch orders with the matching storeId // Fetch orders by installationId
const orders = await Order.find({ installationId }); const orders = await Order.find({ installationId });
if (!orders.length) { if (!orders.length) {
return reply.send({ return reply.send({
status_code: 200, status_code: 200,
message: "No orders found for this store", message: "No orders found for this installation",
data: [], data: [],
}); });
} }
// Fetch customer details & allocated sensors for each order // Filter unique customerId + installationId combinations
const seen = new Set();
const uniqueOrders = orders.filter(order => {
const key = `${order.customerId}_${order.installationId}`;
if (seen.has(key)) return false;
seen.add(key);
return true;
});
// Fetch details for each unique order
const ordersWithDetails = await Promise.all( const ordersWithDetails = await Promise.all(
orders.map(async (order) => { uniqueOrders.map(async (order) => {
// Fetch customer details
const customer = await User.findOne({ customerId: order.customerId }).lean(); const customer = await User.findOne({ customerId: order.customerId }).lean();
// Fetch allocated sensors for this customer
const allocatedSensors = await Insensors.find({ const allocatedSensors = await Insensors.find({
installationId, installationId,
customerId: order.customerId, // Match only sensors allocated to this customer customerId: order.customerId,
status: "blocked", // Only fetch sensors that are allocated (blocked) status: "blocked",
}).lean(); }).lean();
return { return {
...order.toObject(), ...order.toObject(),
customer: customer || null, // Include customer details or null if not found customer: customer || null,
allocated_sensors: allocatedSensors, // List of allocated sensors allocated_sensors: allocatedSensors,
}; };
}) })
); );
@ -2557,6 +2564,7 @@ exports.getOrdersByInstallationId = async (req, reply) => {
} }
}; };
exports.getallocatedsensorstouser= async (req, reply) => { exports.getallocatedsensorstouser= async (req, reply) => {
try { try {
const { customerId } = req.params; const { customerId } = req.params;

Loading…
Cancel
Save