Search in sources :

Example 6 with Order

use of org.olat.resource.accesscontrol.Order in project OpenOLAT by OpenOLAT.

the class ACOrderDAO method findOrdersByDelivery.

public List<Order> findOrdersByDelivery(Identity delivery, OrderStatus... status) {
    StringBuilder sb = new StringBuilder();
    sb.append("select order from ").append(OrderImpl.class.getName()).append(" order").append(" where order.delivery.key=:deliveryKey");
    if (status != null && status.length > 0) {
        sb.append(" and order.orderStatusStr in (:status)");
    }
    TypedQuery<Order> query = dbInstance.getCurrentEntityManager().createQuery(sb.toString(), Order.class).setParameter("deliveryKey", delivery.getKey());
    if (status != null && status.length > 0) {
        List<String> statusStr = new ArrayList<String>();
        for (OrderStatus s : status) {
            statusStr.add(s.name());
        }
        query.setParameter("status", statusStr);
    }
    List<Order> orders = query.getResultList();
    return orders;
}
Also used : Order(org.olat.resource.accesscontrol.Order) OrderStatus(org.olat.resource.accesscontrol.OrderStatus) OrderImpl(org.olat.resource.accesscontrol.model.OrderImpl) ArrayList(java.util.ArrayList)

Example 7 with Order

use of org.olat.resource.accesscontrol.Order in project openolat by klemens.

the class ACFrontendManager method accessResource.

@Override
public AccessResult accessResource(Identity identity, OfferAccess link, Object argument) {
    if (link == null || link.getOffer() == null || link.getMethod() == null) {
        log.audit("Access refused (no offer) to: " + link + " for " + identity);
        return new AccessResult(false);
    }
    AccessMethodHandler handler = accessModule.getAccessMethodHandler(link.getMethod().getType());
    if (handler == null) {
        log.audit("Access refused (no handler method) to: " + link + " for " + identity);
        return new AccessResult(false);
    }
    if (handler.checkArgument(link, argument)) {
        if (allowAccesToResource(identity, link.getOffer())) {
            Order order = orderManager.saveOneClick(identity, link);
            AccessTransaction transaction = transactionManager.createTransaction(order, order.getParts().get(0), link.getMethod());
            transactionManager.save(transaction);
            dbInstance.commit();
            log.audit("Access granted to: " + link + " for " + identity);
            return new AccessResult(true);
        } else {
            log.audit("Access error to: " + link + " for " + identity);
        }
    } else {
        log.audit("Access refused to: " + link + " for " + identity);
    }
    return new AccessResult(false);
}
Also used : Order(org.olat.resource.accesscontrol.Order) AccessTransaction(org.olat.resource.accesscontrol.AccessTransaction) AccessResult(org.olat.resource.accesscontrol.AccessResult) AccessMethodHandler(org.olat.resource.accesscontrol.method.AccessMethodHandler)

Example 8 with Order

use of org.olat.resource.accesscontrol.Order in project openolat by klemens.

the class ACOrderDAO method findOrdersByResource.

public List<Order> findOrdersByResource(OLATResource resource, OrderStatus... status) {
    StringBuilder sb = new StringBuilder();
    sb.append("select distinct(o) from ").append(OrderImpl.class.getName()).append(" o").append(" inner join o.parts orderPart ").append(" inner join orderPart.lines orderLine ").append(" inner join orderLine.offer offer ").append(" where offer.resource.key=:resourceKey");
    if (status != null && status.length > 0) {
        sb.append(" and o.orderStatusStr in (:status)");
    }
    TypedQuery<Order> query = dbInstance.getCurrentEntityManager().createQuery(sb.toString(), Order.class).setParameter("resourceKey", resource.getKey());
    if (status != null && status.length > 0) {
        List<String> statusStr = new ArrayList<String>();
        for (OrderStatus s : status) {
            statusStr.add(s.name());
        }
        query.setParameter("status", statusStr);
    }
    return query.getResultList();
}
Also used : Order(org.olat.resource.accesscontrol.Order) OrderStatus(org.olat.resource.accesscontrol.OrderStatus) ArrayList(java.util.ArrayList)

Example 9 with Order

use of org.olat.resource.accesscontrol.Order in project openolat by klemens.

the class PaypalManagerImpl method loadTransactions.

