ryxeo-glpi-git / htdocs / install / update_0681_07.php @ 1c14bcc4
Historique | Voir | Annoter | Télécharger (70,6 ko)
1 |
<?php
|
---|---|
2 |
|
3 |
|
4 |
/*
|
5 |
* @version $Id: update_0681_07.php 7763 2009-01-06 18:44:50Z moyo $
|
6 |
-------------------------------------------------------------------------
|
7 |
GLPI - Gestionnaire Libre de Parc Informatique
|
8 |
Copyright (C) 2003-2009 by the INDEPNET Development Team.
|
9 |
|
10 |
http://indepnet.net/ http://glpi-project.org
|
11 |
-------------------------------------------------------------------------
|
12 |
|
13 |
LICENSE
|
14 |
|
15 |
This file is part of GLPI.
|
16 |
|
17 |
GLPI is free software; you can redistribute it and/or modify
|
18 |
it under the terms of the GNU General Public License as published by
|
19 |
the Free Software Foundation; either version 2 of the License, or
|
20 |
(at your option) any later version.
|
21 |
|
22 |
GLPI is distributed in the hope that it will be useful,
|
23 |
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
24 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
25 |
GNU General Public License for more details.
|
26 |
|
27 |
You should have received a copy of the GNU General Public License
|
28 |
along with GLPI; if not, write to the Free Software
|
29 |
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
30 |
--------------------------------------------------------------------------
|
31 |
*/
|
32 |
|
33 |
// ----------------------------------------------------------------------
|
34 |
// Original Author of file:
|
35 |
// Purpose of file:
|
36 |
// ----------------------------------------------------------------------
|
37 |
|
38 |
/// Update from 0.68.1 to 0.7
|
39 |
function update0681to07() { |
40 |
global $DB, $CFG_GLPI, $LANG, $LINK_ID_TABLE; |
41 |
|
42 |
@mysql_query("SET NAMES 'latin1'",$DB->dbh); |
43 |
|
44 |
// Improve user table :
|
45 |
if (!isIndex("glpi_users", "firstname")) { |
46 |
$query = "ALTER TABLE `glpi_users` ADD INDEX ( `firstname` )"; |
47 |
$DB->query($query) or die("0.7 alter users add index on firstname " . $LANG["update"][90] . $DB->error()); |
48 |
} |
49 |
if (!isIndex("glpi_users", "realname")) { |
50 |
$query = "ALTER TABLE `glpi_users` ADD INDEX ( `realname` )"; |
51 |
$DB->query($query) or die("0.7 alter users add index on realname " . $LANG["update"][90] . $DB->error()); |
52 |
} |
53 |
// Decimal problem
|
54 |
if (FieldExists("glpi_infocoms", "value")) { |
55 |
$query = "ALTER TABLE `glpi_infocoms` CHANGE `value` `value` DECIMAL( 20, 4 ) NOT NULL DEFAULT '0';"; |
56 |
$DB->query($query) or die("0.7 alter value in glpi_infocoms " . $LANG["update"][90] . $DB->error()); |
57 |
} |
58 |
if (FieldExists("glpi_infocoms", "warranty_value")) { |
59 |
$query = "ALTER TABLE `glpi_infocoms` CHANGE warranty_value warranty_value DECIMAL( 20, 4 ) NOT NULL DEFAULT '0';"; |
60 |
$DB->query($query) or die("0.7 alter warranty_value in glpi_infocoms " . $LANG["update"][90] . $DB->error()); |
61 |
} |
62 |
if (FieldExists("glpi_tracking", "cost_time")) { |
63 |
$query = "ALTER TABLE `glpi_tracking` CHANGE cost_time cost_time DECIMAL( 20, 4 ) NOT NULL DEFAULT '0';"; |
64 |
$DB->query($query) or die("0.7 alter cost_time in glpi_tracking " . $LANG["update"][90] . $DB->error()); |
65 |
} |
66 |
if (FieldExists("glpi_tracking", "cost_fixed")) { |
67 |
$query = "ALTER TABLE `glpi_tracking` CHANGE cost_fixed cost_fixed DECIMAL( 20, 4 ) NOT NULL DEFAULT '0';"; |
68 |
$DB->query($query) or die("0.7 alter cost_fixed in glpi_tracking " . $LANG["update"][90] . $DB->error()); |
69 |
} |
70 |
if (FieldExists("glpi_tracking", "cost_material")) { |
71 |
$query = "ALTER TABLE `glpi_tracking` CHANGE cost_material cost_material DECIMAL( 20, 4 ) NOT NULL DEFAULT '0';"; |
72 |
$DB->query($query) or die("0.7 alter cost_material in glpi_tracking " . $LANG["update"][90] . $DB->error()); |
73 |
} |
74 |
if (!FieldExists("glpi_config", "decimal_number")) { |
75 |
$query = "ALTER TABLE `glpi_config` ADD `decimal_number` INT DEFAULT '2';"; |
76 |
$DB->query($query) or die("0.7 add decimal_number in glpi_config " . $LANG["update"][90] . $DB->error()); |
77 |
} |
78 |
$CFG_GLPI["decimal_number"] = 2; |
79 |
|
80 |
if (!FieldExists("glpi_config", "cas_logout")) { |
81 |
$query = "ALTER TABLE `glpi_config` ADD `cas_logout` VARCHAR( 255 ) NULL AFTER `cas_uri`;"; |
82 |
$DB->query($query) or die("0.7 add cas_logout in glpi_config " . $LANG["update"][90] . $DB->error()); |
83 |
} |
84 |
|
85 |
if (!isIndex("glpi_computer_device", "specificity")) { |
86 |
$query = "ALTER TABLE `glpi_computer_device` ADD INDEX ( `specificity` )"; |
87 |
$DB->query($query) or die("0.7 add index specificity in glpi_computer_device " . $LANG["update"][90] . $DB->error()); |
88 |
} |
89 |
|
90 |
if (!FieldExists("glpi_docs", "comments")) { |
91 |
$query = "ALTER TABLE `glpi_docs` CHANGE `comment` `comments` TEXT DEFAULT NULL "; |
92 |
$DB->query($query) or die("0.7 alter docs.comment to be comments" . $LANG["update"][90] . $DB->error()); |
93 |
|
94 |
} |
95 |
// Update polish langage file
|
96 |
$query = "UPDATE glpi_users SET language='pl_PL' WHERE language='po_PO'"; |
97 |
$DB->query($query) or die("0.7 update polish lang file " . $LANG["update"][90] . $DB->error()); |
98 |
|
99 |
// Add show_group_hardware
|
100 |
if (!FieldExists("glpi_profiles", "show_group_hardware")) { |
101 |
$query = "ALTER TABLE `glpi_profiles` ADD `show_group_hardware` CHAR( 1 ) NULL DEFAULT '0';"; |
102 |
$DB->query($query) or die("0.7 alter glpi_profiles add show_group_hardware" . $LANG["update"][90] . $DB->error()); |
103 |
$query = "UPDATE glpi_profiles SET `show_group_hardware`=`show_group_ticket`"; |
104 |
$DB->query($query) or die("0.7 alter glpi_profiles add show_group_hardware" . $LANG["update"][90] . $DB->error()); |
105 |
} |
106 |
|
107 |
// Clean doc association
|
108 |
if (FieldExists("glpi_doc_device", "is_template")) { |
109 |
$query = "ALTER TABLE `glpi_doc_device` DROP `is_template`"; |
110 |
$DB->query($query) or die("0.7 delete is_template from glpi_doc_device" . $LANG["update"][90] . $DB->error()); |
111 |
} |
112 |
|
113 |
// Clean contract association
|
114 |
if (FieldExists("glpi_contract_device", "is_template")) { |
115 |
$query = "ALTER TABLE `glpi_contract_device` DROP `is_template`"; |
116 |
$DB->query($query) or die("0.7 delete is_template from glpi_contract_device" . $LANG["update"][90] . $DB->error()); |
117 |
} |
118 |
|
119 |
|
120 |
|
121 |
//// ENTITY MANAGEMENT
|
122 |
|
123 |
if (!TableExists("glpi_entities")) { |
124 |
$query = "CREATE TABLE `glpi_entities` ( |
125 |
`ID` int(11) NOT NULL auto_increment,
|
126 |
`name` varchar(255) NOT NULL,
|
127 |
`parentID` int(11) NOT NULL default '0',
|
128 |
`completename` text NOT NULL,
|
129 |
`comments` text,
|
130 |
`level` int(11) default NULL,
|
131 |
PRIMARY KEY (`ID`),
|
132 |
UNIQUE KEY `name` (`name`,`parentID`),
|
133 |
KEY `parentID` (`parentID`)
|
134 |
) ENGINE=MyISAM;";
|
135 |
$DB->query($query) or die("0.7 create glpi_entities " . $LANG["update"][90] . $DB->error()); |
136 |
} |
137 |
|
138 |
if (!TableExists("glpi_entities_data")) { |
139 |
$query = "CREATE TABLE `glpi_entities_data` ( |
140 |
`ID` int(11) NOT NULL auto_increment,
|
141 |
`FK_entities` int(11) NOT NULL default '0',
|
142 |
`address` text,
|
143 |
`postcode` varchar(255) default NULL,
|
144 |
`town` varchar(255) default NULL,
|
145 |
`state` varchar(255) default NULL,
|
146 |
`country` varchar(255) default NULL,
|
147 |
`website` varchar(200) default NULL,
|
148 |
`phonenumber` varchar(200) default NULL,
|
149 |
`fax` varchar(255) default NULL,
|
150 |
`email` varchar(255) default NULL,
|
151 |
`notes` longtext,
|
152 |
PRIMARY KEY (`ID`),
|
153 |
UNIQUE KEY `FK_entities` (`FK_entities`)
|
154 |
) ENGINE=MyISAM ;";
|
155 |
|
156 |
$DB->query($query) or die("0.7 create glpi_entities_data " . $LANG["update"][90] . $DB->error()); |
157 |
} |
158 |
|
159 |
// Add default profile to all users without any profile
|
160 |
$query="SELECT ID FROM glpi_profiles WHERE is_default='1'"; |
161 |
if ($result=$DB->query($query)){ |
162 |
if ($DB->numrows($result)>0){ |
163 |
$IDprof=$DB->result($result,0,0); |
164 |
$query="SELECT glpi_users.ID |
165 |
FROM glpi_users LEFT JOIN glpi_users_profiles ON (glpi_users_profiles.FK_users = glpi_users.ID )
|
166 |
WHERE glpi_users_profiles.ID IS NULL";
|
167 |
if ($result=$DB->query($query)){ |
168 |
if ($DB->numrows($result)>0){ |
169 |
while ($data=$DB->fetch_assoc($result)){ |
170 |
$query="INSERT INTO glpi_users_profiles (`FK_users` ,`FK_profiles`) VALUES ('".$data['ID']."','$IDprof') "; |
171 |
$DB->query($query); |
172 |
} |
173 |
} |
174 |
} |
175 |
|
176 |
} |
177 |
} |
178 |
|
179 |
|
180 |
|
181 |
if (!FieldExists("glpi_users_profiles", "FK_entities")) { |
182 |
// Clean Datas
|
183 |
$query = "DELETE FROM glpi_users_profiles WHERE FK_users='0'"; |
184 |
$DB->query($query) or die("0.7 clean datas of glpi_users_profiles " . $LANG["update"][90] . $DB->error()); |
185 |
|
186 |
$query = " ALTER TABLE `glpi_users_profiles` ADD `FK_entities` INT NOT NULL DEFAULT '0', |
187 |
ADD `recursive` SMALLINT NOT NULL DEFAULT '1',
|
188 |
ADD `dynamic` SMALLINT NOT NULL DEFAULT '0' ";
|
189 |
$DB->query($query) or die("0.7 alter glpi_users_profiles " . $LANG["update"][90] . $DB->error()); |
190 |
} |
191 |
// Correct for clean active field for beta users
|
192 |
if (FieldExists("glpi_users_profiles", "active")) { |
193 |
$query = "ALTER TABLE `glpi_users_profiles` DROP `active` "; |
194 |
$DB->query($query) or die("0.7 clean active field for beta of glpi_users_profiles " . $LANG["update"][90] . $DB->error()); |
195 |
} |
196 |
if (!FieldExists("glpi_users", "active")) { |
197 |
$query = "ALTER TABLE `glpi_users` ADD `active` INT(2) NOT NULL DEFAULT '1' "; |
198 |
$DB->query($query) or die("0.7 add active field for beta of glpi_users " . $LANG["update"][90] . $DB->error()); |
199 |
if (!isIndex("glpi_users", "active")) { |
200 |
$query = "ALTER TABLE `glpi_users` ADD INDEX (`active`);"; |
201 |
$DB->query($query) or die("0.7 add index active in glpi_users " . $LANG["update"][90] . $DB->error()); |
202 |
} |
203 |
} |
204 |
|
205 |
// Add entity tags to tables
|
206 |
$tables = array ( |
207 |
"glpi_cartridges_type",
|
208 |
"glpi_computers",
|
209 |
"glpi_consumables_type",
|
210 |
"glpi_contacts",
|
211 |
"glpi_contracts",
|
212 |
"glpi_docs",
|
213 |
"glpi_dropdown_locations",
|
214 |
"glpi_dropdown_netpoint",
|
215 |
"glpi_enterprises",
|
216 |
"glpi_groups",
|
217 |
"glpi_monitors",
|
218 |
"glpi_networking",
|
219 |
"glpi_peripherals",
|
220 |
"glpi_phones",
|
221 |
"glpi_printers",
|
222 |
"glpi_reminder",
|
223 |
"glpi_software",
|
224 |
"glpi_tracking"
|
225 |
); |
226 |
// "glpi_kbitems","glpi_dropdown_kbcategories", -> easier to manage
|
227 |
// "glpi_followups" -> always link to tracking ?
|
228 |
// "glpi_licenses" -> always link to software ?
|
229 |
// "glpi_infocoms" -> always link to item ? PB on reports stats ?
|
230 |
// "glpi_links" -> global items easier to manage
|
231 |
// "glpi_reservation_item", "glpi_state_item" -> always link to item ? but info maybe needed
|
232 |
foreach ($tables as $tbl) { |
233 |
if (!FieldExists($tbl, "FK_entities")) { |
234 |
$query = "ALTER TABLE `" . $tbl . "` ADD `FK_entities` INT NOT NULL DEFAULT '0' AFTER `ID`"; |
235 |
$DB->query($query) or die("0.7 add FK_entities in $tbl " . $LANG["update"][90] . $DB->error()); |
236 |
} |
237 |
|
238 |
if (!isIndex($tbl, "FK_entities")) { |
239 |
$query = "ALTER TABLE `" . $tbl . "` ADD INDEX (`FK_entities`)"; |
240 |
$DB->query($query) or die("0.7 add index FK_entities in $tbl " . $LANG["update"][90] . $DB->error()); |
241 |
} |
242 |
} |
243 |
|
244 |
// Regenerate Indexes :
|
245 |
$tables = array ( |
246 |
"glpi_dropdown_locations"
|
247 |
); |
248 |
foreach ($tables as $tbl) { |
249 |
if (isIndex($tbl, "name")) { |
250 |
$query = "ALTER TABLE `$tbl` DROP INDEX `name`;"; |
251 |
$DB->query($query) or die("0.7 drop index name in $tbl " . $LANG["update"][90] . $DB->error()); |
252 |
} |
253 |
if (isIndex($tbl, "parentID_2")) { |
254 |
$query = "ALTER TABLE `$tbl` DROP INDEX `parentID_2`;"; |
255 |
$DB->query($query) or die("0.7 drop index name in $tbl " . $LANG["update"][90] . $DB->error()); |
256 |
} |
257 |
$query = "ALTER TABLE `$tbl` ADD UNIQUE(`name`,`parentID`,`FK_entities`);"; |
258 |
$DB->query($query) or die("0.7 add index name in $tbl " . $LANG["update"][90] . $DB->error()); |
259 |
|
260 |
} |
261 |
|
262 |
if (isIndex("glpi_users_profiles", "FK_users_profiles")) { |
263 |
$query = "ALTER TABLE `glpi_users_profiles` DROP INDEX `FK_users_profiles`;"; |
264 |
$DB->query($query) or die("0.7 drop index FK_users_profiles in glpi_users_profiles " . $LANG["update"][90] . $DB->error()); |
265 |
} |
266 |
|
267 |
if (!isIndex("glpi_users_profiles", "FK_entities")) { |
268 |
$query = "ALTER TABLE `glpi_users_profiles` ADD INDEX (`FK_entities`);"; |
269 |
$DB->query($query) or die("0.7 add index FK_entities in glpi_users_profiles " . $LANG["update"][90] . $DB->error()); |
270 |
} |
271 |
|
272 |
if (!isIndex("glpi_users_profiles", "recursive")) { |
273 |
$query = "ALTER TABLE `glpi_users_profiles` ADD INDEX (`recursive`);"; |
274 |
$DB->query($query) or die("0.7 add index recursive in glpi_users_profiles " . $LANG["update"][90] . $DB->error()); |
275 |
} |
276 |
|
277 |
//// MULTIAUTH MANAGEMENT
|
278 |
|
279 |
if (!TableExists("glpi_auth_ldap")) { |
280 |
$query = "CREATE TABLE `glpi_auth_ldap` ( |
281 |
`ID` int(11) NOT NULL auto_increment,
|
282 |
`name` varchar(255) NOT NULL,
|
283 |
`ldap_host` varchar(255) default NULL,
|
284 |
`ldap_basedn` varchar(255) default NULL,
|
285 |
`ldap_rootdn` varchar(255) default NULL,
|
286 |
`ldap_pass` varchar(255) default NULL,
|
287 |
`ldap_port` varchar(255) NOT NULL default '389',
|
288 |
`ldap_condition` varchar(255) default NULL,
|
289 |
`ldap_login` varchar(255) NOT NULL default 'uid',
|
290 |
`ldap_use_tls` varchar(255) NOT NULL default '0',
|
291 |
`ldap_field_group` varchar(255) default NULL,
|
292 |
`ldap_group_condition` varchar(255) default NULL,
|
293 |
`ldap_search_for_groups` int NOT NULL default '0',
|
294 |
`ldap_field_group_member` varchar(255) default NULL,
|
295 |
`ldap_field_email` varchar(255) default NULL,
|
296 |
`ldap_field_realname` varchar(255) default NULL,
|
297 |
`ldap_field_firstname` varchar(255) default NULL,
|
298 |
`ldap_field_phone` varchar(255) default NULL,
|
299 |
`ldap_field_phone2` varchar(255) default NULL,
|
300 |
`ldap_field_mobile` varchar(255) default NULL,
|
301 |
`ldap_field_comments` TEXT default NULL,
|
302 |
PRIMARY KEY (`ID`)
|
303 |
) ENGINE=MyISAM;";
|
304 |
$DB->query($query) or die("0.7 create glpi_auth_ldap " . $LANG["update"][90] . $DB->error()); |
305 |
|
306 |
$query = "select * from glpi_config WHERE ID=1"; |
307 |
$result = $DB->query($query); |
308 |
$config = $DB->fetch_array($result); |
309 |
|
310 |
if (!empty ($config["ldap_host"])) { |
311 |
|
312 |
//Transfer ldap informations into the new table
|
313 |
|
314 |
$query = "INSERT INTO `glpi_auth_ldap` VALUES |
315 |
(NULL, '" . $config["ldap_host"] . "', '" . $config["ldap_host"] . "', '" . $config["ldap_basedn"] . "', '" . $config["ldap_rootdn"] . "', '" . $config["ldap_pass"] . "', " . $config["ldap_port"] . ", '" . $config["ldap_condition"] . "', '" . $config["ldap_login"] . "', '" . $config["ldap_use_tls"] . "', '" . $config["ldap_field_group"] . "', |
316 |
'" . $config["ldap_condition"] . "', " . $config["ldap_search_for_groups"] . ", '" . $config["ldap_field_group_member"] . "', |
317 |
'" . $config["ldap_field_email"] . "', '" . $config["ldap_field_realname"] . "', '" . $config["ldap_field_firstname"] . "', |
318 |
'" . $config["ldap_field_phone"] . "', '" . $config["ldap_field_phone2"] . "', '" . $config["ldap_field_mobile"] . "',NULL);"; |
319 |
$DB->query($query) or die("0.7 transfert of ldap parameters into glpi_auth_ldap " . $LANG["update"][90] . $DB->error()); |
320 |
} |
321 |
|
322 |
$query = "ALTER TABLE `glpi_config` |
323 |
DROP `ldap_field_email`,
|
324 |
DROP `ldap_port`,
|
325 |
DROP `ldap_host`,
|
326 |
DROP `ldap_basedn`,
|
327 |
DROP `ldap_rootdn`,
|
328 |
DROP `ldap_pass`,
|
329 |
DROP `ldap_field_location`,
|
330 |
DROP `ldap_field_realname`,
|
331 |
DROP `ldap_field_firstname`,
|
332 |
DROP `ldap_field_phone`,
|
333 |
DROP `ldap_field_phone2`,
|
334 |
DROP `ldap_field_mobile`,
|
335 |
DROP `ldap_condition`,
|
336 |
DROP `ldap_login`,
|
337 |
DROP `ldap_use_tls`,
|
338 |
DROP `ldap_field_group`,
|
339 |
DROP `ldap_group_condition`,
|
340 |
DROP `ldap_search_for_groups`,
|
341 |
DROP `ldap_field_group_member`;";
|
342 |
$DB->query($query) or die("0.7 drop ldap fields from glpi_config " . $LANG["update"][90] . $DB->error()); |
343 |
|
344 |
} |
345 |
if (!FieldExists("glpi_users", "id_auth")) { |
346 |
$query = "ALTER TABLE glpi_users ADD `id_auth` INT NOT NULL DEFAULT '-1', |
347 |
ADD `auth_method` INT NOT NULL DEFAULT '-1',
|
348 |
ADD `last_login` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
|
349 |
ADD `date_mod` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'";
|
350 |
$DB->query($query) or die("0.7 add auth_method & id_method in glpi_users " . $LANG["update"][90] . $DB->error()); |
351 |
} |
352 |
|
353 |
if (!TableExists("glpi_auth_mail")) { |
354 |
$query = "CREATE TABLE `glpi_auth_mail` ( |
355 |
`ID` int(11) NOT NULL auto_increment,
|
356 |
`name` varchar(255) NOT NULL,
|
357 |
`imap_auth_server` varchar(200) default NULL,
|
358 |
`imap_host` varchar(200) default NULL,
|
359 |
PRIMARY KEY (`ID`)
|
360 |
) ENGINE=MyISAM ;";
|
361 |
|
362 |
$DB->query($query) or die("0.7 create glpi_auth_mail " . $LANG["update"][90] . $DB->error()); |
363 |
|
364 |
$query = "select * from glpi_config WHERE ID=1"; |
365 |
$result = $DB->query($query); |
366 |
$config = $DB->fetch_array($result); |
367 |
|
368 |
if (!empty ($config["imap_host"])) { |
369 |
|
370 |
//Transfer ldap informations into the new table
|
371 |
$query = "INSERT INTO `glpi_auth_mail` VALUES |
372 |
(NULL, '" . $config["imap_host"] . "', '" . $config["imap_auth_server"] . "', '" . $config["imap_host"] . "');"; |
373 |
$DB->query($query) or die("0.7 transfert of mail parameters into glpi_auth_mail " . $LANG["update"][90] . $DB->error()); |
374 |
|
375 |
} |
376 |
|
377 |
$query = "ALTER TABLE `glpi_config` |
378 |
DROP `imap_auth_server`,
|
379 |
DROP `imap_host`";
|
380 |
$DB->query($query) or die("0.7 drop mail fields from glpi_config " . $LANG["update"][90] . $DB->error()); |
381 |
|
382 |
} |
383 |
|
384 |
// Clean state_item -> add a field from tables
|
385 |
if (TableExists("glpi_state_item")) { |
386 |
$state_type = array ( |
387 |
SOFTWARE_TYPE,
|
388 |
COMPUTER_TYPE,
|
389 |
PRINTER_TYPE,
|
390 |
MONITOR_TYPE,
|
391 |
PERIPHERAL_TYPE,
|
392 |
NETWORKING_TYPE,
|
393 |
PHONE_TYPE
|
394 |
); |
395 |
foreach ($state_type as $type) { |
396 |
$table = $LINK_ID_TABLE[$type]; |
397 |
if (!FieldExists($table, "state")) { |
398 |
$query = "ALTER TABLE `$table` ADD `state` INT NOT NULL DEFAULT '0';"; |
399 |
$DB->query($query) or die("0.7 add state field to $table " . $LANG["update"][90] . $DB->error()); |
400 |
$query2 = "SELECT * FROM glpi_state_item WHERE device_type='$type'"; |
401 |
$result = $DB->query($query2); |
402 |
if ($DB->numrows($result)) { |
403 |
while ($data = $DB->fetch_array($result)) { |
404 |
$query3 = "UPDATE $table SET state='" . $data["state"] . "' WHERE ID ='" . $data["id_device"] . "'"; |
405 |
$DB->query($query3) or die("0.7 update state field value to $table " . $LANG["update"][90] . $DB->error()); |
406 |
} |
407 |
} |
408 |
} |
409 |
} |
410 |
$query = "DROP TABLE `glpi_state_item` "; |
411 |
$DB->query($query) or die("0.7 drop table state_item " . $LANG["update"][90] . $DB->error()); |
412 |
$query = "INSERT INTO `glpi_display` (`type`, `num`, `rank`, `FK_users`) VALUES (22, 31, 1, 0);"; |
413 |
$DB->query($query) or die("0.7 add default search for states " . $LANG["update"][90] . $DB->error()); |
414 |
// Add for reservation
|
415 |
$query = "INSERT INTO `glpi_display` (`type`, `num`, `rank`, `FK_users`) VALUES ( 29, 4, 1, 0);"; |
416 |
$DB->query($query) or die("0.7 add defaul search for reservation " . $LANG["update"][90] . $DB->error()); |
417 |
$query = "INSERT INTO `glpi_display` (`type`, `num`, `rank`, `FK_users`) VALUES ( 29, 3, 2, 0);"; |
418 |
$DB->query($query) or die("0.7 add defaul search for reservation " . $LANG["update"][90] . $DB->error()); |
419 |
} |
420 |
|
421 |
// Add ticket_tco for hardwares
|
422 |
$tco_tbl = array ( |
423 |
COMPUTER_TYPE,
|
424 |
NETWORKING_TYPE,
|
425 |
PRINTER_TYPE,
|
426 |
MONITOR_TYPE,
|
427 |
PERIPHERAL_TYPE,
|
428 |
SOFTWARE_TYPE,
|
429 |
PHONE_TYPE
|
430 |
); |
431 |
include (GLPI_ROOT . "/inc/tracking.function.php"); |
432 |
|
433 |
foreach ($tco_tbl as $type) { |
434 |
$table = $LINK_ID_TABLE[$type]; |
435 |
if (!FieldExists($table, "ticket_tco")) { |
436 |
$query = "ALTER TABLE `$table` ADD `ticket_tco` DECIMAL( 20, 4 ) DEFAULT '0.0000';"; |
437 |
$DB->query($query) or die("0.7 alter $table add ticket_tco" . $LANG["update"][90] . $DB->error()); |
438 |
// Update values
|
439 |
$query = "SELECT DISTINCT device_type, computer |
440 |
FROM glpi_tracking
|
441 |
WHERE device_type = '$type' AND (cost_time>0
|
442 |
OR cost_fixed>0
|
443 |
OR cost_material>0)";
|
444 |
$result = $DB->query($query) or die("0.7 update ticket_tco" . $LANG["update"][90] . $DB->error()); |
445 |
if ($DB->numrows($result)) { |
446 |
while ($data = $DB->fetch_array($result)) { |
447 |
$query2 = "UPDATE $table SET ticket_tco='" . computeTicketTco($type, $data["computer"]) . "' |
448 |
WHERE ID='" . $data["computer"] . "';"; |
449 |
$DB->query($query2) or die("0.7 update ticket_tco" . $LANG["update"][90] . $DB->error()); |
450 |
} |
451 |
} |
452 |
} |
453 |
} |
454 |
if (!FieldExists("glpi_software", "helpdesk_visible")) { |
455 |
$query = "ALTER TABLE glpi_software ADD `helpdesk_visible` INT NOT NULL default '1'"; |
456 |
$DB->query($query) or die("0.7 add helpdesk_visible in glpi_software " . $LANG["update"][90] . $DB->error()); |
457 |
} |
458 |
|
459 |
if (!TableExists("glpi_dropdown_manufacturer")) { |
460 |
|
461 |
$query = "CREATE TABLE `glpi_dropdown_manufacturer` ( |
462 |
`ID` int(11) NOT NULL auto_increment,
|
463 |
`name` varchar(255) NOT NULL,
|
464 |
`comments` text,
|
465 |
PRIMARY KEY (`ID`),
|
466 |
KEY `name` (`name`)
|
467 |
) ENGINE=MyISAM ;";
|
468 |
$DB->query($query) or die("0.7 add dropdown_manufacturer table " . $LANG["update"][90] . $DB->error()); |
469 |
} |
470 |
if (countElementsInTable("glpi_dropdown_manufacturer")==0){ |
471 |
|
472 |
// Fill table
|
473 |
$query = "SELECT * FROM glpi_enterprises ORDER BY ID"; |
474 |
if ($result = $DB->query($query)) { |
475 |
if ($DB->numrows($result)) { |
476 |
while ($data = $DB->fetch_assoc($result)) { |
477 |
$data = addslashes_deep($data); |
478 |
|
479 |
$comments = ""; |
480 |
if (!empty ($data['address'])) { |
481 |
if (!empty ($comments)) |
482 |
$comments .= "\n"; |
483 |
$comments .= $LANG["financial"][44] . ":\n"; |
484 |
$comments .= $data['address']; |
485 |
} |
486 |
if (!empty ($data['postcode']) || !empty ($data['town'])) { |
487 |
if (!empty ($comments)) |
488 |
$comments .= $LANG["financial"][44] . ":\n"; |
489 |
$comments .= $data['postcode'] . " " . $data['town']; |
490 |
} |
491 |
if (!empty ($data['state']) || !empty ($data['country'])) { |
492 |
if (!empty ($comments)) |
493 |
$comments .= $LANG["financial"][44] . ":\n"; |
494 |
$comments .= $data['country'] . " " . $data['state']; |
495 |
} |
496 |
if (!empty ($data['website'])) { |
497 |
if (!empty ($comments)) |
498 |
$comments .= "\n"; |
499 |
$comments .= $LANG["financial"][45] . ": "; |
500 |
$comments .= $data['website']; |
501 |
} |
502 |
if (!empty ($data['phonenumber'])) { |
503 |
if (!empty ($comments)) |
504 |
$comments .= "\n"; |
505 |
$comments .= $LANG["help"][35] . ": "; |
506 |
$comments .= $data['phonenumber']; |
507 |
} |
508 |
if (!empty ($data['fax'])) { |
509 |
if (!empty ($comments)) |
510 |
$comments .= "\n"; |
511 |
$comments .= $LANG["financial"][30] . ": "; |
512 |
$comments .= $data['fax']; |
513 |
} |
514 |
if (!empty ($data['email'])) { |
515 |
if (!empty ($comments)) |
516 |
$comments .= "\n"; |
517 |
$comments .= $LANG["setup"][14] . ": "; |
518 |
$comments .= $data['email']; |
519 |
} |
520 |
if (!empty ($data['comments'])) { |
521 |
if (!empty ($comments)) |
522 |
$comments .= "\n"; |
523 |
$comments .= $data['comments']; |
524 |
} |
525 |
if (!empty ($data['notes'])) { |
526 |
if (!empty ($comments)) |
527 |
$comments .= "\n"; |
528 |
$comments .= $data['notes']; |
529 |
} |
530 |
|
531 |
$query2 = "INSERT INTO `glpi_dropdown_manufacturer` (ID,name,comments) VALUES ('" . $data['ID'] . "','" . $data['name'] . "','".$comments."')"; |
532 |
$DB->query($query2) or die("0.7 add manufacturer item " . $LANG["update"][90] . $DB->error()); |
533 |
} |
534 |
} |
535 |
} |
536 |
} |
537 |
|
538 |
if (isIndex("glpi_ocs_link", "ocs_id_2")) { |
539 |
$query = "ALTER TABLE `glpi_ocs_link` DROP INDEX `ocs_id_2` "; |
540 |
$DB->query($query) or die("0.7 alter ocs_link clean index ocs_id " . $LANG["update"][90] . $DB->error()); |
541 |
} |
542 |
|
543 |
if (isIndex("glpi_ocs_link", "ocs_id")) { |
544 |
$query = "ALTER TABLE `glpi_ocs_link` DROP INDEX `ocs_id` "; |
545 |
$DB->query($query) or die("0.7 alter ocs_link clean index ocs_id " . $LANG["update"][90] . $DB->error()); |
546 |
} |
547 |
|
548 |
|
549 |
if (!FieldExists("glpi_ocs_link", "ocs_server_id")) { |
550 |
$query = "ALTER TABLE glpi_ocs_link ADD `ocs_server_id` int(11) NOT NULL"; |
551 |
$DB->query($query) or die("0.7 add ocs_server_id in glpi_ocs_link " . $LANG["update"][90] . $DB->error()); |
552 |
$query = "update glpi_ocs_link set ocs_server_id=1"; |
553 |
$DB->query($query) or die("0.7 update ocs_server_id=1 in glpi_ocs_link " . $LANG["update"][90] . $DB->error()); |
554 |
} |
555 |
|
556 |
if (!isIndex("glpi_ocs_link", "ocs_server_id")) { |
557 |
// Clean duplicates
|
558 |
$query="SELECT COUNT(*) as CPT, ocs_id FROM glpi_ocs_link GROUP BY ocs_id HAVING CPT >1"; |
559 |
if ($result=$DB->query($query)){ |
560 |
if ($DB->numrows($result)>0){ |
561 |
while ($data=$DB->fetch_array($result)){ |
562 |
// Skip first
|
563 |
$query="SELECT ID FROM glpi_ocs_link WHERE ocs_id = '".$data['ocs_id']."' ORDER BY last_update DESC LIMIT 1,99999"; |
564 |
if ($result2=$DB->query($query)){ |
565 |
if ($DB->numrows($result2)){ |
566 |
while ($data2=$DB->fetch_array($result2)){ |
567 |
$query="DELETE FROM glpi_ocs_link WHERE ID ='".$data2['ID']."'"; |
568 |
$DB->query($query) or die("0.7 clean to update ocs_server_id=1 in glpi_ocs_link " . $LANG["update"][90] . $DB->error()); |
569 |
} |
570 |
} |
571 |
} |
572 |
} |
573 |
} |
574 |
} |
575 |
|
576 |
|
577 |
|
578 |
$query = "ALTER TABLE `glpi_ocs_link` ADD UNIQUE `ocs_server_id` (`ocs_server_id` ,`ocs_id`);"; |
579 |
$DB->query($query) or die("0.7 alter ocs_link add index ocs_server_id " . $LANG["update"][90] . $DB->error()); |
580 |
} |
581 |
|
582 |
if (!isIndex("glpi_ocs_link", "`ocs_deviceid`")) { |
583 |
$query = "ALTER TABLE `glpi_ocs_link` ADD INDEX ( `ocs_deviceid` )"; |
584 |
$DB->query($query) or die("0.7 alter ocs_link add index ocs_deviceid " . $LANG["update"][90] . $DB->error()); |
585 |
} |
586 |
|
587 |
if (!FieldExists("glpi_ocs_config", "tplname")) { |
588 |
$query = "ALTER TABLE glpi_ocs_config ADD `name` varchar(200) default NULL AFTER `ID`, ADD `is_template` enum('0','1') NOT NULL default '0', ADD `tplname` varchar(200) default NULL, ADD `date_mod` datetime default NULL"; |
589 |
$DB->query($query) or die("0.7 add name, is_template, tplname, date_mod in glpi_ocs_link " . $LANG["update"][90] . $DB->error()); |
590 |
$query = "update glpi_ocs_config set name=ocs_db_host"; |
591 |
$DB->query($query) or die("0.7 add name in glpi_ocs_config " . $LANG["update"][90] . $DB->error()); |
592 |
} |
593 |
|
594 |
if (!FieldExists("glpi_ocs_config", "import_registry")) { |
595 |
$query = "ALTER TABLE glpi_ocs_config ADD `import_registry` INT NOT NULL default '0' AFTER `import_device_modems`"; |
596 |
$DB->query($query) or die("0.7 add import_registry in glpi_ocs_config " . $LANG["update"][90] . $DB->error()); |
597 |
} |
598 |
if (FieldExists("glpi_ocs_config", "import_tag_field")) { |
599 |
$query = "ALTER TABLE glpi_ocs_config DROP `import_tag_field`;"; |
600 |
$DB->query($query) or die("0.7 drop import_tag_field in glpi_ocs_config " . $LANG["update"][90] . $DB->error()); |
601 |
} |
602 |
|
603 |
if (!FieldExists("glpi_ocs_config", "import_software_licensetype")) { |
604 |
$query = "ALTER TABLE glpi_ocs_config ADD `import_software_licensetype` VARCHAR(255) DEFAULT 'global' AFTER `import_software`"; |
605 |
$DB->query($query) or die("0.7 add import_software_licensetype in glpi_ocs_config " . $LANG["update"][90] . $DB->error()); |
606 |
} |
607 |
|
608 |
if (!FieldExists("glpi_ocs_config", "import_software_buy")) { |
609 |
$query = "ALTER TABLE glpi_ocs_config ADD `import_software_buy` INT NOT NULL DEFAULT '1' AFTER `import_software`"; |
610 |
$DB->query($query) or die("0.7 add import_software_buy in glpi_ocs_config " . $LANG["update"][90] . $DB->error()); |
611 |
} |
612 |
|
613 |
if (!TableExists("glpi_registry")) { |
614 |
$query = "CREATE TABLE `glpi_registry` ( |
615 |
`ID` int(10) NOT NULL auto_increment,
|
616 |
`computer_id` int(10) NOT NULL DEFAULT '0',
|
617 |
`registry_hive` varchar(45) NOT NULL,
|
618 |
`registry_path` varchar(255) NOT NULL,
|
619 |
`registry_value` varchar(255) NOT NULL,
|
620 |
PRIMARY KEY (`ID`),
|
621 |
KEY `computer_id` (`computer_id`)
|
622 |
) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;";
|
623 |
$DB->query($query) or die("0.7 add glpi_registry table " . $LANG["update"][90] . $DB->error()); |
624 |
|
625 |
} |
626 |
|
627 |
if (!FieldExists("glpi_ocs_link", "import_ip")) { |
628 |
$query = "ALTER TABLE `glpi_ocs_link` ADD COLUMN `import_ip` LONGTEXT"; |
629 |
$DB->query($query) or die("0.7 add import_ip in glpi_ocs_link" . $LANG["update"][90] . $DB->error()); |
630 |
} |
631 |
|
632 |
|
633 |
//// Enum clean
|
634 |
// Enum 0-1
|
635 |
$enum01 = array (); |
636 |
$template_tables = array ( |
637 |
"glpi_computers",
|
638 |
"glpi_networking",
|
639 |
"glpi_printers",
|
640 |
"glpi_monitors",
|
641 |
"glpi_peripherals",
|
642 |
"glpi_software",
|
643 |
"glpi_phones",
|
644 |
"glpi_ocs_config"
|
645 |
); |
646 |
|
647 |
foreach ($template_tables as $table) { |
648 |
if (!isset ($enum01[$table])) { |
649 |
$enum01[$table] = array (); |
650 |
} |
651 |
$enum01[$table][] = "is_template"; |
652 |
} |
653 |
$enum01["glpi_config"][] = "auto_assign"; |
654 |
$enum01["glpi_config"][] = "public_faq"; |
655 |
$enum01["glpi_config"][] = "url_in_mail"; |
656 |
$enum01["glpi_profiles"][] = "is_default"; |
657 |
|
658 |
$enum01["glpi_monitors"][] = "is_global"; |
659 |
$enum01["glpi_peripherals"][] = "is_global"; |
660 |
$enum01["glpi_phones"][] = "is_global"; |
661 |
$enum01["glpi_printers"][] = "is_global"; |
662 |
$enum01["glpi_reminder"][] = "rv"; |
663 |
$enum01["glpi_contract_device"][] = "is_template"; |
664 |
$enum01["glpi_doc_device"][] = "is_template"; |
665 |
|
666 |
foreach ($enum01 as $table => $fields) { |
667 |
foreach ($fields as $key => $field) { |
668 |
if (FieldExists($table, $field)) { |
669 |
|
670 |
$query = "ALTER TABLE `$table` ADD `tmp_convert_enum` SMALLINT NOT NULL DEFAULT '0' AFTER `$field` "; |
671 |
$DB->query($query) or die("0.7 alter $table add new field tmp_convert_enum " . $LANG["update"][90] . $DB->error()); |
672 |
|
673 |
$query = "UPDATE `$table` SET tmp_convert_enum='1' WHERE $field='1';"; |
674 |
$DB->query($query) or die("0.7 update $table to set correct values to alod enum01 $field " . $LANG["update"][90] . $DB->error()); |
675 |
$query = "UPDATE `$table` SET tmp_convert_enum='0' WHERE $field='0';"; |
676 |
$DB->query($query) or die("0.7 update $table to set correct values to alod enum01 $field " . $LANG["update"][90] . $DB->error()); |
677 |
|
678 |
$query = "ALTER TABLE `$table` DROP `$field` "; |
679 |
$DB->query($query) or die("0.7 alter $table drop tmp enum field " . $LANG["update"][90] . $DB->error()); |
680 |
|
681 |
$query = "ALTER TABLE `$table` CHANGE `tmp_convert_enum` `$field` SMALLINT NOT NULL DEFAULT '0'"; |
682 |
$DB->query($query) or die("0.7 alter $table move enum $field to tmp field " . $LANG["update"][90] . $DB->error()); |
683 |
|
684 |
if ($table != "glpi_config" && $table != "glpi_profiles") { |
685 |
$query = "ALTER TABLE `$table` ADD KEY (`$field`)"; |
686 |
$DB->query($query) or die("0.7 alter $table add deleted key " . $LANG["update"][90] . $DB->error()); |
687 |
} |
688 |
} |
689 |
} |
690 |
} |
691 |
|
692 |
$enumYN["N"]["glpi_contracts"][] = "monday"; // N |
693 |
$enumYN["N"]["glpi_contracts"][] = "saturday"; // N |
694 |
$enumYN["Y"]["glpi_device_drive"][] = "is_writer"; // Y |
695 |
$enumYN["N"]["glpi_device_control"][] = "raid"; // Y -> N |
696 |
$enumYN["Y"]["glpi_device_power"][] = "atx"; // Y |
697 |
$enumYN["N"]["glpi_licenses"][] = "oem"; // N |
698 |
$enumYN["Y"]["glpi_licenses"][] = "buy"; // Y |
699 |
$enumYN["N"]["glpi_software"][] = "is_update"; // N |
700 |
$enumYN["Y"]["glpi_type_docs"][] = "upload"; // Y |
701 |
|
702 |
$deleted_tables = array ( |
703 |
"glpi_computers",
|
704 |
"glpi_networking",
|
705 |
"glpi_printers",
|
706 |
"glpi_monitors",
|
707 |
"glpi_peripherals",
|
708 |
"glpi_software",
|
709 |
"glpi_cartridges_type",
|
710 |
"glpi_contracts",
|
711 |
"glpi_contacts",
|
712 |
"glpi_enterprises",
|
713 |
"glpi_docs",
|
714 |
"glpi_phones",
|
715 |
"glpi_consumables_type"
|
716 |
); |
717 |
|
718 |
foreach ($deleted_tables as $table) { |
719 |
if (!isset ($enum01[$table])) { |
720 |
$enum01[$table] = array (); |
721 |
} |
722 |
$enumYN["N"][$table][] = "deleted"; |
723 |
} |
724 |
|
725 |
foreach ($enumYN as $default => $tmptbl) |
726 |
foreach ($tmptbl as $table => $fields) { |
727 |
foreach ($fields as $key => $field) { |
728 |
if (FieldExists($table, $field)) { |
729 |
|
730 |
$newdef = 0; |
731 |
if ($default == "Y") { |
732 |
$newdef = 1; |
733 |
} |
734 |
|
735 |
$query = "ALTER TABLE `$table` ADD `tmp_convert_enum` SMALLINT NOT NULL DEFAULT '$newdef' AFTER `$field` "; |
736 |
$DB->query($query) or die("0.7 alter $table add new field tmp_convert_enum " . $LANG["update"][90] . $DB->error()); |
737 |
|
738 |
$query = "UPDATE `$table` SET tmp_convert_enum='1' WHERE $field='Y';"; |
739 |
$DB->query($query) or die("0.7 update $table to set correct values to alod enum01 $field " . $LANG["update"][90] . $DB->error()); |
740 |
$query = "UPDATE `$table` SET tmp_convert_enum='0' WHERE $field='N';"; |
741 |
$DB->query($query) or die("0.7 update $table to set correct values to alod enum01 $field " . $LANG["update"][90] . $DB->error()); |
742 |
|
743 |
$query = "ALTER TABLE `$table` DROP `$field` "; |
744 |
$DB->query($query) or die("0.7 alter $table drop tmp enum field " . $LANG["update"][90] . $DB->error()); |
745 |
|
746 |
$query = "ALTER TABLE `$table` CHANGE `tmp_convert_enum` `$field` SMALLINT NOT NULL DEFAULT '$newdef'"; |
747 |
$DB->query($query) or die("0.7 alter $table move enum $field to tmp field " . $LANG["update"][90] . $DB->error()); |
748 |
|
749 |
if ($field == "deleted" || $table == "glpi_licenses" || $table == "glpi_software" || $table == "glpi_type_docs") { |
750 |
$query = "ALTER TABLE `$table` ADD KEY (`$field`)"; |
751 |
$DB->query($query) or die("0.7 alter $table add deleted key " . $LANG["update"][90] . $DB->error()); |
752 |
} |
753 |
} |
754 |
} |
755 |
} |
756 |
|
757 |
if (FieldExists("glpi_tracking", "is_group")) { |
758 |
$query = "ALTER TABLE glpi_tracking DROP `is_group`"; |
759 |
$DB->query($query) or die("0.7 drop is_group from tracking " . $LANG["update"][90] . $DB->error()); |
760 |
} |
761 |
|
762 |
$enumYesNo["glpi_kbitems"][] = "faq"; |
763 |
$enumYesNo["glpi_tracking"][] = "emailupdates"; |
764 |
$enumYesNo["glpi_users"][] = "tracking_order"; |
765 |
|
766 |
foreach ($enumYesNo as $table => $fields) { |
767 |
foreach ($fields as $key => $field) { |
768 |
if (FieldExists($table, $field)) { |
769 |
|
770 |
$query = "ALTER TABLE `$table` ADD `tmp_convert_enum` SMALLINT NOT NULL DEFAULT '0' AFTER `$field` "; |
771 |
$DB->query($query) or die("0.7 alter $table add new field tmp_convert_enum " . $LANG["update"][90] . $DB->error()); |
772 |
|
773 |
$query = "UPDATE `$table` SET tmp_convert_enum='1' WHERE $field='yes';"; |
774 |
$DB->query($query) or die("0.7 update $table to set correct values to alod enum01 $field " . $LANG["update"][90] . $DB->error()); |
775 |
$query = "UPDATE `$table` SET tmp_convert_enum='0' WHERE $field='no';"; |
776 |
$DB->query($query) or die("0.7 update $table to set correct values to alod enum01 $field " . $LANG["update"][90] . $DB->error()); |
777 |
|
778 |
$query = "ALTER TABLE `$table` DROP `$field` "; |
779 |
$DB->query($query) or die("0.7 alter $table drop tmp enum field " . $LANG["update"][90] . $DB->error()); |
780 |
|
781 |
$query = "ALTER TABLE `$table` CHANGE `tmp_convert_enum` `$field` SMALLINT NOT NULL DEFAULT '0'"; |
782 |
$DB->query($query) or die("0.7 alter $table move enum $field to tmp field " . $LANG["update"][90] . $DB->error()); |
783 |
|
784 |
if ($table == "glpi_kbitems") { |
785 |
$query = "ALTER TABLE `$table` ADD KEY (`$field`)"; |
786 |
$DB->query($query) or die("0.7 alter $table add deleted key " . $LANG["update"][90] . $DB->error()); |
787 |
} |
788 |
} |
789 |
} |
790 |
} |
791 |
// Reste enum : glpi_tracking.status et glpi_device_gfxcard.interface
|
792 |
if (FieldExists("glpi_tracking", "status")) { |
793 |
$query = "ALTER TABLE `glpi_tracking` CHANGE `status` `status` VARCHAR( 255 ) DEFAULT 'new'"; |
794 |
$DB->query($query) or die("0.7 alter status from tracking " . $LANG["update"][90] . $DB->error()); |
795 |
} |
796 |
|
797 |
if (FieldExists("glpi_device_gfxcard", "interface")) { |
798 |
$query = "ALTER TABLE `glpi_device_gfxcard` CHANGE `interface` `interface` VARCHAR( 255 ) NULL DEFAULT 'PCI-X'"; |
799 |
$DB->query($query) or die("0.7 alter interface from glpi_device_gfxcard " . $LANG["update"][90] . $DB->error()); |
800 |
} |
801 |
|
802 |
if (!TableExists("glpi_rules_actions")) { |
803 |
$query = "CREATE TABLE `glpi_rules_actions` ( |
804 |
`ID` int(11) NOT NULL auto_increment,
|
805 |
`FK_rules` int(11) NOT NULL DEFAULT '0',
|
806 |
`action_type` varchar(255) NOT NULL,
|
807 |
`field` varchar(255) NOT NULL,
|
808 |
`value` varchar(255) NOT NULL,
|
809 |
PRIMARY KEY (`ID`),
|
810 |
KEY `FK_rules` (`FK_rules`)
|
811 |
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
812 |
";
|
813 |
$DB->query($query) or die("0.7 add table glpi_rules_descriptions" . $LANG["update"][90] . $DB->error()); |
814 |
|
815 |
} |
816 |
|
817 |
if (!TableExists("glpi_rules_criterias")) { |
818 |
$query = "CREATE TABLE `glpi_rules_criterias` ( |
819 |
`ID` int(11) NOT NULL auto_increment,
|
820 |
`FK_rules` int(11) NOT NULL DEFAULT '0',
|
821 |
`criteria` varchar(255) NOT NULL,
|
822 |
`condition` smallint(4) NOT NULL DEFAULT '0',
|
823 |
`pattern` varchar(255) NOT NULL,
|
824 |
PRIMARY KEY (`ID`),
|
825 |
KEY `FK_rules` (`FK_rules`)
|
826 |
) ENGINE=MyISAM DEFAULT CHARSET=utf8;";
|
827 |
$DB->query($query) or die("0.7 add table glpi_rules_criterias" . $LANG["update"][90] . $DB->error()); |
828 |
|
829 |
} |
830 |
|
831 |
if (!TableExists("glpi_rules_descriptions")) { |
832 |
$query = "CREATE TABLE `glpi_rules_descriptions` ( |
833 |
`ID` int(11) NOT NULL auto_increment,
|
834 |
`FK_entities` int(11) NOT NULL default '-1',
|
835 |
`rule_type` smallint(4) NOT NULL DEFAULT '0',
|
836 |
`ranking` int(11) NOT NULL DEFAULT '0',
|
837 |
`name` varchar(255) NOT NULL,
|
838 |
`description` text NOT NULL,
|
839 |
`match` varchar(255) NOT NULL,
|
840 |
PRIMARY KEY (`ID`)
|
841 |
) ENGINE=MyISAM DEFAULT CHARSET=utf8;";
|
842 |
$DB->query($query) or die("0.7 add table glpi_rules_actions" . $LANG["update"][90] . $DB->error()); |
843 |
|
844 |
} |
845 |
|
846 |
if (!FieldExists("glpi_config", "use_cache")) { |
847 |
$query = "ALTER TABLE `glpi_config` ADD `use_cache` SMALLINT NOT NULL DEFAULT '1' AFTER `debug` ;"; |
848 |
$DB->query($query) or die("0.7 alter config add use_cache " . $LANG["update"][90] . $DB->error()); |
849 |
} |
850 |
|
851 |
if (TableExists("glpi_rules_descriptions")) { |
852 |
//If no rule exists, then create a default one
|
853 |
$query = "SELECT ID from glpi_rules_descriptions"; |
854 |
$result = $DB->query($query); |
855 |
if ($DB->numrows($result) ==0) |
856 |
{ |
857 |
//Insert rule to affect machines in the Root entity
|
858 |
$query ="INSERT INTO `glpi_rules_descriptions` (`FK_entities`, `rule_type`, `ranking`, `name`, `description`, `match`) VALUES (-1, 0, 0, 'Root', '', 'AND');"; |
859 |
$DB->query($query) or die("0.7 add default ocs affectation rule" . $LANG["update"][90] . $DB->error()); |
860 |
|
861 |
$query = "SELECT ID from glpi_rules_descriptions WHERE name='Root' AND rule_type=".RULE_OCS_AFFECT_COMPUTER; |
862 |
$result = $DB->query($query); |
863 |
//Get the defaut rule's ID
|
864 |
$datas = $DB->fetch_array($result); |
865 |
|
866 |
$query="INSERT INTO `glpi_rules_criterias` (`FK_rules`, `criteria`, `condition`, `pattern`) VALUES (".$datas["ID"].", 'TAG', 0, '*');"; |
867 |
$DB->query($query) or die("0.7 add default ocs criterias" . $LANG["update"][90] . $DB->error()); |
868 |
|
869 |
$query="INSERT INTO `glpi_rules_actions` (`FK_rules`, `action_type`, `field`, `value`) VALUES (".$datas["ID"].", 'assign', 'FK_entities', '0');"; |
870 |
$DB->query($query) or die("0.7 add default ocs actions" . $LANG["update"][90] . $DB->error()); |
871 |
|
872 |
//Insert rule to affect users from LDAP to the root entity
|
873 |
$query ="INSERT INTO `glpi_rules_descriptions` (`FK_entities`, `rule_type`, `ranking`, `name`, `description`, `match`) VALUES (-1, ".RULE_AFFECT_RIGHTS.", 1, 'Root', '', 'OR');"; |
874 |
$DB->query($query) or die("0.7 add default right affectation rule" . $LANG["update"][90] . $DB->error()); |
875 |
|
876 |
$query = "SELECT ID from glpi_rules_descriptions WHERE name='Root' AND rule_type=".RULE_AFFECT_RIGHTS; |
877 |
$result = $DB->query($query); |
878 |
//Get the defaut rule's ID
|
879 |
$datas = $DB->fetch_array($result); |
880 |
|
881 |
//Criterias
|
882 |
$query="INSERT INTO `glpi_rules_criterias` (`FK_rules`, `criteria`, `condition`, `pattern`) VALUES (".$datas["ID"].", 'uid', 0, '*');"; |
883 |
$DB->query($query) or die("0.7 add default right criterias" . $LANG["update"][90] . $DB->error()); |
884 |
|
885 |
$query="INSERT INTO `glpi_rules_criterias` (`FK_rules`, `criteria`, `condition`, `pattern`) VALUES (".$datas["ID"].", 'samaccountname', 0, '*');"; |
886 |
$DB->query($query) or die("0.7 add default right criterias" . $LANG["update"][90] . $DB->error()); |
887 |
|
888 |
$query="INSERT INTO `glpi_rules_criterias` (`FK_rules`, `criteria`, `condition`, `pattern`) VALUES (".$datas["ID"].", 'MAIL_EMAIL', 0, '*');"; |
889 |
$DB->query($query) or die("0.7 add default right criterias" . $LANG["update"][90] . $DB->error()); |
890 |
|
891 |
//Action
|
892 |
$query="INSERT INTO `glpi_rules_actions` (`FK_rules`, `action_type`, `field`, `value`) VALUES (".$datas["ID"].", 'assign', 'FK_entities', '0');"; |
893 |
$DB->query($query) or die("0.7 add default right actions" . $LANG["update"][90] . $DB->error()); |
894 |
|
895 |
} |
896 |
} |
897 |
|
898 |
if (!TableExists("glpi_ocs_admin_link")){ |
899 |
$query = "CREATE TABLE `glpi_ocs_admin_link` ( |
900 |
`ID` int(10) unsigned NOT NULL auto_increment,
|
901 |
`glpi_column` varchar(255) NULL,
|
902 |
`ocs_column` varchar(255) NULL,
|
903 |
`ocs_server_id` int(11) NOT NULL,
|
904 |
PRIMARY KEY (`ID`)
|
905 |
) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;";
|
906 |
$DB->query($query) or die("0.7 add table glpi_ocs_admin_link" . $LANG["update"][90] . $DB->error()); |
907 |
} |
908 |
|
909 |
// Add title to tracking
|
910 |
if (!FieldExists("glpi_tracking", "name")) { |
911 |
$query = "ALTER TABLE `glpi_tracking` ADD `name` varchar(255) NULL AFTER `FK_entities`"; |
912 |
$DB->query($query) or die("0.7 alter tracking add name" . $LANG["update"][90] . $DB->error()); |
913 |
$query="UPDATE glpi_tracking SET name=SUBSTRING(REPLACE(contents,'\n',' '),1,50);"; |
914 |
$DB->query($query) or die("0.7 update title of glpi_tracking" . $LANG["update"][90] . $DB->error()); |
915 |
} |
916 |
if (FieldExists("glpi_reminder", "title")) { |
917 |
$query = "ALTER TABLE `glpi_reminder` CHANGE `title` `title` VARCHAR( 255 ) NULL DEFAULT NULL "; |
918 |
$DB->query($query) or die("0.7 alter title in glpi_reminder" . $LANG["update"][90] . $DB->error()); |
919 |
} |
920 |
|
921 |
if (!TableExists("glpi_rules_ldap_parameters")){ |
922 |
$query = "CREATE TABLE `glpi_rules_ldap_parameters` ( |
923 |
`ID` int(11) NOT NULL auto_increment,
|
924 |
`name` varchar(255) NOT NULL,
|
925 |
`value` varchar(255) NOT NULL,
|
926 |
`rule_type` smallint(6) NOT NULL default '1',
|
927 |
PRIMARY KEY (`ID`)
|
928 |
) ENGINE=MyISAM DEFAULT CHARSET=utf8;";
|
929 |
$DB->query($query) or die("0.7 add table glpi_rules_ldap_parameters" . $LANG["update"][90] . $DB->error()); |
930 |
|
931 |
$query = "INSERT INTO `glpi_rules_ldap_parameters` (`ID`, `name`, `value`, `rule_type`) VALUES |
932 |
(1, '(LDAP)Organization', 'o', 1),
|
933 |
(2, '(LDAP)Common Name', 'cn', 1),
|
934 |
(3, '(LDAP)Department Number', 'departmentnumber', 1),
|
935 |
(4, '(LDAP)Email', 'mail', 1),
|
936 |
(5, 'Object Class', 'objectclass', 1),
|
937 |
(6, '(LDAP)User ID', 'uid', 1),
|
938 |
(7, '(LDAP)Telephone Number', 'phone', 1),
|
939 |
(8, '(LDAP)Employee Number', 'employeenumber', 1),
|
940 |
(9, '(LDAP)Manager', 'manager', 1),
|
941 |
(10, '(LDAP)DistinguishedName', 'dn', 1),
|
942 |
(11, '(AD)DistinguishedName', 'distinguishedname', 1),
|
943 |
(12, '(AD)User ID', 'samaccountname', 1);";
|
944 |
|
945 |
$DB->query($query) or die("0.7 add standard values to glpi_rules_ldap_parameters " . $LANG["update"][90] . $DB->error()); |
946 |
|
947 |
} |
948 |
|
949 |
if (!FieldExists("glpi_config", "helpdeskhelp_url")) { |
950 |
$query = "ALTER TABLE `glpi_config` ADD `helpdeskhelp_url` VARCHAR( 255 ) NULL DEFAULT NULL "; |
951 |
$DB->query($query) or die("0.7 add helpdeskhelp_url in glpi_config" . $LANG["update"][90] . $DB->error()); |
952 |
} |
953 |
if (!FieldExists("glpi_config", "centralhelp_url")) { |
954 |
$query = "ALTER TABLE `glpi_config` ADD `centralhelp_url` VARCHAR( 255 ) NULL DEFAULT NULL "; |
955 |
$DB->query($query) or die("0.7 add centralhelp_url in glpi_config" . $LANG["update"][90] . $DB->error()); |
956 |
} |
957 |
|
958 |
if (!FieldExists("glpi_config", "default_rubdoc_tracking")) { |
959 |
$query = "ALTER TABLE `glpi_config` ADD `default_rubdoc_tracking` int(11) default '0' "; |
960 |
$DB->query($query) or die("0.7 add default_rubdoc_tracking in glpi_config" . $LANG["update"][90] . $DB->error()); |
961 |
} |
962 |
|
963 |
if (!FieldExists("glpi_users", "deleted")) { |
964 |
$query = "ALTER TABLE `glpi_users` ADD `deleted` SMALLINT NOT NULL DEFAULT 0 "; |
965 |
$DB->query($query) or die("0.7 add deleted in glpi_users" . $LANG["update"][90] . $DB->error()); |
966 |
$query = "ALTER TABLE `glpi_users` ADD KEY (`deleted`)"; |
967 |
$DB->query($query) or die("0.7 add key deleted in glpi_users" . $LANG["update"][90] . $DB->error()); |
968 |
} |
969 |
|
970 |
if (!FieldExists("glpi_reservation_item", "active")) { |
971 |
$query = "ALTER TABLE `glpi_reservation_item` ADD `active` smallint(6) NOT NULL default '1' "; |
972 |
$DB->query($query) or die("0.7 add active in glpi_reservation_item" . $LANG["update"][90] . $DB->error()); |
973 |
} |
974 |
|
975 |
if (!FieldExists("glpi_tracking_planning", "state")) { |
976 |
$query = "ALTER TABLE `glpi_tracking_planning` ADD `state` smallint(6) NOT NULL default '1' "; |
977 |
$DB->query($query) or die("0.7 add state in glpi_tracking_planning" . $LANG["update"][90] . $DB->error()); |
978 |
$query="UPDATE `glpi_tracking_planning` SET state='2' WHERE end < NOW()"; |
979 |
$DB->query($query) or die("0.7 update values of state in glpi_tracking_planning" . $LANG["update"][90] . $DB->error()); |
980 |
} |
981 |
|
982 |
if (!FieldExists("glpi_reminder", "state")) { |
983 |
$query = "ALTER TABLE `glpi_reminder` ADD `state` smallint(6) NOT NULL default '0' "; |
984 |
$DB->query($query) or die("0.7 add state in glpi_reminder" . $LANG["update"][90] . $DB->error()); |
985 |
} |
986 |
|
987 |
|
988 |
if (!FieldExists("glpi_tracking", "recipient")) { |
989 |
$query = "ALTER TABLE `glpi_tracking` ADD `recipient` INT NOT NULL DEFAULT '0' AFTER `author` "; |
990 |
$DB->query($query) or die("0.7 add recipient in glpi_tracking" . $LANG["update"][90] . $DB->error()); |
991 |
$query = "UPDATE `glpi_tracking` SET recipient = author"; |
992 |
$DB->query($query) or die("0.7 update recipient in glpi_tracking" . $LANG["update"][90] . $DB->error()); |
993 |
|
994 |
} |
995 |
if (!isIndex("glpi_tracking","recipient")){ |
996 |
$query="ALTER TABLE `glpi_tracking` ADD INDEX ( `recipient` ) "; |
997 |
$DB->query($query) or die("0.7 add recipient index in glpi_tracking" . $LANG["update"][90] . $DB->error()); |
998 |
} |
999 |
|
1000 |
if (!FieldExists("glpi_ocs_config", "deconnection_behavior")) { |
1001 |
$query = "ALTER TABLE `glpi_ocs_config` ADD COLUMN `deconnection_behavior` VARCHAR(45)"; |
1002 |
$DB->query($query) or die("0.7 add state in glpi_reminder" . $LANG["update"][90] . $DB->error()); |
1003 |
} |
1004 |
|
1005 |
// Rights
|
1006 |
if (!FieldExists("glpi_profiles", "search_config_global")) { |
1007 |
$query = "ALTER TABLE `glpi_profiles` ADD COLUMN `search_config_global` char(1) default NULL AFTER `search_config`"; |
1008 |
$DB->query($query) or die("0.7 add search_config_global in glpi_profiles" . $LANG["update"][90] . $DB->error()); |
1009 |
$query = "UPDATE `glpi_profiles` SET `search_config_global` = search_config"; |
1010 |
$DB->query($query) or die("0.7 update search_config_global values in glpi_profiles" . $LANG["update"][90] . $DB->error()); |
1011 |
$query = "UPDATE `glpi_profiles` SET `search_config` = 'w' WHERE interface='central'"; |
1012 |
$DB->query($query) or die("0.7 update search_confi values in glpi_profiles" . $LANG["update"][90] . $DB->error()); |
1013 |
} |
1014 |
if (!FieldExists("glpi_profiles", "entity")) { |
1015 |
$query = "ALTER TABLE `glpi_profiles` ADD COLUMN `entity` char(1) default NULL AFTER `group`"; |
1016 |
$DB->query($query) or die("0.7 add entity in glpi_profiles" . $LANG["update"][90] . $DB->error()); |
1017 |
$query = "UPDATE `glpi_profiles` SET `entity` = config"; |
1018 |
$DB->query($query) or die("0.7 update entity values in glpi_profiles" . $LANG["update"][90] . $DB->error()); |
1019 |
} |
1020 |
if (!FieldExists("glpi_profiles", "entity_dropdown")) { |
1021 |
$query = "ALTER TABLE `glpi_profiles` ADD COLUMN `entity_dropdown` char(1) default NULL AFTER `dropdown`"; |
1022 |
$DB->query($query) or die("0.7 add entity_dropdown in glpi_profiles" . $LANG["update"][90] . $DB->error()); |
1023 |
$query = "UPDATE `glpi_profiles` SET `entity_dropdown` = dropdown"; |
1024 |
$DB->query($query) or die("0.7 update entity_dropdown values in glpi_profiles" . $LANG["update"][90] . $DB->error()); |
1025 |
} |
1026 |
if (!FieldExists("glpi_profiles", "sync_ocsng")) { |
1027 |
$query = "ALTER TABLE `glpi_profiles` ADD COLUMN `sync_ocsng` char(1) default NULL AFTER `ocsng`"; |
1028 |
$DB->query($query) or die("0.7 add sync_ocsng in glpi_profiles" . $LANG["update"][90] . $DB->error()); |
1029 |
$query = "UPDATE `glpi_profiles` SET `sync_ocsng` = ocsng"; |
1030 |
$DB->query($query) or die("0.7 update sync_ocsng values in glpi_profiles" . $LANG["update"][90] . $DB->error()); |
1031 |
} |
1032 |
if (!FieldExists("glpi_profiles", "view_ocsng")) { |
1033 |
$query = "ALTER TABLE `glpi_profiles` ADD COLUMN `view_ocsng` char(1) default NULL AFTER `ocsng`"; |
1034 |
$DB->query($query) or die("0.7 add view_ocsng in glpi_profiles" . $LANG["update"][90] . $DB->error()); |
1035 |
$query = "UPDATE `glpi_profiles` SET `view_ocsng` = 'r' WHERE interface='central'"; |
1036 |
$DB->query($query) or die("0.7 update view_ocsng values in glpi_profiles" . $LANG["update"][90] . $DB->error()); |
1037 |
} |
1038 |
if (!FieldExists("glpi_profiles", "rule_ldap")) { |
1039 |
$query = "ALTER TABLE `glpi_profiles` ADD COLUMN `rule_ldap` char(1) default NULL AFTER `config`"; |
1040 |
$DB->query($query) or die("0.7 add rule_ldap in glpi_profiles" . $LANG["update"][90] . $DB->error()); |
1041 |
$query = "UPDATE `glpi_profiles` SET `rule_ldap` = config"; |
1042 |
$DB->query($query) or die("0.7 update rule_ldap values in glpi_profiles" . $LANG["update"][90] . $DB->error()); |
1043 |
} |
1044 |
if (!FieldExists("glpi_profiles", "rule_ocs")) { |
1045 |
$query = "ALTER TABLE `glpi_profiles` ADD COLUMN `rule_ocs` char(1) default NULL AFTER `config`"; |
1046 |
$DB->query($query) or die("0.7 add rule_ocs in glpi_profiles" . $LANG["update"][90] . $DB->error()); |
1047 |
$query = "UPDATE `glpi_profiles` SET `rule_ocs` = config"; |
1048 |
$DB->query($query) or die("0.7 update rule_ocs values in glpi_profiles" . $LANG["update"][90] . $DB->error()); |
1049 |
} |
1050 |
if (!FieldExists("glpi_profiles", "rule_tracking")) { |
1051 |
$query = "ALTER TABLE `glpi_profiles` ADD COLUMN `rule_tracking` char(1) default NULL AFTER `config`"; |
1052 |
$DB->query($query) or die("0.7 add rule_tracking in glpi_profiles" . $LANG["update"][90] . $DB->error()); |
1053 |
$query = "UPDATE `glpi_profiles` SET `rule_tracking` = config"; |
1054 |
$DB->query($query) or die("0.7 update rule_tracking values in glpi_profiles" . $LANG["update"][90] . $DB->error()); |
1055 |
} |
1056 |
if (!FieldExists("glpi_profiles", "update_followups")) { |
1057 |
$query = "ALTER TABLE `glpi_profiles` ADD COLUMN `update_followups` char(1) default NULL AFTER `observe_ticket`"; |
1058 |
$DB->query($query) or die("0.7 add update_followups in glpi_profiles" . $LANG["update"][90] . $DB->error()); |
1059 |
$query = "UPDATE `glpi_profiles` SET `update_followups` = show_full_ticket"; |
1060 |
$DB->query($query) or die("0.7 update update_followups values in glpi_profiles" . $LANG["update"][90] . $DB->error()); |
1061 |
} |
1062 |
|
1063 |
//Software version's modifications
|
1064 |
//First add the version field to the licenses table
|
1065 |
if (!FieldExists("glpi_licenses", "version")) { |
1066 |
$query = "ALTER TABLE `glpi_licenses` ADD COLUMN `version` varchar(255) default NULL AFTER `sID`"; |
1067 |
$DB->query($query) or die("0.7 add version in glpi_licenses" . $LANG["update"][90] . $DB->error()); |
1068 |
|
1069 |
$sql = "SELECT ID, version FROM glpi_software"; |
1070 |
$result = $DB->query($sql); |
1071 |
if ($DB->numrows($result)>0) |
1072 |
{ |
1073 |
while ($soft = $DB->fetch_array($result)) |
1074 |
{ |
1075 |
$sql = "UPDATE glpi_licenses SET version='".$soft["version"]."' WHERE sID=".$soft["ID"]; |
1076 |
$DB->query($sql); |
1077 |
} |
1078 |
} |
1079 |
|
1080 |
} |
1081 |
|
1082 |
|
1083 |
if (FieldExists("glpi_software", "version")) { |
1084 |
$query = "ALTER TABLE `glpi_software` DROP `version`"; |
1085 |
$DB->query($query) or die("0.7 delete version in glpi_software" . $LANG["update"][90] . $DB->error()); |
1086 |
} |
1087 |
|
1088 |
// CLean multiple free / global licenses
|
1089 |
|
1090 |
$query= "SELECT count(*) as CPT, glpi_licenses.* |
1091 |
FROM `glpi_licenses`
|
1092 |
WHERE `serial` = 'global' OR `serial` = 'free'
|
1093 |
GROUP BY sID, serial, expire, buy
|
1094 |
HAVING CPT > 1";
|
1095 |
$result=$DB->query($query) or die("0.7 check multiple free global licenses " . $LANG["update"][90] . $DB->error()); |
1096 |
if ($DB->numrows($result)){ |
1097 |
while ($data=$DB->fetch_array($result)){ |
1098 |
// Get licenses AND installations
|
1099 |
$expire_search=""; |
1100 |
if ($data['expire']=="") |
1101 |
$expire_search=" AND glpi_licenses.expire IS NULL"; |
1102 |
else $expire_search=" AND glpi_licenses.expire = '".$data['expire']."'"; |
1103 |
|
1104 |
$query="SELECT glpi_licenses.ID FROM glpi_licenses |
1105 |
WHERE serial ='".$data['serial']."' AND sID ='".$data['sID']."' $expire_search AND buy ='".$data['buy']."'"; |
1106 |
$result2=$DB->query($query); |
1107 |
if ($DB->numrows($result2)){ |
1108 |
$licIDs=array(); |
1109 |
while ($data2=$DB->fetch_array($result2)){ |
1110 |
$licIDs[]=$data2['ID']; |
1111 |
} |
1112 |
if (count($licIDs)>1){ |
1113 |
$refID=array_pop($licIDs); |
1114 |
$query="UPDATE glpi_inst_software SET license = '$refID' WHERE license IN ("; |
1115 |
$first=true; |
1116 |
foreach ($licIDs as $id){ |
1117 |
if ($first) $first=false; |
1118 |
else $query.=","; |
1119 |
$query.=$id; |
1120 |
$query_del="DELETE FROM glpi_licenses WHERE ID = $id"; |
1121 |
$DB->query($query_del); |
1122 |
} |
1123 |
$query.=")"; |
1124 |
$DB->query($query); |
1125 |
} |
1126 |
} |
1127 |
} |
1128 |
} |
1129 |
|
1130 |
// Clean multiple reservation item
|
1131 |
$query= "SELECT count(*) as CPT, glpi_reservation_item.* |
1132 |
FROM `glpi_reservation_item`
|
1133 |
GROUP BY device_type, id_device
|
1134 |
HAVING CPT > 1";
|
1135 |
$result=$DB->query($query) or die("0.7 check multiple free global licenses " . $LANG["update"][90] . $DB->error()); |
1136 |
if ($DB->numrows($result)){ |
1137 |
while ($data=$DB->fetch_array($result)){ |
1138 |
$refID=$data['ID']; |
1139 |
// Get duplicates
|
1140 |
$query2="SELECT * FROM `glpi_reservation_item` WHERE device_type='".$data['device_type']."' AND id_device='".$data['id_device']."' AND ID <> '$refID'"; |
1141 |
$result2=$DB->query($query2); |
1142 |
if ($DB->numrows($result2)){ |
1143 |
while ($data2=$DB->fetch_array($result2)){ |
1144 |
// Update réservations
|
1145 |
$query="UPDATE glpi_reservation_resa SET id_item='$refID' WHERE id_item='".$data2['ID']."'"; |
1146 |
$DB->query($query); |
1147 |
// Delete Reservation Item
|
1148 |
$query="DELETE FROM `glpi_reservation_item` WHERE ID = '".$data2['ID']."'"; |
1149 |
$DB->query($query); |
1150 |
} |
1151 |
} |
1152 |
|
1153 |
} |
1154 |
} |
1155 |
|
1156 |
if (!FieldExists("glpi_networking_ports", "netmask")) { |
1157 |
$query = "ALTER TABLE `glpi_networking_ports` ADD COLUMN `netmask` VARCHAR( 255 ) NULL DEFAULT NULL"; |
1158 |
$DB->query($query) or die("0.7 add netmask in glpi_networking_ports" . $LANG["update"][90] . $DB->error()); |
1159 |
} |
1160 |
|
1161 |
if (!FieldExists("glpi_networking_ports", "gateway")) { |
1162 |
$query = "ALTER TABLE `glpi_networking_ports` ADD COLUMN `gateway` VARCHAR( 255 ) NULL DEFAULT NULL"; |
1163 |
$DB->query($query) or die("0.7 add gateway in glpi_networking_ports" . $LANG["update"][90] . $DB->error()); |
1164 |
} |
1165 |
if (!FieldExists("glpi_networking_ports", "subnet")) { |
1166 |
$query = "ALTER TABLE `glpi_networking_ports` ADD COLUMN subnet VARCHAR( 255 ) NULL DEFAULT NULL"; |
1167 |
$DB->query($query) or die("0.7 add subnet in glpi_networking_ports" . $LANG["update"][90] . $DB->error()); |
1168 |
} |
1169 |
if (FieldExists("glpi_networking_ports", "name")) { |
1170 |
$query = "ALTER TABLE `glpi_networking_ports` CHANGE `name` `name` VARCHAR( 255 ) NULL DEFAULT NULL , |
1171 |
CHANGE `ifaddr` `ifaddr` VARCHAR( 255 ) NULL DEFAULT NULL ,
|
1172 |
CHANGE `ifmac` `ifmac` VARCHAR( 255 ) NULL DEFAULT NULL ";
|
1173 |
$DB->query($query) or die("0.7 alter networking_ports fields" . $LANG["update"][90] . $DB->error()); |
1174 |
} |
1175 |
// mailgate
|
1176 |
if (!TableExists("glpi_mailgate")) { |
1177 |
$query = "CREATE TABLE `glpi_mailgate` ( |
1178 |
`ID` int(11) NOT NULL auto_increment,
|
1179 |
`name` varchar(255) collate utf8_unicode_ci default NULL,
|
1180 |
`FK_entities` int(11) NOT NULL default '0',
|
1181 |
`host` varchar(255) collate utf8_unicode_ci NOT NULL,
|
1182 |
`login` varchar(255) collate utf8_unicode_ci NOT NULL,
|
1183 |
`password` varchar(255) collate utf8_unicode_ci NOT NULL,
|
1184 |
PRIMARY KEY (`ID`)
|
1185 |
) ENGINE=MyISAM ;";
|
1186 |
$DB->query($query) or die("0.7 add glpi_mailgate" . $LANG["update"][90] . $DB->error()); |
1187 |
$query = "INSERT INTO `glpi_display` ( `type`, `num`, `rank`, `FK_users`) VALUES (35, 80, 1, 0);"; |
1188 |
$DB->query($query) or die("0.7 add glpi_mailgate display values" . $LANG["update"][90] . $DB->error()); |
1189 |
} |
1190 |
|
1191 |
if (!FieldExists("glpi_computers", "os_license_number")) { |
1192 |
$query = "ALTER TABLE `glpi_computers` ADD COLUMN `os_license_number` VARCHAR( 255 ) NULL DEFAULT NULL AFTER os_sp;"; |
1193 |
$DB->query($query) or die("0.7 alter glpi_computers field" . $LANG["computers"][10] . $DB->error()); |
1194 |
} |
1195 |
|
1196 |
if (!FieldExists("glpi_computers", "os_license_id")) { |
1197 |
$query = "ALTER TABLE `glpi_computers` ADD COLUMN `os_license_id` VARCHAR( 255 ) NULL DEFAULT NULL AFTER os_license_number;"; |
1198 |
$DB->query($query) or die("0.7 alter glpi_computers field" . $LANG["computers"][10] . $DB->error()); |
1199 |
} |
1200 |
|
1201 |
if (!FieldExists("glpi_ocs_config", "import_os_serial")) { |
1202 |
$query = "ALTER TABLE `glpi_ocs_config` ADD `import_os_serial` INT( 2 ) NULL AFTER `import_registry` ;"; |
1203 |
$DB->query($query) or die("0.7 alter glpi_computers field import_ocs_serial " . $DB->error()); |
1204 |
} |
1205 |
|
1206 |
if (!FieldExists("glpi_auth_ldap", "use_dn")) { |
1207 |
$query = "ALTER TABLE `glpi_auth_ldap` ADD `use_dn` INT( 1 ) NOT NULL DEFAULT '1';"; |
1208 |
$DB->query($query) or die("0.7 alter glpi_computers field use_dn " . $DB->error()); |
1209 |
} |
1210 |
|
1211 |
if (!FieldExists("glpi_config", "monitors_management_restrict")) { |
1212 |
$query = "ALTER TABLE `glpi_config` ADD `monitors_management_restrict` INT( 1 ) NOT NULL DEFAULT '2';"; |
1213 |
$DB->query($query) or die("0.7 alter glpi_computers field monitors_management_restrict " . $DB->error()); |
1214 |
} |
1215 |
|
1216 |
if (!FieldExists("glpi_config", "phones_management_restrict")) { |
1217 |
$query = "ALTER TABLE `glpi_config` ADD `phones_management_restrict` INT( 1 ) NOT NULL DEFAULT '2';"; |
1218 |
$DB->query($query) or die("0.7 alter glpi_computers field phones_management_restrict " . $DB->error()); |
1219 |
} |
1220 |
|
1221 |
if (!FieldExists("glpi_config", "peripherals_management_restrict")) { |
1222 |
$query = "ALTER TABLE `glpi_config` ADD `peripherals_management_restrict` INT( 1 ) NOT NULL DEFAULT '2';"; |
1223 |
$DB->query($query) or die("0.7 alter glpi_computers field peripherals_management_restrict " . $DB->error()); |
1224 |
} |
1225 |
|
1226 |
if (!FieldExists("glpi_config", "printers_management_restrict")) { |
1227 |
$query = "ALTER TABLE `glpi_config` ADD `printers_management_restrict` INT( 1 ) NOT NULL DEFAULT '2';"; |
1228 |
$DB->query($query) or die("0.7 alter glpi_computers field printers_management_restrict " . $DB->error()); |
1229 |
} |
1230 |
|
1231 |
if (!FieldExists("glpi_config", "licenses_management_restrict")) { |
1232 |
$query = "ALTER TABLE `glpi_config` ADD `licenses_management_restrict` INT( 1 ) NOT NULL DEFAULT '2';"; |
1233 |
$DB->query($query) or die("0.7 alter glpi_computers field licenses_management_restrict " . $DB->error()); |
1234 |
} |
1235 |
|
1236 |
if (!FieldExists("glpi_config", "license_deglobalisation")) { |
1237 |
$query = "ALTER TABLE `glpi_config` ADD `license_deglobalisation` INT( 1 ) NOT NULL DEFAULT '1';"; |
1238 |
$DB->query($query) or die("0.7 alter glpi_computers field license_deglobalisation " . $DB->error()); |
1239 |
} |
1240 |
|
1241 |
if (!FieldExists("glpi_registry", "registry_ocs_name")) { |
1242 |
$query = "ALTER TABLE `glpi_registry` ADD COLUMN `registry_ocs_name` char(255) NOT NULL default ''"; |
1243 |
$DB->query($query) or die("0.7 add registry_ocs_name in glpi_registry" . $LANG["update"][90] . $DB->error()); |
1244 |
} |
1245 |
|
1246 |
if (!FieldExists("glpi_config", "use_errorlog")) { |
1247 |
$query = "ALTER TABLE `glpi_config` ADD COLUMN `use_errorlog` INT( 1 ) NOT NULL default 0"; |
1248 |
$DB->query($query) or die("0.7 add use_errorlog in glpi_config" . $LANG["update"][90] . $DB->error()); |
1249 |
} |
1250 |
|
1251 |
if (!FieldExists("glpi_config", "glpi_timezone")) { |
1252 |
$query = "ALTER TABLE `glpi_config` ADD COLUMN `glpi_timezone` VARCHAR( 4 ) NOT NULL default 0"; |
1253 |
$DB->query($query) or die("0.7 add glpi_timezone in glpi_config" . $LANG["update"][90] . $DB->error()); |
1254 |
} |
1255 |
|
1256 |
if (!FieldExists("glpi_auth_ldap", "timezone")) { |
1257 |
$query = "ALTER TABLE `glpi_auth_ldap` ADD COLUMN `timezone` VARCHAR( 4 ) NOT NULL default 0"; |
1258 |
$DB->query($query) or die("0.7 add timezone in glpi_auth_ldap" . $LANG["update"][90] . $DB->error()); |
1259 |
} |
1260 |
|
1261 |
if (!FieldExists("glpi_ocs_config","glpi_link_enabled")) |
1262 |
{ |
1263 |
$query="ALTER TABLE `glpi_ocs_config` ADD COLUMN `glpi_link_enabled` int(1) NOT NULL, |
1264 |
ADD COLUMN `link_ip` int(1) NOT NULL,
|
1265 |
ADD COLUMN `link_name` int(1) NOT NULL,
|
1266 |
ADD COLUMN `link_mac_address` int(1) NOT NULL,
|
1267 |
ADD COLUMN `link_serial` int(1) NOT NULL,
|
1268 |
ADD COLUMN `link_if_status` int(11) NOT NULL default '0'";
|
1269 |
$DB->query($query) or die("0.7 add glpi_link fields in glpi_ocs_config" . $LANG["update"][90] . $DB->error()); |
1270 |
} |
1271 |
$intnull=array("glpi_alerts" => array("device_type","FK_device","type"), |
1272 |
"glpi_cartridges_type"=>array("tech_num"), |
1273 |
"glpi_computers"=>array("FK_users","FK_groups"), |
1274 |
"glpi_consumables_type"=>array("tech_num"), |
1275 |
"glpi_contacts"=>array("type"), |
1276 |
"glpi_device_case"=>array("type"), |
1277 |
"glpi_device_control"=>array("interface"), |
1278 |
"glpi_device_drive"=>array("interface"), |
1279 |
"glpi_dropdown_kbcategories"=>array("level"), |
1280 |
"glpi_dropdown_locations"=>array("level"), |
1281 |
"glpi_dropdown_tracking_category"=>array("level"), |
1282 |
"glpi_entities"=>array("level"), |
1283 |
"glpi_infocoms"=>array("FK_enterprise","budget"), |
1284 |
"glpi_monitors"=>array("type","model","FK_users","FK_groups"), |
1285 |
"glpi_networking"=>array("type","model","firmware","FK_users","FK_groups"), |
1286 |
"glpi_networking_ports"=>array("iface","netpoint"), |
1287 |
"glpi_ocs_link"=>array("ocs_server_id"), |
1288 |
"glpi_peripherals"=>array("model","FK_users","FK_groups"), |
1289 |
"glpi_phones"=>array("model","FK_users","FK_groups"), |
1290 |
"glpi_printers"=>array("type","model","FK_users","FK_groups"), |
1291 |
"glpi_software"=>array("location","platform","FK_users","FK_groups"), |
1292 |
"glpi_tracking"=>array("computer"), |
1293 |
"glpi_users_groups"=>array("FK_users","FK_groups"), |
1294 |
); |
1295 |
|
1296 |
foreach ($intnull as $table => $fields){ |
1297 |
foreach ($fields as $field){ |
1298 |
if (FieldExists($table, $field)) { |
1299 |
$query = "UPDATE `$table` SET `$field`=0 WHERE $field IS NULL;"; |
1300 |
$DB->query($query) or die("0.7 update datas in $table for NULL values " . $DB->error()); |
1301 |
$query = "ALTER TABLE `$table` CHANGE `$field` `$field` INT NOT NULL DEFAULT '0'"; |
1302 |
$DB->query($query) or die("0.7 alter $field in $table" . $DB->error()); |
1303 |
} else {
|
1304 |
// Error field does not exists : correct it
|
1305 |
$query = "ALTER TABLE `$table` ADD COLUMN `$field` INT NOT NULL DEFAULT '0'"; |
1306 |
$DB->query($query) or die("0.7 add $field in $table" . $DB->error()); |
1307 |
} |
1308 |
} |
1309 |
} |
1310 |
// Clean history
|
1311 |
$query = "DELETE FROM `glpi_history` WHERE `linked_action`=0 AND `device_internal_type`=0 AND `old_value`=`new_value` AND `old_value` IS NOT NULL AND `old_value`!='';"; |
1312 |
$DB->query($query) or die("0.7 clean glpi_history " . $DB->error()); |
1313 |
|
1314 |
$query = "DELETE FROM `glpi_display` WHERE `type`=".USER_TYPE." AND (`num`=4 );"; |
1315 |
$DB->query($query) or die("0.7 clean glpi_display for glpi_users " . $DB->error()); |
1316 |
|
1317 |
// Add fields to block auto updates on linked items
|
1318 |
if (!FieldExists("glpi_config", "autoupdate_link_contact")) { |
1319 |
$query = "ALTER TABLE `glpi_config` ADD COLUMN `autoupdate_link_contact` smallint(6) NOT NULL default '1'"; |
1320 |
$DB->query($query) or die("0.7 add autoupdate_link_contact in glpi_config" . $LANG["update"][90] . $DB->error()); |
1321 |
} |
1322 |
if (!FieldExists("glpi_config", "autoupdate_link_user")) { |
1323 |
$query = "ALTER TABLE `glpi_config` ADD COLUMN `autoupdate_link_user` smallint(6) NOT NULL default '1'"; |
1324 |
$DB->query($query) or die("0.7 add autoupdate_link_user in glpi_config" . $LANG["update"][90] . $DB->error()); |
1325 |
} |
1326 |
if (!FieldExists("glpi_config", "autoupdate_link_group")) { |
1327 |
$query = "ALTER TABLE `glpi_config` ADD COLUMN `autoupdate_link_group` smallint(6) NOT NULL default '1'"; |
1328 |
$DB->query($query) or die("0.7 add autoupdate_link_group in glpi_config" . $LANG["update"][90] . $DB->error()); |
1329 |
} |
1330 |
if (!FieldExists("glpi_config", "autoupdate_link_location")) { |
1331 |
$query = "ALTER TABLE `glpi_config` ADD COLUMN `autoupdate_link_location` smallint(6) NOT NULL default '1'"; |
1332 |
$DB->query($query) or die("0.7 add autoupdate_link_location in glpi_config" . $LANG["update"][90] . $DB->error()); |
1333 |
} |
1334 |
|
1335 |
// Flat dropdowntree
|
1336 |
if (!FieldExists("glpi_config", "flat_dropdowntree")) { |
1337 |
$query = "ALTER TABLE `glpi_config` ADD COLUMN `flat_dropdowntree` smallint(6) NOT NULL default '0'"; |
1338 |
$DB->query($query) or die("0.7 add flat_dropdowntree in glpi_config" . $LANG["update"][90] . $DB->error()); |
1339 |
} |
1340 |
if (FieldExists("glpi_config", "mailing_signature")) { |
1341 |
$query = "ALTER TABLE `glpi_config` CHANGE `mailing_signature` `mailing_signature` TEXT NULL "; |
1342 |
$DB->query($query) or die("0.7 alter mailing signature in glpi_config" . $LANG["update"][90] . $DB->error()); |
1343 |
} |
1344 |
|
1345 |
//Software categories
|
1346 |
if (!TableExists("glpi_dropdown_software_category")) |
1347 |
{ |
1348 |
$query="CREATE TABLE `glpi_dropdown_software_category` ( |
1349 |
`ID` int(11) NOT NULL auto_increment,
|
1350 |
`name` varchar(255) default NULL,
|
1351 |
`comments` text,
|
1352 |
PRIMARY KEY (`ID`)
|
1353 |
) ENGINE=MyISAM ";
|
1354 |
$DB->query($query) or die("0.7 add table glpi_dropdown_software_category" . $LANG["update"][90] . $DB->error()); |
1355 |
} |
1356 |
if (!FieldExists("glpi_profiles", "rule_softwarecategories")) { |
1357 |
$query = "ALTER TABLE `glpi_profiles` ADD COLUMN `rule_softwarecategories` char(1) default NULL AFTER `rule_ldap`"; |
1358 |
$DB->query($query) or die("0.7 add rule_softwarecategories in glpi_profiles" . $LANG["update"][90] . $DB->error()); |
1359 |
$query = "UPDATE `glpi_profiles` SET `rule_softwarecategories` = config"; |
1360 |
$DB->query($query) or die("0.7 update rule_softwarecategories values in glpi_profiles" . $LANG["update"][90] . $DB->error()); |
1361 |
} |
1362 |
if (!FieldExists("glpi_software", "category")) { |
1363 |
$query = "ALTER TABLE `glpi_software` ADD `category` INT( 11 ) NOT NULL DEFAULT '0';"; |
1364 |
$DB->query($query) or die("0.7 alter category in glpi_software" . $LANG["update"][90] . $DB->error()); |
1365 |
} |
1366 |
|
1367 |
if (!FieldExists("glpi_ocs_config", "import_monitor_comments")) { |
1368 |
$query = "ALTER TABLE `glpi_ocs_config` ADD `import_monitor_comments` INT( 2 ) NOT NULL DEFAULT '0' AFTER `import_ip`"; |
1369 |
$DB->query($query) or die("0.7 alter import_monitor_comments in glpi_ocs_config" . $LANG["update"][90] . $DB->error()); |
1370 |
} |
1371 |
|
1372 |
if (!FieldExists("glpi_ocs_config", "import_software_comments")) { |
1373 |
$query = "ALTER TABLE `glpi_ocs_config` ADD `import_software_comments` INT NOT NULL DEFAULT '0' AFTER `import_monitor_comments`"; |
1374 |
$DB->query($query) or die("0.7 alter import_software_comments in glpi_ocs_config" . $LANG["update"][90] . $DB->error()); |
1375 |
} |
1376 |
|
1377 |
if (FieldExists("glpi_device_gfxcard", "ram")) { |
1378 |
//Update gfxcard memory management
|
1379 |
$query = "UPDATE glpi_device_gfxcard SET specif_default=ram"; |
1380 |
$DB->query($query) or die("0.7 glpi_device_gfxcard" . $LANG["update"][90] . $DB->error()); |
1381 |
|
1382 |
$query="ALTER TABLE `glpi_device_gfxcard` DROP `ram`"; |
1383 |
$DB->query($query) or die("0.7 delete 'ram' field from glpi_device_gfxcard" . $LANG["update"][90] . $DB->error()); |
1384 |
} |
1385 |
|
1386 |
if (FieldExists("glpi_config", "list_limit")) { |
1387 |
//Update gfxcard memory management
|
1388 |
$query = "ALTER TABLE `glpi_config` CHANGE `list_limit` `list_limit` INT NULL DEFAULT '20'"; |
1389 |
$DB->query($query) or die("0.7 alter list_limit in config" . $LANG["update"][90] . $DB->error()); |
1390 |
} |
1391 |
if (!FieldExists("glpi_config", "list_limit_max")) { |
1392 |
//Update gfxcard memory management
|
1393 |
$query = "ALTER TABLE `glpi_config` ADD `list_limit_max` INT NOT NULL DEFAULT '50' AFTER `list_limit` ;"; |
1394 |
$DB->query($query) or die("0.7 add list_limit_max in config" . $LANG["update"][90] . $DB->error()); |
1395 |
} |
1396 |
|
1397 |
if (!FieldExists("glpi_users", "list_limit")) { |
1398 |
//Update gfxcard memory management
|
1399 |
$query = "ALTER TABLE `glpi_users` ADD `list_limit` INT NOT NULL DEFAULT '20' AFTER `language` ;"; |
1400 |
$DB->query($query) or die("0.7 add list_limit_max in users" . $LANG["update"][90] . $DB->error()); |
1401 |
} |
1402 |
|
1403 |
if (!FieldExists("glpi_config", "autoname_entity")) { |
1404 |
$query = "ALTER TABLE `glpi_config` ADD `autoname_entity` smallint(6) NOT NULL default '1' "; |
1405 |
$DB->query($query) or die("0.7 add autoname_entity in glpi_config" . $LANG["update"][90] . $DB->error()); |
1406 |
} |
1407 |
|
1408 |
if (!FieldExists("glpi_profiles", "rule_tracking")) { |
1409 |
$query = "ALTER TABLE `glpi_profiles` ADD COLUMN `rule_tracking` char(1) default NULL AFTER `config`"; |
1410 |
$DB->query($query) or die("0.7 add rule_tracking in glpi_profiles" . $LANG["update"][90] . $DB->error()); |
1411 |
$query = "UPDATE `glpi_profiles` SET `rule_tracking` = config"; |
1412 |
$DB->query($query) or die("0.7 update rule_tracking values in glpi_profiles" . $LANG["update"][90] . $DB->error()); |
1413 |
} |
1414 |
|
1415 |
if (FieldExists("glpi_profiles", "show_ticket")) { |
1416 |
$query = "ALTER TABLE `glpi_profiles` CHANGE `show_ticket` `show_all_ticket` CHAR( 1 ) DEFAULT NULL "; |
1417 |
$DB->query($query) or die("0.7 rename show_ticket to show_all_ticket in glpi_profiles" . $LANG["update"][90] . $DB->error()); |
1418 |
} |
1419 |
|
1420 |
if (!FieldExists("glpi_profiles", "show_assign_ticket")) { |
1421 |
$query = "ALTER TABLE `glpi_profiles` ADD COLUMN `show_assign_ticket` char(1) default NULL AFTER `show_all_ticket`"; |
1422 |
$DB->query($query) or die("0.7 add show_assign_ticket in glpi_profiles" . $LANG["update"][90] . $DB->error()); |
1423 |
$query = "UPDATE `glpi_profiles` SET `show_assign_ticket` = show_all_ticket"; |
1424 |
$DB->query($query) or die("0.7 update show_assign_ticket values in glpi_profiles" . $LANG["update"][90] . $DB->error()); |
1425 |
} |
1426 |
|
1427 |
|
1428 |
if (!FieldExists("glpi_tracking", "assign_group")) { |
1429 |
$query = "ALTER TABLE `glpi_tracking` ADD `assign_group` INT NOT NULL DEFAULT '0' AFTER `assign_ent` ;"; |
1430 |
$DB->query($query) or die("0.7 add assign_group in tracking" . $LANG["update"][90] . $DB->error()); |
1431 |
$query = "ALTER TABLE `glpi_tracking` ADD INDEX ( `assign_group` ) ;"; |
1432 |
$DB->query($query) or die("0.7 add index on assign_group in tracking" . $LANG["update"][90] . $DB->error()); |
1433 |
} |
1434 |
|
1435 |
if (!FieldExists("glpi_config", "expand_soft_categorized")) { |
1436 |
$query = "ALTER TABLE `glpi_config` ADD `expand_soft_categorized` int(1) NOT NULL DEFAULT '1';"; |
1437 |
$DB->query($query) or die("0.7 add expand_soft_categorized in glpi_config" . $LANG["update"][90] . $DB->error()); |
1438 |
} |
1439 |
if (!FieldExists("glpi_config", "expand_soft_not_categorized")) { |
1440 |
$query = "ALTER TABLE `glpi_config` ADD `expand_soft_not_categorized` int(1) NOT NULL DEFAULT '1';"; |
1441 |
$DB->query($query) or die("0.7 add expand_soft_not_categorized in glpi_config" . $LANG["update"][90] . $DB->error()); |
1442 |
} |
1443 |
|
1444 |
// Clean history
|
1445 |
$query = "SELECT DISTINCT device_type FROM glpi_history"; |
1446 |
if ($result = $DB->query($query)){ |
1447 |
if ($DB->numrows($result)>0){ |
1448 |
while ($data = $DB->fetch_array($result)){ |
1449 |
$query2=" DELETE FROM glpi_history WHERE glpi_history.device_type='".$data['device_type']."' AND |
1450 |
glpi_history.FK_glpi_device NOT IN (SELECT ID FROM ".$LINK_ID_TABLE[$data['device_type']].")"; |
1451 |
$DB->query($query2); |
1452 |
} |
1453 |
} |
1454 |
} |
1455 |
|
1456 |
if (!TableExists("glpi_transfers")) { |
1457 |
$query="CREATE TABLE `glpi_transfers` ( |
1458 |
`ID` int(11) NOT NULL auto_increment,
|
1459 |
`name` varchar(255) NOT NULL,
|
1460 |
`keep_tickets` tinyint(4) NOT NULL default '0',
|
1461 |
`keep_networklinks` tinyint(4) NOT NULL default '0',
|
1462 |
`keep_reservations` tinyint(4) NOT NULL default '0',
|
1463 |
`keep_history` tinyint(4) NOT NULL default '0',
|
1464 |
`keep_devices` tinyint(4) NOT NULL default '0',
|
1465 |
`keep_infocoms` tinyint(4) NOT NULL default '0',
|
1466 |
`keep_dc_monitor` tinyint(4) NOT NULL default '0',
|
1467 |
`clean_dc_monitor` tinyint(4) NOT NULL default '0',
|
1468 |
`keep_dc_phone` tinyint(4) NOT NULL default '0',
|
1469 |
`clean_dc_phone` tinyint(4) NOT NULL default '0',
|
1470 |
`keep_dc_peripheral` tinyint(4) NOT NULL default '0',
|
1471 |
`clean_dc_peripheral` tinyint(4) NOT NULL default '0',
|
1472 |
`keep_dc_printer` tinyint(4) NOT NULL default '0',
|
1473 |
`clean_dc_printer` tinyint(4) NOT NULL default '0',
|
1474 |
`keep_enterprises` tinyint(4) NOT NULL default '0',
|
1475 |
`clean_enterprises` tinyint(4) NOT NULL default '0',
|
1476 |
`keep_contacts` tinyint(4) NOT NULL default '0',
|
1477 |
`clean_contacts` tinyint(4) NOT NULL default '0',
|
1478 |
`keep_contracts` tinyint(4) NOT NULL default '0',
|
1479 |
`clean_contracts` tinyint(4) NOT NULL default '0',
|
1480 |
`keep_softwares` tinyint(4) NOT NULL default '0',
|
1481 |
`clean_softwares` tinyint(4) NOT NULL default '0',
|
1482 |
`keep_documents` tinyint(4) NOT NULL default '0',
|
1483 |
`clean_documents` tinyint(4) NOT NULL default '0',
|
1484 |
`keep_cartridges_type` tinyint(4) NOT NULL default '0',
|
1485 |
`clean_cartridges_type` tinyint(4) NOT NULL default '0',
|
1486 |
`keep_cartridges` tinyint(4) NOT NULL default '0',
|
1487 |
`keep_consumables` tinyint(4) NOT NULL default '0',
|
1488 |
PRIMARY KEY (`ID`)
|
1489 |
) ENGINE=MyISAM ;";
|
1490 |
$DB->query($query) or die("0.7 add glpi_transfers " . $LANG["update"][90] . $DB->error()); |
1491 |
$query="INSERT INTO glpi_transfers VALUES ('1','complete','2','2','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1'); |
1492 |
";
|
1493 |
$DB->query($query) or die("0.7 insert transfer default values" . $LANG["update"][90] . $DB->error()); |
1494 |
} |
1495 |
|
1496 |
if (!FieldExists("glpi_profiles", "transfer")) { |
1497 |
$query = "ALTER TABLE `glpi_profiles` ADD COLUMN `transfer` char(1) default NULL AFTER `entity`"; |
1498 |
$DB->query($query) or die("0.7 add transfer in glpi_profiles" . $LANG["update"][90] . $DB->error()); |
1499 |
$query = "UPDATE `glpi_profiles` SET `transfer` = entity"; |
1500 |
$DB->query($query) or die("0.7 update transfer values in glpi_profiles" . $LANG["update"][90] . $DB->error()); |
1501 |
} |
1502 |
|
1503 |
// Need for update from SVN version
|
1504 |
if (!FieldExists("glpi_users", "location")) { |
1505 |
$query = "ALTER TABLE `glpi_users` ADD `location` int(11) NOT NULL DEFAULT 0;"; |
1506 |
$DB->query($query) or die("0.7 add location in users if not present for compatibility " . $LANG["update"][90] . $DB->error()); |
1507 |
} |
1508 |
|
1509 |
if (!FieldExists("glpi_ocs_config", "ocs_url")) { |
1510 |
$query = "ALTER TABLE `glpi_ocs_config` ADD `ocs_url` VARCHAR( 255 ) NOT NULL ;"; |
1511 |
$DB->query($query) or die("0.7 add ocs_url in glpi_ocs_config if not present for compatibility " . $LANG["update"][90] . $DB->error()); |
1512 |
} |
1513 |
|
1514 |
if (!FieldExists("glpi_ocs_link", "ocs_agent_version")) { |
1515 |
$query = "ALTER TABLE `glpi_ocs_link` ADD `ocs_agent_version` VARCHAR( 255 ) default NULL ;"; |
1516 |
$DB->query($query) or die("0.7 add ocs_agent_version in glpi_ocs_link if not present for compatibility " . $LANG["update"][90] . $DB->error()); |
1517 |
} |
1518 |
if (!isIndex("glpi_history", "date_mod")) { |
1519 |
$query = "ALTER TABLE `glpi_history` ADD INDEX ( `date_mod` )"; |
1520 |
$DB->query($query) or die("0.7 alter history add index on date_mod " . $LANG["update"][90] . $DB->error()); |
1521 |
} |
1522 |
|
1523 |
} // fin 0.7 #####################################################################################
|
1524 |
?>
|