Пример #1
0
//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;
	}
}
Пример #2
0
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;
	}
}
Пример #3
0
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;
	}
}
Пример #4
0
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);
		}
	}
}
Пример #5
0
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() << ' ';
		}
	}
}