update order status

This commit is contained in:
2026-07-14 21:04:07 +03:30
parent 13f21d4d3f
commit e991215f5a
8 changed files with 608 additions and 54 deletions
@@ -28,7 +28,7 @@ export class PaymentsService {
const ctx = await this.loadAndValidateOrder(orderId);
// Idempotency: avoid creating/charging again for already-paid orders
if (ctx.order.status === OrderStatus.PAID) {
if (ctx.order.payments.find(p => p.status === PaymentStatusEnum.Paid)) {
return { paymentUrl: null };
}
@@ -112,7 +112,7 @@ export class PaymentsService {
const order = await em.findOne(Order, { id: ctx.order.id }, { populate: ['user', 'restaurant'] });
if (!order) throw new NotFoundException(OrderMessage.NOT_FOUND);
if (!order.user) throw new NotFoundException(OrderMessage.USER_NOT_FOUND);
if (order.status === OrderStatus.PAID) {
if (order.payments.find(p => p.status === PaymentStatusEnum.Paid)) {
return;
}
@@ -152,7 +152,6 @@ export class PaymentsService {
payment.status = PaymentStatusEnum.Paid;
payment.paidAt = new Date();
order.status = OrderStatus.PAID;
em.persist([ payment, order, newWalletTransaction]);
await em.flush();
@@ -232,9 +231,6 @@ export class PaymentsService {
}
this.markPaid(payment, result.referenceId);
if (payment.order.status === OrderStatus.PENDING_PAYMENT) {
payment.order.status = OrderStatus.PAID;
}
await em.flush();
return payment;
@@ -275,9 +271,7 @@ export class PaymentsService {
if (payment.status === PaymentStatusEnum.Paid) {
throw new BadRequestException(PaymentMessage.PAYMENT_ALREADY_PAID);
}
if (payment.order.status === OrderStatus.PENDING_PAYMENT) {
payment.order.status = OrderStatus.PAID;
}
payment.status = PaymentStatusEnum.Paid;
payment.paidAt = new Date();
em.persist(payment);