| [ PHPXref.com ] | [ Generated: Sun Jul 20 17:59:13 2008 ] | [ GLPI 0.65 ] |
| [ Index ] [ Variables ] [ Functions ] [ Classes ] [ Constants ] [ Statistics ] | ||
[Summary view] [Print] [Text view]
1 <?php 2 /* 3 * @version $Id: update.php,v 1.296 2006/03/15 13:47:36 moyo Exp $ 4 ---------------------------------------------------------------------- 5 GLPI - Gestionnaire Libre de Parc Informatique 6 Copyright (C) 2003-2006 by the INDEPNET Development Team. 7 8 http://indepnet.net/ http://glpi.indepnet.org 9 ---------------------------------------------------------------------- 10 11 LICENSE 12 13 This file is part of GLPI. 14 15 GLPI is free software; you can redistribute it and/or modify 16 it under the terms of the GNU General Public License as published by 17 the Free Software Foundation; either version 2 of the License, or 18 (at your option) any later version. 19 20 GLPI is distributed in the hope that it will be useful, 21 but WITHOUT ANY WARRANTY; without even the implied warranty of 22 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 GNU General Public License for more details. 24 25 You should have received a copy of the GNU General Public License 26 along with GLPI; if not, write to the Free Software 27 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 28 ------------------------------------------------------------------------ 29 */ 30 31 // ---------------------------------------------------------------------- 32 // Original Author of file: 33 // Purpose of file: 34 // ---------------------------------------------------------------------- 35 36 37 include ("_relpos.php"); 38 include ($phproot . "/glpi/common/classes.php"); 39 include ($phproot . "/glpi/common/functions.php"); 40 include ($phproot . "/glpi/common/functions_db.php"); 41 include ($phproot . "/glpi/config/based_config.php"); 42 include ($cfg_glpi["config_dir"] . "/config_db.php"); 43 44 // Init debug variable 45 $cfg_glpi["debug"]=0; 46 47 $db=new DB(); 48 49 // ITEMS TYPE 50 define("GENERAL_TYPE","0"); 51 define("COMPUTER_TYPE","1"); 52 define("NETWORKING_TYPE","2"); 53 define("PRINTER_TYPE","3"); 54 define("MONITOR_TYPE","4"); 55 define("PERIPHERAL_TYPE","5"); 56 define("SOFTWARE_TYPE","6"); 57 define("CONTACT_TYPE","7"); 58 define("ENTERPRISE_TYPE","8"); 59 define("INFOCOM_TYPE","9"); 60 define("CONTRACT_TYPE","10"); 61 define("CARTRIDGE_TYPE","11"); 62 define("TYPEDOC_TYPE","12"); 63 define("DOCUMENT_TYPE","13"); 64 define("KNOWBASE_TYPE","14"); 65 define("USER_TYPE","15"); 66 define("TRACKING_TYPE","16"); 67 define("CONSUMABLE_TYPE","17"); 68 define("CONSUMABLE_ITEM_TYPE","18"); 69 define("CARTRIDGE_ITEM_TYPE","19"); 70 define("LICENSE_TYPE","20"); 71 define("LINK_TYPE","21"); 72 define("STATE_TYPE","22"); 73 74 // DEVICE TYPE 75 define("MOBOARD_DEVICE","1"); 76 define("PROCESSOR_DEVICE","2"); 77 define("RAM_DEVICE","3"); 78 define("HDD_DEVICE","4"); 79 define("NETWORK_DEVICE","5"); 80 define("DRIVE_DEVICE","6"); 81 define("CONTROL_DEVICE","7"); 82 define("GFX_DEVICE","8"); 83 define("SND_DEVICE","9"); 84 define("PCI_DEVICE","10"); 85 define("CASE_DEVICE","11"); 86 define("POWER_DEVICE","12"); 87 88 //Load language 89 if(!function_exists('loadLang')) { 90 function loadLang($language) { 91 92 unset($lang); 93 global $lang; 94 include ("_relpos.php"); 95 $file = $phproot ."/glpi/dicts/".$language.".php"; 96 include($file); 97 } 98 } 99 100 /* ----------------------------------------------------------------- */ 101 /** 102 * Get data from old dropdowns to new devices 103 * 104 * This function assure to keep clean data and integrity, during the change from 105 * computers-dropdown to computers devices. Then delete the unused old elements. 106 * 107 * @param $devtype integer the devtype number 108 * @param $devname string the device table name (end of the name (glpi_device_thisparam)) 109 * @param $dpdname string the dropdown table name (end of the name (glpi_dropdown_thisparam)) 110 * @param $compDpdName string the name of the dropdown foreign key on glpi_computers (eg : hdtype, processor) 111 * @param $specif string the name of the dropdown value entry on glpi_computer (eg : hdspace, processor_speed) optionnal argument. 112 * @returns nothing if everything is good, else display mysql query and error. 113 */ 114 function compDpd2Device($devtype,$devname,$dpdname,$compDpdName,$specif='') { 115 global $db,$lang; 116 $query = "select * from glpi_dropdown_".$dpdname.""; 117 118 $result = $db->query($query); 119 while($lndropd = $db->fetch_array($result)) { 120 $query2 = "insert into glpi_device_".$devname." (designation) values ('".addslashes($lndropd["name"])."')"; 121 $db->query($query2) or die("unable to transfer ".$dpdname." to ".$devname." ".$lang["update"][90].$db->error()); 122 $devid = $db->insert_id(); 123 $query3 = "select * from glpi_computers where ".$compDpdName." = '".$lndropd["ID"]."'"; 124 $result3 = $db->query($query3); 125 while($lncomp = $db->fetch_array($result3)) { 126 $query4 = "insert into glpi_computer_device (device_type, FK_device, FK_computers) values ('$devtype','".$devid."','".$lncomp["ID"]."')"; 127 if(!empty($specif)) { 128 $queryspecif = "SELECT ".$specif." FROM glpi_computers WHERE ID = '".$lncomp["ID"]."'"; 129 if($resultspecif = $db->query($queryspecif)) { 130 $query4 = "insert into glpi_computer_device (specificity, device_type, FK_device, FK_computers) values ('".$db->result($resultspecif,0,$specif)."','$devtype','".$devid."','".$lncomp["ID"]."')"; 131 } 132 133 } 134 $db->query($query4) or die("unable to migrate from ".$dpdname." to ".$devname." for item computer:".$lncomp["ID"]." ".$lang["update"][90].$db->error()); 135 } 136 } 137 mysql_free_result($result); 138 //Delete unused elements (dropdown on the computer table, dropdown table and specif) 139 $query = "ALTER TABLE glpi_computers drop `".$compDpdName."`"; 140 $db->query($query) or die("Error : ".$query." ".$db->error()); 141 $query = "DROP TABLE `glpi_dropdown_".$dpdname."`"; 142 $db->query($query) or die("Error : ".$query." ".$db->error()); 143 if(!empty($specif)) { 144 $query = "ALTER TABLE glpi_computers drop `".$specif."`"; 145 $db->query($query) or die("Error : ".$query." ".$db->error()); 146 } 147 } 148 149 /*---------------------------------------------------------------------*/ 150 /** 151 * Test if there is an user with superadmin rights 152 * 153 * 154 * @returns boolean true if its ok, elsewhere false. 155 */ 156 function superAdminExists() { 157 global $db; 158 $query = "select type, password from glpi_users"; 159 $result = $db->query($query); 160 $var1 = false; 161 while($line = $db->fetch_array($result)) { 162 if($line["type"] == "super-admin" && !empty($line["password"])) $var1 = true; 163 } 164 mysql_free_result($result); 165 return $var1; 166 } 167 168 /*---------------------------------------------------------------------*/ 169 /** 170 * Put the correct root_doc value on glpi_config table. 171 * 172 * 173 * @returns nothing if everything is right, display query and mysql error if bad. 174 */ 175 function updaterootdoc() { 176 global $db; 177 // hack pour IIS qui ne connait pas $_SERVER['REQUEST_URI'] grrrr 178 if ( !isset($_SERVER['REQUEST_URI']) ) { 179 $_SERVER['REQUEST_URI'] = $_SERVER['PHP_SELF']; 180 } 181 182 $root_doc = ereg_replace("/update.php","",$_SERVER['REQUEST_URI']); 183 $query = "update glpi_config set root_doc = '".$root_doc."' where ID = '1'"; 184 $db->query($query) or die(" root_doc ".$lang["update"][90].$db->error()); 185 } 186 187 /*---------------------------------------------------------------------*/ 188 /** 189 * Display the form of content update (addslashes compatibility (V0.4)) 190 * 191 * 192 * @returns nothing (displays) 193 */ 194 function showContentUpdateForm() { 195 196 global $lang; 197 echo "<div align='center'>"; 198 echo "<h3>".$lang["update"][94]."</h3>"; 199 echo "<p>".$lang["install"][63]."</p>"; 200 echo "<p>".$lang["update"][107]."</p></div>"; 201 echo "<p class='submit'> <a href=\"update_content.php\"><span class='button'>".$lang["install"][25]."</span></a>"; 202 } 203 204 205 ///// FONCTION POUR UPDATE LOCATION 206 207 function validate_new_location(){ 208 global $db; 209 $query=" DROP TABLE `glpi_dropdown_locations`"; 210 $db->query($query); 211 $query=" ALTER TABLE `glpi_dropdown_locations_new` RENAME `glpi_dropdown_locations`"; 212 $db->query($query); 213 } 214 215 function display_new_locations(){ 216 global $db; 217 218 $MAX_LEVEL=10; 219 220 $SELECT_ALL=""; 221 $FROM_ALL=""; 222 $ORDER_ALL=""; 223 $WHERE_ALL=""; 224 for ($i=1;$i<=$MAX_LEVEL;$i++){ 225 $SELECT_ALL.=" , location$i.name AS NAME$i , location$i.parentID AS PARENT$i "; 226 $FROM_ALL.=" LEFT JOIN glpi_dropdown_locations_new AS location$i ON location".($i-1).".ID = location$i.parentID "; 227 //$WHERE_ALL.=" AND location$i.level='$i' "; 228 $ORDER_ALL.=" , NAME$i"; 229 230 } 231 232 $query="select location0.name AS NAME0, location0.parentID AS PARENT0 $SELECT_ALL FROM glpi_dropdown_locations_new AS location0 $FROM_ALL WHERE location0.parentID='0' $WHERE_ALL ORDER BY NAME0 $ORDER_ALL"; 233 //echo $query; 234 //echo "<hr>"; 235 $result=$db->query($query); 236 $data_old=array(); 237 echo "<table><tr>"; 238 for ($i=0;$i<=$MAX_LEVEL;$i++){ 239 echo "<th>$i</th><th> </th>"; 240 } 241 echo "</tr>"; 242 243 while ($data = $db->fetch_array($result)){ 244 245 echo "<tr class=tab_bg_1>"; 246 for ($i=0;$i<=$MAX_LEVEL;$i++){ 247 if (!isset($data_old["NAME$i"])||($data_old["PARENT$i"]!=$data["PARENT$i"])||($data_old["NAME$i"]!=$data["NAME$i"])){ 248 $name=$data["NAME$i"]; 249 if (isset($data["NAME".($i+1)])&&!empty($data["NAME".($i+1)])) 250 $arrow="--->"; 251 else $arrow=""; 252 } else { 253 $name=""; 254 $arrow=""; 255 } 256 257 echo "<td>".$name."</td>"; 258 echo "<td>$arrow</td>"; 259 } 260 261 echo "</tr>"; 262 $data_old=$data; 263 } 264 mysql_free_result($result); 265 echo "</table>"; 266 } 267 268 function display_old_locations(){ 269 global $db; 270 $query="SELECT * from glpi_dropdown_locations order by name;"; 271 $result=$db->query($query); 272 273 while ($data = $db->fetch_array($result)) 274 echo "<b>".$data['name']."</b> - "; 275 276 mysql_free_result($result); 277 } 278 279 function location_create_new($split_char,$add_first){ 280 281 global $db; 282 283 $query_auto_inc= "ALTER TABLE `glpi_dropdown_locations_new` CHANGE `ID` `ID` INT(11) NOT NULL"; 284 $result_auto_inc=$db->query($query_auto_inc); 285 286 $query="SELECT MAX(ID) AS MAX from glpi_dropdown_locations;"; 287 //echo $query."<br>"; 288 $result=$db->query($query); 289 $new_ID=$db->result($result,0,"MAX"); 290 $new_ID++; 291 292 293 294 $query="SELECT * from glpi_dropdown_locations;"; 295 $result=$db->query($query); 296 297 $query_clear_new="TRUNCATE TABLE `glpi_dropdown_locations_new`"; 298 //echo $query_clear_new."<br>"; 299 300 $result_clear_new=$db->query($query_clear_new); 301 302 if (!empty($add_first)){ 303 $root_ID=$new_ID; 304 $new_ID++; 305 $query_insert="INSERT INTO glpi_dropdown_locations_new VALUES ('$root_ID','".addslashes($add_first)."',0,'')"; 306 307 $result_insert=$db->query($query_insert); 308 309 } else { 310 $root_ID=0; 311 } 312 313 while ($data = $db->fetch_array($result)){ 314 315 if (!empty($split_char)) 316 $splitter=split($split_char,$data['name']); 317 else $splitter=array($data['name']); 318 319 $up_ID=$root_ID; 320 321 for ($i=0;$i<count($splitter)-1;$i++){ 322 // Entr� existe deja ?? 323 $query_search="select ID from glpi_dropdown_locations_new WHERE name='".addslashes($splitter[$i])."' AND parentID='".$up_ID."'"; 324 // echo $query_search."<br>"; 325 $result_search=$db->query($query_search); 326 if ($db->numrows($result_search)==1){ // Found 327 $up_ID=$db->result($result_search,0,"ID"); 328 } else { // Not FOUND -> INSERT 329 $query_insert="INSERT INTO glpi_dropdown_locations_new VALUES ('$new_ID','".addslashes($splitter[$i])."','$up_ID','')"; 330 // echo $query_insert."<br>"; 331 $result_insert=$db->query($query_insert); 332 $up_ID=$new_ID++; 333 334 } 335 } 336 337 // Ajout du dernier 338 $query_insert="INSERT INTO glpi_dropdown_locations_new VALUES ('".$data["ID"]."','".addslashes($splitter[count($splitter)-1])."','$up_ID','')"; 339 // echo $query_insert."<br>"; 340 341 $result_insert=$db->query($query_insert); 342 343 } 344 mysql_free_result($result); 345 $query_auto_inc= "ALTER TABLE `glpi_dropdown_locations_new` CHANGE `ID` `ID` INT(11) NOT NULL AUTO_INCREMENT"; 346 $result_auto_inc=$db->query($query_auto_inc); 347 348 } 349 350 ///// FIN FONCTIONS POUR UPDATE LOCATION 351 352 function showLocationUpdateForm(){ 353 global $db,$lang; 354 355 356 if (FieldExists("glpi_dropdown_locations", "parentID")) { 357 updateTreeDropdown(); 358 return true; 359 } 360 361 if (!isset($_POST['root'])) $_POST['root']=''; 362 if (!isset($_POST['car_sep'])) $_POST['car_sep']=''; 363 364 if(!TableExists("glpi_dropdown_locations_new")) { 365 $query = " CREATE TABLE `glpi_dropdown_locations_new` ( 366 `ID` INT NOT NULL auto_increment, 367 `name` VARCHAR(255) NOT NULL , 368 `parentID` INT NOT NULL , 369 `comments` TEXT NULL , 370 PRIMARY KEY (`ID`), 371 UNIQUE KEY (`name`,`parentID`), 372 KEY(`parentID`)) TYPE=MyISAM;"; 373 $db->query($query) or die("LOCATION ".$db->error()); 374 } 375 376 if (!isset($_POST["validate_location"])){ 377 echo "<div align='center'>"; 378 echo "<h4>".$lang["update"][130]."</h4>"; 379 echo "<p>".$lang["update"][131]."</p>"; 380 echo "<p>".$lang["update"][132]."<br>".$lang["update"][133]."</p>"; 381 echo "<form action=\"".$_SERVER["PHP_SELF"]."\" method=\"post\">"; 382 echo "<p>".$lang["update"][134].": <input type=\"text\" name=\"car_sep\" value=\"".$_POST['car_sep']."\"/></p>"; 383 echo "<p>".$lang["update"][135].": <input type=\"text\" name=\"root\" value=\"".$_POST['root']."\"/></p>"; 384 echo "<input type=\"submit\" class='submit' name=\"new_location\" value=\"".$lang["buttons"][2]."\" />"; 385 echo "<input type=\"hidden\" name=\"from_update\" value=\"from_update\" />"; 386 echo "</form>"; 387 echo "</div>"; 388 } 389 390 391 392 if (isset($_POST["new_location"])){ 393 location_create_new($_POST['car_sep'],$_POST['root']); 394 echo "<h4>".$lang["update"][138].": </h4>"; 395 display_old_locations(); 396 echo "<h4>".$lang["update"][137].": </h4>"; 397 display_new_locations(); 398 echo "<p>".$lang["update"][136]."</p>"; 399 echo "<form action=\"".$_SERVER["PHP_SELF"]."\" method=\"post\">"; 400 echo "<input type=\"submit\" class='submit' name=\"validate_location\" value=\"".$lang["buttons"][2]."\" />"; 401 echo "<input type=\"hidden\" name=\"from_update\" value=\"from_update\" />"; 402 echo "</form>"; 403 } 404 else if (isset($_POST["validate_location"])){ 405 validate_new_location(); 406 updateTreeDropdown(); 407 return true; 408 } else { 409 display_old_locations(); 410 } 411 } 412 413 414 //test la connection a la base de donn�. 415 function test_connect() { 416 global $db; 417 if($db->error == 0) return true; 418 else return false; 419 } 420 421 //Change table2 from varchar to ID+varchar and update table1.chps with depends 422 function changeVarcharToID($table1, $table2, $chps) 423 { 424 425 global $db,$lang; 426 427 if(!FieldExists($table2, "ID")) { 428 $query = " ALTER TABLE `". $table2 ."` ADD `ID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST"; 429 $db->query($query) or die("".$lang["update"][90].$db->error()); 430 } 431 $query = "ALTER TABLE $table1 ADD `temp` INT"; 432 $db->query($query) or die($lang["update"][90].$db->error()); 433 434 $query = "select ". $table1 .".ID as row1, ". $table2 .".ID as row2 from ". $table1 .",". $table2 ." where ". $table2 .".name = ". $table1 .".". $chps." "; 435 $result = $db->query($query) or die($lang["update"][90].$db->error()); 436 while($line = $db->fetch_array($result)) { 437 $query = "update ". $table1 ." set temp = ". $line["row2"] ." where ID = '". $line["row1"] ."'"; 438 $db->query($query) or die($lang["update"][90].$db->error()); 439 } 440 mysql_free_result($result); 441 442 $query = "ALTER TABLE ". $table1 ." DROP ". $chps.""; 443 $db->query($query) or die($lang["update"][90].$db->error()); 444 $query = "ALTER TABLE ". $table1 ." CHANGE `temp` `". $chps ."` INT"; 445 $db->query($query) or die($lang["update"][90].$db->error()); 446 } 447 448 //update the database to the 0.31 version 449 function updateDbTo031() 450 { 451 452 global $db,$lang; 453 454 455 //amSize ramSize 456 $query = "Alter table users drop can_assign_job"; 457 $db->query($query) or die($lang["update"][90].$db->error()); 458 $query = "Alter table users add can_assign_job enum('yes','no') NOT NULL default 'no'"; 459 $db->query($query) or die($lang["update"][90].$db->error()); 460 $query = "Update users set can_assign_job = 'yes' where type = 'admin'"; 461 $db->query($query) or die($lang["update"][90].$db->error()); 462 463 echo "<p class='center'>Version 0.2 & < </p>"; 464 465 //Version 0.21 ajout du champ ramSize a la table printers si non existant. 466 467 468 if(!FieldExists("printers", "ramSize")) { 469 $query = "alter table printers add ramSize varchar(6) NOT NULL default ''"; 470 $db->query($query) or die($lang["update"][90].$db->error()); 471 } 472 473 echo "<p class='center'>Version 0.21 </p>"; 474 475 //Version 0.3 476 //Ajout de NOT NULL et des valeurs par defaut. 477 478 $query = "ALTER TABLE computers MODIFY achat_date date NOT NULL default '0000-00-00'"; 479 $db->query($query) or die($lang["update"][90].$db->error()); 480 $query = "ALTER TABLE computers MODIFY date_fin_garantie date NOT NULL default '0000-00-00'"; 481 482 483 $query = "ALTER TABLE monitors MODIFY achat_date date NOT NULL default '0000-00-00'"; 484 $db->query($query) or die($lang["update"][90].$db->error()); 485 $query = "ALTER TABLE monitors MODIFY date_fin_garantie date NOT NULL default '0000-00-00'"; 486 487 $query = "ALTER TABLE networking MODIFY achat_date date NOT NULL default '0000-00-00'"; 488 $db->query($query) or die($lang["update"][90].$db->error()); 489 $query = "ALTER TABLE networking MODIFY date_fin_garantie date NOT NULL default '0000-00-00'"; 490 491 492 $query = "ALTER TABLE printers MODIFY achat_date date NOT NULL default '0000-00-00'"; 493 $db->query($query) or die($lang["update"][90].$db->error()); 494 $query = "ALTER TABLE printers MODIFY date_fin_garantie date NOT NULL default '0000-00-00'"; 495 496 $query = "ALTER TABLE templates MODIFY achat_date date NOT NULL default '0000-00-00'"; 497 $db->query($query) or die($lang["update"][90].$db->error()); 498 $query = "ALTER TABLE templates MODIFY date_fin_garantie date NOT NULL default '0000-00-00'"; 499 500 echo "<p class='center'>Version 0.3 </p>"; 501 502 503 } 504 505 506 //update database up to 0.31 507 function updatedbUpTo031() 508 { 509 510 global $db,$lang; 511 $ret = array(); 512 513 if(!TableExists("glpi_config")) 514 { 515 $query = "CREATE TABLE `glpi_config` ( 516 `ID` int(11) NOT NULL auto_increment, 517 `num_of_events` varchar(200) NOT NULL default '', 518 `jobs_at_login` varchar(200) NOT NULL default '', 519 `sendexpire` varchar(200) NOT NULL default '', 520 `cut` varchar(200) NOT NULL default '', 521 `expire_events` varchar(200) NOT NULL default '', 522 `list_limit` varchar(200) NOT NULL default '', 523 `version` varchar(200) NOT NULL default '', 524 `logotxt` varchar(200) NOT NULL default '', 525 `root_doc` varchar(200) NOT NULL default '', 526 `event_loglevel` varchar(200) NOT NULL default '', 527 `mailing` varchar(200) NOT NULL default '', 528 `imap_auth_server` varchar(200) NOT NULL default '', 529 `imap_host` varchar(200) NOT NULL default '', 530 `ldap_host` varchar(200) NOT NULL default '', 531 `ldap_basedn` varchar(200) NOT NULL default '', 532 `ldap_rootdn` varchar(200) NOT NULL default '', 533 `ldap_pass` varchar(200) NOT NULL default '', 534 `admin_email` varchar(200) NOT NULL default '', 535 `mailing_signature` varchar(200) NOT NULL default '', 536 `mailing_new_admin` varchar(200) NOT NULL default '', 537 `mailing_followup_admin` varchar(200) NOT NULL default '', 538 `mailing_finish_admin` varchar(200) NOT NULL default '', 539 `mailing_new_all_admin` varchar(200) NOT NULL default '', 540 `mailing_followup_all_admin` varchar(200) NOT NULL default '', 541 `mailing_finish_all_admin` varchar(200) NOT NULL default '', 542 `mailing_new_all_normal` varchar(200) NOT NULL default '', 543 `mailing_followup_all_normal` varchar(200) NOT NULL default '', 544 `mailing_finish_all_normal` varchar(200) NOT NULL default '', 545 `mailing_new_attrib` varchar(200) NOT NULL default '', 546 `mailing_followup_attrib` varchar(200) NOT NULL default '', 547 `mailing_finish_attrib` varchar(200) NOT NULL default '', 548 `mailing_new_user` varchar(200) NOT NULL default '', 549 `mailing_followup_user` varchar(200) NOT NULL default '', 550 `mailing_finish_user` varchar(200) NOT NULL default '', 551 `ldap_field_name` varchar(200) NOT NULL default '', 552 `ldap_field_email` varchar(200) NOT NULL default '', 553 `ldap_field_location` varchar(200) NOT NULL default '', 554 `ldap_field_realname` varchar(200) NOT NULL default '', 555 `ldap_field_phone` varchar(200) NOT NULL default '', 556 PRIMARY KEY (`ID`) 557 ) TYPE=MyISAM AUTO_INCREMENT=2 "; 558 $db->query($query) or die($lang["update"][90].$db->error()); 559 560 $query = "INSERT INTO `glpi_config` VALUES (1, '10', '1', '1', '80', '30', '15', ' 0.31', 'GLPI powered by indepnet', '/glpi', '5', '0', '', '', '', '', '', '', 'admsys@xxxxx.fr', 'SIGNATURE', '1', '1', '1', '1', '0', '0', '0', '0', '0', '0', '0', '0','1', '1', '1', 'uid', 'mail', 'physicaldeliveryofficename', 'cn', 'telephonenumber')"; 561 $db->query($query) or die($lang["update"][90].$db->error()); 562 563 echo "<p class='center'>Version > 0.31 </p>"; 564 } 565 566 // Get current version 567 $query="SELECT version FROM glpi_config"; 568 $result=$db->query($query) or die("get current version".$db->error()); 569 $current_version=trim($db->result($result,0,0)); 570 571 switch ($current_version){ 572 case "0.31": update031to04(); 573 case "0.4": 574 case "0.41": update04to042(); 575 case "0.42": update042to05(); 576 case "0.5": update05to051(); 577 case "0.51": 578 case "0.51a": update051to06(); 579 case "0.6": update06to065(); 580 case "0.65": 581 break; 582 default: 583 update031to04(); 584 update04to042(); 585 update042to05(); 586 update05to051(); 587 update051to06(); 588 break; 589 } 590 591 // Update version number and default langage and new version_founded ---- LEAVE AT THE END 592 $query = "UPDATE `glpi_config` SET `version` = ' 0.65', default_language='".$_SESSION["dict"]."',founded_new_version='' ;"; 593 $db->query($query) or die("0.6 ".$lang["update"][90].$db->error()); 594 595 optimize_tables(); 596 597 return $ret; 598 } 599 600 function update031to04(){ 601 global $db,$lang; 602 603 //0.4 Prefixage des tables : 604 echo "<p class='center'>Version 0.4 </p>"; 605 606 if(!TableExists("glpi_computers")) { 607 608 $query = "ALTER TABLE computers RENAME glpi_computers"; 609 $db->query($query) or die($lang["update"][90].$db->error()); 610 $query = "ALTER TABLE connect_wire RENAME glpi_connect_wire"; 611 $db->query($query) or die($lang["update"][90].$db->error()); 612 $query = "ALTER TABLE dropdown_gfxcard RENAME glpi_dropdown_gfxcard"; 613 $db->query($query) or die($lang["update"][90].$db->error()); 614 $query = "ALTER TABLE dropdown_hdtype RENAME glpi_dropdown_hdtype"; 615 $db->query($query) or die($lang["update"][90].$db->error()); 616 $query = "ALTER TABLE dropdown_iface RENAME glpi_dropdown_iface"; 617 $db->query($query) or die($lang["update"][90].$db->error()); 618 $query = "ALTER TABLE dropdown_locations RENAME glpi_dropdown_locations"; 619 $db->query($query) or die($lang["update"][90].$db->error()); 620 $query = "ALTER TABLE dropdown_moboard RENAME glpi_dropdown_moboard"; 621 $db->query($query) or die($lang["update"][90].$db->error()); 622 $query = "ALTER TABLE dropdown_network RENAME glpi_dropdown_network"; 623 $db->query($query) or die($lang["update"][90].$db->error()); 624 $query = "ALTER TABLE dropdown_os RENAME glpi_dropdown_os"; 625 $db->query($query) or die($lang["update"][90].$db->error()); 626 $query = "ALTER TABLE dropdown_processor RENAME glpi_dropdown_processor"; 627 $db->query($query) or die($lang["update"][90].$db->error()); 628 $query = "ALTER TABLE dropdown_ram RENAME glpi_dropdown_ram"; 629 $db->query($query) or die($lang["update"][90].$db->error()); 630 $query = "ALTER TABLE dropdown_sndcard RENAME glpi_dropdown_sndcard"; 631 $db->query($query) or die($lang["update"][90].$db->error()); 632 $query = "ALTER TABLE event_log RENAME glpi_event_log"; 633 $db->query($query) or die($lang["update"][90].$db->error()); 634 $query = "ALTER TABLE followups RENAME glpi_followups"; 635 $db->query($query) or die($lang["update"][90].$db->error()); 636 $query = "ALTER TABLE inst_software RENAME glpi_inst_software"; 637 $db->query($query) or die($lang["update"][90].$db->error()); 638 $query = "ALTER TABLE licenses RENAME glpi_licenses"; 639 $db->query($query) or die($lang["update"][90].$db->error()); 640 $query = "ALTER TABLE monitors RENAME glpi_monitors"; 641 $db->query($query) or die($lang["update"][90].$db->error()); 642 $query = "ALTER TABLE networking RENAME glpi_networking"; 643 $db->query($query) or die($lang["update"][90].$db->error()); 644 $query = "ALTER TABLE networking_ports RENAME glpi_networking_ports"; 645 $db->query($query) or die($lang["update"][90].$db->error()); 646 $query = "ALTER TABLE networking_wire RENAME glpi_networking_wire"; 647 $db->query($query) or die($lang["update"][90].$db->error()); 648 if(TableExists("prefs")&&!TableExists("glpi_prefs")) { 649 $query = "ALTER TABLE prefs RENAME glpi_prefs"; 650 $db->query($query) or die($lang["update"][90].$db->error()); 651 } 652 $query = "ALTER TABLE printers RENAME glpi_printers"; 653 $db->query($query) or die($lang["update"][90].$db->error()); 654 $query = "ALTER TABLE software RENAME glpi_software"; 655 $db->query($query) or die($lang["update"][90].$db->error()); 656 $query = "ALTER TABLE templates RENAME glpi_templates"; 657 $db->query($query) or die($lang["update"][90].$db->error()); 658 $query = "ALTER TABLE tracking RENAME glpi_tracking"; 659 $db->query($query) or die($lang["update"][90].$db->error()); 660 $query = "ALTER TABLE type_computers RENAME glpi_type_computers"; 661 $db->query($query) or die($lang["update"][90].$db->error()); 662 $query = "ALTER TABLE type_monitors RENAME glpi_type_monitors"; 663 $db->query($query) or die($lang["update"][90].$db->error()); 664 $query = "ALTER TABLE type_networking RENAME glpi_type_networking"; 665 $db->query($query) or die($lang["update"][90].$db->error()); 666 $query = "ALTER TABLE type_printers RENAME glpi_type_printers"; 667 $db->query($query) or die($lang["update"][90].$db->error()); 668 $query = "ALTER TABLE users RENAME glpi_users"; 669 $db->query($query) or die($lang["update"][90].$db->error()); 670 671 } 672 673 //Ajout d'un champs ID dans la table users 674 if(!FieldExists("glpi_users", "ID")) { 675 $query = "ALTER TABLE `glpi_users` DROP PRIMARY KEY"; 676 $db->query($query) or die($lang["update"][90].$db->error()); 677 $query = "ALTER TABLE `glpi_users` ADD UNIQUE (`name`)"; 678 $db->query($query) or die($lang["update"][90].$db->error()); 679 $query = "ALTER TABLE `glpi_users` ADD INDEX (`name`)"; 680 $db->query($query) or die($lang["update"][90].$db->error()); 681 $query = " ALTER TABLE `glpi_users` ADD `ID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST"; 682 $db->query($query) or die($lang["update"][90].$db->error()); 683 684 } 685 //Mise a jour des ID pour les tables dropdown et type. cl� primaires sur les tables dropdown et type, et mise a jour des champs li� 686 if(!FieldExists("glpi_dropdown_os", "ID")) { 687 changeVarcharToID("glpi_computers", "glpi_dropdown_os", "os"); 688 changeVarcharToID("glpi_computers", "glpi_dropdown_hdtype", "hdtype"); 689 changeVarcharToID("glpi_computers", "glpi_dropdown_sndcard", "sndcard"); 690 changeVarcharToID("glpi_computers", "glpi_dropdown_moboard", "moboard"); 691 changeVarcharToID("glpi_computers", "glpi_dropdown_gfxcard", "gfxcard"); 692 changeVarcharToID("glpi_computers", "glpi_dropdown_network", "network"); 693 changeVarcharToID("glpi_computers", "glpi_dropdown_ram", "ramtype"); 694 changeVarcharToID("glpi_computers", "glpi_dropdown_locations", "location"); 695 changeVarcharToID("glpi_computers", "glpi_dropdown_processor", "processor"); 696 changeVarcharToID("glpi_monitors", "glpi_dropdown_locations", "location"); 697 changeVarcharToID("glpi_networking", "glpi_dropdown_locations", "location"); 698 changeVarcharToID("glpi_networking_ports", "glpi_dropdown_iface", "iface"); 699 changeVarcharToID("glpi_printers", "glpi_dropdown_locations", "location"); 700 changeVarcharToID("glpi_software", "glpi_dropdown_locations", "location"); 701 changeVarcharToID("glpi_software", "glpi_dropdown_os", "platform"); 702 changeVarcharToID("glpi_templates", "glpi_dropdown_os", "os"); 703 changeVarcharToID("glpi_templates", "glpi_dropdown_hdtype", "hdtype"); 704 changeVarcharToID("glpi_templates", "glpi_dropdown_sndcard", "sndcard"); 705 changeVarcharToID("glpi_templates", "glpi_dropdown_moboard", "moboard"); 706 changeVarcharToID("glpi_templates", "glpi_dropdown_gfxcard", "gfxcard"); 707 changeVarcharToID("glpi_templates", "glpi_dropdown_network", "network"); 708 changeVarcharToID("glpi_templates", "glpi_dropdown_ram", "ramtype"); 709 changeVarcharToID("glpi_templates", "glpi_dropdown_locations", "location"); 710 changeVarcharToID("glpi_templates", "glpi_dropdown_processor", "processor"); 711 changeVarcharToID("glpi_users", "glpi_dropdown_locations", "location"); 712 713 changeVarcharToID("glpi_monitors", "glpi_type_monitors", "type"); 714 changeVarcharToID("glpi_printers", "glpi_type_printers", "type"); 715 changeVarcharToID("glpi_networking", "glpi_type_networking", "type"); 716 changeVarcharToID("glpi_computers", "glpi_type_computers", "type"); 717 changeVarcharToID("glpi_templates", "glpi_type_computers", "type"); 718 719 } 720 721 if(!TableExists("glpi_type_peripherals")) { 722 723 $query = "CREATE TABLE `glpi_type_peripherals` ( 724 `ID` int(11) NOT NULL auto_increment, 725 `name` varchar(255), 726 PRIMARY KEY (`ID`) 727 ) TYPE=MyISAM;"; 728 $db->query($query)or die("0A ".$lang["update"][90].$db->error()); 729 } 730 731 if(!TableExists("glpi_peripherals")) { 732 733 $query = "CREATE TABLE `glpi_peripherals` ( 734 `ID` int(11) NOT NULL auto_increment, 735 `name` varchar(255) NOT NULL default '', 736 `date_mod` datetime NOT NULL default '0000-00-00 00:00:00', 737 `contact` varchar(255) NOT NULL default '', 738 `contact_num` varchar(255) NOT NULL default '', 739 `comments` text NOT NULL, 740 `serial` varchar(255) NOT NULL default '', 741 `otherserial` varchar(255) NOT NULL default '', 742 `date_fin_garantie` date default NULL, 743 `achat_date` date NOT NULL default '0000-00-00', 744 `maintenance` int(2) default '0', 745 `location` int(11) NOT NULL default '0', 746 `type` int(11) NOT NULL default '0', 747 `brand` varchar(255) NOT NULL default '', 748 PRIMARY KEY (`ID`) 749 ) TYPE=MyISAM;"; 750 751 $db->query($query) or die("0 ".$lang["update"][90].$db->error()); 752 } 753 754 if(TableExists("glpi_prefs")&&!FieldExists("glpi_prefs", "ID")) { 755 $query = "Alter table glpi_prefs drop primary key"; 756 $db->query($query) or die("1 ".$lang["update"][90].$db->error()); 757 $query = "Alter table glpi_prefs add ID INT(11) not null auto_increment primary key"; 758 $db->query($query) or die("3 ".$lang["update"][90].$db->error()); 759 } 760 if(!FieldExists("glpi_config", "ID")) { 761 762 $query = "ALTER TABLE `glpi_config` CHANGE `config_id` `ID` INT(11) NOT NULL AUTO_INCREMENT "; 763 $db->query($query) or die("4 ".$lang["update"][90].$db->error()); 764 } 765 766 if(!isIndex("glpi_computers", "location")) { 767 $query = "ALTER TABLE `glpi_computers` ADD INDEX (`location`) "; 768 $db->query($query) or die("5 ".$lang["update"][90].$db->error()); 769 } 770 771 if(!isIndex("glpi_computers", "os")) { 772 $query = "ALTER TABLE `glpi_computers` ADD INDEX (`os`) "; 773 $db->query($query) or die("6 ".$lang["update"][90].$db->error()); 774 } 775 776 if(!isIndex("glpi_computers", "type")) { 777 $query = "ALTER TABLE `glpi_computers` ADD INDEX (`type`) "; 778 $db->query($query) or die("7 ".$lang["update"][90].$db->error()); 779 } 780 781 if(!isIndex("glpi_followups", "tracking")) { 782 $query = "ALTER TABLE `glpi_followups` ADD INDEX (`tracking`) "; 783 $db->query($query) or die("12 ".$lang["update"][90].$db->error()); 784 } 785 786 if(!isIndex("glpi_networking", "location")) { 787 $query = "ALTER TABLE `glpi_networking` ADD INDEX (`location`) "; 788 $db->query($query) or die("13 ".$lang["update"][90].$db->error()); 789 } 790 791 if(!isIndex("glpi_networking_ports", "on_device")) { 792 $query = "ALTER TABLE `glpi_networking_ports` ADD INDEX (`on_device` , `device_type`)"; 793 $db->query($query) or die("14 ".$lang["update"][90].$db->error()); 794 } 795 796 if(!isIndex("glpi_peripherals", "type")) { 797 $query = "ALTER TABLE `glpi_peripherals` ADD INDEX (`type`) "; 798 $db->query($query) or die("14 ".$lang["update"][90].$db->error()); 799 } 800 801 if(!isIndex("glpi_peripherals", "location")) { 802 $query = "ALTER TABLE `glpi_peripherals` ADD INDEX (`location`) "; 803 $db->query($query) or die("15 ".$lang["update"][90].$db->error()); 804 } 805 806 if(!isIndex("glpi_printers", "location")) { 807 $query = "ALTER TABLE `glpi_printers` ADD INDEX (`location`) "; 808 $db->query($query) or die("16 ".$lang["update"][90].$db->error()); 809 } 810 811 if(!isIndex("glpi_tracking", "computer")) { 812 $query = "ALTER TABLE `glpi_tracking` ADD INDEX (`computer`) "; 813 $db->query($query) or die("17 ".$lang["update"][90].$db->error()); 814 } 815 816 if(!isIndex("glpi_tracking", "author")) { 817 $query = "ALTER TABLE `glpi_tracking` ADD INDEX (`author`) "; 818 $db->query($query) or die("18 ".$lang["update"][90].$db->error()); 819 } 820 821 if(!isIndex("glpi_tracking", "assign")) { 822 $query = "ALTER TABLE `glpi_tracking` ADD INDEX (`assign`) "; 823 $db->query($query) or die("19 ".$lang["update"][90].$db->error()); 824 } 825 826 if(!isIndex("glpi_tracking", "date")) { 827 $query = "ALTER TABLE `glpi_tracking` ADD INDEX (`date`) "; 828 $db->query($query) or die("20 ".$lang["update"][90].$db->error()); 829 } 830 831 if(!isIndex("glpi_tracking", "closedate")) { 832 $query = "ALTER TABLE `glpi_tracking` ADD INDEX (`closedate`) "; 833 $db->query($query) or die("21 ".$lang["update"][90].$db->error()); 834 } 835 836 if(!isIndex("glpi_tracking", "status")) { 837 $query = "ALTER TABLE `glpi_tracking` ADD INDEX (`status`) "; 838 $db->query($query) or die("22 ".$lang["update"][90].$db->error()); 839 } 840 841 842 if(!TableExists("glpi_dropdown_firmware")) { 843 $query = " CREATE TABLE `glpi_dropdown_firmware` (`ID` INT NOT NULL AUTO_INCREMENT ,`name` VARCHAR(255) NOT NULL ,PRIMARY KEY (`ID`))"; 844 $db->query($query) or die("23 ".$lang["update"][90].$db->error()); 845 } 846 847 if(!FieldExists("glpi_networking","firmware")) { 848 $query = "ALTER TABLE `glpi_networking` ADD `firmware` INT(11);"; 849 $db->query($query) or die("24 ".$lang["update"][90].$db->error()); 850 } 851 852 if(!FieldExists("glpi_tracking","realtime")) { 853 $query = "ALTER TABLE `glpi_tracking` ADD `realtime` FLOAT NOT NULL;"; 854 $db->query($query) or die("25 ".$lang["update"][90].$db->error()); 855 } 856 857 if(!FieldExists("glpi_printers","flags_usb")) { 858 $query = "ALTER TABLE `glpi_printers` ADD `flags_usb` TINYINT DEFAULT '0' NOT NULL AFTER `flags_par`"; 859 $db->query($query) or die("26 ".$lang["update"][90].$db->error()); 860 } 861 862 if(!FieldExists("glpi_licenses","expire")) { 863 $query = "ALTER TABLE `glpi_licenses` ADD `expire` date default NULL"; 864 $db->query($query) or die("27 ".$lang["update"][90].$db->error()); 865 } 866 867 if(!isIndex("glpi_licenses", "sID")) { 868 $query = "ALTER TABLE `glpi_licenses` ADD INDEX (`sID`) "; 869 $db->query($query) or die("32 ".$lang["update"][90].$db->error()); 870 } 871 872 if(!isIndex("glpi_followups", "author")) { 873 $query = "ALTER TABLE `glpi_followups` ADD INDEX (`author`) "; 874 $db->query($query) or die("33 ".$lang["update"][90].$db->error()); 875 } 876 877 if(!isIndex("glpi_monitors", "type")) { 878 $query = "ALTER TABLE `glpi_monitors` ADD INDEX (`type`) "; 879 $db->query($query) or die("34 ".$lang["update"][90].$db->error()); 880 } 881 882 if(!isIndex("glpi_monitors", "location")) { 883 $query = "ALTER TABLE `glpi_monitors` ADD INDEX (`location`) "; 884 $db->query($query) or die("35 ".$lang["update"][90].$db->error()); 885 } 886 887 if(!isIndex("glpi_monitors", "type")) { 888 $query = "ALTER TABLE `glpi_monitors` ADD INDEX (`type`) "; 889 $db->query($query) or die("37 ".$lang["update"][90].$db->error()); 890 } 891 892 if(!isIndex("glpi_networking", "type")) { 893 $query = "ALTER TABLE `glpi_networking` ADD INDEX (`type`) "; 894 $db->query($query) or die("38 ".$lang["update"][90].$db->error()); 895 } 896 897 if(!isIndex("glpi_networking", "firmware")) { 898 $query = "ALTER TABLE `glpi_networking` ADD INDEX (`firmware`) "; 899 $db->query($query) or die("39 ".$lang["update"][90].$db->error()); 900 } 901 902 if(!isIndex("glpi_printers", "type")) { 903 $query = "ALTER TABLE `glpi_printers` ADD INDEX (`type`) "; 904 $db->query($query) or die("42 ".$lang["update"][90].$db->error()); 905 } 906 907 if(!isIndex("glpi_software", "platform")) { 908 $query = "ALTER TABLE `glpi_software` ADD INDEX (`platform`) "; 909 $db->query($query) or die("44 ".$lang["update"][90].$db->error()); 910 } 911 912 if(!isIndex("glpi_software", "location")) { 913 $query = "ALTER TABLE `glpi_software` ADD INDEX (`location`) "; 914 $db->query($query) or die("45 ".$lang["update"][90].$db->error()); 915 } 916 917 if(!TableExists("glpi_dropdown_netpoint")) { 918 $query = " CREATE TABLE `glpi_dropdown_netpoint` (`ID` INT NOT NULL AUTO_INCREMENT ,`location` INT NOT NULL ,`name` VARCHAR(255) NOT NULL ,PRIMARY KEY (`ID`))"; 919 $db->query($query) or die("46 ".$lang["update"][90].$db->error()); 920 } 921 922 if(!isIndex("glpi_dropdown_netpoint", "location")) { 923 $query = "ALTER TABLE `glpi_dropdown_netpoint` ADD INDEX (`location`) "; 924 $db->query($query) or die("47 ".$lang["update"][90].$db->error()); 925 } 926 927 if(!FieldExists("glpi_networking_ports","netpoint")) { 928 $query = "ALTER TABLE `glpi_networking_ports` ADD `netpoint` INT default NULL"; 929 $db->query($query) or die("27 ".$lang["update"][90].$db->error()); 930 } 931 932 if(!isIndex("glpi_networking_ports", "netpoint")) { 933 $query = "ALTER TABLE `glpi_networking_ports` ADD INDEX (`netpoint`) "; 934 $db->query($query) or die("47 ".$lang["update"][90].$db->error()); 935 } 936 937 if(!isIndex("glpi_networking_wire", "end1")) { 938 $query = "ALTER TABLE `glpi_networking_wire` ADD INDEX (`end1`) "; 939 $db->query($query) or die("40 ".$lang["update"][90].$db->error()); 940 941 942 // Clean Table 943 $query = "SELECT * FROM `glpi_networking_wire` ORDER BY end1, end2 "; 944 $result=$db->query($query); 945 $curend1=-1; 946 $curend2=-1; 947 while($line = $db->fetch_array($result)) { 948 if ($curend1==$line['end1']&&$curend2==$line['end2']){ 949 $q2="DELETE FROM `glpi_networking_wire` WHERE `ID`='".$line['ID']."' LIMIT 1"; 950 $db->query($q2); 951 } 952 else {$curend1=$line['end1'];$curend2=$line['end2'];} 953 } 954 mysql_free_result($result); 955 956 $query = "ALTER TABLE `glpi_networking_wire` ADD UNIQUE end1_1 (`end1`,`end2`) "; 957 $db->query($query) or die("477 ".$lang["update"][90].$db->error()); 958 } 959 960 if(!isIndex("glpi_networking_wire", "end2")) { 961 $query = "ALTER TABLE `glpi_networking_wire` ADD INDEX (`end2`) "; 962 $db->query($query) or die("41 ".$lang["update"][90].$db->error()); 963 } 964 965 if(!isIndex("glpi_connect_wire", "end1")) { 966 $query = "ALTER TABLE `glpi_connect_wire` ADD INDEX (`end1`) "; 967 $db->query($query) or die("40 ".$lang["update"][90].$db->error()); 968 969 // Clean Table 970 $query = "SELECT * FROM `glpi_connect_wire` ORDER BY type, end1, end2 "; 971 $result=$db->query($query); 972 $curend1=-1; 973 $curend2=-1; 974 $curtype=-1; 975 while($line = $db->fetch_array($result)) { 976 if ($curend1==$line['end1']&&$curend2==$line['end2']&&$curtype==$line['type']){ 977 $q2="DELETE FROM `glpi_connect_wire` WHERE `ID`='".$line['ID']."' LIMIT 1"; 978 $db->query($q2); 979 } 980 else{ $curend1=$line['end1'];$curend2=$line['end2'];$curtype=$line['type'];} 981 } 982 mysql_free_result($result); 983 $query = "ALTER TABLE `glpi_connect_wire` ADD UNIQUE end1_1 (`end1`,`end2`,`type`) "; 984 $db->query($query) or die("478 ".$lang["update"][90].$db->error()); 985 } 986 987 if(!isIndex("glpi_connect_wire", "end2")) { 988 $query = "ALTER TABLE `glpi_connect_wire` ADD INDEX (`end2`) "; 989 $db->query($query) or die("40 ".$lang["update"][90].$db->error()); 990 } 991 992 if(!isIndex("glpi_connect_wire", "type")) { 993 $query = "ALTER TABLE `glpi_connect_wire` ADD INDEX (`type`) "; 994 $db->query($query) or die("40 ".$lang["update"][90].$db->error()); 995 } 996 997 998 999 if(!FieldExists("glpi_config","ldap_condition")) { 1000 $query = "ALTER TABLE `glpi_config` ADD `ldap_condition` varchar(255) NOT NULL default ''"; 1001 $db->query($query) or die("48 ".$lang["update"][90].$db->error()); 1002 } 1003 1004 $query = "ALTER TABLE `glpi_users` CHANGE `type` `type` ENUM('normal', 'admin', 'post-only', 'super-admin') DEFAULT 'normal' NOT NULL"; 1005 $db->query($query) or die("49 ".$lang["update"][90].$db->error()); 1006 1007 $ret["adminchange"] = false; 1008 //All "admin" users have to be set as "super-admin" 1009 if(!superAdminExists()) { 1010 $query = "update glpi_users set type = 'super-admin' where type = 'admin'"; 1011 $db->query($query) or die("49 ".$lang["update"][90].$db->error()); 1012 if($db->affected_rows() != 0) { 1013 $ret["adminchange"] = true; 1014 } 1015 } 1016 1017 if(!FieldExists("glpi_users","password_md5")) { 1018 $query = "ALTER TABLE `glpi_users` ADD `password_md5` VARCHAR(80) NOT NULL AFTER `password` "; 1019 $db->query($query) or die("glpi_users.Password_md5".$lang["update"][90].$db->error()); 1020 } 1021 1022 if(!FieldExists("glpi_config","permit_helpdesk")) { 1023 $query = "ALTER TABLE `glpi_config` ADD `permit_helpdesk` varchar(200) NOT NULL"; 1024 $db->query($query) or die("glpi_config_permit_helpdesk ".$lang["update"][90].$db->error()); 1025 } 1026 1027 } 1028 1029 // Update from 0.4 and 0.41 to 0.42 1030 function update04to042(){ 1031 global $db,$lang; 1032 1033 echo "<p class='center'>Version 0.42 </p>"; 1034 1035 if(!TableExists("glpi_reservation_item")) { 1036 1037 1038 $query = "CREATE TABLE glpi_reservation_item (ID int(11) NOT NULL auto_increment,device_type tinyint(4) NOT NULL default '0', id_device int(11) NOT NULL default '0', comments text NOT NULL, PRIMARY KEY (ID), KEY device_type (device_type));"; 1039 1040 $db->query($query) or die("4201 ".$lang["update"][90].$db->error()); 1041 } 1042 1043 if(!TableExists("glpi_reservation_resa")) { 1044 $query = "CREATE TABLE glpi_reservation_resa ( 1045 ID bigint(20) NOT NULL auto_increment, 1046 id_item int(11) NOT NULL default '0', 1047 begin datetime NOT NULL default '0000-00-00 00:00:00', 1048 end datetime NOT NULL default '0000-00-00 00:00:00', 1049 id_user int(11) NOT NULL default '0', 1050 PRIMARY KEY (`ID`), 1051 KEY id_item (`id_item`), 1052 KEY id_user (`id_user`), 1053 KEY begin (`begin`), 1054 KEY end (`end`));"; 1055 1056 $db->query($query) or die("4202 ".$lang["update"][90].$db->error()); 1057 } 1058 1059 if(!FieldExists("glpi_tracking","device_type")) { 1060 $query = "ALTER TABLE `glpi_tracking` ADD `device_type` INT DEFAULT '1' NOT NULL AFTER `assign` ;"; 1061 $db->query($query) or die("4203 ".$lang["update"][90].$db->error()); 1062 } 1063 1064 // Ajout language par defaut 1065 if(!FieldExists("glpi_config","default_language")) { 1066 1067 $query = "ALTER TABLE `glpi_config` ADD `default_language` VARCHAR(255) DEFAULT 'french' NOT NULL ;"; 1068 $db->query($query) or die("4204 ".$lang["update"][90].$db->error()); 1069 1070 } 1071 1072 } 1073 1074 // Update from 0.42 to 0.5 1075 function update042to05(){ 1076 global $db,$lang; 1077 1078 echo "<p class='center'>Version 0.5 </p>"; 1079 1080 1081 // Augmentation taille itemtype 1082 $query = "ALTER TABLE `glpi_event_log` CHANGE `itemtype` `itemtype` VARCHAR(20) NOT NULL ;"; 1083 $db->query($query) or die("4204 ".$lang["update"][90].$db->error()); 1084 1085 // Correction des itemtype tronqu� 1086 $query = "UPDATE `glpi_event_log` SET `itemtype` = 'reservation' WHERE `itemtype` = 'reservatio' ;"; 1087 $db->query($query) or die("4204 ".$lang["update"][90].$db->error()); 1088 1089 1090 /*******************************GLPI 0.5***********************************************/ 1091 //pass all templates to computers 1092 if(!FieldExists("glpi_computers","is_template")) { 1093 $query = "ALTER TABLE `glpi_computers` ADD `is_template` ENUM('0','1') DEFAULT '0' NOT NULL "; 1094 $db->query($query) or die("0.5 alter computers add is_template ".$lang["update"][90].$db->error()); 1095 $query = "ALTER TABLE `glpi_computers` ADD `tplname` VARCHAR(200) DEFAULT NULL "; 1096 $db->query($query) or die("0.5 alter computers add tplname ".$lang["update"][90].$db->error()); 1097 1098 $query = "Select * from glpi_templates"; 1099 $result = $db->query($query); 1100 1101 1102 while($line = $db->fetch_array($result)) { 1103 $line=addslashes_deep($line); 1104 $query2 = "INSERT INTO glpi_computers (`ID`,`name`, `osver`, `processor_speed`, `serial`, `otherserial`, `ram`, `hdspace`, `contact`, `contact_num`, `comments`, `achat_date`, `date_fin_garantie`, `maintenance`, `os`, `hdtype`, `sndcard`, `moboard`, `gfxcard`, `network`, `ramtype`, `location`, `processor`, `type`, `is_template`, `tplname`)"; 1105 1106 $query2 .= " VALUES ('','".$line["name"]."', '".$line["osver"]."', '".$line["processor_speed"]."', '".$line["serial"]."', '".$line["otherserial"]."', '".$line["ram"]."', '".$line ["hdspace"]."', '".$line["contact"]."', '".$line["contact_num"]."', '".$line["comments"]."', '".$line["achat_date"]."', '".$line["date_fin_garantie"]."', '".$line["maintenance"]."', '".$line["os"]."', '".$line["hdtype"]."', '".$line["sndcard"]."', '".$line["moboard"]."', '".$line["gfxcard"]."', '".$line["network"]."', '".$line["ramtype"]."', '".$line["location"]."', '".$line["processor"]."', '".$line["type"]."','1','".$line["templname"]."')"; 1107 //echo $query2; 1108 $db->query($query2) or die("0.5-convert template 2 computers ".$db->error()); 1109 } 1110 mysql_free_result($result); 1111 $query = "DROP TABLE glpi_templates"; 1112 $db->query($query) or die("0.5 drop table templates ".$db->error()); 1113 1114 $query="SELECT ID FROM glpi_computers WHERE tplname='Blank Template'"; 1115 $result=$db->query($query); 1116 if ($db->numrows($result)==0){ 1117 $query="INSERT INTO glpi_computers (is_template,tplname) VALUES ('1','Blank Template')"; 1118 $db->query($query) or die("0.5 add blank template ".$lang["update"][90].$db->error()); 1119 } 1120 mysql_free_result($result); 1121 } 1122 1123 1124 1125 1126 //New internal peripherals ( devices ) config 1127 1128 if(!TableExists("glpi_computer_device")) { 1129 $query = "CREATE TABLE `glpi_computer_device` ( 1130 `ID` int(11) NOT NULL auto_increment, 1131 `specificity` varchar(250) NOT NULL default '', 1132 `device_type` tinyint(4) NOT NULL default '0', 1133 `FK_device` int(11) NOT NULL default '0', 1134 `FK_computers` int(11) NOT NULL default '0', 1135 PRIMARY KEY (`ID`), 1136 KEY (`device_type`), 1137 KEY (`device_type`,`FK_device`), 1138 KEY (`FK_computers`) 1139 ) TYPE=MyISAM;"; 1140 $db->query($query) or die("0.5 CREATE TABLE `glpi_computer_device` ".$lang["update"][90].$db->error()); 1141 } 1142 1143 if(!TableExists("glpi_device_gfxcard")) { 1144 $query = "CREATE TABLE `glpi_device_gfxcard` ( 1145 `ID` int(11) NOT NULL auto_increment, 1146 `designation` varchar(120) NOT NULL default '', 1147 `ram` varchar(10) NOT NULL default '', 1148 `interface` enum('AGP','PCI','PCI-X','Other') NOT NULL default 'AGP', 1149 `comment` text NOT NULL, 1150 `FK_glpi_enterprise` int(11) NOT NULL default '0', 1151 `specif_default` VARCHAR(250) NOT NULL, 1152 PRIMARY KEY (`ID`), 1153 KEY(`FK_glpi_enterprise`) 1154 ) TYPE=MyISAM;"; 1155 $db->query($query) or die("0.5 create table `glpi_device_gfxcard` ".$lang["update"][90].$db->error()); 1156 compDpd2Device(GFX_DEVICE,"gfxcard","gfxcard","gfxcard"); 1157 } 1158 if(!TableExists("glpi_device_hdd")) { 1159 $query = "CREATE TABLE `glpi_device_hdd` ( 1160 `ID` int(11) NOT NULL auto_increment, 1161 `designation` varchar(100) NOT NULL default '', 1162 `rpm` varchar(20) NOT NULL default '', 1163 `interface` enum('IDE','SATA','SCSI') NOT NULL default 'IDE', 1164 `cache` varchar(20) NOT NULL default '', 1165 `comment` text NOT NULL, 1166 `FK_glpi_enterprise` int(11) NOT NULL default '0', 1167 `specif_default` VARCHAR(250) NOT NULL, 1168 PRIMARY KEY (`ID`), 1169 KEY(`FK_glpi_enterprise`) 1170 ) TYPE=MyISAM;"; 1171 $db->query($query) or die("0.5 CREATE TABLE `glpi_device_hdtype` ".$lang["update"][90].$db->error()); 1172 compDpd2Device(HDD_DEVICE,"hdd","hdtype","hdtype","hdspace"); 1173 } 1174 if(!TableExists("glpi_device_iface")) { 1175 $query = "CREATE TABLE `glpi_device_iface` ( 1176 `ID` int(11) NOT NULL auto_increment, 1177 `designation` varchar(120) NOT NULL default '', 1178 `bandwidth` varchar(20) NOT NULL default '', 1179 `comment` text NOT NULL, 1180 `FK_glpi_enterprise` int(11) NOT NULL default '0', 1181 `specif_default` VARCHAR(250) NOT NULL, 1182 PRIMARY KEY (`ID`), 1183 KEY(`FK_glpi_enterprise`) 1184 ) TYPE=MyISAM;"; 1185 $db->query($query) or die("0.5- CREATE TABLE `glpi_device_iface` ".$lang["update"][90].$db->error()); 1186 compDpd2Device(NETWORK_DEVICE,"iface","network","network"); 1187 } 1188 if(!TableExists("glpi_device_moboard")) { 1189 $query = "CREATE TABLE `glpi_device_moboard` ( 1190 `ID` int(11) NOT NULL auto_increment, 1191 `designation` varchar(100) NOT NULL default '', 1192 `chipset` varchar(120) NOT NULL default '', 1193 `comment` text NOT NULL, 1194 `FK_glpi_enterprise` int(11) NOT NULL default '0', 1195 `specif_default` VARCHAR(250) NOT NULL, 1196 PRIMARY KEY (`ID`), 1197 KEY(`FK_glpi_enterprise`) 1198 ) TYPE=MyISAM;"; 1199 $db->query($query) or die("0.5 CREATE TABLE `glpi_device_moboard` ".$lang["update"][90].$db->error()); 1200 compDpd2Device(MOBOARD_DEVICE,"moboard","moboard","moboard"); 1201 } 1202 if(!TableExists("glpi_device_processor")) { 1203 $query = "CREATE TABLE `glpi_device_processor` ( 1204 `ID` int(11) NOT NULL auto_increment, 1205 `designation` varchar(120) NOT NULL default '', 1206 `frequence` int(11) NOT NULL default '0', 1207 `comment` text NOT NULL, 1208 `FK_glpi_enterprise` int(11) NOT NULL default '0', 1209 `specif_default` VARCHAR(250) NOT NULL, 1210 PRIMARY KEY (`ID`), 1211 KEY(`FK_glpi_enterprise`) 1212 ) TYPE=MyISAM;"; 1213 $db->query($query) or die("0.5 CREATE TABLE `glpi_device_processor` ".$lang["update"][90].$db->error()); 1214 compDpd2Device(PROCESSOR_DEVICE,"processor","processor","processor","processor_speed"); 1215 } 1216 if(!TableExists("glpi_device_ram")) { 1217 $query = "CREATE TABLE `glpi_device_ram` ( 1218 `ID` int(11) NOT NULL auto_increment, 1219 `designation` varchar(100) NOT NULL default '', 1220 `type` enum('EDO','DDR','SDRAM','SDRAM-2') NOT NULL default 'EDO', 1221 `frequence` varchar(8) NOT NULL default '', 1222 `comment` text NOT NULL, 1223 `FK_glpi_enterprise` int(11) NOT NULL default '0', 1224 `specif_default` VARCHAR(250) NOT NULL, 1225 PRIMARY KEY (`ID`), 1226 KEY(`FK_glpi_enterprise`) 1227 ) TYPE=MyISAM;"; 1228 $db->query($query) or die("0.5 CREATE TABLE `glpi_device_ram` ".$lang["update"][90].$db->error()); 1229 compDpd2Device(RAM_DEVICE,"ram","ram","ramtype","ram"); 1230 } 1231 if(!TableExists("glpi_device_sndcard")) { 1232 $query = "CREATE TABLE `glpi_device_sndcard` ( 1233 `ID` int(11) NOT NULL auto_increment, 1234 `designation` varchar(120) NOT NULL default '', 1235 `type` varchar(100) NOT NULL default '', 1236 `comment` text NOT NULL, 1237 `FK_glpi_enterprise` int(11) NOT NULL default '0', 1238 `specif_default` VARCHAR(250) NOT NULL, 1239 PRIMARY KEY (`ID`), 1240 KEY(`FK_glpi_enterprise`) 1241 ) TYPE=MyISAM;"; 1242 $db->query($query) or die("0.5 CREATE TABLE `glpi_device_sndcard ".$lang["update"][90].$db->error()); 1243 compDpd2Device(SND_DEVICE,"sndcard","sndcard","sndcard"); 1244 } 1245 1246 if(!TableExists("glpi_device_power")) { 1247 $query = "CREATE TABLE glpi_device_power ( 1248 ID int(11) NOT NULL auto_increment, 1249 designation varchar(255) NOT NULL default '', 1250 power varchar(20) NOT NULL default '', 1251 atx enum('Y','N') NOT NULL default 'Y', 1252 `comment` text NOT NULL, 1253 FK_glpi_enterprise int(11) NOT NULL default '0', 1254 `specif_default` VARCHAR(250) NOT NULL, 1255 PRIMARY KEY (`ID`), 1256 KEY FK_glpi_enterprise (`FK_glpi_enterprise`) 1257 ) TYPE=MyISAM;"; 1258 $db->query($query) or die("Error : ".$query." ".$db->error()); 1259 } 1260 1261 if(!TableExists("glpi_device_case")) { 1262 $query = "CREATE TABLE glpi_device_case( 1263 ID int(11) NOT NULL AUTO_INCREMENT , 1264 designation varchar(255) NOT NULL default '', 1265 format enum('Grand', 'Moyen', 'Micro') NOT NULL default 'Moyen', 1266 `comment` text NOT NULL , 1267 FK_glpi_enterprise int(11) NOT NULL default '0', 1268 `specif_default` VARCHAR(250) NOT NULL, 1269 PRIMARY KEY (`ID`) , 1270 KEY FK_glpi_enterprise(`FK_glpi_enterprise`) 1271 )TYPE = MyISAM;"; 1272 $db->query($query) or die("Error : ".$query." ".$db->error()); 1273 } 1274 1275 if(!TableExists("glpi_device_drive")) { 1276 $query = "CREATE TABLE `glpi_device_drive` ( 1277 `ID` INT NOT NULL AUTO_INCREMENT , 1278 `designation` VARCHAR(255) NOT NULL , 1279 `is_writer` ENUM('Y', 'N') DEFAULT 'Y' NOT NULL , 1280 `speed` VARCHAR(30) NOT NULL , 1281 `interface` ENUM('IDE', 'SATA', 'SCSI') NOT NULL , 1282 `comment` TEXT NOT NULL , 1283 `FK_glpi_enterprise` INT NOT NULL , 1284 `specif_default` VARCHAR(250) NOT NULL, 1285 KEY FK_glpi_enterprise(`FK_glpi_enterprise`), 1286 PRIMARY KEY (`ID`) 1287 )TYPE=MyISAM;"; 1288 $db->query($query) or die("Error : ".$query." ".$db->error()); 1289 } 1290 1291 if(!TableExists("glpi_device_pci")) { 1292 $query = "CREATE TABLE glpi_device_pci ( 1293 ID int(11) NOT NULL auto_increment, 1294 designation varchar(255) NOT NULL default '', 1295 `comment` text NOT NULL, 1296 FK_glpi_enterprise int(11) NOT NULL default '0', 1297 `specif_default` VARCHAR(250) NOT NULL, 1298 PRIMARY KEY (ID), 1299 KEY FK_glpi_enterprise (FK_glpi_enterprise) 1300 ) TYPE=MyISAM;"; 1301 $db->query($query) or die("Error : ".$query." ".$db->error()); 1302 } 1303 1304 if(!TableExists("glpi_device_control")) { 1305 $query = "CREATE TABLE glpi_device_control ( 1306 ID int(11) NOT NULL auto_increment, 1307 designation varchar(255) NOT NULL default '', 1308 interface enum('IDE','SATA','SCSI','USB') NOT NULL default 'IDE', 1309 raid enum('Y','N') NOT NULL default 'Y', 1310 `comment` text NOT NULL, 1311 FK_glpi_enterprise int(11) NOT NULL default '0', 1312 `specif_default` VARCHAR(250) NOT NULL, 1313 PRIMARY KEY (ID), 1314 KEY FK_glpi_enterprise (FK_glpi_enterprise) 1315 ) TYPE=MyISAM;"; 1316 $db->query($query) or die("Error : ".$query." ".$db->error()); 1317 } 1318 1319 1320 // END new internal devices. 1321 1322 if(!TableExists("glpi_enterprises")) { 1323 $query = "CREATE TABLE `glpi_enterprises` ( 1324 `ID` int(11) NOT NULL auto_increment, 1325 `name` varchar(50) NOT NULL default '', 1326 `type` int(11) NOT NULL default '0', 1327 `address` text NOT NULL default '', 1328 `website` varchar(100) NOT NULL default '', 1329 `phonenumber` varchar(20) NOT NULL default '', 1330 `comments` text NOT NULL, 1331 `deleted` enum('Y','N') NOT NULL default 'N', 1332 PRIMARY KEY (`ID`), 1333 KEY `deleted` (`deleted`), 1334 KEY `type` (`type`) 1335 ) TYPE=MyISAM;"; 1336 $db->query($query) or die("0.5 CREATE TABLE `glpi_enterprise ".$lang["update"][90].$db->error()); 1337 } 1338 1339 /// Base connaissance 1340 if(!TableExists("glpi_dropdown_kbcategories")) { 1341 $query="CREATE TABLE `glpi_dropdown_kbcategories` ( 1342 `ID` int(11) NOT NULL auto_increment, 1343 `parentID` int(11) NOT NULL default '0', 1344 `name` varchar(255) NOT NULL, 1345 PRIMARY KEY (`ID`), 1346 KEY(`parentID`), 1347 UNIQUE KEY(`parentID`,`name`) 1348 ) TYPE=MyISAM;"; 1349 $db->query($query) or die("0.5 CREATE TABLE `glpi_dropdown_kbcategories ".$lang["update"][90].$db->error()); 1350 1351 $query="CREATE TABLE `glpi_kbitems` ( 1352 `ID` int(11) NOT NULL auto_increment, 1353 `categoryID` int(11) NOT NULL default '0', 1354 `question` text NOT NULL, 1355 `answer` text NOT NULL, 1356 `faq` enum('yes','no') NOT NULL default 'no', 1357 PRIMARY KEY (`ID`), 1358 KEY(`categoryID`) 1359 ) TYPE=MyISAM;"; 1360 $db->query($query) or die("0.5 CREATE TABLE `glpi_kbitems ".$lang["update"][90].$db->error()); 1361 1362 } 1363 1364 // Comment reservation 1365 if(!FieldExists("glpi_reservation_resa","comment")) { 1366 $query = "ALTER TABLE `glpi_reservation_resa` ADD `comment` VARCHAR(255) NOT NULL ;"; 1367 $db->query($query) or die("0.5 alter reservation add comment ".$lang["update"][90].$db->error()); 1368 } 1369 1370 // Tracking categorie 1371 if(!TableExists("glpi_dropdown_tracking_category")) { 1372 1373 $query= "CREATE TABLE glpi_dropdown_tracking_category ( 1374 ID int(11) NOT NULL auto_increment, 1375 name varchar(255) default NULL, 1376 PRIMARY KEY (ID) 1377 ) TYPE=MyISAM;"; 1378 $db->query($query) or die("0.5 CREATE TABLE `glpi_dropdown_tracking_category ".$lang["update"][90].$db->error()); 1379 1380 } 1381 1382 if(!FieldExists("glpi_tracking","category")) { 1383 $query= "ALTER TABLE `glpi_tracking` ADD `category` INT(11) ;"; 1384 $db->query($query) or die("0.5 alter tracking add categorie ".$lang["update"][90].$db->error()); 1385 } 1386 1387 // Nouvelle gestion des software et licenses 1388 if(!FieldExists("glpi_licenses","oem")) { 1389 $query = "ALTER TABLE `glpi_licenses` ADD `oem` ENUM('N', 'Y') DEFAULT 'N' NOT NULL , ADD `oem_computer` INT(11) NOT NULL, ADD `buy` ENUM('Y', 'N') DEFAULT 'Y' NOT NULL;"; 1390 $db->query($query) or die("0.5 alter licenses add oem + buy ".$lang["update"][90].$db->error()); 1391 1392 $query = "ALTER TABLE `glpi_software` ADD `is_update` ENUM('N', 'Y') DEFAULT 'N' NOT NULL , ADD `update_software` INT(11) NOT NULL DEFAULT '-1';"; 1393 $db->query($query) or die("0.5 alter software add update ".$lang["update"][90].$db->error()); 1394 } 1395 1396 // Couleur pour les priorit� 1397 if(!FieldExists("glpi_config","priority_1")) { 1398 $query= "ALTER TABLE `glpi_config` ADD `priority_1` VARCHAR(200) DEFAULT '#fff2f2' NOT NULL, ADD `priority_2` VARCHAR(200) DEFAULT '#ffe0e0' NOT NULL, ADD `priority_3` VARCHAR(200) DEFAULT '#ffcece' NOT NULL, ADD `priority_4` VARCHAR(200) DEFAULT '#ffbfbf' NOT NULL, ADD `priority_5` VARCHAR(200) DEFAULT '#ffadad' NOT NULL ;"; 1399 $db->query($query) or die("0.5 alter config add priority_X ".$lang["update"][90].$db->error()); 1400 1401 } 1402 1403 // Gestion des cartouches 1404 if(!TableExists("glpi_cartridges")) { 1405 $query= "CREATE TABLE `glpi_cartridges` ( 1406 `ID` int(11) NOT NULL auto_increment, 1407 `FK_glpi_cartridges_type` int(11) NOT NULL default '0', 1408 `FK_glpi_printers` int(11) NOT NULL default '0', 1409 `date_in` date default NULL, 1410 `date_use` date default NULL, 1411 `date_out` date default NULL, 1412 `pages` int(11) NOT NULL default '0', 1413 PRIMARY KEY (`ID`), 1414 KEY(`FK_glpi_cartridges_type`), 1415 KEY(`FK_glpi_printers`) 1416 ) TYPE=MyISAM;"; 1417 $db->query($query) or die("0.5 CREATE TABLE glpi_cartridges ".$lang["update"][90].$db->error()); 1418 1419 $query= "CREATE TABLE `glpi_cartridges_type` ( 1420 `ID` int(11) NOT NULL auto_increment, 1421 `name` varchar(255) NOT NULL default '', 1422 `ref` varchar(255) NOT NULL default '', 1423 `location` int(11) NOT NULL default '0', 1424 `type` tinyint(4) NOT NULL default '0', 1425 `FK_glpi_enterprise` int(11) NOT NULL default '0', 1426 `tech_num` int(11) default '0', 1427 `deleted` enum('Y','N') NOT NULL default 'N', 1428 `comments` text NOT NULL, 1429 PRIMARY KEY (`ID`), 1430 KEY(`FK_glpi_enterprise`), 1431 KEY(`tech_num`), 1432 KEY(`deleted`) 1433 ) TYPE=MyISAM;"; 1434 $db->query($query) or die("0.5 CREATE TABLE glpi_cartridges_type ".$lang["update"][90].$db->error()); 1435 1436 $query= "CREATE TABLE `glpi_cartridges_assoc` ( 1437 `ID` int(11) NOT NULL auto_increment, 1438 `FK_glpi_cartridges_type` int(11) NOT NULL default '0', 1439 `FK_glpi_type_printer` int(11) NOT NULL default '0', 1440 PRIMARY KEY (`ID`), 1441 UNIQUE KEY `FK_glpi_type_printer` (`FK_glpi_type_printer`,`FK_glpi_cartridges_type`), 1442 KEY(`FK_glpi_cartridges_type`), 1443 KEY(`FK_glpi_type_printer`) 1444 ) TYPE=MyISAM;"; 1445 $db->query($query) or die("0.5 CREATE TABLE glpi_cartridges_assoc ".$lang["update"][90].$db->error()); 1446 } 1447 1448 //// DEBUT INSERTION PARTIE GESTION 1449 if(!TableExists("glpi_contracts")) { 1450 $query= "CREATE TABLE `glpi_contacts` ( 1451 `ID` int(11) NOT NULL auto_increment, 1452 `name` varchar(255) NOT NULL default '', 1453 `phone` varchar(30) NOT NULL default '', 1454 `phone2` varchar(30) NOT NULL default '', 1455 `fax` varchar(30) NOT NULL default '', 1456 `email` varchar(255) NOT NULL default '', 1457 `type` tinyint(4) NOT NULL default '1', 1458 `comments` text NOT NULL, 1459 `deleted` enum('Y','N') NOT NULL default 'N', 1460 PRIMARY KEY (`ID`) 1461 ) TYPE=MyISAM;"; 1462 $db->query($query) or die("0.5 CREATE TABLE glpi_contact ".$lang["update"][90].$db->error()); 1463 1464 $query = " CREATE TABLE `glpi_dropdown_enttype` (`ID` INT NOT NULL AUTO_INCREMENT ,`name` VARCHAR(255) NOT NULL ,PRIMARY KEY (`ID`))"; 1465 $db->query($query) or die("23 ".$lang["update"][90].$db->error()); 1466 1467 1468 $query= "CREATE TABLE `glpi_contact_enterprise` ( 1469 `ID` int(11) NOT NULL auto_increment, 1470 `FK_enterprise` int(11) NOT NULL default '0', 1471 `FK_contact` int(11) NOT NULL default '0', 1472 PRIMARY KEY (`ID`), 1473 UNIQUE KEY `FK_enterprise` (`FK_enterprise`,`FK_contact`), 1474 KEY(`FK_enterprise`), 1475 KEY(`FK_contact`) 1476 ) TYPE=MyISAM;"; 1477 $db->query($query) or die("0.5 CREATE TABLE glpi_contact_enterprise ".$lang["update"][90].$db->error()); 1478 1479 $query= "CREATE TABLE `glpi_contracts` ( 1480 `ID` int(11) NOT NULL auto_increment, 1481 `name` varchar(255) NOT NULL default '', 1482 `num` varchar(255) NOT NULL default '', 1483 `cost` float NOT NULL default '0', 1484 `contract_type` int(11) NOT NULL default '0', 1485 `begin_date` date default NULL, 1486 `duration` tinyint(4) NOT NULL default '0', 1487 `notice` tinyint(4) NOT NULL default '0', 1488 `periodicity` tinyint(4) NOT NULL default '0', 1489 `facturation` tinyint(4) NOT NULL default '0', 1490 `bill_type` int(11) NOT NULL default '0', 1491 `comments` text NOT NULL, 1492 `compta_num` varchar(255) NOT NULL default '', 1493 `deleted` enum('Y','N') NOT NULL default 'N', 1494 `week_begin_hour` time NOT NULL default '00:00:00', 1495 `week_end_hour` time NOT NULL default '00:00:00', 1496 `saturday_begin_hour` time NOT NULL default '00:00:00', 1497 `saturday_end_hour` time NOT NULL default '00:00:00', 1498 `saturday` enum('Y','N') NOT NULL default 'N', 1499 `monday_begin_hour` time NOT NULL default '00:00:00', 1500 `monday_end_hour` time NOT NULL default '00:00:00', 1501 `monday` enum('Y','N') NOT NULL default 'N', 1502 PRIMARY KEY (`ID`), 1503 KEY `contract_type` (`contract_type`), 1504 KEY `begin_date` (`begin_date`), 1505 KEY `bill_type` (`bill_type`) 1506 ) TYPE=MyISAM;"; 1507 $db->query($query) or die("0.5 CREATE TABLE glpi_contract ".$lang["update"][90].$db->error()); 1508 1509 $query= "CREATE TABLE `glpi_contract_device` ( 1510 `ID` int(11) NOT NULL auto_increment, 1511 `FK_contract` int(11) NOT NULL default '0', 1512 `FK_device` int(11) NOT NULL default '0', 1513 `device_type` tinyint(4) NOT NULL default '0', 1514 PRIMARY KEY (`ID`), 1515 UNIQUE KEY `FK_contract` (`FK_contract`,`FK_device`,`device_type`), 1516 KEY (`FK_contract`), 1517 KEY (`FK_device`,`device_type`) 1518 ) TYPE=MyISAM;"; 1519 $db->query($query) or die("0.5 CREATE TABLE glpi_contract_device ".$lang["update"][90].$db->error()); 1520 1521 $query= "CREATE TABLE `glpi_contract_enterprise` ( 1522 `ID` int(11) NOT NULL auto_increment, 1523 `FK_enterprise` int(11) NOT NULL default '0', 1524 `FK_contract` int(11) NOT NULL default '0', 1525 PRIMARY KEY (`ID`), 1526 UNIQUE KEY `FK_enterprise` (`FK_enterprise`,`FK_contract`), 1527 KEY (`FK_enterprise`), 1528 KEY (`FK_contract`) 1529 ) TYPE=MyISAM;"; 1530 $db->query($query) or die("0.5 CREATE TABLE glpi_contrat_enterprise ".$lang["update"][90].$db->error()); 1531 1532 $query= "CREATE TABLE `glpi_infocoms` ( 1533 `ID` int(11) NOT NULL auto_increment, 1534 `FK_device` int(11) NOT NULL default '0', 1535 `device_type` tinyint(4) NOT NULL default '0', 1536 `buy_date` date NOT NULL default '0000-00-00', 1537 `use_date` date NOT NULL default '0000-00-00', 1538 `warranty_duration` tinyint(4) NOT NULL default '0', 1539 `warranty_info` varchar(255) NOT NULL default '', 1540 `FK_enterprise` int(11) default NULL, 1541 `num_commande` varchar(50) NOT NULL default '', 1542 `bon_livraison` varchar(50) NOT NULL default '', 1543 `num_immo` varchar(50) NOT NULL default '', 1544 `value` float NOT NULL default '0', 1545 `warranty_value` float default NULL, 1546 `amort_time` tinyint(4) NOT NULL default '0', 1547 `amort_type` varchar(20) NOT NULL default '', 1548 `amort_coeff` float NOT NULL default '0', 1549 `comments` text NOT NULL, 1550 PRIMARY KEY (`ID`), 1551 UNIQUE KEY `FK_device` (`FK_device`,`device_type`), 1552 KEY `FK_enterprise` (`FK_enterprise`), 1553 KEY `buy_date` (`buy_date`) 1554 ) TYPE=MyISAM;"; 1555 $db->query($query) or die("0.5 CREATE TABLE glpi_infocom ".$lang["update"][90].$db->error()); 1556 1557 ///// Move warranty infos from item to infocoms. 1558 1559 function date_diff($from, $to) { 1560 $from=strtotime($from); 1561 $to=strtotime($to); 1562 if ($from > $to) { 1563 $t = $to; 1564 $to = $from; 1565 $from = $t; 1566 } 1567 1568 $year1 = date("Y", $from); 1569 $year2 = date("Y", $to); 1570 $month1 = date("n", $from); 1571 $month2 = date("n", $to); 1572 1573 if ($month2 < $month1) { 1574 $month2 += 12; 1575 $year2 --; 1576 } 1577 $months = $month2 - $month1; 1578 $years = $year2 - $year1; 1579 return (12*$years+$months); 1580 } 1581 1582 function updateMaintenanceInfos($table,$type,$ID){ 1583 global $db; 1584 $elements=array(); 1585 $query="SELECT ID from $table WHERE maintenance='1'"; 1586 $result=$db->query($query); 1587 while ($data=$db->fetch_array($result)){ 1588 $query_insert="INSERT INTO glpi_contract_device (FK_contract,FK_device,device_type) VALUES ('$ID','".$data["ID"]."','$type')"; 1589 $result_insert=$db->query($query_insert) or die("0.5 insert for update maintenance ".$lang["update"][90].$db->error()); 1590 } 1591 mysql_free_result($result); 1592 1593 $query_drop = "ALTER TABLE `$table` DROP `maintenance`"; 1594 $result_drop=$db->query($query_drop) or die("0.5 drop for update maintenance ".$lang["update"][90].$db->error()); 1595 1596 } 1597 1598 function updateWarrantyInfos($table,$type){ 1599 global $db; 1600 $elements=array(); 1601 $query="SELECT ID,achat_date,date_fin_garantie from $table ORDER BY achat_date,date_fin_garantie"; 1602 $result=$db->query($query) or die("0.5 select for update warranty ".$lang["update"][90].$db->error()); 1603 while ($data=$db->fetch_array($result)){ 1604 if (($data['achat_date']!="0000-00-00"&&!empty($data['achat_date']))||($data['date_fin_garantie']!="0000-00-00"&&!empty($data['date_fin_garantie']))){ 1605 $IDitem=$data['ID']; 1606 if ($data['achat_date']=="0000-00-00"&&!empty($data['achat_date'])) $achat_date=date("Y-m-d"); 1607 else $achat_date=$data['achat_date']; 1608 $duration=0; 1609 if ($data['date_fin_garantie']!="0000-00-00"&&!empty($data['date_fin_garantie'])) 1610 $duration=round(date_diff($achat_date,$data['date_fin_garantie']),2); 1611 $query_insert="INSERT INTO glpi_infocoms (device_type,FK_device,buy_date,warranty_duration) VALUES ('$type','$IDitem','".$achat_date."','$duration')"; 1612 $result_insert=$db->query($query_insert) or die("0.5 insert for update warranty ".$lang["update"][90].$db->error()); 1613 } 1614 } 1615 mysql_free_result($result); 1616 1617 $query_drop = "ALTER TABLE `$table` DROP `achat_date`"; 1618 $result_drop=$db->query($query_drop) or die("0.5 drop1 for update warranty ".$lang["update"][90].$db->error()); 1619 $query_drop = "ALTER TABLE `$table` DROP `date_fin_garantie`"; 1620 $result_drop=$db->query($query_drop) or die("0.5 drop2 for update warranty ".$lang["update"][90].$db->error()); 1621 1622 } 1623 function isMaintenanceUsed(){ 1624 global $db; 1625 $tables=array("glpi_computers","glpi_printers","glpi_monitors","glpi_peripherals","glpi_networking"); 1626 foreach ($tables as $key => $table){ 1627 $query="SELECT ID from $table WHERE maintenance='1';"; 1628 $result=$db->query($query) or die("0.5 find for update maintenance ".$lang["update"][90].$db->error()); 1629 if ($db->numrows($result)>0) return true; 1630 } 1631 return false; 1632 1633 } 1634 1635 function dropMaintenanceField(){ 1636 global $db; 1637 $tables=array("glpi_computers","glpi_printers","glpi_monitors","glpi_peripherals","glpi_networking"); 1638 foreach ($tables as $key => $table){ 1639 $query="ALTER TABLE `$table` DROP `maintenance`"; 1640 $result=$db->query($query) or die("0.5 alter for update maintenance ".$lang["update"][90].$db->error()); 1641 } 1642 } 1643 1644 1645 // Update Warranty Infos 1646 updateWarrantyInfos("glpi_computers",COMPUTER_TYPE); 1647 updateWarrantyInfos("glpi_printers",PRINTER_TYPE); 1648 updateWarrantyInfos("glpi_networking",NETWORKING_TYPE); 1649 updateWarrantyInfos("glpi_monitors",MONITOR_TYPE); 1650 updateWarrantyInfos("glpi_peripherals",PERIPHERAL_TYPE); 1651 1652 // Update Maintenance Infos 1653 if (isMaintenanceUsed()){ 1654 1655 $query="INSERT INTO `glpi_contracts` VALUES (1, 'Maintenance', '', '0', 5, '2005-01-01', 120, 0, 0, 0, 0, '', '', 'N', '00:00:00', '00:00:00', '00:00:00', '00:00:00', 'N', '00:00:00', '00:00:00', 'N');"; 1656 $result=$db->query($query) or die("0.5 insert_init for update maintenace ".$lang["update"][90].$db->error()); 1657 1658 if ($result){ 1659 $query="SELECT ID FROM glpi_contracts;"; 1660 $result=$db->query($query) or die("0.5 select_init for update maintenace ".$lang["update"][90].$db->error()); 1661 if ($result){ 1662 $data=$db->fetch_array($result); 1663 $IDcontract=$data["ID"]; 1664 updateMaintenanceInfos("glpi_computers",COMPUTER_TYPE,$IDcontract); 1665 updateMaintenanceInfos("glpi_printers",PRINTER_TYPE,$IDcontract); 1666 updateMaintenanceInfos("glpi_networking",NETWORKING_TYPE,$IDcontract); 1667 updateMaintenanceInfos("glpi_monitors",MONITOR_TYPE,$IDcontract); 1668 updateMaintenanceInfos("glpi_peripherals",PERIPHERAL_TYPE,$IDcontract); 1669 } 1670 } 1671 } else dropMaintenanceField(); 1672 1673 } 1674 //// FIN INSERTION PARTIE GESTION 1675 1676 // Merge de l'OS et de la version 1677 if(FieldExists("glpi_computers","osver")) { 1678 // R�up�ation des couples existants 1679 $query="SELECT DISTINCT glpi_computers.os AS ID , glpi_computers.osver AS VERS, glpi_dropdown_os.name as NAME FROM glpi_computers 1680 LEFT JOIN glpi_dropdown_os ON glpi_dropdown_os.ID=glpi_computers.os ORDER BY glpi_computers.os, glpi_computers.osver"; 1681 $result=$db->query($query) or die("0.5 select for update OS ".$lang["update"][90].$db->error()); 1682 $valeur=array(); 1683 $curros=-1; 1684 $currvers="-------------------------"; 1685 while ($data=$db->fetch_array($result)){ 1686 // Nouvel OS -> update de l'element de dropdown 1687 if ($data["ID"]!=$curros){ 1688 $curros=$data["ID"]; 1689 1690 if (!empty($data["VERS"])){ 1691 $query_update="UPDATE glpi_dropdown_os SET name='".$data["NAME"]." - ".$data["VERS"]."' WHERE ID='".$data["ID"]."'"; 1692 $db->query($query_update) or die("0.5 update for update OS ".$lang["update"][90].$db->error()); 1693 } 1694 1695 } else { // OS deja mis a jour -> creation d'un nouvel OS et mise a jour des elements 1696 $newname=$data["NAME"]." - ".$data["VERS"]; 1697 $query_insert="INSERT INTO glpi_dropdown_os (name) VALUES ('$newname');"; 1698 $db->query($query_insert) or die("0.5 insert for update OS ".$lang["update"][90].$db->error()); 1699 $query_select="SELECT ID from glpi_dropdown_os WHERE name = '$newname';"; 1700 $res=$db->query($query_select) or die("0.5 select for update OS ".$lang["update"][90].$db->error()); 1701 if ($db->numrows($res)==1){ 1702 $query_update="UPDATE glpi_computers SET os='".$db->result($res,0,"ID")."' WHERE os='".$data["ID"]."' AND osver='".$data["VERS"]."'"; 1703 $db->query($query_update) or die("0.5 update2 for update OS ".$lang["update"][90].$db->error()); 1704 } 1705 1706 } 1707 } 1708 mysql_free_result($result); 1709 $query_alter= "ALTER TABLE `glpi_computers` DROP `osver` "; 1710 $db->query($query_alter) or die("0.5 alter for update OS ".$lang["update"][90].$db->error()); 1711 } 1712 1713 // Ajout Fabriquant computer 1714 if(!FieldExists("glpi_computers","FK_glpi_enterprise")) { 1715 1716 $query = "ALTER TABLE `glpi_computers` ADD `FK_glpi_enterprise` INT(11) DEFAULT '0' NOT NULL ;"; 1717 $db->query($query) or die("0.5 add field manufacturer ".$lang["update"][90].$db->error()); 1718 1719 1720 $query="ALTER TABLE `glpi_computers` ADD INDEX (`FK_glpi_enterprise`)" ; 1721 $db->query($query) or die("0.5 alter field manufacturer ".$lang["update"][90].$db->error()); 1722 1723 } 1724 1725 // Ajout Fabriquant printer 1726 if(!FieldExists("glpi_printers","FK_glpi_enterprise")) { 1727 1728 $query = "ALTER TABLE `glpi_printers` ADD `FK_glpi_enterprise` INT(11) DEFAULT '0' NOT NULL ;"; 1729 $db->query($query) or die("0.5 add field manufacturer ".$lang["update"][90].$db->error()); 1730 1731 $query="ALTER TABLE `glpi_printers` ADD INDEX (`FK_glpi_enterprise`)" ; 1732 $db->query($query) or die("0.5 alter field manufacturer ".$lang["update"][90].$db->error()); 1733 1734 1735 } 1736 1737 // Ajout Fabriquant networking 1738 if(!FieldExists("glpi_networking","FK_glpi_enterprise")) { 1739 1740 $query = "ALTER TABLE `glpi_networking` ADD `FK_glpi_enterprise` INT(11) DEFAULT '0' NOT NULL ;"; 1741 $db->query($query) or die("0.5 add field manufacturer ".$lang["update"][90].$db->error()); 1742 1743 $query="ALTER TABLE `glpi_networking` ADD INDEX (`FK_glpi_enterprise`)" ; 1744 $db->query($query) or die("0.5 alter field manufacturer ".$lang["update"][90].$db->error()); 1745 1746 1747 } 1748 1749 // Ajout Fabriquant monitor 1750 if(!FieldExists("glpi_monitors","FK_glpi_enterprise")) { 1751 1752 $query = "ALTER TABLE `glpi_monitors` ADD `FK_glpi_enterprise` INT(11) DEFAULT '0' NOT NULL ;"; 1753 $db->query($query) or die("0.5 add field manufacturer ".$lang["update"][90].$db->error()); 1754 1755 $query="ALTER TABLE `glpi_monitors` ADD INDEX (`FK_glpi_enterprise`)" ; 1756 $db->query($query) or die("0.5 alter field manufacturer ".$lang["update"][90].$db->error()); 1757 1758 1759 } 1760 1761 // Ajout Fabriquant software 1762 if(!FieldExists("glpi_software","FK_glpi_enterprise")) { 1763 1764 $query = "ALTER TABLE `glpi_software` ADD `FK_glpi_enterprise` INT(11) DEFAULT '0' NOT NULL ;"; 1765 $db->query($query) or die("0.5 add field manufacturer ".$lang["update"][90].$db->error()); 1766 1767 $query="ALTER TABLE `glpi_software` ADD INDEX (`FK_glpi_enterprise`)" ; 1768 $db->query($query) or die("0.5 alter field manufacturer ".$lang["update"][90].$db->error()); 1769 1770 1771 } 1772 1773 // Ajout Fabriquant peripheral 1774 if(!FieldExists("glpi_peripherals","FK_glpi_enterprise")) { 1775 1776 $query = "ALTER TABLE `glpi_peripherals` ADD `FK_glpi_enterprise` INT(11) DEFAULT '0' NOT NULL ;"; 1777 $db->query($query) or die("0.5 add field manufacturer ".$lang["update"][90].$db->error()); 1778 1779 $query="ALTER TABLE `glpi_peripherals` ADD INDEX (`FK_glpi_enterprise`)" ; 1780 $db->query($query) or die("0.5 alter field manufacturer ".$lang["update"][90].$db->error()); 1781 1782 1783 } 1784 1785 // Ajout deleted peripheral 1786 if(!FieldExists("glpi_peripherals","deleted")) { 1787 1788 $query = "ALTER TABLE `glpi_peripherals` ADD `deleted` ENUM('Y', 'N') DEFAULT 'N' NOT NULL ;"; 1789 $db->query($query) or die("0.5 add field deleted ".$lang["update"][90].$db->error()); 1790 1791 $query="ALTER TABLE `glpi_peripherals` ADD INDEX (`deleted`)" ; 1792 $db->query($query) or die("0.5 alter field deleted ".$lang["update"][90].$db->error()); 1793 1794 1795 } 1796 1797 // Ajout deleted software 1798 if(!FieldExists("glpi_software","deleted")) { 1799 1800 $query = "ALTER TABLE `glpi_software` ADD `deleted` ENUM('Y', 'N') DEFAULT 'N' NOT NULL ;"; 1801 $db->query($query) or die("0.5 add field deleted ".$lang["update"][90].$db->error()); 1802 1803 $query="ALTER TABLE `glpi_software` ADD INDEX (`deleted`)" ; 1804 $db->query($query) or die("0.5 alter field deleted ".$lang["update"][90].$db->error()); 1805 1806 1807 } 1808 1809 // Ajout deleted monitor 1810 if(!FieldExists("glpi_monitors","deleted")) { 1811 1812 $query = "ALTER TABLE `glpi_monitors` ADD `deleted` ENUM('Y', 'N') DEFAULT 'N' NOT NULL ;"; 1813 $db->query($query) or die("0.5 add field deleted ".$lang["update"][90].$db->error()); 1814 1815 $query="ALTER TABLE `glpi_monitors` ADD INDEX (`deleted`)" ; 1816 $db->query($query) or die("0.5 alter field deleted ".$lang["update"][90].$db->error()); 1817 1818 1819 } 1820 1821 // Ajout deleted networking 1822 if(!FieldExists("glpi_networking","deleted")) { 1823 1824 $query = "ALTER TABLE `glpi_networking` ADD `deleted` ENUM('Y', 'N') DEFAULT 'N' NOT NULL ;"; 1825 $db->query($query) or die("0.5 add field deleted ".$lang["update"][90].$db->error()); 1826 1827 $query="ALTER TABLE `glpi_networking` ADD INDEX (`deleted`)" ; 1828 $db->query($query) or die("0.5 alter field deleted ".$lang["update"][90].$db->error()); 1829 1830 1831 } 1832 // Ajout deleted printer 1833 if(!FieldExists("glpi_printers","deleted")) { 1834 1835 $query = "ALTER TABLE `glpi_printers` ADD `deleted` ENUM('Y', 'N') DEFAULT 'N' NOT NULL ;"; 1836 $db->query($query) or die("0.5 add field deleted ".$lang["update"][90].$db->error()); 1837 1838 $query="ALTER TABLE `glpi_printers` ADD INDEX (`deleted`)" ; 1839 $db->query($query) or die("0.5 alter field deleted ".$lang["update"][90].$db->error()); 1840 1841 1842 } 1843 // Ajout deleted computer 1844 if(!FieldExists("glpi_computers","deleted")) { 1845 1846 $query = "ALTER TABLE `glpi_computers` ADD `deleted` ENUM('Y', 'N') DEFAULT 'N' NOT NULL ;"; 1847 $db->query($query) or die("0.5 add field deleted ".$lang["update"][90].$db->error()); 1848 1849 $query="ALTER TABLE `glpi_computers` ADD INDEX (`deleted`)" ; 1850 $db->query($query) or die("0.5 alter field deleted ".$lang["update"][90].$db->error()); 1851 1852 1853 } 1854 1855 // Ajout template peripheral 1856 if(!FieldExists("glpi_peripherals","is_template")) { 1857 1858 $query = "ALTER TABLE `glpi_peripherals` ADD `is_template` ENUM('0', '1') DEFAULT '0' NOT NULL , ADD `tplname` VARCHAR(255) ;"; 1859 $db->query($query) or die("0.5 add field deleted ".$lang["update"][90].$db->error()); 1860 1861 $query="INSERT INTO glpi_peripherals (is_template,tplname) VALUES ('1','Blank Template')"; 1862 $db->query($query) or die("0.5 add blank template ".$lang["update"][90].$db->error()); 1863 1864 $query="ALTER TABLE `glpi_peripherals` ADD INDEX (`is_template`)" ; 1865 $db->query($query) or die("0.5 alter field is_template ".$lang["update"][90].$db->error()); 1866 1867 1868 } 1869 1870 // Ajout template software 1871 if(!FieldExists("glpi_software","is_template")) { 1872 1873 $query = "ALTER TABLE `glpi_software` ADD `is_template` ENUM('0', '1') DEFAULT '0' NOT NULL , ADD `tplname` VARCHAR(255) ;"; 1874 $db->query($query) or die("0.5 add field deleted ".$lang["update"][90].$db->error()); 1875 1876 $query="INSERT INTO glpi_software (is_template,tplname) VALUES ('1','Blank Template')"; 1877 $db->query($query) or die("0.5 add blank template ".$lang["update"][90].$db->error()); 1878 1879 $query="ALTER TABLE `glpi_software` ADD INDEX (`is_template`)" ; 1880 $db->query($query) or die("0.5 alter field is_template ".$lang["update"][90].$db->error()); 1881 1882 } 1883 1884 // Ajout template monitor 1885 if(!FieldExists("glpi_monitors","is_template")) { 1886 1887 $query = "ALTER TABLE `glpi_monitors` ADD `is_template` ENUM('0', '1') DEFAULT '0' NOT NULL , ADD `tplname` VARCHAR(255) ;"; 1888 $db->query($query) or die("0.5 add field deleted ".$lang["update"][90].$db->error()); 1889 1890 $query="INSERT INTO glpi_monitors (is_template,tplname) VALUES ('1','Blank Template')"; 1891 $db->query($query) or die("0.5 add blank template ".$lang["update"][90].$db->error()); 1892 1893 $query="ALTER TABLE `glpi_monitors` ADD INDEX (`is_template`)" ; 1894 $db->query($query) or die("0.5 alter field is_template ".$lang["update"][90].$db->error()); 1895 1896 1897 } 1898 1899 if(!isIndex("glpi_computers", "is_template")) { 1900 $query = "ALTER TABLE `glpi_computers` ADD INDEX (`is_template`) "; 1901 $db->query($query) or die("5 ".$lang["update"][90].$db->error()); 1902 } 1903 1904 // Ajout template networking 1905 if(!FieldExists("glpi_networking","is_template")) {