Este programa es un pequeño CRM de gestión de eventos y ventas, que administrar clientes, eventos y ventas desde consola, y almacena datos en ficheros CSV.
Hace funcionalidades como listar datos, dar de alta clientes, filtrar ventas por rango de fechas, mostrar estadísticas y exportar informes.
project/data/clientes.csveventos.csvventas.csvinforme.csv(se genera automáticamente)
clases.pyfunciones.pymenu.pymain.py
- Se ejecuta automáticamente al iniciar el programa.
- Lee los archivos CSV (
clientes.csv,eventos.csv,ventas.csv) y los guarda en diccionarios. - Si un archivo no existe, muestra un mensaje de error.
- Permite listar clientes, eventos o ventas. El usuario elige.
- Cada clase tiene su método
__str__()para mostrar la información formateada.
- Pide nombre y email por consola.
- Valida que no estén vacíos y que el email contenga “@” y “.”.
- Asigna un ID automático, buscando el primer libre.
- Guarda el cliente en el diccionario y lo añade al final del CSV (
clientes.csv).
- Pide las 2 fechas en formato
YYYY-MM-DD. - Muestra las ventas comprendidas entre las dos fechas.
- Valida el formato con
datetime.strptime.
Muestra por consola:
- Ingresos totales.
- Ingresos por evento.
- Categorías existentes.
- Días hasta el evento más próximo.
- Precio mínimo, máximo y medio de los eventos.
- Genera un archivo
data/informe.csvcon las estadísticas anteriores.
- Atributos:
id_cliente,nombre,email,fecha_alta. - Métodos:
__str__()→ muestra los datos formateados.antiguedad_dias()→ devuelve los días desde la fecha de alta.
- Atributos:
id_evento,nombre,categoria,fecha_evento,precio. - Métodos:
__str__()→ muestra los datos formateados.dias_hasta_evento()→ devuelve los días que faltan para el evento.
- Atributos:
id_venta,id_cliente,id_evento,fecha_venta,total. - Métodos:
__str__()→ muestra los datos formateados.
Ejecutar el programa desde la carpeta principal:
python main.py