Rooster overzicht per 4 weken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Alexander

Alexander

08/03/2008 16:40:00
Quote Anchor link
zo hehe eindelijk posten, was eerst ff rond neuzen in phphulp... maar nu eindelijk doen wat ik vanaf begin van de ochtend wou doen. Ik ben al een tijdje bezig voor mijn werk om een rooster online te zetten, moet zeggen dit lukt me aardig gelukt was.

Alleen nu bij het persoonlijk rooster zou ik graag willen om het rooster weer te geven per vier weken en de totalen op te tellen per periode. (dus het script zou rekening moeten houden mee dat 1 t/m 4 1 periode is en 5 t/m 8 ga zo maar door, maar bij weken van 53 weken is ons zo bedrijf zo omslachtig geweest om 45 tm 49 te doen (5 weken) em 50 tot en met 53)...

Alleen weet ik niet hoe ik dit het besta kan op zetten, want zelf dacht ik dat ik iets moet doen met een date() functie die alle weken van het jaar moet kennen en daarna bepalen welke weken in werlke periode zit maar door dat al meerdere dingen geprobeerd hebt kom ik nu hier bij jullie.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
<?
echo '<h1>Persoonlijk rooster: '.$naam.'</h1>';


echo '<a href=rooster.php>Week rooster</a> |';

 $query = mysql_query("SELECT * FROM `kw_personeel` WHERE id='".$_GET['id']."'");
$row = mysql_fetch_array($query);
        
print "
<a href=\"javascript:void(null)\" target=\"_self\" onClick=\"window.open('print_persoonlijk_rooster.php?id="
.$row['id']."','1','height=400,width=600,adress=0,location=0,menubar=0,statusbar=0,locationbar=0,scrollbars=1,resizable=1');\">Print rooster</a>";



  print'<br><br><form><table width="100%" class="kwantum_td">
    <tr>
    <td height="20"><b>&nbsp;</b></td>
      <td height="20">'
;
      
if (isset($_GET['id']) && is_numeric($_GET['id'])) {
      $naam = $_GET['id'];
  
    }
else {
      $naam = '0';
    }


print ' <select onchange="this.form.submit()" name="id" id="jaarweek" value="'.$result['naam'].'"/>';

$query = mysql_query("SELECT * FROM `kw_personeel` WHERE actief = 1 ORDER BY naam ASC") or die (mysql_error());
while($result = mysql_fetch_assoc($query)){
    
print '<option value="'.$result['id'].'"' . ($naam == $result['id'] ? ' selected="selected"' : '') . '>'.$result['naam'].'
    </option>'
;
  
   }

  
print'</select></td>
      <td class="kwantum_td" height="20" width="40"><b>&nbsp;Ctr</b></td>
      <td class="kwantum_td" height="20" width="40"><b>&nbsp;Ma</b></td>
      <td class="kwantum_td" height="20" width="40"><b>&nbsp;Di</b></td>
      <td class="kwantum_td" height="20" width="40"><b>&nbsp;Wo</b></td>
      <td class="kwantum_td" height="20" width="40"><b>&nbsp;Do</b></td>
      <td class="kwantum_td" height="20" width="40"><b>&nbsp;Vri</b></td>
      <td class="kwantum_td" height="20" width="40"><b>&nbsp;Za</b></td>
      <td class="kwantum_td" height="20" width="40"><b>&nbsp;Zo</b></td>
      <td class="kwantum_td" height="20" width="40"><b>&nbsp;Uren</b></td>
    </tr>'
;
  
    
print '<tr>
      <td class="kwantum_td" colspan="2" height="20" width="40">&nbsp;</td>
      <td class="kwantum_td" height="20" width="40">&nbsp;'
.isset($result1['maandag']).'</td>
      <td class="kwantum_td" height="20" width="40">&nbsp;'
.isset($result1['dinsdag']).'</td>
      <td class="kwantum_td" height="20" width="40">&nbsp;'
.isset($result1['woensdag']).'</td>
      <td class="kwantum_td" height="20" width="40">&nbsp;'
.isset($result1['donderdag']).'</td>
      <td class="kwantum_td" height="20" width="40">&nbsp;'
.isset($result1['vrijdag']).'</td>
      <td class="kwantum_td" height="20" width="40">&nbsp;'
.isset($result1['zaterdag']).'</td>
      <td class="kwantum_td" height="20" width="40">&nbsp;'
.isset($result1['zondag']).'</td>
      <td class="kwantum_td" height="20" width="40">&nbsp;</td>
    </tr>'
