Php e mysql gestione assenti

di il
7 risposte

Php e mysql gestione assenti

Ciao a tutti, da una ricerca effettuata non ho trovato nulla, spero quindi di non aver fatto crossposting.
Il mio quesito è il seguente, tramite l'aiuto di un altro forum che tratta di excel ho un foglio che mi permette la sostituzione di personale assente proponendomi di volta in volta i possibili sostituti sulla base di un orario fisso.
Faccio un esempio per spiegami meglio
A lavora il lunedi dalle 08-09 e dalle 10-11
B lavora il lunedi dalle 12-14 ( quindi se A è assente il sistema dovrebbe propormi B e cmq tutti i dipendenti che in quelle ore sono liberi per le ore di A)
Non chiedo codici già pronti, ma capire la logica e come impostare la o le tabelle nel db.
Grazie.

7 Risposte

  • Re: Php e mysql gestione assenti

    Io farei un tabella con 3/4 colonne:
    0. ID del lavoratore (primary key, int, autoincrement) opzionale.
    1. NOME del lavoratore (text, unique)
    2. Orario inizio turno (int)
    3. Orario fine turno (int)

    Poi con PHP puoi fare delle semplici query per determinare se in un certo range il lavoratore e' disponibile o no.
  • Re: Php e mysql gestione assenti

    Grazie per la risposta.
    Proverò a seguire il tuo consiglio.
    Eventuali altri consigli sono ben accetti.
  • Re: Php e mysql gestione assenti

    Ci vuole almeno una colonna di controllo per i giorni della settimana in cui sono presenti i lavoratori, se l'attività è a ciclo continuo, disponibilità agli straordinari? Ore di lavoro accumulate? Ferie?
    Dipende dal grado di accuratezza che si vuole raggiungere. Di quante persone si tratta?
  • Re: Php e mysql gestione assenti

    Ciao Tremor,
    entro più nello specifico. Si tratta di docenti che svolgono il proprio orario dal lunedi al venerdi nella fascia oraria 08-15.
    Qual è la mia idea. Caricare l'orario di ogni singolo docente, e ogni qualvolta un docente si assenta il sistema dovrebbe sulla base del docente assente propormi tutti coloro che sono disponibili (cioè non lavorano in quelle ore) ed eventualmente quelli in coopresenza.
    Faccio un esempio di chiarezza
    Docente_A lunedi 08-09 classe 1c, 09-10 1d, 12-13 5a;
    Docente_B lunedi 08-09 classe 3a, 11-12 3a, 12-13 4b;
    Docente_C lunedi 08-09 classe 1c, 14-15 5e;

    Se il docente_A lunedi si assenta vorrei che il sistema mi proponesse per la 1c il docente_C (coopresenza)
    per la 1d mi proponesse sia Docente_B che Docente_C , per la 5e il Docente_C.

    Immagino ci sia un bel pò da fare, cmq ho tempo e un file in excel che fa già tutto questo.
    Grazie.
  • Re: Php e mysql gestione assenti

    Non ho le competenze necessarie per aiutarti con php e neppure con mysql, però dei rudimenti di programmazione per piccoli database con Access li ho acquisiti.
    Ti dico come la imposterei io, poi lascio ai nostri maestri il giudizio sulle nostre soluzioni.
    Per me ci va una tabella presenze per ogni giorno della settimana con una colonna per ogni fascia oraria e la prima colonna impostata con l'ID dipendente di modo che, per ogni giorno, ad ogni ora, sai inanzitutto, chi è presente sul posto di lavoro. Poi un'altra serie di tabelle per ogni giorno della settimana in cui l'ID dipendente sta lavorando o no nell'ora interessata, (questa potrebbe anche essere una colonna affiancata a quella della presenza e già si dimezzerebbero le tabelle necessarie) dalla sovrapposizione dei valori di presenza e impegno per un determinato giorno e ad una determinata ora estrai i dipendenti disponibili, diciamo in un recordset (quando usavo Access io si chiamava così). chiami una random sul recordset ottenuto ed estrai il fortunato che deve sostituire il collega assente.
    Ti ripeto, è un'idea di massima, certamente migliorabile, da verificare per la corrispondenza con le necessità effettive; una possibile complicazione potrebbe essere data dalla necessità di accorpare su un'unica persona, possibilmente, assenze contigue.
  • Re: Php e mysql gestione assenti

    Ciao,

    se ho ben capito quello che vuoi fare, io lo imposterei in questo modo:

    Tabella docenti
    
    id  docente
    1   Docente_A
    2   Docente_B
    3   Docente_C
    
    Tabella classi
    
    id  classe
    1   1c
    2   1d
    3   5a
    4   3a
    5   4b
    6   5e
    
    Tabella disponibilita_docenti
    
    id  id_docente  id_classe   data_inizio  		  data_fine
    1   1          	1     		2019-09-09 08:00:00    2019-09-09 09:00:00
    1   1          	2     		2019-09-09 09:00:00    2019-09-09 10:00:00
    1   1          	3     		2019-09-09 12:00:00    2019-09-09 13:00:00
    1   2          	4     		2019-09-09 08:00:00    2019-09-09 09:00:00
    1   2          	4     		2019-09-09 11:00:00    2019-09-09 12:00:00
    1   2          	5     		2019-09-09 12:00:00    2019-09-09 13:00:00
    1   3          	1     		2019-09-09 08:00:00    2019-09-09 09:00:00
    1   3          	6     		2019-09-09 14:00:00    2019-09-09 15:00:00
    
    id_docente e id_classe sono chiave esterne

    A questo punto recuperare i dati non è complicato, puoi usare una query ad esempio che estrae gli id dei docenti che non si trovano nella tabella_disponibilita (WHERE NOT IN) in un determinato orario, ossia i docenti liberi in quelle ore.
  • Re: Php e mysql gestione assenti

    Grazie... provo subito
Devi accedere o registrarti per scrivere nel forum
7 risposte