@Override
  public void prepareConsignment(final ConsignmentModel consignment) {
    for (final ConsignmentEntryModel consignmentEntries : consignment.getConsignmentEntries()) {
      consignmentEntries.setShippedQuantity(consignmentEntries.getQuantity());
    }
    consignment.setStatus(ConsignmentStatus.READY);
    getModelService().save(consignment);

    final Thread warehouse =
        new Thread(
            new Warehouse(
                Registry.getCurrentTenant().getTenantID(), consignment.getPk().getLongValue()));
    warehouse.start();

    try {
      Thread.sleep(3000);
    } catch (final InterruptedException e) {
      // nothing to do
    }
  }
 @Override
 public void shipConsignment(final ConsignmentModel consignment) {
   if (consignment == null) {
     LOG.error("No consignment to ship");
   } else {
     if (consignment.getDeliveryMode() instanceof PickUpDeliveryModeModel) {
       consignment.setStatus(ConsignmentStatus.READY_FOR_PICKUP);
     } else {
       consignment.setStatus(ConsignmentStatus.SHIPPED);
     }
     consignment.setShippingDate(getTimeService().getCurrentTime());
     for (final ConsignmentEntryModel entry : consignment.getConsignmentEntries()) {
       entry.setShippedQuantity(entry.getOrderEntry().getQuantity());
       getModelService().save(entry);
     }
     getModelService().save(consignment);
     if (LOG.isInfoEnabled()) {
       LOG.info("Consignment [" + consignment.getCode() + "] shipped");
     }
   }
 }