Exemplo n.º 1
0
    def vent_cancelar_reserva(self):
        '''Función que cancela una reserva'''
        self.root4 = instancias.MiToplevel()
        self.root4.geometry("640x360+400+200")
        self.root4.configure(bg='white')
        self.root4.resizable(width=False, height=False)

        def cancelar():
            try:
                cedula = int(txt_ced.get())
                if os.path.isfile(
                        str(cedula) + '.data'
                ):  # busca en el directorio Persistencia la reserva hecha
                    if askyesno('Confirmación',
                                '¿Está seguro que desea cancelar su reserva?'):
                        os.remove(str(cedula) + '.data')  # eliminar el archivo
                        showinfo('Mensaje', 'Ha eliminado su reserva')
                else:
                    showerror('Mensaje', 'No se ha encontrado su reserva')
            except ValueError:
                showerror('Mensaje', 'Valor incorrecto')

        img_avion = PhotoImage(file='avion_ver.gif')
        lb_avion = instancias.MiLabel(self.root4, image=img_avion, fg='blue')
        lb_avion.place(x=0, y=50)
        lbl_cedula = instancias.MiLabel(self.root4,
                                        text='Cédula',
                                        font=('sawasdee', 15, 'bold'),
                                        bg='white')
        lbl_cedula.place(x=340, y=100)
        txt_ced = instancias.MiStringVar()
        entrada_cedula = instancias.MiEntry(self.root4,
                                            textvariable=txt_ced,
                                            show='*')
        entrada_cedula.place(x=415, y=109)
        btb_cancelar = instancias.MiBoton(self.root4,
                                          text='Cancelar Reserva',
                                          relief='flat',
                                          font='sawasdee',
                                          highlightbackground='blue',
                                          command=cancelar,
                                          width=15)
        btb_cancelar.place(x=417, y=140)
        self.root4.transient(root)
        self.root4.mainloop()
Exemplo n.º 2
0
    def ver_reserva(self):
        '''Muestra la reserva hecha'''
        self.root5 = instancias.MiToplevel()
        self.root5.geometry("600x360+400+200")
        self.root5.resizable(width=False, height=False)
        self.root5.configure(bg='white')
        img_avion = PhotoImage(file='avion_ver.gif')
        lb_avion = instancias.MiLabel(self.root5, image=img_avion, fg='blue')
        lb_avion.place(x=0, y=50)
        lbl_cedula = instancias.MiLabel(self.root5,
                                        text='Cédula',
                                        font=('sawasdee', 15, 'bold'),
                                        bg='white')
        lbl_cedula.place(x=340, y=100)

        def ver():
            try:
                cedula = int(txt_ced.get())
                if os.path.isfile(
                        str(cedula) + '.data'
                ):  # busca en el directorio Persistencia la reserva hecha
                    showinfo('Reserva',
                             persistencia.PersistenciaP.load(
                                 str(cedula)))  #muestra en pantalla
                else:
                    showerror('Mensaje', 'No se ha encontrado su reserva')
            except ValueError:
                showerror('Mensaje', 'Valor incorrecto')

        btb_cancelar = instancias.MiBoton(self.root5,
                                          text='Ver Reserva',
                                          relief='flat',
                                          font='sawasdee',
                                          highlightbackground='blue',
                                          command=ver,
                                          width=15)
        btb_cancelar.place(x=417, y=140)

        txt_ced = instancias.MiStringVar()
        entrada_cedula = instancias.MiEntry(self.root5,
                                            textvariable=txt_ced,
                                            show='*')
        entrada_cedula.place(x=415, y=109)
        self.root5.transient(root)
        self.root5.mainloop()
