Gestone dei turni del personale

di Jocman il
13 risposte

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 :

  1. 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

  2. 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

13 Risposte

  • Io creerei una tabella dove inserire gli ID degli operatori, il turno di competenza (A o B) la data del turno,  un FLAG per identificare se l'operatore e' tuttora in servizio (e non si sia licenziato/pensionato), un campo NOTE dove annotare se c'e' stata una sostituzione, ecc..

    Avrai quindi tutto lo storico dei turni dalla "notte dei tempi" in poi....

    Poi semplicemente con una query vai a prelevare per ogni operatore di ogni turno l'ultima volta che e' stato messo in turno e Ti crei un report con le date crescenti; i primi quattro del report dovrebbero essere quelli da mettere in turno (poi se uno e' in ferie, malattia, infortunio, congedo, ecc. passi al quinto nome, poi al sesto e cosi' via).

  • Si volendo potrei già farlo dalla tabella storica che ho già creato (dove ho previsto l'eventualità di flag attivo/in malattia/pensione).
    volevo evitare di passare per un report, ma avere un qualcosa a video con cui magari interagire, considerando che dovrei gestire eventuali cambi, turni doppi (estate) etc.
    ma in ogni caso la tua può essere una soluzione efficace ed immediata.

  • Sarebbe piu' chiaro capire come operi perche' cosi' e' abbastanza fumoso...

    1) Con quanto tempo di anticipo devi creare i turni?

    2) Quanti turni devi creare per volta? (un orizzonte temporale di una settimana, un mese, tre mesi...?)

    3) Che vuol dire turni doppi? Due turni nello stesso giorno o negli stessi orari?

    Se non vuoi usare un report crea una form...

    Io terrei separata l'indisponibilita' per malattia (che e' una situazione temporanea) dal licenziamento/pensionamento (che e' invece definitiva).

    Nel caso di licenziamento potresti, dalla maschera dell'anagrafica dipendente, andare ad aggiornare in automatico tutti i FLAG delle volte che' e' stato in turno cosi' non te lo propone piu'.

    Se vuoi gestire le assenze per periodo, Ti consiglio di creare una tabella a parte e poi incrociare i dati delle persone che non sono disponibili.

  • Turni doppi perchè nel periodo estivo mi ritrovo a dover gestire 3 mesi (giugno luglio agosto) con 2 tipologie di turno (come spiegavo nel primo post), e se con 60 persone riesco a gestire 33 turni (11 turni al mese), con l'altra tipologia di turno non ce la faccio (5 turni x 3 mesi =15 > ho 11 persone da impiegare > qualcuno si farà un turno doppio in estate)

    La tempistica è un terno al lotto: in estate te li dicono (per ovvi motivi, senno si scatena una guerra civile) con largo anticipo. nel resto dell'anno in genere il mese prima.

    In ogni caso, ho risolto (almeno per ora) utilizzando 2 tabelle: una cronologica (che mi fornisce lo storico e l'elenco degli impiegabili a seconda dell'ultimo turno che hanno fatto) e una temporanea, in cui inserisco i turni "a venire" assegnati. In questo modo posso fare eventuali variazioni, assegnare la stessa persona a 2 turni (se serve). Poi una volta passata la data, in maniera "semiautomatica" i turni passati vengono registrati nel cronologico e la tabella temporanea liberata.

    Ho previsto la possibilità di temporaneo impedimento/assenza (anche se va gestita meglio), licenziamento o comunque trasferimento definitivo ad altri lidi.

    Le prove che sto facendo sembrano darmi il risultato che mi serve. prossimo passo sarà lavorare in parallelo che il collega che a fine anno mi mollerà il tutto e vedere se andiamo di pari passo (o quasi).

    con qualche query incrociata estrapolo anche i dati storici, di riepilogo per singola persona etc. etc.

  • Di solito su questi sistemi i problemi nascono non tanto nella programmazione dei turni quanto nei cambiamenti rispetto alla programmazione standard che inevitabilmente bisogna fare perche' uno ieri si e' ammalato, l'altro si e' licenziato, l'altro ancora si e' fatto male al mignolino e non puo' venire

    E' come i turni degli insegnanti, ad inizio mese fai la programmazione bella e pulita, che poi si scassa tutta perche' su 10 ci sono sempre due tre che marcano visita, e mantenere  tutti i vincoli imposti non e' sempre facile e/o possibile

    Stabilito che il lavoro sia una rogna, stabilito che portera' via un mare di tempo, e visto che molte volte e' compito assegnato a "..lui perche' e bravo co ste robe..", consiglierei caldamente di far notare alla dirigenza che compiti di questo tipo non si possono prendere sottogamba e qundi un qualche ritorno ci deve pur essere

    Facce sape', credo sia argomento che interessa un po' tutti

  • Ammetto di non aver letto i dettagli di ognuno, ma un primo mio step per risolvere il problema del "ho previsto i Turni, ma poi 3 su 10 cambiano per svariati motivi"...lo vedrei così:
    1) Tabella TurniPrevisti
    2) Tabella Turni
    La tabella Turni è quella definitiva finale che ha anche un valore storico. La tabella TurniPrevisti viene compilata preventivamente...poi la storia modificherà di conseguenza. Pertanto:
    1) le due tabelle possono avere gli stessi campi
    2) un pulsante accoda di default TurniPrevisti in Turni
    3) dopo l'accodamento cancella i record da TurniPrevisti
    4) manualmente si modificano i cambiamenti sopraggiunti in Turni

    Ovviamente all'occorrenza si possono stampare tanto i TurniPrevisti, quanto i Turni (reali).

  • In realtà la problematica degli "imprevisti" l'avevo prevista. E anche la soluzione che sto attualmente provando da un paio di settimane (e sembra funzionare) è sullo stile di quella proposta da Osvaldo.

    Baso tutto su 2 tabelle: una cronologica (storica) ed una provvisoria. Stessi campi, ma finchè non passa la data del turno tutti i nominativi (e i relativi turni) presenti nella provvisoria sono editabili: cambio nome, cambia data, soppressione del turno e così via. Una volta passata la data il sistema mi avvisa che ci sono dei turni ormai passati (e che quindi, se non ho cambiato nulla, possono essere storicizzati) e li passa nella tabella cronologica.

    Non ho la certezza completa degli automatismi in quanto (dato il periodo di ferie) il collega che li fa attualmente si è portato avanti per tutta la stagione, e quindi i prossimi ad essere archiviati saranno quelli di agosto.

    L'editing però funziona (ho dovuto fare un cambiamento . ma anche questo verrà registrato ad agosto)

    Vero che potrei verificare gli automatismi facilmente, ma a questo giro andiamo di sorpresa.

  • 21/07/2026 - Jocman ha scritto:

    Baso tutto su 2 tabelle: una cronologica (storica) ed una provvisoria.

    Come si faceva ai tempi di scuola, devi avere una tabella turni, la sostituzione la consideri come supplenza.

    La tabella turni con i turnisti dal lun alla dom. Metti T sedi turno, R se di riposo.

    Dovresti avere dei turnisti con reperibilità per le sostituzioni.

    Fai la Union tra turnisti e reperibili. Se quel lunedì Pippo è assente attingi a Pluto reperibile.

    La cronologia o registro presenze la alimenti con i dati effettivi.

    Usare la cronologia rischia di prendere in considerazione i supplenti (reperibili) o i dimessi ed escludere gli assenti o i neoassunti.

    Il registro lo usi se gestisci le paghe...

  • Purtroppo non siamo a scuola....Troppe possibilità di imprevisti/cambi di programma soprattutto all'ultimo minuto (per non dire il giorno stesso).

    La cronologia la uso solo per avere uno storico e rivedere chi ha fatto quando e decidere chi mettere di turno.

    Tecnicamente non è una gestione eccessivamente complicata, anche se ovviamente tenderanno sempre a renderti la vita difficile.
    per ora devo vedere se questo modo di gestirla è funzionale (non pretendo sia il metodo giusto o quello migliore....)

  • 21/07/2026 - Jocman ha scritto:

    Purtroppo non siamo a scuola....

    forse mi sono espresso male volendo fare un esempio...

    Al momento con un cartaceo cosa fai?

    prendi il piego dei turni, quello standard.

    nome    |  lun  | mar | mer | gio | ven | sab | dom | settimana
    PIPPO      T      R      T     T     T     T     R       1
    PLUTO      R      T      T     R     T     T     D       1
    PAPERINO   T      T      T     T     T     R     R       1
    .....

    dove T=turno; R=riposo; D=Doppia (festivo)

    controlli le reperibilità

    nome    |  lun  | mar | mer | gio | ven | sab | dom | settimana
    PIPPO      x      s      x     x     x     x     s       1
    PLUTO      s      x      x     s     x     x     x       1
    PAPERINO   x      x      x     x     x     s     s       1
    ...

    dove x=già turnista (potrebbe anche essere null);  s=disponibile.

    se pippo lunedì non c'è lo sostituisce (se necessario) pluto che è reperibile

    calendario presenze provvisorio con sostituzione necessaria

    id|  data  |nominativo|descrizione| dalle | alle |
    1   ggmmaa  pippo				    08:00   12:00	
    2   ggmmaa	paperino	malattia
    3   ggmmaa	pluto     sostituzione  08:00   12:00
    ...

    calendario presenze provvisorio senza sostituzione necessaria

    id|  data  |nominativo|descrizione| dalle | alle |
    1   ggmmaa  pippo				    08:00   12:00	
    2   ggmmaa	paperino	malattia
    ...

    quando arriva la giornata lavorativa se devi avere un registro presenze fai la update sul diario (registro presenze) 

    con sostituzione necessaria

    id|  data  |nominativo|descrizione| dalle | alle |
    1   ggmmaa  pippo				    08:00   12:00	
    2   ggmmaa	paperino	malattia
    3   ggmmaa	pluto     sostituzione  08:00   12:00
    ...

    senza sostituzione necessaria

    id|  data  |nominativo|descrizione| dalle | alle |
    1   ggmmaa  pippo				    08:00   12:00	
    2   ggmmaa	paperino	malattia
    ...

    le reperibilità le filtri per giorno settimana dove il valore =s

    ti crei il calendario presunto mensile e a fine o inizio giornata implementi il registro.

    crei la lista dei turnisti (unione turnisti + reperibili) e con doppio click incrementi il calendario.

    puoi anche creare un calendario con la stessa struttura dei turnisti inserendo malattia, ferie ecc.. dando priorità a questa (not in calendario2). valevole sia per turni che per reperibilità.

  • Mi rendo conto che fin dall'inizio ho probabilmente esplicato male l'esigenza.
    Il personale ha i suoi orari lavorativi già definiti (ad esempio i giorni pari dalle 8 alle 14, i giorni dispari dalle 14 alle 20, o cose del genere)

    In aggiunta, oltre la normale giornata lavorativa, hanno un turno di reperibilità h24 (che è quello che devo organizzare/assegnare/gestire) e che, dati i numeri, in una tipologia di impiego capiterà 3 volte l'anno, nell'altra 5 volte l'anno, per ogni persona.

    quindi sapere settimana per settimana che turni di lavoro fa non ha una sua utilità (lo so già....o mattina o pomeriggio). Quello che mi serve è sapere se tizio per quest'anno ha esaurito i suoi turni di reperibilità o, in caso contrario, quanto tempo fa lo ha fatto,  in modo da consentire una rotazione più o meno costante ad ognuno (cosa che è difficile, in quanto variazioni se ne fanno di continuo - esigenze di famiglia, imprevisti, etc) e quindi non è un ciclo costante.

  • Quindi si parla.di turni reperibilità?

    In teoria non esiste un turno di reperibilità, chi è reperibile (sacrifica) quel giorno può essere chiamato. 

    Di solito è il giorno di riposo o la domenica o il festivo.

    Quindi se soltanto Pippo è Pluto riposano il giovedì e hai la necessità di coprire il giovedì, per sfortuna succede sempre di giovedì che fai? Chiami chi non ha la reperibilità il giovedì?

    Puoi fare una turnazione su quei turnisti soltanto.

    Dal registro presenze filtri i giovedì dove in descrizione hai "sostituzione", per usare i dati che ti ho mostrato prima, e li ordini per data decrescente. Oppure conti le occorrenze e chi ne ha meno lo metti come turnista. Al pari prendi la data più remota. 

    Sai che giovedì ci sono Pippo e paperino vedi quante volte hai chiamato Pippo e quante volte paperino e chiami o l'uno o l'altro, se hanno fatto entrambi 2 sostituzioni escludi chi ha lavorato a data più recente.

    Devi comunque avere la tabella dei reperibili per giorno della settimana e dal registro prelevi i dati per quei soggetti reperibili quel giorno.

Devi accedere o registrarti per scrivere nel forum
13 risposte