feat: add pos item ticket
parent
af9818d44c
commit
9805b9903a
|
@ -117,6 +117,20 @@ export class TicketDataService extends BaseDataService<QueueTicket> {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async queuePosTickets(order_id: string): Promise<QueueTicketModel[]> {
|
||||||
|
return this.repo.find({
|
||||||
|
relations: [
|
||||||
|
'items',
|
||||||
|
'items.queue',
|
||||||
|
'items.item',
|
||||||
|
'items.item.item_queue',
|
||||||
|
],
|
||||||
|
where: {
|
||||||
|
order_id,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
async queueTickets(order_id: string): Promise<QueueTicketModel[]> {
|
async queueTickets(order_id: string): Promise<QueueTicketModel[]> {
|
||||||
const order = await this.orderIds(order_id);
|
const order = await this.orderIds(order_id);
|
||||||
return this.repo.find({
|
return this.repo.find({
|
||||||
|
|
|
@ -20,6 +20,7 @@ import { LoginQueueDto } from '../infrastructure/controllers/dto/login-queue.dto
|
||||||
import * as moment from 'moment';
|
import * as moment from 'moment';
|
||||||
import { CustomerQueueTicketSummaryManager } from './usecases/queue/customer-queue-ticket.manager';
|
import { CustomerQueueTicketSummaryManager } from './usecases/queue/customer-queue-ticket.manager';
|
||||||
import { TransactionDataService } from 'src/modules/transaction/transaction/data/services/transaction-data.service';
|
import { TransactionDataService } from 'src/modules/transaction/transaction/data/services/transaction-data.service';
|
||||||
|
import { CustomerQueuePosItemManager } from './usecases/queue/customer-queue-pos-item.manager';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class QueueOrchestrator {
|
export class QueueOrchestrator {
|
||||||
|
@ -85,6 +86,12 @@ export class QueueOrchestrator {
|
||||||
return this.splitQueueManager.getResult();
|
return this.splitQueueManager.getResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async queuePOSTickets(order_id: string): Promise<any> {
|
||||||
|
const tickets = await this.dataService.queuePosTickets(order_id);
|
||||||
|
const manager = new CustomerQueuePosItemManager(tickets);
|
||||||
|
return manager.data;
|
||||||
|
}
|
||||||
|
|
||||||
async queueTickets(order_id: string): Promise<any> {
|
async queueTickets(order_id: string): Promise<any> {
|
||||||
const tickets = await this.dataService.queueTickets(order_id);
|
const tickets = await this.dataService.queueTickets(order_id);
|
||||||
const manager = new CustomerQueueSummaryManager(tickets);
|
const manager = new CustomerQueueSummaryManager(tickets);
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
import { CustomerQueueManager } from './customer-queue.manager';
|
||||||
|
|
||||||
|
export class CustomerQueuePosItemManager extends CustomerQueueManager {
|
||||||
|
get data() {
|
||||||
|
const ticket = this.tickets[0];
|
||||||
|
const queueItems = this.mergeQueueItems(ticket);
|
||||||
|
return {
|
||||||
|
id: ticket.id,
|
||||||
|
code: ticket.code,
|
||||||
|
customer: ticket.customer,
|
||||||
|
phone: ticket.phone,
|
||||||
|
date: ticket.date,
|
||||||
|
summary: this.summaryTicket(ticket),
|
||||||
|
items: queueItems.map((item) => {
|
||||||
|
return {
|
||||||
|
id: item.id,
|
||||||
|
item_queue_id: item.queue_item_id,
|
||||||
|
title: item.title,
|
||||||
|
image_url: item.image_url,
|
||||||
|
summary: {
|
||||||
|
total_tickets: item.qty,
|
||||||
|
total_used: this.totalUsedItems(item.queues),
|
||||||
|
total_queue: this.totalQueueItems(item.queues),
|
||||||
|
remaining: item.qty - this.totalQueueItems(item.queues),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
|
@ -71,6 +71,11 @@ export class QueueController {
|
||||||
return await this.orchestrator.queueItems(id);
|
return await this.orchestrator.queueItems(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Get(':id/pos-items')
|
||||||
|
async queuePosItems(@Param('id') id: string): Promise<void> {
|
||||||
|
return await this.orchestrator.queuePOSTickets(id);
|
||||||
|
}
|
||||||
|
|
||||||
@Get(':id/queue')
|
@Get(':id/queue')
|
||||||
async queueOrderItems(@Param('id') id: string): Promise<void> {
|
async queueOrderItems(@Param('id') id: string): Promise<void> {
|
||||||
return await this.orchestrator.queueOrderItems(id);
|
return await this.orchestrator.queueOrderItems(id);
|
||||||
|
|
Loading…
Reference in New Issue