;
  
    
  //afdeling en namen hier
$query = mysql_query("SELECT * FROM `kw_personeel` WHERE id='".$_GET['id']."'");
$row = mysql_fetch_array($query);

  print '<tr class="kwantum_td_title">
      <td colspan="11" height="20">&nbsp;Week - Jaar</td>
    </tr>    '
;
    
 function
weekToweek($date)
{

    $week = substr($date, 2);
    $jaar = date('Y', mktime(0, 0, 0, 1, 1, substr($date, 0, 2)));
    return 'week ' . $week . ' - ' . $jaar;
}


if($status == "1"||$status == "2"){
  $query2 = mysql_query("SELECT * FROM kw_rooster WHERE naam = '" . $naam . "' ORDER BY jaarweek DESC") or die (mysql_error());
}
else {
  $query2 = mysql_query("SELECT DISTINCT kw_rooster.* FROM `kw_rooster` JOIN `kw_week` ON kw_rooster.jaarweek = kw_week.jaarweek WHERE kw_week.actief = 1 AND kw_rooster.naam = '" . $naam . "' ORDER BY kw_rooster.jaarweek DESC");
}

  
while($row = mysql_fetch_assoc($query2)){

  $qu = mysql_query("SELECT * FROM `kw_week` WHERE jaarweek ='".$row['jaarweek']."'");
  $week = mysql_fetch_array($qu);
  
  $qu = mysql_query("SELECT * FROM `kw_personeel` WHERE id ='".$row['naam']."'");
  $naam = mysql_fetch_array($qu);
  
print '    <tr>
<td class="kwantum_td" height="20" colspan="2">&nbsp;'
;
if($status == "1"||$status == "2"){
print'<a href="maak_rooster.php?actie=lees&id='.$row['id'].'">';
}

else {
print '<a href="rooster.php?jaarweek='.$row['jaarweek'].'">';
}

print''.weekToweek($week['jaarweek']).'</a>';


print '</td>
      <td class="kwantum_td" height="20" width="40" align="center">'
.$naam['contract'].'</td>
      <td class="kwantum_td" height="20" width="40" align="center">'
.$row['maandag'].'</td>
      <td class="kwantum_td" height="20" width="40" align="center">'
.$row['dinsdag'].'</td>
      <td class="kwantum_td" height="20" width="40" align="center">'
.$row['woensdag'].'</td>
      <td class="kwantum_td" height="20" width="40" align="center">'
.$row['donderdag'].'</td>
      <td class="kwantum_td" height="20" width="40" align="center">'
.$row['vrijdag'].'</td>
      <td class="kwantum_td" height="20" width="40" align="center">'
.$row['zaterdag'].'</td>
      <td class="kwantum_td" height="20" width="40" align="center">'
.$row['zondag'].'</td>
      <td class="kwantum_td" height="20" width="40" align="center">'
.$row['totaaluren'].'</td>
    </tr>'
;



if($status == "1"||$status == "2"){
  
    //totalen
       print'
      <tr>
      <td class="kwantum_td" colspan="9" height="20">&nbsp;(test blok alleen zichtbaar voor admin en mods)</td>
       <td class="kwantum_td" height="20" width="80" align="center" colspan="2"><i>Totaal: '
;
      
     $select= "SELECT SUM(totaaluren) AS totaaluren FROM kw_rooster WHERE naam = '" . $naam['id']. "' AND  jaarweek = '".$row['jaarweek']."'";
     $query = mysql_query($select);
     $result = mysql_fetch_assoc($query);
echo $result['totaaluren'];

print'</i></td>
    </tr>
     <tr>
      <td class="kwantum_td" colspan="11" height="20">&nbsp;</td>
    </td>
    </tr>'
;
    }
    
    }

    
  print '<tr>
      <td class="kwantum_td" colspan="2" height="20">&nbsp;</td>
      <td class="kwantum_td" height="20" width="40" align="center">&nbsp;</td>
      <td class="kwantum_td" height="20" width="40" align="center">&nbsp;</td>
      <td class="kwantum_td" height="20" width="40" align="center">&nbsp;</td>
      <td class="kwantum_td" height="20" width="40" align="center">&nbsp;</td>
      <td class="kwantum_td" height="20" width="40" align="center">&nbsp;</td>
      <td class="kwantum_td" height="20" width="40" align="center">&nbsp;</td>
      <td class="kwantum_td" height="20" width="40" align="center">&nbsp;</td>
      <td class="kwantum_td" height="20" width="40" align="center">&nbsp;</td>
      <td class="kwantum_td" height="20" width="40" align="center">&nbsp;</td>
    </tr>'
