From 2bcd7a34fb9d3f62fa7760e74812cd7c1b8d4d76 Mon Sep 17 00:00:00 2001 From: shancheas Date: Wed, 13 Nov 2024 15:48:30 +0700 Subject: [PATCH] feat: create summary ticket function --- .../usecases/queue/customer-queue-detail.manager.ts | 7 +------ .../usecases/queue/customer-queue-item.manager.ts | 7 +------ .../queue/customer-queue-summary.manager.ts | 7 +------ .../usecases/queue/customer-queue-ticket.manager.ts | 7 +------ .../domain/usecases/queue/customer-queue.manager.ts | 13 +++++++++++++ 5 files changed, 17 insertions(+), 24 deletions(-) diff --git a/src/modules/queue/domain/usecases/queue/customer-queue-detail.manager.ts b/src/modules/queue/domain/usecases/queue/customer-queue-detail.manager.ts index cd2faae..c656de8 100644 --- a/src/modules/queue/domain/usecases/queue/customer-queue-detail.manager.ts +++ b/src/modules/queue/domain/usecases/queue/customer-queue-detail.manager.ts @@ -17,12 +17,7 @@ export class CustomerQueueDetailManager extends CustomerQueueManager { customer: ticket.customer, phone: ticket.phone, date: ticket.date, - summary: { - total_activities: this.totalActivities(ticket), - total_tickets: this.totalTickets(ticket), - total_used: this.totalUsedTickets(ticket), - total_queue: this.totalQueueTickets(ticket), - }, + summary: this.summaryTicket(ticket), items: queueItems.map((item) => { return { id: item.id, diff --git a/src/modules/queue/domain/usecases/queue/customer-queue-item.manager.ts b/src/modules/queue/domain/usecases/queue/customer-queue-item.manager.ts index a88d41b..68e9682 100644 --- a/src/modules/queue/domain/usecases/queue/customer-queue-item.manager.ts +++ b/src/modules/queue/domain/usecases/queue/customer-queue-item.manager.ts @@ -13,12 +13,7 @@ export class CustomerQueueItemManager extends CustomerQueueManager { phone: ticket.phone, date: ticket.date, image_url: item.item.image_url, - summary: { - total_activities: this.totalActivities(ticket), - total_tickets: this.totalTickets(ticket), - total_used: this.totalUsedTickets(ticket), - total_queue: this.totalQueueTickets(ticket), - }, + summary: this.summaryTicket(ticket), queue: queueItems[0].queues .sort((a, b) => b.time - a.time) .map((q) => { diff --git a/src/modules/queue/domain/usecases/queue/customer-queue-summary.manager.ts b/src/modules/queue/domain/usecases/queue/customer-queue-summary.manager.ts index e56ffee..342baf3 100644 --- a/src/modules/queue/domain/usecases/queue/customer-queue-summary.manager.ts +++ b/src/modules/queue/domain/usecases/queue/customer-queue-summary.manager.ts @@ -9,12 +9,7 @@ export class CustomerQueueSummaryManager extends CustomerQueueManager { customer: ticket.customer, phone: ticket.phone, date: ticket.date, - summary: { - total_activities: this.totalActivities(ticket), - total_tickets: this.totalTickets(ticket), - total_used: this.totalUsedTickets(ticket), - total_queue: this.totalQueueTickets(ticket), - }, + summary: this.summaryTicket(ticket), }; }); } diff --git a/src/modules/queue/domain/usecases/queue/customer-queue-ticket.manager.ts b/src/modules/queue/domain/usecases/queue/customer-queue-ticket.manager.ts index d2bbf14..d38c691 100644 --- a/src/modules/queue/domain/usecases/queue/customer-queue-ticket.manager.ts +++ b/src/modules/queue/domain/usecases/queue/customer-queue-ticket.manager.ts @@ -9,12 +9,7 @@ export class CustomerQueueTicketSummaryManager extends CustomerQueueManager { customer: ticket.customer, phone: ticket.phone, date: ticket.date, - summary: { - total_activities: this.totalActivities(ticket), - total_tickets: this.totalTickets(ticket), - total_used: this.totalUsedTickets(ticket), - total_queue: this.totalQueueTickets(ticket), - }, + summary: this.summaryTicket(ticket), }; }); diff --git a/src/modules/queue/domain/usecases/queue/customer-queue.manager.ts b/src/modules/queue/domain/usecases/queue/customer-queue.manager.ts index 889e472..128db18 100644 --- a/src/modules/queue/domain/usecases/queue/customer-queue.manager.ts +++ b/src/modules/queue/domain/usecases/queue/customer-queue.manager.ts @@ -53,6 +53,19 @@ export class CustomerQueueManager { return tickets.reduce(reducer, 0); } + summaryTicket(ticket: QueueTicketModel): any { + const total_tickets = this.totalTickets(ticket); + const total_used = this.totalUsedTickets(ticket); + const total_queue = this.totalQueueTickets(ticket); + return { + total_activities: this.totalActivities(ticket), + total_tickets, + total_used, + total_queue, + remaining: total_tickets - total_queue, + }; + } + mergeQueueItems(ticket: QueueTicketModel): MergedItemQueue[] { const ticketItems = {}; ticket.items.forEach((item) => {