diff --git a/src/modules/Coupon/coupon.service.ts b/src/modules/Coupon/coupon.service.ts index ba1460b..79e4333 100644 --- a/src/modules/Coupon/coupon.service.ts +++ b/src/modules/Coupon/coupon.service.ts @@ -209,7 +209,7 @@ class CouponService { cartShipmentItem.totalCouponDiscount = discount; cartShipmentItem.totalPaymentPrice = cartShipmentItem.totalPaymentPrice - discount; userCart.coupon_discount = discount; - userCart.total_discount += discount; + coupon.usageCount += 1; await validCartShipmentItem.save({ session }); diff --git a/src/modules/cart/cart.repository.ts b/src/modules/cart/cart.repository.ts index 5db9705..13f1a9f 100644 --- a/src/modules/cart/cart.repository.ts +++ b/src/modules/cart/cart.repository.ts @@ -310,9 +310,14 @@ class CartRepository extends BaseRepository { }, total_discount: { $sum: { - $subtract: [ - { $multiply: ["$items.quantity", "$variantDetails.price.retailPrice"] }, - { $multiply: ["$items.quantity", "$variantDetails.price.selling_price"] }, + $add: [ + { + $subtract: [ + { $multiply: ["$items.quantity", "$variantDetails.price.retailPrice"] }, + { $multiply: ["$items.quantity", "$variantDetails.price.selling_price"] }, + ], + }, + { $divide: ["$coupon_discount", { $literal: 1 }] }, // safely adds coupon_discount ], }, }, diff --git a/src/modules/cart/cart.service.ts b/src/modules/cart/cart.service.ts index a019e97..06197ae 100644 --- a/src/modules/cart/cart.service.ts +++ b/src/modules/cart/cart.service.ts @@ -25,8 +25,8 @@ class CartService { async getCartS(userId: string) { const doc = (await this.cartRepo.getCartWithAggregate(userId))[0] as ICart; const cart = CartDTO.transformCart(doc); - let cartShipmentItems; + if (doc?._id) { cartShipmentItems = await this.cartShipItemRepo.getCartShipmentItems(doc._id.toString()); }