Files
2026-05-04 14:52:32 +02:00

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