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 { 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';
|
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()
|
@Injectable()
|
||||||
export class QueueOrchestrator {
|
export class QueueOrchestrator {
|
||||||
|
@ -85,6 +85,28 @@ export class QueueOrchestrator {
|
||||||
const queueIds = data.items.map((i) => i.queue_item_id);
|
const queueIds = data.items.map((i) => i.queue_item_id);
|
||||||
const queue = await this.dataService.orderItems(data.order_id, queueIds);
|
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.setRequestData(data);
|
||||||
this.splitQueueManager.setData(queue);
|
this.splitQueueManager.setData(queue);
|
||||||
this.splitQueueManager.setService(
|
this.splitQueueManager.setService(
|
||||||
|
@ -95,6 +117,17 @@ export class QueueOrchestrator {
|
||||||
return this.splitQueueManager.getResult();
|
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> {
|
async queuePOSTickets(order_id: string): Promise<any> {
|
||||||
const tickets = await this.dataService.queuePosTickets(order_id);
|
const tickets = await this.dataService.queuePosTickets(order_id);
|
||||||
const manager = new CustomerQueuePosItemManager(tickets);
|
const manager = new CustomerQueuePosItemManager(tickets);
|
||||||
|
|
Loading…
Reference in New Issue