@Override public Order removeItemFromOrder(Long orderId, Long itemId, boolean priceOrder) throws PricingException { Order order = findOrderById(orderId); OrderItem orderItem = orderItemService.readOrderItemById(itemId); return removeItemFromOrder(order, orderItem, priceOrder); }
protected void validateIfParentOrderItemExists(OrderItemRequestDTO orderItemRequestDTO) { // If the user has specified a parent order item to attach this to, it must exist in this cart if (orderItemRequestDTO.getParentOrderItemId() != null) { OrderItem parent = orderItemService.readOrderItemById(orderItemRequestDTO.getParentOrderItemId()); if (parent == null) { throw new IllegalArgumentException("Could not find parent order item by the given id (" + orderItemRequestDTO.getParentOrderItemId() + ")"); } } } }
public OrderItem moveItemToCartFromNamedOrder(Long customerId, String orderName, Long orderItemId, Integer quantity, boolean priceOrder) throws PricingException { Order wishlistOrder = findNamedOrderForCustomer(orderName, customerService.createCustomerFromId(customerId)); OrderItem orderItem = orderItemService.readOrderItemById(orderItemId); orderItem.setQuantity(quantity); return moveItemToCartFromNamedOrder(wishlistOrder, orderItem, priceOrder); }
@Test(groups = { "checkOrderItems" }, dependsOnGroups = { "removeItemFromOrder" }) @Transactional public void checkOrderItems() throws PricingException { Order order = orderService.findOrderById(orderId); // The removal from the removeBundleFromOrder() has actually persisted. // However, the previous two transactions were rolled back and thus the items still exist. assert order.getOrderItems().size() == 1; // As mentioned, the bundleOrderItem however has gone away BundleOrderItem bundleOrderItem = (BundleOrderItem) orderItemService.readOrderItemById(bundleOrderItemId); assert bundleOrderItem == null; }
DiscreteOrderItem item = (DiscreteOrderItem) orderItemService.readOrderItemById(entry.getKey()); orderMultishipOptions.addAll(createPopulatedOrderMultishipOption(order, item, entry.getValue()));
@Override public ProcessContext<CartOperationRequest> execute(ProcessContext<CartOperationRequest> context) throws Exception { CartOperationRequest request = context.getSeedData(); OrderItemRequestDTO orderItemRequestDTO = request.getItemRequest(); Order order = request.getOrder(); if (orderItemService.readOrderItemById(Long.valueOf(orderItemRequestDTO.getOrderItemId())) != null) { DiscreteOrderItemRequest itemRequest = new DiscreteOrderItemRequest(); itemRequest.setItemAttributes(orderItemRequestDTO.getItemAttributes()); orderItemService.updateDiscreteOrderItem(orderItemService.readOrderItemById(Long.valueOf(orderItemRequestDTO.getOrderItemId())), itemRequest); } order = orderService.save(order, false); request.setOrder(order); return context; }
@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 to locate the order item"); } // 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 items in the order"); } // Throw an exception if the user is trying to update an order item that is part of a bundle OrderItem orderItem = orderItemService.readOrderItemById(orderItemRequestDTO.getOrderItemId()); if (orderItem != null && orderItem instanceof DiscreteOrderItem) { DiscreteOrderItem doi = (DiscreteOrderItem) orderItem; if (doi.getBundleOrderItem() != null) { //then its ok , since we are just updating the product options } } return context; }
if (StringUtils.isNotEmpty(isEditRequest) && StringUtils.isNotEmpty(oidParam)) { Long oid = Long.parseLong(oidParam); OrderItem orderItem = orderItemService.readOrderItemById(oid); if (orderItemBelongsToCurrentCustomer(orderItem)) {
protected void updateAddRequestQuantities(OrderItemRequestDTO itemRequest, Long originalOrderItemId) { // Update the request to match the quantity of the order item it's replacing OrderItem orderItem = orderItemService.readOrderItemById(originalOrderItemId); // Make sure there is actually an order item to process if (orderItem == null) { return; } itemRequest.setQuantity(orderItem.getQuantity()); for (OrderItemRequestDTO childDTO : itemRequest.getChildOrderItems()) { childDTO.setQuantity(childDTO.getQuantity() * orderItem.getQuantity()); } }
OrderItem orderItem = orderItemService.readOrderItemById(orderItemRequestDTO.getOrderItemId()); if (orderItem != null && orderItem instanceof DiscreteOrderItem) { DiscreteOrderItem doi = (DiscreteOrderItem) orderItem;
/** * Takes an order item id and rebuilds the dependant order item tree with the current quantities and options set. * * If the method was invoked via an AJAX call, it will render the "ajax/configure" template. * Otherwise, it will perform a 302 redirect to "/cart/configure" * * @param request * @param response * @param model * @param orderItemId * @throws IOException * @throws AddToCartException * @throws PricingException */ public String reconfigure(HttpServletRequest request, HttpServletResponse response, Model model, Long orderItemId) throws IOException, AddToCartException, PricingException, Exception { DiscreteOrderItem orderItem = (DiscreteOrderItem) orderItemService.readOrderItemById(orderItemId); Long productId = orderItem.getProduct().getId(); Product product = catalogService.findProductById(productId); ConfigurableOrderItemRequest itemRequest = orderItemService.createConfigurableOrderItemRequestFromProduct(product); orderItemService.modifyOrderItemRequest(itemRequest); orderItemService.mergeOrderItemRequest(itemRequest, orderItem); // update quantities and product options itemRequest.setQuantity(orderItem.getQuantity()); model.addAttribute("baseItem", itemRequest); model.addAttribute("isUpdateRequest", Boolean.TRUE); model.addAttribute("originalOrderItem", orderItemId); model.addAttribute(ALL_PRODUCTS_ATTRIBUTE_NAME, orderItemService.findAllProductsInRequest(itemRequest)); return isAjaxRequest(request) ? getConfigureView() : getConfigurePageRedirect(); }
@Test(groups = { "removeItemFromOrder" }, dependsOnGroups = { "getItemsForOrder" }) @Transactional public void removeItemFromOrder() throws RemoveFromCartException { // Grab the order and the first OrderItem Order order = orderService.findOrderById(orderId); List<OrderItem> orderItems = order.getOrderItems(); assert orderItems.size() > 0; int startingSize = orderItems.size(); OrderItem item = orderItems.get(0); Long itemId = item.getId(); assert item != null; // Remove the item order = orderService.removeItem(order.getId(), item.getId(), true); List<OrderItem> items = order.getOrderItems(); OrderItem updatedItem = orderItemService.readOrderItemById(item.getId()); // Assert that the item has been removed assert items != null; assert items.size() == startingSize - 1; assert updatedItem == null; }
@Test(groups = { "removeBundleFromOrder" }, dependsOnGroups = { "addBundleToOrder" }) @Rollback(false) @Transactional public void removeBundleFromOrder() throws RemoveFromCartException { Order order = orderService.findOrderById(orderId); List<OrderItem> orderItems = order.getOrderItems(); assert orderItems.size() == numOrderItems; int startingSize = orderItems.size(); BundleOrderItem bundleOrderItem = (BundleOrderItem) orderItemService.readOrderItemById(bundleOrderItemId); assert bundleOrderItem != null; assert bundleOrderItem.getDiscreteOrderItems() != null; assert bundleOrderItem.getDiscreteOrderItems().size() == 1; order = orderService.removeItem(order.getId(), bundleOrderItem.getId(), true); List<OrderItem> items = order.getOrderItems(); assert items != null; assert items.size() == startingSize - 1; }
@Override @Transactional(value = "blTransactionManager", rollbackFor = {RemoveFromCartException.class}) public Order removeItem(Long orderId, Long orderItemId, boolean priceOrder) throws RemoveFromCartException { preValidateCartOperation(findOrderById(orderId)); try { OrderItem oi = orderItemService.readOrderItemById(orderItemId); if (oi == null) { throw new WorkflowException(new ItemNotFoundException()); } List<Long> childrenToRemove = new ArrayList<Long>(); if (oi instanceof BundleOrderItem) { List<DiscreteOrderItem> bundledItems = ((BundleOrderItem) oi).getDiscreteOrderItems(); for (DiscreteOrderItem doi : bundledItems) { findAllChildrenToRemove(childrenToRemove, doi); } } else { findAllChildrenToRemove(childrenToRemove, oi); } for (Long childToRemove : childrenToRemove) { removeItemInternal(orderId, childToRemove, false); } return removeItemInternal(orderId, orderItemId, priceOrder); } catch (WorkflowException e) { throw new RemoveFromCartException("Could not remove from cart", getCartOperationExceptionRootCause(e)); } }
@Override public List<OrderMultishipOption> getOrderMultishipOptionsFromDTOs(Order order, List<OrderMultishipOptionDTO> optionDtos) { List<OrderMultishipOption> orderMultishipOptions = new ArrayList<OrderMultishipOption>(); for (OrderMultishipOptionDTO optionDto : optionDtos) { OrderMultishipOption option = new OrderMultishipOptionImpl(); if (optionDto.getAddressId() != null) { option.setAddress(addressService.readAddressById(optionDto.getAddressId())); } if (optionDto.getFulfillmentOptionId() != null) { option.setFulfillmentOption(fulfillmentOptionService.readFulfillmentOptionById(optionDto.getFulfillmentOptionId())); } option.setId(optionDto.getId()); option.setOrder(order); option.setOrderItem(orderItemService.readOrderItemById(optionDto.getOrderItemId())); orderMultishipOptions.add(option); } return orderMultishipOptions; }
option.setOrderItem(orderItemService.readOrderItemById(dto.getOrderItemId()));
OrderItem orderItem = orderItemService.readOrderItemById(orderItemId); if (orderItem instanceof DiscreteOrderItem) { sku = ((DiscreteOrderItem) orderItem).getSku();
OrderItem updatedItem = orderItemService.readOrderItemById(item.getId()); assert updatedItem != null; assert updatedItem.getQuantity() == 10;
OrderItem updatedItem = orderItemService.readOrderItemById(item.getId()); assert updatedItem != null; assert updatedItem.getQuantity() == 10; updatedItem = orderItemService.readOrderItemById(item.getId()); assert updatedItem != null; assert updatedItem.getQuantity() == 5; updatedItem = orderItemService.readOrderItemById(item.getId()); assert updatedItem == null; assert order.getOrderItems().size() == startingSize - 1;
private OrderItem getOrderItemByHref(final String orderItemHref, final Order order) throws MalformedURLException, ResourceNotFoundException { final long orderItemId = CatalogUtils.getIdFromUrl(orderItemHref); final OrderItem orderItemEntity = orderItemService.readOrderItemById(orderItemId); if(orderItemEntity != null && orderItemEntity.getOrder().equals(order)) { return orderItemEntity; } else { throw new ResourceNotFoundException("Order Item: " + orderItemId + " does not exist or is not related to order!"); } }