hard delete order

This commit is contained in:
2026-01-21 17:12:12 +03:30
parent ca8d6c473d
commit 92881c5b7c
5 changed files with 43 additions and 6 deletions
+27 -3
View File
@@ -93,7 +93,8 @@ export class OrderService {
user,
attachments,
status: TicketStatus.PENDING,
admin: null
admin: null,
order
})
em.persist(ticket)
@@ -173,7 +174,8 @@ export class OrderService {
user,
attachments,
status: TicketStatus.PENDING,
admin: null
admin: null,
order
})
em.persist(ticket)
@@ -283,7 +285,7 @@ export class OrderService {
}
order.designer = designer
order.status=OrderStatusEnum.IN_DESIGN
order.status = OrderStatusEnum.IN_DESIGN
await this.em.persistAndFlush(order)
@@ -291,4 +293,26 @@ export class OrderService {
return order
}
async hardDeleteOrder(orderId: string) {
const order = await this.orderRepository.findOne({ id: orderId })
if (!order) {
throw new BadRequestException("Order not found")
}
if (![OrderStatusEnum.DRAFT, OrderStatusEnum.INVOICED].includes(order.status)) {
throw new BadRequestException("Order status must be of of Drfat or Invoiced")
}
if (order.payments.length > 0) {
throw new BadRequestException("order with payments can not be deleted!")
}
await this.em.transactional(async (em) => {
await this.orderRepository.nativeDelete(order)
await this.orderItemRepository.nativeDelete({ order: { id: orderId } })
await this.ticketRepository.nativeDelete({ order: { id: orderId } })
await em.flush()
})
return { message: "Order deleted successfully" }
}
}