fix(SPG-1036): remove queue if empty
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details

pull/115/head 1.2.6-alpha.4
shancheas 2024-11-20 11:46:19 +07:00
parent 99d0fc8560
commit 4dc21c4ebd
1 changed files with 40 additions and 34 deletions

View File

@ -33,42 +33,48 @@ export class CustomerQueueListManager extends CustomerQueueManager {
});
});
return Object.keys(ticketItems).map((item_id) => {
const tickets: QueueTicketModel[] = ticketItems[item_id];
const item = tickets[0].items[0];
const uniqueTicket = tickets.filter(
(obj1, i, arr) => arr.findIndex((obj2) => obj2.id === obj1.id) === i,
);
let totalQueue = 0;
return Object.keys(ticketItems)
.map((item_id) => {
const tickets: QueueTicketModel[] = ticketItems[item_id];
const item = tickets[0].items[0];
const uniqueTicket = tickets.filter(
(obj1, i, arr) => arr.findIndex((obj2) => obj2.id === obj1.id) === i,
);
let totalQueue = 0;
const currentTickets = uniqueTicket.map((ticket) => {
const currentTicket = tickets.filter((t) => t.id === ticket.id);
const queues = this.ticketToQueues(currentTicket);
const currentQueues = queues.map((q) => {
return {
code: q.code,
qty: q.qty,
time: this.toTime(q.time),
status: q.status,
};
const currentTickets = uniqueTicket.map((ticket) => {
const currentTicket = tickets.filter((t) => t.id === ticket.id);
const queues = this.ticketToQueues(currentTicket);
const currentQueues = queues.map((q) => {
return {
code: q.code,
qty: q.qty,
time: this.toTime(q.time),
status: q.status,
};
});
totalQueue += currentQueues.length;
return currentQueues.length > 0
? {
code: ticket.code,
customer: ticket.customer,
phone: ticket.phone,
id: ticket.id,
queue: currentQueues,
}
: null;
});
totalQueue += currentQueues.length;
return {
code: ticket.code,
customer: ticket.customer,
phone: ticket.phone,
id: ticket.id,
queue: currentQueues,
};
});
return {
id: item.item_id,
title: item.item.item_queue?.name ?? item.item.name,
image_url: item.item.image_url,
qty: totalQueue,
items: currentTickets,
};
});
return currentTickets.filter(Boolean).length > 0
? {
id: item.item_id,
title: item.item.item_queue?.name ?? item.item.name,
image_url: item.item.image_url,
qty: totalQueue,
items: currentTickets.filter(Boolean),
}
: null;
})
.filter(Boolean);
}
}