@Override
public List<PSPTransaction> loadTransactions(List<Order> orders) {
    if (orders == null || orders.isEmpty())
        return Collections.emptyList();
    StringBuilder sb = new StringBuilder();
    sb.append("select trx from ").append(PaypalTransaction.class.getName()).append(" as trx where ");
    sb.append("trx.orderId in (:orderIds)");
    List<Long> orderIds = new ArrayList<Long>(orders.size());
    for (Order order : orders) {
        orderIds.add(order.getKey());
    }
    List<PSPTransaction> transactions = dbInstance.getCurrentEntityManager().createQuery(sb.toString(), PSPTransaction.class).setParameter("orderIds", orderIds).getResultList();
    return transactions;
}
Also used : Order(org.olat.resource.accesscontrol.Order) ArrayList(java.util.ArrayList) PSPTransaction(org.olat.resource.accesscontrol.model.PSPTransaction)

Example 10 with Order

use of org.olat.resource.accesscontrol.Order in project openolat by klemens.

the class PaypalManagerImpl method completeDeniedTransaction.

private void completeDeniedTransaction(PaypalTransaction trx) {
    updateTransaction(trx, PaypalTransactionStatus.DENIED);
    Order order = orderManager.loadOrderByNr(trx.getRefNo());
    order = orderManager.save(order, OrderStatus.ERROR);
    PaypalAccessMethod method = getMethodSecure(trx.getMethodId());
    if (order.getKey().equals(trx.getOrderId())) {
        // make accessible
        Identity identity = order.getDelivery();
        for (OrderPart part : order.getParts()) {
            if (part.getKey().equals(trx.getOrderPartId())) {
                AccessTransaction transaction = transactionManager.createTransaction(order, part, method);
                transaction = transactionManager.update(transaction, AccessTransactionStatus.ERROR);
                for (OrderLine line : part.getOrderLines()) {
                    acService.denyAccesToResource(identity, line.getOffer());
                    log.audit("Paypal payed access revoked for: " + buildLogMessage(line, method) + " to " + identity, null);
                    ResourceReservation reservation = reservationDao.loadReservation(identity, line.getOffer().getResource());
                    if (reservation != null) {
                        acService.removeReservation(identity, identity, reservation);
                        log.audit("Remove reservation after cancellation for: " + reservation + " to " + identity, null);
                    }
                }
            }
        }
    } else {
        log.error("Order not in sync with PaypalTransaction", null);
    }
}
Also used : Order(org.olat.resource.accesscontrol.Order) AccessTransaction(org.olat.resource.accesscontrol.AccessTransaction) OrderLine(org.olat.resource.accesscontrol.OrderLine) ResourceReservation(org.olat.resource.accesscontrol.ResourceReservation) OrderPart(org.olat.resource.accesscontrol.OrderPart) Identity(org.olat.core.id.Identity) PaypalAccessMethod(org.olat.resource.accesscontrol.provider.paypal.model.PaypalAccessMethod)

Aggregations

Order (org.olat.resource.accesscontrol.Order)16 ArrayList (java.util.ArrayList)6 Identity (org.olat.core.id.Identity)6 AccessTransaction (org.olat.resource.accesscontrol.AccessTransaction)6 OrderLine (org.olat.resource.accesscontrol.OrderLine)6 OrderPart (org.olat.resource.accesscontrol.OrderPart)6 OrderStatus (org.olat.resource.accesscontrol.OrderStatus)4 ResourceReservation (org.olat.resource.accesscontrol.ResourceReservation)4 PaypalAccessMethod (org.olat.resource.accesscontrol.provider.paypal.model.PaypalAccessMethod)4 ClientActionRequiredException (com.paypal.exception.ClientActionRequiredException)2 HttpErrorException (com.paypal.exception.HttpErrorException)2 InvalidCredentialException (com.paypal.exception.InvalidCredentialException)2 InvalidResponseDataException (com.paypal.exception.InvalidResponseDataException)2 MissingCredentialException (com.paypal.exception.MissingCredentialException)2 SSLConfigurationException (com.paypal.exception.SSLConfigurationException)2 OAuthException (com.paypal.sdk.exceptions.OAuthException)2 AdaptivePaymentsService (com.paypal.svcs.services.AdaptivePaymentsService)2 PayRequest (com.paypal.svcs.types.ap.PayRequest)2 PayResponse (com.paypal.svcs.types.ap.PayResponse)2 Receiver (com.paypal.svcs.types.ap.Receiver)2