fix(SPG-1027): total ticket not match
parent
60b5bcf638
commit
61045a39ab
|
@ -12,31 +12,51 @@ export class CustomerQueueItemListManager extends CustomerQueueManager {
|
|||
}
|
||||
get data() {
|
||||
const tickets = this.tickets;
|
||||
const ticketCount = {};
|
||||
const queueCondition = new QueueCondition(this.queues);
|
||||
|
||||
const ticketItems = {};
|
||||
tickets.forEach((ticket) => {
|
||||
const ticketItems = [];
|
||||
ticket.items.forEach((item) => {
|
||||
const item_id = item.item.item_queue?.id ?? item.item.id;
|
||||
const currentItem = ticketItems[item_id];
|
||||
ticketItems[item_id] = currentItem ? [...currentItem, item] : [item];
|
||||
ticketItems.push(item_id);
|
||||
});
|
||||
|
||||
const uniqueTicket = Array.from(new Set(ticketItems));
|
||||
|
||||
uniqueTicket.forEach((item_id) => {
|
||||
ticketCount[item_id] = ticketCount[item_id]
|
||||
? ticketCount[item_id] + 1
|
||||
: 1;
|
||||
});
|
||||
});
|
||||
|
||||
return Object.values<QueueItemModel[]>(ticketItems).map((items) => {
|
||||
const item = items[0];
|
||||
const item_qty = items.reduce((acc, item) => acc + item.qty, 0);
|
||||
const queue_qty = this.queueItemQty(items);
|
||||
const queueItem = item.item.item_queue ?? item.item;
|
||||
return {
|
||||
id: queueItem.id,
|
||||
queue_item_id: item.id,
|
||||
title: queueItem.name,
|
||||
image_url: item.item.image_url,
|
||||
qty: item_qty,
|
||||
qty: item_qty - queue_qty,
|
||||
ticket: ticketCount[queueItem.id],
|
||||
|
||||
queue_condition: queueCondition.condition(queueItem.id),
|
||||
...queueCondition.condition(queueItem.id),
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
private queueItemQty(queues: QueueItemModel[]) {
|
||||
return queues.reduce(
|
||||
(acc, item) => acc + item.queue.reduce((acc, q) => acc + q.qty, 0),
|
||||
0,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue