Search in sources :

Example 6 with CartOperationRequest

use of org.broadleafcommerce.core.order.service.workflow.CartOperationRequest in project BroadleafCommerce by BroadleafCommerce.

the class AddOrderItemActivity method execute.

@Override
public ProcessContext<CartOperationRequest> execute(ProcessContext<CartOperationRequest> context) throws Exception {
    CartOperationRequest request = context.getSeedData();
    OrderItemRequestDTO orderItemRequestDTO = request.getItemRequest();
    // Order has been verified in a previous activity -- the values in the request can be trusted
    Order order = request.getOrder();
    // Build the order item
    OrderItem item = orderItemService.buildOrderItemFromDTO(order, orderItemRequestDTO);
    // Check for special pricing
    orderItemService.priceOrderItem(item);
    order.getOrderItems().add(item);
    request.setOrderItem(item);
    genericEntityDao.persist(item);
    return context;
}
Also used : Order(org.broadleafcommerce.core.order.domain.Order) CartOperationRequest(org.broadleafcommerce.core.order.service.workflow.CartOperationRequest) OrderItemRequestDTO(org.broadleafcommerce.core.order.service.call.OrderItemRequestDTO) OrderItem(org.broadleafcommerce.core.order.domain.OrderItem)

Example 7 with CartOperationRequest

use of org.broadleafcommerce.core.order.service.workflow.CartOperationRequest in project BroadleafCommerce by BroadleafCommerce.

the class RemoveFulfillmentGroupItemActivity method execute.

@Override
public ProcessContext<CartOperationRequest> execute(ProcessContext<CartOperationRequest> context) throws Exception {
    CartOperationRequest request = context.getSeedData();
    request = fgItemStrategy.onItemRemoved(request);
    context.setSeedData(request);
    return context;
}
Also used : CartOperationRequest(org.broadleafcommerce.core.order.service.workflow.CartOperationRequest)

Example 8 with CartOperationRequest

use of org.broadleafcommerce.core.order.service.workflow.CartOperationRequest in project BroadleafCommerce by BroadleafCommerce.

the class RemoveOrderItemActivity method execute.

@Override
public ProcessContext<CartOperationRequest> execute(ProcessContext<CartOperationRequest> context) throws Exception {
    CartOperationRequest request = context.getSeedData();
    OrderItem orderItem = request.getOrderItem();
    removeItemAndChildren(request.getOisToDelete(), orderItem);
    return context;
}
Also used : CartOperationRequest(org.broadleafcommerce.core.order.service.workflow.CartOperationRequest) OrderItem(org.broadleafcommerce.core.order.domain.OrderItem)

Example 9 with CartOperationRequest

use of org.broadleafcommerce.core.order.service.workflow.CartOperationRequest in project BroadleafCommerce by BroadleafCommerce.

the class RemoveOrderMultishipOptionActivity method execute.

@Override
public ProcessContext<CartOperationRequest> execute(ProcessContext<CartOperationRequest> context) throws Exception {
    CartOperationRequest request = context.getSeedData();
    Long orderItemId = request.getItemRequest().getOrderItemId();
    OrderItem orderItem = request.getOrderItem();
    if (orderItem instanceof BundleOrderItem) {
        for (OrderItem discrete : ((BundleOrderItem) orderItem).getDiscreteOrderItems()) {
            request.getMultishipOptionsToDelete().add(new Long[] { discrete.getId(), null });
        }
    } else {
        request.getMultishipOptionsToDelete().add(new Long[] { orderItemId, null });
    }
    return context;
}
Also used : CartOperationRequest(org.broadleafcommerce.core.order.service.workflow.CartOperationRequest) BundleOrderItem(org.broadleafcommerce.core.order.domain.BundleOrderItem) OrderItem(org.broadleafcommerce.core.order.domain.OrderItem) BundleOrderItem(org.broadleafcommerce.core.order.domain.BundleOrderItem)

Example 10 with CartOperationRequest

use of org.broadleafcommerce.core.order.service.workflow.CartOperationRequest in project BroadleafCommerce by BroadleafCommerce.

the class ValidateRemoveRequestActivity method execute.

@Override
public ProcessContext<CartOperationRequest> execute(ProcessContext<CartOperationRequest> context) throws Exception {
    CartOperationRequest request = context.getSeedData();
    OrderItemRequestDTO orderItemRequestDTO = request.getItemRequest();
    // Throw an exception if the user did not specify an orderItemId
    if (orderItemRequestDTO.getOrderItemId() == null) {
        throw new IllegalArgumentException("OrderItemId must be specified when removing from order");
    }
    // Throw an exception if the user did not specify an order to add the item to
    if (request.getOrder() == null) {
        throw new IllegalArgumentException("Order is required when updating item quantities");
    }
    // Throw an exception if the user is trying to remove an order item that is part of a bundle
    OrderItem orderItem = null;
    for (OrderItem oi : request.getOrder().getOrderItems()) {
        if (oi.getId().equals(orderItemRequestDTO.getOrderItemId())) {
            orderItem = oi;
        }
    }
    if (orderItem == null) {
        throw new IllegalArgumentException("Could not find order item to remove");
    }
    if (orderItem != null && orderItem instanceof DiscreteOrderItem) {
        DiscreteOrderItem doi = (DiscreteOrderItem) orderItem;
        if (doi.getBundleOrderItem() != null) {
            throw new IllegalArgumentException("Cannot remove an item that is part of a bundle");
        }
    }
    request.setOrderItem(orderItem);
    return context;
}
Also used : DiscreteOrderItem(org.broadleafcommerce.core.order.domain.DiscreteOrderItem) CartOperationRequest(org.broadleafcommerce.core.order.service.workflow.CartOperationRequest) OrderItemRequestDTO(org.broadleafcommerce.core.order.service.call.OrderItemRequestDTO) DiscreteOrderItem(org.broadleafcommerce.core.order.domain.DiscreteOrderItem) OrderItem(org.broadleafcommerce.core.order.domain.OrderItem)

Aggregations

CartOperationRequest (org.broadleafcommerce.core.order.service.workflow.CartOperationRequest)18 OrderItem (org.broadleafcommerce.core.order.domain.OrderItem)9 OrderItemRequestDTO (org.broadleafcommerce.core.order.service.call.OrderItemRequestDTO)9 DiscreteOrderItem (org.broadleafcommerce.core.order.domain.DiscreteOrderItem)5 Order (org.broadleafcommerce.core.order.domain.Order)5 FlushMode (org.hibernate.FlushMode)4 Session (org.hibernate.Session)4 UpdateCartException (org.broadleafcommerce.core.order.service.exception.UpdateCartException)3 WorkflowException (org.broadleafcommerce.core.workflow.WorkflowException)3 Transactional (org.springframework.transaction.annotation.Transactional)3 BundleOrderItem (org.broadleafcommerce.core.order.domain.BundleOrderItem)2 ArrayList (java.util.ArrayList)1 Product (org.broadleafcommerce.core.catalog.domain.Product)1 Sku (org.broadleafcommerce.core.catalog.domain.Sku)1 FulfillmentGroup (org.broadleafcommerce.core.order.domain.FulfillmentGroup)1 FulfillmentGroupItem (org.broadleafcommerce.core.order.domain.FulfillmentGroupItem)1 GiftWrapOrderItem (org.broadleafcommerce.core.order.domain.GiftWrapOrderItem)1 ActivityMessageDTO (org.broadleafcommerce.core.order.service.call.ActivityMessageDTO)1 ConfigurableOrderItemRequest (org.broadleafcommerce.core.order.service.call.ConfigurableOrderItemRequest)1 DiscreteOrderItemRequest (org.broadleafcommerce.core.order.service.call.DiscreteOrderItemRequest)1