Exemplo n.º 3
0
    def mostrar_horarios(self):
        funcion_d = func.FuncionesGui()  #funcion deshabilitar
        funcion_d.deshabilitar_boton(self.btn_siguiente3)
        self.vuelo = None
        self.root2 = instancias.MiToplevel()
        self.root2.geometry("640x360+400+200")
        img2 = PhotoImage(file="vuelo.gif")
        widget2 = instancias.MiLabel(self.root2, image=img2)
        widget2.place(x=-130, y=-200)

        lbl_titulo = instancias.MiLabel(self.root2,
                                        text='HORARIOS',
                                        font=('bold', 14))
        lbl_titulo.pack()

        texto = 'Para seleccionar el horario fíjese en el estado del vuelo'
        lbl_sub_titulo = instancias.MiLabel(self.root2, text=texto)
        lbl_sub_titulo.pack()

        lbl_codigo = instancias.MiLabel(self.root2,
                                        text='Código',
                                        fg='blue',
                                        font=('Arial', 13))
        lbl_codigo.place(x=40, y=54)

        lbl_transporte = instancias.MiLabel(self.root2,
                                            text='Transporte',
                                            fg='blue',
                                            font=('Arial', 13))
        lbl_transporte.place(x=165, y=54)

        lbl_horario = instancias.MiLabel(self.root2,
                                         text='Horario',
                                         fg='blue',
                                         font=('Arial', 13))
        lbl_horario.place(x=295, y=54)

        lbl_fecha = instancias.MiLabel(self.root2,
                                       text='Fecha',
                                       fg='blue',
                                       font=('Arial', 13))
        lbl_fecha.place(x=425, y=54)

        lbl_estado = instancias.MiLabel(self.root2,
                                        text='Estado',
                                        fg='blue',
                                        font=('Arial', 13))
        lbl_estado.place(x=550, y=54)

        self.btn_reservar = instancias.MiBoton(
            self.root2,
            text='Reservar',
            cursor='hand2',
            state='disabled',
            command=self.reservar)  # funcion impl
        self.btn_reservar.place(x=280, y=320)

        y_estado = 80  # eje y
        conta = 1  # contador num vuelo
        controlador_v = controlar_vuelo.ControlarVuelo()

        for vuelo in self.lugar.cant_vuelos:
            ahora = datetime.now()
            hora_actual = time(ahora.hour, ahora.minute, ahora.second)
            controlador_v.controlar_partida(hora_actual, vuelo)
            muestra_vuelo = instancias.MiLabel(self.root2, text=str(vuelo))
            muestra_vuelo.place(x=40, y=y_estado)
            muestra_nro_vuelo = instancias.MiLabel(self.root2,
                                                   text=str(conta),
                                                   fg='blue')
            muestra_nro_vuelo.place(x=15, y=y_estado)
            y_estado = y_estado + 30
            conta += 1

        lbl_selec = instancias.MiLabel(self.root2,
                                       text='Ingrese el número de vuelo (1-7)')
        lbl_selec.place(x=15, y=300)

        btn_ayuda = instancias.MiBoton(self.root2,
                                       text='info',
                                       bitmap='info',
                                       command=self.mostrar_info)
        btn_ayuda.place(x=240, y=296)
        self.fecha = instancias.MiStringVar()
        self.cuadro_selec = Entry(self.root2, textvariable=self.fecha, width=2)
        self.cuadro_selec.place(x=217, y=299)
        self.cuadro_selec.bind('<Return>', self.al_presionar_enter)

        self.root2.transient(self.root7)
        self.root2.mainloop()
