fix(SPG-1055): update QR when customer and phone exist
parent
7305dfd068
commit
f7e3d5399c
|
@ -21,7 +21,7 @@ import * as moment from 'moment';
|
|||
import { CustomerQueueTicketSummaryManager } from './usecases/queue/customer-queue-ticket.manager';
|
||||
import { TransactionDataService } from 'src/modules/transaction/transaction/data/services/transaction-data.service';
|
||||
import { CustomerQueuePosItemManager } from './usecases/queue/customer-queue-pos-item.manager';
|
||||
import { QueueTicketModel } from '../data/models/queue.model';
|
||||
import { QueueOrderModel, QueueTicketModel } from '../data/models/queue.model';
|
||||
|
||||
@Injectable()
|
||||
export class QueueOrchestrator {
|
||||
|
@ -85,6 +85,28 @@ export class QueueOrchestrator {
|
|||
const queueIds = data.items.map((i) => i.queue_item_id);
|
||||
const queue = await this.dataService.orderItems(data.order_id, queueIds);
|
||||
|
||||
const existTicket = await this.dataService.ticketByUser(
|
||||
data.name,
|
||||
data.phone,
|
||||
);
|
||||
|
||||
if (existTicket) {
|
||||
const itemTickets = this.itemsFromOrder(queue);
|
||||
|
||||
const items = data.items.map((item) => {
|
||||
const item_id = itemTickets[item.queue_item_id];
|
||||
return {
|
||||
item_queue_id: item_id,
|
||||
item_id: item_id,
|
||||
qty: item.qty,
|
||||
};
|
||||
});
|
||||
existTicket.items.push(...items);
|
||||
await this.dataService.updateQueueTicket(existTicket);
|
||||
|
||||
return queue;
|
||||
}
|
||||
|
||||
this.splitQueueManager.setRequestData(data);
|
||||
this.splitQueueManager.setData(queue);
|
||||
this.splitQueueManager.setService(
|
||||
|
@ -95,6 +117,17 @@ export class QueueOrchestrator {
|
|||
return this.splitQueueManager.getResult();
|
||||
}
|
||||
|
||||
itemsFromOrder(order: QueueOrderModel) {
|
||||
const itemTickets = {};
|
||||
order.tickets.forEach((ticket) => {
|
||||
ticket.items.forEach((item) => {
|
||||
itemTickets[item.id] = item.item_id;
|
||||
});
|
||||
});
|
||||
|
||||
return itemTickets;
|
||||
}
|
||||
|
||||
async queuePOSTickets(order_id: string): Promise<any> {
|
||||
const tickets = await this.dataService.queuePosTickets(order_id);
|
||||
const manager = new CustomerQueuePosItemManager(tickets);
|
||||
|
|
Loading…
Reference in New Issue