Tipo de página

Fila de Aprovação: o que espera por você, num lugar só.

Esta fila roda no app de exemplo, publicado no Teste Online. São quatro vendas esperando decisão, cada uma com a etapa do fluxo, o prazo e a data em que entrou na fila.

Quatro vendas esperando aprovação

Cada linha é uma tarefa aberta. Ela mostra o registro que pediu aprovação, a etapa em que está, o fluxo de origem, o prazo e a data de entrada. Você só vê o que é seu, pelo seu perfil ou porque a tarefa foi atribuída a você.

Fila de aprovação com quatro vendas pendentes, mostrando etapa, fluxo, prazo e data de entrada
Três vendas estão na aprovação comercial e uma na análise de crédito, cada uma com o seu prazo.

A decisão acontece no próprio cadastro

Ao abrir uma pendência, você cai no mesmo formulário do cadastro, agora em modo de tarefa. Os botões passam a ser as saídas do fluxo: Aprovar, Devolver e Rejeitar. Se a etapa pedir, o comentário vira obrigatório.

resources/views/…blade.php
{{-- O MESMO form do cadastro ganha os botões de decisão --}}@if($that->wfTaskMode)<mad-form-section title="Decisão" icon="message-square"><mad-textarea-field name="wfComment" label="Comentário da decisão" 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>

Você desenha o fluxo, não programa

Etapas, quem aprova, prazos e caminhos por condição ficam no editor de workflow. A fila e os botões de decisão saem desse desenho. O seu controller não ganha nenhuma linha de código de fluxo.

Quando usar a fila de aprovação

Use a fila quando uma decisão precisa passar por alguém antes de seguir. Cada pessoa vê o que espera por ela, com prazo, e a decisão fica registrada.

  • Venda com desconto. A venda para na aprovação comercial antes do faturamento.
  • Análise de crédito. Uma etapa só do financeiro, com prazo e os atrasos em destaque.
  • Pedido de compra. Um caminho por condição manda certas compras para uma etapa a mais.
  • Férias e reembolsos no RH. O gestor aprova, devolve ou rejeita, com comentário.
  • Contrato com duas áreas. Jurídico e financeiro decidem ao mesmo tempo, em ramos paralelos.

Se basta mudar o status arrastando um card, sem prazo nem responsável, o kanban resolve. Para dividir um cadastro longo em partes, use o wizard: lá as etapas são do formulário, não de aprovação. E os perfis que recebem as tarefas você define em permissões do sistema.

O que você configura

A fila sai do desenho do fluxo. É nele que você decide:

Quem decide
Cada etapa vai para um perfil ou para uma pessoa, e a tarefa aparece na fila de quem foi escolhido.
Prazo
Cada tarefa tem o seu prazo, e as atrasadas ficam em destaque.
Saídas da etapa
As decisões possíveis, como Aprovar, Devolver e Rejeitar. Cada uma vira um botão no formulário.
Comentário obrigatório
Conforme a decisão, o comentário passa a ser exigido. Uma rejeição pode pedir o motivo.
Caminhos por condição
O fluxo segue por caminhos diferentes, conforme uma condição que você define.
Ramos em paralelo
Duas etapas andam ao mesmo tempo, cada uma com quem decide nela.

O que vai para o projeto Laravel

A decisão acontece no formulário do cadastro: uma classe em app/Control e a view com <mad-form>. O fluxo conversa com ele por algumas propriedades:

  • O formulário sabe quando é tarefa. A propriedade wfTaskMode diz ao Blade quando mostrar a seção de decisão.
  • Os botões vêm do fluxo. A lista wfOutcomes traz cada saída com rótulo e estilo. Mudou o fluxo, mudam os botões, sem mexer no Blade.
  • O comentário é um campo comum. É um <mad-textarea-field> chamado wfComment, com rótulo e altura ajustáveis no Blade.
  • Ação própria vira permissão. Num botão de aprovação fora do fluxo, o atributo #[MadPermission('Aprovar orçamento')] no método cria uma permissão com esse nome na tela de Perfis.

Como toda tela do MadBuilder, esses arquivos abrem no seu editor, vão para o seu Git e aceitam código à mão em blocos protegidos, que continuam lá quando a tela é gerada de novo. Veja como o código é gerado.

Perguntas sobre a fila de aprovação

Quem vê cada tarefa da fila de aprovação?

Quem é do perfil da etapa ou a pessoa a quem a tarefa foi atribuída. Cada um vê só o que é seu.

Dá pra devolver em vez de rejeitar?

Dá. As saídas da etapa viram botões no formulário, como Aprovar, Devolver e Rejeitar. A etapa ainda pode exigir um comentário conforme a decisão.

Fica registrado quem aprovou?

Fica. O histórico guarda quem decidiu, quando e qual foi a decisão.

E mais

Tarefas atribuídas a um perfil ou a uma pessoaPrazo em cada tarefa, com os atrasos em destaqueComentário obrigatório conforme a decisãoHistórico de quem decidiu, quando e o quêEtapas com pessoas, ramos em paralelo e caminhos por condiçãoBotões que aparecem conforme o status do registro

Veja também o Wizard ou os tipos de página.

Crie a conta, monte uma tela, baixe o projeto.

Sem demo agendada e sem call de descoberta. Se o Laravel que sair não passar na revisão do seu time, você perdeu uma tarde.

  1. Crie a contaBeta aberto, sem cartão.
  2. Monte uma telaNo visual, no código ou pedindo à IA.
  3. Baixe o .zipUm projeto Laravel que roda onde você quiser.