Пример #1
0
OrderItem* Customer::addOrderItem(MenuItem* menuItem, float quantity, QString note) {
    OrderItem* orderItem = new OrderItem(this, ++m_currentOrderItemId, m_ticketId, m_id,
                                         menuItem->property("name").toString(),
                                         menuItem->property("type").toString(),
                                         QDateTime::currentDateTime(),
                                         menuItem->property("price").toFloat(), quantity, note, false, QDateTime(), menuItem->isHiddenFromKitchen(), menuItem->prepType());

    addOrderItem(orderItem);
    if(menuItem->property("type").toString() == "Alcohol" && !orderItem->isSubmitted()) {
        orderItem->setSubmittedStamp(orderItem->property("createdStamp").toDateTime());
    }

    // add OrderItemInventoryItems AFTER adding OrderItem to ensure correct order of events in History.
    for(MenuItemInventoryItem *item : menuItem->menuItemInventoryItemsList()) {
        orderItem->addOrderItemInventoryItem(item->property("inventoryItemId").toUInt(),
                                             item->inventoryItem()->property("name").toString(),
                                             item->inventoryItem()->property("unit").toString(),
                                             item->inventoryItem()->unitPrice(),
                                             item->property("quantity").toFloat());
    }

    for(MenuItemOption *item : menuItem->menuItemOptionsList()) {
        quint32 optionMenuCategoryId = item->property("optionMenuCategoryId").toUInt();
        orderItem->addOrderItemOption(optionMenuCategoryId);
    }

    return orderItem;
}
Пример #2
0
void SortDialog::fillOrderExpressionList(const OrderExpression& orderExpression)
{      
  typedef OrderExpression::ItemList::const_iterator iterator;
  OrderExpression::ItemList orderItems = orderExpression.items();       
  ui_.orderExpressionList->clear();
  orderExpression_.clear();
  for (iterator i = orderItems.begin(), end = orderItems.end(); i != end; ++i)
  {
    addOrderItem(*i);
  }                 
}
Пример #3
0
void SortDialog::on_addDescBtn_clicked(bool /*checked*/)
{
  int row = ui_.availableFieldList->currentRow();
  if (0 <= row)
  {
    OrderExpression::ItemPtr orderItem = 
        boost::make_shared<OrderExpression::Item>(
            availableFields_.at(row), OrderExpression::Item::descendingOrder);
    addOrderItem(orderItem);
    removeAvailableField(row);
    updateState();
  }
}