Jinventio es un Sistema o Aplicación de Escritorio donde puedes llevar el control de tu Inventario y Ventas desarrollado con NetBeans, Java y MySQL.
El programa Jinventio lo puedes importar al NetBeans y modificarlo de acuerdo a tus necesidades.

Video demostrativo
Requisitos
- NetBeans IDE
- Java 21, Swing (interfaz construida con el GUI Builder de NetBeans, Matisse)
- MySQL vía JDBC plano (mysql-connector-j)
- Apache PDFBox para la generación de tickets de venta y compra en PDF
- Maven
Componentes
Los componentes con los que cuenta el sistema Jinventio son los siguientes:
- Búsqueda de productos en vivo: filtra por código de barras o nombre conforme escribes
- Carrito de venta/compra: doble clic en un producto lo agrega, si ya está incrementa la cantidad; cantidad editable con recálculo automático de subtotal y total
- Modo Venta / Modo Compra: la misma ventana principal cambia de comportamiento según el ítem de menú seleccionado (itemVenta / itemCompra)
- Selector de Cliente o Proveedor: muestra Clientes en modo Venta o Proveedores en modo Compra
- Cobro: valida que el efectivo cubra el total y que haya existencia suficiente de cada producto antes de registrar la operación
- Descargar ticket en PDF: al cobrar una venta o registrar una compra, genera y descarga el ticket correspondiente en formato PDF
- Quitar del carrito: clic derecho sobre una línea para eliminarla
- Ventana de Catálogo: administración de Categorías, Productos, Clientes y Proveedores en una sola ventana, con menú lateral, formulario dinámico y tabla con edición por doble clic y borrado por clic derecho
- Ver Ventas / Ver Compras: listado con fecha, cliente o proveedor, total y efectivo
- Ver Inventario: listado de productos con existencia calculada e inventario mínimo configurado
Archivos del Proyecto
Aquí te explico lo que hace cada archivo del proyecto.
| Archivo | Qué hace |
|---|---|
MainJFrame.java | Ventana principal: punto de venta/compra (búsqueda, carrito, cobro con validación de efectivo y existencia) y menú de acceso al resto de ventanas. |
TicketGenerator.java | Genera y descarga el PDF del ticket de venta o compra con PDFBox. |
catalogFrame.java | Administración de Categorías, Productos, Clientes y Proveedores en una sola ventana con formulario dinámico. |
sellsFrame.java | Listado de ventas o compras según el operation_type_id recibido en el constructor. |
inventoryFrame.java | Listado de productos con existencia calculada e inventario mínimo. |
DBConnection.java | Abre conexiones JDBC a MySQL leyendo db.properties del classpath. |
Category.java | Modelo de la tabla category. |
CategoryDAO.java | CRUD de category. |
Product.java | Modelo de la tabla product. |
ProductDAO.java | CRUD de product, findByBarcode, findActive, findByCategory. |
Person.java | Modelo de la tabla person (clientes y proveedores). |
PersonDAO.java | CRUD de person, findByKind. |
PersonKind.java | Enum del campo kind de person: CLIENT(1), PROVIDER(2). |
OperationType.java | Modelo de operation_type y constantes ENTRADA(1)/SALIDA(2). |
OperationTypeDAO.java | Lectura de operation_type (findById, findAll). |
Box.java | Modelo de la tabla box. |
BoxDAO.java | Alta y lectura de box. |
Sell.java | Modelo de la tabla sell (cabecera de venta o compra). |
SellDAO.java | CRUD de sell, findByPerson, findByOperationType, y createWithDetails (venta/compra + líneas de operation en una transacción). |
Operation.java | Modelo de la tabla operation (línea de entrada/salida de inventario). |
OperationDAO.java | CRUD de operation, findByProduct, findBySell, currentStock (existencia = entradas − salidas). |
Base de datos
El esquema de la base de datos se encuentra en jinventio/schema.sql. Contiene las tablas necesarias para el registro de inventario, ventas y compras: category, product, person (clientes/proveedores, con el campo kind), operation_type (1=entrada, 2=salida), box, sell y operation.
boxcategoryoperationoperation_typepersonproductsell
Descargar
A continuación los enlaces de descarga y del proyecto Jinventio en GitHub.
Para ejecutar el proyecto debes realizar lo siguiente:
- Descargar el proyecto
- Importarlo desde el NetBeans
- Instalar la base de datos en MySQL
- Modificar el archivo
src/main/resources/db.propertiescon tu host/usuario/contraseña de MySQL - Ejecutar el proyecto en NetBeans
Más Recursos
- Guia de Desarrollo en Java y NetBeans
- JKonta: Sistema de Control de Ingresos y Gastos con NetBeans, Java y MySQL
- Ejemplo de Patrón DAO CRUD Completo Java y MySQL
- Conectar Java y Sqlite en Netbeans
- Llenar datos manualmente en un JTable en Java MySQl y NetBeans
- Usar el componente jCombobox en Java Swing y NetBeans
- Usar Menu Bar, Menu y Menu Item en Java