/**
   * Delivers an order to a customer
   *
   * @param _order to be delivered
   */
  public void deliverOrder(Order _order) {
    if (_order.getOrderStatus() != OrderStatus.cooked) {
      System.out.println(
          "Cashier.deliverOrder: Error order "
              + _order.getId()
              + " not completed "
              + _order.getOrderStatus());
      return;
    }

    try {
      Thread.sleep(Constants.DELIVERY_TIME);

      DataPacket packet = new DataPacket(Function.SET_ORDER_DELIVERED);
      packet.order = _order;
      this.communicateWithServer(packet);

      this.client.update("Delivered order");
      System.out.println(
          "Order "
              + _order.getId()
              + " delivered by "
              + this.getFirstName().charAt(0)
              + "."
              + this.getSurname());
    } catch (Exception e) {
      System.out.println("Cashier.deliverOrder: Error exception " + e.getMessage());
    }
  }