pu

Buscar este blog

Mostrando entradas con la etiqueta ajaxcontroltoolkit. Mostrar todas las entradas
Mostrando entradas con la etiqueta ajaxcontroltoolkit. Mostrar todas las entradas

jueves, 7 de mayo de 2026

Cuando “Agregar una Cuenta” No Era Tan Simple

 

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 💪