Ciao a tutti.
Al lavoro mi è stato anticipato che (per la mia gioia) da gennaio mi verrà “assegnato” l’incarico di gestire i turni di servizio del personale.
E siccome è una rogna (ovviamente) sto cercando un modo per semplificarmi la vita.
In linea di massima la situazione sarà questa:
· il personale (non tutto, solo chi ha una determinata qualifica) ricopre 2 tipologie di turno (diciamo A e B) sulla base delle proprie attribuzioni (chi è qualificato per A non fa B e viceversa)
· ho necessità di tenere uno storico (perché ovviamente non è la prima volta che ti senti dire: ma io ho fatto più turni di quell’altro…)
· i turni da coprire (sia A che B) vengono comunicati periodicamente (non hanno una ciclicità fissa)
· una volta stabiliti i nominativi dei turni ci potrebbe essere la necessità di variare il nominativo (per sopraggiunte esigenze, etc etc)
· in alcuni periodi (classico il periodo estivo, in cui sarebbe il caso di pianificare i turni per giugno / luglio / agosto) può succedere che si debba fare "il giro" dei nominativi più volte. Ad esempio, mentre per il turno A ho disponibilità di circa 60 nominativi, per il turno B i nominativi disponibili sono 10. A questo, aggiungiamo che, al momento, i turni A sono 11 al mese,i turni B sono 5. Quindi nel periodo estivo, 60 nominativi per il turno A mi permettono di pianificare tutti e 3 i mesi, ma i 10 nominativi per il turno B non sono sufficienti, quindi almeno 5 persone verranno impiegate 2 volte in quel periodo
· a differenza di chi lo fa adesso (tutto manualmente e ancora non capisco con che criteri), vorrei fare in modo che access mi fornisca i nominativi dei “prossimi in lista”, ovvero di chi è stato di turno in data più vecchia (tipo “mi servono 4 nomi per il turno B > ecco l’elenco dei primi 4 per il turno B che hanno fatto il turno precedente in data più lontana”)
Fino ad ora, mi sono creato una tabella “storica” dove ho inserito IDPersonale, IDTurno (A o B – o meglio 1 o 2) e data di tutti i turni fatti fino ad oggi.
IDPersonale lo prendo da una tabella con cui gestisco (per altri motivi) tutto il personale (indipendentemente dal fatto che siano destinati o meno ad essere impiegati in quei turni)
La questione (motivo del post) è: sto cercando di figurarmi come impostare il DB ma non mi viene in mente nulla…..
Avevo pensato:
1. una tabella apposita separata da quella storica, in cui gestire il personale per i vari turni solo nelle nuove date, del tipo “in questa tabella questi sono i nominativi con le date più lontane”
2. a quelli che seleziono aggiorna la data del turno (che quindi diventeranno più recenti e non verranno proposti nei turni successivi).
3. Su questa tabella potrei gestire anche le variazioni di data (per le sopraggiunte esigenze)
4. In base a questa tabella stampare i turni con i nuovi nomi e date da distribuire al personale
Ma anche cosi la cosa mi sembra un po' farraginosa. Soprattutto :
Tizio chiede a Caio di sostituirlo. Allora assegno a Caio la data di Tizio, ma in qualche modo dovrei fare sì che Tizio torni “in fondo” all’elenco, in modo che al prossimo giro mi risulti il primo di quelli con la data più vecchia. Ma come me la “invento” la nuova data di Tizio, se inizialmente e cioè prima del cambio, avevo aggiornato la data? questo sempre in previsione di dover alimentare la tabella storica
nei periodi tipo quello estivo: mi dovrei ritrovare un Tizio presente 2 volte (per coprire il turno B), mentre nel corso dei periodi normali non mi serve la doppia presenza
E oltretutto, come mi regolo con l’alimentazione della tabella storica? Non posso farla contestualmente ai nuovi turni, perché può succedere che anche fino al giorno prima mi venga chiesto un cambio. E quindi quando e come l’alimento?
Si accettano idee, consigli e suggerimenti.
Grazie a tutti
Andrea