@Override @Transactional("blTransactionManager") public void removePaymentFromOrder(Order order, PaymentInfo paymentInfo) { PaymentInfo paymentInfoToRemove = null; for (PaymentInfo info : order.getPaymentInfos()) { if (info.equals(paymentInfo)) { paymentInfoToRemove = info; } } if (paymentInfoToRemove != null) { try { securePaymentInfoService.findAndRemoveSecurePaymentInfo( paymentInfoToRemove.getReferenceNumber(), paymentInfo.getType()); } catch (WorkflowException e) { // do nothing--this is an acceptable condition LOG.debug("No secure payment is associated with the PaymentInfo", e); } order.getPaymentInfos().remove(paymentInfoToRemove); paymentInfo = paymentInfoDao.readPaymentInfoById(paymentInfoToRemove.getId()); paymentInfoDao.delete(paymentInfo); } }
@Override @Transactional("blTransactionManager") public void removePaymentsFromOrder(Order order, PaymentInfoType paymentInfoType) { List<PaymentInfo> infos = new ArrayList<PaymentInfo>(); for (PaymentInfo paymentInfo : order.getPaymentInfos()) { if (paymentInfoType == null || paymentInfoType.equals(paymentInfo.getType())) { infos.add(paymentInfo); } } order.getPaymentInfos().removeAll(infos); for (PaymentInfo paymentInfo : infos) { try { securePaymentInfoService.findAndRemoveSecurePaymentInfo( paymentInfo.getReferenceNumber(), paymentInfo.getType()); } catch (WorkflowException e) { // do nothing--this is an acceptable condition LOG.debug("No secure payment is associated with the PaymentInfo", e); } order.getPaymentInfos().remove(paymentInfo); paymentInfo = paymentInfoDao.readPaymentInfoById(paymentInfo.getId()); paymentInfoDao.delete(paymentInfo); } }