use of org.olat.resource.accesscontrol.Order in project openolat by klemens.
the class PaypalManagerImpl method cancelTransaction.
private synchronized void cancelTransaction(PaypalTransaction trx) {
if (trx.getStatus() == PaypalTransactionStatus.SUCCESS || trx.getStatus() == PaypalTransactionStatus.CANCELED) {
// already completed: if successed -> let it in this state
return;
}
updateTransaction(trx, PaypalTransactionStatus.CANCELED);
Order order = orderManager.loadOrderByNr(trx.getRefNo());
orderManager.save(order, OrderStatus.CANCELED);
// cancel the reservations
Identity identity = order.getDelivery();
for (OrderPart part : order.getParts()) {
if (part.getKey().equals(trx.getOrderPartId())) {
for (OrderLine line : part.getOrderLines()) {
OLATResource resource = line.getOffer().getResource();
ResourceReservation reservation = acService.getReservation(identity, resource);
if (reservation != null) {
acService.removeReservation(identity, identity, reservation);
log.audit("Remove reservation after cancellation for: " + reservation + " to " + identity, null);
}
}
}
}
}
Aggregations