コード例 #1
0
ファイル: testaHospedagem.py プロジェクト: fslima/P2LOO
class TestaHospedagem(unittest.TestCase):
	
	def setUp(self):
		self.c = Cliente('Thiago Neves', '12369978909', '2299019866')
		self.q = Quarto(202, 'Master')
		self.h = Hospedagem(self.q, self.c, date(2011, 07, 10))
		self.r = Reserva(None, None, None, None)

	def testaAinit(self):		
		self.h.num |should| equal_to(1)
		self.h.cliente.nome |should| equal_to('Thiago Neves')
		self.h.quarto.num |should| equal_to(202)
		self.h.dtinicio |should| equal_to(date.today())
		self.h.dtfim |should| equal_to(date(2011, 07, 10))
		self.h.vlextra |should| equal_to(0.00)
		self.h.situacao |should| equal_to('Em Aberto')
		self.h = Hospedagem(self.q, Cliente('Ronaldinho Gaucho', '98765478909', '2167549876'), date(2011, 7, 11))
		self.h.num |should| equal_to(2)
		self.h.cliente.nome |should| equal_to('Ronaldinho Gaucho')
		self.h.quarto.num |should| equal_to(202)
		self.h.dtinicio |should| equal_to(date.today())
		self.h.dtfim |should| equal_to(date(2011, 07, 11))
		self.h.vlextra |should| equal_to(0.00)
		self.h.situacao |should| equal_to('Em Aberto')

	def testaBcheckIn(self):
		self.c.cadCli('Anderson Silva', '12369978909', '2299019866')
		self.q.cadQuarto(203, 'Simples')
		self.h.checkIn(self.q, 203, self.c, 4, date(2011, 07, 10))
		self.h.lista[0].num |should| equal_to(4)
		self.h.lista[0].quarto.num |should| equal_to(203)
		self.q.lista[0].situacao |should| equal_to('Ocupado')
		self.c.lista[0].qtdHosp |should| equal_to(1)
		self.h.lista[0].cliente.nome |should| equal_to('Anderson Silva')
		self.h.lista[0].dtinicio |should| equal_to(date.today())
		self.h.lista[0].dtfim |should| equal_to(date(2011, 07, 10))
		self.h.lista[0].situacao |should| equal_to('Em Aberto')
		self.h.lista[0].vlextra |should| equal_to(0.00)
		self.c.cadCli('Lionel Messi', '12369978909', '2299019866')
		self.q.cadQuarto(202, 'Master')
		self.h.checkIn(self.q, 202, self.c, 5, date(2011, 07, 5))
		self.h.lista[1].num |should| equal_to(5)
		self.h.lista[1].quarto.num |should| equal_to(202)
		self.q.lista[1].situacao |should| equal_to('Ocupado')
		self.c.lista[1].qtdHosp |should| equal_to(1)
		self.h.lista[1].cliente.nome |should| equal_to('Lionel Messi')
		self.h.lista[1].dtinicio |should| equal_to(date.today())
		self.h.lista[1].dtfim |should| equal_to(date(2011, 07, 5))
		self.h.lista[1].situacao |should| equal_to('Em Aberto')
		self.h.lista[1].vlextra |should| equal_to(0.00)

	def testaBcheckOut(self):
		self.h.checkOut(self.h, 4, self.q, 58.95)
		self.h.lista[0].num |should| equal_to(4)
		self.h.lista[0].quarto.num |should| equal_to(203)
		self.q.buscarQuarto(self.q, 203).situacao |should| equal_to('Livre')
		self.h.lista[0].cliente.nome |should| equal_to('Anderson Silva')
		self.h.lista[0].dtfim |should| equal_to(date.today())
		self.h.lista[0].situacao |should| equal_to('Encerrada')
		self.h.lista[0].vlextra |should| equal_to(58.95)
		self.h.lista[0].vltotal |should| equal_to(148.95) #valor de 1 diaria de 90,00(quarto simples) + o gasto no frigobar (58.95)
		
	def testaCnumDeDiarias(self):
		self.h.numDeDiarias(date(2011, 7, 4), date(2011, 7, 4)) |should| equal_to(1)
		self.h.numDeDiarias(date(2011, 7, 4), date(2011, 7, 5)) |should| equal_to(1)
		self.h.numDeDiarias(date(2011, 7, 4), date(2011, 7, 14)) |should| equal_to(10)
		self.h.numDeDiarias(date(2011, 7, 4), date(2011, 10, 12)) |should| equal_to(100)

	def testaElistarHospedagens(self):
		self.h.listarHospedagens(self.h) |should| equal_to([self.h.lista[0], self.h.lista[1]])

	def testaGlistarQuartosPorSituacao(self):
		self.h.listarHospedagensPorSituacao(self.h, 'Em Aberto') |should| equal_to([self.h.lista[1]])
		self.h.listarHospedagensPorSituacao(self.h, 'Encerrada') |should| equal_to([self.h.lista[0]])

	def testaHcancelarHospedagem(self):	
		self.h.cancelarHospedagem(self.h, 9) |should| equal_to("\n\nA Hospedagem informada não Existe")
		self.h.cancelarHospedagem(self.h, 4) |should| equal_to("\n\nHospedagem Cancelada com Sucesso")
		self.h.cancelarHospedagem(self.h, 4) |should| equal_to("\n\nA Hospedagem informada não Existe")

	def testaIvalidarReserva(self):
		self.h.validarHospedagem(self.h, self.r, self.q, 210, self.c, 4, date(2011, 11, 15)) |should| equal_to("Quarto nao Cadastrado")
		self.h.validarHospedagem(self.h, self.r, self.q, 203, self.c, 9, date(2011, 11, 15)) |should| equal_to("Cliente nao Cadastrado")
		self.h.validarHospedagem(self.h, self.r, self.q, 202, self.c, 4, date(2011, 11, 15)) |should| equal_to("Quarto Ocupado")
		self.h.validarHospedagem(self.h, self.r, self.q, 203, self.c, 4, date(2011, 7, 2)) |should| equal_to("Data de Saida deve ser maior do que a de hoje")
		self.r.cadReserva(self.q, 203, self.c, 5, date(2011, 7, 10), date(2011, 7, 15))
		self.h.validarHospedagem(self.h, self.r, self.q, 203, self.c, 4, date(2011, 7, 10)) |should| equal_to("Existe a seguinte reserva para esse Quarto: \n\n"+str(self.r.lista[0]))
		self.h.validarHospedagem(self.h, self.r, self.q, 203, self.c, 4, date(2011, 7, 15)) |should| equal_to("Existe a seguinte reserva para esse Quarto: \n\n"+str(self.r.lista[0]))
		self.h.validarHospedagem(self.h, self.r, self.q, 203, self.c, 4, date(2011, 7, 16)) |should| equal_to("Existe a seguinte reserva para esse Quarto: \n\n"+str(self.r.lista[0]))
		self.h.validarHospedagem(self.h, self.r, self.q, 203, self.c, 4, date(2011, 7, 9)) |should| equal_to("Checkin Concluido")
		
	def testaJcheckOutDeClienteVip(self):
		self.h.checkOut(self.h, 12, self.q, 58.95)
		self.h.checkIn(self.q, 203, self.c, 4, date(2011, 07, 10)) #3º hospedagem do cliente 'Anderson Sliva'
		self.h.checkOut(self.h, 14, self.q, 58.95)
		self.h.checkIn(self.q, 203, self.c, 4, date(2011, 07, 10)) #4º hospedagem do cliente 'Anderson Sliva'
		self.h.checkOut(self.h, 15, self.q, 58.95)
		self.h.checkIn(self.q, 203, self.c, 4, date(2011, 07, 10)) #5º hospedagem do cliente 'Anderson Sliva' *****VIROU VIP******
		self.h.checkOut(self.h, 16, self.q, 90.00)
		self.h.lista[4].num |should| equal_to(16)
		self.h.lista[4].quarto.num |should| equal_to(203)
		self.q.buscarQuarto(self.q, 203).situacao |should| equal_to('Livre')
		self.h.lista[4].cliente.nome |should| equal_to('Anderson Silva')
		self.h.lista[4].dtfim |should| equal_to(date.today())
		self.h.lista[4].situacao |should| equal_to('Encerrada')
		self.h.lista[4].vlextra |should| equal_to(90.00)
		self.h.lista[4].vltotal |should| equal_to(162.00) #1 diaria de 90,00 + frigobar (90.00) - 10% CLIENTE VIP (18.00)
		self.h.checkIn(self.q, 203, self.c, 4, date(2011, 07, 10)) #6º hospedagem do cliente 'Anderson Sliva'
		self.h.checkOut(self.h, 17, self.q, 30.00)
		self.h.lista[5].num |should| equal_to(17)
		self.h.lista[5].quarto.num |should| equal_to(203)
		self.q.buscarQuarto(self.q, 203).situacao |should| equal_to('Livre')
		self.h.lista[5].cliente.nome |should| equal_to('Anderson Silva')
		self.h.lista[5].dtfim |should| equal_to(date.today())
		self.h.lista[5].situacao |should| equal_to('Encerrada')
		self.h.lista[5].vlextra |should| equal_to(30.00)
		self.h.lista[5].vltotal |should| equal_to(108.00) #1 diaria de 90,00 + frigobar (30.00) - 10% CLIENTE VIP (12.00)
