@@ -87,9 +87,9 @@ export class OrderController {
|
|||||||
@Delete('admin/orders/:orderId')
|
@Delete('admin/orders/:orderId')
|
||||||
@UseGuards(AdminAuthGuard)
|
@UseGuards(AdminAuthGuard)
|
||||||
@Permissions(PermissionEnum.DELETE_ORDER)
|
@Permissions(PermissionEnum.DELETE_ORDER)
|
||||||
@ApiOperation({ summary: 'Soft Delete Order ' })
|
@ApiOperation({ summary: 'Delete Order' })
|
||||||
softDeleteOrder(@Param('orderId') orderId: string) {
|
deleteOrder(@Param('orderId') orderId: string) {
|
||||||
return this.orderService.softDeleteOrder(orderId);
|
return this.orderService.deleteOrder(orderId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -277,10 +277,25 @@ export class OrderService {
|
|||||||
return order;
|
return order;
|
||||||
}
|
}
|
||||||
|
|
||||||
async softDeleteOrder(orderId: string): Promise<void> {
|
async deleteOrder(orderId: string): Promise<void> {
|
||||||
const order = await this.findOrderOrFail(orderId);
|
await this.em.transactional(async (em) => {
|
||||||
order.deletedAt = new Date();
|
const order = await em.findOne(Order, { id: orderId }, { populate: ['print'] });
|
||||||
await this.em.flush();
|
if (!order) {
|
||||||
|
throw new NotFoundException(`Order with ID ${orderId} not found.`);
|
||||||
|
}
|
||||||
|
|
||||||
|
await this.chatService.deleteChatsByRefId(orderId, em);
|
||||||
|
await em.nativeDelete(OrderDesigner, { order: { id: orderId } });
|
||||||
|
|
||||||
|
const printId = order.print?.id;
|
||||||
|
if (printId) {
|
||||||
|
await em.nativeUpdate(Order, { id: orderId }, { print: null });
|
||||||
|
await em.nativeDelete(OrderPrintValue, { orderPrint: { id: printId } });
|
||||||
|
await em.nativeDelete(OrderPrint, { id: printId });
|
||||||
|
}
|
||||||
|
|
||||||
|
await em.nativeDelete(Order, { id: orderId });
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user