Plan de Implementación del Sistema de Gestión de Pagos
Versión 1.0 - Preparado por: Desarrollo AI
El presente documento detalla el plan técnico para la **estructuración y ejecución** de un sistema integral de gestión de pagos. El objetivo es proporcionar un control completo sobre las transacciones financieras de los alumnos, soportar múltiples métodos de pago, automatizar notificaciones y generar reportes para la toma de decisiones.
Este plan está diseñado para ser implementado por un desarrollador y se divide en cuatro fases críticas: **1. Base de Datos**, **2. Lógica de Backend**, **3. Interfaz de Frontend** y **4. Flujo de Ejecución y Pruebas**.
1.1. Modificación de Tablas Existentes
Se requiere añadir una columna a la tabla `inscripciones_curso` para vincularla con un posible descuento o beca aplicada.
-- Modificación a la tabla de inscripciones para soportar descuentos
ALTER TABLE `inscripciones_curso`
ADD COLUMN `descuento_aplicado_id` INT(11) NULL DEFAULT NULL COMMENT 'FK a la tabla descuentos' AFTER `estado`,
ADD INDEX `idx_descuento_aplicado` (`descuento_aplicado_id`);
1.2. Creación de Nuevas Tablas
Se crearán 3 nuevas tablas para gestionar los pagos, las cuotas y los códigos de descuento de manera normalizada y escalable.
Centralizará cada transacción individual, sea manual o automática.
CREATE TABLE `pagos` (
`id` INT NOT NULL AUTO_INCREMENT,
`inscripcion_id` INT NOT NULL COMMENT 'Vincula al alumno y curso en la tabla inscripciones_curso',
`monto_pagado` DECIMAL(10,2) NOT NULL,
`fecha_pago` DATETIME NOT NULL,
`metodo_pago` ENUM('transferencia', 'deposito', 'mercadopago', 'webpay', 'manual_admin', 'otro') NOT NULL,
`estado` ENUM('pendiente_verificacion', 'confirmado', 'rechazado', 'anulado') NOT NULL COMMENT 'Anulado es para el borrado lógico',
`id_transaccion_externa` VARCHAR(255) NULL COMMENT 'Para ID de Webpay, MercadoPago, etc.',
`url_comprobante_alumno` VARCHAR(255) NULL COMMENT 'Ruta al archivo subido por el alumno',
`observaciones_admin` TEXT NULL COMMENT 'Notas del administrador sobre el pago',
`registrado_por` INT NULL COMMENT 'ID del admin que registró el pago manual',
PRIMARY KEY (`id`),
INDEX `idx_inscripcion` (`inscripcion_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Permitirá gestionar un plan de pagos en cuotas para una inscripción.
CREATE TABLE `cuotas` (
`id` INT NOT NULL AUTO_INCREMENT,
`inscripcion_id` INT NOT NULL,
`numero_cuota` INT NOT NULL COMMENT 'Ej: 0 para el pie, 1 para la primera cuota, etc.',
`monto_cuota` DECIMAL(10,2) NOT NULL,
`fecha_vencimiento` DATE NOT NULL,
`estado` ENUM('pendiente', 'pagada', 'atrasada', 'anulada') NOT NULL DEFAULT 'pendiente',
`pago_id` INT NULL COMMENT 'Vincula al pago específico que cubrió esta cuota',
PRIMARY KEY (`id`),
INDEX `idx_inscripcion_cuota` (`inscripcion_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Gestionará los bonos y becas que pueden ser aplicados a las inscripciones.
CREATE TABLE `descuentos` (
`id` INT NOT NULL AUTO_INCREMENT,
`codigo` VARCHAR(50) NOT NULL UNIQUE COMMENT 'El código que el usuario ingresa',
`descripcion` TEXT NULL,
`tipo` ENUM('porcentaje', 'monto_fijo') NOT NULL,
`valor` DECIMAL(10,2) NOT NULL,
`fecha_expiracion` DATE NULL,
`usos_maximos` INT NULL COMMENT 'NULL para ilimitado',
`usos_actuales` INT NOT NULL DEFAULT 0,
`estado` ENUM('activo', 'inactivo', 'expirado') NOT NULL DEFAULT 'activo',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
El backend se compondrá de varios scripts especializados para manejar cada funcionalidad, asegurando un código limpio y mantenible.
2.1. Gestión de Pagos
2.2. Automatización y Reportes
3.1. Panel de Administración
Se creará una nueva página `admin/verificar_pagos.php` que mostrará una tabla con todos los pagos en estado 'pendiente_verificacion'. Cada fila tendrá el comprobante del alumno (imagen o link), datos de la inscripción y dos botones: "Confirmar" y "Rechazar".
Este modal se activará desde la vista de detalle de una inscripción y permitirá al administrador registrar un pago directo.
Ejemplo de Modal para Registrar Pago |
---|
3.2. Portal del Alumno
Dentro del perfil del alumno, esta nueva sección mostrará su plan de pagos y el historial.
Concepto | Fecha Vencimiento | Monto | Estado | Acción |
---|---|---|---|---|
Pie | 10/07/2025 | $50.000 | Pagada | Ver Comprobante |
Cuota 1/3 | 10/08/2025 | $100.000 | Atrasada | |
Cuota 2/3 | 10/09/2025 | $100.000 | Pendiente | - |
Un formulario simple para que el alumno suba su comprobante de transferencia o depósito.
Ejemplo de Formulario de Subida |
---|
3.3. Integración de Pasarela de Pagos (MercadoPago / Webpay)
4.1. Orden de Desarrollo Sugerido
4.2. Plan de Pruebas Esencial
Se deben probar rigurosamente los siguientes casos de uso: