SistemaStock - Gestión de Autopartes

Desktop app en Java + SQL Server para administrar stock con control por RUDAC y rack, historial e impresión.

Resumen

Que hace

  • Búsqueda por RUDAC y visualización formateada.
  • ABM (agregar/modificar/eliminar) con validaciones;
  • Tipos: Chapa, Caja de Cambio, Motor (con año y patente para caja/motor).
  • Historial de acciones: usuario, fecha y hora de alta/modificación/baja.
  • Hoja de envío: Domicilio o Transporte, con impresión.
  • Filtro por rack e impresión de listado para control fisico.

Para quien

  • Desarmaderos con RUDAC que requieren trazabilidad de piezas.
  • Equipos de depósito que controlan ubicación y stock por rack.
  • Administración que necesita auditoría de usuarios y comprobantes impresos.

Arquitectura

UI: Java Swing (Eclipse + WindowBuilder). Persistencia: SQL Server 2021 via JDBC. Build: JDK 22 (compatible 17+).

Capas / Paquetes

 src/
    sistemastock.app
        |-- MainTest.java
        `-- VentanaSistema.java
    sistemastock.bd
        |-- BaseDeDatos.java
        `-- ConexionSQL.java
    sistemastock.enums
        |-- TipoChapa.java
        |-- TipoEmpresa.java
        `-- TipoEstado.java
    sistemastock.modelo
        |-- Producto.java (abstracta)
        |-- Chapa.java
        |-- CajaDeCambio.java
        `-- Motor.java
    sistemastock.sistema
        `-- SistemaStock.java
    sistemastock.usuario
        |-- Usuario.java
        `-- Modificacion.java

Conexion

JDBC con cadena segura y trustServerCertificate para entorno LAN. Uso de PreparedStatement en todas las operaciones (evita inyeccion y normaliza parametros).

Impresión

Generacion de listados (por rack) y hoja de envío con maquetado consistente. Utilidad crearLinea() para alinear etiqueta/valor y JTextArea.print() para mandar a impresora.

Validaciones y mensajes (Java)

  • try/catch en altas, ediciones y bajas: captura SQLException y muestra mensajes claros (éxito/error).
  • Mensajes de éxito: "Producto agregado con éxito", "Modificado con éxito", "Eliminado con éxito".
  • Mensajes de error: conexion fallida, RUDAC duplicado/no encontrado, campos obligatorios faltantes.
  • Requeridos por tipo:
    - Chapa: tipoChapa obligatorio.
    - Caja/Motor: año (> 1900) y patente alfanumerica.
  • Normalización de entradas: trim() + mayusculas para RUDAC y ubicación (usa UPPER/LTRIM/RTRIM en SQL).
  • Prevencion de duplicados al agregar: se consulta RUDAC previo a INSERT; si existe, se avisa al usuario.

Modulos

Buscar Producto

Ingreso de RUDAC y render legible de todos los campos (estado, ubicación, empresa, observaciones, etc.).

Agregar Producto

Tres subpestanas: Chapa, Caja de Cambio, Motor. Caja/Motor agregan año y patente. Publicado en ML: Si/No.

Modificar / Eliminar

Busca por RUDAC, trae datos precargados y permite actualizar o eliminar.

Historial

Bitacora por usuario con fecha y hora: alta, modificación y baja.

Hoja de Envío

Dos subpaneles: Domicilio y Transporte. Datos específicos y área de notas -> imprimir.

Imprimir / Rack

Combo de racks disponibles -> listado de piezas en ese rack -> impresión para control fisico.

Retos & soluciones

Galería

Resultados