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.")
示例#3
0
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")
示例#4
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")
示例#5
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)
示例#6
0
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
示例#7
0
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
示例#8
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.")
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 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')

示例#11
0
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')