Exemplo n.º 4
0
    def crear_vuelo(self):
        '''Funcion que muestra los paises'''
        funcion_vc = func.FuncionesGui()  #se crea una funcion
        funcion_vc.deshabilitar_boton(self.btn_siguiente2)
        self.root7 = instancias.MiToplevel()
        self.root7.geometry("600x370+400+200")
        self.root7.configure(bg='white')

        lb_titulo = instancias.MiLabel(self.root7,
                                       text='VUELOS Y CABINAS',
                                       font=('sawasdee', 14, 'bold'),
                                       bg='white',
                                       fg='blue')
        lb_titulo.pack()

        texto = 'Paso 3. Seleccione el lugar en donde quiere viajar. Para cada lugar se ' \
                'mostrarán los diferentes\nprecios que corresponden a cada cabina.'
        lb_info = instancias.MiLabel(self.root7,
                                     text=texto,
                                     justify=LEFT,
                                     bg='white')
        lb_info.place(x=15, y=35)

        self.p = StringVar()
        self.paises = Spinbox(self.root7,
                              values=('Buenos Aires', 'Bogotá', 'Cancún',
                                      'Miami', 'Rio de Janeiro', 'La Paz',
                                      'Guayaquil', 'Madrid', 'Montevideo',
                                      'Punta Cana', 'Paris', 'Lima'),
                              textvariable=self.p,
                              command=self.reservar_lugar,
                              bg='white',
                              fg='blue',
                              font=('sawasdee', 13))
        self.paises.place(x=80, y=100)

        self.img_paises = PhotoImage(file='paises.gif')
        self.lb_paises = instancias.MiLabel(self.root7,
                                            image=self.img_paises,
                                            bg='white')
        self.lb_paises.place(x=305, y=75)

        self.rdb_cabina_especial = instancias.MiRadioButton(
            self.root7,
            text="Especial",
            state='disabled',
            bg='white',
            highlightbackground='white',
            font=('sawasdee', 14),
            value=1,
            command=self.instanciar_cabina_especial)
        self.rdb_cabina_especial.place(x=80, y=150)

        self.rdb_cabina_intermedia = instancias.MiRadioButton(
            self.root7,
            text="Intermedia",
            state='disabled',
            bg='white',
            highlightbackground='white',
            font=('sawasdee', 14),
            value=2,
            command=self.instanciar_cabina_intermedia)
        self.rdb_cabina_intermedia.place(x=80, y=180)

        self.rdb_cabina_economica = instancias.MiRadioButton(
            self.root7,
            text="Económica",
            state='disabled',
            bg='white',
            highlightbackground='white',
            font=('sawasdee', 14),
            value=3,
            command=self.instanciar_cabina_economica)
        self.rdb_cabina_economica.place(x=80, y=205)

        lbl_precio = instancias.MiLabel(self.root7,
                                        text='Precio en US$',
                                        bg='white',
                                        font=('sawasdee', 14))
        lbl_precio.place(x=77, y=250)

        self.lbl_monto = instancias.MiLabel(self.root7,
                                            font=('sawasdee', 14),
                                            bg='white')
        self.lbl_monto.place(x=210, y=251)

        self.btn_siguiente3 = instancias.MiBoton(self.root7,
                                                 text='Siguiente',
                                                 relief=FLAT,
                                                 fg='blue',
                                                 state='disabled',
                                                 command=self.mostrar_horarios,
                                                 font=('sawasdee', 14))
        self.btn_siguiente3.place(x=250, y=320)

        self.root7.transient(self.root6)
        self.root7.mainloop()
