Projet

Général

Profil

Paste
Statistiques
| Branche: | Révision:

ryxeo-glpi-git / plugins / anet_epacks / front / plugin_anet_epacks.view_array_recap.php @ 8c2a3d1e

Historique | Voir | Annoter | Télécharger (20,3 ko)

1
<?php
2

    
3
  /*
4
    Creation de la vue ...
5
    CREATE  ALGORITHM = TEMPTABLE VIEW glpi_plugin_anet_epacks_ssh_max AS SELECT *
6
    FROM `glpi_plugin_anet_epacks_ssh` as s1
7
    WHERE sshdate=(SELECT MAX(sshdate) FROM `glpi_plugin_anet_epacks_ssh` as s2 WHERE s1.FK_serveur=s2.FK_serveur)
8

9
    Comme c'est super long et cause un lag monstrueux a l ouverture on remplace par une table "normale" qui est
10
    periodiquement remise a jour ...
11

12
    CREATE TABLE IF NOT EXISTS `glpi_plugin_anet_epacks_ssh_max` (
13
    `ID` int(11) NOT NULL auto_increment,
14
    `sshstatus` binary(1) NOT NULL,
15
    `FK_serveur` int(11) NOT NULL,
16
    `log` text collate utf8_unicode_ci NOT NULL,
17
    `sshdate` datetime NOT NULL,
18
    PRIMARY KEY  (`ID`),
19
    KEY `FK_serveur` (`FK_serveur`)
20
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ; 
21
    
22
    A lancer periodiquement (?)
23
    TRUNCATE TABLE `glpi_plugin_anet_epacks_ssh_max` ;
24
    INSERT INTO glpi_plugin_anet_epacks_ssh_max SELECT * FROM `glpi_plugin_anet_epacks_ssh` as s1  WHERE sshdate=(SELECT MAX(sshdate) FROM `glpi_plugin_anet_epacks_ssh` as s2 WHERE s1.FK_serveur=s2.FK_serveur) ;
25
    
26

27
    on utilise la meme astuce pour l autre view: glpi_plugin_anet_epacks_recencement_max
28

29
    CREATE TABLE IF NOT EXISTS `glpi_plugin_anet_epacks_recencement_max` (
30
    `id` int(11) NOT NULL auto_increment,
31
    `ladate` timestamp NOT NULL default CURRENT_TIMESTAMP,
32
    `site` text collate utf8_unicode_ci NOT NULL,
33
    `phone` varchar(20) collate utf8_unicode_ci NOT NULL,
34
    `rvd` varchar(100) collate utf8_unicode_ci NOT NULL,
35
    `adresse1` text collate utf8_unicode_ci NOT NULL,
36
    `adresse2` text collate utf8_unicode_ci NOT NULL,
37
    `ville` varchar(100) collate utf8_unicode_ci NOT NULL,
38
    `cpostal` varchar(10) collate utf8_unicode_ci NOT NULL,
39
    `pays` varchar(100) collate utf8_unicode_ci NOT NULL,
40
    `nom` varchar(100) collate utf8_unicode_ci NOT NULL,
41
    `prenom` varchar(100) collate utf8_unicode_ci NOT NULL,
42
    `email` varchar(100) collate utf8_unicode_ci NOT NULL,
43
    `mac0` varchar(15) collate utf8_unicode_ci NOT NULL,
44
    `mac1` varchar(15) collate utf8_unicode_ci NOT NULL,
45
    `proc` varchar(100) collate utf8_unicode_ci NOT NULL,
46
    `ram` varchar(100) collate utf8_unicode_ci NOT NULL,
47
    `hdd0` varchar(100) collate utf8_unicode_ci NOT NULL,
48
    `hdd1` varchar(100) collate utf8_unicode_ci NOT NULL,
49
    `anet` varchar(100) collate utf8_unicode_ci NOT NULL,
50
    `tel` varchar(20) collate utf8_unicode_ci NOT NULL,
51
    `contrat` varchar(100) collate utf8_unicode_ci NOT NULL,
52
    `nbprofs` int(11) NOT NULL,
53
    `nbeleves` int(11) NOT NULL,
54
    `nbpc` int(11) NOT NULL,
55
    `ip` varchar(16) collate utf8_unicode_ci NOT NULL,
56
    `FK_serveur` int(11) default NULL,
57
    PRIMARY KEY  (`id`),
58
    UNIQUE KEY `FK_serveur` (`FK_serveur`)
59
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
60
    
61
    Et lance periodiquement
62
    TRUNCATE TABLE `glpi_plugin_anet_epacks_recencement_max` ;
63
    INSERT INTO glpi_plugin_anet_epacks_recencement_max SELECT * FROM glpi_plugin_anet_epacks_recencement as s1
64
    WHERE ladate=(SELECT MAX(ladate) FROM `glpi_plugin_anet_epacks_recencement` as s2 WHERE s1.FK_serveur=s2.FK_serveur) ;
65

66
    En fait, ca se passe dans anet.ryxeo.com/statistiques.php
67

68
  */
