|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
[MySql](Ci riprovo...)Turni di lavoro...
Ehm.. riecchime.. e spero che questa volta qualcuno sappia indirizzarmi verso la retta via.. :
Allora, c'è una tabella(Lavorazione) composta (in sintesi) da: ID, ID_Persona, ID_Mese (intero, viene memorizzato l'identificativo del mese di lavoro, ad esempio.. marzo come 3, ottobre come 10 etc..) giorno(intero, che può memorizzare il giorno in forma numerica del mese in questione...) C'è un'altra tabella chiamata turni, così composta: ID, ID_Persona, lun mar mer gio ven sab dom Dove nei giorni della settimana viene inserito il numero di ore lavorative assegnate alla persona. Ora... la domandona, come sparo i dati memorizzati in 'turni' nella tabella 'lavorazione', rispettando l'ordine dei giorni? Supponiamo per esempio che i turni siano: lun = 2 mer = 3 gio = 5 dato che nella tabella lavorazione ho soltanto 'giorno' come faccio ?!? Molte grazie a tutti! RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
uppettino
![]()
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
|
Non ho capito qual'è il problema. Se il problema è convertire le ore in giorni basta che fai sum(lun+mar+mer....+dom) / 8 (se 8 è il numero di ore lavorative giornaliere). Cmq vista così non mi pare molto geniale sta base dati: come fai a sapere a che giorno del mese corrisponde il campo lun? In un mese ci sono almeno 4 lunedì
__________________
Il sole è giallo |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
![]() Allora, nella tabella turni, non avrebbe senso sapere a che giorno del mese corrisponde il campo lun, nel senso che si indica solo il turno settimanale del lavoratore a prescindere dal mese. Altrimenti si dovrebbe creare una "settimana tipo" per ogni mese. La tabella turni serve solo ad indicare quante ore alla settimana deve fare la persona. Il problema sorge quando invece di riempire la tabella "lavorazioni" a mano, cioè inserendo manualmente le ore lavorative per il mese, si deve ottenere il riempimento automatico prendendo lo schema dai turni. ![]()
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
|
Non so cosa stai utilizzando per accedere alla base dati (php?) ma dovresti fare una cosa del tipo:
Codice:
select lun, mar, mer, gio, ven, sab, dom from turni where id_persona = TUO_ID Codice:
$lunedì = 15 (supponiamo che lunedì sia il 15 del mese) $mese = 10 (ottobre) $ID_PERSONA = ... //lo hai già tirato fuori in precedenza in base alla logica insert into lavorazione values $ID, $ID_PERSONA, $MESE, $lunedì, $cursore.lun insert into lavorazione values $ID, $ID_PERSONA, $MESE, $lunedì+1, $cursore.mar insert into lavorazione values $ID, $ID_PERSONA, $MESE, $lunedì+2, $cursore.mer
__________________
Il sole è giallo |
![]() |
![]() |
![]() |
#6 | |||
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
![]() Quote:
Quote:
![]()
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
|||
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Provo a mettere il tutto in forma 'grafica' per spiegarmi meglio:
su di un form, una volta scelto il mese, ottengo una griglia formata da tante righe quanti sono i giorni del mese scelto; supponiamo febbraio 2007: Codice:
ID_Giorno, Numero Giorno Ore gio 1 2.5 ven 2 sab 3 dom 4 lun 5 mar ....blabla mer gio ven sab dom ...blabla Io invece dovrei riempire la griglia prendendo le ore presenti nella tabella turni... ![]()
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
|
In Java:
Codice:
//QUESTI PARAMETRI ARRIVANO DALLA LOGICA DEL PROGRAMMA int id = <ID> int idpersona = <ID_PERSONA> int mese = 10; //ottobre int lunedi = 15; //lunedì 15 ottobre int turni[] = new turni[7]; Connection c = DriverManager.getConnection(...); Statement st = c.createStatement(); ResultSet rs=null; rs = st.executeQuery("select lun, mar, mer, gio, ven, sab, dom from turni where id_persona = "+idpersona); if (rs.next()) { turni[0]=rs.getInt("LUN"); turni[1]=rs.getInt("MAR"); turni[2]=rs.getInt("MER"); [...] turni[6]=rs.getInt("DOM"); } //fin qui hai caricato i risultati del resultset nell'array turni[] for (int i=0; i<7; i++) { if (turni[i]>0) //se in quel giorno il dipendente ha lavorato st.execute("INSERT INTO LAVORAZIONE VALUES ( " + id + ", " + idpersona + ", " + mese + ", "+ lunedi+i +", " + turni[i] + ")" }
__________________
Il sole è giallo |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
|
![]() praticamente nella tabella turni è memorizzata, per ogni persona la somma delle ore lavorate per ogni giorno della settimana? cioè nella colonna lun c'è la somma delle ore lavorate in tutti i lunedì del mese, nella colonna mar c'è la somma delle ore lavorate in tutti i martedì del mese e così via? ![]() |
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
![]() No, non è la somma, indica solo il lunedi quante ore deve lavorare, cioè, se ci sono 3 ore, vuol dire che ogni lunedi del mese quella persona deve fare 3 ore di lavoro. @Yorkeiser: provo a ragionare sul tuo esempio in Java ![]()
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:46.