public OrderDTO createOrder(Integer itemId, BigDecimal quantity) throws TaskException { // copy the current order OrderDTO newOrder = new OrderDTO(order); newOrder.setId(0); newOrder.setVersionNum(null); // the period needs to be in the session newOrder.setOrderPeriodId(order.getOrderPeriod().getId()); // the status should be active newOrder.setOrderStatus( new OrderStatusDAS() .find( new OrderStatusDAS().getDefaultOrderStatusId(OrderStatusFlag.INVOICE, entityId))); // but without the lines newOrder.getLines().clear(); // but do get the new line in OrderManager helper = new OrderManager(newOrder, language, userId, entityId, currencyId); OrderLineDTO newLine = helper.addItem(itemId, quantity); newLine.setPurchaseOrder(newOrder); newLine.setDefaults(); return new OrderDAS().save(newOrder); }