Esempio n. 1
0
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")
Esempio n. 2
0
def calculo(err, sol):
    fecha1, fecha2, err = fechas(err)
    if not err:
        total, dinero = tick_serv.facturacion(lista_tickets, fecha1, fecha2)
        sol.set(
            f"Se han obtenido {dinero} €  entre las dos fechas por el cobro de {total} tichets"
        )
Esempio n. 3
0
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)
Esempio n. 4
0
def depositar_vehiculo(matricula, tipo, lista_tick, parking):
    result = False
    if is_free_space(tipo, parking):
        result = True
        plaza = asignar_plaza(parking, tipo)
        vehiculo = Vehiculo(matricula)
        plaza.vehiculo = vehiculo
        ticket = Ticket(datetime.now(), matricula, plaza)
        ticket.pin = random.randrange(100000, 1000000)
        serv_tick.add(lista_tick, ticket)
        plaza.ocupado = True
        #serv_tick.pintar_ticket(ticket)
        if result:
            res = "Se ha finalizado el aparcado el vehículo sin problemas."
            return res, ticket
    else:
        res = "No se puede aparcar, no hay sitio."
        return res, None
Esempio n. 5
0
def retirar_vehiculo(matricula, nombre_plaza, pin, parking, lista_tick):
    plaza = search_plaza_by_name(parking, nombre_plaza)
    if plaza != None:
        tick = serv_tick.search_by_matricula(lista_tick, matricula)
        if tick != None:
            if pin == tick.pin:
                tick.fechaSalida = datetime.now()
                plaza.ocupado = False
                plaza.vehiculo = None
                tick.plaza = plaza
Esempio n. 6
0
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.")
import tkinter as tk
from tkcalendar import *
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')