fix: force 100% discount in PlaceOrder — ignore client DiscountBalanceToUse, always use max
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 7m51s
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 7m51s
This commit is contained in:
+5
-11
@@ -109,19 +109,13 @@ public class PlaceOrderCommandHandler : IRequestHandler<PlaceOrderCommand, Place
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validate discount balance usage
|
// Always apply maximum possible discount (100%) — user cannot choose less
|
||||||
var maxDiscountBalanceUsable = totalDiscountAmount;
|
var maxDiscountBalanceUsable = totalDiscountAmount;
|
||||||
var actualDiscountBalanceUsed = Math.Min(request.DiscountBalanceToUse, maxDiscountBalanceUsable);
|
var actualDiscountBalanceUsed = Math.Min(maxDiscountBalanceUsable, userWallet.DiscountBalance);
|
||||||
actualDiscountBalanceUsed = Math.Min(actualDiscountBalanceUsed, userWallet.DiscountBalance);
|
|
||||||
|
|
||||||
if (actualDiscountBalanceUsed < request.DiscountBalanceToUse)
|
_logger.LogInformation(
|
||||||
{
|
"Discount auto-applied: max allowed={MaxAllowed}, wallet balance={WalletBalance}, used={Used}",
|
||||||
return new PlaceOrderResponseDto
|
maxDiscountBalanceUsable, userWallet.DiscountBalance, actualDiscountBalanceUsed);
|
||||||
{
|
|
||||||
Success = false,
|
|
||||||
Message = $"موجودی تخفیف کافی نیست. حداکثر قابل استفاده: {maxDiscountBalanceUsable:N0} تومان، موجودی شما: {userWallet.DiscountBalance:N0} تومان"
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
var gatewayAmountRequired = totalAmount - actualDiscountBalanceUsed;
|
var gatewayAmountRequired = totalAmount - actualDiscountBalanceUsed;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user