From 6b59fdf79746f07a905c0e949d77dd0a94d79f93 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Fri, 6 May 2022 11:21:46 +0300 Subject: Autocommit at 06.05.2022 @ 11:21 --- src/VenueConsoleUI.cpp | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'src/VenueConsoleUI.cpp') 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 tickets = v->get_es().queryTickets(name, date); OrderedList 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] = ' '; } -- cgit v1.3.1-23-gd82d