| [ 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")) { 1906 1907 $query = "ALTER TABLE `glpi_networking` ADD `is_template` ENUM('0', '1') DEFAULT '0' NOT NULL , ADD `tplname` VARCHAR(255) ;"; 1908 $db->query($query) or die("0.5 add field deleted ".$lang["update"][90].$db->error()); 1909 1910 $query="INSERT INTO glpi_networking (is_template,tplname) VALUES ('1','Blank Template')"; 1911 $db->query($query) or die("0.5 add blank template ".$lang["update"][90].$db->error()); 1912 1913 $query="ALTER TABLE `glpi_networking` ADD INDEX (`is_template`)" ; 1914 $db->query($query) or die("0.5 alter field is_template ".$lang["update"][90].$db->error()); 1915 1916 1917 } 1918 // Ajout template printer 1919 if(!FieldExists("glpi_printers","is_template")) { 1920 1921 $query = "ALTER TABLE `glpi_printers` ADD `is_template` ENUM('0', '1') DEFAULT '0' NOT NULL , ADD `tplname` VARCHAR(255) ;"; 1922 $db->query($query) or die("0.5 add field deleted ".$lang["update"][90].$db->error()); 1923 1924 $query="INSERT INTO glpi_printers (is_template,tplname) VALUES ('1','Blank Template')"; 1925 $db->query($query) or die("0.5 add blank template ".$lang["update"][90].$db->error()); 1926 1927 $query="ALTER TABLE `glpi_printers` ADD INDEX (`is_template`)" ; 1928 $db->query($query) or die("0.5 alter field is_template ".$lang["update"][90].$db->error()); 1929 1930 1931 1932 } 1933 // Ajout date_mod 1934 if(!FieldExists("glpi_printers","date_mod")) { 1935 $query = "ALTER TABLE `glpi_printers` ADD `date_mod` DATETIME DEFAULT NULL"; 1936 $db->query($query) or die("Error : ".$query." ".$db->error()); 1937 1938 $query="ALTER TABLE `glpi_printers` ADD INDEX (`date_mod`)" ; 1939 $db->query($query) or die("0.5 alter field date_mod ".$lang["update"][90].$db->error()); 1940 1941 } 1942 1943 if(!isIndex("glpi_computers", "date_mod")) { 1944 $query = "ALTER TABLE `glpi_computers` ADD INDEX (`date_mod`) "; 1945 $db->query($query) or die("5 ".$lang["update"][90].$db->error()); 1946 } 1947 1948 // Ajout date_mod 1949 if(!FieldExists("glpi_monitors","date_mod")) { 1950 $query = "ALTER TABLE `glpi_monitors` ADD `date_mod` DATETIME DEFAULT NULL"; 1951 $db->query($query) or die("Error : ".$query." ".$db->error()); 1952 1953 $query="ALTER TABLE `glpi_monitors` ADD INDEX (`date_mod`)" ; 1954 $db->query($query) or die("0.5 alter field date_mod ".$lang["update"][90].$db->error()); 1955 } 1956 1957 // Ajout date_mod 1958 if(!FieldExists("glpi_software","date_mod")) { 1959 $query = "ALTER TABLE `glpi_software` ADD `date_mod` DATETIME DEFAULT NULL"; 1960 $db->query($query) or die("Error : ".$query." ".$db->error()); 1961 1962 $query="ALTER TABLE `glpi_software` ADD INDEX (`date_mod`)" ; 1963 $db->query($query) or die("0.5 alter field date_mod ".$lang["update"][90].$db->error()); 1964 } 1965 1966 // Ajout date_mod 1967 if(!FieldExists("glpi_networking","date_mod")) { 1968 $query = "ALTER TABLE `glpi_networking` ADD `date_mod` DATETIME DEFAULT NULL"; 1969 $db->query($query) or die("Error : ".$query." ".$db->error()); 1970 1971 $query="ALTER TABLE `glpi_networking` ADD INDEX (`date_mod`)" ; 1972 $db->query($query) or die("0.5 alter field date_mod ".$lang["update"][90].$db->error()); 1973 } 1974 1975 // Ajout tech_num 1976 if(!FieldExists("glpi_computers","tech_num")) { 1977 $query = "ALTER TABLE `glpi_computers` ADD `tech_num` int(11) NOT NULL default '0' AFTER `contact_num`"; 1978 $db->query($query) or die("Error : ".$query." ".$db->error()); 1979 1980 $query="ALTER TABLE `glpi_computers` ADD INDEX (`tech_num`)" ; 1981 $db->query($query) or die("0.5 alter field tech_num ".$lang["update"][90].$db->error()); 1982 } 1983 // Ajout tech_num 1984 if(!FieldExists("glpi_networking","tech_num")) { 1985 $query = "ALTER TABLE `glpi_networking` ADD `tech_num` int(11) NOT NULL default '0' AFTER `contact_num`"; 1986 $db->query($query) or die("Error : ".$query." ".$db->error()); 1987 1988 $query="ALTER TABLE `glpi_networking` ADD INDEX (`tech_num`)" ; 1989 $db->query($query) or die("0.5 alter field tech_num ".$lang["update"][90].$db->error()); 1990 } 1991 // Ajout tech_num 1992 if(!FieldExists("glpi_printers","tech_num")) { 1993 $query = "ALTER TABLE `glpi_printers` ADD `tech_num` int(11) NOT NULL default '0' AFTER `contact_num`"; 1994 $db->query($query) or die("Error : ".$query." ".$db->error()); 1995 1996 $query="ALTER TABLE `glpi_printers` ADD INDEX (`tech_num`)" ; 1997 $db->query($query) or die("0.5 alter field tech_num ".$lang["update"][90].$db->error()); 1998 } 1999 2000 // Ajout tech_num 2001 if(!FieldExists("glpi_monitors","tech_num")) { 2002 $query = "ALTER TABLE `glpi_monitors` ADD `tech_num` int(11) NOT NULL default '0' AFTER `contact_num`"; 2003 $db->query($query) or die("Error : ".$query." ".$db->error()); 2004 2005 $query="ALTER TABLE `glpi_monitors` ADD INDEX (`tech_num`)" ; 2006 $db->query($query) or die("0.5 alter field tech_num ".$lang["update"][90].$db->error()); 2007 } 2008 2009 // Ajout tech_num 2010 if(!FieldExists("glpi_software","tech_num")) { 2011 $query = "ALTER TABLE `glpi_software` ADD `tech_num` int(11) NOT NULL default '0' AFTER `location`"; 2012 $db->query($query) or die("Error : ".$query." ".$db->error()); 2013 2014 $query="ALTER TABLE `glpi_software` ADD INDEX (`tech_num`)" ; 2015 $db->query($query) or die("0.5 alter field tech_num ".$lang["update"][90].$db->error()); 2016 } 2017 2018 // Ajout tech_num 2019 if(!FieldExists("glpi_peripherals","tech_num")) { 2020 $query = "ALTER TABLE `glpi_peripherals` ADD `tech_num` int(11) NOT NULL default '0' AFTER `contact_num`"; 2021 $db->query($query) or die("Error : ".$query." ".$db->error()); 2022 2023 $query="ALTER TABLE `glpi_peripherals` ADD INDEX (`tech_num`)" ; 2024 $db->query($query) or die("0.5 alter field tech_num ".$lang["update"][90].$db->error()); 2025 } 2026 2027 // Ajout tech_num 2028 if(!FieldExists("glpi_software","tech_num")) { 2029 $query = "ALTER TABLE `glpi_software` ADD `tech_num` int(11) NOT NULL default '0'"; 2030 $db->query($query) or die("Error : ".$query." ".$db->error()); 2031 2032 $query="ALTER TABLE `glpi_software` ADD INDEX (`tech_num`)" ; 2033 $db->query($query) or die("0.5 alter field tech_num ".$lang["update"][90].$db->error()); 2034 } 2035 2036 // Ajout tech_num 2037 if(!TableExists("glpi_type_docs")) { 2038 2039 $query = "CREATE TABLE glpi_type_docs ( 2040 ID int(11) NOT NULL auto_increment, 2041 name varchar(255) NOT NULL default '', 2042 ext varchar(10) NOT NULL default '', 2043 icon varchar(255) NOT NULL default '', 2044 mime varchar(100) NOT NULL default '', 2045 upload enum('Y','N') NOT NULL default 'Y', 2046 date_mod datetime default NULL, 2047 PRIMARY KEY (ID), 2048 UNIQUE KEY extension (ext), 2049 KEY (upload) 2050 ) TYPE=MyISAM;"; 2051 2052 $db->query($query) or die("Error creating table typedoc ".$query." ".$db->error()); 2053 2054 2055 2056 $query = "INSERT INTO glpi_type_docs (ID, name, ext, icon, mime, upload, date_mod) VALUES (1, 'JPEG', 'jpg', 'jpg-dist.png', '', 'Y', '2004-12-13 19:47:21'), 2057 (2, 'PNG', 'png', 'png-dist.png', '', 'Y', '2004-12-13 19:47:21'), 2058 (3, 'GIF', 'gif', 'gif-dist.png', '', 'Y', '2004-12-13 19:47:21'), 2059 (4, 'BMP', 'bmp', 'bmp-dist.png', '', 'Y', '2004-12-13 19:47:21'), 2060 (5, 'Photoshop', 'psd', 'psd-dist.png', '', 'Y', '2004-12-13 19:47:21'), 2061 (6, 'TIFF', 'tif', 'tif-dist.png', '', 'Y', '2004-12-13 19:47:21'), 2062 (7, 'AIFF', 'aiff', 'aiff-dist.png', '', 'Y', '2004-12-13 19:47:21'), 2063 (8, 'Windows Media', 'asf', 'asf-dist.png', '', 'Y', '2004-12-13 19:47:21'), 2064 (9, 'Windows Media', 'avi', 'avi-dist.png', '', 'Y', '2004-12-13 19:47:21'), 2065 (44, 'C source', 'c', '', '', 'Y', '2004-12-13 19:47:22'), 2066 (27, 'RealAudio', 'rm', 'rm-dist.png', '', 'Y', '2004-12-13 19:47:21'), 2067 (16, 'Midi', 'mid', 'mid-dist.png', '', 'Y', '2004-12-13 19:47:21'), 2068 (17, 'QuickTime', 'mov', 'mov-dist.png', '', 'Y', '2004-12-13 19:47:21'), 2069 (18, 'MP3', 'mp3', 'mp3-dist.png', '', 'Y', '2004-12-13 19:47:21'), 2070 (19, 'MPEG', 'mpg', 'mpg-dist.png', '', 'Y', '2004-12-13 19:47:21'), 2071 (20, 'Ogg Vorbis', 'ogg', 'ogg-dist.png', '', 'Y', '2004-12-13 19:47:21'), 2072 (24, 'QuickTime', 'qt', 'qt-dist.png', '', 'Y', '2004-12-13 19:47:21'), 2073 (10, 'BZip', 'bz2', 'bz2-dist.png', '', 'Y', '2004-12-13 19:47:21'), 2074 (25, 'RealAudio', 'ra', 'ra-dist.png', '', 'Y', '2004-12-13 19:47:21'), 2075 (26, 'RealAudio', 'ram', 'ram-dist.png', '', 'Y', '2004-12-13 19:47:21'), 2076 (11, 'Word', 'doc', 'doc-dist.png', '', 'Y', '2004-12-13 19:47:21'), 2077 (12, 'DjVu', 'djvu', '', '', 'Y', '2004-12-13 19:47:21'), 2078 (42, 'MNG', 'mng', '', '', 'Y', '2004-12-13 19:47:22'), 2079 (13, 'PostScript', 'eps', 'ps-dist.png', '', 'Y', '2004-12-13 19:47:21'), 2080 (14, 'GZ', 'gz', 'gz-dist.png', '', 'Y', '2004-12-13 19:47:21'), 2081 (37, 'WAV', 'wav', 'wav-dist.png', '', 'Y', '2004-12-13 19:47:22'), 2082 (15, 'HTML', 'html', 'html-dist.png', '', 'Y', '2004-12-13 19:47:21'), 2083 (34, 'Flash', 'swf', '', '', 'Y', '2004-12-13 19:47:22'), 2084 (21, 'PDF', 'pdf', 'pdf-dist.png', '', 'Y', '2004-12-13 19:47:21'), 2085 (22, 'PowerPoint', 'ppt', 'ppt-dist.png', '', 'Y', '2004-12-13 19:47:21'), 2086 (23, 'PostScript', 'ps', 'ps-dist.png', '', 'Y', '2004-12-13 19:47:21'), 2087 (40, 'Windows Media', 'wmv', '', '', 'Y', '2004-12-13 19:47:22'), 2088 (28, 'RTF', 'rtf', 'rtf-dist.png', '', 'Y', '2004-12-13 19:47:21'), 2089 (29, 'StarOffice', 'sdd', 'sdd-dist.png', '', 'Y', '2004-12-13 19:47:22'), 2090 (30, 'StarOffice', 'sdw', 'sdw-dist.png', '', 'Y', '2004-12-13 19:47:22'), 2091 (31, 'Stuffit', 'sit', 'sit-dist.png', '', 'Y', '2004-12-13 19:47:22'), 2092 (43, 'Adobe Illustrator', 'ai', 'ai-dist.png', '', 'Y', '2004-12-13 19:47:22'), 2093 (32, 'OpenOffice Impress', 'sxi', 'sxi-dist.png', '', 'Y', '2004-12-13 19:47:22'), 2094 (33, 'OpenOffice', 'sxw', 'sxw-dist.png', '', 'Y', '2004-12-13 19:47:22'), 2095 (46, 'DVI', 'dvi', 'dvi-dist.png', '', 'Y', '2004-12-13 19:47:22'), 2096 (35, 'TGZ', 'tgz', 'tgz-dist.png', '', 'Y', '2004-12-13 19:47:22'), 2097 (36, 'texte', 'txt', 'txt-dist.png', '', 'Y', '2004-12-13 19:47:22'), 2098 (49, 'RedHat/Mandrake/SuSE', 'rpm', 'rpm-dist.png', '', 'Y', '2004-12-13 19:47:22'), 2099 (38, 'Excel', 'xls', 'xls-dist.png', '', 'Y', '2004-12-13 19:47:22'), 2100 (39, 'XML', 'xml', 'xml-dist.png', '', 'Y', '2004-12-13 19:47:22'), 2101 (41, 'Zip', 'zip', 'zip-dist.png', '', 'Y', '2004-12-13 19:47:22'), 2102 (45, 'Debian', 'deb', 'deb-dist.png', '', 'Y', '2004-12-13 19:47:22'), 2103 (47, 'C header', 'h', '', '', 'Y', '2004-12-13 19:47:22'), 2104 (48, 'Pascal', 'pas', '', '', 'Y', '2004-12-13 19:47:22'), 2105 (50, 'OpenOffice Calc', 'sxc', 'sxc-dist.png', '', 'Y', '2004-12-13 19:47:22'), 2106 (51, 'LaTeX', 'tex', 'tex-dist.png', '', 'Y', '2004-12-13 19:47:22'), 2107 (52, 'GIMP multi-layer', 'xcf', 'xcf-dist.png', '', 'Y', '2004-12-13 19:47:22'), 2108 (53, 'JPEG', 'jpeg', 'jpg-dist.png', '', 'Y', '2005-03-07 22:23:17');"; 2109 2110 2111 2112 2113 2114 2115 $db->query($query) or die("Error inserting elements in table typedoc ".$query." ".$db->error()); 2116 2117 } 2118 2119 if(!TableExists("glpi_docs")) { 2120 2121 $query = "CREATE TABLE glpi_docs ( 2122 ID int(11) NOT NULL auto_increment, 2123 name varchar(255) NOT NULL default '', 2124 filename varchar(255) NOT NULL default '', 2125 rubrique int(11) NOT NULL default '0', 2126 mime varchar(30) NOT NULL default '', 2127 date_mod datetime NOT NULL default '0000-00-00 00:00:00', 2128 comment text NOT NULL, 2129 deleted enum('Y','N') NOT NULL default 'N', 2130 PRIMARY KEY (ID), 2131 KEY rubrique (rubrique), 2132 KEY deleted (deleted), 2133 KEY date_mod (date_mod) 2134 ) TYPE=MyISAM;"; 2135 2136 $db->query($query) or die("Error creating table docs ".$query." ".$db->error()); 2137 } 2138 2139 if(!TableExists("glpi_doc_device")) { 2140 2141 $query = "CREATE TABLE glpi_doc_device ( 2142 ID int(11) NOT NULL auto_increment, 2143 FK_doc int(11) NOT NULL default '0', 2144 FK_device int(11) NOT NULL default '0', 2145 device_type tinyint(4) NOT NULL default '0', 2146 PRIMARY KEY (ID), 2147 UNIQUE KEY FK_doc (FK_doc,FK_device,device_type), 2148 KEY FK_doc_2 (FK_doc), 2149 KEY FK_device (FK_device,device_type) 2150 ) TYPE=MyISAM;"; 2151 2152 $db->query($query) or die("Error creating table docs ".$query." ".$db->error()); 2153 } 2154 2155 if(!TableExists("glpi_dropdown_rubdocs")) { 2156 2157 $query = "CREATE TABLE glpi_dropdown_rubdocs ( 2158 ID int(11) NOT NULL auto_increment, 2159 name varchar(255) default NULL, 2160 PRIMARY KEY (ID) 2161 ) TYPE=MyISAM;"; 2162 $db->query($query) or die("Error creating table docs ".$query." ".$db->error()); 2163 } 2164 2165 if(!isIndex("glpi_contacts", "deleted")) { 2166 $query = "ALTER TABLE `glpi_contacts` ADD INDEX `deleted` (`deleted`) "; 2167 $db->query($query) or die("0.5 alter field deleted".$lang["update"][90].$db->error()); 2168 } 2169 2170 if(!isIndex("glpi_contacts", "type")) { 2171 $query = "ALTER TABLE `glpi_contacts` ADD INDEX `type` (`type`) "; 2172 $db->query($query) or die("0.5 alter field type ".$lang["update"][90].$db->error()); 2173 } 2174 2175 if(!isIndex("glpi_event_log", "itemtype")) { 2176 $query = "ALTER TABLE `glpi_event_log` ADD INDEX (`itemtype`) "; 2177 $db->query($query) or die("0.5 alter field itemtype ".$lang["update"][90].$db->error()); 2178 } 2179 2180 if(!isIndex("glpi_followups", "date")) { 2181 $query = "ALTER TABLE `glpi_followups` ADD INDEX (`date`) "; 2182 $db->query($query) or die("0.5 alter field date ".$lang["update"][90].$db->error()); 2183 } 2184 2185 if(!isIndex("glpi_tracking", "category")) { 2186 $query = "ALTER TABLE `glpi_tracking` ADD INDEX (`category`) "; 2187 $db->query($query) or die("0.5 alter field category ".$lang["update"][90].$db->error()); 2188 } 2189 2190 if(!FieldExists("glpi_config","date_fiscale")) { 2191 $query = "ALTER TABLE `glpi_config` ADD `date_fiscale` date NOT NULL default '2005-12-31'"; 2192 $db->query($query) or die("0.5 add field date_fiscale ".$lang["update"][90].$db->error()); 2193 } 2194 2195 if(!FieldExists("glpi_networking","ifmac")) { 2196 $query = "ALTER TABLE `glpi_networking` ADD `ifmac` char(30) NOT NULL default ''"; 2197 $db->query($query) or die("0.5 add field ifmac ".$lang["update"][90].$db->error()); 2198 } 2199 2200 if(!FieldExists("glpi_networking","ifaddr")) { 2201 $query = "ALTER TABLE `glpi_networking` ADD `ifaddr` char(30) NOT NULL default ''"; 2202 $db->query($query) or die("0.5 add field ifaddr ".$lang["update"][90].$db->error()); 2203 } 2204 2205 if(!TableExists("glpi_repair_item")) { 2206 2207 $query = "CREATE TABLE glpi_repair_item ( 2208 ID int(11) NOT NULL auto_increment, 2209 device_type tinyint(4) NOT NULL default '0', 2210 id_device int(11) NOT NULL default '0', 2211 PRIMARY KEY (ID), 2212 KEY device_type (device_type), 2213 KEY device_type_2 (device_type,id_device) 2214 )TYPE=MyISAM;"; 2215 2216 $db->query($query) or die("0.5 create glpirepair_item table ".$lang["update"][90].$db->error()); 2217 } 2218 2219 if(TableExists("glpi_prefs")&&!FieldExists("glpi_prefs","username")) { 2220 2221 if(isIndex("glpi_prefs", "user")) { 2222 $query = " ALTER TABLE `glpi_prefs` DROP INDEX `user`;"; 2223 $db->query($query) or die("0.5 drop key user ".$lang["update"][90].$db->error()); 2224 } 2225 2226 $query = " ALTER TABLE `glpi_prefs` CHANGE `user` `username` VARCHAR(80) NOT NULL;"; 2227 $db->query($query) or die("0.5 change user to username ".$lang["update"][90].$db->error()); 2228 $query = "ALTER TABLE `glpi_prefs` ADD UNIQUE (`username`) "; 2229 $db->query($query) or die("0.5 alter field username ".$lang["update"][90].$db->error()); 2230 } 2231 2232 //Mise a jour 0.5 verification des prefs pour chaque user. 2233 if (TableExists("glpi_prefs")){ 2234 $query = "select ID, name from glpi_users"; 2235 $query2 = "select ID, username from glpi_prefs"; 2236 $result = $db->query($query); 2237 $result2 = $db->query($query2); 2238 if($db->numrows($result) != $db->numrows($result2)) { 2239 $users = array(); 2240 $i = 0; 2241 while ($line = $db->fetch_array($result2)) { 2242 $prefs[$i] = $line["username"]; 2243 $i++; 2244 } 2245 while($line = $db->fetch_array($result)) { 2246 if(!in_array($line["name"],$prefs)) { 2247 $query_insert = "INSERT INTO `glpi_prefs` (`username` , `tracking_order` , `language`) VALUES ('".$line["name"]."', 'no', 'french')"; 2248 $db->query($query_insert) or die("glpi maj prefs ".$lang["update"][90].$db->error()); 2249 } 2250 } 2251 } 2252 mysql_free_result($result); 2253 mysql_free_result($result2); 2254 } 2255 2256 2257 } 2258 2259 // Update from 0.5 to 0.51 2260 function update05to051(){ 2261 global $db,$lang; 2262 2263 echo "<p class='center'>Version 0.51 </p>"; 2264 2265 /*******************************GLPI 0.51***********************************************/ 2266 2267 if(!FieldExists("glpi_infocoms","facture")) { 2268 $query = "ALTER TABLE `glpi_infocoms` ADD `facture` char(255) NOT NULL default ''"; 2269 $db->query($query) or die("0.51 add field facture ".$lang["update"][90].$db->error()); 2270 } 2271 2272 if(!FieldExists("glpi_enterprises","fax")) { 2273 $query = "ALTER TABLE `glpi_enterprises` ADD `fax` char(255) NOT NULL default ''"; 2274 $db->query($query) or die("0.51 add field fax ".$lang["update"][90].$db->error()); 2275 } 2276 2277 if(!FieldExists("glpi_docs","link")) { 2278 $query = "ALTER TABLE `glpi_docs` ADD `link` char(255) NOT NULL default ''"; 2279 $db->query($query) or die("0.51 add field fax ".$lang["update"][90].$db->error()); 2280 } 2281 2282 if(!TableExists("glpi_dropdown_contact_type")) { 2283 2284 $query = "CREATE TABLE glpi_dropdown_contact_type ( 2285 ID int(11) NOT NULL auto_increment, 2286 name varchar(255) NOT NULL default '', 2287 PRIMARY KEY (ID) 2288 ) TYPE=MyISAM;"; 2289 2290 $db->query($query) or die("0.51 add table dropdown_contact_type ".$lang["update"][90].$db->error()); 2291 2292 $query="INSERT INTO glpi_dropdown_contact_type (name) VALUES ('".$lang["financial"][43]."');"; 2293 $db->query($query) or die("0.51 add entries to dropdown_contact_type ".$lang["update"][90].$db->error()); 2294 $query="INSERT INTO glpi_dropdown_contact_type (name) VALUES ('".$lang["financial"][42]."');"; 2295 $db->query($query) or die("0.51 add entries to dropdown_contact_type ".$lang["update"][90].$db->error()); 2296 } 2297 2298 if(!FieldExists("glpi_config","cartridges_alarm")) { 2299 $query = "ALTER TABLE `glpi_config` ADD `cartridges_alarm` int(11) NOT NULL default '10'"; 2300 $db->query($query) or die("0.51 add field cartridges_alarm ".$lang["update"][90].$db->error()); 2301 } 2302 2303 if(!TableExists("glpi_state_item")) { 2304 2305 $query = "ALTER TABLE `glpi_repair_item` RENAME `glpi_state_item`;"; 2306 $db->query($query) or die("0.51 alter glpi_state_item table name ".$lang["update"][90].$db->error()); 2307 2308 $query = "ALTER TABLE `glpi_state_item` ADD `state` INT DEFAULT '1';"; 2309 $db->query($query) or die("0.51 add state field ".$lang["update"][90].$db->error()); 2310 } 2311 2312 if(!TableExists("glpi_dropdown_state")) { 2313 $query = "CREATE TABLE glpi_dropdown_state ( 2314 ID int(11) NOT NULL auto_increment, 2315 name varchar(255) default NULL, 2316 PRIMARY KEY (ID) 2317 ) TYPE=MyISAM;"; 2318 $db->query($query) or die("0.51 add state field ".$lang["update"][90].$db->error()); 2319 2320 } 2321 2322 } 2323 2324 // Update from 0.51x to 0.6 2325 function update051to06(){ 2326 global $db,$lang; 2327 2328 echo "<p class='center'>Version 0.6 </p>"; 2329 2330 /*******************************GLPI 0.6***********************************************/ 2331 $query= "ALTER TABLE `glpi_tracking` CHANGE `category` `category` INT(11) DEFAULT '0' NOT NULL"; 2332 $db->query($query) or die("0.6 alter category tracking ".$lang["update"][90].$db->error()); 2333 2334 // state pour les template 2335 if(!FieldExists("glpi_state_item","is_template")) { 2336 $query= "ALTER TABLE `glpi_state_item` ADD `is_template` ENUM('0', '1') DEFAULT '0' NOT NULL ;"; 2337 $db->query($query) or die("0.6 add is_template in state_item ".$lang["update"][90].$db->error()); 2338 } 2339 2340 2341 if(!TableExists("glpi_dropdown_cartridge_type")) { 2342 2343 $query = "CREATE TABLE glpi_dropdown_cartridge_type ( 2344 ID int(11) NOT NULL auto_increment, 2345 name varchar(255) NOT NULL default '', 2346 PRIMARY KEY (ID) 2347 ) TYPE=MyISAM;"; 2348 2349 $db->query($query) or die("0.6 add table dropdown_cartridge_type ".$lang["update"][90].$db->error()); 2350 2351 $query="INSERT INTO glpi_dropdown_cartridge_type (name) VALUES ('".$lang["cartridges"][11]."');"; 2352 $db->query($query) or die("0.6 add entries to dropdown_cartridge_type ".$lang["update"][90].$db->error()); 2353 $query="INSERT INTO glpi_dropdown_cartridge_type (name) VALUES ('".$lang["cartridges"][10]."');"; 2354 $db->query($query) or die("0.6 add entries to dropdown_cartridge_type ".$lang["update"][90].$db->error()); 2355 $query="INSERT INTO glpi_dropdown_cartridge_type (name) VALUES ('".$lang["cartridges"][37]."');"; 2356 $db->query($query) or die("0.6 add entries to dropdown_cartridge_type ".$lang["update"][90].$db->error()); 2357 } 2358 2359 // specific alarm pour les cartouches 2360 if(!FieldExists("glpi_cartridges_type","alarm")) { 2361 $query= "ALTER TABLE `glpi_cartridges_type` ADD `alarm` TINYINT DEFAULT '10' NOT NULL ;"; 2362 $db->query($query) or die("0.6 add alarm in cartridges_type ".$lang["update"][90].$db->error()); 2363 } 2364 2365 // email for enterprises 2366 if(!FieldExists("glpi_enterprises","email")) { 2367 $query= "ALTER TABLE `glpi_enterprises` ADD `email` VARCHAR(255) NOT NULL;"; 2368 $db->query($query) or die("0.6 add email in enterprises ".$lang["update"][90].$db->error()); 2369 } 2370 2371 // ldap_port for config 2372 if(!FieldExists("glpi_config","ldap_port")) { 2373 $query= "ALTER TABLE `glpi_config` ADD `ldap_port` VARCHAR(10) DEFAULT '389' NOT NULL AFTER `ID` ;"; 2374 $db->query($query) or die("0.6 add ldap_port in config ".$lang["update"][90].$db->error()); 2375 } 2376 2377 // CAS configuration 2378 if(!FieldExists("glpi_config","cas_host")) { 2379 $query= "ALTER TABLE `glpi_config` ADD `cas_host` VARCHAR(255) NOT NULL , 2380 ADD `cas_port` VARCHAR(255) NOT NULL , 2381 ADD `cas_uri` VARCHAR(255) NOT NULL ;"; 2382 $db->query($query) or die("0.6 add cas config in config ".$lang["update"][90].$db->error()); 2383 } 2384 2385 // Limit Item for contracts and correct template bug 2386 if(!FieldExists("glpi_contracts","device_countmax")) { 2387 $query= "ALTER TABLE `glpi_contracts` ADD `device_countmax` INT DEFAULT '0' NOT NULL ;"; 2388 $db->query($query) or die("0.6 add device_countmax in contracts ".$lang["update"][90].$db->error()); 2389 } 2390 2391 if(!FieldExists("glpi_contract_device","is_template")) { 2392 $query= "ALTER TABLE `glpi_contract_device` ADD `is_template` ENUM('0', '1') DEFAULT '0' NOT NULL ;"; 2393 $db->query($query) or die("0.6 add is_template in contract_device ".$lang["update"][90].$db->error()); 2394 //$query= " ALTER TABLE `glpi_contract_device` ADD INDEX (`is_template `) "; 2395 //$db->query($query) or die("0.6 alter is_template in contract_device ".$lang["update"][90].$db->error()); 2396 // TODO SET TO 1 the template item 2397 } 2398 2399 if(!FieldExists("glpi_doc_device","is_template")) { 2400 $query= "ALTER TABLE `glpi_doc_device` ADD `is_template` ENUM('0', '1') DEFAULT '0' NOT NULL ;"; 2401 $db->query($query) or die("0.6 add is_template in doc_device ".$lang["update"][90].$db->error()); 2402 $query= "ALTER TABLE `glpi_doc_device` ADD INDEX (`is_template`) ;"; 2403 $db->query($query) or die("0.6 alter is_template in doc_device ".$lang["update"][90].$db->error()); 2404 // TODO SET TO 1 the template item 2405 } 2406 2407 // Contract Type to dropdown 2408 if(!TableExists("glpi_dropdown_contract_type")) { 2409 2410 $query = "CREATE TABLE glpi_dropdown_contract_type ( 2411 ID int(11) NOT NULL auto_increment, 2412 name varchar(255) NOT NULL default '', 2413 PRIMARY KEY (ID) 2414 ) TYPE=MyISAM;"; 2415 2416 $db->query($query) or die("0.6 add table dropdown_contract_type ".$lang["update"][90].$db->error()); 2417 2418 $query="INSERT INTO glpi_dropdown_contract_type (name) VALUES ('".$lang["financial"][50]."');"; 2419 $db->query($query) or die("0.6 add entries to dropdown_contract_type ".$lang["update"][90].$db->error()); 2420 $query="INSERT INTO glpi_dropdown_contract_type (name) VALUES ('".$lang["financial"][51]."');"; 2421 $db->query($query) or die("0.6 add entries to dropdown_contract_type ".$lang["update"][90].$db->error()); 2422 $query="INSERT INTO glpi_dropdown_contract_type (name) VALUES ('".$lang["financial"][52]."');"; 2423 $db->query($query) or die("0.6 add entries to dropdown_contract_type ".$lang["update"][90].$db->error()); 2424 $query="INSERT INTO glpi_dropdown_contract_type (name) VALUES ('".$lang["financial"][53]."');"; 2425 $db->query($query) or die("0.6 add entries to dropdown_contract_type ".$lang["update"][90].$db->error()); 2426 $query="INSERT INTO glpi_dropdown_contract_type (name) VALUES ('".$lang["financial"][54]."');"; 2427 $db->query($query) or die("0.6 add entries to dropdown_contract_type ".$lang["update"][90].$db->error()); 2428 $query="INSERT INTO glpi_dropdown_contract_type (name) VALUES ('".$lang["financial"][55]."');"; 2429 $db->query($query) or die("0.6 add entries to dropdown_contract_type ".$lang["update"][90].$db->error()); 2430 $query="INSERT INTO glpi_dropdown_contract_type (name) VALUES ('".$lang["financial"][56]."');"; 2431 $db->query($query) or die("0.6 add entries to dropdown_contract_type ".$lang["update"][90].$db->error()); 2432 2433 } 2434 2435 //// Update author and assign from tracking / followups 2436 if(!FieldExists("glpi_tracking","assign_type")) { 2437 2438 // Create assin_type field 2439 $query= "ALTER TABLE `glpi_tracking` ADD `assign_type` TINYINT DEFAULT '0' NOT NULL AFTER `assign` ;"; 2440 $db->query($query) or die("0.6 add assign_type in tracking ".$lang["update"][90].$db->error()); 2441 2442 $users=array(); 2443 // Load All users 2444 $query="SELECT ID, name FROM glpi_users"; 2445 $result=$db->query($query); 2446 while($line = $db->fetch_array($result)) { 2447 $users[$line["name"]]=$line["ID"]; 2448 } 2449 mysql_free_result($result); 2450 // Load tracking authors tables 2451 $authors=array(); 2452 $query="SELECT ID, author FROM glpi_tracking"; 2453 $result=$db->query($query); 2454 while($line = $db->fetch_array($result)) { 2455 $authors[$line["ID"]]=$line["author"]; 2456 } 2457 mysql_free_result($result); 2458 // Update authors tracking 2459 $query= "ALTER TABLE `glpi_tracking` CHANGE `author` `author` INT(11) DEFAULT '0' NOT NULL"; 2460 $db->query($query) or die("0.6 alter author in tracking ".$lang["update"][90].$db->error()); 2461 2462 if (count($authors)>0) 2463 foreach ($authors as $ID => $val){ 2464 if (isset($users[$val])){ 2465 $query="UPDATE glpi_tracking SET author='".$users[$val]."' WHERE ID='$ID'"; 2466 $db->query($query); 2467 } 2468 } 2469 unset($authors); 2470 2471 $assign=array(); 2472 // Load tracking assign tables 2473 $query="SELECT ID, assign FROM glpi_tracking"; 2474 $result=$db->query($query); 2475 while($line = $db->fetch_array($result)) { 2476 $assign[$line["ID"]]=$line["assign"]; 2477 } 2478 mysql_free_result($result); 2479 2480 // Update assign tracking 2481 $query= "ALTER TABLE `glpi_tracking` CHANGE `assign` `assign` INT(11) DEFAULT '0' NOT NULL"; 2482 $db->query($query) or die("0.6 alter assign in tracking ".$lang["update"][90].$db->error()); 2483 2484 if (count($assign)>0) 2485 foreach ($assign as $ID => $val){ 2486 if (isset($users[$val])){ 2487 $query="UPDATE glpi_tracking SET assign='".$users[$val]."', assign_type='".USER_TYPE."' WHERE ID='$ID'"; 2488 $db->query($query); 2489 } 2490 } 2491 unset($assign); 2492 2493 $authors=array(); 2494 // Load followup authors tables 2495 $query="SELECT ID, author FROM glpi_followups"; 2496 $result=$db->query($query); 2497 while($line = $db->fetch_array($result)) { 2498 $authors[$line["ID"]]=$line["author"]; 2499 } 2500 mysql_free_result($result); 2501 2502 // Update authors tracking 2503 $query= "ALTER TABLE `glpi_followups` CHANGE `author` `author` INT(11) DEFAULT '0' NOT NULL"; 2504 $db->query($query) or die("0.6 alter author in followups ".$lang["update"][90].$db->error()); 2505 2506 if (count($authors)>0) 2507 foreach ($authors as $ID => $val){ 2508 if (isset($users[$val])){ 2509 $query="UPDATE glpi_followups SET author='".$users[$val]."' WHERE ID='$ID'"; 2510 $db->query($query); 2511 } 2512 } 2513 unset($authors); 2514 2515 // Update Enterprise Tracking 2516 $query="SELECT computer, ID FROM glpi_tracking WHERE device_type='".ENTERPRISE_TYPE."'"; 2517 $result=$db->query($query); 2518 2519 if ($db->numrows($result)>0) 2520 while($line = $db->fetch_array($result)) { 2521 $query="UPDATE glpi_tracking SET assign='".$line["computer"]."', assign_type='".ENTERPRISE_TYPE."', device_type='0', computer='0' WHERE ID='".$line["ID"]."'"; 2522 $db->query($query); 2523 } 2524 mysql_free_result($result); 2525 } 2526 2527 // Add planning feature 2528 2529 if(!TableExists("glpi_tracking_planning")) { 2530 2531 $query = "CREATE TABLE `glpi_tracking_planning` ( 2532 `ID` bigint(20) NOT NULL auto_increment, 2533 `id_tracking` int(11) NOT NULL default '0', 2534 `id_assign` int(11) NOT NULL default '0', 2535 `begin` datetime NOT NULL default '0000-00-00 00:00:00', 2536 `end` datetime NOT NULL default '0000-00-00 00:00:00', 2537 PRIMARY KEY (`ID`), 2538 KEY `id_tracking` (`id_tracking`), 2539 KEY `begin` (`begin`), 2540 KEY `end` (`end`) 2541 ) TYPE=MyISAM ;"; 2542 2543 $db->query($query) or die("0.6 add table glpi_tracking_planning ".$lang["update"][90].$db->error()); 2544 } 2545 2546 if(!FieldExists("glpi_config","planning_begin")) { 2547 $query="ALTER TABLE `glpi_config` ADD `planning_begin` TIME DEFAULT '08:00:00' NOT NULL"; 2548 2549 $db->query($query) or die("0.6 add planning begin in config".$lang["update"][90].$db->error()); 2550 } 2551 if(!FieldExists("glpi_config","planning_end")) { 2552 $query="ALTER TABLE `glpi_config` ADD `planning_end` TIME DEFAULT '20:00:00' NOT NULL"; 2553 2554 $db->query($query) or die("0.6 add planning end in config".$lang["update"][90].$db->error()); 2555 } 2556 2557 // Merge glpi_users and glpi_prefs 2558 if(!FieldExists("glpi_users","language")) { 2559 // Create fields 2560 $query="ALTER TABLE `glpi_users` ADD `tracking_order` ENUM('yes', 'no') DEFAULT 'no' NOT NULL ;"; 2561 $db->query($query) or die("0.6 add tracking_order in users".$lang["update"][90].$db->error()); 2562 $query="ALTER TABLE `glpi_users` ADD `language` VARCHAR(255) NOT NULL DEFAULT 'english';"; 2563 $db->query($query) or die("0.6 add language in users".$lang["update"][90].$db->error()); 2564 2565 // Move data 2566 $query="SELECT * from glpi_prefs"; 2567 $result=$db->query($query); 2568 if ($db->numrows($result)>0) 2569 while ($data=$db->fetch_array($result)){ 2570 $query2="UPDATE glpi_users SET language='".$data['language']."', tracking_order='".$data['tracking_order']."' WHERE name='".$data['username']."';"; 2571 $db->query($query2) or die("0.6 move pref to users".$lang["update"][90].$db->error()); 2572 } 2573 mysql_free_result($result); 2574 // Drop glpi_prefs 2575 $query="DROP TABLE `glpi_prefs`;"; 2576 $db->query($query) or die("0.6 drop glpi_prefs".$lang["update"][90].$db->error()); 2577 2578 2579 } 2580 2581 // Create glpi_dropdown_ram_type 2582 if(!TableExists("glpi_dropdown_ram_type")) { 2583 $query = "CREATE TABLE `glpi_dropdown_ram_type` ( 2584 `ID` int(11) NOT NULL auto_increment, 2585 `name` varchar(255) NOT NULL default '', 2586 PRIMARY KEY (`ID`) 2587 ) TYPE=MyISAM;"; 2588 2589 $db->query($query) or die("0.6 add table glpi_dropdown_ram_type ".$lang["update"][90].$db->error()); 2590 $query="ALTER TABLE `glpi_device_ram` ADD `new_type` INT(11) DEFAULT '0' NOT NULL ;"; 2591 $db->query($query) or die("0.6 create new type field for glpi_device_ram ".$lang["update"][90].$db->error()); 2592 $query="INSERT INTO `glpi_dropdown_ram_type` (`name`) VALUES ('EDO');"; 2593 $db->query($query) or die("0.6 insert value in glpi_dropdown_ram ".$lang["update"][90].$db->error()); 2594 $query="INSERT INTO `glpi_dropdown_ram_type` (`name`) VALUES ('DDR');"; 2595 $db->query($query) or die("0.6 insert value in glpi_dropdown_ram ".$lang["update"][90].$db->error()); 2596 $query="INSERT INTO `glpi_dropdown_ram_type` (`name`) VALUES ('SDRAM');"; 2597 $db->query($query) or die("0.6 insert value in glpi_dropdown_ram ".$lang["update"][90].$db->error()); 2598 $query="INSERT INTO `glpi_dropdown_ram_type` (`name`) VALUES ('SDRAM-2');"; 2599 $db->query($query) or die("0.6 insert value in glpi_dropdown_ram ".$lang["update"][90].$db->error()); 2600 2601 // Get values 2602 $query="SELECT * from glpi_dropdown_ram_type"; 2603 $result=$db->query($query); 2604 $val=array(); 2605 while ($data=$db->fetch_array($result)){ 2606 $val[$data['name']]=$data['ID']; 2607 } 2608 mysql_free_result($result); 2609 2610 // Update glpi_device_ram 2611 $query="SELECT * from glpi_device_ram"; 2612 $result=$db->query($query); 2613 if ($db->numrows($result)>0) 2614 while ($data=$db->fetch_array($result)){ 2615 $query2="UPDATE glpi_device_ram SET new_type='".$val[$data['type']]."' WHERE ID ='".$data['ID']."';"; 2616 $db->query($query2); 2617 } 2618 mysql_free_result($result); 2619 // ALTER glpi_device_ram 2620 $query="ALTER TABLE `glpi_device_ram` DROP `type`;"; 2621 $db->query($query) or die("0.6 drop type in glpi_dropdown_ram ".$lang["update"][90].$db->error()); 2622 $query="ALTER TABLE `glpi_device_ram` CHANGE `new_type` `type` INT(11) DEFAULT '0' NOT NULL "; 2623 $db->query($query) or die("0.6 rename new_type in glpi_dropdown_ram ".$lang["update"][90].$db->error()); 2624 2625 2626 } 2627 2628 // Create external links 2629 if(!TableExists("glpi_links")) { 2630 $query = "CREATE TABLE `glpi_links` ( 2631 `ID` int(11) NOT NULL auto_increment, 2632 `name` varchar(255) NOT NULL default '', 2633 PRIMARY KEY (`ID`) 2634 ) TYPE=MyISAM;"; 2635 2636 $db->query($query) or die("0.6 add table glpi_links ".$lang["update"][90].$db->error()); 2637 } 2638 2639 if(!TableExists("glpi_links_device")) { 2640 2641 $query = "CREATE TABLE `glpi_links_device` ( 2642 `ID` int(11) NOT NULL auto_increment, 2643 `FK_links` int(11) NOT NULL default '0', 2644 `device_type` int(11) NOT NULL default '0', 2645 PRIMARY KEY (`ID`), 2646 KEY `device_type` (`device_type`), 2647 KEY `FK_links` (`FK_links`), 2648 UNIQUE `device_type_2` (`device_type`,`FK_links`) 2649 ) TYPE=MyISAM;"; 2650 2651 $db->query($query) or die("0.6 add table glpi_links_device ".$lang["update"][90].$db->error()); 2652 } 2653 2654 // Initial count page for printer 2655 if(!FieldExists("glpi_printers","initial_pages")) { 2656 $query="ALTER TABLE `glpi_printers` ADD `initial_pages` VARCHAR(30) DEFAULT '0' NOT NULL ;"; 2657 $db->query($query) or die("0.6 add initial_pages in printers".$lang["update"][90].$db->error()); 2658 } 2659 2660 // Auto assign intervention 2661 if(!FieldExists("glpi_config","auto_assign")) { 2662 $query="ALTER TABLE `glpi_config` ADD `auto_assign` ENUM('0', '1') DEFAULT '0' NOT NULL ;"; 2663 $db->query($query) or die("0.6 add auto_assign in config".$lang["update"][90].$db->error()); 2664 } 2665 2666 // Create glpi_dropdown_network 2667 if(!TableExists("glpi_dropdown_network")) { 2668 $query = "CREATE TABLE `glpi_dropdown_network` ( 2669 `ID` int(11) NOT NULL auto_increment, 2670 `name` varchar(255) NOT NULL default '', 2671 PRIMARY KEY (`ID`) 2672 ) TYPE=MyISAM;"; 2673 $db->query($query) or die("0.6 add table glpi_dropdown_network ".$lang["update"][90].$db->error()); 2674 } 2675 if(!FieldExists("glpi_computers","network")) { 2676 $query="ALTER TABLE `glpi_computers` ADD `network` INT(11) DEFAULT '0' NOT NULL AFTER `location` ;"; 2677 $db->query($query) or die("0.6 a network in computers".$lang["update"][90].$db->error()); 2678 } 2679 if(!FieldExists("glpi_printers","network")) { 2680 $query="ALTER TABLE `glpi_printers` ADD `network` INT(11) DEFAULT '0' NOT NULL AFTER `location` ;"; 2681 $db->query($query) or die("0.6 add network in printers".$lang["update"][90].$db->error()); 2682 } 2683 if(!FieldExists("glpi_networking","network")) { 2684 $query="ALTER TABLE `glpi_networking` ADD `network` INT(11) DEFAULT '0' NOT NULL AFTER `location` ;"; 2685 $db->query($query) or die("0.6 a network in networking".$lang["update"][90].$db->error()); 2686 } 2687 2688 // Create glpi_dropdown_domain 2689 if(!TableExists("glpi_dropdown_domain")) { 2690 $query = "CREATE TABLE `glpi_dropdown_domain` ( 2691 `ID` int(11) NOT NULL auto_increment, 2692 `name` varchar(255) NOT NULL default '', 2693 PRIMARY KEY (`ID`) 2694 ) TYPE=MyISAM;"; 2695 $db->query($query) or die("0.6 add table glpi_dropdown_domain ".$lang["update"][90].$db->error()); 2696 } 2697 if(!FieldExists("glpi_computers","domain")) { 2698 $query="ALTER TABLE `glpi_computers` ADD `domain` INT(11) DEFAULT '0' NOT NULL AFTER `location` ;"; 2699 $db->query($query) or die("0.6 a domain in computers".$lang["update"][90].$db->error()); 2700 } 2701 if(!FieldExists("glpi_printers","domain")) { 2702 $query="ALTER TABLE `glpi_printers` ADD `domain` INT(11) DEFAULT '0' NOT NULL AFTER `location` ;"; 2703 $db->query($query) or die("0.6 a domain in printers".$lang["update"][90].$db->error()); 2704 } 2705 if(!FieldExists("glpi_networking","domain")) { 2706 $query="ALTER TABLE `glpi_networking` ADD `domain` INT(11) DEFAULT '0' NOT NULL AFTER `location` ;"; 2707 $db->query($query) or die("0.6 a domain in networking".$lang["update"][90].$db->error()); 2708 } 2709 2710 // Create glpi_dropdown_vlan 2711 if(!TableExists("glpi_dropdown_vlan")) { 2712 $query = "CREATE TABLE `glpi_dropdown_vlan` ( 2713 `ID` int(11) NOT NULL auto_increment, 2714 `name` varchar(255) NOT NULL default '', 2715 PRIMARY KEY (`ID`) 2716 ) TYPE=MyISAM;"; 2717 $db->query($query) or die("0.6 add table glpi_dropdown_vlan ".$lang["update"][90].$db->error()); 2718 } 2719 2720 if(!TableExists("glpi_networking_vlan")) { 2721 $query = "CREATE TABLE `glpi_networking_vlan` ( 2722 `ID` int(11) NOT NULL auto_increment, 2723 `FK_port` int(11) NOT NULL default '0', 2724 `FK_vlan` int(11) NOT NULL default '0', 2725 PRIMARY KEY (`ID`), 2726 KEY `FK_port` (`FK_port`), 2727 KEY `FK_vlan` (`FK_vlan`), 2728 UNIQUE `FK_port_2` (`FK_port`,`FK_vlan`) 2729 ) TYPE=MyISAM;"; 2730 $db->query($query) or die("0.6 add table glpi_networking_vlan ".$lang["update"][90].$db->error()); 2731 } 2732 2733 // Global Peripherals 2734 if(!FieldExists("glpi_peripherals","is_global")) { 2735 $query="ALTER TABLE `glpi_peripherals` ADD `is_global` ENUM('0', '1') DEFAULT '0' NOT NULL AFTER `FK_glpi_enterprise` ;"; 2736 $db->query($query) or die("0.6 add is_global in peripherals".$lang["update"][90].$db->error()); 2737 } 2738 2739 // Global Monitors 2740 if(!FieldExists("glpi_monitors","is_global")) { 2741 $query="ALTER TABLE `glpi_monitors` ADD `is_global` ENUM('0', '1') DEFAULT '0' NOT NULL AFTER `FK_glpi_enterprise` ;"; 2742 $db->query($query) or die("0.6 add is_global in peripherals".$lang["update"][90].$db->error()); 2743 } 2744 2745 // Mailing Resa 2746 if(!FieldExists("glpi_config","mailing_resa_admin")) { 2747 $query="ALTER TABLE `glpi_config` ADD `mailing_resa_admin` VARCHAR(200) NOT NULL DEFAULT '1' AFTER `admin_email` ;"; 2748 $db->query($query) or die("0.6 add mailing_resa_admin in config".$lang["update"][90].$db->error()); 2749 } 2750 if(!FieldExists("glpi_config","mailing_resa_user")) { 2751 $query="ALTER TABLE `glpi_config` ADD `mailing_resa_user` VARCHAR(200) NOT NULL DEFAULT '1' AFTER `admin_email` ;"; 2752 $db->query($query) or die("0.6 add mailing_resa_user in config".$lang["update"][90].$db->error()); 2753 } 2754 if(!FieldExists("glpi_config","mailing_resa_all_admin")) { 2755 $query="ALTER TABLE `glpi_config` ADD `mailing_resa_all_admin` VARCHAR(200) NOT NULL DEFAULT '0' AFTER `admin_email` ;"; 2756 $db->query($query) or die("0.6 add mailing_resa_all_admin in config".$lang["update"][90].$db->error()); 2757 } 2758 2759 // Mod�e ordinateurs 2760 if(!TableExists("glpi_dropdown_model")) { 2761 // model=type pour faciliter la gestion en post mise �jour : ya plus qu'a deleter les elements non voulu 2762 // cela conviendra a tout le monde en fonction de l'utilisation du champ type 2763 2764 $query="ALTER TABLE `glpi_type_computers` RENAME `glpi_dropdown_model` ;"; 2765 $db->query($query) or die("0.6 rename table glpi_type_computers ".$lang["update"][90].$db->error()); 2766 2767 $query = "CREATE TABLE `glpi_type_computers` ( 2768 `ID` int(11) NOT NULL auto_increment, 2769 `name` varchar(255) NOT NULL default '', 2770 PRIMARY KEY (`ID`) 2771 ) TYPE=MyISAM;"; 2772 2773 $db->query($query) or die("0.6 add table glpi_type_computers ".$lang["update"][90].$db->error()); 2774 2775 // copie model dans type 2776 $query="SELECT * FROM glpi_dropdown_model"; 2777 $result=$db->query($query); 2778 if ($db->numrows($result)>0) 2779 while ($data=$db->fetch_array($result)){ 2780 $query="INSERT INTO `glpi_type_computers` (`ID`,`name`) VALUES ('".$data['ID']."','".addslashes($data['name'])."');"; 2781 $db->query($query) or die("0.6 insert value in glpi_type_computers ".$lang["update"][90].$db->error()); 2782 } 2783 mysql_free_result($result); 2784 2785 $query="INSERT INTO `glpi_type_computers` (`name`) VALUES ('".$lang["computers"][28]."');"; 2786 $db->query($query) or die("0.6 insert value in glpi_type_computers ".$lang["update"][90].$db->error()); 2787 $serverid=$db->insert_id(); 2788 2789 // Type -> mod�e 2790 $query="ALTER TABLE `glpi_computers` CHANGE `type` `model` INT(11) DEFAULT NULL "; 2791 $db->query($query) or die("0.6 add model in computers".$lang["update"][90].$db->error()); 2792 2793 $query="ALTER TABLE `glpi_computers` ADD `type` INT(11) DEFAULT NULL AFTER `model` ;"; 2794 $db->query($query) or die("0.6 add model in computers".$lang["update"][90].$db->error()); 2795 2796 // Update server values and drop flags_server 2797 $query="UPDATE glpi_computers SET type='$serverid' where flags_server='1'"; 2798 $db->query($query) or die("0.6 update type of computers".$lang["update"][90].$db->error()); 2799 2800 $query="ALTER TABLE `glpi_computers` DROP `flags_server`;"; 2801 $db->query($query) or die("0.6 drop type in glpi_dropdown_ram ".$lang["update"][90].$db->error()); 2802 2803 } 2804 2805 if(!TableExists("glpi_consumables_type")) { 2806 2807 $query = "CREATE TABLE `glpi_consumables_type` ( 2808 `ID` int(11) NOT NULL auto_increment, 2809 `name` varchar(255) NOT NULL default '', 2810 `ref` varchar(255) NOT NULL default '', 2811 `location` int(11) NOT NULL default '0', 2812 `type` tinyint(4) NOT NULL default '0', 2813 `FK_glpi_enterprise` int(11) NOT NULL default '0', 2814 `tech_num` int(11) default '0', 2815 `deleted` enum('Y','N') NOT NULL default 'N', 2816 `comments` text NOT NULL, 2817 `alarm` tinyint(4) NOT NULL default '10', 2818 PRIMARY KEY (`ID`), 2819 KEY `FK_glpi_enterprise` (`FK_glpi_enterprise`), 2820 KEY `tech_num` (`tech_num`), 2821 KEY `deleted` (`deleted`) 2822 ) TYPE=MyISAM;"; 2823 2824 $db->query($query) or die("0.6 add table glpi_consumables_type ".$lang["update"][90].$db->error()); 2825 2826 $query = "CREATE TABLE `glpi_consumables` ( 2827 `ID` int(11) NOT NULL auto_increment, 2828 `FK_glpi_consumables_type` int(11) default NULL, 2829 `date_in` date default NULL, 2830 `date_out` date default NULL, 2831 PRIMARY KEY (`ID`), 2832 KEY `FK_glpi_cartridges_type` (`FK_glpi_consumables_type`), 2833 KEY `date_in` (`date_in`), 2834 KEY `date_out` (`date_out`) 2835 ) TYPE=MyISAM;"; 2836 2837 $db->query($query) or die("0.6 add table glpi_consumables ".$lang["update"][90].$db->error()); 2838 2839 $query = "CREATE TABLE `glpi_dropdown_consumable_type` ( 2840 `ID` int(11) NOT NULL auto_increment, 2841 `name` varchar(255) NOT NULL default '', 2842 PRIMARY KEY (`ID`) 2843 ) TYPE=MyISAM;"; 2844 2845 $db->query($query) or die("0.6 add table glpi_dropdown_consumable_type ".$lang["update"][90].$db->error()); 2846 2847 } 2848 2849 // HDD connect type 2850 if(!TableExists("glpi_dropdown_hdd_type")) { 2851 $query = "CREATE TABLE `glpi_dropdown_hdd_type` ( 2852 `ID` int(11) NOT NULL auto_increment, 2853 `name` varchar(255) NOT NULL default '', 2854 PRIMARY KEY (`ID`) 2855 ) TYPE=MyISAM;"; 2856 2857 $db->query($query) or die("0.6 add table glpi_dropdown_hdd_type ".$lang["update"][90].$db->error()); 2858 2859 $query="INSERT INTO `glpi_dropdown_hdd_type` (`name`) VALUES ('IDE');"; 2860 $db->query($query) or die("0.6 insert value in glpi_dropdown_hdd_type ".$lang["update"][90].$db->error()); 2861 $query="INSERT INTO `glpi_dropdown_hdd_type` (`name`) VALUES ('SATA');"; 2862 $db->query($query) or die("0.6 insert value in glpi_dropdown_hdd_type ".$lang["update"][90].$db->error()); 2863 $query="INSERT INTO `glpi_dropdown_hdd_type` (`name`) VALUES ('SCSI');"; 2864 $db->query($query) or die("0.6 insert value in glpi_dropdown_hdd_type ".$lang["update"][90].$db->error()); 2865 2866 // Insertion des enum dans l'ordre - le alter garde donc les bonne valeurs 2867 $query="ALTER TABLE `glpi_device_hdd` CHANGE `interface` `interface` INT(11) DEFAULT '0' NOT NULL"; 2868 $db->query($query) or die("0.6 alter interface of glpi_device_hdd".$lang["update"][90].$db->error()); 2869 } 2870 2871 } 2872 2873 // Update from 0.6 to 0.65 2874 function update06to065(){ 2875 global $db,$lang; 2876 2877 echo "<p class='center'>Version 0.65 </p>"; 2878 2879 if(!isIndex("glpi_networking_ports", "on_device_2")) { 2880 $query = "ALTER TABLE `glpi_networking_ports` ADD INDEX (`on_device`) "; 2881 $db->query($query) or die("0.65 ".$lang["update"][90].$db->error()); 2882 } 2883 2884 if(!isIndex("glpi_networking_ports", "device_type")) { 2885 $query = "ALTER TABLE `glpi_networking_ports` ADD INDEX (`device_type`) "; 2886 $db->query($query) or die("0.65 ".$lang["update"][90].$db->error()); 2887 } 2888 2889 if(!isIndex("glpi_computer_device", "FK_device")) { 2890 $query = "ALTER TABLE `glpi_computer_device` ADD INDEX (`FK_device`) "; 2891 $db->query($query) or die("0.65 ".$lang["update"][90].$db->error()); 2892 } 2893 2894 // Field for public FAQ 2895 if(!FieldExists("glpi_config","public_faq")) { 2896 $query="ALTER TABLE `glpi_config` ADD `public_faq` ENUM( '0', '1' ) NOT NULL AFTER `auto_assign` ;"; 2897 $db->query($query) or die("0.65 add public_faq in config".$lang["update"][90].$db->error()); 2898 } 2899 2900 // Optimize amort_type field 2901 if(FieldExists("glpi_infocoms","amort_type")) { 2902 $query2="UPDATE `glpi_infocoms` SET `amort_type`='0' WHERE `amort_type` = '';"; 2903 $db->query($query2) or die("0.65 update amort_type='' in tracking".$lang["update"][90].$db->error()); 2904 2905 $query="ALTER TABLE `glpi_infocoms` CHANGE `amort_type` `amort_type` tinyint(4) NOT NULL DEFAULT '0'"; 2906 $db->query($query) or die("0.65 alter amort_type in infocoms".$lang["update"][90].$db->error()); 2907 } 2908 if(!TableExists("glpi_display")) { 2909 $query="CREATE TABLE glpi_display ( 2910 ID int(11) NOT NULL auto_increment, 2911 type smallint(6) NOT NULL default '0', 2912 num smallint(6) NOT NULL default '0', 2913 rank smallint(6) NOT NULL default '0', 2914 PRIMARY KEY (ID), 2915 UNIQUE KEY `type_2` (`type`,`num`), 2916 KEY type (type), 2917 KEY rank (rank), 2918 KEY num (num) 2919 ) TYPE=MyISAM;"; 2920 $db->query($query) or die("0.65 add glpi_display table".$lang["update"][90].$db->error()); 2921 2922 // TEMPORARY : ADD ITEMS TO DISPLAY TABLE : TO DEL OR TO 2923 2924 $query="INSERT INTO `glpi_display` VALUES (32, 1, 4, 4), 2925 (34, 1, 6, 6), 2926 (33, 1, 5, 5), 2927 (31, 1, 8, 3), 2928 (30, 1, 23, 2), 2929 (86, 12, 3, 1), 2930 (49, 4, 31, 1), 2931 (50, 4, 23, 2), 2932 (51, 4, 3, 3), 2933 (52, 4, 4, 4), 2934 (44, 3, 31, 1), 2935 (38, 2, 31, 1), 2936 (39, 2, 23, 2), 2937 (45, 3, 23, 2), 2938 (46, 3, 3, 3), 2939 (63, 6, 4, 3), 2940 (62, 6, 5, 2), 2941 (61, 6, 23, 1), 2942 (83, 11, 4, 2), 2943 (82, 11, 3, 1), 2944 (57, 5, 3, 3), 2945 (56, 5, 23, 2), 2946 (55, 5, 31, 1), 2947 (29, 1, 31, 1), 2948 (35, 1, 3, 7), 2949 (36, 1, 19, 8), 2950 (37, 1, 17, 9), 2951 (40, 2, 3, 3), 2952 (41, 2, 4, 4), 2953 (42, 2, 11, 6), 2954 (43, 2, 9, 7), 2955 (47, 3, 4, 4), 2956 (48, 3, 9, 6), 2957 (53, 4, 9, 6), 2958 (54, 4, 7, 7), 2959 (58, 5, 4, 4), 2960 (59, 5, 9, 6), 2961 (60, 5, 7, 7), 2962 (64, 7, 3, 1), 2963 (65, 7, 4, 2), 2964 (66, 7, 5, 3), 2965 (67, 7, 6, 4), 2966 (68, 7, 9, 5), 2967 (69, 8, 9, 1), 2968 (70, 8, 3, 2), 2969 (71, 8, 4, 3), 2970 (72, 8, 5, 4), 2971 (73, 8, 10, 5), 2972 (74, 8, 6, 6), 2973 (75, 10, 4, 1), 2974 (76, 10, 3, 2), 2975 (77, 10, 5, 3), 2976 (78, 10, 6, 4), 2977 (79, 10, 7, 5), 2978 (80, 10, 11, 6), 2979 (84, 11, 5, 3), 2980 (85, 11, 6, 4), 2981 (88, 12, 6, 2), 2982 (89, 12, 4, 3), 2983 (90, 12, 5, 4), 2984 (91, 13, 3, 1), 2985 (92, 13, 4, 2), 2986 (93, 13, 7, 3), 2987 (94, 13, 5, 4), 2988 (95, 13, 6, 5), 2989 (96, 15, 3, 1), 2990 (97, 15, 4, 2), 2991 (98, 15, 5, 3), 2992 (99, 15, 6, 4), 2993 (100, 15, 7, 5), 2994 (101, 17, 3, 1), 2995 (102, 17, 4, 2), 2996 (103, 17, 5, 3), 2997 (104, 17, 6, 4), 2998 (105, 2, 40, 5), 2999 (106, 3, 40, 5), 3000 (107, 4, 40, 5), 3001 (108, 5, 40, 5), 3002 (109, 15, 8, 6), 3003 (110, 23, 31, 1), 3004 (111, 23, 23, 2), 3005 (112, 23, 3, 3), 3006 (113, 23, 4, 4), 3007 (114, 23, 40, 5), 3008 (115, 23, 9, 6), 3009 (116, 23, 7, 7);"; 3010 3011 $db->query($query); 3012 } 3013 3014 3015 if(!FieldExists("glpi_config","ldap_login")) { 3016 $query="ALTER TABLE `glpi_config` ADD `ldap_login` VARCHAR( 200 ) NOT NULL DEFAULT 'uid' AFTER `ldap_condition`;"; 3017 $db->query($query) or die("0.65 add url in config".$lang["update"][90].$db->error()); 3018 } 3019 3020 if(!FieldExists("glpi_config","url_base")) { 3021 $query="ALTER TABLE `glpi_config` ADD `url_base` VARCHAR( 255 ) NOT NULL ;"; 3022 $db->query($query) or die("0.65 add url in config".$lang["update"][90].$db->error()); 3023 3024 $query="ALTER TABLE `glpi_config` ADD `url_in_mail` ENUM( '0', '1' ) NOT NULL ;"; 3025 $db->query($query) or die("0.65 add url_in_mail in config".$lang["update"][90].$db->error()); 3026 3027 $query="UPDATE glpi_config SET url_base='".ereg_replace("/install.php","",$_SERVER['HTTP_REFERER'])."' WHERE ID='1'"; 3028 $db->query($query) or die(" url ".$lang["update"][90].$db->error()); 3029 } 3030 3031 if(!FieldExists("glpi_config","text_login")) { 3032 $query="ALTER TABLE `glpi_config` ADD `text_login` TEXT NOT NULL ;"; 3033 $db->query($query) or die("0.65 add text_login in config".$lang["update"][90].$db->error()); 3034 } 3035 3036 3037 if(!FieldExists("glpi_config","auto_update_check")) { 3038 $query="ALTER TABLE `glpi_config` ADD `auto_update_check` SMALLINT DEFAULT '0' NOT NULL , 3039 ADD `last_update_check` DATE DEFAULT '".date("Y-m-d")."' NOT NULL, ADD `founded_new_version` VARCHAR( 10 ) NOT NULL ;"; 3040 $db->query($query) or die("0.65 add auto_login_check in config".$lang["update"][90].$db->error()); 3041 } 3042 3043 //// Tracking 3044 if(FieldExists("glpi_tracking","status")) { 3045 $already_done=false; 3046 if ($result = $db->query("show fields from glpi_tracking")) 3047 while ($data=$db->fetch_array($result)){ 3048 if ($data["Field"]=="status"&&ereg("done",$data["Type"])) 3049 $already_done=true; 3050 } 3051 3052 if (!$already_done) { 3053 $query="ALTER TABLE `glpi_tracking` CHANGE `status` `status` ENUM( 'new', 'old', 'old_done', 'assign', 'plan', 'old_notdone', 'waiting' ) DEFAULT 'new' NOT NULL ;"; 3054 $db->query($query) or die("0.65 alter status in tracking".$lang["update"][90].$db->error()); 3055 3056 $query2=" UPDATE `glpi_tracking` SET status='old_done' WHERE status <> 'new';"; 3057 $db->query($query2) or die("0.65 update status=old in tracking".$lang["update"][90].$db->error()); 3058 3059 $query3=" UPDATE `glpi_tracking` SET status='assign' WHERE status='new' AND assign <> '0';"; 3060 $db->query($query3) or die("0.65 update status=assign in tracking".$lang["update"][90].$db->error()); 3061 3062 $query4="ALTER TABLE `glpi_tracking` CHANGE `status` `status` ENUM( 'new', 'old_done', 'assign', 'plan', 'old_notdone', 'waiting' ) DEFAULT 'new' NOT NULL ;"; 3063 $db->query($query4) or die("0.65 alter status in tracking".$lang["update"][90].$db->error()); 3064 } 3065 } 3066 3067 if(!isIndex("glpi_tracking_planning","id_assign")) { 3068 $query="ALTER TABLE `glpi_tracking_planning` ADD INDEX ( `id_assign` ) ;"; 3069 $db->query($query) or die("0.65 add index for id_assign in tracking_planning".$lang["update"][90].$db->error()); 3070 } 3071 if(FieldExists("glpi_tracking","emailupdates")) { 3072 $query2=" UPDATE `glpi_tracking` SET `emailupdates`='no' WHERE `emailupdates`='';"; 3073 $db->query($query2) or die("0.65 update emailupdate='' in tracking".$lang["update"][90].$db->error()); 3074 $query="ALTER TABLE `glpi_tracking` CHANGE `emailupdates` `emailupdates` ENUM( 'yes', 'no' ) DEFAULT 'no' NOT NULL;"; 3075 $db->query($query) or die("0.65 alter emailupdates in tracking".$lang["update"][90].$db->error()); 3076 } 3077 3078 if(!FieldExists("glpi_followups","private")) { 3079 $query="ALTER TABLE `glpi_followups` ADD `private` INT( 1 ) DEFAULT '0' NOT NULL;"; 3080 $db->query($query) or die("0.65 add private in followups".$lang["update"][90].$db->error()); 3081 } 3082 3083 if(!FieldExists("glpi_followups","realtime")) { 3084 $query="ALTER TABLE `glpi_followups` ADD `realtime` FLOAT DEFAULT '0' NOT NULL ;"; 3085 $db->query($query) or die("0.65 add realtime in followups".$lang["update"][90].$db->error()); 3086 } 3087 if(!FieldExists("glpi_config","mailing_attrib_attrib")) { 3088 $query="ALTER TABLE `glpi_config` ADD `mailing_attrib_attrib` tinyint(4) NOT NULL DEFAULT '1' AFTER `mailing_finish_user` ;"; 3089 $db->query($query) or die("0.65 add mailing_attrib_attrib in config".$lang["update"][90].$db->error()); 3090 } 3091 3092 3093 3094 if(!FieldExists("glpi_tracking_planning","id_followup")) { 3095 $query="ALTER TABLE `glpi_tracking_planning` ADD `id_followup` INT DEFAULT '0' NOT NULL AFTER `id_tracking` ;"; 3096 $db->query($query) or die("0.65 add id_followup in tracking_planning".$lang["update"][90].$db->error()); 3097 $query=" ALTER TABLE `glpi_tracking_planning` ADD INDEX ( `id_followup` );"; 3098 $db->query($query) or die("0.65 add index for id_followup in tracking_planning".$lang["update"][90].$db->error()); 3099 3100 //// Move Planned item to followup 3101 // Get super-admin ID 3102 $suid=0; 3103 $query0="SELECT ID from glpi_users WHERE type='super-admin'"; 3104 $result0=$db->query($query0); 3105 if ($db->numrows($result0)>0){ 3106 $suid=$db->result($result0,0,0); 3107 } 3108 mysql_free_result($result0); 3109 $query="SELECT * FROM glpi_tracking_planning order by id_tracking"; 3110 $result = $db->query($query); 3111 $used_followups=array(); 3112 if ($db->numrows($result)>0) 3113 while ($data=$db->fetch_array($result)){ 3114 $found=-1; 3115 // Is a followup existing ? 3116 $query2="SELECT * FROM glpi_followups WHERE tracking='".$data["id_tracking"]."'"; 3117 $result2=$db->query($query2); 3118 if ($db->numrows($result2)>0) 3119 while ($found<0&&$data2=$db->fetch_array($result2)) 3120 if (!in_array($data2['ID'],$used_followups)){ 3121 $found=$data2['ID']; 3122 } 3123 mysql_free_result($result2); 3124 // Followup not founded 3125 if ($found<0){ 3126 $query3="INSERT INTO glpi_followups (tracking,date,author,contents) VALUES ('".$data["id_tracking"]."','".date("Y-m-d")."','$suid','Automatic Added followup for compatibility problem in update')"; 3127 $db->query($query3); 3128 $found=$db->insert_id(); 3129 } 3130 array_push($used_followups,$found); 3131 $query4="UPDATE glpi_tracking_planning SET id_followup='$found' WHERE ID ='".$data['ID']."';"; 3132 $db->query($query4); 3133 } 3134 unset($used_followups); 3135 mysql_free_result($result); 3136 $query=" ALTER TABLE `glpi_tracking_planning` DROP `id_tracking` ;"; 3137 $db->query($query) or die("0.65 add index for id_followup in tracking_planning".$lang["update"][90].$db->error()); 3138 } 3139 3140 if(!FieldExists("glpi_config","use_ajax")) { 3141 $query="ALTER TABLE `glpi_config` ADD `dropdown_max` INT DEFAULT '100' NOT NULL , 3142 ADD `ajax_wildcard` CHAR( 1 ) DEFAULT '*' NOT NULL , 3143 ADD `use_ajax` SMALLINT DEFAULT '0' NOT NULL , 3144 ADD `ajax_limit_count` INT DEFAULT '50' NOT NULL ; "; 3145 $db->query($query) or die("0.65 add ajax fields in config".$lang["update"][90].$db->error()); 3146 } 3147 3148 if(!FieldExists("glpi_config","ajax_autocompletion")) { 3149 $query="ALTER TABLE `glpi_config` ADD `ajax_autocompletion` SMALLINT DEFAULT '1' NOT NULL ;"; 3150 $db->query($query) or die("0.65 add ajax_autocompletion field in config".$lang["update"][90].$db->error()); 3151 } 3152 3153 if(!FieldExists("glpi_config","auto_add_users")) { 3154 $query="ALTER TABLE `glpi_config` ADD `auto_add_users` SMALLINT DEFAULT '1' NOT NULL ;"; 3155 $db->query($query) or die("0.65 add auto_add_users field in config".$lang["update"][90].$db->error()); 3156 } 3157 3158 if(!FieldExists("glpi_config","dateformat")) { 3159 $query="ALTER TABLE `glpi_config` ADD `dateformat` SMALLINT DEFAULT '0' NOT NULL ;"; 3160 $db->query($query) or die("0.65 add dateformat field in config".$lang["update"][90].$db->error()); 3161 } 3162 3163 3164 if(FieldExists("glpi_software","version")) { 3165 $query=" ALTER TABLE `glpi_software` CHANGE `version` `version` VARCHAR( 200 ) NOT NULL;"; 3166 $db->query($query) or die("0.65 alter version field in software".$lang["update"][90].$db->error()); 3167 } 3168 3169 if(!FieldExists("glpi_config","nextprev_item")) { 3170 $query="ALTER TABLE `glpi_config` ADD `nextprev_item` VARCHAR( 200 ) DEFAULT 'name' NOT NULL ;"; 3171 $db->query($query) or die("0.65 add nextprev_item field in config".$lang["update"][90].$db->error()); 3172 } 3173 3174 if(!FieldExists("glpi_config","view_ID")) { 3175 $query="ALTER TABLE `glpi_config` ADD `view_ID` SMALLINT DEFAULT '0' NOT NULL ;"; 3176 $db->query($query) or die("0.65 add nextprev_item field in config".$lang["update"][90].$db->error()); 3177 } 3178 3179 if(FieldExists("glpi_infocoms","comments")) { 3180 $query=" ALTER TABLE `glpi_infocoms` CHANGE `comments` `comments` TEXT"; 3181 $db->query($query) or die("0.65 alter comments in glpi_infocoms".$lang["update"][90].$db->error()); 3182 } 3183 3184 $new_model=array("monitors","networking","peripherals","printers"); 3185 3186 foreach ($new_model as $model){ 3187 if(!TableExists("glpi_dropdown_model_$model")) { 3188 // model=type pour faciliter la gestion en post mise �jour : ya plus qu'a deleter les elements non voulu 3189 // cela conviendra a tout le monde en fonction de l'utilisation du champ type 3190 3191 $query = "CREATE TABLE `glpi_dropdown_model_$model` ( 3192 `ID` int(11) NOT NULL auto_increment, 3193 `name` varchar(255) NOT NULL default '', 3194 PRIMARY KEY (`ID`) 3195 ) TYPE=MyISAM;"; 3196 3197 $db->query($query) or die("0.6 add table glpi_dropdown_model_$model ".$lang["update"][90].$db->error()); 3198 3199 // copie type dans model 3200 $query="SELECT * FROM glpi_type_$model"; 3201 $result=$db->query($query); 3202 if ($db->numrows($result)>0) 3203 while ($data=$db->fetch_array($result)){ 3204 $query="INSERT INTO `glpi_dropdown_model_$model` (`ID`,`name`) VALUES ('".$data['ID']."','".addslashes($data['name'])."');"; 3205 $db->query($query) or die("0.6 insert value in glpi_dropdown_model_$model ".$lang["update"][90].$db->error()); 3206 } 3207 mysql_free_result($result); 3208 } 3209 3210 if (!FieldExists("glpi_$model","model")){ 3211 $query="ALTER TABLE `glpi_$model` ADD `model` INT(11) DEFAULT NULL AFTER `type` ;"; 3212 $db->query($query) or die("0.6 add model in $model".$lang["update"][90].$db->error()); 3213 3214 $query="UPDATE `glpi_$model` SET `model` = `type` "; 3215 $db->query($query) or die("0.6 add model in $model".$lang["update"][90].$db->error()); 3216 } 3217 } 3218 3219 // Update pour les cartouches compatibles : type -> model 3220 if(FieldExists("glpi_cartridges_assoc","FK_glpi_type_printer")) { 3221 $query=" ALTER TABLE `glpi_cartridges_assoc` CHANGE `FK_glpi_type_printer` `FK_glpi_dropdown_model_printers` INT( 11 ) DEFAULT '0' NOT NULL "; 3222 $db->query($query) or die("0.65 alter FK_glpi_type_printer field in cartridges_assoc ".$lang["update"][90].$db->error()); 3223 } 3224 3225 if(!FieldExists("glpi_links","data")) { 3226 $query=" ALTER TABLE `glpi_links` ADD `data` TEXT NOT NULL ;"; 3227 $db->query($query) or die("0.65 create data in links ".$lang["update"][90].$db->error()); 3228 } 3229 3230 if(!TableExists("glpi_dropdown_auto_update")) { 3231 $query = "CREATE TABLE `glpi_dropdown_auto_update` ( 3232 `ID` int(11) NOT NULL auto_increment, 3233 `name` varchar(255) NOT NULL default '', 3234 PRIMARY KEY (`ID`) 3235 ) TYPE=MyISAM;"; 3236 3237 $db->query($query) or die("0.65 add table glpi_dropdown_auto_update ".$lang["update"][90].$db->error()); 3238 } 3239 3240 if(!FieldExists("glpi_computers","auto_update")) { 3241 $query="ALTER TABLE `glpi_computers` ADD `auto_update` INT DEFAULT '0' NOT NULL AFTER `os` ;"; 3242 $db->query($query) or die("0.65 alter computers add auto_update ".$lang["update"][90].$db->error()); 3243 } 3244 3245 // Update specificity of computer_device 3246 $query="SELECT glpi_computer_device.ID as ID,glpi_device_processor.specif_default as SPECIF FROM glpi_computer_device LEFT JOIN glpi_device_processor ON (glpi_computer_device.FK_device=glpi_device_processor.ID AND glpi_computer_device.device_type='".PROCESSOR_DEVICE."') WHERE glpi_computer_device.specificity =''"; 3247 $result=$db->query($query); 3248 if ($db->numrows($result)>0) 3249 while ($data=$db->fetch_assoc($result)){ 3250 $query2="UPDATE glpi_computer_device SET specificity='".$data["SPECIF"]."' WHERE ID = '".$data["ID"]."'"; 3251 $db->query($query2); 3252 } 3253 3254 $query="SELECT glpi_computer_device.ID as ID,glpi_device_processor.specif_default as SPECIF FROM glpi_computer_device LEFT JOIN glpi_device_processor ON (glpi_computer_device.FK_device=glpi_device_processor.ID AND glpi_computer_device.device_type='".PROCESSOR_DEVICE."') WHERE glpi_computer_device.specificity =''"; 3255 $result=$db->query($query); 3256 if ($db->numrows($result)>0) 3257 while ($data=$db->fetch_assoc($result)){ 3258 $query2="UPDATE glpi_computer_device SET specificity='".$data["SPECIF"]."' WHERE ID = '".$data["ID"]."'"; 3259 $db->query($query2); 3260 } 3261 3262 $query="SELECT glpi_computer_device.ID as ID,glpi_device_ram.specif_default as SPECIF FROM glpi_computer_device LEFT JOIN glpi_device_ram ON (glpi_computer_device.FK_device=glpi_device_ram.ID AND glpi_computer_device.device_type='".RAM_DEVICE."') WHERE glpi_computer_device.specificity =''"; 3263 $result=$db->query($query); 3264 if ($db->numrows($result)>0) 3265 while ($data=$db->fetch_assoc($result)){ 3266 $query2="UPDATE glpi_computer_device SET specificity='".$data["SPECIF"]."' WHERE ID = '".$data["ID"]."'"; 3267 $db->query($query2); 3268 } 3269 3270 $query="SELECT glpi_computer_device.ID as ID,glpi_device_hdd.specif_default as SPECIF FROM glpi_computer_device LEFT JOIN glpi_device_hdd ON (glpi_computer_device.FK_device=glpi_device_hdd.ID AND glpi_computer_device.device_type='".HDD_DEVICE."') WHERE glpi_computer_device.specificity =''"; 3271 $result=$db->query($query); 3272 if ($db->numrows($result)>0) 3273 while ($data=$db->fetch_assoc($result)){ 3274 $query2="UPDATE glpi_computer_device SET specificity='".$data["SPECIF"]."' WHERE ID = '".$data["ID"]."'"; 3275 $db->query($query2); 3276 } 3277 3278 $query="SELECT glpi_computer_device.ID as ID,glpi_device_iface.specif_default as SPECIF FROM glpi_computer_device LEFT JOIN glpi_device_iface ON (glpi_computer_device.FK_device=glpi_device_iface.ID AND glpi_computer_device.device_type='".NETWORK_DEVICE."') WHERE glpi_computer_device.specificity =''"; 3279 $result=$db->query($query); 3280 if ($db->numrows($result)>0) 3281 while ($data=$db->fetch_assoc($result)){ 3282 $query2="UPDATE glpi_computer_device SET specificity='".$data["SPECIF"]."' WHERE ID = '".$data["ID"]."'"; 3283 $db->query($query2); 3284 } 3285 3286 // add field notes in tables 3287 $new_notes=array("computers","software","monitors","networking","peripherals","printers","cartridges_type","consumables_type","contacts","enterprises","contracts","docs"); 3288 3289 foreach ($new_notes as $notes) 3290 if(!FieldExists("glpi_$notes","notes")) { 3291 $query="ALTER TABLE `glpi_$notes` ADD `notes` LONGTEXT NULL ;"; 3292 $db->query($query) or die("0.65 add notes field in table".$lang["update"][90].$db->error()); 3293 3294 } 3295 3296 if(!FieldExists("glpi_users","active")) { 3297 $query="ALTER TABLE `glpi_users` ADD `active` INT( 2 ) DEFAULT '1' NOT NULL "; 3298 $db->query($query) or die("0.65 add active in users ".$lang["update"][90].$db->error()); 3299 } 3300 3301 3302 if(TableExists("glpi_type_docs")){ 3303 $query="SELECT * from glpi_type_docs WHERE ext='odt' OR ext='ods' OR ext='odp' OR ext='otp' OR ext='ott' OR ext='ots' OR ext='odf' OR ext='odg' OR ext='otg' OR ext='odb' OR ext='oth' OR ext='odm' OR ext='odc' OR ext='odi'"; 3304 $result=$db->query($query); 3305 if ($db->numrows($result)==0){ 3306 $query2="INSERT INTO `glpi_type_docs` ( `ID` , `name` , `ext` , `icon` , `mime` , `upload` , `date_mod` ) VALUES (NULL, 'Oasis Open Office Writer', 'odt', 'odt-dist.png', NULL, 'Y', '2006-01-21 17:41:13'), 3307 (NULL, 'Oasis Open Office Calc', 'ods', 'ods-dist.png', NULL, 'Y', '2006-01-21 17:41:31'), 3308 (NULL, 'Oasis Open Office Impress', 'odp', 'odp-dist.png', NULL, 'Y', '2006-01-21 17:42:54'), 3309 (NULL, 'Oasis Open Office Impress Template', 'otp', 'odp-dist.png', NULL, 'Y', '2006-01-21 17:43:58'), 3310 (NULL, 'Oasis Open Office Writer Template', 'ott', 'odt-dist.png', NULL, 'Y', '2006-01-21 17:44:41'), 3311 (NULL, 'Oasis Open Office Calc Template', 'ots', 'ods-dist.png', NULL, 'Y', '2006-01-21 17:45:30'), 3312 (NULL, 'Oasis Open Office Math', 'odf', 'odf-dist.png', NULL, 'Y', '2006-01-21 17:48:05'), 3313 (NULL, 'Oasis Open Office Draw', 'odg', 'odg-dist.png', NULL, 'Y', '2006-01-21 17:48:31'), 3314 (NULL, 'Oasis Open Office Draw Template', 'otg', 'odg-dist.png', NULL, 'Y', '2006-01-21 17:49:46'), 3315 (NULL, 'Oasis Open Office Base', 'odb', 'odb-dist.png', NULL, 'Y', '2006-01-21 18:03:34'), 3316 (NULL, 'Oasis Open Office HTML', 'oth', 'oth-dist.png', NULL, 'Y', '2006-01-21 18:05:27'), 3317 (NULL, 'Oasis Open Office Writer Master', 'odm', 'odm-dist.png', NULL, 'Y', '2006-01-21 18:06:34'), 3318 (NULL, 'Oasis Open Office Chart', 'odc', NULL, NULL, 'Y', '2006-01-21 18:07:48'), 3319 (NULL, 'Oasis Open Office Image', 'odi', NULL, NULL, 'Y', '2006-01-21 18:08:18');"; 3320 $db->query($query2) or die("0.65 add new type docs ".$lang["update"][90].$db->error()); 3321 } 3322 } 3323 3324 3325 3326 ///// BEGIN MySQL Compatibility 3327 if(FieldExists("glpi_infocoms","warranty_value")) { 3328 $query2=" UPDATE `glpi_infocoms` SET `warranty_value`='0' WHERE `warranty_value` IS NULL;"; 3329 $db->query($query2) or die("0.65 update warranty_value='' in tracking".$lang["update"][90].$db->error()); 3330 3331 $query="ALTER TABLE `glpi_infocoms` CHANGE `warranty_info` `warranty_info` VARCHAR( 255 ) NULL DEFAULT NULL, 3332 CHANGE `warranty_value` `warranty_value` FLOAT NOT NULL DEFAULT '0', 3333 CHANGE `num_commande` `num_commande` VARCHAR( 200 ) NULL DEFAULT NULL, 3334 CHANGE `bon_livraison` `bon_livraison` VARCHAR( 200 ) NULL DEFAULT NULL, 3335 CHANGE `facture` `facture` VARCHAR( 200 ) NULL DEFAULT NULL, 3336 CHANGE `num_immo` `num_immo` VARCHAR( 200 ) NULL DEFAULT NULL;"; 3337 $db->query($query) or die("0.65 alter various fields in infocoms ".$lang["update"][90].$db->error()); 3338 } 3339 3340 if(FieldExists("glpi_reservation_item","comments")) { 3341 $query="ALTER TABLE `glpi_reservation_item` CHANGE `comments` `comments` TEXT NULL "; 3342 $db->query($query) or die("0.65 alter comments in glpi_reservation_item ".$lang["update"][90].$db->error()); 3343 } 3344 3345 3346 if(FieldExists("glpi_cartridges_type","comments")) { 3347 $query="ALTER TABLE `glpi_cartridges_type` CHANGE `name` `name` VARCHAR( 255 ) NULL DEFAULT NULL, 3348 CHANGE `ref` `ref` VARCHAR( 255 ) NULL DEFAULT NULL , 3349 CHANGE `comments` `comments` TEXT NULL DEFAULT NULL "; 3350 $db->query($query) or die("0.65 alter various fields in cartridges_type ".$lang["update"][90].$db->error()); 3351 } 3352 3353 if(FieldExists("glpi_computer_device","specificity")) { 3354 $query="ALTER TABLE `glpi_computer_device` CHANGE `specificity` `specificity` VARCHAR( 250 ) NULL "; 3355 $db->query($query) or die("0.65 alter specificity in glpi_computer_device ".$lang["update"][90].$db->error()); 3356 } 3357 3358 $inv_table=array("computers","monitors","networking","peripherals","printers"); 3359 3360 foreach ($inv_table as $table) 3361 if(FieldExists("glpi_$table","comments")) { 3362 $query="ALTER TABLE `glpi_$table` CHANGE `name` `name` VARCHAR( 200 ) NULL , 3363 CHANGE `serial` `serial` VARCHAR( 200 ) NULL , 3364 CHANGE `otherserial` `otherserial` VARCHAR( 200 ) NULL , 3365 CHANGE `contact` `contact` VARCHAR( 200 ) NULL , 3366 CHANGE `contact_num` `contact_num` VARCHAR( 200 ) NULL , 3367 CHANGE `location` `location` INT( 11 ) NOT NULL DEFAULT '0', 3368 CHANGE `comments` `comments` TEXT NULL "; 3369 $db->query($query) or die("0.65 alter various fields in $table ".$lang["update"][90].$db->error()); 3370 } 3371 3372 if(FieldExists("glpi_computers","os")) { 3373 $db->query($query) or die("0.65 alter various fields in $table ".$lang["update"][90].$db->error()); 3374 $query="ALTER TABLE `glpi_computers` CHANGE `os` `os` INT( 11 ) NOT NULL DEFAULT '0', 3375 CHANGE `model` `model` INT( 11 ) NOT NULL DEFAULT '0', 3376 CHANGE `type` `type` INT( 11 ) NOT NULL DEFAULT '0'"; 3377 $db->query($query) or die("0.65 alter various fields in computers ".$lang["update"][90].$db->error()); 3378 3379 } 3380 if(FieldExists("glpi_networking","ram")) { 3381 $query="ALTER TABLE `glpi_networking` CHANGE `ram` `ram` VARCHAR( 200 ) NULL , 3382 CHANGE `ifmac` `ifmac` VARCHAR( 200 ) NULL , 3383 CHANGE `ifaddr` `ifaddr` VARCHAR( 200 ) NULL"; 3384 $db->query($query) or die("0.65 alter 2 various fields in networking ".$lang["update"][90].$db->error()); 3385 } 3386 3387 if(FieldExists("glpi_peripherals","brand")) { 3388 $query="ALTER TABLE `glpi_peripherals` CHANGE `brand` `brand` VARCHAR( 200 ) NULL "; 3389 $db->query($query) or die("0.65 alter 2 various fields in peripherals ".$lang["update"][90].$db->error()); 3390 } 3391 3392 if(FieldExists("glpi_printers","ramSize")) { 3393 $query="ALTER TABLE `glpi_printers` CHANGE `ramSize` `ramSize` VARCHAR( 200 ) NULL "; 3394 $db->query($query) or die("0.65 alter 2 various fields in printers ".$lang["update"][90].$db->error()); 3395 } 3396 if(FieldExists("glpi_consumables_type","comments")) { 3397 $query="ALTER TABLE `glpi_consumables_type` CHANGE `name` `name` VARCHAR( 255 ) NULL , 3398 CHANGE `ref` `ref` VARCHAR( 255 ) NULL , 3399 CHANGE `comments` `comments` TEXT NULL "; 3400 $db->query($query) or die("0.65 alter various fields in consumables_type ".$lang["update"][90].$db->error()); 3401 } 3402 3403 if(FieldExists("glpi_contacts","comments")) { 3404 $query="ALTER TABLE `glpi_contacts` CHANGE `name` `name` VARCHAR( 255 ) NULL , 3405 CHANGE `phone` `phone` VARCHAR( 200 ) NULL , 3406 CHANGE `phone2` `phone2` VARCHAR( 200 ) NULL , 3407 CHANGE `fax` `fax` VARCHAR( 200 ) NULL , 3408 CHANGE `email` `email` VARCHAR( 255 ) NULL , 3409 CHANGE `comments` `comments` TEXT NULL "; 3410 $db->query($query) or die("0.65 alter various fields in contacts ".$lang["update"][90].$db->error()); 3411 } 3412 3413 3414 if(FieldExists("glpi_contracts","comments")) { 3415 $query="ALTER TABLE `glpi_contracts` CHANGE `name` `name` VARCHAR( 255 ) NULL , 3416 CHANGE `num` `num` VARCHAR( 255 ) NULL , 3417 CHANGE `comments` `comments` TEXT NULL , 3418 CHANGE `compta_num` `compta_num` VARCHAR( 255 ) NULL "; 3419 $db->query($query) or die("0.65 alter various fields in contracts ".$lang["update"][90].$db->error()); 3420 } 3421 3422 $device=array("case","control","drive","gfxcard","hdd","iface","moboard","pci","power","processor","ram","sndcard"); 3423 3424 foreach ($device as $dev){ 3425 if(FieldExists("glpi_device_$dev","comment")) { 3426 $query="ALTER TABLE `glpi_device_$dev` CHANGE `designation` `designation` VARCHAR( 255 ) NULL , 3427 CHANGE `comment` `comment` TEXT NULL , 3428 CHANGE `specif_default` `specif_default` VARCHAR( 250 ) NULL "; 3429 $db->query($query) or die("0.65 alter various fields in device_$dev ".$lang["update"][90].$db->error()); 3430 } 3431 if(!isIndex("glpi_device_$dev","designation")) { 3432 $query="ALTER TABLE `glpi_device_$dev` ADD INDEX ( `designation` ); "; 3433 $db->query($query) or die("0.65 alter various fields in device_$dev ".$lang["update"][90].$db->error()); 3434 } 3435 } 3436 3437 if(FieldExists("glpi_docs","comment")) { 3438 $query="ALTER TABLE `glpi_docs` CHANGE `name` `name` VARCHAR( 255 ) NULL , 3439 CHANGE `filename` `filename` VARCHAR( 255 ) NULL , 3440 CHANGE `mime` `mime` VARCHAR( 30 ) NULL , 3441 CHANGE `comment` `comment` TEXT NULL , 3442 CHANGE `link` `link` VARCHAR( 255 ) NULL "; 3443 $db->query($query) or die("0.65 alter various fields in docs ".$lang["update"][90].$db->error()); 3444 } 3445 3446 if(FieldExists("glpi_enterprises","comments")) { 3447 $query="ALTER TABLE `glpi_enterprises` CHANGE `name` `name` VARCHAR( 200 ) NULL , 3448 CHANGE `address` `address` TEXT NULL , 3449 CHANGE `website` `website` VARCHAR( 200 ) NULL , 3450 CHANGE `phonenumber` `phonenumber` VARCHAR( 200 ) NULL , 3451 CHANGE `comments` `comments` TEXT NULL , 3452 CHANGE `fax` `fax` VARCHAR( 255 ) NULL , 3453 CHANGE `email` `email` VARCHAR( 255 ) NULL "; 3454 $db->query($query) or die("0.65 alter various fields in enterprises ".$lang["update"][90].$db->error()); 3455 } 3456 3457 if(FieldExists("glpi_event_log","message")) { 3458 $query="ALTER TABLE `glpi_event_log` CHANGE `itemtype` `itemtype` VARCHAR( 200 ) NULL , 3459 CHANGE `service` `service` VARCHAR( 200 ) NULL , 3460 CHANGE `message` `message` TEXT NULL "; 3461 $db->query($query) or die("0.65 alter various fields in event_log ".$lang["update"][90].$db->error()); 3462 } 3463 3464 if(FieldExists("glpi_kbitems","question")) { 3465 $query="ALTER TABLE `glpi_kbitems` CHANGE `question` `question` TEXT NULL , 3466 CHANGE `answer` `answer` TEXT NULL "; 3467 $db->query($query) or die("0.65 alter various fields in kbitems ".$lang["update"][90].$db->error()); 3468 } 3469 3470 if(FieldExists("glpi_licenses","serial")) { 3471 $query="ALTER TABLE `glpi_licenses` CHANGE `serial` `serial` VARCHAR( 255 ) NULL"; 3472 $db->query($query) or die("0.65 alter serial in licenses ".$lang["update"][90].$db->error()); 3473 } 3474 3475 if(FieldExists("glpi_links","data")) { 3476 $query="ALTER TABLE `glpi_links` CHANGE `name` `name` VARCHAR( 255 ) NULL , 3477 CHANGE `data` `data` TEXT NULL"; 3478 $db->query($query) or die("0.65 alter various fields in links ".$lang["update"][90].$db->error()); 3479 } 3480 3481 3482 if(FieldExists("glpi_networking_ports","ifmac")) { 3483 $query="ALTER TABLE `glpi_networking_ports` CHANGE `name` `name` CHAR( 200 ) NULL , 3484 CHANGE `ifaddr` `ifaddr` CHAR( 200 ) NULL , 3485 CHANGE `ifmac` `ifmac` CHAR( 200 ) NULL"; 3486 $db->query($query) or die("0.65 alter various fields in networking_ports ".$lang["update"][90].$db->error()); 3487 } 3488 3489 if(FieldExists("glpi_reservation_resa","comment")) { 3490 $query="ALTER TABLE `glpi_reservation_resa` CHANGE `comment` `comment` TEXT NULL"; 3491 $db->query($query) or die("0.65 alter comment in reservation_resa ".$lang["update"][90].$db->error()); 3492 } 3493 3494 if(FieldExists("glpi_software","version")) { 3495 $query="ALTER TABLE `glpi_software` CHANGE `name` `name` VARCHAR( 200 ) NULL , 3496 CHANGE `version` `version` VARCHAR( 200 ) NULL "; 3497 $db->query($query) or die("0.65 alter various fields in software ".$lang["update"][90].$db->error()); 3498 } 3499 3500 if(FieldExists("glpi_type_docs","name")) { 3501 $query="ALTER TABLE `glpi_type_docs` CHANGE `name` `name` VARCHAR( 255 ) NULL , 3502 CHANGE `ext` `ext` VARCHAR( 10 ) NULL , 3503 CHANGE `icon` `icon` VARCHAR( 255 ) NULL , 3504 CHANGE `mime` `mime` VARCHAR( 100 ) NULL "; 3505 $db->query($query) or die("0.65 alter various fields in type_docs ".$lang["update"][90].$db->error()); 3506 } 3507 3508 if(FieldExists("glpi_users","language")) { 3509 $query="ALTER TABLE `glpi_users` CHANGE `name` `name` VARCHAR( 80 ) NULL , 3510 CHANGE `password` `password` VARCHAR( 80 ) NULL , 3511 CHANGE `password_md5` `password_md5` VARCHAR( 80 ) NULL , 3512 CHANGE `email` `email` VARCHAR( 200 ) NULL , 3513 CHANGE `realname` `realname` VARCHAR( 255 ) NULL , 3514 CHANGE `language` `language` VARCHAR( 255 ) NULL "; 3515 $db->query($query) or die("0.65 alter various fields in users ".$lang["update"][90].$db->error()); 3516 } 3517 3518 if(FieldExists("glpi_config","cut")) { 3519 $query="ALTER TABLE `glpi_config` CHANGE `num_of_events` `num_of_events` VARCHAR( 200 ) NULL , 3520 CHANGE `jobs_at_login` `jobs_at_login` VARCHAR( 200 ) NULL , 3521 CHANGE `sendexpire` `sendexpire` VARCHAR( 200 ) NULL , 3522 CHANGE `cut` `cut` VARCHAR( 200 ) NULL , 3523 CHANGE `expire_events` `expire_events` VARCHAR( 200 ) NULL , 3524 CHANGE `list_limit` `list_limit` VARCHAR( 200 ) NULL , 3525 CHANGE `version` `version` VARCHAR( 200 ) NULL , 3526 CHANGE `logotxt` `logotxt` VARCHAR( 200 ) NULL , 3527 CHANGE `root_doc` `root_doc` VARCHAR( 200 ) NULL , 3528 CHANGE `event_loglevel` `event_loglevel` VARCHAR( 200 ) NULL , 3529 CHANGE `mailing` `mailing` VARCHAR( 200 ) NULL , 3530 CHANGE `imap_auth_server` `imap_auth_server` VARCHAR( 200 ) NULL , 3531 CHANGE `imap_host` `imap_host` VARCHAR( 200 ) NULL , 3532 CHANGE `ldap_host` `ldap_host` VARCHAR( 200 ) NULL , 3533 CHANGE `ldap_basedn` `ldap_basedn` VARCHAR( 200 ) NULL , 3534 CHANGE `ldap_rootdn` `ldap_rootdn` VARCHAR( 200 ) NULL , 3535 CHANGE `ldap_pass` `ldap_pass` VARCHAR( 200 ) NULL , 3536 CHANGE `admin_email` `admin_email` VARCHAR( 200 ) NULL , 3537 CHANGE `mailing_signature` `mailing_signature` VARCHAR( 200 ) NOT NULL DEFAULT '--' , 3538 CHANGE `mailing_new_admin` `mailing_new_admin` tinyint(4) NOT NULL DEFAULT '1' , 3539 CHANGE `mailing_followup_admin` `mailing_followup_admin` tinyint(4) NOT NULL DEFAULT '1' , 3540 CHANGE `mailing_finish_admin` `mailing_finish_admin` tinyint(4) NOT NULL DEFAULT '1' , 3541 CHANGE `mailing_new_all_admin` `mailing_new_all_admin` tinyint(4) NOT NULL DEFAULT '0' , 3542 CHANGE `mailing_followup_all_admin` `mailing_followup_all_admin` tinyint(4) NOT NULL DEFAULT '0' , 3543 CHANGE `mailing_finish_all_admin` `mailing_finish_all_admin` tinyint(4) NOT NULL DEFAULT '0' , 3544 CHANGE `mailing_new_all_normal` `mailing_new_all_normal` tinyint(4) NOT NULL DEFAULT '0' , 3545 CHANGE `mailing_followup_all_normal` `mailing_followup_all_normal` tinyint(4) NOT NULL DEFAULT '0' , 3546 CHANGE `mailing_finish_all_normal` `mailing_finish_all_normal` tinyint(4) NOT NULL DEFAULT '0' , 3547 CHANGE `mailing_new_attrib` `mailing_new_attrib` tinyint(4) NOT NULL DEFAULT '1' , 3548 CHANGE `mailing_followup_attrib` `mailing_followup_attrib` tinyint(4) NOT NULL DEFAULT '1' , 3549 CHANGE `mailing_finish_attrib` `mailing_finish_attrib` tinyint(4) NOT NULL DEFAULT '1' , 3550 CHANGE `mailing_new_user` `mailing_new_user` tinyint(4) NOT NULL DEFAULT '1' , 3551 CHANGE `mailing_followup_user` `mailing_followup_user` tinyint(4) NOT NULL DEFAULT '1' , 3552 CHANGE `mailing_finish_user` `mailing_finish_user` tinyint(4) NOT NULL DEFAULT '1' , 3553 CHANGE `mailing_resa_all_admin` `mailing_resa_all_admin` tinyint(4) NOT NULL DEFAULT '0' , 3554 CHANGE `mailing_resa_user` `mailing_resa_user` tinyint(4) NOT NULL DEFAULT '1' , 3555 CHANGE `mailing_resa_admin` `mailing_resa_admin` tinyint(4) NOT NULL DEFAULT '1' , 3556 CHANGE `ldap_field_name` `ldap_field_name` VARCHAR( 200 ) NULL , 3557 CHANGE `ldap_field_email` `ldap_field_email` VARCHAR( 200 ) NULL , 3558 CHANGE `ldap_field_location` `ldap_field_location` VARCHAR( 200 ) NULL , 3559 CHANGE `ldap_field_realname` `ldap_field_realname` VARCHAR( 200 ) NULL , 3560 CHANGE `ldap_field_phone` `ldap_field_phone` VARCHAR( 200 ) NULL , 3561 CHANGE `ldap_condition` `ldap_condition` VARCHAR( 255 ) NULL , 3562 CHANGE `permit_helpdesk` `permit_helpdesk` VARCHAR( 200 ) NULL , 3563 CHANGE `cas_host` `cas_host` VARCHAR( 255 ) NULL , 3564 CHANGE `cas_port` `cas_port` VARCHAR( 255 ) NULL , 3565 CHANGE `cas_uri` `cas_uri` VARCHAR( 255 ) NULL , 3566 CHANGE `url_base` `url_base` VARCHAR( 255 ) NULL , 3567 CHANGE `text_login` `text_login` TEXT NULL , 3568 CHANGE `founded_new_version` `founded_new_version` VARCHAR( 10 ) NULL "; 3569 $db->query($query) or die("0.65 alter various fields in config ".$lang["update"][90].$db->error()); 3570 } 3571 ///// END MySQL Compatibility 3572 3573 3574 if(!FieldExists("glpi_config","dropdown_limit")) { 3575 $query="ALTER TABLE `glpi_config` ADD `dropdown_limit` INT( 11 ) DEFAULT '50' NOT NULL "; 3576 $db->query($query) or die("0.65 add dropdown_limit in config ".$lang["update"][90].$db->error()); 3577 } 3578 3579 3580 if(FieldExists("glpi_consumables_type","type")) { 3581 $query="ALTER TABLE `glpi_consumables_type` CHANGE `type` `type` INT( 11 ) NOT NULL DEFAULT '0', 3582 CHANGE `alarm` `alarm` INT( 11 ) NOT NULL DEFAULT '10'"; 3583 $db->query($query) or die("0.65 alter type and alarm in consumables_type ".$lang["update"][90].$db->error()); 3584 } 3585 3586 3587 if(!FieldExists("glpi_config","post_only_followup")) { 3588 $query="ALTER TABLE `glpi_config` ADD `post_only_followup` tinyint( 4 ) DEFAULT '1' NOT NULL "; 3589 $db->query($query) or die("0.65 add dropdown_limit in config ".$lang["update"][90].$db->error()); 3590 } 3591 3592 if(!FieldExists("glpi_monitors","flags_dvi")) { 3593 $query="ALTER TABLE `glpi_monitors` ADD `flags_dvi` tinyint( 4 ) DEFAULT '0' NOT NULL AFTER `flags_bnc`"; 3594 $db->query($query) or die("0.65 add dropdown_limit in config ".$lang["update"][90].$db->error()); 3595 } 3596 3597 if(!TableExists("glpi_history")) { 3598 $query="CREATE TABLE `glpi_history` ( 3599 `ID` int(11) NOT NULL auto_increment, 3600 `FK_glpi_device` int(11) NOT NULL default '0', 3601 `device_type` tinyint(4) NOT NULL default '0', 3602 `device_internal_type` int(11) default '0', 3603 `device_internal_action` tinyint(4) default '0', 3604 `user_name` varchar(200) default NULL, 3605 `date_mod` datetime default NULL, 3606 `id_search_option` int(11) NOT NULL default '0', 3607 `old_value` varchar(255) default NULL, 3608 `new_value` varchar(255) default NULL, 3609 PRIMARY KEY (`ID`), 3610 KEY `FK_glpi_device` (`FK_glpi_device`) 3611 ) TYPE=MyISAM;"; 3612 3613 $db->query($query) or die("0.65 add glpi_history table".$lang["update"][90].$db->error()); 3614 } 3615 3616 if(FieldExists("glpi_tracking","assign_type")) { 3617 3618 $query="ALTER TABLE `glpi_tracking` ADD `assign_ent` INT NOT NULL DEFAULT '0' AFTER `assign` "; 3619 $db->query($query) or die("0.65 add assign_ent in tracking ".$lang["update"][90].$db->error()); 3620 3621 $query="UPDATE `glpi_tracking` SET assign_ent=assign WHERE assign_type='".ENTERPRISE_TYPE."'"; 3622 $db->query($query) or die("0.65 update assign_ent in tracking ".$lang["update"][90].$db->error()); 3623 3624 $query="UPDATE `glpi_tracking` SET assign=0 WHERE assign_type='".ENTERPRISE_TYPE."'"; 3625 $db->query($query) or die("0.65 update assign_ent in tracking ".$lang["update"][90].$db->error()); 3626 3627 $query="ALTER TABLE `glpi_tracking` DROP `assign_type`"; 3628 $db->query($query) or die("0.65 drop assign_type in tracking ".$lang["update"][90].$db->error()); 3629 3630 3631 3632 } 3633 3634 if(!FieldExists("glpi_config","mailing_update_admin")) { 3635 $query="ALTER TABLE `glpi_config` ADD `mailing_update_admin` tinyint(4) NOT NULL DEFAULT '1' AFTER `mailing_new_admin` ;"; 3636 $db->query($query) or die("0.65 add mailing_update_admin in config".$lang["update"][90].$db->error()); 3637 } 3638 if(!FieldExists("glpi_config","mailing_update_all_admin")) { 3639 $query="ALTER TABLE `glpi_config` ADD `mailing_update_all_admin` tinyint(4) NOT NULL DEFAULT '0' AFTER `mailing_new_all_admin` ;"; 3640 $db->query($query) or die("0.65 add mailing_update_all_admin in config".$lang["update"][90].$db->error()); 3641 } 3642 if(!FieldExists("glpi_config","mailing_update_all_normal")) { 3643 $query="ALTER TABLE `glpi_config` ADD `mailing_update_all_normal` tinyint(4) NOT NULL DEFAULT '0' AFTER `mailing_new_all_normal` ;"; 3644 $db->query($query) or die("0.65 add mailing_update_all_normal in config".$lang["update"][90].$db->error()); 3645 } 3646 if(!FieldExists("glpi_config","mailing_update_attrib")) { 3647 $query="ALTER TABLE `glpi_config` ADD `mailing_update_attrib` tinyint(4) NOT NULL DEFAULT '1' AFTER `mailing_new_attrib` ;"; 3648 $db->query($query) or die("0.65 add mailing_update_attrib in config".$lang["update"][90].$db->error()); 3649 } 3650 if(!FieldExists("glpi_config","mailing_update_user")) { 3651 $query="ALTER TABLE `glpi_config` ADD `mailing_update_user` tinyint(4) NOT NULL DEFAULT '1' AFTER `mailing_new_user` ;"; 3652 $db->query($query) or die("0.65 add mailing_update_user in config".$lang["update"][90].$db->error()); 3653 } 3654 3655 if(!FieldExists("glpi_config","ldap_use_tls")) { 3656 $query="ALTER TABLE `glpi_config` ADD `ldap_use_tls` VARCHAR( 200 ) NOT NULL DEFAULT '0' AFTER `ldap_login` "; 3657 $db->query($query) or die("0.65 add ldap_use_tls in config".$lang["update"][90].$db->error()); 3658 } 3659 3660 if(FieldExists("glpi_config","cut")) { // juste pour affichage identique sur toutes les versions. 3661 $query="UPDATE `glpi_config` SET `cut` = '255' WHERE `ID` =1"; 3662 $db->query($query) or die("0.65 update Cut in config".$lang["update"][90].$db->error()); 3663 } 3664 3665 if(!FieldExists("glpi_licenses","comments")) { 3666 $query="ALTER TABLE `glpi_licenses` ADD `comments` TEXT NULL "; 3667 $db->query($query) or die("0.65 add comments in licenses".$lang["update"][90].$db->error()); 3668 } 3669 3670 ///////////// MODE OCS 3671 3672 // Delete plugin table 3673 if(TableExists("glpi_ocs_link")&&!FieldExists("glpi_ocs_link","import_device")) { 3674 $query = "DROP TABLE `glpi_ocs_link`"; 3675 $db->query($query) or die("0.65 MODE OCS drop plugin ocs_link ".$lang["update"][90].$db->error()); 3676 } 3677 3678 if(TableExists("glpi_ocs_config")&&!FieldExists("glpi_ocs_config","checksum")) { 3679 $query = "DROP TABLE `glpi_ocs_config`"; 3680 $db->query($query) or die("0.65 MODE OCS drop plugin ocs_config ".$lang["update"][90].$db->error()); 3681 } 3682 3683 if(!TableExists("glpi_ocs_link")) { 3684 $query = "CREATE TABLE `glpi_ocs_link` ( 3685 `ID` int(11) NOT NULL auto_increment, 3686 `glpi_id` int(11) NOT NULL default '0', 3687 `ocs_id` varchar(255) NOT NULL default '', 3688 `auto_update` int(2) NOT NULL default '1', 3689 `last_update` datetime NOT NULL default '0000-00-00 00:00:00', 3690 `computer_update` LONGTEXT NULL, 3691 `import_device` LONGTEXT NULL, 3692 `import_software` LONGTEXT NULL, 3693 `import_monitor` LONGTEXT NULL, 3694 `import_peripheral` LONGTEXT NULL, 3695 `import_printers` LONGTEXT NULL, 3696 PRIMARY KEY (`ID`), 3697 UNIQUE KEY `ocs_id_2` (`ocs_id`), 3698 KEY `ocs_id` (`ocs_id`), 3699 KEY `glpi_id` (`glpi_id`), 3700 KEY `auto_update` (`auto_update`), 3701 KEY `last_update` (`last_update`) 3702 ) TYPE=MyISAM"; 3703 $db->query($query) or die("0.65 MODE OCS creation ocs_link ".$lang["update"][90].$db->error()); 3704 } 3705 3706 if(!TableExists("glpi_ocs_config")) { 3707 $query = "CREATE TABLE `glpi_ocs_config` ( 3708 `ID` int(11) NOT NULL auto_increment, 3709 `ocs_db_user` varchar(255) NOT NULL default '', 3710 `ocs_db_passwd` varchar(255) NOT NULL default '', 3711 `ocs_db_host` varchar(255) NOT NULL default '', 3712 `ocs_db_name` varchar(255) NOT NULL default '', 3713 `checksum` int(11) NOT NULL default '0', 3714 `import_periph` int(2) NOT NULL default '0', 3715 `import_monitor` int(2) NOT NULL default '0', 3716 `import_software` int(2) NOT NULL default '0', 3717 `import_printer` int(2) NOT NULL default '0', 3718 `import_general_os` int(2) NOT NULL default '0', 3719 `import_general_serial` int(2) NOT NULL default '0', 3720 `import_general_model` int(2) NOT NULL default '0', 3721 `import_general_enterprise` int(2) NOT NULL default '0', 3722 `import_general_type` int(2) NOT NULL default '0', 3723 `import_general_domain` int(2) NOT NULL default '0', 3724 `import_general_contact` int(2) NOT NULL default '0', 3725 `import_general_comments` int(2) NOT NULL default '0', 3726 `import_device_processor` int(2) NOT NULL default '0', 3727 `import_device_memory` int(2) NOT NULL default '0', 3728 `import_device_hdd` int(2) NOT NULL default '0', 3729 `import_device_iface` int(2) NOT NULL default '0', 3730 `import_device_gfxcard` int(2) NOT NULL default '0', 3731 `import_device_sound` int(2) NOT NULL default '0', 3732 `import_device_drives` int(2) NOT NULL default '0', 3733 `import_device_ports` int(2) NOT NULL default '0', 3734 `import_device_modems` int(2) NOT NULL default '0', 3735 `import_ip` int(2) NOT NULL default '0', 3736 `default_state` int(11) NOT NULL default '0', 3737 `tag_limit` varchar(255) NOT NULL default '', 3738 PRIMARY KEY (`ID`) 3739 ) TYPE=MyISAM"; 3740 3741 $db->query($query) or die("0.65 MODE OCS creation ocs_config ".$lang["update"][90].$db->error()); 3742 $query = "INSERT INTO `glpi_ocs_config` VALUES (1, 'ocs', 'ocs', 'localhost', 'ocsweb', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '');"; 3743 $db->query($query) or die("0.65 MODE OCS add default config ".$lang["update"][90].$db->error()); 3744 3745 } 3746 3747 if(!FieldExists("glpi_computers","ocs_import")) { 3748 $query = "ALTER TABLE `glpi_computers` ADD `ocs_import` TINYINT NOT NULL DEFAULT '0'"; 3749 $db->query($query) or die("0.65 MODE OCS add default config ".$lang["update"][90].$db->error()); 3750 } 3751 3752 if(!FieldExists("glpi_config","ocs_mode")) { 3753 $query = "ALTER TABLE `glpi_config` ADD `ocs_mode` TINYINT NOT NULL DEFAULT '0' "; 3754 $db->query($query) or die("0.65 MODE OCS add ocs_mode in config ".$lang["update"][90].$db->error()); 3755 } 3756 ///////////// FIN MODE OCS 3757 3758 3759 if(!TableExists("glpi_dropdown_budget")) { 3760 $query = "CREATE TABLE `glpi_dropdown_budget` ( 3761 `ID` int(11) NOT NULL auto_increment, 3762 `name` varchar(255) NOT NULL DEFAULT '', 3763 PRIMARY KEY (`ID`) 3764 ) TYPE=MyISAM;"; 3765 $db->query($query) or die("0.65 add dropdown_budget ".$lang["update"][90].$db->error()); 3766 } 3767 3768 if(!FieldExists("glpi_infocoms","budget")) { 3769 $query = "ALTER TABLE `glpi_infocoms` ADD `budget` INT NULL DEFAULT '0';"; 3770 $db->query($query) or die("0.65 add budget in infocoms ".$lang["update"][90].$db->error()); 3771 } 3772 3773 if(!FieldExists("glpi_tracking","cost_time")) { 3774 $query = "ALTER TABLE `glpi_tracking` ADD `cost_time` FLOAT NOT NULL DEFAULT '0', 3775 ADD `cost_fixed` FLOAT NOT NULL DEFAULT '0', 3776 ADD `cost_material` FLOAT NOT NULL DEFAULT '0'"; 3777 $db->query($query) or die("0.65 add cost fields in tracking ".$lang["update"][90].$db->error()); 3778 } 3779 3780 // Global Printers 3781 if(!FieldExists("glpi_printers","is_global")) { 3782 $query="ALTER TABLE `glpi_printers` ADD `is_global` ENUM('0', '1') DEFAULT '0' NOT NULL AFTER `FK_glpi_enterprise` ;"; 3783 $db->query($query) or die("0.6 add is_global in printers ".$lang["update"][90].$db->error()); 3784 } 3785 3786 if(!FieldExists("glpi_config","debug")) { 3787 $query="ALTER TABLE `glpi_config` ADD `debug` int(2) NOT NULL default '0' "; 3788 $db->query($query) or die("0.65 add debug in config ".$lang["update"][90].$db->error()); 3789 } 3790 3791 if(!TableExists("glpi_dropdown_os_version")) { 3792 $query = "CREATE TABLE `glpi_dropdown_os_version` ( 3793 `ID` int(11) NOT NULL auto_increment, 3794 `name` varchar(255) NOT NULL default '', 3795 PRIMARY KEY (`ID`) 3796 ) TYPE=MyISAM;"; 3797 $db->query($query) or die("0.65 add dropdown_os_version ".$lang["update"][90].$db->error()); 3798 } 3799 3800 if(!TableExists("glpi_dropdown_os_sp")) { 3801 $query = "CREATE TABLE `glpi_dropdown_os_sp` ( 3802 `ID` int(11) NOT NULL auto_increment, 3803 `name` varchar(255) NOT NULL default '', 3804 PRIMARY KEY (`ID`) 3805 ) TYPE=MyISAM;"; 3806 $db->query($query) or die("0.65 add dropdown_os_sp ".$lang["update"][90].$db->error()); 3807 } 3808 3809 if(!FieldExists("glpi_computers","os_version")) { 3810 $query="ALTER TABLE `glpi_computers` ADD `os_version` INT NOT NULL DEFAULT '0' AFTER `os` , 3811 ADD `os_sp` INT NOT NULL DEFAULT '0' AFTER `os_version` "; 3812 $db->query($query) or die("0.65 add os_version os_sp in computers ".$lang["update"][90].$db->error()); 3813 } 3814 3815 // ADD INDEX 3816 $tbl=array("cartridges_type","computers","consumables_type","contacts","contracts","docs","enterprises","monitors","networking","peripherals","printers","software","users"); 3817 3818 foreach ($tbl as $t) 3819 if(!isIndex("glpi_$t","name")) { 3820 $query="ALTER TABLE `glpi_$t` ADD INDEX ( `name` ) "; 3821 $db->query($query) or die("0.65 add index in name field $t ".$lang["update"][90].$db->error()); 3822 } 3823 3824 $result=$db->list_tables(); 3825 while ($line = $db->fetch_array($result)) 3826 if (ereg("glpi_dropdown",$line[0])||ereg("glpi_type",$line[0])){ 3827 if(!isIndex($line[0],"name")) { 3828 $query="ALTER TABLE `".$line[0]."` ADD INDEX ( `name` ) "; 3829 $db->query($query) or die("0.65 add index in name field ".$line[0]." ".$lang["update"][90].$db->error()); 3830 } 3831 } 3832 3833 if(!isIndex("glpi_reservation_item","device_type_2")) { 3834 $query="ALTER TABLE `glpi_reservation_item` ADD INDEX `device_type_2` ( `device_type`,`id_device` ) "; 3835 $db->query($query) or die("0.65 add index in reservation_item ".$line[0]." ".$lang["update"][90].$db->error()); 3836 } 3837 3838 3839 if(!TableExists("glpi_dropdown_model_phones")) { 3840 3841 $query = "CREATE TABLE `glpi_dropdown_model_phones` ( 3842 `ID` int(11) NOT NULL auto_increment, 3843 `name` varchar(255) NOT NULL default '', 3844 PRIMARY KEY (`ID`), 3845 KEY `name` (`name`)