Ticket #39 (new compito)
Implementare un meccanismo per l'apertura di OrdiniProduttore periodici
| Reported by: | lfranc | Owned by: | |
|---|---|---|---|
| Priority: | importante | Milestone: | Documento di analisi funzionale |
| Component: | analisi | Keywords: | |
| Cc: |
Description (last modified by lfranc) (diff)
Sarebbe utile implementare un meccanismo che consenta l'apertura di OrdiniProduttore periodici da parte dei ReferentiProduttoreGAS, per alleggerire il carico di lavoro di questi ultimi ed evitargli la necessità di eseguire azioni ripetitive.
Change History
comment:1 Changed 2 years ago by lfranc
- Summary changed from Implementare un meccanismo per l'apertura di !OrdiniProduttore periodici to Implementare un meccanismo per l'apertura di OrdiniProduttore periodici
comment:2 in reply to: ↑ description ; follow-up: ↓ 5 Changed 2 years ago by dom_thual
Replying to lfranc:
Sarebbe utile implementare un meccanismo che consenta l'apertura di OrdiniProduttore periodici da parte dei ReferentiProduttoreGAS, per alleggerire il carico di lavoro di questi ultimi ed evitargli la necessità di eseguire azioni ripetitive.
Sarebbe utile per gli ordini periodici. Cioè quelli che si presentano a frequenza alta.
Per quelli saltuari si può anche non prevedere questo meccanismo per il momento.
Si potrebbe ragionare sugli 3 tipi di cadenza ordini: settimanali, quindicinali e mensili.
Con un regola per semplificare: mono ordine per produttore, mono listino.
Il motore puo ciclare ogni ora (mezzo giorno?)
ad ogni tic, per ogni GAS il motore:
- Recupera tutti produttori con cadenza periodiche impostate
- Controlla se esiste un ordine aperto
- Se esiste controlla se è da chiudere
- Chiude e manda email al produttore e al referente dopo avere compilato il report di tipo famiglia o di tipo prodotti o entrambi.
- Se esiste controlla se è da chiudere
- Se non c'è, controlla se è ora di aprire
- apre se necessario
- Associa gli OrdineGasista pre compilati (ticket #41)
- apre se necessario
Per un produttore
- Cadenza periodica Si o No (permette di non includere questo produttore nel trattamento)
- Tipo di report
- Numero di giorni prima della consegna.
- Assegnazione di un giorno di consegna [LMMGVSD]
- Assegnazione di un ora di consegna (con minuti)
- Assegnazione di un punto di ritiro (se richiesto dalla configurazione GAS)
- Start-Stop motore Si o No (sospende la gestione del motore per questo produttore)
- --> configurazione di cadenza:
Tipo Settimanale:
- definire il giorno settimanale [LMMGVSD] e l'ora di apertura (senza minuti)
- definire il numero di giorni di apertura [1..6]
- definire ora di chiusura (senza minuti)
Tipo quindicinale:
- definire il giorno settimanale [LMMGVSD] e l'ora di apertura (senza minuti)
- definire il numero di giorni di apertura [1..13]
- definire ora di chiusura (senza minuti)
Tipo mensile:
- definire il numero di mese tra le aperture [1..11]
- definire il giorno settimanale [LMMGVSD] e l'ora di apertura (senza minuti)
- definire la settimana di apertura [1..4]
- definire il numero di giorni di apertura [1..20]
- definire ora di chiusura (senza minuti)
Per sapere quando aprire il motore recupera l'ultimo OrdineProduttore aperto e si bassa sulla data di apertura. Se il primo in assoluto, il motore apre il primo giorno-ora che incontrerà.
Il tipo definisce una quantità di giorni da superare prima di aprire il prossimo.
Gestione del ritiro:
Al secondo della categoria merceologico, esiste una durata corta o lunga tra una chiusura e una consegna. E il tempo necessario al produttore di preparare l'ordine. Il motore all'apertura calcola il giorno di consegna.
In questa fase non ci gestiscono i feriali.
In caso particolare: si passa in modalità manuale. Si mette in sospensione il meccanismo. si gestisce manualmente durante il periodo speciale (vacanze, mesi corti, feste e sacramenti).
Si riavvia il sistema manualmente togliendo la sospensione.
Nota: attributo del GAS. Esiste la sospensione generale a livello di GAS.
Nota: se un GAS per un produttore non è in grado di definire questi parametri, allora si trova davanti un produttore da gestire manualmente.
Ovviamente c'è da vedere il caso del multi-listino e del multi-ordine.
Come si fa in questi casi?
comment:4 Changed 2 years ago by fero
Ack. Secondo me ora implementiamo l'ordine base e poi aggiungiamo i campi necessari per la periodicità. Volendo li potremmo gestire anche con un'entità esterna
comment:5 in reply to: ↑ 2 Changed 2 years ago by lfranc
Replying to dom_thual:
- Recupera tutti produttori con cadenza periodiche impostate
- Controlla se esiste un ordine aperto
- Se esiste controlla se è da chiudere
- Chiude e manda email al produttore e al referente dopo avere compilato il report di tipo famiglia o di tipo prodotti o entrambi.
- Se non c'è, controlla se è ora di aprire
- apre se necessario
Io separerei gli step di apertura e chiusura di un OrdineProduttore; anche perché, almeno in linea di principio, possono esistere più OrdiniProduttore aperti simultaneamente per un dato Produttore, specialmente nel caso della gestione multi-GAS (un OrdineProduttore a livello di Retina dovrebbe poter coesistere con un OrdineProduttore a livello di GAS, a mio avviso).
- Associa gli OrdineGasista pre compilati (ticket #41)
Anche questo step io lo separerei per semplicità di gestione.
Per sapere quando aprire il motore recupera l'ultimo OrdineProduttore aperto e si bassa sulla data di apertura. Se il primo in assoluto, il motore apre il primo giorno-ora che incontrerà.
Il tipo definisce una quantità di giorni da superare prima di aprire il prossimo.
Io non mi baserei sulla data di apertura dell'ultimo OrdineProduttore, ma su quella del precedente OrdineProduttore generato dall'OrdineProduttorePeriodico (se esiste); questo perché un OrdineProduttore "non periodico" potrebbe avere una natura "straordinaria" e non dovrebbe poter influenzare gli OrdiniProduttore "ordinari".
Ovviamente c'è da vedere il caso del multi-listino e del multi-ordine.
Come si fa in questi casi?
Il caso del "multi-ordine" a me non pare che presenti dei problemi, posto che ammettiamo la possibilità di più OrdiniProduttore aperti simultaneamente.
Riguardo al "multi-listino", non sono sicuro di aver capito precisamente quello che intendi.