コード例 #2
0
ファイル: hotel.py プロジェクト: fslima/P2LOO
class Hotel(object):

	def menu(self):	
		self.c = Cliente(None, 0, None)
		self.q = Quarto(0, None)
		self.r = Reserva(None, None, None, None)
		self.h = Hospedagem(None, None, None)
		op=0
		while op != 5:
			print ""
			print ""
			print "Hotel LOO-IFF"
			print ""
			print "1 - Clientes"
			print "2 - Quartos"
			print "3 - Reservas"
			print "4 - Hospedagens"
			print "5 - Sair"
			op = input("Digite sua opção: ")
			if op == 1:
				self.menuClientes()
			if op == 2:
				self.menuQuartos()
			if op == 3:
				self.menuReservas()
			if op == 4:
				self.menuHospedagens()

	def menuClientes(self):
		op=0
		while op != 3:
			print ""
			print ""
			print "Menu de Clientes"
			print ""
			print "1 - Cadastrar Cliente"
			print "2 - Relatórios de Clientes"
			print "3 - Voltar"
			op = input("Digite sua opção: ")
			if op == 1:
				self.cadCli()
			if op == 2:
				self.menuRelCli()

	def cadCli(self):
		print ""
		print ""
		print "Cadastros de Clientes"
		print ""
		nome = raw_input("Nome: ")
		cpf = raw_input("CPF: ")
		tel = raw_input("Telefone: ")
		self.c.cadCli(nome, cpf, tel)
			
	def menuRelCli(self):
		op=0
		while op != 3:
			print ""
			print ""
			print "Relatorios de Clientes"
			print "";
			print "1 - Lista Cliente"
			print "2 - Lista de Clientes VIPs"
			print "3 - Voltar";
			op = input("Digite sua opção: ")
			if op == 1:
				self.relCli()
			if op == 2:
				self.relCliVip()

	def relCli(self):
		print ""
		print "Lista de Clientes"
		print "";
		for i in range(0, len(self.c.lista)):
			print self.c.listarClientes(self.c)[i]

	def relCliVip(self):
		print ""
		print "Lista de Clientes VIP"
		print "";
		for i in range(0, len(self.c.listarClientesVip(self.c))):
			print self.c.listarClientesVip(self.c)[i]

	def menuQuartos(self):
		op=0
		while op != 3:
			print ""
			print ""
			print "Menu de Quartos"
			print ""
			print "1 - Cadastrar Quarto"
			print "2 - Relatórios de Quartos"
			print "3 - Voltar"
			op = input("Digite sua opção: ")
			if op == 1:
				self.cadQuarto()
			if op == 2:
				self.menuRelQuartos()

	def cadQuarto(self):
		tp = 0
		print ""
		print ""
		print "Cadastros de Quartos"
		print ""
		num = input("Numero: ")
		while tp != 1 and tp != 2 and tp != 3:
			print "Tipo do Quarto:"
			print "1 - Simples"
			print "2 - Casal"
			print "3 - Master"
			tp = input("Escolha o Tipo do Quarto: ")
			if tp == 1:
				tipo = 'Simples'
			if tp == 2:
				tipo = 'Casal'
			if tp == 3:
				tipo = 'Master'
		print ""
		print self.q.cadQuarto(num, tipo)

	def menuRelQuartos(self):
		op=0
		while op != 4:
			print ""
			print ""
			print "Relatorios de Quartos"
			print "";
			print "1 - Lista Quartos"
			print "2 - Lista de Quartos por Tipo"
			print "3 - Lista de Quartos por Ocupacao";
			print "4 - Voltar";
			op = input("Digite sua opção: ")
			if op == 1:
				self.relQuartos()
			if op == 2:
				self.relQuartosPorTipo()
			if op == 3:
				self.relQuartosPorSituacao()

	def relQuartos(self):
		print ""
		print "Lista de Quartos"
		print "";
		for i in range(0, len(self.q.lista)):
			print self.q.listarQuartos(self.q)[i]

	def relQuartosPorTipo(self):
		tp = 0
		print ""
		print "Lista de Quartos por Tipo"
		print ""
		while tp != 1 and tp != 2 and tp != 3:
			print "Tipo do Quarto:"
			print "1 - Simples"
			print "2 - Casal"
			print "3 - Master"
			tp = input("Escolha o Tipo do Quarto: ")
			if tp == 1:
				tipo = 'Simples'
			if tp == 2:
				tipo = 'Casal'
			if tp == 3:
				tipo = 'Master'
		print ""
		print "Lista de Quartos (Tipo %s)" %tipo
		print ""
		for i in range(0, len(self.q.listarQuartosPorTipo(self.q, tipo))):
			print self.q.listarQuartosPorTipo(self.q, tipo)[i]

	def relQuartosPorSituacao(self):
		sit = 0
		print ""
		print "Lista de Quartos por Ocupacao"
		print ""
		while sit != 1 and sit != 2:
			print "Tipo do Quarto:"
			print "1 - Livre"
			print "2 - Ocupado"
			sit = input("Livre ou Ocupado? ")
			if sit == 1:
				situacao = 'Livre'
			if sit == 2:
				situacao = 'Ocupado'
		print ""
		print "Lista de Quartos "+situacao+"s"
		print ""
		for i in range(0, len(self.q.listarQuartosPorSituacao(self.q, situacao))):
			print self.q.listarQuartosPorSituacao(self.q, situacao)[i]


	def menuReservas(self):
		op=0
		while op != 4:
			print ""
			print ""
			print "Menu de Reservas"
			print ""
			print "1 - Cadastrar Reserva"
			print "2 - Relatórios de Reservas"
			print "3 - Cancelamento de Reserva"
			print "4 - Voltar"
			op = input("Digite sua opção: ")
			if op == 1:
				self.cadReserva()
			if op == 2:
				self.menuRelReservas()
			if op == 3:
				self.menuCancelarReservas()
	
	def cadReserva(self):
		print ""
		print ""
		print "Cadastros de Reservas"
		print ""
		nq = input("Nº do Quarto: ")
		nc = input("Codigo do Cliente: ")
		chegada = raw_input("Data da Chegada(ddMMaaaa): ")
		saida = raw_input("Data da Saída(ddMMaaaa): ")
		di = date(int(chegada[4:8]), int(chegada[2:4]), int(chegada[:2]))
		df = date(int(saida[4:8]), int(saida[2:4]), int(saida[:2]))
		print ""
		print self.r.validarReserva(self.r, self.q, nq, self.c, nc, di, df)

	def menuCancelarReservas(self):
		print ""
		print ""
		print "Cancelamento de Reservas"
		print ""
		nr = input("Nº da Reserva: ")
		print self.r.cancelarReserva(self.r, nr)

	def menuRelReservas(self):
		op=0
		while op != 3:
			print ""
			print ""
			print "Relatorios de Reservas"
			print "";
			print "1 - Lista Geral de Reservas"
			print "2 - Lista de Reservas por Data"
			print "3 - Voltar";
			op = input("Digite sua opção: ")
			if op == 1:
				self.relReservas()
			if op == 2:
				self.relReservasPorData()

	def relReservas(self):
		print ""
		print "Lista Geral de Reservas"
		print ""
		for i in range(0, len(self.r.listarReservas(self.r))):
			print self.r.listarReservas(self.r)[i]

	def relReservasPorData(self):
		print ""
		print "Lista de Reservas por Periodo"
		print ""
		chegada = raw_input("Data da Chegada(ddMMaaaa): ")
		saida = raw_input("Data da Saída(ddMMaaaa): ")
		di = date(int(chegada[4:8]), int(chegada[2:4]), int(chegada[:2]))
		df = date(int(saida[4:8]), int(saida[2:4]), int(saida[:2]))
		print ""
		print "Lista de Reservas por Periodo"
		print ""
		for i in range(0, len(self.r.listarReservasPorPeriodo(self.r, di, df))):
			print self.r.listarReservasPorPeriodo(self.r, di, df)[i]

	
	def menuHospedagens(self):
		op=0
		while op != 5:
			print ""
			print ""
			print "Menu de Hospedagens"
			print ""
			print "1 - CheckIn"
			print "2 - CheckOut"
			print "3 - Relatórios de Hospedagens"
			print "4 - Cancelamento de Hospedagens"
			print "5 - Voltar"
			op = input("Digite sua opção: ")
			if op == 1:
				self.checkIn()
			if op == 2:
				self.checkOut()
			if op == 3:
				self.menuRelHospedagens()
			if op == 4:
				self.menuCancelarHospedagens()
	
	def checkIn(self):
		print ""
		print ""
		print "CheckIn"
		print "Quartos Livres"
		print self.q.listarQuartosPorSituacao(self.q, 'Livre')
		print ""
		nq = input("Nº do Quarto: ")
		nc = input("Codigo do Cliente: ")
		saida = raw_input("Data da Saída(ddMMaaaa): ")
		df = date(int(saida[4:8]), int(saida[2:4]), int(saida[:2]))
		print ""
		print self.h.validarHospedagem(self.h, self.r, self.q, nq, self.c, nc, df)

	def checkOut(self):
		print ""
		print ""
		print "CheckOut"
		print "Hospedagens Em Aberto"
		print self.h.listarHospedagensPorSituacao(self.h, 'Em Aberto')
		print ""
		n = input("Nº da Hospedagem: ")
		vf = input("Valor Gasto no Frigobar: ")
		print ""
		print self.h.checkOut(self.h, n, self.q, vf)

	def menuCancelarHospedagens(self):
		print ""
		print ""
		print "Cancelamento de Hospedagem"
		print ""
		n = input("Nº da Hospedagem: ")
		print self.h.cancelarReserva(self.h, n)

	def menuRelHospedagens(self):
		op=0
		while op != 3:
			print ""
			print ""
			print "Relatorios de Hospedagens"
			print "";
			print "1 - Lista Geral de Hospedagens"
			print "2 - Lista de Reservas por Situacao"
			print "3 - Voltar";
			op = input("Digite sua opção: ")
			if op == 1:
				self.relHospedagens()
			if op == 2:
				self.relHospedagensPorSituacao()

	def relHospedagens(self):
		print ""
		print "Lista Geral de Hospedagens"
		print ""
		for i in range(0, len(self.h.listarHospedagens(self.h))):
			print self.h.listarHospedagens(self.h)[i]

	def relHospedagensPorSituacao(self):
		sit = 0
		print ""
		print "Lista de Hospedagens por Status"
		print ""
		while sit != 1 and sit != 2:
			print "Status:"
			print "1 - Em Aberto"
			print "2 - Encerrado"
			sit = input("Livre ou Ocupado? ")
			if sit == 1:
				situacao = 'Em Aberto'
			if sit == 2:
				situacao = 'Encerrada'
		print ""
		print "Lista de Hoespedagens "+situacao
		print ""
		for i in range(0, len(self.h.listarHospedagensPorSituacao(self.h, situacao))):
			print self.h.listarHospedagensPorSituacao(self.h, situacao)[i]