Tipo de página

Cola de aprobación: lo que te espera, en un solo lugar.

Esta cola corre en la app de ejemplo, publicada en la Prueba online. Son cuatro ventas esperando decisión, cada una con la etapa del flujo, el plazo y la fecha en que entró a la cola.

Cuatro ventas esperando aprobación

Cada fila es una tarea abierta. Muestra el registro que pidió aprobación, la etapa en que está, el flujo de origen, el plazo y la fecha de entrada. Solo ves lo que es tuyo, por tu perfil o porque la tarea te fue asignada.

Cola de aprobación con cuatro ventas pendientes, mostrando etapa, flujo, plazo y fecha de entrada
Tres ventas están en la aprobación comercial y una en el análisis de crédito, cada una con su plazo.

La decisión ocurre en el propio registro

Al abrir un pendiente, caes en el mismo formulario del registro, ahora en modo tarea. Los botones pasan a ser las salidas del flujo: Aprobar, Devolver y Rechazar. Si la etapa lo pide, el comentario se vuelve obligatorio.

resources/views/…blade.php
{{-- El MISMO form del registro gana los botones de decisión --}}@if($that->wfTaskMode)<mad-form-section title="Decisión" icon="message-square"><mad-textarea-field name="wfComment" label="Comentario de la decisión" rows="2" /></mad-form-section>@endif<mad-form-actions>@foreach($that->wfOutcomes as $key => $meta)<button class="mad-btn mad-btn-{{ $meta['intent'] }}">{{ $meta['label'] }}</button>@endforeach</mad-form-actions>

Tú diseñas el flujo, no programas

Etapas, quién aprueba, plazos y caminos por condición quedan en el editor de workflow. La cola y los botones de decisión salen de ese diseño. Tu controller no gana ninguna línea de código de flujo.

Cuándo usar la cola de aprobación

Usa la cola cuando una decisión necesita pasar por alguien antes de seguir. Cada persona ve lo que la espera, con plazo, y la decisión queda registrada.

  • Venta con descuento. La venta se detiene en la aprobación comercial antes de la facturación.
  • Análisis de crédito. Una etapa solo de finanzas, con plazo y los atrasos resaltados.
  • Orden de compra. Un camino por condición manda ciertas compras a una etapa más.
  • Vacaciones y reembolsos en RR. HH. El gerente aprueba, devuelve o rechaza, con comentario.
  • Contrato con dos áreas. Jurídico y finanzas deciden al mismo tiempo, en ramas paralelas.

Si basta con cambiar el estado arrastrando una tarjeta, sin plazo ni responsable, el kanban lo resuelve. Para dividir un registro largo en partes, usa el wizard: allí las etapas son del formulario, no de aprobación. Y los perfiles que reciben las tareas los defines en los permisos del sistema.

Lo que configuras

La cola sale del diseño del flujo. Es ahí donde decides:

Quién decide
Cada etapa va a un perfil o a una persona, y la tarea aparece en la cola de quien fue elegido.
Plazo
Cada tarea tiene su plazo, y las atrasadas quedan resaltadas.
Salidas de la etapa
Las decisiones posibles, como Aprobar, Devolver y Rechazar. Cada una se vuelve un botón en el formulario.
Comentario obligatorio
Según la decisión, el comentario pasa a ser exigido. Un rechazo puede pedir el motivo.
Caminos por condición
El flujo sigue por caminos distintos, según una condición que defines.
Ramas en paralelo
Dos etapas avanzan al mismo tiempo, cada una con quien decide en ella.

Lo que va al proyecto Laravel

La decisión ocurre en el formulario del registro: una clase en app/Control y la vista con <mad-form>. El flujo se comunica con él mediante algunas propiedades:

  • El formulario sabe cuándo es una tarea. La propiedad wfTaskMode le dice al Blade cuándo mostrar la sección de decisión.
  • Los botones vienen del flujo. La lista wfOutcomes trae cada salida con etiqueta y estilo. Si cambió el flujo, cambian los botones, sin tocar el Blade.
  • El comentario es un campo común. Es un <mad-textarea-field> llamado wfComment, con etiqueta y altura ajustables en el Blade.
  • Una acción propia se vuelve permiso. En un botón de aprobación fuera del flujo, el atributo #[MadPermission('Aprobar presupuesto')] en el método crea un permiso con ese nombre en la pantalla de Perfiles.

Como toda pantalla de MadBuilder, esos archivos se abren en tu editor, van a tu Git y aceptan código a mano en bloques protegidos, que siguen ahí cuando la pantalla se genera de nuevo. Mira cómo se genera el código.

Preguntas sobre la cola de aprobación

¿Quién ve cada tarea de la cola de aprobación?

Quien es del perfil de la etapa o la persona a quien se asignó la tarea. Cada uno ve solo lo que es suyo.

¿Se puede devolver en vez de rechazar?

Sí. Las salidas de la etapa se vuelven botones en el formulario, como Aprobar, Devolver y Rechazar. La etapa incluso puede exigir un comentario según la decisión.

¿Queda registrado quién aprobó?

Sí. El historial guarda quién decidió, cuándo y cuál fue la decisión.

Y más

Tareas asignadas a un perfil o a una personaPlazo en cada tarea, con los atrasos resaltadosComentario obligatorio según la decisiónHistorial de quién decidió, cuándo y quéEtapas con personas, ramas en paralelo y caminos por condiciónBotones que aparecen según el estado del registro

Mira también el Wizard o los tipos de página.

Crea la cuenta, arma una pantalla, descarga el proyecto.

Sin demo agendada ni llamada de descubrimiento. Si el Laravel que sale no pasa la revisión de tu equipo, perdiste una tarde.

  1. Crea la cuentaBeta abierta, sin tarjeta.
  2. Arma una pantallaEn el editor visual, en código o pidiéndoselo a la IA.
  3. Descarga el .zipUn proyecto Laravel que corre donde quieras.