Blame view

src/Template/Pages/stats.ctp 5.55 KB
4e258e44   Etienne Pallier   Nouvelle page "St...
1
2
<?php

8b356833   Etienne Pallier   Stats avec pource...
3
4
use SebastianBergmann\CodeCoverage\Report\PHP;

4e258e44   Etienne Pallier   Nouvelle page "St...
5
6
7
8
/*
$avg['CREATED'] = 10;
$avg['VALIDATED'] = 7;
$avg['ARCHIVED'] = 1;
4e258e44   Etienne Pallier   Nouvelle page "St...
9
10
11

$tot['CREATED'] = 100;
$tot['VALIDATED'] = 70;
e4729831   Etienne Pallier   Page Statistiques...
12
$tot['TOBEARCHIVED'] = 10;
4e258e44   Etienne Pallier   Nouvelle page "St...
13
14
$tot['ARCHIVED'] = 10;

e4729831   Etienne Pallier   Page Statistiques...
15
$year = 2020;
4e258e44   Etienne Pallier   Nouvelle page "St...
16

4e258e44   Etienne Pallier   Nouvelle page "St...
17
18
19
20
21
22
$years = [];
for ($y=$year ; $y>$year-5 ; $y--) {
    $years[$y]['created'] = 8;
    $years[$y]['validated'] = 8;
    $years[$y]['archived'] = 8;
}
0ed158cd   Etienne Pallier   Page "Statistique...
23
24
25
26
27
28
29

$suivis = [];
$prets = [];
$suivis['tot'] = 100;
$suivis['avg'] = 10;
for ($y=$current_year ; $y>=$year_min ; $y--) $suivis[$y] = 8;
$prets = $suivis;
4e258e44   Etienne Pallier   Nouvelle page "St...
30
31
*/

0ed158cd   Etienne Pallier   Page "Statistique...
32
33


4e258e44   Etienne Pallier   Nouvelle page "St...
34
// Parameters passed by controller
8b356833   Etienne Pallier   Stats avec pource...
35
$current_year = $current_year;
0ed158cd   Etienne Pallier   Page "Statistique...
36
37
$year_min = $year_min;
$nbyears = $nbyears;
4e258e44   Etienne Pallier   Nouvelle page "St...
38
39
$avg = $avg;
$tot = $tot;
0ed158cd   Etienne Pallier   Page "Statistique...
40
41
42
//$tot2 = $tot2;
$years = $years;
//debug($suivis);
4e258e44   Etienne Pallier   Nouvelle page "St...
43

d7f8c94f   Etienne Pallier   Stats avec pource...
44
45


0ed158cd   Etienne Pallier   Page "Statistique...
46
47
48
49
50
51
52
53
54
55
function echoAsPctAndBold($nbelem, $total=null, $is_bold=false) {
    if ($is_bold) echo '<b>';
    if ($total !== null) {
        $pct = round( ($nbelem / $total) * 100 , 1 );
        $nbelem = "$pct% ($nbelem)";
        //$nbelem = "$nbelem ($pct%)";
        //$nbelem = "$pct%";
    }
    echo $nbelem;
    if ($is_bold) echo '</b>';
8b356833   Etienne Pallier   Stats avec pource...
56
57
}

0ed158cd   Etienne Pallier   Page "Statistique...
58
59
60
61