Exemplo n.º 5
0
    def crear_cant_pasajero(self):
        '''Funcion que muestra la cantidad de pasajeros a seleccionar'''
        funcion_c = func.FuncionesGui()  #se crea un objeto funcion
        funcion_c.deshabilitar_boton(self.btn_siguiente1)
        self.root6 = instancias.MiToplevel()
        self.root6.geometry("600x370+400+200")
        self.root6.configure(bg='white')

        lb_titulo = instancias.MiLabel(self.root6,
                                       text='CANTIDAD DE PASAJEROS',
                                       font=('sawasdee', 14, 'bold'),
                                       bg='white',
                                       fg='blue')
        lb_titulo.pack()

        self.img_cant = PhotoImage(file='pasajero.gif')
        self.lb_imagen_pasajero = instancias.MiLabel(self.root6,
                                                     image=self.img_cant,
                                                     bg='white')
        self.lb_imagen_pasajero.place(x=310, y=105)

        texto = 'Paso 2. Seleccione la cantidad de pasajero. La cantidad máxima de boletas que\n' \
                'puede reservar es nueve.'
        lb_info = instancias.MiLabel(self.root6, text=texto)
        lb_info.place(x=53, y=40)

        lb_adultos = instancias.MiLabel(self.root6,
                                        text="Adultos",
                                        bg='white',
                                        font=('sawasdee', 14, 'bold'))
        lb_adultos.place(x=150, y=120)
        lb_niños = instancias.MiLabel(self.root6,
                                      text="Niños",
                                      bg='white',
                                      font=('sawasdee', 14, 'bold'))
        lb_niños.place(x=150, y=170)
        lb_bebes = instancias.MiLabel(self.root6,
                                      text="Bebes",
                                      bg='white',
                                      font=('sawasdee', 14, 'bold'))
        lb_bebes.place(x=150, y=220)

        self.c_adultos = instancias.MiStringVar()
        self.spin_adulto = Spinbox(self.root6,
                                   from_=1,
                                   to=9,
                                   width=2,
                                   textvariable=self.c_adultos)
        self.spin_adulto.place(x=250, y=130)

        self.c_niños = instancias.MiStringVar()
        self.spin_niño = Spinbox(self.root6,
                                 from_=0,
                                 to=9,
                                 width=2,
                                 textvariable=self.c_niños)
        self.spin_niño.place(x=250, y=180)

        self.c_bebes = instancias.MiStringVar()
        self.spin_bebes = Spinbox(self.root6,
                                  from_=0,
                                  to=9,
                                  width=2,
                                  textvariable=self.c_bebes)
        self.spin_bebes.place(x=250, y=230)

        self.btn_verificar = instancias.MiBoton(
            self.root6,
            text='Verificar',
            relief=FLAT,
            font='sawasdee',
            highlightbackground='blue',
            command=self.verificar_cantidad_pasajero)
        self.btn_verificar.place(x=340, y=295)

        self.btn_siguiente2 = instancias.MiBoton(self.root6,
                                                 text='Siguiente',
                                                 relief=FLAT,
                                                 font='sawasdee',
                                                 highlightbackground='blue',
                                                 state='disabled',
                                                 command=self.crear_vuelo)
        self.btn_siguiente2.place(x=445, y=295)

        #la ventana root6 es ventana hija de root3
        self.root6.transient(self.root3)
        self.root6.mainloop()
