Projet

Général

Profil

Paste
Statistiques
| Branche: | Révision:

ryxeo-glpi-git / htdocs / epack / recette.php @ 5c3812b2

Historique | Voir | Annoter | Télécharger (8,23 ko)

1
<?php
2
$debug=0;
3

    
4
//Permet de trier le tableau des postes
5
function localsort_name($a,$b) {
6
  if ($a == $b) {
7
    return 0;
8
  }
9
  return ($a['host'] < $b['host']) ? -1 : 1;
10
}
11

    
12
if($debug) {
13
  ob_start();
14
  error_reporting(E_ALL);
15
 }
16
 else
17
   error_reporting(E_NONE);
18

    
19
define('GLPI_ROOT', '..');
20
include (GLPI_ROOT . "/inc/includes.php");
21
include ("ryxeo.php");
22

    
23
$object = array('message' => '',
24
                'header1' => '',
25
                'header2' => '');
26
$send_mail = 0; //flag pour savoir s'il faut envoyer un mail (en bref a toute insertion ou update de base)
27

    
28
$code         = $_POST['code'];
29
$pass         = $_POST['pass'];
30
$anetlogin    = $_POST['anetlogin'];
31
$anetpassword = $_POST['anetpassword'];
32
$version      = $_POST['version'];
33
$tab_postes   = unserialize(base64_decode($_POST['tab_postes']));
34
$tab_server   = unserialize(base64_decode($_POST['tab_server']));
35
$tab_hdd      = unserialize(base64_decode($_POST['tab_hdd']));
36
$tab_wifi     = unserialize(base64_decode($_POST['tab_wifi']));
37
$tab_rvd      = unserialize(base64_decode($_POST['tab_rvd']));
38
$tab_client   = unserialize(base64_decode($_POST['tab_client']));
39

    
40
usort($tab_postes,localsort_name);
41

    
42
//debug
43
if($debug) {
44
  $object['message'] .= "<p>Mode debug</p>";
45
  $object['message'] .= implode(",",$tab_client);
46
  $object['message'] .= "<p>DEBUG:: " . ob_get_clean() . "</p>";
47
  ob_end_clean();
48
 }
49

    
50
//profil 5 -> ce sont les revendeurs, 3 et 4 c'est admin et super admin
51
$query = "SELECT gu.*,ge.address,ge.postcode,ge.town FROM glpi_users as gu
52
LEFT JOIN glpi_users_profiles AS gup ON gup.FK_users=gu.ID
53
LEFT JOIN glpi_entities_data AS ge ON ge.FK_entities=gu.FK_entities
54
WHERE gu.email='" . $anetlogin . "' AND password_md5=MD5('" . $anetpassword . "') AND (gup.FK_profiles='5' OR gup.FK_profiles='4' OR gup.FK_profiles='3')
55
GROUP BY gu.email;";
56

    
57
if($debug)
58
  $object['message'] .= "<p>query: $query</p>";
