- Flujo de inventario corregido - Ordenamiento de report_inventoryv2 - Historial de posicion/area en contratos - CHANGELOG actualizado a version 1.0.1
124 lines
4.9 KiB
Markdown
124 lines
4.9 KiB
Markdown
# 📜 Changelog — Sistema de Gestión Hotelera Hacienda San Angel
|
|
|
|
> Formato basado en [Keep a Changelog](https://keepachangelog.com/es-ES/1.0.0/).
|
|
|
|
---
|
|
|
|
## [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`.
|