47 Registro Automática de Cuotas en Laravel: Insertando la Tabla de Amortización en la BD ⚡💰
Duración: 22 minDescripción
⚡ Lección 47: Registro Automático de Cuotas y Transacciones en la BD
En esta sesión de Benji V2, logramos la automatización total del plan de pagos. Ahora, al registrar un préstamo, el sistema no solo guarda los datos generales, sino que inserta instantáneamente todas las cuotas (tabla de amortización) en la base de datos, garantizando la integridad de la información mediante transacciones.
🔄 Transferencia de Datos: De JavaScript a PHP
Para que el servidor sepa qué cuotas guardar, implementamos un puente de datos:
- 📦 Cuotas en JSON: El simulador de JavaScript, que ya calculaba las fechas y montos, ahora empaqueta esa tabla en una cadena JSON.
- 📥 Input Oculto: Esta cadena se inyecta en un campo oculto (cuotas_jason) dentro del formulario. Al presionar "Registrar", toda la tabla de amortización viaja hacia el controlador de Laravel en un solo paquete [02:21].
🛡️ Integridad con Transacciones (DB Transaction)
Dado que el registro afecta a dos tablas simultáneamente (prestamos y pagos), aplicamos una capa de seguridad crítica:
- ⚡ DB::transaction: Envolvimos el proceso en una transacción. Esto asegura que, si por alguna razón falla el registro de una sola cuota, el préstamo no se cree, evitando datos huérfanos o incompletos [07:27].
- 🔄 Commit y Rollback: Si todo es correcto, se ejecuta el commit para guardar permanentemente; si hay un error, el rollback deshace cualquier cambio previo [10:11].
⚙️ Lógica de Inserción Masiva
Dentro del controlador, procesamos el JSON recibido:
- ✅ Validación de Coincidencia: Antes de guardar, el sistema verifica que el número de cuotas en el JSON coincida con el número de cuotas solicitado. Si hay discrepancia, la operación se aborta por seguridad [11:59].
- ➰ Bucle de Registro: Mediante un foreach, recorremos el JSON y creamos un registro en la tabla pagos por cada cuota, asignando:
- El ID del préstamo recién creado.
- Fechas de vencimiento y montos desglosados (capital e interés).
- Referencia automática (ej. "Cuota 1", "Cuota 2", etc.) [14:26].
🚦 Estados Iniciales de Cobranza
- ⏳ Pendiente por Defecto: Todas las cuotas se registran inicialmente con el estado "Pendiente", con las fechas de pago y montos finales en nulo, a la espera de que el cliente realice sus abonos en el futuro [15:41].
✅ Resultado de la Lección
Al finalizar, el sistema ha pasado de ser un simple formulario a un motor financiero automatizado. Con un solo clic, se genera toda la vida financiera del préstamo en la base de datos, permitiendo al administrador tener un control absoluto sobre cada vencimiento desde el primer día.
Lecciones
Apoya este proyecto
Si te gusta nuestro contenido, ¡apóyanos con una donación!
Donar por Airtm Donar por Binance¡Gracias por tu apoyo! ❤️