Concetti

WIP Limit e Stallo

Controllo del work in progress e rilevamento schede bloccate.

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.