Concetti
Ricorrenza
Pattern di ripetizione automatica per attività template.
Panoramica
La ricorrenza permette di definire un pattern di ripetizione per un'attività template. Quando l'attività template viene completata o annullata, la RPC crea automaticamente la prossima istanza con la scadenza calcolata.
Struttura
interface Ricorrenza {
idricorrenza: number
idattivita_template: number // FK → attivita.attivita
tiporicorrenza: TipoRicorrenza // 'giornaliera' | 'settimanale' | 'mensile'
intervallo: number // ogni N unità
datafine: string | null // YYYY-MM-DD, null = indefinita
triggercreazione: TriggerCreazione // 'completamento' | 'data_fissa'
giorni_anticipo: number // crea la prossima N giorni prima della scadenza
attivo: boolean
}
TriggerCreazione
| Valore | Quando viene creata la prossima istanza |
|---|---|
completamento | Immediatamente quando l'attività viene completata |
data_fissa | giorni_anticipo giorni prima della scadenza corrente |
Esempio — controllo settimanale
{
tiporicorrenza: 'settimanale',
intervallo: 1,
triggercreazione: 'completamento',
giorni_anticipo: 0,
datafine: null,
}
// → Ogni volta che si completa, crea la prossima tra 7 giorni
Esempio — report mensile con anticipo
{
tiporicorrenza: 'mensile',
intervallo: 1,
triggercreazione: 'data_fissa',
giorni_anticipo: 5,
datafine: '2025-12-31',
}
// → Crea la prossima istanza 5 giorni prima della scadenza corrente
// → Si ferma dopo il 31/12/2025
Configurazione in AttivitaForm
La ricorrenza viene configurata nel tab "Avanzato" tramite RicorrenzaPanel. È disponibile solo alla creazione — non modificabile in modifica.
// formState.ricorrenza
{
attivo: true,
tiporicorrenza: 'mensile',
intervallo: 1,
datafine: null,
triggercreazione: 'completamento',
giorni_anticipo: 0,
}
Risposta RPC
Quando un'attività con ricorrenza viene completata o annullata, la risposta include:
{
ricorrenza_creata: {
idattivita: 456, // ID della nuova istanza creata
datascadenza: '2025-06-15'
} | null
}
null se datafine è raggiunta o la ricorrenza è disabilitata.