[ PHPXref.com ] [ Generated: Sun Jul 20 17:59:13 2008 ] [ GLPI 0.65 ]
[ Index ]     [ Variables ]     [ Functions ]     [ Classes ]     [ Constants ]     [ Statistics ]

title

Body

[close]

/ -> update.php (source)

   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>&nbsp;</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`)