Cuando “Agregar una Cuenta” No Era Tan Simple 😅
Hoy terminé un desarrollo que en teoría era “simple”. El requerimiento era algo así como:
“Hay que agregar cuentas de desembolso para los beneficiarios de pago.”
Y yo pensé: “ya… un popup, unos combos y guardar en BD.”
JAJAJA… no 😄
El inicio inocente
Partimos creando el popup para agregar cuentas:
- banco
- tipo cuenta
- moneda
- número cuenta
Todo bonito.
Pero después empezaron los clásicos problemas de sistemas legacy en WebForms:
- el popup se cerraba solo
- el GridView no mostraba datos
- el ViewState explotaba
- el objeto no era serializable
- el RowCommand no levantaba
- el UpdatePanel se peleaba con el modal
- los datos desaparecían en el postback
Y ahí empezó la aventura 😂
El famoso error serializable
Uno de los primeros golpes fue este:
“El tipo CuentaDesembolso no está marcado como serializable”
Y claro… estábamos guardando objetos completos en ViewState.
Así que hubo que:
- agregar
[Serializable] - revisar diccionarios
- validar listas
- evitar romper código antiguo
Todo mientras intentábamos que la grilla mostrara UNA fila 😅
El momento donde casi pierdo la paciencia
Hubo un punto donde:
- el popup hacía pestañeo
- los datos sí se guardaban
- PERO LA GRILLA NO MOSTRABA NADA
Y uno ahí pensando: “bro… si la lista tiene datos ¿POR QUÉ NO APARECEN?” 😂
Terminamos reemplazando el GridView por una tabla HTML simple. Y adivinen… funcionó al tiro.
A veces menos framework = más felicidad.
El verdadero problema
Después apareció algo más complejo:
Cuando el beneficiario NO era cliente, tenía que obligatoriamente tener al menos una cuenta.
Entonces hubo que:
- recorrer relaciones
- validar cuentas asociadas
- cruzar por número identificación
- evitar cuentas repetidas
- guardar en memoria
- insertar después del registro
Y ahí ya el “simple cambio” se convirtió en mini módulo completo 😄
Lo importante
Lo bueno es que:
- no rompimos el flujo antiguo
- el sistema siguió funcionando
- el popup quedó operativo
- las cuentas se guardan
- las validaciones funcionan
- quedó listo para BD
Y sí… me faltaron unas validaciones del largo del número de cuenta 😅 pero eso pasa en cualquier desarrollo real.
La clásica frase
Mi jefe dijo:
“esto es simple”
Y sí… simple hasta que entras a un sistema legacy bancario con WebForms, ViewState, AjaxControlToolkit y lógica del año de la pera 😂
Moraleja
En sistemas antiguos: el problema no es programar.
El problema es: 👉 agregar cosas nuevas sin romper las antiguas.
Y cuando algo finalmente funciona después de horas peleando con postbacks raros… la satisfacción es gigante 😄
Seguimos avanzando 💪
No hay comentarios:
Publicar un comentario