59
$result = $DB->query($query);
60
if(($DB->numrows($result)>0) || $debug) {
61
  $data = $DB->fetch_assoc($result);
62

    
63
  $tab_rvd['RVD_ADDRESS'] = trim($data['address']);
64
  $tab_rvd['RVD_CP']      = trim($data['postcode']);
65
  $tab_rvd['RVD_CITY']    = trim($data['town']);
66

    
67
  if((trim($pass) != "" && trim($code) != "") || $debug) {
68
    $query2 = "SELECT * FROM glpi_plugin_anet_epacks
69
LEFT JOIN glpi_entities AS g ON FK_client=g.ID
70
WHERE code='$code' AND password='$pass'";
71
    if($debug) {
72
      $object['message'] .= "<p>query2: $query2</p>";
73
    }
74
    $result2 = $DB->query($query2);
75
    if(($DB->numrows($result2)>0) || $debug) {
76
      //print serialize($object);
77
      //print_r($_SERVER);
78
      require_once('lib/odf.php');
79
      if($version == "1108")
80
        $odf = new odf("abuledu-recette-1108.odt");
81
      else
82
        $odf = new odf("abuledu-recette.odt");
83
   
84
      //1ere page
85
      setlocale(LC_TIME, "fr_FR.UTF-8");
86
      $odf->setVars('date', strftime("%A %e %B %Y"));
87
      $odf->setVars('datecourte', date("d/m/Y"));
88
      
89
      //L'installateur
90
      $odf->setVars('installateursociete', $tab_rvd['RVD_CODE'], true, 'UTF-8');
91
      $odf->setVars('installateuradresse', $tab_rvd['RVD_ADDRESS'], true, 'UTF-8');
92
      $odf->setVars('installateurcp',      $tab_rvd['RVD_CO'], true, 'UTF-8');
93
      $odf->setVars('installateurville',   $tab_rvd['RVD_CITY'], true, 'UTF-8');
94
      $odf->setVars('installateuremail',   $tab_rvd['RVD_EMAIL'], true, 'UTF-8');
95
      $odf->setVars('installateurtel',     $tab_rvd['RVD_PHONE'], true, 'UTF-8');
96
    
97
      //Le client
98
      $odf->setVars('client',        $tab_client["installation_name"], true, 'UTF-8');
99
      $odf->setVars('clientadresse', $tab_client["installation_address0"], true, 'UTF-8');
100
      $odf->setVars('clientcp',      $tab_client["installation_postalcode"], true, 'UTF-8');
101
      $odf->setVars('clientville',   $tab_client["installation_city"], true, 'UTF-8');
102
      $odf->setVars('clienttel',     $tab_client["installation_phone"], true, 'UTF-8');
103
      $odf->setVars('clientmail',    $tab_client["installation_email"], true, 'UTF-8');
104
      
105
      //abuledu.net
106
      $odf->setVars('anetdip', "TODO");
107
      $odf->setVars('anetdyn', "a venir");
108
      
109
      //Internet
110
      $odf->setVars('internetip', $tab_server["externalip"], true, 'UTF-8');
111
      $odf->setVars('internetfai', $tab_server["fai"], true, 'UTF-8');
112
      
113
      //wifi
114
      $odf->setVars('wifimarque', $tab_wifi["wifimarque"], true, 'UTF-8');
115
      $odf->setVars('wifimodele', $tab_wifi["wifimodele"], true, 'UTF-8');
116
      $odf->setVars('wifiwpa', $tab_wifi["wifiwpa"], true, 'UTF-8');
117
      
118
      //serveur
119
      $odf->setVars('serveurmarque', $tab_server["vendor"], true, 'UTF-8');
120
      $odf->setVars('serveurmodele', $tab_server["product"], true, 'UTF-8');
121
      if(trim($tab_server["serial"] != ""))
122
        $odf->setVars('serveurserial', "(SERIAL #" . $tab_server["serial"] . ")", true, 'UTF-8');
123
      
124
      //abuladmin
125
      $odf->setVars('abuladminpass', "TODO", true, 'UTF-8');
126
      
127
      //disque dur
128
      //    $odf->setVars('srvhddcount', count($tab_hdd));
129
      $p = $odf->setSegment('srvhdd');
130
      $nb=1;
131
      foreach($tab_hdd AS $element) {
132
        $p->srvhddnum($nb);
133
        $p->srvhddsize($element["size"]);
134
        $p->srvhddvendor($element["vendor"]);
135
        $p->srvhddproduct($element["product"]);
136
        $p->srvhddserial($element["serial"]);
137
        $p->merge();
138
        $nb++;
139
      }
140
      $odf->mergeSegment($p);
141
      
142
      //epack
143
      $odf->setVars('epackcode', $code);
144
      $odf->setVars('epackpassword', $pass);
145
      
146
      //    $odf->setVars('', "");
147
      
148
      //Les postes + imprimante + wifi (partiels)
149
      $p = $odf->setSegment('postes');
150
      $nb=1;
151
      foreach($tab_postes AS $element) {
152
        if(ereg("^wifi-",$element['host'])) {
153
          $odf->setVars('wifiip', $element['ip']);
154
          $odf->setVars('wifimac', $element['mac']);
155
        }
156
        else if(ereg("^imprimante-",$element['host'])){
157
          $odf->setVars('imprimanteip', $element['ip']);
158
          $odf->setVars('imprimantemac', $element['mac']);
159
          //nothing
160
        }
161
        else {
162
          $p->postenum($nb);
163
          $p->postenom($element['host']);
164
          $p->postemodele("modele");
165
          $p->posteip($element['ip']);
166
          $p->postemac($element['mac']);
167
          $p->posteadmin("TODO");
168
          $p->merge();
169
          $nb++;
170
        }
171
      }
172
      $odf->mergeSegment($p);
173
      
174
      //On créé un fichier local pour archive ...
175
      $fichier="archives/" . date("Y-m-d") . "-recette-" . $code . ".odt";
176
      $odf->saveToDisk($fichier);
177
      
178
      //On génère le fichier
179
      if(! $debug) {
180
        $object['header1'] = 'Content-type: application/vnd.oasis.opendocument.text';
181
        $object['header2'] = 'Content-Disposition: attachment; filename="abuledu-recette.odt"';
182
        $object['message'] = @file_get_contents($fichier,FILE_BINARY);
183
      }
184

    
185

    
186

    
187
      $mail_content = "
188
Bonjour,
189
le pack $code :: $pass vient d'être utilisé par $anetlogin pour créer un cahier de recettes
190

191
Informations brutes récoltées:
192

193
";
194

    
195
      foreach ($tab_rvd as $key => $value) {
196
        $mail_content .= "$key -> $value\n";
197
      }
198
      $mail_content .= "\n\n";
199

    
200
      foreach ($tab_client as $key => $value) {
201
        $mail_content .= "$key -> $value\n";
202
      }
203
      $mail_content .= "\n\n";
204

    
205
      foreach ($tab_postes as $key => $value) {
206
        $mail_content .= "$key -> " . implode(",",$value) . "\n";
207
      }
208
      $mail_content .= "\n\n";
209

    
210
      foreach ($tab_server as $key => $value) {
211
        $mail_content .= "$key -> $value\n";
212
      }
213
      $mail_content .= "\n\n";
214

    
215
      foreach ($tab_hdd as $key => $value) {
216
        $mail_content .= "$key -> " . implode(",",$value) . "\n";
217
      }
218
      $mail_content .= "\n\n";
219
      
220
      foreach ($tab_wifi as $key => $value) {
221
        $mail_content .= "$key -> $value\n";
222
      }
223
      $mail_content .= "\n\n";
224

    
225
      $mail_content .= "
226

227
--
228
abuledu.net est un service de RyXéo SARL, société éditrice d'AbulÉdu
229

230
";
231
      ryxeo_mail("anet@ryxeo.com",$mail_content,"contact@ryxeo.com","$code : Cahier de recettes - " . $tab_client["installation_name"] . " " . $tab_client["installation_city"]);
232

    
233
    }
234
    else {
235
      $object['message'] .= "<p>Erreur d'ePack 1 ...</p>";
236
      //print "<p>Erreur d'ePack ...</p>";
237
    }
238
  }
239
  else {
240
    $object['message'] .= "<p>Erreur d'ePack 2 ...</p>";
241
    //print "<p>Erreur d'ePack ...</p>";
242
  }
243
 }
244
 else {
245
   //print "<p>Erreur d'identifiant ou de mot de passe ...</p>";
246
   $object['message'] .= "<p>Erreur d'identifiant ou de mot de passe ...</p>";
247
 }
248

    
249
if($debug) {
250
  print $object['message'];
251
  $object['message'] .= "<p>DEBUG:: " . ob_get_clean() . "</p>";
252
  ob_end_clean();
253
  print $object['message'];
254
}
255

    
256
print serialize($object);
257

    
258
?>
Redmine Appliance - Powered by TurnKey Linux