def reservar(res): resp = "" if dni.get() != "" and matr.get() != "": resp = park_serv.depositar_vehiculo_abonado(dni.get().upper(), matr.get().upper(), lista_abonos, parking) res.set(resp) abon_serv.save_file(lista_abonos) park_serv.save_file(parking) else: res.set("Los campos debes estar rellenos")
def abandonar(res): resp = "" try: if plz.get() != "" and matr.get() != "" and pin.get() != "": resp = park_serv.retirar_vehiculo_abonado(matr.get().upper(), plz.get().upper(), lista_abonos, int(pin.get()), parking) res.set(resp) abon_serv.save_file(lista_abonos) park_serv.save_file(parking) else: res.set("Los campos debes estar rellenos") except ValueError: res.set("Solo se permiten números enteros para el pin.")
def abono(sol): if dni.get() != "" and nom.get() != "" and apl.get() != "" and taj.get() != "" and mail.get() != "" and matrc.get() != "": fecha = date() cliente = client() resl, new_abono, factura = abon_serv.crear_abono(parking, tip_abon.get(),tip_park.get(),fecha,cliente) abon_serv.anyadir_abono(lista_abonos, lista_facturas, new_abono, factura) abon_serv.save_file(lista_abonos) fact_serv.save_file(lista_facturas) park_serv.save_file(parking) sol.set(resl) abono = new_abono boton1 = tk.Button(frame_tick, text="Descargar información del abono", font=LARGE_FONT, command=lambda :infoAbon(abono)).pack(pady=20) else: sol.set("Todos los campos deben estar rellenos")
def retirar(): if plz.get() != "" and matr.get() != "" and pin.get() != "": plaza = park_serv.search_plaza_by_name(parking, plz.get().upper()) tick = tick_serv.search_by_matricula(lista_tickets, matr.get().upper()) if plaza != None and tick != None and dinero.get() >= 0: ok = tick_serv.pagar_ticket(plz.get().upper(),parking,tick, dinero.get()) if ok: park_serv.retirar_vehiculo(matr.get().upper(),plz.get().upper(),int(pin.get()),parking,lista_tickets) ticket = tick boton1 = tk.Button(frame_tick, text="Descargar ticket", font=LARGE_FONT, command=lambda :infoTick(ticket)).pack(pady=20) tick_serv.save_file(lista_tickets) park_serv.save_file(parking) else: ticketInf.set("La cantidad insertada no es suficiente")
def reservar(): res = "" tick = None if (v.get() == 1 or v.get() == 2 or v.get() == 3) and matr.get() != "": res, tick = park_serv.depositar_vehiculo(matr.get().upper(), v.get(), lista_tickets, parking) if tick != None: ticket = tick boton1 = tk.Button(frame_tick, text="Descargar ticket", font=LARGE_FONT, command=lambda: infoTick(ticket)).pack(pady=20) tick_serv.save_file(lista_tickets) park_serv.save_file(parking) else: ticketInf.set(res)
def crear_abono(parking, tipo_abo, tipo_plaza, fecha, cliente): sol = "" abono = None factura = None rest = park_serv.is_free_space(tipo_plaza, parking) if rest: plaza = park_serv.asignar_plaza(parking, tipo_plaza) plaza.reservado = True mes, precio = tipo_abono(tipo_abo) abono = Abono(cliente, fecha, (fecha + datedelta.datedelta(months=mes)), mes, precio) abono.plaza = plaza factura = Factura(datetime.now(), cliente, precio) #repo.add(listado_abonos, abono) #fact_serv.add(lista_facturas, factura) sol += f"Descarge el siguiente pdf para saber su plaza asignada y pin correspondiente\n" else: sol = "No es posible conceder el abono ya que no hay plazas disponibles en este momento." return sol, abono, factura
def pagar_ticket(nombre_plaza, parking, ticket, dinero): ok = False plaza = park_serv.search_plaza_by_name(parking, nombre_plaza) if (plaza != None): actual = datetime.now() min = (ceil((actual - ticket.fechaEntrada).total_seconds() / 60)) precio = min * plaza.coste if dinero >= precio: ok = True ticket.coste = precio ticket.cambio = round(dinero - precio, 2) return ok else: return ok
def calculo(pago, fail, precio_mostrar): if plz.get() != "" and matr.get() != "" and pin.get() != "": plaza = park_serv.search_plaza_by_name(parking, plz.get().upper()) tick = tick_serv.search_by_matricula(lista_tickets, matr.get().upper()) if plaza != None and tick != None and tick.pin == int(pin.get()): fail.set("") actual=datetime.now() min=(ceil((actual-tick.fechaEntrada).total_seconds()/60)) precio = min * plaza.coste precio_mostrar.set("El coste es:(€)\n"+str(round(precio,2))) else: fail.set("No se puede proceder con los datos aprotados, inténtelo de nuevo.") else: fail.set("No se puede proceder con los datos aprotados, inténtelo de nuevo.")
from tkinter import ttk from datetime import datetime from math import ceil from tkinter import messagebox import servicio.ParkingService as park_serv import servicio.AbonoService as abon_serv import servicio.ClienteService as clin_serv import servicio.TicketService as tick_serv import servicio.FacturaService as fact_serv from modelo.Parking import * from modelo.Cliente import * from modelo.Vehiculo import * lista_abonos = abon_serv.load_file() lista_tickets = tick_serv.load_file() lista_facturas = fact_serv.load_file() parking = park_serv.load_file() import os import servicio.AbonoService as serv_abo LARGE_FONT = ("Verdana", 10) NEGRITA = ("Verdana", 12, "bold") # Configuración de la raíz root = tk.Tk() root.geometry("900x800") def redirecc(root, nombre): root.destroy() os.system(f'python controlador/{nombre}.py')
from datetime import datetime from math import ceil from tkinter import messagebox import servicio.ParkingService as park_serv import servicio.AbonoService as abon_serv import servicio.ClienteService as clin_serv import servicio.TicketService as tick_serv import servicio.FacturaService as fact_serv from modelo.Parking import * from modelo.Cliente import * from modelo.Vehiculo import * lista_abonos = abon_serv.load_file() lista_tickets = tick_serv.load_file() lista_facturas = fact_serv.load_file() parking = park_serv.load_file() import os import servicio.AbonoService as serv_abo LARGE_FONT = ("Verdana", 10) NEGRITA = ("Verdana", 12, "bold") # Configuración de la raíz root = tk.Tk() root.geometry("900x800") def redirecc(root, nombre): root.destroy() os.system(f'python controlador/{nombre}.py')