57 lines
1.8 KiB
C++
57 lines
1.8 KiB
C++
//
|
|
// Created by Franc on 04.05.2026.
|
|
//
|
|
|
|
#include "Pizzeria.h"
|
|
|
|
Pizzeria::Pizzeria(string n, int maxOrders) {
|
|
this->name = n;
|
|
this->activeOrders = new Order*[maxOrders](nullptr);
|
|
this->orderCount = 0;
|
|
}
|
|
Pizzeria::~Pizzeria() {
|
|
for (int i = 0; i < orderCount; i++) {
|
|
delete activeOrders[i];
|
|
}
|
|
delete[] activeOrders;
|
|
|
|
}
|
|
void Pizzeria::processOrder(Order * o) {
|
|
if (o == nullptr) {
|
|
cout << "Chyba: Neplatna objednavka!" << endl;
|
|
return;
|
|
}
|
|
|
|
cout << "\n=== Zpracovani objednavky (" << name << ") ===" << endl;
|
|
cout << "Zakaznik: " << o->getCustomer()->getDetails() << endl;
|
|
cout << "---------------------------------------" << endl;
|
|
|
|
// --- Výpis a simulace přípravy položek ---
|
|
cout << "[Probíhá příprava položek]" << endl;
|
|
int count = o->getItemCount();
|
|
|
|
if (count == 0) {
|
|
cout << " - Objednavka je prazdna." << endl;
|
|
} else {
|
|
for (int i = 0; i < count; i++) {
|
|
IMenuItem* item = o->getItem(i);
|
|
if (item != nullptr) {
|
|
// Vypíše název a zavolá printInfo() pro specifické detaily (Pizza/Drink)
|
|
cout << " -> Pripravuji: " << item->getName() << endl;
|
|
cout << " Detaily: " << item->printInfo() << endl;
|
|
}
|
|
}
|
|
}
|
|
cout << "---------------------------------------" << endl;
|
|
|
|
// --- Výpis celkové ceny ---
|
|
cout << "Celkova cena k uhrade: " << o->calculateTotal() << " Kc" << endl;
|
|
|
|
// --- Dokončení a smazání ---
|
|
cout << "Stav: Objednavka byla predana zakaznikovi." << endl;
|
|
|
|
delete o; // Smaže objednávku a uvolní paměť
|
|
|
|
cout << "Objednavka byla uspesne uzavrena a smazana z pameti." << endl;
|
|
cout << "=======================================\n" << endl;
|
|
} |