Skip to content

Advertencia de Reingreso de Cheque de Terceros

Módulo: Tesorería Tipo: Process Estado: Implementado Fecha: 2026-06-05


Descripción

Cuando un operador intenta ingresar un cheque de terceros que ya fue egresado anteriormente, el sistema realiza una búsqueda previa y muestra un diálogo de confirmación con los datos del cheque egresado. Esto evita reingreso silencioso de cheques que ya salieron del sistema.


Flujo

1. Operador completa los campos número, CUIT y banco en el formulario.
2. Antes de enviar el POST, el frontend llama:
   GET mod-tesoreria/cheque?numero={n}&cuit={c}&banco={b}
3. Si found=false → el formulario se envía directamente.
4. Si found=true y fecegr IS NOT NULL → se muestra el diálogo de confirmación.
5. Si el operador confirma → se envía el POST y el backend limpia fecegr (reingreso).
6. Si el operador cancela → no se envía nada.

Reglas de Negocio

RN-01: Pre-flight solo cuando los tres campos están completos

La búsqueda previa se ejecuta únicamente cuando numero, cuit y banco están presentes y no vacíos. Si alguno falta, el formulario se envía sin pre-flight.

RN-02: Diálogo de confirmación bloqueante

El diálogo SweetAlert2 que aparece cuando se detecta un cheque egresado:

  • No es descartable haciendo clic fuera del cuadro (allowOutsideClick: false).
  • Muestra: número de cheque, banco, CUIT y fecha de egreso formateada.
  • El operador debe elegir explícitamente Confirmar o Cancelar.

RN-03: Cheque sin egreso no requiere confirmación

Si el cheque existe pero fecegr IS NULL (nunca egresó), el formulario se envía directamente sin mostrar el diálogo.


Frontend

Interacciones

SituaciónComportamiento
Cheque no existe en el sistemaEnvío directo, sin diálogo
Cheque existe, sin egresoEnvío directo, sin diálogo
Cheque existe + egresadoDiálogo de confirmación bloqueante
Operador confirma reingresoPOST enviado
Operador cancelaNo se envía nada

Endpoint de pre-flight

GET /mod-tesoreria/cheque?numero={numero}&cuit={cuit}&banco={banco}

Respuesta esperada:

json
{
  "found": true | false,
  "fecegr": "2026-03-15" | null
}

Backend

El endpoint GET busca por los tres campos (numero, cuit, banco) y devuelve si existe y su fecha de egreso. El POST de reingreso pone fecegr = NULL en el registro existente.


Consideraciones Técnicas

  • La verificación es optimista: si el GET falla por red o timeout, el formulario puede continuar (degradación graceful recomendada).
  • El diálogo es del lado del cliente — no previene el POST si alguien llama el endpoint directamente. La validación de negocio definitiva debe estar en el backend.

Referencias