Files
hotel-hacienda/CHANGELOG.md
Consultoria AS 9fa6561659 docs: actualizar documentacion con cambios recientes
- Flujo de inventario corregido
- Ordenamiento de report_inventoryv2
- Historial de posicion/area en contratos
- CHANGELOG actualizado a version 1.0.1
2026-07-28 06:21:07 -07:00

4.9 KiB

📜 Changelog — Sistema de Gestión Hotelera Hacienda San Angel

Formato basado en Keep a Changelog.


[1.0.0] - 2026-06-09

Agregado

  • Documentación técnica completa del sistema (DOCUMENTACION_TECNICA.md).
  • README principal con guía de instalación y arquitectura.
  • Documentación extendida en carpeta docs/:
    • BACKEND.md — Guía detallada de la API Node.js/Express.
    • FRONTEND.md — Guía del SPA React + Vite.
    • DATABASE.md — Documentación de funciones SQL de PostgreSQL.
    • API.md — Referencia completa de endpoints REST.
    • DEPLOYMENT.md — Guía de despliegue en producción.
    • TROUBLESHOOTING.md — Solución de problemas comunes.
  • Commit de consolidación con todo el código base del proyecto.
  • Repositorio migrado a Gitea (https://git.consultoria-as.com).

Notas Técnicas

  • El proyecto utiliza arquitectura "Database-First" donde la lógica de negocio reside en funciones SQL de PostgreSQL.
  • Backend: Node.js + Express 5 + pg (sin ORM).
  • Frontend: React 19 + Vite + React Router DOM 7.
  • Integraciones: Stripe, Banxico, API de Facturas (México), Nodemailer.

[Pre-1.0] — Historial de Desarrollo

Funcionalidades Implementadas

Autenticación

  • Login con validación mediante función SQL validarusuario().
  • Recuperación de contraseña con generación aleatoria y envío por correo.
  • Creación de usuarios con roles numéricos.

Nómina (Payroll)

  • CRUD de empleados con RFC, NSS, CURP, contactos de emergencia.
  • Gestión de contratos laborales con fechas de vencimiento.
  • Catálogos: puestos, áreas, grados de estudio, parentescos.
  • Reporte de asistencia.

Gastos (Expenses)

  • Creación de gastos con productos asociados (JSONB).
  • Flujo de aprobación: Pendiente → Aprobado → Rechazado.
  • Flujo de pago con estados separados de aprobación.
  • Gastos mensuales recurrentes.
  • Reportes de gastos y pagos.

Inventario

  • Catálogo de productos con categorías, tipos, proveedores.
  • Entradas de compra (purchaseentry) con recepción física.
  • Ajustes de stock masivos via JSONB.
  • Consumos de inventario por empleado.
  • Descarte de productos con motivo.
  • Reporte de movimientos de inventario.

Ingresos

  • Carga masiva desde Little Hotelier (CSV/XLSX).
  • Sincronización de facturas electrónicas via API externa.
  • Integración con Stripe para transfers.
  • Ingresos manuales (Horux) con categorías.
  • Reportes P&L para Hotel y Restaurante.

Configuraciones

  • Gestión de habitaciones y propiedades.
  • Catálogos maestros: monedas, unidades, categorías de gasto, recurrencias.

Emails Programáticos

  • Envío controlado de emails (1x/mes) para:
    • Contratos por vencer
    • Pagos atrasados
    • Gastos próximos a fecha límite
    • Cumpleaños de empleados
    • Contratos vencidos

Problemas Conocidos (Deuda Técnica)

Críticos

  • Sin autenticación JWT ni middleware de autorización en el backend.
  • Ruta malformada: updatesupplier/:id falta / inicial.
  • useAuth no exportado desde AuthContext.jsx.
  • URLs hardcodeadas a localhost en varios servicios del frontend.

Medios

  • Sin ProtectedRoute activo en App.jsx.
  • Mezcla inconsistente de fetch y axios.
  • Código comentado masivo en varios archivos.
  • multer incluido en dependencias del frontend (es un middleware de Node.js).
  • Sin tests unitarios ni e2e.

Leves

  • Tailwind CSS instalado pero usado esporádicamente junto con Bootstrap y CSS puro.
  • Sin manejo de estado de servidor (TanStack Query/SWR).
  • Sin TypeScript.

Para ver el historial completo de commits, ejecutar: git log --oneline --all --graph


[1.0.1] - 2026-06-25

Corregido

  • Flujo de inventario: Eliminada la duplicación de stock al pagar un expense. Ahora purchaseentry() es la única función que ingresa stock físicamente, y setpaymentstatusv2() revierte el stock al cancelar/rechazar el pago.
  • Ordenamiento del Inventory Report: La función report_inventoryv2() ahora ordena por id_product + id_sto_mov secuencial, eliminando el ordenamiento intermedio por fecha.
  • Historial de posición/área en contratos: La tabla contracts ahora incluye las columnas id_position e id_area. Las funciones getcontracts(), newcontract(), updatecontract() y reportemployeecontract() fueron actualizadas para usar estos valores históricos en lugar de la posición/área actual del empleado.

Scripts SQL agregados

  • scripts_sql/fix_inventory_flow_complete.sql y rollback_inventory_flow_complete.sql
  • scripts_sql/fix_report_inventoryv2_orderby.sql y rollback_report_inventoryv2_orderby.sql
  • scripts_sql/fix_contracts_position_area.sql y rollback_contracts_position_area.sql
  • scripts_sql/emergency_rollback_inventory.sh
  • scripts_sql/README_INVENTORY_FIX.md

Documentación

  • Actualizado docs/DATABASE.md.
  • Actualizado DOCUMENTACION_TECNICA.md.