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; }
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); } }
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(); } }