Projet

Général

Profil

Paste
Statistiques
| Branche: | Révision:

ryxeo-glpi-git / htdocs / epack / recette.php @ 7c12ea40

Historique | Voir | Annoter | Télécharger (8,27 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('annee', date("Y"));
88
      $odf->setVars('datecourte', date("d/m/Y"));
89
      
90
      //L'installateur
91
      $odf->setVars('installateursociete', $tab_rvd['RVD_CODE'], true, 'UTF-8');
92
      $odf->setVars('installateuradresse', $tab_rvd['RVD_ADDRESS'], true, 'UTF-8');
93
      $odf->setVars('installateurcp',      $tab_rvd['RVD_CO'], true, 'UTF-8');
94
      $odf->setVars('installateurville',   $tab_rvd['RVD_CITY'], true, 'UTF-8');
95
      $odf->setVars('installateuremail',   $tab_rvd['RVD_EMAIL'], true, 'UTF-8');
96
      $odf->setVars('installateurtel',     $tab_rvd['RVD_PHONE'], true, 'UTF-8');
97
    
98
      //Le client
99
      $odf->setVars('client',        $tab_client["installation_name"], true, 'UTF-8');
100
      $odf->setVars('clientadresse', $tab_client["installation_address0"], true, 'UTF-8');
101
      $odf->setVars('clientcp',      $tab_client["installation_postalcode"], true, 'UTF-8');
102
      $odf->setVars('clientville',   $tab_client["installation_city"], true, 'UTF-8');
103
      $odf->setVars('clienttel',     $tab_client["installation_phone"], true, 'UTF-8');
104
      $odf->setVars('clientmail',    $tab_client["installation_email"], true, 'UTF-8');
105
      
106
      //abuledu.net
107
      $odf->setVars('anetdip', "TODO");
108
      $odf->setVars('anetdyn', "a venir");
109
      
110
      //Internet
111
      $odf->setVars('internetip', $tab_server["externalip"], true, 'UTF-8');
112
      $odf->setVars('internetfai', $tab_server["fai"], true, 'UTF-8');
113
      
114
      //wifi
115
      $odf->setVars('wifimarque', $tab_wifi["wifimarque"], true, 'UTF-8');
116
      $odf->setVars('wifimodele', $tab_wifi["wifimodele"], true, 'UTF-8');
117
      $odf->setVars('wifiwpa', $tab_wifi["wifiwpa"], true, 'UTF-8');
118
      
119
      //serveur
120
      $odf->setVars('serveurmarque', $tab_server["vendor"], true, 'UTF-8');
121
      $odf->setVars('serveurmodele', $tab_server["product"], true, 'UTF-8');
122
      if(trim($tab_server["serial"] != ""))
123
        $odf->setVars('serveurserial', "(SERIAL #" . $tab_server["serial"] . ")", true, 'UTF-8');
124
      
125
      //abuladmin
126
      $odf->setVars('abuladminpass', "TODO", true, 'UTF-8');
127
      
128
      //disque dur
129
      //    $odf->setVars('srvhddcount', count($tab_hdd));
130
      $p = $odf->setSegment('srvhdd');
131
      $nb=1;
132
      foreach($tab_hdd AS $element) {
133
        $p->srvhddnum($nb);
134
        $p->srvhddsize($element["size"]);
135
        $p->srvhddvendor($element["vendor"]);
136
        $p->srvhddproduct($element["product"]);
137
        $p->srvhddserial($element["serial"]);
138
        $p->merge();
139
        $nb++;
140
      }
141
      $odf->mergeSegment($p);
142
      
143
      //epack
144
      $odf->setVars('epackcode', $code);
145
      $odf->setVars('epackpassword', $pass);
146
      
147
      //    $odf->setVars('', "");
148
      
149
      //Les postes + imprimante + wifi (partiels)
150
      $p = $odf->setSegment('postes');
151
      $nb=1;
152
      foreach($tab_postes AS $element) {
153
        if(ereg("^wifi-",$element['host'])) {
154
          $odf->setVars('wifiip', $element['ip']);
155
          $odf->setVars('wifimac', $element['mac']);
156
        }
157
        else if(ereg("^imprimante-",$element['host'])){
158
          $odf->setVars('imprimanteip', $element['ip']);
159
          $odf->setVars('imprimantemac', $element['mac']);
160
          //nothing
161
        }
162
        else {
163
          $p->postenum($nb);
164
          $p->postenom($element['host']);
165
          $p->postemodele("modele");
166
          $p->posteip($element['ip']);
167
          $p->postemac($element['mac']);
168
          $p->posteadmin("TODO");
169
          $p->merge();
170
          $nb++;
171
        }
172
      }
173
      $odf->mergeSegment($p);
174
      
175
      //On créé un fichier local pour archive ...
176
      $fichier="archives/" . date("Y-m-d") . "-recette-" . $code . ".odt";
177
      $odf->saveToDisk($fichier);
178
      
179
      //On génère le fichier
180
      if(! $debug) {
181
        $object['header1'] = 'Content-type: application/vnd.oasis.opendocument.text';
182
        $object['header2'] = 'Content-Disposition: attachment; filename="abuledu-recette.odt"';
183
        $object['message'] = @file_get_contents($fichier,FILE_BINARY);
184
      }
185

    
186

    
187

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

192
Informations brutes récoltées:
193

194
";
195

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

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

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

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

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

    
226
      $mail_content .= "
227

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

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

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

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

    
257
print serialize($object);
258

    
259
?>
Redmine Appliance - Powered by TurnKey Linux