Changes between Version 39 and Version 40 of BozzaAnalisiFunzionale


Ignore:
Timestamp:
01/22/11 14:27:10 (4 years ago)
Author:
lfranc
Comment:

Ri-strutturata la pagina principale. Aggiunta un'introduzione esplicativa e suddivisa l'analisi dei processi in macro aree.

Legend:

Unmodified
Added
Removed
Modified
  • BozzaAnalisiFunzionale

    v39 v40  
    1 = Processo di Ordine e Consegna = 
    2 '''Nota''': All'interno di questo documento, ogni riferimento ad un'entità soggettiva (Produttore, Gasista, Turnista, Motore ecc.) va letta come un riferimento a chi riveste il corrispondente '''ruolo''' all'interno della piattaforma informatica, che non coincide necessariamente con l'entità stessa.  Ad esempio, quando si parla di "Produttore che aggiorna il listino", si intende colui che svolge questa operazione da parte del Produttore (che può essere il Produttore stesso, ma anche il figlio o il !ReferenteProduttore...) 
     1Lo scopo di questo documento è l'analisi dei processi che sono alla base del funzionamento operativo di un GAS. 
     2Tali processi avvengono a più livelli e coinvolgono soggetti di natura diversa; una categorizzazione di massima potrebbe essere la seguente: 
     3* processi intra-GAS (quelli che nascono dall'interazione tra Gasisti di uno stesso GAS) 
     4* processi di interazione tra un GAS ed un'entità esterna (un Produttore, ad esempio) 
     5* processi inter-GAS (interazione tra più GAS, generalmente localizzati in territori limitrofi, e finalizzati ad obiettivi tra cui: condivisione di informazioni, aggregazione della domanda,..) 
    36 
    4 == Inizializzazione == 
    5 In questa sezione riportiamo le procedure che devono essere eseguite in via preliminare (una tantum) per consentire il regolare svolgimento delle attività connesse ai processi di Ordine e Consegna. 
     7Uno degli obiettivi dell'analisi di questi processi è capire dove e con quali modalità una piattaforma informatica (il Sistema) consenta di facilitare questi processi, facendosi carico di tutte quelle attività tediose e ripetitive necessarie alla gestione operativa di un GAS, liberando preziose risorse umane   e rendendole disponibili per attività a più alto valore aggiunto (come quelle afferenti alla sfera sociale e culturale). 
    68 
    7  * il Produttore crea e popola il suo !CatalogoProduttore (valido per '''ogni''' GAS) 
    8  * il Produttore definisce il suo !ListinoProduttore valido per '''ogni''' GAS specificando,  per ogni prodotto del suo !CatalogoProduttore, il prezzo base 
    9  * il Produttore sottoscrive il !PattoDiSolidarietà con un GAS 
     9Una criticità che si riscontra immediatamente partendo dall'analisi di casi concreti, è che ogni GAS nel corso del tempo ha sviluppato prassi e procedure operative peculiari, in funzione delle proprie esigenze specifiche, della disponibilità di risorse umane, della dimensione del gruppo, della sensibilità personale dei Gasisti membri.  Risulta quindi impossibile individuare un modello operativo condiviso (o condivisibile) da parte di tutti i GAS: la varietà dei workflow, flussi informativi e procedure operative esistenti (e consolidati nel tempo) è talmente ampia da essere irriducibile ad un modello unico.  Sotto questo aspetto, l'approccio più praticabile ed efficace è probabilmente questo: da un lato, prendere atto che le differenze tra i GAS esistono e sono molteplici, dall'altro cercare di individuare gli elementi comuni e condivisi: quelli che in qualche modo caratterizzano l'attività di ogni GAS.   
    1010 
    11 ---- 
    12 == Eventi == 
    13 In questa sezione riportiamo gli eventi che possono verificarsi nel corso del processo di Ordine e Consegna, in maniera asincrona (indipendente) rispetto al workflow definito nella sezione successiva. 
     11Questi elementi condivisi consentono di stabilire dei "paletti", dei punti fermi dai quali sviluppare l'analisi degli scenari e delle problematiche che si riscontrano più frequentemente nel mondo dei GAS, accanto alle soluzioni che sono state approntate per affrontare questi scenari e problematiche.  Per evitare il rischio di frammentare eccessivamente il quadro concettuale, è necessario cercare di discriminare tra "buone pratiche" e "cattive pratiche", e focalizzare gli sforzi sull'analisi delle prime; d'altra parte, una delle linee guida per la realizzazione della piattaforma informatica è proprio quella di orientare i GAS verso l'adozione di buone pratiche, senza però costringerli ad adottare dei modelli organizzativi o delle procedure operative inadeguate alla loro  realtà (perché non rispondono alle loro specifiche esigenze o perché lo sforzo richiesto non è sostenibile dalle risorse umane disponibili). 
    1412 
    15 === il Produttore aggiorna il prezzo di un Prodotto nel !ListinoProduttore === 
    16 Il Produttore, in qualsiasi momento, può aggiornare il suo !ListinoProduttore (ovvero modificare i prezzi base applicati a tutti i GAS); in questo caso: 
     13Per comodità, i processi operativi da analizzare sono stati suddivisi nelle seguenti macro-aree: 
    1714 
    18  * Il Produttore: 
    19    * modifica il prezzo di un Prodotto 
    20    * specifica la motivazione della variazione 
    21  * Il Sistema: 
    22    * registra il nuovo prezzo e la causale di modifica nello storico dei prezzi relativo al Produttore in questione (condiviso tra tutti i GAS) 
    23    * per ogni GAS che gestisce: 
    24      * notifica la variazione al ReferenteProduttoreGAS 
    25      * aggiorna il ListinoProduttoreGAS e (di conseguenza) il !ListinoProduttoreGasista 
    26      * verifica se è aperto un !OrdineProduttore per il Produttore in questione; in caso affermativo: 
    27        * modifica le !VociDiCarrello interessate dalla variazione 
    28        * modifica gli !OrdiniGasista (confermati) interessati  dalla variazione 
    29        * notifica la variazione ai Gasisti che hanno già inserito nel Carrello uno o più Prodotti toccati dalle variazioni di prezzo; se un Gasista non accetta la variazione, può rimuovere la relativa !VoceDiCarrello; ''(sarebbe anche opportuno che il Sistema evidenziasse visivamente eventuali Prodotti che hanno subito variazioni di prezzo al momento della conferma dell'!OrdineGasista)'' 
    30        * notifica la variazione ai Gasisti che hanno già effettuato !OrdiniGasista toccati dalle variazioni di prezzo; se un Gasista non accetta la variazione, può modificare o revocare l'!OrdineGasista corrispondente. 
     15* [[Inizializzazione del sistema]] 
     16* [[Gestione dei produttori e dei listini]] 
     17* [[Gestione degli ordini]] 
     18* [[Gestione delle consegne e dei ritiri]] 
     19* [[Gestione della contabilità del GAS e dei pagamenti]] 
     20* [[Gestione dei processi di comunicazione]] 
     21* [[Funzionalità accessorie]] 
    3122 
    32 {{{ 
    33 definire che succede se l'!OrdineProduttore è stato inviato ma non ancora consegnato 
    34 }}} 
    35  
    36 > Si diceva che fa fede la fattura. Riconducendo tutto a questo caso si potrebbe dire che l'!OrdineProduttore inviato ma non consegnato può essere modificato. Tuttavia, non credo opportuno implementare questa politica per tutti, ma anzi che sia strategico relegare questa decisione ai singoli GAS. Per questo propongo che il "punto di non ritorno" di modifica dei prezzi dei Prodotti di un !OrdineProduttore, non dell'!OrdineGasista, siano configurabili nel !PattoDiSolidarietà. 
    37  
    38 >> Meglio usare 4 campi (2 gruppi: ordinato e consegnato). 2 per l'importo e della quantità ordinati e 2 per l'importo e la quantità consegnati. I primi 2 non possono essere modificati dopo la disposizione, gli altri 2 si. Questa implementazione riflette la realtà. 
    39  
    40  ''Nota: il __legame__ di solidarietà reale (non gestito dalla piattaforma :)) fra GAS e Produttore evita che accadano eventi spiacevoli (ritocchi al rialzo dei prezzo "ad orologeria"); in caso contrario, il GAS può stracciare il Patto di Solidarietà.'' 
    41  
    42 === il Produttore inserisce un nuovo Prodotto nel !CatalogoProduttore === 
    43 L'aggiunta, da parte di un Produttore, di un nuovo Prodotto al suo !CatalogoProduttore non può causare una modifica automatica dei relativi !Cataloghi/Listini a livello di GAS, in quanto è richiesta, eventualmente, una modifica preliminare al !PattoDiSolidarietà tra il Produttore e ciascun GAS gestito dal Sistema, e questo comporta, ovviamente, un'approvazione da parte del GAS; tale processo può comunque essere assistito dalla piattaforma informatica. 
    44  
    45 Quando un Produttore inserisce un nuovo Prodotto nel !CatalogoProduttore: 
    46  
    47  * il Sistema: 
    48    * notifica il ReferenteProduttoreGAS di ogni GAS gestito dal Sistema, che abbia stipulato un !PattoDiSolidarietà con il Produttore 
    49  * il ReferenteProduttoreGAS di ogni GAS gestito dal Sistema, che abbia stipulato un !PattoDiSolidarietà con il Produttore: 
    50    * notifica il GAS del nuovo Prodotto 
    51  * Il GAS: 
    52    * valuta il nuovo Prodotto, e decide se includerlo nel CatalogoProduttoreGAS 
    53  
    54 In caso affermativo: 
    55  
    56  * il ReferenteProduttoreGAS effettua le opportune modifiche al !PattoDiSolidarietà (che si riflettono automaticamente sul CatalogoProduttoreGAS e il ListinoProduttoreGAS) 
    57  
    58 === il Produttore rimuove un Prodotto dal !CatalogoProduttore === 
    59 La rimozione, da parte di un Produttore, di un Prodotto dal suo !CatalogoProduttore comporta una modifica del !PattoDiSolidarietà per tutti i GAS, gestiti dal Sistema, che annoverino il Produttore tra i loro fornitori.  Dovrebbe comunque trattarsi di un evento sporadico e preceduto da una comunicazione, da parte del Produttore, nei confronti di tutti i ReferentiProduttoreGAS interessati; tale processo può comunque essere assistito dalla piattaforma informatica. 
    60  
    61 Quando un Produttore  rimuove un Prodotto dal suo !CatalogoProduttore: 
    62  
    63  * il Sistema: 
    64    * notifica il ReferenteProduttoreGAS di ogni GAS gestito dal Sistema, che abbia stipulato un !PattoDiSolidarietà con il Produttore 
    65    * apporta le necessarie modifiche al CatalogoProduttoreGAS (quindi, indirettamente,  al  !PattoDiSolidarietà) e le sottopone al ReferenteProduttoreGAS per conferma 
    66  * verifica se è aperto un !OrdineProduttore per il Produttore in questione; in caso affermativo: 
    67    * elimina gli !OrdiniGasista in cui compare il Prodotto rimosso (siano essi CONFERMATI o NON_CONFERMATI, ovvero !VociDiCarrello)  
    68    * notifica i Gasisti delle modifiche apportate 
    69  
    70 === il Produttore aggiorna la disponibilità dei Prodotti nel ListinoProduttoreGAS === 
    71 il Produttore, in qualsiasi momento, può aggiornare la quantità disponibile dei Prodotti che compaiono nel ListinoProduttoreGAS (vedi la [wiki:BozzaAnalisiFunzionale/DisponibilitaProdotti discussione] sulla gestione della disponibilità dei Prodotti); in questo caso, va definito cosa succede ai Gasisti che hanno inserito nel loro Carrello dei Prodotti la cui disponibilità sia stata rivista al ribasso; alcune strategie possibili: 
    72  
    73  * definire un algoritmo che adegui i Carrelli alla nuova situazione (magari in base a criteri di equità/solidarietà tra Gasisti ;-)); può anche essere sufficiente il metodo del consenso 
    74  * effettuare comunque l'!OrdineProduttore senza interventi preliminari, notificando i Gasisti che il loro !OrdineGasista potrebbe non essere soddisfatto in toto (la rettifica può comunque avvenire in fase di Ritiro o di Consegna) 
    75  
    76 > Quest'ultima è la scelta più opportuna per il primo anno: implementare l'opzione "politica di riduzione della disponibilità per gli !OrdiniGasista" nel !PattoDiSolidarietà prevedendo quest'ultimo comportamento di default per il primo anno. Consideriamo come funzionerebbe senza disponibilità quantitativa. 
    77  
    78 Un caso particolare di questa problematica è quello in cui si modifica la disponibilità "assoluta" di un Prodotto (SI/NO, contrapposta a quella "relativa" in cui si modifica la quantità ma il Prodotto rimane comunque disponibile); ci sono due casi possibili: 
    79  
    80  1. il Prodotto passa da NON DISPONIBILE (quantità = 0) a DISPONIBILE (quantità > 0) 
    81  1. il Prodotto passa da DISPONIBILE (quantità > 0) a NON DISPONIBILE (quantità = 0) 
    82  
    83 Caso 1) Il Produttore: 
    84  
    85  * incrementa la disponibilità di un Prodotto per un determinato GAS (modificando il relativo ListinoProduttoreGAS) da 0 ad un valore > 0 
    86  
    87 Il Sistema: 
    88  
    89  * verifica se è aperto un !OrdineProduttore per il Produttore in questione; in caso affermativo: 
    90    * notifica il ReferenteProduttoreGAS e i Gasisti della disponibilità di un nuovo Prodotto (il !ListinoGasista viene aggiornato automaticamente) 
    91  
    92 > Quest'ultimo punto è sbagliato se decidiamo di associare una lista statica di prodotti ad ogni ordine. Se prendiamo questa strada non è possibile aggiornare automaticamente i !ListinoGasista. Propongo una soluzione per questo problema: nel CatalogoProduttoreGAS ogni prodotto abbia associato un "flag": "lo voglio sempre", "non lo voglio mai", "se è disponibile mostramelo al momento dell'ordine che scelgo". Meglio un peso: 100, 50, 10 così è estendibile e filtrabile. Nel !PattoDiSolidarietà si mette un'opzione di default per il peso dei nuovi Prodotti nel CatalogoProduttoreGAS. Ritornando al problema principe di associare i prodotti ad un ordine il 90% dei GAS rimmarrà con il valore di default di peso 100 come preferenza nel CatalogoProduttoreGAS, mentre i più scettici lo abbasseranno (ovviamente per loro non sarà un numero) e potranno decidere di volta in volta. Mi fanno più paura gli sforzi dell'utente, più che quello dei programmatori. 
    93  
    94  Caso 2) Il Produttore: 
    95  
    96  * annulla la disponibilità di un Prodotto per un determinato GAS (modificando il relativo ListinoProduttoreGAS) 
    97  
    98 Il Sistema: 
    99  
    100  * verifica se è aperto un !OrdineProduttore per il Produttore in questione; in caso affermativo: 
    101    * elimina gli !OrdiniGasista in cui compare il Prodotto rimosso (siano essi CONFERMATI o NON_CONFERMATI, ovvero !VociDiCarrello)  
    102    * notifica i Gasisti delle modifiche apportate 
    103    * notifica il ReferenteProduttoreGAS e i Gasisti della indisponibilità del Prodotto 
    104  
    105 === L'!OrdineProduttore viene annullato (non verrà consegnato) === 
    106   Si elimina tutto quello che riguarda  l'!OrdineProduttore: Carrello +  !OrdiniGasista  + listini e lo si notifica. 
    107  
    108 ---- 
    109 == Workflow di ordine e consegna == 
    110 In questa sezione riportiamo il workflow di base che fornisce un'implementazione del processo di Ordine e Consegna.  Alcune delle azioni descritte nel workflow sono a carico del Sistema, altre richiedono un intervento umano; comunque, il confine è sfumato e dipende anche dalle scelte organizzative di ogni singolo GAS (ad es., GAS diversi potrebbero decidere di fare un uso più o meno esteso della piattaforma informatica di cui dispongono). 
    111  
    112 ---- 
    113 '''Nota preliminare''': al fine di modellizzare il processo di ordine e di consegna, è possibile partire da assunzioni diverse: 
    114  
    115  1. si può assumere che le interazioni GAS-Produttori avvengano in maniera '''sincrona''', cioè siano scandite da un "clock" condiviso tra GAS e Produttori; in questo caso, il processo di ordine e consegna sarebbe un ciclo che si compie a cadenza fissata, ad esempio settimanale (l'ordine si apre il Lunedì e si chiude il Venerdì per '''tutti''' i Produttori che servono un GAS) 
    116  1. si può assumere che le interazioni GAS-Produttori avvengano in maniera '''asincrona''', ovvero che il GAS e i Produttori interagiscano in modo non necessariamente coordinato. Ad esempio, diversi !ReferentiProduttore possono aprire e chiudere gli Ordini in autonomia, i Produttori possono variare i prezzi di listino in qualsiasi momento, ecc. 
    117  
    118 Nel nostro caso, riteniamo che il secondo scenario sia più realistico nei contesti operativi dei GAS. Da notare che l'assenza di sincronizzazione ''a priori'' non esclude la sussistenza di meccanismi di coordinamento intra-GAS (e inter-GAS, in uno scenario di Retina); anzi, è probabile (e auspicabile)  che questi meccanismi sorgano spontaneamente come buone pratiche a livello di GAS (o di Retina), ma il Sistema non cerca in alcun modo di imporli. 
    119  
    120 ---- 
    121 '''Nota''': in una prima fase si può semplificare la gestione delle disponibilità dei Prodotti limitandosi ai due stati "disponibile" e "non disponibile". 
    122  
    123 === Un ReferenteProduttoreGAS apre un nuovo !OrdineProduttore === 
    124  
    125 All'interno di un GAS, in ogni momento un ReferenteProduttoreGAS può aprire un nuovo !OrdineProduttore (relativo al Produttore che gli compete), definendo: 
    126  * la data di apertura dell' !OrdineProduttore 
    127  * la data di chiusura dell' !OrdineProduttore 
    128  * le modalità di ritiro della merce ordinata (vanno concordate con il Produttore, eventualmente in un secondo momento) 
    129  * le modalità di consegna (ritiro della merce ordinata da parte dei Gasisti); per definirle il ReferenteProduttoreGAS può: 
    130    1. creare un nuovo appuntamento di Consegna (vedi sotto) 
    131    1. selezionare un appuntamento di Consegna già fissato da un altro ReferenteProduttoreGAS (oppure l'appuntamento di Consegna di default) 
    132  * una nota informativa per i Gasisti (può servire per comunicazioni specifiche relative all' !OrdineProduttore) [opzionale] 
    133  * l'importo minimo da raggiungere affinchè l' !OrdineProduttore possa essere inviato [opzionale] 
    134  
    135 Prima di confermare l'operazione, il ReferenteProduttoreGAS valida il !ListinoGasista (vedi sotto). 
    136  
    137 '''Nota''': il Sistema evidenzia eventuali altri !OrdiniProduttore aperti, ma non impedisce l'apertura di un nuovo !OrdineProduttore. 
    138  
    139 A questo punto l' !OrdineProduttore è aperto e i Gasisti possono iniziare ad ordinare. 
    140  
    141 === Un ReferenteProduttoreGAS crea un nuovo appuntamento di Consegna === 
    142 Se necessario e opportuno, all'interno di un GAS in ogni momento un ReferenteProduttoreGAS può aprire un nuovo appuntamento di Consegna, definendo: 
    143  * il !PuntoDiConsegna 
    144  * la data della Consegna 
    145  * l'ora di inizio e fine della Consegna 
    146  * il Turnista (o i Turnisti) responsabili della Consegna; è compito del ReferenteProduttoreGAS verificare l'effettiva disponibilità del Turnista/i 
    147  
    148 Il Sistema: 
    149  * notifica i Gasisti a cui è stato assegnato il ruolo di Turnista per il nuovo appuntamento di Consegna  
    150 {{{ 
    151 È necessario/utile implementare un meccanismo di conferma/accettazione dell'incarico da parte dei Turnisti ? 
    152 }}} 
     23Alcune note di carattere generale: 
     241. All'interno di questo documento, ogni riferimento ad un'entità soggettiva (Produttore, Gasista, Turnista ecc.) va letta come un riferimento a chi riveste il corrispondente '''ruolo''' all'interno della piattaforma informatica, il quale non coincide necessariamente con l'entità stessa.  Ad esempio, quando si dice che "Produttore che aggiorna il !ListinoProduttore", si intende colui che svolge questa operazione da parte del Produttore (che può essere il Produttore stesso, ma anche il figlio o il ReferenteProduttoreGAS). 
    15325 
    15426 
    155 ===  Un ReferenteProduttoreGAS valida il !ListinoGasista  === 
    156 Prima di confermare l'apertura di un nuovo !OrdineProduttore, il ReferenteProduttoreGAS può avere la necessità di validare (ed eventualmente ritoccare) il !ListinoProduttoreGasista associato all' !OrdineProduttore (questo passaggio aggiuntivo può essere eliminato a seconda delle esigenze del GAS, in fase di configurazione del Sistema). 
    157  
    158 Il ReferenteProduttoreGAS: 
    159  * visualizza lo stato attuale del ListinoProduttoreGAS (in  particolare,  il Sistema mostra solo i Prodotti attualmente disponibili  ed evidenzia  le eventuali variazioni di prezzo rispetto al precedente !OrdineProduttore) 
    160  * il Sistema visualizza il !ListinoProduttoreGasista, (generato a partire dal  ListinoProduttoreGAS, applicando le eventuali modifiche ai prezzi) 
    161  * il ReferenteProduttoreGAS applica le eventuali modifiche al !ListinoProduttoreGasista (ad es. ritoccando i prezzi???, impostando una quantità massima ordinabile in caso di scarsa disponibilità del Prodotto, eliminando alcuni Prodotti, ..) 
    162  * il ReferenteProduttoreGAS conferma il !ListinoProduttoreGasista, e il  Sistema lo associa al nuovo !OrdineProduttore  
    163  
    164 === Un Gasista effettua un !OrdineGasista === 
    165  
    166 In ogni momento un Gasista può effettuare degli !OrdiniGasista; è il Sistema a farsi carico del compito di presentargli la situazione aggiornata in tempo reale (mostrando solo i Prodotti relativi agli !OrdiniProduttore aperti, filtrando i Prodotti attualmente non disponibili, visualizzando i prezzi aggiornati, ecc.). 
    167  
    168 Per effettuare un !OrdineGasista, un Gasista: 
    169  
    170  * accede alla sua area privata all'interno del Sistema  
    171  * visualizza il !ListinoGasista attuale (nota: la visualizzazione può essere fatta in forma aggregata per Produttore o per altri parametri (ad esempio la data di consegna) oppure come lista "flat"; questo comportamento può essere definito a livello di sistema o di utente (?), in base alle specifiche esigenze/sensibilità del GAS) 
    172  * il Gasista seleziona alcuni Prodotti tra quelli disponibili, indicando per ciascuno di essi la quantità desiderata (nota: il Sistema si occupa di implementare eventuali restrizioni sulle quantità ordinabili (minima/step_incremento/massima)) 
    173  * il Sistema aggiunge al Carrello i Prodotti selezionati, aggiornando il totale corrente 
    174  * se il Gasista è soddisfatto di una data !VoceDiCarrello (cioè un !OrdineGasista NON_CONFERMATO ), può confermarla (fino a quando il relativo !OrdineProduttore è aperto); il Sistema cambia in CONFERMATO lo stato dell'!OrdineGasista, la !VoceDiCarrello scompare dal Carrello e ricompare tra gli !OrdiniGasista confermati  
    175  * Quando un !OrdineProduttore si chiude, gli !OrdiniGasista confermati entrano nello stato FINALIZZATO e non sono più modificabili 
    176   
    177 '''Note''': 
    178  * il Gasista può modificare in ogni momento il contenuto del Carrello (in aggiunta o in sottrazione), ma solo per quelle !VociDiCarrello associate a !OrdiniProduttore aperti (quando un !OrdineProduttore si chiude, le !VociDiCarrello rimaste in sospeso vengono cancellate, magari notificando il Gasista) 
    179  * il Gasista può modificare in ogni momento le disposizioni di ordine inviate al Sistema (!OrdiniGasista CONFERMATI) modificando le quantità e/o eliminando dei Prodotti, ma limitatamente a quelle associate a !OrdiniProduttore aperti (quando un !OrdineProduttore si chiude, i relativi !OrdiniGasista CONFERMATI  non sono più modificabili 
    180  * a seconda delle specifiche esigenze di un GAS, la necessità di confermare una !VoceDiCarrello può essere eliminata (nella fase di configurazione del Sistema); ovvero, in questo caso, la transizione NON_CONFERMATO -> CONFERMATO avviene automaticamente, e ogni Prodotto messo nel Carrello genera una disposizione di ordine da parte del Gasista 
    181  
    182 === Un ReferenteProduttoreGAS chiude un !OrdineProduttore === 
    183 Quando la finestra temporale per  un !OrdineProduttore si chiude, i Gasisti non sono più in grado di effettuare !OrdiniGasista per quel Produttore (fino all'apertura di un nuovo !OrdineProduttore). A questo punto, gli !OrdiniGasisti relativi all'!OrdineProduttore in questione vengono aggregati dal Sistema: per ciascun Prodotto presente nel !ListinoGasista associato all'!OrdineProduttore viene mostrata la quantità totale ordinata, e l'importo complessivo dell'ordine.  In questa fase, il ReferenteProduttoreGAS, coadiuvato dal Sistema, valuta se finalizzare l'ordine (inviandolo al Produttore), riaprirlo o annullarlo (nel caso in cui ci sia un vincolo di soglia non soddisfatto, come un importo minimo o una quantità minima per determinati Prodotti). 
    184  
    185 Il Sistema: 
    186  * notifica il ReferenteProduttoreGAS che un !OrdineProduttore è chiuso  
    187 Il ReferenteProduttoreGAS: 
    188  * visualizza la situazione corrente dell'!OrdineProduttore: unità di prodotto ordinate, importo complessivo dell'ordine, eventuali vincoli non soddisfatti 
    189  * a questo punto: 
    190   1. se ritiene che che l' !OrdineProduttore sia OK, lo finalizza.  
    191    *  se non l'ha fatto in precedenza, il ReferenteProduttoreGAS definisce con il Produttore le modalità di consegna della merce 
    192    * il Sistema genera una disposizione di ordine per il Produttore (un report sintetico degli !OrdiniGasista associati all'!OrdineProduttore; a seconda delle modalità operative, possono essere suddivisi per Gasista (se il Produttore consegna la merce in "pacchi famiglia") o aggregati in base al Prodotto (se il Produttore consegna "in blocco")) 
    193    * il Sistema invia l'!OrdineProduttore al Produttore 
    194    * lo stato dell'!OrdineProduttore cambia in INVIATO  
    195   1. se lo ritiene opportuno, può riaprire l' !OrdineProduttore in via temporanea (ad es. per consentirne il soddisfacimento di eventuali vincoli posti dal Produttore); vedi sotto, 
    196  
    197 '''Note''':  
    198 * Il Sistema dovrebbe consentire al ReferenteProduttoreGAS di inviare un !OrdineProduttore anche se alcuni dei vincoli non sono soddisfatti; in questo modo, si evita di irrigidire eccessivamente il Sistema.  
    199  
    200 === Un ReferenteProduttoreGAS riapre un !OrdineProduttore === 
    201 In certi casi, un ReferenteProduttoreGAS può avere necessità di riaprire, in via temporanea, un !OrdineProduttore  (ad es. per consentire il soddisfacimento di eventuali vincoli posti dal Produttore). In questo caso: 
    202  
    203  * Il ReferenteProduttoreGAS riapre l' !OrdineProduttore, posticipando la data di chiusura 
    204  * Il Sistema: 
    205   * notifica i Gasisti della riapertura dell'!OrdineProduttore 
    206   * cambia lo stato degli !OrdiniGasista pertinenti da FINALIZZATO a CONFERMATO 
    20727 
    20828 
    209 === procedura completa ordine === 
    210  
    211 === prodotto non sarà consegna: gestione parziale === 
    212 Un !ReferenteProduttoreGAS elimina uno (o più) prodotti e quindi i relativi !OrdineGasista di ciascun gasista nel !OrdineProduttore chiuso. Viene mandato un email di avviso agli rispettivi Gassisti per informare della non consegna del prodotto. Se per caso l'eliminazione riguarda l'ultimo !OrdineGasista per questo produttore, l'email inviato informa che la consegna per questo produttore lui è stata annullato.  
    21329 
    21430 
    215 === Un Gasista ordina dopo la chiusura (prima della consegna) === 
    216 Dopo la chiusura un Gasista desidera ordinare dei prodotti: il referente, in accordo con il produttore, può avere la delega di effettuare questi ordini in più. Ristampa e rimanda il nuovo report al produttore.  
    217  
    218 === retina: unione ordini dello stesso produttore fra varie GAS === 
    219 Viene mandato al produttore un ordine globale somma dei varie !OrdiniProduttore 
    220  
    221 ---- 
    222 == [[BozzaAnalisiFunzionale/ProcessoDiConsegna|Processo di consegna]]  == 
    223  
    224 == !OrdiniPeriodici == 
    225 Al fine di semplificare al massimo la vita del Gasista, è importante implementare un meccanismo che consenta la pianificazione (scheduling) degli Ordini ricorrenti (che avvengono periodicamente con cadenze fissate).  Il Gasista dovrebbe poter inserire nel Sistema gli Ordini che si trova ad eseguire periodicamente (!OrdiniPeriodici), specificando: 
    226  
    227  * prodotto 
    228  * # di unità da ordinare 
    229  * cadenza dell'ordine 
    230  * (opzionale) data di inizio e fine della validità dell' !OrdinePeriodico in questione 
    231  
    232 === Workflow === 
    233  1. Il !GasistaAcquirente inserisce uno o più !OrdiniPeriodici 
    234  1. ogni giono, il Sistema 
    235    1. verifica se ci sono !OrdiniPeriodici previsti per il giorno corrente 
    236    1. per ogni !OrdinePeriodico 
    237      1. verifica se l' !OrdinePeriodico può essere soddisfatto (ovvero, per ogni Prodotto indicato nell' !OrdinePeriodico, esiste almeno uno Stock "attivo" e non vuoto in grado di soddisfare la richiesta) 
    238      * se l' !OrdinePeriodico può essere soddisfatto: 
    239        * genera e invia un !OrdineGasista (senza chiedere conferma al !GasistaAcquirente) 
    240        * invia una notifica al !GasistaAcquirente 
    241      * se l' !OrdinePeriodico può essere soddisfatto (parzialmente o in toto) 
    242        * invia una notifica al !GasistaAcquirente 
    243  
    244 == Gestione Multi-GAS (livello di Retina) == 
    245 TODO 
    246  
    247 = Scratch = 
    248  * L' UM dovrebbe permettere di calcolare in automatico il prezzo per Kilo o litro quando possibile) 
    249  * gestione degli storici (prezzi, ordini, ..)