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 |
?>
|