69

    
70
  // Affiche le tableau recap de tous les serveurs
71

    
72
if(!defined('GLPI_ROOT')){
73
  define('GLPI_ROOT', '../../..');
74
 }
75
include_once (GLPI_ROOT . "/inc/includes.php");
76
//include_once (GLPI_CONFIG_DIR . "/config_db_slave.php");
77

    
78
//On essaye d'utiliser le proxy/cache mysql
79
//$DBSlave = new DBSlave;
80

    
81
//Fabrique la requete en fonction des besoins de liste des serveurs sous maintenance ou non
82
//$maintenance = 1 -> ceux qui sons sous maintenance (sur)
83
//$maintenance = 0 -> ceux qu'on ne sais pas (ça sera a faire quand on aura saisi tous les contrats)
84
//$maintenance = -1 -> ceux qui ne veulent pas de maintenance
85
//le champ peut etre a deux -> on ne veut meme plus les afficher
86
//
87
//
88
function local_make_query($data, $entityid, $maintenance) {
89
  $query = "SELECT e.*, e.FK_enduser as entityid, g3.name as client, g4.name as serveur, g4.os_license_number, g4.os_license_id, g4.otherserial, ssh.*,
90
(g5.nbeleves+g5.nbprofs) as nbusers, g5.nbpc as nbpc, g6.name as contract, g7.name as rvd
91
FROM glpi_plugin_anet_epacks AS e
92
LEFT JOIN glpi_plugin_anet_epacks_ssh_max AS ssh ON e.FK_serveur=ssh.FK_serveur
93
LEFT JOIN glpi_entities AS g3 ON (e.FK_client=g3.ID OR e.FK_enduser=g3.ID)
94
LEFT JOIN glpi_computers AS g4 ON e.FK_serveur=g4.ID
95
LEFT JOIN glpi_plugin_anet_epacks_recencement_max AS g5 ON e.FK_serveur=g5.FK_serveur
96
LEFT JOIN glpi_contracts AS g6 ON e.FK_contract=g6.ID
97
LEFT JOIN glpi_entities AS g7 ON e.FK_clientderyxeo=g7.ID\n";
98

    
99
  //WHERE e.Fk_Serveur > '0'\n";
100
  if($data['name'] == "revendeur" || $data['name'] == "dsi") {
101
    if($maintenance == 0 || $maintenance ==  1) {
102
      $query .= "WHERE e.FK_contract >= '0' AND e.FK_activation='" . $entityid . "'\n";
103
    }
104
    else if($maintenance == -1) {
105
      $query .= "WHERE e.FK_contract='-1' AND e.FK_activation='" . $entityid . "'\n";
106
    }
107
      //GROUP BY e.FK_serveur
108
    $query .= "GROUP BY e.FK_serveur
109
ORDER BY client ASC
110
LIMIT 500;";
111
  }
112
  else {
113
    //On n'affiche pas les serveurs qui ne sont pas "Zen"
114
    if($maintenance == 0 || $maintenance ==  1) {
115
      $query .= "WHERE e.FK_contract >= '0' AND e.FK_Serveur>'0'\n";
116
    }
117
    else if($maintenance == -1) {
118
      $query .= "WHERE e.FK_contract='-1' AND e.FK_Serveur>'0'\n";
119
    }
120
    //GROUP BY e.FK_serveur
121
    //On ne peut pas group by client a cause de l'historique ou on avait pas la meme structure
122
    //de base
123
    $query .= "GROUP BY e.FK_serveur
124
ORDER BY rvd ASC
125
LIMIT 500;";
126
  }
127

    
128
  //  if($maintenance == -1) {
129
  //print $query;
130
  //  }
131
  return $query;
132
}
133

    
134
//special pour trouver les serveurs existants mais les enduser=0 (abonnement zen pas fait ou autre ?)
135
function local_make_query_zarb() {
136
  $query = "SELECT e.*, e.FK_enduser as entityid, g3.name as client, g4.name as serveur, g4.os_license_number, g4.os_license_id, g4.otherserial, ssh.*,
137
(g5.nbeleves+g5.nbprofs) as nbusers, g5.nbpc as nbpc, g6.name as contract, g7.name as rvd
138
FROM glpi_plugin_anet_epacks AS e
139
LEFT JOIN glpi_plugin_anet_epacks_ssh_max AS ssh ON e.FK_serveur=ssh.FK_serveur
140
LEFT JOIN glpi_entities AS g3 ON (e.FK_client=g3.ID OR e.FK_enduser=g3.ID)
141
LEFT JOIN glpi_computers AS g4 ON e.FK_serveur=g4.ID
142
LEFT JOIN glpi_plugin_anet_epacks_recencement_max AS g5 ON e.FK_serveur=g5.FK_serveur
143
LEFT JOIN glpi_contracts AS g6 ON e.FK_contract=g6.ID
144
LEFT JOIN glpi_entities AS g7 ON e.FK_clientderyxeo=g7.ID\n";
145

    
146
  $query .= "WHERE e.FK_enduser='0' AND e.FK_client!='0'\n";
147
  $query .= "GROUP BY e.FK_serveur
148
ORDER BY client ASC
149
LIMIT 500;";
150
  //print "<pre>$query</pre>\n";
151
  return $query;
152
}
153

    
154

    
155
//Special pour les "dsi" quand on convertis a la vollee les comptes post-only en dsi pour les animtice
156
function local_make_query_dsi($data, $entityid, $maintenance) {
157
  $query = "SELECT e.*, e.FK_enduser as entityid, g3.name as client, g4.name as serveur, g4.os_license_number, g4.os_license_id, g4.otherserial, ssh.*,
158
(g5.nbeleves+g5.nbprofs) as nbusers, g5.nbpc as nbpc, g6.name as contract, g7.name as rvd
159
FROM glpi_plugin_anet_epacks AS e
160
LEFT JOIN glpi_plugin_anet_epacks_ssh_max AS ssh ON e.FK_serveur=ssh.FK_serveur
161
LEFT JOIN glpi_entities AS g3 ON (e.FK_client=g3.ID OR e.FK_enduser=g3.ID)
162
LEFT JOIN glpi_computers AS g4 ON e.FK_serveur=g4.ID
163
LEFT JOIN glpi_plugin_anet_epacks_recencement_max AS g5 ON e.FK_serveur=g5.FK_serveur
164
LEFT JOIN glpi_contracts AS g6 ON e.FK_contract=g6.ID
165
LEFT JOIN glpi_entities AS g7 ON e.FK_clientderyxeo=g7.ID\n";
166

    
167
  //WHERE e.Fk_Serveur > '0'\n";
168
  if($data['name'] == "dsi") {
169
    if($maintenance == 0 || $maintenance ==  1) {
170
      $query .= "WHERE e.FK_enduser='$entityid' AND e.FK_contract >= '0' AND e.FK_activation > '0'\n";
171
    }
172
    else if($maintenance == -1) {
173
      $query .= "WHERE e.FK_enduser='$entityid' AND e.FK_contract='-1' AND e.FK_activation > '0'\n";
174
    }
175
    //GROUP BY e.FK_serveur
176
    $query .= "GROUP BY e.FK_serveur
177
ORDER BY client ASC
178
LIMIT 500;";
179
  }
180
  else {
181
    $query = "";
182
  }
183

    
184
  //  if($maintenance == -1) {
185
  //print $query;
186
  //  }
187
  return $query;
188
}
189

    
190

    
191
function local_make_raw($q,$maintenance) {
192

    
193
}
194

    
195

    
196
//Si enduser=0 -> on affiche les "zarb"
197
function local_make_array($q,$maintenance,$enduser=1) {
198
  global $DB;
199
  global $glpiid;
200

    
201
  global $total_nbpc_maint;
202
  global $total_nbusers_maint;
203
  global $total_nbpc_hors_maint;
204
  global $total_nbusers_hors_maint;
205
  global $num_debut_ligne;
206
  global $tab_deja_affiche;
207

    
208

    
209
  $result = $DB->query($q) or die($DB->error());
210
       
211
  $total_nbpc = 0;
212
  $total_nbusers = 0;
213
  //La liste des entites qu'on affiche
214

    
215
  for($i = 0; $i < $DB->numrows($result); $i++) {
216
    $num_debut_ligne++;
217
    $data=$DB->fetch_array($result);
218

    
219
    if(! in_array($data['entityid'],$tab_deja_affiche)) {
220
      $tab_deja_affiche[] = $data['entityid'];
221
      $ssh_dateLastOK = "";
222
      if($data['sshstatus'] == 1)
223
        $ssh_status = "<font color=\"green\">OK</font>";
224
      else if($data['sshdate']) {
225
        $ssh_status = "<font color=\"red\">ERR</font>";
226
        //Es-ce qu'on a deja reussi a se connecter sur ce serveur ?
227
        $queryLastOK = "SELECT sshdate FROM glpi_plugin_anet_epacks_ssh WHERE FK_serveur='" . $data['FK_serveur'] . "' AND sshstatus=1 ORDER BY sshdate DESC LIMIT 1";
228
        if($resultLastOK = $DB->query($queryLastOK)) {
229
          $dataLastOK = $DB->fetch_array($resultLastOK);
230
          if($dataLastOK[0]) {
231
            //          print_r($dataLastOK);
232
            $ssh_status .= "<br /><font color=\"green\">LAST&nbsp;OK</font>";
233
            $ssh_dateLastOK = "<br />" . str_replace(" ","&nbsp;",$dataLastOK[0]);
234
          }
235
        }
236
        else {
237
          $ssh_dateLastOK = "";
238
        }
239
        //print $queryLastOK;
240
      }
241
      else
242
        $ssh_status = "<font color=\"orange\">???</font>";
243
      $s .= "<tr class='tab_bg_2'>
244
  <td align=\"left\">\n";
245
      if($data['entityid'] > 0) {
246
        $s .= "    " . $num_debut_ligne . ". <a href=\"../../manageentity/index.php?active_entity=" . $data['entityid'] . "\">" . $data['client'] . ": " . $data['serveur'] . "</a>\n";
247
      }
248
      else {
249
                $s .= "    " . $num_debut_ligne . ". " . $data['client'] . ": " . $data['serveur'] . "(abonnement zen jamais activé, serveur fantôme ?)\n";
250
      }
251
      
252
      $s .= "  </td>
253
  <td>" . $ssh_status . "</td>
254
  <td>" . $data['sshdate'] . $ssh_dateLastOK . "</td>
255
  <td align=\"left\">" . $data['os_license_id'] . " " . $data['otherserial'] . "<br />" . $data['os_license_number'] . " " . $data['otherserial'] ."</td>
256
  <td>" . $data['nbpc'] . "</td>
257
  <td>" . $data['nbusers'] . "</td>
258
  <td>" . $data['contract'] . "</td>
259
  <td>" . $data['rvd'] . "</td>
260
</tr>\n";
261
      /*
262
       <a href=\"../../../front/contract.php?contains[0]=" . $data['client'] . "\"><img src=\"img/stock_hand-signed.png\" title=\"Contrat\"></a>
263
       <a href=\"../../../front/tracking.php?contains[0]=" . $data['client'] . "\"><img src=\"img/stock_web-support.png\" title=\"Tickets\"></a>
264
       <a href=\"../../../front/user.php?contains[0]=" . $data['client'] . "\"><img src=\"img/stock_people.png\" title=\"Droits d'accès\"></a>
265
      */
266
      $total_nbpc += $data['nbpc'];
267
      $total_nbusers += $data['nbusers'];
268
    }
269
  }
270
  
271
  //Maintenant toutes les entités sur lesquelles on a des droits recursifs
272
  $queryR = "SELECT glpi_users_profiles.FK_entities as entity FROM glpi_users_profiles WHERE glpi_users_profiles.FK_users='" . $glpiid . "' AND glpi_users_profiles.recursive=1 GROUP BY FK_entities";
273
  //print $queryR;
274
  $resultR = $DB->query($queryR);
275
  $listentity = "";
276
  for($r = 0; $r < $DB->numrows($resultR); $r++) {
277
    $dataR=$DB->fetch_array($resultR);
278
    $entityparent = $dataR['entity'];
279
    if($listentity != "")
280
      $listentity .= ", '" . $entityparent . "'";
281
    else
282
      $listentity = "'" . $entityparent . "'";
283
  }
284
  //$query = "SELECT ID FROM glpi_entities WHERE parentID='" . $entityparent . "'";
285

    
286
  if($enduser == 1) {
287
    $query = "SELECT e.*, e.FK_enduser as entityid, g3.name as client, g4.name as serveur, g4.os_license_number, g4.os_license_id, g4.otherserial, ssh.*,
288
(sum(g5.nbeleves)+sum(g5.nbprofs)) as nbusers, g5.nbpc as nbpc, g6.name as contract, g7.name as rvd
289
FROM glpi_plugin_anet_epacks AS e
290
LEFT JOIN glpi_plugin_anet_epacks_ssh_max AS ssh ON e.FK_serveur=ssh.FK_serveur
291
LEFT JOIN glpi_entities AS g3 ON (e.FK_client=g3.ID OR e.FK_enduser=g3.ID)
292
LEFT JOIN glpi_computers AS g4 ON e.FK_serveur=g4.ID
293
LEFT JOIN glpi_plugin_anet_epacks_recencement_max AS g5 ON e.FK_serveur=g5.FK_serveur
294
LEFT JOIN glpi_contracts AS g6 ON e.FK_contract=g6.ID
295
LEFT JOIN glpi_entities AS g7 ON e.FK_clientderyxeo=g7.ID\n";
296

    
297
    //WHERE e.Fk_Serveur > '0'\n";
298

    
299
    if($maintenance == 0 || $maintenance ==  1) {
300
      $query .= "WHERE e.FK_contract >= '0'";
301
    }
302
    else if($maintenance == -1) {
303
      $query .= "WHERE e.FK_contract='-1'";
304
    }
305
    
306
    if(trim($listentity) != "")
307
      $query .= " AND g3.parentID IN (" . $listentity . ")\n";
308
    //GROUP BY e.FK_serveur
309
    else {
310
      $query = "";
311
    }
312
    if($query != "") 
313
      $query .= "GROUP BY e.FK_client
314
ORDER BY client
315
LIMIT 500;";
316
  }
317
  else {
318
    //LEFT JOIN glpi_entities AS g3 ON e.FK_client=g3.ID OR e.FK_enduser=g3.ID
319
    $query = "SELECT e.*, e.FK_client as entityid, g3.name as client, g4.name as serveur, g4.os_license_number, g4.os_license_id, g4.otherserial, ssh.*, g6.name as contract, g7.name as rvd
320
FROM glpi_plugin_anet_epacks AS e
321
LEFT JOIN glpi_plugin_anet_epacks_ssh_max AS ssh ON e.FK_serveur=ssh.FK_serveur
322
LEFT JOIN glpi_entities AS g3 ON (e.FK_client=g3.ID OR e.FK_enduser=g3.ID)
323
LEFT JOIN glpi_computers AS g4 ON e.FK_serveur=g4.ID
324
LEFT JOIN glpi_plugin_anet_epacks_recencement_max AS g5 ON e.FK_serveur=g5.FK_serveur
325
LEFT JOIN glpi_contracts AS g6 ON e.FK_contract=g6.ID
326
LEFT JOIN glpi_entities AS g7 ON e.FK_clientderyxeo=g7.ID
327
WHERE e.FK_enduser='0' AND e.FK_client!='0'
328
ORDER BY client\n";
329
    //print $query;
330
  }
331
    
332
  //print $query;
333

    
334

    
335
  if($query != "") 
336
    $result = $DB->query($query) or die($DB->error());
337
  
338
  for($i = 0; $i < $DB->numrows($result); $i++) {
339
    $num_debut_ligne++;
340
    $data=$DB->fetch_array($result);
341
    $ssh_dateLastOK = "";
342
    if(! in_array($data['entityid'],$tab_deja_affiche) || $enduser==0) {
343
      $tab_deja_affiche[] = $data['entityid'];
344
      if($data['sshstatus'] == 1)
345
        $ssh_status = "<font color=\"green\">OK</font>";
346
      else if($data['sshdate']) {
347
        $ssh_status = "<font color=\"red\">ERR</font>";
348
        //Es-ce qu'on a deja reussi a se connecter sur ce serveur ?
349
        $queryLastOK = "SELECT sshdate FROM glpi_plugin_anet_epacks_ssh WHERE FK_serveur='" . $data['FK_serveur'] . "' AND sshstatus=1 ORDER BY sshdate DESC LIMIT 1";
350
        if($resultLastOK = $DB->query($queryLastOK)) {
351
          $dataLastOK = $DB->fetch_array($resultLastOK);
352
          if($dataLastOK[0]) {
353
            //          print_r($dataLastOK);
354
            $ssh_status .= "<br /><font color=\"green\">LAST OK</font>";
355
            $ssh_dateLastOK = "<br />" . $dataLastOK[0];
356
          }
357
        }
358
        else {
359
          $ssh_dateLastOK = "";
360
        }
361
        //print $queryLastOK;
362
      }
363
      else
364
        $ssh_status = "<font color=\"orange\">???</font>";
365
      $s .= "<tr class='tab_bg_2'>
366
  <td align=\"left\">\n";
367
      if($data['entityid'] > 0) {
368
        $s .= "    " . $num_debut_ligne . ". <a href=\"../../manageentity/index.php?active_entity=" . $data['entityid'] . "\">" . $data['client'] . ": " . $data['serveur'] . "</a>\n";
369
      }
370
      else {
371
        $s .= "    " . $num_debut_ligne . ". " . $data['client'] . ": " . $data['serveur'] . "(abonnement zen jamais activé, serveur fantôme ?)\n";
372
      }
373

    
374
      $s .= "  </td>
375
  <td>" . $ssh_status . "</td>
376
  <td>" . $data['sshdate'] . $ssh_dateLastOK . "</td>
377
  <td align=\"left\">" . $data['os_license_id'] . " " . $data['otherserial'] . "<br />" . $data['os_license_number'] . " " . $data['otherserial'] . "</td>
378
  <td>" . $data['nbpc'] . "</td>
379
  <td>" . $data['nbusers'] . "</td>
380
  <td>" . $data['contract'] . "</td>
381
  <td>" . $data['rvd'] . "</td>
382
</tr>\n";
383
      /*
384
          <a href=\"../../../front/contract.php?contains[0]=" . $data['client'] . "\"><img src=\"img/stock_hand-signed.png\" title=\"Contrat\"></a>
385
          <a href=\"../../../front/tracking.php?contains[0]=" . $data['client'] . "\"><img src=\"img/stock_web-support.png\" title=\"Tickets\"></a>
386
          <a href=\"../../../front/user.php?contains[0]=" . $data['client'] . "\"><img src=\"img/stock_people.png\" title=\"Droits d'accès\"></a>
387
      */
388
      $total_nbpc += $data['nbpc'];
389
      $total_nbusers += $data['nbusers'];
390
    }
391
    else {
392
      //print "deja affiché :: " . $data['entityid'];
393
    }
394
  }
395
  
396
  
397
  
398
  /*
399
   <a href=\"../../../front/central.php?active_entity=" . $data['entityid'] . "\"><img src=\"img/stock_about.png\" title=\"Incarner le client " . $data['client'] . "\"></a>
400
   <a href=\"../../../front/computer.php?contains[0]=" . $data['client'] . "\"><img src=\"img/stock_form-add-field.png\" title=\"Inventaire\"></a>
401
  */
402
  if($maintenance == 0) {
403
    $total_nbpc_maint += $total_nbpc;
404
    $total_nbusers_maint += $total_nbusers;
405
  }
406
  else {
407
    $total_nbpc_hors_maint += $total_nbpc;
408
    $total_nbusers_hors_maint += $total_nbusers;
409
  }
410
  return $s;
411
}
412

    
413
function local_make_array_header() {
414
  return   "<table style=\"width:100%; padding: 0 10px 0 10px;\">
415
<tr class='tab_bg_2'>
416
  <th>Nom</th>
417
  <th><img src=\"img/stock_channel.png\" alt=\"Télémaintenance (SSH)\" title=\"Télémaintenance (SSH)\"></th>
418
  <th>Date du test</th>
419
  <th>Adresse DynDNS</th>
420
  <th><img src=\"img/computer.png\" alt=\"Nombre de postes\" title=\"Nombre de postes clients\"></th>
421
  <th><img src=\"img/stock_people.png\" alt=\"Nombre d'utilisateurs\" title=\"Nombre d'utilisateurs\"></th>
422
  <th><img src=\"img/stock_hand-signed.png\" title=\"Contrat\"></th>
423
  <th><img src=\"img/stock_hand-signed.png\" title=\"Revendeur\"></th>
424
</tr>\n";
425

    
426
}
427

    
428
function local_make_array_footer($total_nbpc, $total_nbusers) {
429
  $s .= "<tr class='tab_bg_2'>
430
  <td colspan=\"4\">Totaux: </td>
431
  <td>" . $total_nbpc . "</td>
432
  <td>" . $total_nbusers . "</td>
433
  <td></td>
434
  <td></td>
435
</tr>\n";
436

    
437
  $s .= "</table>";
438
  return $s;
439
}
440

    
441

    
442
commonHeader("AbulEdu.NET -- Tableau récapitulatif -- Accueil RyXéo",$_SERVER['PHP_SELF'],"config","plugins");
443

    
444
$glpiid = $_SESSION['glpiID'];
445

    
446
global $DB;
447

    
448
$query = "SELECT glpi_profiles.name AS name,glpi_users_profiles.FK_entities as FK_entities FROM glpi_profiles,glpi_users_profiles,glpi_users WHERE glpi_users_profiles.FK_users='" . $glpiid . "' AND glpi_users_profiles.FK_profiles=glpi_profiles.ID GROUP BY FK_entities";
449

    
450
//print $query;
451
//exit;
452

    
453
$total_nbpc_maint         = 0;
454
$total_nbusers_maint      = 0;
455
$total_nbpc_hors_maint    = 0;
456
$total_nbusers_hors_maint = 0;
457
$tab_deja_affiche         = array();
458
$num_debut_ligne_maint    = 0;
459
$num_debut_ligne_horsmaint = 0;
460

    
461
$result = $DB->query($query);
462
if($result) {
463
  while($data=$DB->fetch_array($result)) {
464
    $entityid = $data['FK_entities'];
465
    if($data['name'] == "revendeur" || $data['name'] == "dsi" || $data['name'] == "super-admin") {
466
      $num_debut_ligne = $num_debut_ligne_maint;
467
      //print $query;
468
      $entityid = $data['FK_entities'];
469
      
470
      $maintenance = 0;
471
      $querySM = local_make_query($data, $entityid, $maintenance);
472
      $str_sous_maint .= local_make_array($querySM,$maintenance);
473
      
474
      $querySM = local_make_query_dsi($data, $entityid, $maintenance);
475
      //print $querySM;
476
      if($querySM != "")
477
        $str_sous_maint .= local_make_array($querySM,$maintenance);
478
      
479
      $num_debut_ligne_maint = $num_debut_ligne;
480
      $num_debut_ligne = 0;
481
      $maintenance = -1;
482
      $queryHM = local_make_query($data, $entityid, $maintenance);
483
      $str_hors_maint .= local_make_array($queryHM,$maintenance);
484
      
485
      //et maintenant les epacks dont le FK_enduser=0 mais FK_serveur!=0
486
      //Uniquement pour ryxeo
487
      if($data['name'] == "super-admin") { 
488
        $num_debut_ligne_horsmaint = $num_debut_ligne;
489
        $num_debut_ligne = 0;
490
        $queryZarb = local_make_query_zarb();
491
        //print "<pre>$queryZarb</pre>";
492
        //On passe 0 comme 3 argument
493
        $str_zarb .= local_make_array($queryZarb,0,0);
494
      }
495
    }
496
  }
497
  
498
  print "<h1>Tableau récapitulatif de vos serveurs sous maintenance</h1>";
499
  print local_make_array_header();
500
  print $str_sous_maint;
501
  print local_make_array_footer($total_nbpc_maint,$total_nbusers_maint);
502
  
503
  print "<h1>Tableau récapitulatif de vos serveurs hors maintenance</h1>";
504
  print local_make_array_header();
505
  print $str_hors_maint;
506
  print local_make_array_footer($total_nbpc_hors_maint,$total_nbusers_hors_maint);
507
  
508
  //Uniquement pour ryxeo
509
  if($str_zarb != "") { 
510
    print "<h1>Tableau récapitulatif des serveurs étranges [dont la maintenance n'a pas été activée (abonnement zen sur webadmin) ??]</h1>";
511
    print local_make_array_header();
512
    print $str_zarb;
513
    print local_make_array_footer(0,0);
514
  }
515
  
516
  commonFooter();
517
  exit;
518
 }
519

    
520
?>
Redmine Appliance - Powered by TurnKey Linux