@Override //@Transactional("blTransactionManager") public FulfillmentGroup addItemToFulfillmentGroup(FulfillmentGroupItemRequest fulfillmentGroupItemRequest, boolean priceOrder) throws PricingException { return addItemToFulfillmentGroup(fulfillmentGroupItemRequest, priceOrder, true); }
@Override public List<FulfillmentGroup> getAllShippableFulfillmentGroups(Order order) { List<FulfillmentGroup> fulfillmentGroups = order.getFulfillmentGroups(); List<FulfillmentGroup> shippable = new ArrayList<FulfillmentGroup>(); if (fulfillmentGroups != null) { for (FulfillmentGroup fulfillmentGroup : fulfillmentGroups) { if (isShippable(fulfillmentGroup.getType())) { shippable.add(fulfillmentGroup); } } } return shippable; }
Map<String, FulfillmentGroup> multishipGroups = new HashMap<String, FulfillmentGroup>(); for (FulfillmentGroup fg : order.getFulfillmentGroups()) { if (!isShippable(fg.getType())) { continue; String key = getKey(fg.getAddress(), fg.getFulfillmentOption(), fg.getType()); multishipGroups.put(key, fg); String key = getKey(option.getAddress(), option.getFulfillmentOption(), ((DiscreteOrderItem) option.getOrderItem()).getSku().getFulfillmentType()); FulfillmentGroup fg = multishipGroups.get(key); fg = addFulfillmentGroupToOrder(fgr, false); fg = save(fg); order.getFulfillmentGroups().add(fg);
FulfillmentGroupRequest fgRequest = new FulfillmentGroupRequest(); fgRequest.setOrder(order); fulfillmentGroup = addFulfillmentGroupToOrder(fgRequest, false); fulfillmentGroup = save(fulfillmentGroup); order.getFulfillmentGroups().add(fulfillmentGroup); FulfillmentGroupItem fgi = createFulfillmentGroupItemFromOrderItem(item, fulfillmentGroup, fulfillmentGroupItemRequest.getQuantity()); if (save) { fgi = fulfillmentGroupItemDao.save(fgi);
/** * This method will get the first shippable fulfillment group from an order. * * @param order */ @Override public FulfillmentGroup getFirstShippableFulfillmentGroup(Order order) { List<FulfillmentGroup> fulfillmentGroups = order.getFulfillmentGroups(); if (fulfillmentGroups != null) { for (FulfillmentGroup fulfillmentGroup : fulfillmentGroups) { if (isShippable(fulfillmentGroup.getType())) { return fulfillmentGroup; } } } return null; }
@Override @Transactional("blTransactionManager") public FulfillmentGroup addFulfillmentGroupToOrder(FulfillmentGroupRequest fulfillmentGroupRequest, boolean priceOrder) throws PricingException { FulfillmentGroup fg = fulfillmentGroupDao.create(); fg.setAddress(fulfillmentGroupRequest.getAddress()); fg.setOrder(fulfillmentGroupRequest.getOrder()); fg.setPhone(fulfillmentGroupRequest.getPhone()); fg.setFulfillmentOption(fulfillmentGroupRequest.getOption()); fg.setType(fulfillmentGroupRequest.getFulfillmentType()); for (int i = 0; i < fulfillmentGroupRequest.getFulfillmentGroupItemRequests().size(); i++) { FulfillmentGroupItemRequest request = fulfillmentGroupRequest.getFulfillmentGroupItemRequests().get(i); request.setFulfillmentGroup(fg); request.setOrder(fulfillmentGroupRequest.getOrder()); boolean shouldPriceOrder = (priceOrder && (i == (fulfillmentGroupRequest.getFulfillmentGroupItemRequests().size() - 1))); fg = addItemToFulfillmentGroup(request, shouldPriceOrder); } return fg; }
@Override public Integer calculateNumShippableFulfillmentGroups(Order order) { Integer numShippableFulfillmentGroups = 0; List<FulfillmentGroup> fulfillmentGroups = order.getFulfillmentGroups(); for (FulfillmentGroup fulfillmentGroup : CollectionUtils.emptyIfNull(fulfillmentGroups)) { if (isShippable(fulfillmentGroup.getType())) { numShippableFulfillmentGroups++; } } return numShippableFulfillmentGroups; }
List<FulfillmentGroup> nonShippableFulfillmentGroupList = new ArrayList<FulfillmentGroup>(); for (FulfillmentGroup fulfillmentGroup : order.getFulfillmentGroups()) { if(isShippable(fulfillmentGroup.getType())) { shippableFulfillmentGroupList.add(fulfillmentGroup); } else {