Exemplo n.º 6
0
    def crear_pasajero(self):
        self.root3 = instancias.MiToplevel(
        )  #se crea otra ventana para reservas
        self.root3.geometry("600x370+400+200")
        self.root3.configure(bg='white')
        self.img = PhotoImage(file='atencion.gif')
        self.lb_imagen = instancias.MiLabel(self.root3,
                                            image=self.img,
                                            bg='white')
        self.lb_imagen.place(x=383, y=110)
        self.titulo = instancias.MiLabel(self.root3,
                                         text='BIENVENIDO A RESERVAS ONLINE',
                                         font=('sawasdee', 14, 'bold'),
                                         bg='white',
                                         fg='blue')
        self.titulo.pack()

        self.texto = 'Paso 1. Llene los campos con sus datos personales, su fecha nacimiento debe estar en' \
                ' formato\ndd/mm/aaaa. Una vez verificado sus datos, diríjase al paso 2 que le indicará' \
                ' el sistema.'
        self.lb_info = instancias.MiLabel(self.root3, text=self.texto)
        self.lb_info.place(x=12, y=40)

        #se crea un label nombre y un cuadro texto
        self.nombre = instancias.MiStringVar()
        lbl_nombre = instancias.MiLabel(self.root3,
                                        text="Nombre:",
                                        font=('sawasdee', 12, 'bold'),
                                        bg='white').place(x=15, y=90)
        self.txtNombre = Entry(self.root3, textvariable=self.nombre)
        self.txtNombre.place(x=175, y=96)

        #se crea un label apellido y un cuadro de texto
        self.apellido = instancias.MiStringVar()
        lbl_apellido = instancias.MiLabel(self.root3,
                                          text="Apellido:",
                                          font=('sawasdee', 12, 'bold'),
                                          bg='white').place(x=15, y=115)
        self.txtApellido = Entry(self.root3, textvariable=self.apellido)
        self.txtApellido.place(x=175, y=121)

        #se crea un label cédula y un cuadro de texto
        self.cedula = instancias.MiStringVar()
        cedula = instancias.MiLabel(self.root3,
                                    text="Cédula:",
                                    font=('sawasdee', 12, 'bold'),
                                    bg='white').place(x=15, y=140)
        self.txtCedula = Entry(self.root3, textvariable=self.cedula)
        self.txtCedula.place(x=175, y=146)

        #se crea un label fecha de nacimiento y un cuadro de texto
        self.fecha_nacimiento = instancias.MiStringVar()
        fecha_nacimiento = instancias.MiLabel(self.root3,
                                              text="Fecha de nacimiento:",
                                              font=('sawasdee', 12, 'bold'),
                                              bg='white').place(x=15, y=165)
        self.txtFecha = Entry(self.root3, textvariable=self.fecha_nacimiento)
        self.txtFecha.place(x=175, y=171)

        #se crea un label contacto y un cuadro de texto
        self.contacto = instancias.MiStringVar()
        self.contacto.set('595')
        contacto = instancias.MiLabel(self.root3,
                                      text="Contacto:",
                                      font=('sawasdee', 12, 'bold'),
                                      bg='white').place(x=15, y=190)
        self.txtContacto = Entry(self.root3, textvariable=self.contacto)
        self.txtContacto.place(x=175, y=196)

        #se crea un label correo y un cuadro de texto
        self.correo = instancias.MiStringVar()
        correo = instancias.MiLabel(self.root3,
                                    text="Correo:",
                                    font=('sawasdee', 12, 'bold'),
                                    bg='white').place(x=15, y=215)
        self.txtCorreo = Entry(self.root3, textvariable=self.correo)
        self.txtCorreo.place(x=175, y=221)

        #se crea un label dirección y un cuadro de texto
        self.direccion = instancias.MiStringVar()
        direccion = instancias.MiLabel(self.root3,
                                       text="Dirección:",
                                       font=('sawasdee', 12, 'bold'),
                                       bg='white').place(x=15, y=240)
        self.txtDireccion = Entry(self.root3, textvariable=self.direccion)
        self.txtDireccion.place(x=175, y=246)

        #se crea un label nacionalidad y un cuadro de texto
        self.nacionalidad = instancias.MiStringVar()
        nacionalidad = instancias.MiLabel(self.root3,
                                          text="Nacionalidad:",
                                          font=('sawasdee', 12, 'bold'),
                                          bg='white').place(x=15, y=265)
        self.txtNacionalidad = Entry(self.root3,
                                     textvariable=self.nacionalidad)
        self.txtNacionalidad.place(x=175, y=271)

        #boton que verifica si los datos ingresados son correctos.
        self.btn_verificar = instancias.MiBoton(
            self.root3,
            text='Verificar datos',
            relief=FLAT,
            font='sawasdee',
            highlightbackground='blue',
            command=self.instanciar_pasajero)
        self.btn_verificar.place(x=193, y=310)

        #boton que se habilita cuando los datos esten correctos y se pasa a la sigte ventana
        self.btn_siguiente1 = instancias.MiBoton(
            self.root3,
            text='Siguiente',
            relief=FLAT,
            font='sawasdee',
            highlightbackground='blue',
            state='disabled',
            command=self.crear_cant_pasajero)
        self.btn_siguiente1.place(x=425, y=310)

        #root3 es una ventana hija de la ventana root
        self.root3.transient(root)
        self.root3.mainloop()