;
      
  //einde rooster

  print'
      <tr>
      <td class="kwantum_td" colspan="9" height="20">&nbsp;</td>
       <td class="kwantum_td" height="20" width="80" align="center" colspan="2">Totaal: '
;
      
     $select= "SELECT SUM(totaaluren) AS totaaluren FROM kw_rooster WHERE naam = '" . $naam['id']. "'";
     $query = mysql_query($select);
     $result = mysql_fetch_assoc($query);
echo $result['totaaluren'];

print'</td>
    </tr>
        <tr>
      <td class="kwantum_td" colspan="11" height="20">&nbsp;</td>
    </td>
    </tr>'
;
  }

//einde optelling



 print '<tr class="kwantum_td_title">
      <td colspan="11" height="20">&nbsp;Opmerkingen</td>
    </tr>
    <tr>    
       <td colspan="11" height="20"><br>'
;

if($status == "1"||$status == "2"){

      
      print ''.$naam['opmerkingen'].'';
      
      }

print' <br><br></td>
    <
/tr>
  <
/table></form> ?>
Gewijzigd op 01/01/1970 01:00:00 door Alexander
 
PHP hulp

PHP hulp

22/12/2024 09:25:59
 
Jesper Diovo

Jesper Diovo

08/03/2008 16:45:00
Quote Anchor link
Met array's?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$periodes
= array(
1 => array(1, 2, 3, 4),
2 => array(5, 6, 7, 8),
3 => array(9, 10, 11, 12),
// etc.
);
?>


Deze dan met een foreach in een foreach doorlopen, et voila : ).
 
Joren de Wit

Joren de Wit

08/03/2008 16:46:00
Quote Anchor link
Ik zie dat je gebruik maakt van een database. In dat geval zou je de verschillende perioden in een aparte tabel op kunnen slaan, dus zoiets:

perioden
-----------
id INT
start DATE
end DATE

Op deze manier kun je per periode een begin en einddatum aangeven en periodes wijzigen en verwijderen.

Vervolgens kun je aan de hand van deze datums en de andere gegevens over het rooster uit je database bepalen welke dagen in welke periode vallen.
 
Alexander

Alexander

08/03/2008 21:11:00
Quote Anchor link
beide bedankt voor jullie reacties.

Voor die periodes en met die arrays houd tie zelf rekening mee de aantal weken in een jaar ? Ik heb zelf vrij weinig ervaring met array's (A)
 
Jesper Diovo

Jesper Diovo

08/03/2008 21:43:00
Quote Anchor link
Natuurlijk niet. Maar er bestaat een optie bij date() die het aantal weken in een jaar op kan halen. Misschien met dat + wat automatisme er een mooie array uit komt rollen?

Al zou ik dan toch voor de database optie gaan. Dit alleen niet met data doen, maar met weeknummers.
 
Alexander

Alexander

08/03/2008 22:37:00
Quote Anchor link
hmmm ff denken hoor, als ik een extra tabel maakt met daarin de aantal periodes dan betekend het nog dat ik zelf van te voren alle periodes meot aan geven toch? dit kan volgens mij bijna niet automatisch?

Misschien heb je er wat aan als ik meld dat de weken worden ook al handmatig ingevoerd, waarbij we de week bestaande hebben uit jaar - week dus 0810.. misschien zijn hier nog opties voor?

kan ik dan misschien niet beter zeggen dat bij het invoeren van een week de periode nummers worden toegschreven in de db uit DB date()? met week nummers?
Gewijzigd op 01/01/1970 01:00:00 door Alexander
 
Alexander

Alexander

30/03/2008 23:26:00
Quote Anchor link
al een tijdje heb ik niet meer terug gekeken op het forum, misschien de hoop dat iemand me het nog iets duidelijkes kon uit leggen of hoe of wat. Ik maak inderdaad gebruik van een DB. alles word goed en netjes uit gelezen maar wat ik graag zou willen is dat ik de gegevens per 4 weken zichbaar zijn met een subtotaal.

Met arrays kom ik niet ver mee tot nu toe, of iemand meot een goed voorbeeld hebben waar ik in mijn situatie het kan gebruiken. ene kant lijkt het me simpel maar kan me tot nu toe niet echt iets vinden met daarop wat ik wil.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.