//function displayStatsLine($title, $line, $suivis, $prets, $bold=false, $year_prev=null, $avg=null) {
function displayStatsLine($title, $line, $is_bold=false, $year_prev=null, $avg=null) {
d7f8c94f   Etienne Pallier   Stats avec pource...
62
63
    ?>
    <tr>
8b356833   Etienne Pallier   Stats avec pource...
64
65
        
        <!-- Titre -->
d7f8c94f   Etienne Pallier   Stats avec pource...
66
        <td><b><?=$title?></b></td>
8b356833   Etienne Pallier   Stats avec pource...
67
68
        
        <!-- Evolution \N-1 et \avg -->
d7f8c94f   Etienne Pallier   Stats avec pource...
69
70
        <?php
        $total = $line['CREATED'];
8b356833   Etienne Pallier   Stats avec pource...
71
72
73
74
75
76
77
78
79
80
81
82
        $evol_from_year_prev = '/';
        $evol_from_avg = '/';
        if ($year_prev) {
            $evol_from_year_prev = round (($total-$year_prev['CREATED'])/$year_prev['CREATED'] * 100);
            if ($evol_from_year_prev>=0) $evol_from_year_prev = '+'.$evol_from_year_prev;
            $evol_from_year_prev .= '%';
        }
        if ($avg) {
            $evol_from_avg = round (($total-$avg['CREATED'])/$avg['CREATED'] * 100);
            if ($evol_from_avg>=0) $evol_from_avg = '+'.$evol_from_avg;
            $evol_from_avg .= '%';
        }
d7f8c94f   Etienne Pallier   Stats avec pource...
83
        ?>
8b356833   Etienne Pallier   Stats avec pource...
84
85
86
87
        <td><?=$evol_from_year_prev?></td>
        <td><?=$evol_from_avg?></td>

        <!-- TOTAL -->
0ed158cd   Etienne Pallier   Page "Statistique...
88
        <td><?=echoAsPctAndBold($total, null, $is_bold)?></td>
8b356833   Etienne Pallier   Stats avec pource...
89
90
        
        <!-- VALIDATED -->
0ed158cd   Etienne Pallier   Page "Statistique...
91
        <td><?=echoAsPctAndBold($line['VALIDATED'], $total, $is_bold)?></td>
8b356833   Etienne Pallier   Stats avec pource...
92
93
    	
        <!-- TBA -->
0ed158cd   Etienne Pallier   Page "Statistique...
94
95
96
97
98
        <!-- 
        <td><echoAsPctAndBold($line['TOBEARCHIVED'], null, $is_bold)></td>
         -->
        <td><?=echoAsPctAndBold($line['TOBEARCHIVED'], $total, $is_bold)?></td>

8b356833   Etienne Pallier   Stats avec pource...
99
        <!-- ARCHIVED -->
0ed158cd   Etienne Pallier   Page "Statistique...
100
101
102
103
104
105
106
        <td><?=echoAsPctAndBold($line['ARCHIVED'], $total, $is_bold)?></td>

        <!-- SUIVIS -->
        <td><?=echoAsPctAndBold($line['suivis'], $total, $is_bold)?></td>

        <!-- EMPRUNTS -->
        <td><?=echoAsPctAndBold($line['prets'], $total, $is_bold)?></td>
8b356833   Etienne Pallier   Stats avec pource...
107
    	
d7f8c94f   Etienne Pallier   Stats avec pource...
108
109
110
111
    </tr>
    <?php
}
	
4e258e44   Etienne Pallier   Nouvelle page "St...
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
?>






<!-- 
----------------------------------------
-------------- PAGE WEB HTML ----------- 
----------------------------------------
-->

<h2>
	<!-- 
	<i class="icon-print"></i> 
	 -->
8b356833   Etienne Pallier   Stats avec pource...
129
	<center>STATISTIQUES SUR LES MATÉRIELS</center>
4e258e44   Etienne Pallier   Nouvelle page "St...
130
131
</h2>

0ed158cd   Etienne Pallier   Page "Statistique...
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
<p>
<table>
<tr>
<td><b>Prendre en compte les</b></td>
<td> 
<?php
 echo $this->Form->create('Statistiques', [
     'type' => 'get',
 ]);
 //echo '<input name="s_all_2" class="search-input" type="text" id="MaterielSAll">';
 echo $this->Form->control('nbyears', [
    'id' => 'nby',
    //'class' => 'search-input',
    'label' => '',
    //'type' => 'text',
 'default' => $nbyears
 ]);
 /*
 echo $this->Form->submit('Chercher', [
 'name' => 'MaterielSAll',
 'id' => 'MaterielSAll',
 'style' => 'margin: 0px;'
 ]);
 */
 echo $this->Form->end();
?>
</td>
<td><b>dernières années (<?=$current_year.'-'.$year_min?>)</b></td>
</tr>
</table>
</p>

4e258e44   Etienne Pallier   Nouvelle page "St...
164

8b356833   Etienne Pallier   Stats avec pource...
165
<table border=2>
4e258e44   Etienne Pallier   Nouvelle page "St...
166

8b356833   Etienne Pallier   Stats avec pource...
167
168
169
	<thead>
	<!-- TITRES COLONNES sur 2 lignes -->
	<!-- 
4e258e44   Etienne Pallier   Nouvelle page "St...
170
171
	<tr>
		<th> </th>
8b356833   Etienne Pallier   Stats avec pource...
172
173
		<th>Evolution \ N-1</th>
		<th>Evolution \ moyenne</th>
e4729831   Etienne Pallier   Page Statistiques...
174
		<th>Matériels acquis</th>
8b356833   Etienne Pallier   Stats avec pource...
175
176
177
		<th>Validés</th>
		<th>En demande d'archivage</th>
		<th>Archivés</th>
0ed158cd   Etienne Pallier   Page "Statistique...
178
179
		<th>Matériels suivis</th>
		<th>Matériels empruntés</th>
8b356833   Etienne Pallier   Stats avec pource...
180
181
182
	</tr>
	 -->
	<tr>
0ed158cd   Etienne Pallier   Page "Statistique...
183
	
8b356833   Etienne Pallier   Stats avec pource...
184
185
186
187
188
189
190
191
192
193
194
195
196
		<th> </th>
		
		<th colspan="3" align="center">Matériels acquis</th>
		<!-- 
		<th></th>
		<th></th>
		 -->
		
		<th colspan="3">Répartition par statut</th>
		<!-- 
		<th></th>
		<th></th>
		 -->
