feat: create summary ticket function

pull/115/head
shancheas 2024-11-13 15:48:30 +07:00
parent 577f8ea9ea
commit 2bcd7a34fb
5 changed files with 17 additions and 24 deletions

View File

@ -17,12 +17,7 @@ export class CustomerQueueDetailManager extends CustomerQueueManager {
customer: ticket.customer, customer: ticket.customer,
phone: ticket.phone, phone: ticket.phone,
date: ticket.date, date: ticket.date,
summary: { summary: this.summaryTicket(ticket),
total_activities: this.totalActivities(ticket),
total_tickets: this.totalTickets(ticket),
total_used: this.totalUsedTickets(ticket),
total_queue: this.totalQueueTickets(ticket),
},
items: queueItems.map((item) => { items: queueItems.map((item) => {
return { return {
id: item.id, id: item.id,

View File

@ -13,12 +13,7 @@ export class CustomerQueueItemManager extends CustomerQueueManager {
phone: ticket.phone, phone: ticket.phone,
date: ticket.date, date: ticket.date,
image_url: item.item.image_url, image_url: item.item.image_url,
summary: { summary: this.summaryTicket(ticket),
total_activities: this.totalActivities(ticket),
total_tickets: this.totalTickets(ticket),
total_used: this.totalUsedTickets(ticket),
total_queue: this.totalQueueTickets(ticket),
},
queue: queueItems[0].queues queue: queueItems[0].queues
.sort((a, b) => b.time - a.time) .sort((a, b) => b.time - a.time)
.map((q) => { .map((q) => {

View File

@ -9,12 +9,7 @@ export class CustomerQueueSummaryManager extends CustomerQueueManager {
customer: ticket.customer, customer: ticket.customer,
phone: ticket.phone, phone: ticket.phone,
date: ticket.date, date: ticket.date,
summary: { summary: this.summaryTicket(ticket),
total_activities: this.totalActivities(ticket),
total_tickets: this.totalTickets(ticket),
total_used: this.totalUsedTickets(ticket),
total_queue: this.totalQueueTickets(ticket),
},
}; };
}); });
} }

View File

@ -9,12 +9,7 @@ export class CustomerQueueTicketSummaryManager extends CustomerQueueManager {
customer: ticket.customer, customer: ticket.customer,
phone: ticket.phone, phone: ticket.phone,
date: ticket.date, date: ticket.date,
summary: { summary: this.summaryTicket(ticket),
total_activities: this.totalActivities(ticket),
total_tickets: this.totalTickets(ticket),
total_used: this.totalUsedTickets(ticket),
total_queue: this.totalQueueTickets(ticket),
},
}; };
}); });

View File

@ -53,6 +53,19 @@ export class CustomerQueueManager {
return tickets.reduce(reducer, 0); 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[] { mergeQueueItems(ticket: QueueTicketModel): MergedItemQueue[] {
const ticketItems = {}; const ticketItems = {};
ticket.items.forEach((item) => { ticket.items.forEach((item) => {