wiki:BozzaAnalisiFunzionale/Gestione_degli_ordini/OrdiniPeriodici

Version 2 (modified by lfranc, 3 years ago) (diff)

Elaborazione della versione iniziale.

Descrizione della problematica

Questa sezione descrive possibili meccanismi di automazione nell'ambito della gestione degli ordini di un GAS, volti a ridurre il carico di lavoro dei Gasisti. Due scenari sono di particolare interesse:

Come in ogni problema di pianificazione (scheduling), ci sono due parametri essenziali da specificare per definire il meccanismo di ricorrenza:

  • lo schema di ricorrenza, ovvero quali sono i criteri con cui gli eventi (in questo caso gli ordini) vengono schedulati
  • la validità temporale dello schema di ricorrenza, ovvero l'arco di tempo durante il quale il meccanismo di scheduling è attivo

Ogni ordine periodico (OrdineProduttorePeriodico, OrdineGasistaPeriodico) ha un attributo che registra il numero di giorni trascorsi dall'ultima occorrenza generata dal Sistema; questo attributo viene utilizzato dal Sistema per onorare la cadenza specificata durante la creazione dell'ordine periodico.

Esempi di schemi di ricorrenza tipici

Settimanale

Quindicinale

Mensile

Annuale

Pianificazione degli OrdiniProduttore

Per alleggerire il carico di lavoro dei ReferentiProduttoreGAS (ed evitare loro la necessità di eseguire azioni ripetitive), sarebbe utile implementare un meccanismo che consenta l'apertura di OrdiniProduttore periodici da parte dei !ReferentiProduttoreGAS. In effetti, molti GAS hanno uno o più Produttori per i quali l'apertura e la chiusura dell'OrdineProduttore avviene con cadenza fissata e regolare, nota a priori.

Un ReferenteProduttoreGAS aggiunge un OrdineProduttorePeriodico

  • un ReferenteProduttoreGAS aggiunge un nuovo OrdineProduttorePeriodico specificando:
    • lo schema di ricorrenza
    • la validità temporale dello schema di ricorrenza

Un ReferenteProduttoreGAS sospende un OrdineProduttorePeriodico

Un OrdineProduttorePeriodico può essere sospeso in qualsiasi momento dal ReferenteProduttoreGAS che lo ha creato; durante il periodo di sospensione, l'OrdineProduttoreoPeriodico è inattivo e non può causare l'apertura automatica di un OrdineProduttore.

Un ReferenteProduttoreGAS elimina un OrdineProduttorePeriodico

Un ReferenteProduttoreGAS può eliminare in qualsiasi momento un OrdineProduttorePeriodico in modo definitivo.

Apertura automatica di OrdiniProduttorePeriodici

Ad intervalli regolari (ad es. ogni giorno alle 0.00) il Sistema:

  • determina gli OrdiniProduttorePeriodici attivi (ovvero quelli esistenti e non sospesi)
  • per ogni OrdineProduttorePeriodico attivo:
    • verifica se il giorno corrente cade nell'intervallo di validità dell'OrdineProduttorePeriodico
    • verifica se il giorno corrente soddisfa lo schema di ricorrenza dell'OrdineProduttorePeriodico
    • verifica se sono trascorsi abbastanza giorni dall'ultima occorrenza generata a partire dall'OrdineProduttorePeriodico
    • resetta il contatore dei giorni trascorsi per l'OrdineProduttorePeriodico
    • notifica il ReferenteProduttoreGAS
    • notifica i Gasisti

Pianificazione degli OrdiniGasista

Per alcuni prodotti, in particolare quelli alimentari, gli ordini dei Gasisti avvengono con una certa regolarità: per questa tipologia di OrdiniGasista la pianificazione è una strada percorribile. La pianificazione degli OrdiniGasista porta con sé alcuni vantaggi significativi:

  • allevia il carico di lavoro dei Gasisti
  • può aiutare alcuni Produttori a pianificare la loro attività produttiva.

Un Gasista aggiunge un OrdineGasistaPeriodico

  • un Gasista può aggiungere un nuovo OrdineGasistaPeriodico specificando:
    • lo schema di ricorrenza
    • la validità temporale dello schema di ricorrenza
    • il Prodotto da ordinare
    • il numero di unità di Prodotto da ordinare

Un Gasista sospende un OrdineGasistaPeriodico

Un OrdineGasistaPeriodico può essere sospeso in qualsiasi momento dal Gasista che lo ha creato; durante il periodo di sospensione, l'OrdineGasistaPeriodico è inattivo e non può causare l'apertura automatica di un OrdineGasista.

Un Gasista elimina un OrdineGasistaPeriodico

Un Gasista può eliminare in qualsiasi momento un OrdineGasistaPeriodico in modo definitivo.

Apertura automatica di OrdiniGasistaPeriodici

Ad intervalli regolari (ad es. ogni giorno alle 0.00) il Sistema:

  • determina gli OrdiniGasistaPeriodici attivi (ovvero quelli esistenti e non sospesi)
  • per ogni OrdineGasistaPeriodico attivo:
    • verifica se il giorno corrente cade nell'intervallo di validità dell'OrdineGasistaPeriodico
    • verifica se il giorno corrente soddisfa lo schema di ricorrenza dell'OrdineGasistaPeriodico
    • verifica se sono trascorsi abbastanza giorni dall'ultima occorrenza dell'OrdineGasistaPeriodico
    • verifica se l' OrdineGasista che verrebbe generato dall'OrdineGasistaPeriodico può essere soddisfatto (ovvero se al momento esiste una VoceDiOrdine in grado di fornire il Prodotto specificato nell'OrdineGasistaPeriodico)
      • in caso affermativo, apre un nuovo OrdineGasista, in base ai parametri definiti nell'OrdineGasistaPeriodico (quantità da ordinare,..)
    • resetta il contatore dei giorni trascorsi per l'OrdineGasistaPeriodico
    • notifica il Gasista