Website Summary Files Commits Branches @commit @diff @stats
path: root / src / VenueConsoleUI.cpp
diff options
context:
space:
mode:
Commit6b59fdf79746f07a905c0e949d77dd0a94d79f93 (patch)
Author
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-06 11:21:46 +0300
Committer
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-06 11:21:46 +0300
Filesa55e4f64bd69733f5c290c006842788060b8d19b /src/VenueConsoleUI.cpp
FMI-OOP-P1_TicketSystem-6b59fdf79746f07a905c0e949d77dd0a94d79f93.tar
FMI-OOP-P1_TicketSystem-6b59fdf79746f07a905c0e949d77dd0a94d79f93.tar.gz
FMI-OOP-P1_TicketSystem-6b59fdf79746f07a905c0e949d77dd0a94d79f93.zip
Parent3884471c9610216307bcdafcbe04c35ede6c5d0e (diff)
Autocommit at 06.05.2022 @ 11:21
1 files changed, 15 insertions, 7 deletions
-rw-r--r--src/VenueConsoleUI.cpp22
diff --git a/src/VenueConsoleUI.cpp b/src/VenueConsoleUI.cpp
index b742eec..34bbf64 100644
--- a/src/VenueConsoleUI.cpp
+++ b/src/VenueConsoleUI.cpp
@@ -40,21 +40,29 @@ void command_freeSeats() {
inputBox("Enter event date: ", &date);
const Hall* hall = v->get_es().queryEventHall(name, date);
+ if (hall == nullptr) {
+ handleStatusCode(E_HallDoesntExist, ticketManagementMenu);
+ return;
+ }
+
OrderedList<Ticket> tickets = v->get_es().queryTickets(name, date);
OrderedList<Reservation> reservations = v->get_es().queryReservations(name, date);
unsigned tableSize = hall->get_rowCount() * hall->get_seatsPerRow(),
nextTInd = 0, nextRInd = 0,
- nextT = (tickets[nextT].get_row() - 1) * hall->get_seatsPerRow() + tickets[nextT].get_seat() - 1;
+ nextT = (tickets[nextT].get_row() - 1) * hall->get_seatsPerRow() + tickets[nextT].get_seat() - 1,
+ nextR = (reservations[nextR].get_ticket().get_row() - 1) * hall->get_seatsPerRow() + reservations[nextT].get_ticket().get_seat() - 1;
char tableData[tableSize + 1];
- for (unsigned i = 0, nextT = 0, nextR = 0; i < tableSize; i++) {
- if (tickets[nextT].get_row() * hall->get_seatsPerRow() + tickets[nextT].get_seat() == i) {
+ for (unsigned i = 0; i < tableSize; i++) {
+ if (nextTInd < tickets.get_count() && nextT == i) {
tableData[i] = 'B';
- nextT++;
+ nextTInd++;
+ nextT = (tickets[nextT].get_row() - 1) * hall->get_seatsPerRow() + tickets[nextT].get_seat() - 1;
}
- else if (reservations[nextT].get_ticket().get_row() * hall->get_seatsPerRow() + reservations[nextT].get_ticket().get_seat() == i) {
- tableData[i] == 'R';
- nextR++;
+ else if (nextRInd < reservations.get_count() && nextR == i) {
+ tableData[i] = 'R';
+ nextRInd++;
+ nextR = (reservations[nextR].get_ticket().get_row() - 1) * hall->get_seatsPerRow() + reservations[nextT].get_ticket().get_seat() - 1;
}
else tableData[i] = ' ';
}