Sistema informático programado en Python para utilizarse en el contexto de una farmacia.
FarmaNaccio integra gestión de usuarios, clientes, stock e inventario, y ventas, con una interfaz moderna desarrollada con CustomTkinter.
Este proyecto se ha realizado aplicando la metodología ágil "Programación Extrema" (XP) utilizando Trello.
-
Alumnos (Programadores):
- Matías Daniel Chiacchio
- Luis Ariel Espinoza
- Fabrizio Manuel Mansilla
-
Profesores:
- Cristian Fernando Cerquand
- Johanna Motta
-
Inicie XAMPP:
Antes de ejecutar el programa, abra XAMPP (o asegúrese de que el servicio MySQL esté activo). -
Ejecute la Aplicación:
Ejecuteprincipal.pydesde el directorio raíz del proyecto.
En la primera ejecución, se crean la base de datos y las tablas necesarias, y se realiza la migración del vademécum.
La Pantalla de Login es la puerta de entrada a FarmaNaccio:
-
Campos de Usuario y Contraseña:
Ingrese sus credenciales. Si se dejan campos vacíos, aparecerá una advertencia. -
Botón "Ingresar":
Valida las credenciales consultando la base de datos. -
Botón de Salida ("×"):
Ubicado en la esquina superior (ahora posicionado en la parte superior derecha conforme a los ajustes de estilo), permite cerrar la aplicación.
Tras un inicio de sesión exitoso se desplegará la Ventana Principal, la cual centraliza el acceso a los módulos del sistema:
-
Menú de Usuario:
- Muestra el usuario activo.
- Al hacer clic se despliega un menú con las opciones de agregar/administrar usuarios y cerrar sesión.
- El módulo de administración permite filtrar entre usuarios activos/inactivos y actualizar el rol al restaurar usuarios inactivos.
-
Acceso a Módulos:
En el área central se encuentran botones para:- Control de Stock
- Gestión de Ventas
- Gestión de Clientes
Permite administrar los usuarios del sistema:
- Seleccione "(+) Agregar usuario" desde el menú.
- Complete el formulario (Nombre de Usuario, Contraseña –con opción de mostrar/ocultar– y Rol).
- Pulse "Guardar".
Se valida que la contraseña tenga al menos 5 caracteres y que los campos obligatorios estén completos.
- Seleccione "Administrar usuarios" para ver la lista de usuarios en una tabla.
- Funciones adicionales:
- Filtrado por Estado: permite cambiar entre usuarios activos e inactivos.
- Modificar y Eliminar: Realice cambios en usuarios activos.
- Restaurar Usuario: Desde el listado de usuarios inactivos se puede restaurar a un usuario, actualizando también el rol según lo seleccionado en el combobox.
El módulo de clientes permite gestionar los datos de sus clientes.
- Acceda a través del botón "Gestión de Clientes".
- La pantalla muestra:
- Un campo de búsqueda para filtrar clientes por Nombre, Apellido o CUIL.
- Una tabla con clientes registrados (ID, Nombre, Apellido, CUIL, Teléfono, Email y Dirección).
- Seleccione un cliente para cargar sus datos.
- Use las opciones Modificar o Eliminar (previa confirmación) para actualizar los registros.
Permite el control y actualización del inventario:
- Abra la Ventana de Stock.
- Se muestra una tabla con productos, incluyendo ID, Nombre, Precio y Stock.
- Un campo de búsqueda permite filtrar productos.
- Para Agregar un producto, complete el formulario con Nombre, Precio y Stock.
- Si el producto existe, se suma la nueva cantidad al stock actual y se actualiza el precio (con diálogo de conflicto, si es necesario).
- Seleccione un producto y, tras una confirmación, elimínelo del inventario.
Este módulo abarca el proceso de venta completo, de la selección de productos a la generación de documentos.
- Desde el Panel de Productos, seleccione el producto deseado y ajuste la cantidad.
- Pulse "Agregar al Carrito" para incluirlo en la compra.
- En el Panel del Carrito se detalla el listado de productos (ID, Producto, Precio Unitario, Cantidad y Subtotal).
- Se ofrecen controles para modificar o eliminar productos del carrito, incluyendo la aplicación de descuentos.
- Al pulsar "Confirmar Venta", el sistema valida stock y actualiza la base de datos, descontando unidades de los lotes.
- Se genera una factura utilizando una plantilla DOCX (convertida a PDF para su descarga).
- Opcionalmente, si se configura la generación de remito, se genera y asocia a un cliente.
Importante:
Para la generación de facturas y remitos se requiere que el usuario tenga instalado Microsoft Word y que este se haya abierto recientemente, ya que la conversión de DOCX a PDF depende de la funcionalidad de Word.
-
Base de Datos:
Asegúrese de que MySQL (o XAMPP) esté en funcionamiento. -
Inicialización:
Ejecuteprincipal.pydesde el directorio raíz del proyecto.
En la primera ejecución se crearán la base de datos y las tablas, y se migrarán los registros del vademécum. -
Inicio de Sesión:
Inicie sesión con sus credenciales.
Los administradores tienen acceso a funcionalidades ampliadas (gestión de usuarios).
