Ticket #39 (new compito)

Opened 3 years ago

Last modified 3 years ago

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 3 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 3 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 non c'è, controlla se è ora di aprire
    • apre se necessario
      • Associa gli OrdineGasista pre compilati (ticket #41)

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?

Last edited 3 years ago by dom_thual (previous) (diff)

comment:3 Changed 3 years ago by lfranc

  • Description modified (diff)

comment:4 Changed 3 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 3 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.

comment:6 Changed 3 years ago by lfranc

Bozza di analisi per gli ordini periodici.

Note: See TracTickets for help on using tickets.