WIP Limit e Stallo
WIP Limit
Il WIP limit (wiplimit) è un limite massimo di schede simultanee configurabile per fase. È visivo: la libreria mostra il warning ma non blocca lo spostamento.
Visualizzazione
Quando fase.wiplimit è valorizzato, FaseHeader e KanbanColumn mostrano il conteggio corrente con il limite in arancione:
Qualificazione 5 / 8
Quando totale_schede >= wiplimit il numero diventa arancione come segnale visivo.
Configurazione
// Via FaseConfigDialog o FaseCrudTable
await fasiService.aggiornaFase(idfase, { wiplimit: 8 })
// Per disabilitare
await fasiService.aggiornaFase(idfase, { wiplimit: null })
Stallo
Lo stallo rileva le schede ferme troppo a lungo in una fase. Una scheda entra in stallo quando giorni_infase > fase.giornistallo.
Configurazione
// Fase con stallo abilitato dopo 5 giorni
await fasiService.aggiornaFase(idfase, { giornistallo: 5 })
// Per disabilitare lo stallo
await fasiService.aggiornaFase(idfase, { giornistallo: 0 })
Rilevamento
useFasiMetrics.loadStalli() interroga v_stalli_pipeline:
interface SchedaStallo {
idscheda: number
idfase: number
titolo: string
giorni_infase: number
giorni_oltre: number // giorni_infase - giornistallo
giornistallo: number
nome_fase: string
}
Visualizzazione
FaseStalloIndicator appare nell'header della fase quando fase.schede_stallo > 0 e fase.giornistallo > 0. Mostra il numero massimo di giorni_oltre.
SchedaKanban.installo è true per le schede in stallo — può essere usato per colorare diversamente la card:
<ElementCard
:item="scheda"
:class="scheda.installo ? 'border-red-400' : ''"
/>
Aggiornamento stalli
I contatori stallo in v_fasi_pipeline e v_stalli_pipeline vengono aggiornati da un trigger PostgreSQL ad ogni modifica di fasi.scheda. Non è necessario un refresh manuale — loadFasi() carica già i dati aggiornati.