fix(SPG-1027): total ticket not match
parent
60b5bcf638
commit
61045a39ab
|
@ -12,31 +12,51 @@ export class CustomerQueueItemListManager extends CustomerQueueManager {
|
||||||
}
|
}
|
||||||
get data() {
|
get data() {
|
||||||
const tickets = this.tickets;
|
const tickets = this.tickets;
|
||||||
|
const ticketCount = {};
|
||||||
const queueCondition = new QueueCondition(this.queues);
|
const queueCondition = new QueueCondition(this.queues);
|
||||||
|
|
||||||
const ticketItems = {};
|
const ticketItems = {};
|
||||||
tickets.forEach((ticket) => {
|
tickets.forEach((ticket) => {
|
||||||
|
const ticketItems = [];
|
||||||
ticket.items.forEach((item) => {
|
ticket.items.forEach((item) => {
|
||||||
const item_id = item.item.item_queue?.id ?? item.item.id;
|
const item_id = item.item.item_queue?.id ?? item.item.id;
|
||||||
const currentItem = ticketItems[item_id];
|
const currentItem = ticketItems[item_id];
|
||||||
ticketItems[item_id] = currentItem ? [...currentItem, item] : [item];
|
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) => {
|
return Object.values<QueueItemModel[]>(ticketItems).map((items) => {
|
||||||
const item = items[0];
|
const item = items[0];
|
||||||
const item_qty = items.reduce((acc, item) => acc + item.qty, 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;
|
const queueItem = item.item.item_queue ?? item.item;
|
||||||
return {
|
return {
|
||||||
id: queueItem.id,
|
id: queueItem.id,
|
||||||
queue_item_id: item.id,
|
queue_item_id: item.id,
|
||||||
title: queueItem.name,
|
title: queueItem.name,
|
||||||
image_url: item.item.image_url,
|
image_url: item.item.image_url,
|
||||||
qty: item_qty,
|
qty: item_qty - queue_qty,
|
||||||
|
ticket: ticketCount[queueItem.id],
|
||||||
|
|
||||||
queue_condition: queueCondition.condition(queueItem.id),
|
queue_condition: queueCondition.condition(queueItem.id),
|
||||||
...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