SistemaStock - Gestion de Autopartes

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

Resumen

Que hace

  • Busqueda por RUDAC y visualizacion formateada.
  • ABM (agregar/modificar/eliminar) con validaciones;
  • Tipos: Chapa, Caja de Cambio, Motor (con ano y patente para caja/motor).
  • Historial de acciones: usuario, fecha y hora de alta/modificacion/baja.
  • Hoja de envio: Domicilio o Transporte, con impresion.
  • Filtro por rack e impresion de listado para control fisico.

Para quien

  • Desarmaderos con RUDAC que requieren trazabilidad de piezas.
  • Equipos de deposito que controlan ubicacion y stock por rack.
  • Administracion que necesita auditoria 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).

Impresion

Generacion de listados (por rack) y hoja de envio 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 (exito/error).
  • Mensajes de exito: "Producto agregado con exito", "Modificado con exito", "Eliminado con exito".
  • Mensajes de error: conexion fallida, RUDAC duplicado/no encontrado, campos obligatorios faltantes.
  • Requeridos por tipo:
    - Chapa: tipoChapa obligatorio.
    - Caja/Motor: ano (> 1900) y patente alfanumerica.
  • Normalizacion de entradas: trim() + mayusculas para RUDAC y ubicacion (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, ubicacion, empresa, observaciones, etc.).

Agregar Producto

Tres subpestanas: Chapa, Caja de Cambio, Motor. Caja/Motor agregan ano 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, modificacion y baja.

Hoja de Envio

Dos subpaneles: Domicilio y Transporte. Datos especificos y area de notas -> imprimir.

Imprimir / Rack

Combo de racks disponibles -> listado de piezas en ese rack -> impresion para control fisico.

Retos & soluciones

Galeria

Resultados