-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathreservaciones.py
142 lines (127 loc) · 6.41 KB
/
reservaciones.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
from random import randint
import pandas as pd
#Abrimos el archivo csv y le asignamos los valores a reservaciones y clientes
reservaciones = pd.read_csv('reservas.csv', sep=',')
clientes = pd.read_csv('clientes.csv', sep = ',')
#Introduccion de datos en la base de datos
def nuevosDatos(clientes, reservaciones):
print()
print('-------Nuevo cliente-------')
nombre = input('Ingrese Nombre y apellido: ')
preferencias = input('Ingrese sus Preferencias Alimentarias: ')
telefono = int(input('Ingrese Telefono de contacto: '))
correo = input('Ingrese Correo Electronico: ')
iden = randint(0,100)
v1 =[nombre, preferencias, telefono, correo, iden]
clientes.loc[len(clientes)] = v1
print()
print('-------Datos de Reservacion-------')
fechaR = input('Ingrese la Fecha de la reserva (en formato yy-mm-dd): ')
fechaE = input('Ingrese la Fecha de la entrada (en formato yy-mm-dd): ')
fechaS = input('Ingrese la Fecha de la salida (en formato yy-mm-dd): ')
duracion = input("ingrese duracion de la estadia: ")
tipoH = input('Ingrese el tipo de habitacion (doble, sencilla, suite, presidencial): ')
habitacion = input('Ingrese la habitacion a elegir (ej: I54): ')
personas = int(input('Ingrese la cantidad de personas: '))
precio = input('Ingrese El precio ($): ') + "$"
pago = input('Ingrese el tipo de pago (debito, credito, efectivo): ')
notas = input('Ingrese Notas adicionales: ')
estado = input('Ingrese Estado de la reserva(Reservado o No Reservado): ')
checkin = input('Ingrese la Fecha y hora del check in (en formato dd-mm-yy hh:mm): ')
checkout = input('Ingrese la Fecha y hora del check out (en formato dd-mm-yy hh:mm):')
v2 = [fechaR, fechaE, fechaS, duracion, tipoH, habitacion, personas, precio, pago, notas, estado, checkin, checkout, iden]
reservaciones.loc[len(reservaciones)] = v2
clientes.to_csv('clientes.csv', index=False ) #guardamos los datos en un archivo csv
reservaciones.to_csv('reservas.csv', index=False ) #guardamos los datos en un archivo csv
def validarInput(mensaje, op):
print()
x = int(input(mensaje))
if x not in op:
print('\n\tOpción no válida.\n')
menu(clientes, reservaciones)
return x
def ordenarCriterio(reservaciones=reservaciones):
z = validarInput('Orden por fecha de reservacion: 1. Orden por Fecha de entrada: 2\nOrden por Fecha de salida: 3. Orden por Habitacion: 4', [1,2,3,4])
if z == 1:
result = reservaciones.sort_values(by="Fecha Reserva", ascending=False)
print(result)
w = validarInput('desea agregar un criterio mas?. si: 1. no: 2', [1,2])
if w == 1:
ordenarCriterio()
if w == 2 :
menu(clientes, reservaciones)
if z == 2:
result = reservaciones.sort_values(by="Fecha Entrada", ascending=False)
print(result)
w = validarInput('desea agregar un criterio mas?. si: 1. no: 2', [1,2])
if w == 1:
ordenarCriterio()
if w == 2 :
menu(clientes, reservaciones)
if z == 3:
result = reservaciones.sort_values(by="Fecha Salida", ascending=False)
print(result)
w = validarInput('desea agregar un criterio mas?. si: 1. no: 2', [1,2])
if w == 1:
ordenarCriterio()
if w == 2 :
menu(clientes, reservaciones)
if z == 4:
result = reservaciones.sort_values(by="Habitacion", ascending=False)
w = validarInput('desea agregar un criterio mas?. si: 1. no: 2', [1,2])
if w == 1:
ordenarCriterio()
if w == 2 :
menu(clientes, reservaciones)
def ordenarRe(reservaciones=reservaciones):
z = validarInput('rango por fecha de reservacion(ascendente): 1. rango por Fecha de reservacion(descendente): 2\nrango por duracion de estadia(ascendente) 3. rango duracion de estadia(descendente): 4', [1,2,3,4])
if z == 1:
fechaI = input("ingrese una fecha inferior (formato yy-mm-dd): ")
fechaS = input("ingrese una superior inferior (formato yy-mm-dd): ")
filtracion = reservaciones[reservaciones["Fecha Reserva"].between(fechaI, fechaS)]
result = filtracion.sort_values(by="Precio", ascending=True, kind='mergesort')
print(result)
if z == 2:
fechaI = input("ingrese una fecha inferior (formato yy-mm-dd): ")
fechaS = input("ingrese una superior inferior (formato yy-mm-dd): ")
filtracion = reservaciones[reservaciones["Fecha Reserva"].between(fechaI, fechaS)]
result = filtracion.sort_values(by="Precio", ascending=False, kind='mergesort')
print(result)
if z == 3:
result = reservaciones.sort_values(by="Duracion Estadia", ascending=True, kind='heapsort')
print(result)
if z == 4:
result = reservaciones.sort_values(by="Duracion Estadia", ascending=True, kind='heapsort')
print(result)
menu(clientes, reservaciones)
def menu(clientes=clientes, reservaciones=reservaciones):
print()
print("Seleccione una opcion: ")
print()
x = validarInput("Para ver las reservaciones ingrese 1. para ingresar un nuevo registro ingrese 2. para elegir ordenar por algun criterio 3: ", [1,2,3])
if x == 1:
print(clientes.head())
print()
print(reservaciones.head())
print()
print(reservaciones.iloc[7:13])
y = validarInput("Si desea volver al menu ingrese 1. Si desea cerrar el programa presione 2: ", [1,2])
if y == 1:
menu(clientes, reservaciones)
if y == 2:
print('FIN')
if x == 2:
nuevosDatos(clientes, reservaciones)
y = validarInput("Si desea volver al menu ingrese 1. Si desea cerrar el programa presione 2: ", [1,2])
if y == 1:
menu(clientes, reservaciones)
if y == 2:
print('FIN')
if x == 3:
print()
y = validarInput('Si desea ordenar multiples criterios ingrese 1. Si desea ordenar por ascendencia o descendenia ingrese 2:', [1,2])
if y == 1:
ordenarCriterio()
if y == 2:
ordenarRe()
menu(clientes, reservaciones)