MÓDULO VENTAS IMPLEMENTADO FUNCIONALIDADES - Listado y búsqueda por cliente, documento, comprobante, almacén y usuario. - Filtros por cliente, almacén, estado, estado de pago y rango de fechas. - Registro de ventas con múltiples productos. - Numeración automática por serie de comprobante. - Consulta de stock por almacén en el formulario. - Prevención de productos duplicados en el detalle. - Validación de stock tanto en interfaz como en servidor y base de datos. - Cálculo de subtotal, IGV y total. - Conservación del costo histórico mediante el trigger de detalle_ventas. - Descuento automático de inventario y registro de kardex. - Vista de detalle con total pagado y saldo. - Anulación controlada mediante sp_anular_venta. - Devolución automática de stock al anular. - Bloqueo de anulación cuando existen pagos registrados. - Registro de auditoría y protección CSRF. REUTILIZACIÓN Y LIMPIEZA - Las validaciones comunes de fecha-hora y decimales se centralizaron en Controller.php. - El módulo Compras fue adaptado para usar dichas validaciones compartidas. - Las búsquedas usan parámetros independientes para evitar SQLSTATE HY093. - Toda la operación de venta se ejecuta dentro de una transacción. BASE DE DATOS No es necesario importar un script adicional si ya se está utilizando la base db_ventas_v2_completa.sql incluida en el proyecto. PRUEBA RECOMENDADA 1. Ingresar como admin@sistema.com / password. 2. Seleccionar Ventas > Registrar venta. 3. Elegir un almacén y comprobar el stock mostrado. 4. Registrar una venta. 5. Revisar Inventario y Kardex. 6. Anular una venta sin pagos y comprobar la devolución del stock. VALIDACIÓN Todos los archivos PHP fueron revisados con php -l sin errores de sintaxis.