0ed158cd   Etienne Pallier   Page "Statistique...
197
198
199
		
		<th colspan="2">Suivis et Emprunts</th>

4e258e44   Etienne Pallier   Nouvelle page "St...
200
	</tr>
0ed158cd   Etienne Pallier   Page "Statistique...
201
	
8b356833   Etienne Pallier   Stats avec pource...
202
	<tr>
0ed158cd   Etienne Pallier   Page "Statistique...
203
	
8b356833   Etienne Pallier   Stats avec pource...
204
205
206
207
208
209
210
		<th> </th>
		
		<th>Evol. \ N-1</th>
		<th>Evol. \ moyenne</th>
		<th>Total</th>
		
		<th>Validés</th>
0ed158cd   Etienne Pallier   Page "Statistique...
211
		<th>A archiver</th>
8b356833   Etienne Pallier   Stats avec pource...
212
		<th>Archivés</th>
0ed158cd   Etienne Pallier   Page "Statistique...
213
214
215
216
		
		<th>Matériels suivis</th>
		<th>Matériels prêtés</th>
		
8b356833   Etienne Pallier   Stats avec pource...
217
	</tr>
0ed158cd   Etienne Pallier   Page "Statistique...
218
	
8b356833   Etienne Pallier   Stats avec pource...
219
	</thead>
4e258e44   Etienne Pallier   Nouvelle page "St...
220
221

	<!-- LIGNES DATA -->
8b356833   Etienne Pallier   Stats avec pource...
222
	<tbody>
d7f8c94f   Etienne Pallier   Stats avec pource...
223
	<?php 
0ed158cd   Etienne Pallier   Page "Statistique...
224
225
226
227
228
	
	displayStatsLine("Moyenne annuelle", $avg, true);
	//displayStatsLine("Moyenne annuelle (sur les $nbyears dernières années)", $avg, true);
	//displayStatsLine("Moyenne annuelle (sur toutes les années sauf 1ère et dernière)", $avg, true);

8b356833   Etienne Pallier   Stats avec pource...
229
	displayStatsLine('Total Général', $tot, true);
0ed158cd   Etienne Pallier   Page "Statistique...
230
231
	//displayStatsLine('Total Sauf 1ère et dernière années', $tot2, true);
	
d7f8c94f   Etienne Pallier   Stats avec pource...
232
	?>
4e258e44   Etienne Pallier   Nouvelle page "St...
233
	
8b356833   Etienne Pallier   Stats avec pource...
234
	<!-- LIGNE VIDE DE SÉPARATION -->
4e258e44   Etienne Pallier   Nouvelle page "St...
235
	<tr>
8b356833   Etienne Pallier   Stats avec pource...
236
237
238
		<td></td>
		<td></td>
		<td></td>
4e258e44   Etienne Pallier   Nouvelle page "St...
239
240
241
		<td></td>
		<td></td>
		<td></td>
0ed158cd   Etienne Pallier   Page "Statistique...
242
243
		<td></td>
		<td></td>
4e258e44   Etienne Pallier   Nouvelle page "St...
244
245
246
	</tr>

	<!-- ANNÉE PAR ANNÉE (1 ligne par année) -->
4e258e44   Etienne Pallier   Nouvelle page "St...
247
	<?php 
8b356833   Etienne Pallier   Stats avec pource...
248
	/*
4e258e44   Etienne Pallier   Nouvelle page "St...
249
	foreach ($years as $y=>$val) {
d7f8c94f   Etienne Pallier   Stats avec pource...
250
251
252
    	$year_title = $y;
    	if ($y==$year) $year_title = "Année en cours ($y)";
    	displayStatsLine($year_title, $val);
4e258e44   Etienne Pallier   Nouvelle page "St...
253
	}
8b356833   Etienne Pallier   Stats avec pource...
254
255
256
257
258
259
260
261
	*/
	for ($y=$current_year ; $y>=$year_min ; $y--) {
	    $val = $years[$y];
	    $year_title = $y;
	    if ($y==$current_year) $year_title = "Année en cours ($y)";
	    $year_prev = $y==$year_min ? null : $years[$y-1];
	    displayStatsLine($year_title, $val, false, $year_prev, $avg);
	}
0ed158cd   Etienne Pallier   Page "Statistique...
262
	
4e258e44   Etienne Pallier   Nouvelle page "St...
263
	?>
0ed158cd   Etienne Pallier   Page "Statistique...
264

8b356833   Etienne Pallier   Stats avec pource...
265
	</tbody>
4e258e44   Etienne Pallier   Nouvelle page "St...
266
267
268
269
270
271
	
</table>

<?php 

?>