//endrer info etter type (1=annkomst, 2=avreise, 3 = begge) void Hotell::endre(int type) { bool funnet = false; //er rommet funnet Rom* tempRom; List* tempList; Reservasjon* tempRes; string eier = les("Romeier:"); int origAnkomst = getdate("\nOriginal ankomst", timer.hent_dato()); for (int i = 0; i < 3; i++) { //for alle rom for (int j = 1; j <= rom[i]->no_of_elements(); j++) { tempRom = (Rom*)rom[i]->remove_no(j); //henter listen over reservasjoner. tempList = (List*)tempRom->getlist(); //alle reservasjonene til ett rom. for (int k = 1; k <= tempList->no_of_elements(); k++) { tempRes = (Reservasjon*)tempList->remove_no(k); //hvis det er en reservasjon for dagens dato. if (origAnkomst == tempRes->getAnkomst()) { funnet = true; cout << "\nRomnummer: " << tempRom->getid() << endl; tempRes->display(false); if (confirm("\nVil du endre denne reservasjonen?")) { if (type == 1 || type == 3) { //endrer avreisen tempRes->setAnkomst(getdate("\nNy ankomst", timer.hent_dato())); } if (type == 2 || type == 3) { //endrer avreisen tempRes->setAvreise(getdate("\nNy avreise", timer.hent_dato())); } } } //setter tilbake tempList->add(tempRes); tempRom->replaceList(tempList); } rom[i]->add(tempRom); } } if (!funnet) { cout << "\nReservasjon ikke funnet" << endl; } }
void Hotell::displayOkkupant() { Rom* tempRom; List* tempList; Reservasjon* tempRes; bool funnetNr = false; bool funnetRes = false; int romNr; cout << "Ronmummer: "; cin >> romNr; //for alle typer rom for (int i = 0; i < 3; i++) { //for alle rom for (int j = 1; j <= rom[i]->no_of_elements(); j++) { tempRom = (Rom*)rom[i]->remove_no(j); rom[i]->add(tempRom); if (tempRom->getid() == romNr) { funnetNr = true; //henter listen over reservasjoner. tempList = (List*)tempRom->getlist(); //alle reservasjonene til ett rom. for (int k = 1; k <= tempList->no_of_elements(); k++) { tempRes = (Reservasjon*)tempList->remove_no(k); tempList->add(tempRes); //hvis det er en reservasjon for dagens dato. if (timer.hent_dato() <= tempRes->getAvreise() && timer.hent_dato() >= tempRes->getAnkomst()) { funnetRes = true; tempRes->display(true); } } } } } //hvis rommet eller reservasjonen ikke er funnet if (!funnetNr) { cout << "Romnummer ikke funnet" << endl; } else if (!funnetRes) { cout << "Ingen reservasjon i dag" << endl; } }
void Hotell::ledigTidRom() { int romNr; //rommet du vil ha bool funnet = false; //er rommet funnet Rom* tempRom; List* tempList; Reservasjon* tempRes; cout << "Hvilket romnummer?" << endl; cin >> romNr; //Alle romtypene for(int i = 0; i < 3; i++) { //Alle rommene for (int j = 1; j <= rom[i]->no_of_elements(); j++) { tempRom = (Rom*)rom[i]->remove_no(j); rom[i]->add(tempRom); //hvis rommet er riktig if (romNr == tempRom->getid()) { tempList = tempRom->getlist(); funnet = true; cout << "\nRommet er opptatt i perioden(e):\n"; //hvis det ikke er noen reservasjoner if (tempList->no_of_elements() == 0) { cout << "Ingen reservasjoner" << endl; } else { //For alle reservasjonene for (int k = 1; k <= tempList->no_of_elements(); k++) { tempRes = (Reservasjon*)tempList->remove_no(k); tempList->add(tempRes); cout << '\t' << tempRes->getAnkomst() << "\t-\t" << tempRes->getAvreise() << endl; } } } } } //hvis rommet er funnet if (!funnet) { cout << "Romnummer ikke funnet." << endl; } }
void Hotell::addRegning() { int romNr; //rommet du vil ha bool funnet = false; //er rommet funnet Rom* tempRom; List* tempList; Reservasjon* tempRes; cout << "Hvilket romnummer?" << endl; cin >> romNr; //Alle romtypene for(int i = 0; i < 3; i++) { //Alle rommene for (int j = 1; j <= rom[i]->no_of_elements(); j++) { tempRom = (Rom*)rom[i]->remove_no(j); //hvis rommet er riktig if (romNr == tempRom->getid()) { tempList = tempRom->getlist(); //for alle reservasjoner for (int j = 0; j < tempList->no_of_elements(); j++) { tempRes = (Reservasjon*)tempList->remove_no(j); if (tempRes->getAnkomst() <= timer.hent_dato() && tempRes->getAvreise() >= timer.hent_dato()) { funnet = true; //legg inn ting. tempRes->addRegning(); tempList->add(tempRes); tempRom->replaceList(tempList); } } } rom[i]->add(tempRom); } } }
void Hotell::ledigeRom(int nr) { //midlertidlige variabler Rom* tempRom; List* tempResList; Reservasjon* tempRes; bool opptatt = false; //hvilket tidsrom vil du finne? int minDate = getdate("\nFra dato: ", timer.hent_dato()); int maxDate = getdate("\nTil dato: ", minDate); //for alle rom av typen 'nr' for (int i = 1; i <= rom[nr]->no_of_elements(); i++) { tempRom = (Rom*)rom[nr]->remove_no(i); rom[nr]->add(tempRom); tempResList = (List*)tempRom->getlist(); //for alle reservasjoner for (int j = 1; j <= tempResList->no_of_elements(); j++) { tempRes = (Reservasjon*)tempResList->remove_no(j); tempResList->add(tempRes); //hvis reservasjonen gjelder for if (!(maxDate < tempRes->getAnkomst() || minDate > tempRes->getAvreise())) { opptatt = true; } } //hvis dette rommet ikke er opptatt if (!opptatt) { //skriv ut romnr cout << tempRom->getid() << ' '; } } }