diff --git a/bubble-server/src/main/java/bubble/cloud/payment/PaymentDriverBase.java b/bubble-server/src/main/java/bubble/cloud/payment/PaymentDriverBase.java index 8c11a97d..cf6e9a3c 100644 --- a/bubble-server/src/main/java/bubble/cloud/payment/PaymentDriverBase.java +++ b/bubble-server/src/main/java/bubble/cloud/payment/PaymentDriverBase.java @@ -228,8 +228,15 @@ public abstract class PaymentDriverBase extends CloudServiceDriverBase imp // What payment was used to pay the bill? if (successfulPayment == null) { - log.warn("refund: AccountPlanPayment not found for paid bill ("+bill.getUuid()+") accountPlan: "+accountPlanUuid); - throw invalidEx("err.refund.paymentNotFound"); + // check to see if promotional credit(s) were used, this may be the reason no refund is due + final List creditsApplied = accountPaymentDAO.findByAccountAndAccountPlanAndBillAndCreditAppliedSuccess(accountPlan.getAccount(), accountPlanUuid, bill.getUuid()); + if (empty(creditsApplied)) { + log.warn("refund: AccountPlanPayment not found for paid bill (" + bill.getUuid() + ") accountPlan: " + accountPlanUuid); + throw invalidEx("err.refund.paymentNotFound"); + } else { + log.warn("refund: not refunding bill paid via promotional credits ("+bill.getUuid()+") accountPlan: "+accountPlanUuid); + return false; + } } // Is the payment method associated with the bill still active? diff --git a/bubble-web b/bubble-web index b7f7d68e..e960f227 160000 --- a/bubble-web +++ b/bubble-web @@ -1 +1 @@ -Subproject commit b7f7d68eed6d07d35ef2f8f126dc9a7f1624d085 +Subproject commit e960f22752267006dd565a82a48f97e1423d13e2