Projet

Général

Profil

Paste
Statistiques
| Branche: | Révision:

ryxeo-glpi-git / install / update_042_05.php @ b67d8923

Historique | Voir | Annoter | Télécharger (53,4 ko)

1
<?php
2
/*
3
 * @version $Id: update_042_05.php 7763 2009-01-06 18:44:50Z moyo $
4
 -------------------------------------------------------------------------
5
 GLPI - Gestionnaire Libre de Parc Informatique
6
 Copyright (C) 2003-2009 by the INDEPNET Development Team.
7

8
 http://indepnet.net/   http://glpi-project.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
/// Update from 0.42 to 0.5
37
function update042to05(){
38
        global $DB,$LANG;
39

    
40
        echo "<p class='center'>Version 0.5 </p>";
41

    
42

    
43
        // Augmentation taille itemtype
44
        $query = "ALTER TABLE `glpi_event_log` CHANGE `itemtype` `itemtype` VARCHAR(20) NOT NULL ;";
45
        $DB->query($query) or die("4204 ".$LANG["update"][90].$DB->error());
46

    
47
        // Correction des itemtype tronqu�
48
        $query = "UPDATE `glpi_event_log` SET `itemtype` = 'reservation' WHERE `itemtype` = 'reservatio' ;";
49
        $DB->query($query) or die("4204 ".$LANG["update"][90].$DB->error());
50

    
51

    
52
        /*******************************GLPI 0.5***********************************************/
53
        //pass all templates to computers
54
        if(!FieldExists("glpi_computers","is_template")) {
55
                $query = "ALTER TABLE `glpi_computers` ADD `is_template` ENUM('0','1') DEFAULT '0' NOT NULL ";
56
                $DB->query($query) or die("0.5 alter computers add is_template ".$LANG["update"][90].$DB->error());
57
                $query = "ALTER TABLE `glpi_computers` ADD `tplname` VARCHAR(200) DEFAULT NULL ";
58
                $DB->query($query) or die("0.5 alter computers add tplname ".$LANG["update"][90].$DB->error());
59

    
60
                $query = "Select * from glpi_templates";
61
                $result = $DB->query($query);
62

    
63

    
64
                while($line = $DB->fetch_array($result)) {
65
                        $line=addslashes_deep($line);
66
                        $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`)";
67

    
68
                        $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"]."')";        
69
                        //echo $query2;
70
                        $DB->query($query2) or die("0.5-convert template 2 computers ".$DB->error());
71
                }
72
                $DB->free_result($result);
73
                $query = "DROP TABLE glpi_templates";
74
                $DB->query($query) or die("0.5 drop table templates ".$DB->error());
75

    
76
                $query="SELECT ID FROM glpi_computers WHERE tplname='Blank Template'";
77
                $result=$DB->query($query);
78
                if ($DB->numrows($result)==0){
79
                        $query="INSERT INTO glpi_computers (is_template,tplname) VALUES ('1','Blank Template')";
80
                        $DB->query($query) or die("0.5 add blank template ".$LANG["update"][90].$DB->error());        
81
                }
82
                $DB->free_result($result);
83
        }
84

    
85

    
86

    
87

    
88
        //New internal peripherals ( devices ) config
89

    
90
        if(!TableExists("glpi_computer_device")) {
91
                $query = "CREATE TABLE `glpi_computer_device` (
92
                        `ID` int(11) NOT NULL auto_increment,
93
                        `specificity` varchar(250) NOT NULL default '',
94
                        `device_type` tinyint(4) NOT NULL default '0',
95
                        `FK_device` int(11) NOT NULL default '0',
96
                        `FK_computers` int(11) NOT NULL default '0',
97
                        PRIMARY KEY  (`ID`),
98
                        KEY (`device_type`),
99
                        KEY (`device_type`,`FK_device`),
100
                        KEY (`FK_computers`)
101
                                ) TYPE=MyISAM;";
102
                $DB->query($query) or die("0.5 CREATE TABLE `glpi_computer_device` ".$LANG["update"][90].$DB->error());
103
        }
104

    
105
        if(!TableExists("glpi_device_gfxcard")) {
106
                $query = "CREATE TABLE `glpi_device_gfxcard` (
107
                        `ID` int(11) NOT NULL auto_increment,
108
                        `designation` varchar(120) NOT NULL default '',
109
                        `ram` varchar(10) NOT NULL default '',
110
                        `interface` enum('AGP','PCI','PCI-X','Other') NOT NULL default 'AGP',
111
                        `comment` text NOT NULL,
112
                        `FK_glpi_enterprise` int(11) NOT NULL default '0',
113
                        `specif_default` VARCHAR(250) NOT NULL,
114
                        PRIMARY KEY  (`ID`),
115
                        KEY(`FK_glpi_enterprise`)
116
                                ) TYPE=MyISAM;";
117
                $DB->query($query) or die("0.5 create table `glpi_device_gfxcard` ".$LANG["update"][90].$DB->error());
118
                compDpd2Device(GFX_DEVICE,"gfxcard","gfxcard","gfxcard");
119
        }
120
        if(!TableExists("glpi_device_hdd")) {
121
                $query = "CREATE TABLE `glpi_device_hdd` (
122
                        `ID` int(11) NOT NULL auto_increment,
123
                        `designation` varchar(100) NOT NULL default '',
124
                        `rpm` varchar(20) NOT NULL default '',
125
                        `interface` enum('IDE','SATA','SCSI') NOT NULL default 'IDE',
126
                        `cache` varchar(20) NOT NULL default '',
127
                        `comment` text NOT NULL,
128
                        `FK_glpi_enterprise` int(11) NOT NULL default '0',
129
                        `specif_default` VARCHAR(250) NOT NULL,
130
                        PRIMARY KEY  (`ID`),
131
                        KEY(`FK_glpi_enterprise`)
132
                                ) TYPE=MyISAM;";
133
                $DB->query($query) or die("0.5 CREATE TABLE `glpi_device_hdtype` ".$LANG["update"][90].$DB->error());
134
                compDpd2Device(HDD_DEVICE,"hdd","hdtype","hdtype","hdspace");
135
        }
136
        if(!TableExists("glpi_device_iface")) {
137
                $query = "CREATE TABLE `glpi_device_iface` (
138
                        `ID` int(11) NOT NULL auto_increment,
139
                        `designation` varchar(120) NOT NULL default '',
140
                        `bandwidth` varchar(20) NOT NULL default '',
141
                        `comment` text NOT NULL,
142
                        `FK_glpi_enterprise` int(11) NOT NULL default '0',
143
                        `specif_default` VARCHAR(250) NOT NULL,
144
                        PRIMARY KEY  (`ID`),
145
                        KEY(`FK_glpi_enterprise`)
146
                                ) TYPE=MyISAM;";
147
                $DB->query($query) or die("0.5- CREATE TABLE `glpi_device_iface` ".$LANG["update"][90].$DB->error());
148
                compDpd2Device(NETWORK_DEVICE,"iface","network","network");
149
        }
150
        if(!TableExists("glpi_device_moboard")) {
151
                $query = "CREATE TABLE `glpi_device_moboard` (
152
                        `ID` int(11) NOT NULL auto_increment,
153
                        `designation` varchar(100) NOT NULL default '',
154
                        `chipset` varchar(120) NOT NULL default '',
155
                        `comment` text NOT NULL,
156
                        `FK_glpi_enterprise` int(11) NOT NULL default '0',
157
                        `specif_default` VARCHAR(250) NOT NULL,
158
                        PRIMARY KEY  (`ID`),
159
                        KEY(`FK_glpi_enterprise`)
160
                                ) TYPE=MyISAM;";
161
                $DB->query($query) or die("0.5 CREATE TABLE `glpi_device_moboard` ".$LANG["update"][90].$DB->error());
162
                compDpd2Device(MOBOARD_DEVICE,"moboard","moboard","moboard");
163
        }
164
        if(!TableExists("glpi_device_processor")) {
165
                $query = "CREATE TABLE `glpi_device_processor` (
166
                        `ID` int(11) NOT NULL auto_increment,
167
                        `designation` varchar(120) NOT NULL default '',
168
                        `frequence` int(11) NOT NULL default '0',
169
                        `comment` text NOT NULL,
170
                        `FK_glpi_enterprise` int(11) NOT NULL default '0',
171
                        `specif_default` VARCHAR(250) NOT NULL,
172
                        PRIMARY KEY  (`ID`),
173
                        KEY(`FK_glpi_enterprise`)
174
                                ) TYPE=MyISAM;";
175
                $DB->query($query) or die("0.5 CREATE TABLE `glpi_device_processor` ".$LANG["update"][90].$DB->error());
176
                compDpd2Device(PROCESSOR_DEVICE,"processor","processor","processor","processor_speed");
177
        }
178
        if(!TableExists("glpi_device_ram")) {
179
                $query = "CREATE TABLE `glpi_device_ram` (
180
                        `ID` int(11) NOT NULL auto_increment,
181
                        `designation` varchar(100) NOT NULL default '',
182
                        `type` enum('EDO','DDR','SDRAM','SDRAM-2') NOT NULL default 'EDO',
183
                        `frequence` varchar(8) NOT NULL default '',
184
                        `comment` text NOT NULL,
185
                        `FK_glpi_enterprise` int(11) NOT NULL default '0',
186
                        `specif_default` VARCHAR(250) NOT NULL,
187
                        PRIMARY KEY  (`ID`),
188
                        KEY(`FK_glpi_enterprise`)
189
                                ) TYPE=MyISAM;";
190
                $DB->query($query) or die("0.5 CREATE TABLE `glpi_device_ram` ".$LANG["update"][90].$DB->error());
191
                compDpd2Device(RAM_DEVICE,"ram","ram","ramtype","ram");
192
        }
193
        if(!TableExists("glpi_device_sndcard")) {
194
                $query = "CREATE TABLE `glpi_device_sndcard` (
195
                        `ID` int(11) NOT NULL auto_increment,
196
                        `designation` varchar(120) NOT NULL default '',
197
                        `type` varchar(100) NOT NULL default '',
198
                        `comment` text NOT NULL,
199
                        `FK_glpi_enterprise` int(11) NOT NULL default '0',
200
                        `specif_default` VARCHAR(250) NOT NULL,
201
                        PRIMARY KEY  (`ID`),
202
                        KEY(`FK_glpi_enterprise`)
203
                                ) TYPE=MyISAM;";
204
                $DB->query($query) or die("0.5 CREATE TABLE `glpi_device_sndcard ".$LANG["update"][90].$DB->error());
205
                compDpd2Device(SND_DEVICE,"sndcard","sndcard","sndcard");
206
        }
207

    
208
        if(!TableExists("glpi_device_power")) {
209
                $query = "CREATE TABLE glpi_device_power (
210
                        ID int(11) NOT NULL auto_increment,
211
                           designation varchar(255) NOT NULL default '',
212
                           power varchar(20) NOT NULL default '',
213
                           atx enum('Y','N') NOT NULL default 'Y',
214
                           `comment` text NOT NULL,
215
                           FK_glpi_enterprise int(11) NOT NULL default '0',
216
                           `specif_default` VARCHAR(250) NOT NULL,
217
                           PRIMARY KEY (`ID`),
218
                           KEY FK_glpi_enterprise (`FK_glpi_enterprise`)
219
                                   ) TYPE=MyISAM;";
220
                $DB->query($query) or die("Error : ".$query." ".$DB->error());
221
        }
222

    
223
        if(!TableExists("glpi_device_case")) {
224
                $query = "CREATE TABLE glpi_device_case(
225
                        ID int(11) NOT NULL AUTO_INCREMENT ,
226
                           designation varchar(255) NOT NULL default '',
227
                           format enum('Grand', 'Moyen', 'Micro') NOT NULL default 'Moyen',
228
                           `comment` text NOT NULL ,
229
                           FK_glpi_enterprise int(11) NOT NULL default '0',
230
                           `specif_default` VARCHAR(250) NOT NULL,
231
                           PRIMARY KEY (`ID`) ,
232
                           KEY FK_glpi_enterprise(`FK_glpi_enterprise`)
233
                                   )TYPE = MyISAM;";
234
                $DB->query($query) or die("Error : ".$query." ".$DB->error());
235
        }
236

    
237
        if(!TableExists("glpi_device_drive")) {
238
                $query = "CREATE TABLE `glpi_device_drive` (
239
                        `ID` INT NOT NULL AUTO_INCREMENT ,
240
                        `designation` VARCHAR(255) NOT NULL ,
241
                        `is_writer` ENUM('Y', 'N') DEFAULT 'Y' NOT NULL ,
242
                        `speed` VARCHAR(30) NOT NULL ,
243
                        `interface` ENUM('IDE', 'SATA', 'SCSI') NOT NULL ,
244
                        `comment` TEXT NOT NULL ,
245
                        `FK_glpi_enterprise` INT NOT NULL ,
246
                        `specif_default` VARCHAR(250) NOT NULL,
247
                        KEY FK_glpi_enterprise(`FK_glpi_enterprise`),
248
                        PRIMARY KEY (`ID`)
249
                                )TYPE=MyISAM;";
250
                $DB->query($query) or die("Error : ".$query." ".$DB->error());
251
        }
252

    
253
        if(!TableExists("glpi_device_pci")) {
254
                $query = "CREATE TABLE glpi_device_pci (
255
                        ID int(11) NOT NULL auto_increment,
256
                           designation varchar(255) NOT NULL default '',
257
                           `comment` text NOT NULL,
258
                           FK_glpi_enterprise int(11) NOT NULL default '0',
259
                           `specif_default` VARCHAR(250) NOT NULL,
260
                           PRIMARY KEY (ID),
261
                           KEY FK_glpi_enterprise (FK_glpi_enterprise)
262
                                   ) TYPE=MyISAM;";
263
                $DB->query($query) or die("Error : ".$query." ".$DB->error());
264
        } 
265

    
266
        if(!TableExists("glpi_device_control")) {
267
                $query = "CREATE TABLE glpi_device_control (
268
                        ID int(11) NOT NULL auto_increment,
269
                           designation varchar(255) NOT NULL default '',
270
                           interface enum('IDE','SATA','SCSI','USB') NOT NULL default 'IDE',
271
                           raid enum('Y','N') NOT NULL default 'Y',
272
                           `comment` text NOT NULL,
273
                           FK_glpi_enterprise int(11) NOT NULL default '0',
274
                           `specif_default` VARCHAR(250) NOT NULL,
275
                           PRIMARY KEY (ID),
276
                           KEY FK_glpi_enterprise (FK_glpi_enterprise)
277
                                   ) TYPE=MyISAM;";
278
                $DB->query($query) or die("Error : ".$query." ".$DB->error());
279
        }
280

    
281

    
282
        // END new internal devices.
283

    
284
        if(!TableExists("glpi_enterprises")) {
285
                $query = "CREATE TABLE `glpi_enterprises` (
286
                        `ID` int(11) NOT NULL auto_increment,
287
                        `name` varchar(50) NOT NULL default '',
288
                        `type` int(11) NOT NULL default '0',
289
                        `address` text NOT NULL default '',
290
                        `website` varchar(100) NOT NULL default '',
291
                        `phonenumber` varchar(20) NOT NULL default '',
292
                        `comments` text NOT NULL,
293
                        `deleted` enum('Y','N') NOT NULL default 'N',
294
                        PRIMARY KEY  (`ID`),
295
                        KEY `deleted` (`deleted`),
296
                        KEY `type` (`type`)
297
                                ) TYPE=MyISAM;";
298
                $DB->query($query) or die("0.5 CREATE TABLE `glpi_enterprise ".$LANG["update"][90].$DB->error());
299
        }
300

    
301
        /// Base connaissance
302
        if(!TableExists("glpi_dropdown_kbcategories")) {
303
                $query="CREATE TABLE `glpi_dropdown_kbcategories` (
304
                        `ID` int(11) NOT NULL auto_increment,
305
                        `parentID` int(11) NOT NULL default '0',
306
                        `name` varchar(255) NOT NULL,
307
                        PRIMARY KEY  (`ID`),
308
                        KEY(`parentID`),
309
                        UNIQUE KEY(`parentID`,`name`)
310
                                )  TYPE=MyISAM;";
311
                $DB->query($query) or die("0.5 CREATE TABLE `glpi_dropdown_kbcategories ".$LANG["update"][90].$DB->error());
312

    
313
                $query="CREATE TABLE `glpi_kbitems` (
314
                        `ID` int(11) NOT NULL auto_increment,
315
                        `categoryID` int(11) NOT NULL default '0',
316
                        `question` text NOT NULL,
317
                        `answer` text NOT NULL,
318
                        `faq` enum('yes','no') NOT NULL default 'no',
319
                        PRIMARY KEY  (`ID`),
320
                        KEY(`categoryID`)
321
                                ) TYPE=MyISAM;";
322
                $DB->query($query) or die("0.5 CREATE TABLE `glpi_kbitems ".$LANG["update"][90].$DB->error());
323

    
324
        }
325

    
326
        // Comment reservation
327
        if(!FieldExists("glpi_reservation_resa","comment")) {
328
                $query = "ALTER TABLE `glpi_reservation_resa` ADD `comment` VARCHAR(255) NOT NULL ;";
329
                $DB->query($query) or die("0.5 alter reservation add comment ".$LANG["update"][90].$DB->error());
330
        }        
331

    
332
        // Tracking categorie
333
        if(!TableExists("glpi_dropdown_tracking_category")) {
334

    
335
                $query= "CREATE TABLE glpi_dropdown_tracking_category (
336
                        ID int(11) NOT NULL auto_increment,
337
                           name varchar(255) default NULL,
338
                           PRIMARY KEY  (ID)
339
                                   ) TYPE=MyISAM;";
340
                $DB->query($query) or die("0.5 CREATE TABLE `glpi_dropdown_tracking_category ".$LANG["update"][90].$DB->error());
341

    
342
        }
343

    
344
        if(!FieldExists("glpi_tracking","category")) {
345
                $query= "ALTER TABLE `glpi_tracking` ADD `category` INT(11) ;";
346
                $DB->query($query) or die("0.5 alter tracking add categorie ".$LANG["update"][90].$DB->error());
347
        }
348

    
349
        // Nouvelle gestion des software et licenses
350
        if(!FieldExists("glpi_licenses","oem")) {
351
                $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;";
352
                $DB->query($query) or die("0.5 alter licenses add oem + buy ".$LANG["update"][90].$DB->error());
353

    
354
                $query = "ALTER TABLE `glpi_software` ADD `is_update` ENUM('N', 'Y') DEFAULT 'N' NOT NULL , ADD `update_software` INT(11) NOT NULL DEFAULT '-1';";
355
                $DB->query($query) or die("0.5 alter software add update ".$LANG["update"][90].$DB->error());
356
        }
357

    
358
        // Couleur pour les priorit�
359
        if(!FieldExists("glpi_config","priority_1")) {
360
                $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 ;";
361
                $DB->query($query) or die("0.5 alter config add priority_X ".$LANG["update"][90].$DB->error());
362

    
363
        }
364

    
365
        // Gestion des cartouches
366
        if(!TableExists("glpi_cartridges")) {
367
                $query= "CREATE TABLE `glpi_cartridges` (
368
                        `ID` int(11) NOT NULL auto_increment,
369
                        `FK_glpi_cartridges_type` int(11) NOT NULL default '0',
370
                        `FK_glpi_printers` int(11) NOT NULL default '0',
371
                        `date_in` date default NULL,
372
                        `date_use` date default NULL,
373
                        `date_out` date default NULL,
374
                        `pages` int(11)  NOT NULL default '0',
375
                        PRIMARY KEY  (`ID`),
376
                        KEY(`FK_glpi_cartridges_type`),
377
                        KEY(`FK_glpi_printers`)
378
                                ) TYPE=MyISAM;";
379
                $DB->query($query) or die("0.5 CREATE TABLE glpi_cartridges ".$LANG["update"][90].$DB->error());
380

    
381
                $query= "CREATE TABLE `glpi_cartridges_type` (
382
                        `ID` int(11) NOT NULL auto_increment,
383
                        `name` varchar(255) NOT NULL default '',
384
                        `ref` varchar(255) NOT NULL default '',
385
                        `location` int(11) NOT NULL default '0',
386
                        `type` tinyint(4) NOT NULL default '0',
387
                        `FK_glpi_enterprise` int(11) NOT NULL default '0',
388
                        `tech_num` int(11) default '0',
389
                        `deleted` enum('Y','N') NOT NULL default 'N',
390
                        `comments` text NOT NULL,
391
                        PRIMARY KEY  (`ID`),
392
                        KEY(`FK_glpi_enterprise`),
393
                        KEY(`tech_num`),
394
                        KEY(`deleted`)
395
                                ) TYPE=MyISAM;";
396
                $DB->query($query) or die("0.5 CREATE TABLE glpi_cartridges_type ".$LANG["update"][90].$DB->error());
397

    
398
                $query= "CREATE TABLE `glpi_cartridges_assoc` (
399
                        `ID` int(11) NOT NULL auto_increment,
400
                        `FK_glpi_cartridges_type` int(11) NOT NULL default '0',
401
                        `FK_glpi_type_printer` int(11) NOT NULL default '0',
402
                        PRIMARY KEY  (`ID`),
403
                        UNIQUE KEY `FK_glpi_type_printer` (`FK_glpi_type_printer`,`FK_glpi_cartridges_type`),
404
                        KEY(`FK_glpi_cartridges_type`),
405
                        KEY(`FK_glpi_type_printer`) 
406
                                ) TYPE=MyISAM;";
407
                $DB->query($query) or die("0.5 CREATE TABLE glpi_cartridges_assoc ".$LANG["update"][90].$DB->error());
408
        }
409

    
410
        //// DEBUT INSERTION PARTIE GESTION 
411
        if(!TableExists("glpi_contracts")) {
412
                $query= "CREATE TABLE `glpi_contacts` (
413
                        `ID` int(11) NOT NULL auto_increment,
414
                        `name` varchar(255) NOT NULL default '',
415
                        `phone` varchar(30) NOT NULL default '',
416
                        `phone2` varchar(30) NOT NULL default '',
417
                        `fax` varchar(30) NOT NULL default '',
418
                        `email` varchar(255) NOT NULL default '',
419
                        `type` tinyint(4) NOT NULL default '1',
420
                        `comments` text NOT NULL,
421
                        `deleted` enum('Y','N') NOT NULL default 'N',
422
                        PRIMARY KEY  (`ID`)
423
                                ) TYPE=MyISAM;";
424
                $DB->query($query) or die("0.5 CREATE TABLE glpi_contact ".$LANG["update"][90].$DB->error());
425

    
426
                $query = " CREATE TABLE `glpi_dropdown_enttype` (`ID` INT NOT NULL AUTO_INCREMENT ,`name` VARCHAR(255) NOT NULL ,PRIMARY KEY (`ID`))";
427
                $DB->query($query) or die("23 ".$LANG["update"][90].$DB->error());
428

    
429

    
430
                $query= "CREATE TABLE `glpi_contact_enterprise` (
431
                        `ID` int(11) NOT NULL auto_increment,
432
                        `FK_enterprise` int(11) NOT NULL default '0',
433
                        `FK_contact` int(11) NOT NULL default '0',
434
                        PRIMARY KEY  (`ID`),
435
                        UNIQUE KEY `FK_enterprise` (`FK_enterprise`,`FK_contact`),
436
                        KEY(`FK_enterprise`),
437
                        KEY(`FK_contact`) 
438
                                ) TYPE=MyISAM;";
439
                $DB->query($query) or die("0.5 CREATE TABLE glpi_contact_enterprise ".$LANG["update"][90].$DB->error());
440

    
441
                $query= "CREATE TABLE `glpi_contracts` (
442
                        `ID` int(11) NOT NULL auto_increment,
443
                        `name` varchar(255) NOT NULL default '',
444
                        `num` varchar(255) NOT NULL default '',
445
                        `cost` float NOT NULL default '0',
446
                        `contract_type` int(11) NOT NULL default '0',
447
                        `begin_date` date default NULL,
448
                        `duration` tinyint(4) NOT NULL default '0',
449
                        `notice` tinyint(4) NOT NULL default '0',
450
                        `periodicity` tinyint(4) NOT NULL default '0',
451
                        `facturation` tinyint(4) NOT NULL default '0',
452
                        `bill_type` int(11) NOT NULL default '0',
453
                        `comments` text NOT NULL,
454
                        `compta_num` varchar(255) NOT NULL default '',
455
                        `deleted` enum('Y','N') NOT NULL default 'N',
456
                        `week_begin_hour` time NOT NULL default '00:00:00',
457
                        `week_end_hour` time NOT NULL default '00:00:00',
458
                        `saturday_begin_hour` time NOT NULL default '00:00:00',
459
                        `saturday_end_hour` time NOT NULL default '00:00:00',
460
                        `saturday` enum('Y','N') NOT NULL default 'N',
461
                        `monday_begin_hour` time NOT NULL default '00:00:00',
462
                        `monday_end_hour` time NOT NULL default '00:00:00',
463
                        `monday` enum('Y','N') NOT NULL default 'N',
464
                        PRIMARY KEY  (`ID`),
465
                        KEY `contract_type` (`contract_type`),
466
                        KEY `begin_date` (`begin_date`),
467
                        KEY `bill_type` (`bill_type`)
468
                                ) TYPE=MyISAM;";
469
                $DB->query($query) or die("0.5 CREATE TABLE glpi_contract ".$LANG["update"][90].$DB->error());
470

    
471
                $query= "CREATE TABLE `glpi_contract_device` (
472
                        `ID` int(11) NOT NULL auto_increment,
473
                        `FK_contract` int(11) NOT NULL default '0',
474
                        `FK_device` int(11) NOT NULL default '0',
475
                        `device_type` tinyint(4) NOT NULL default '0',
476
                        PRIMARY KEY  (`ID`),
477
                        UNIQUE KEY `FK_contract` (`FK_contract`,`FK_device`,`device_type`),
478
                        KEY (`FK_contract`),
479
                        KEY (`FK_device`,`device_type`)
480
                                ) TYPE=MyISAM;";
481
                $DB->query($query) or die("0.5 CREATE TABLE glpi_contract_device ".$LANG["update"][90].$DB->error());
482

    
483
                $query= "CREATE TABLE `glpi_contract_enterprise` (
484
                        `ID` int(11) NOT NULL auto_increment,
485
                        `FK_enterprise` int(11) NOT NULL default '0',
486
                        `FK_contract` int(11) NOT NULL default '0',
487
                        PRIMARY KEY  (`ID`),
488
                        UNIQUE KEY `FK_enterprise` (`FK_enterprise`,`FK_contract`),
489
                        KEY  (`FK_enterprise`),
490
                        KEY (`FK_contract`)
491
                                ) TYPE=MyISAM;";
492
                $DB->query($query) or die("0.5 CREATE TABLE glpi_contrat_enterprise ".$LANG["update"][90].$DB->error());
493

    
494
                $query= "CREATE TABLE `glpi_infocoms` (
495
                        `ID` int(11) NOT NULL auto_increment,
496
                        `FK_device` int(11) NOT NULL default '0',
497
                        `device_type` tinyint(4) NOT NULL default '0',
498
                        `buy_date` date NOT NULL default '0000-00-00',
499
                        `use_date` date NOT NULL default '0000-00-00',
500
                        `warranty_duration` tinyint(4) NOT NULL default '0',
501
                        `warranty_info` varchar(255) NOT NULL default '',
502
                        `FK_enterprise` int(11) default NULL,
503
                        `num_commande` varchar(50) NOT NULL default '',
504
                        `bon_livraison` varchar(50) NOT NULL default '',
505
                        `num_immo` varchar(50) NOT NULL default '',
506
                        `value` float NOT NULL default '0',
507
                        `warranty_value` float default NULL,
508
                        `amort_time` tinyint(4) NOT NULL default '0',
509
                        `amort_type` varchar(20) NOT NULL default '',
510
                        `amort_coeff` float NOT NULL default '0',
511
                        `comments` text NOT NULL,
512
                        PRIMARY KEY  (`ID`),
513
                        UNIQUE KEY `FK_device` (`FK_device`,`device_type`),
514
                        KEY `FK_enterprise` (`FK_enterprise`),
515
                        KEY `buy_date` (`buy_date`)
516
                                ) TYPE=MyISAM;";
517
                $DB->query($query) or die("0.5 CREATE TABLE glpi_infocom ".$LANG["update"][90].$DB->error());
518

    
519
                ///// Move warranty infos from item to infocoms.
520

    
521

    
522

    
523
                // Update Warranty Infos
524
                updateWarrantyInfos("glpi_computers",COMPUTER_TYPE);
525
                updateWarrantyInfos("glpi_printers",PRINTER_TYPE);
526
                updateWarrantyInfos("glpi_networking",NETWORKING_TYPE);
527
                updateWarrantyInfos("glpi_monitors",MONITOR_TYPE);
528
                updateWarrantyInfos("glpi_peripherals",PERIPHERAL_TYPE);
529

    
530
                // Update Maintenance Infos
531
                if (isMaintenanceUsed()){
532

    
533
                        $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');";
534
                        $result=$DB->query($query) or die("0.5 insert_init for update maintenace ".$LANG["update"][90].$DB->error());
535

    
536
                        if ($result){
537
                                $query="SELECT ID FROM glpi_contracts;";
538
                                $result=$DB->query($query) or die("0.5 select_init for update maintenace ".$LANG["update"][90].$DB->error());
539
                                if ($result){
540
                                        $data=$DB->fetch_array($result);
541
                                        $IDcontract=$data["ID"];
542
                                        updateMaintenanceInfos("glpi_computers",COMPUTER_TYPE,$IDcontract);
543
                                        updateMaintenanceInfos("glpi_printers",PRINTER_TYPE,$IDcontract);
544
                                        updateMaintenanceInfos("glpi_networking",NETWORKING_TYPE,$IDcontract);
545
                                        updateMaintenanceInfos("glpi_monitors",MONITOR_TYPE,$IDcontract);
546
                                        updateMaintenanceInfos("glpi_peripherals",PERIPHERAL_TYPE,$IDcontract);
547
                                }
548
                        }
549
                } else dropMaintenanceField();
550

    
551
        }
552
        //// FIN INSERTION PARTIE GESTION 
553

    
554
        // Merge de l'OS et de la version
555
        if(FieldExists("glpi_computers","osver")) {
556
                // R�up�ation des couples existants
557
                $query="SELECT DISTINCT glpi_computers.os AS ID , glpi_computers.osver AS VERS, glpi_dropdown_os.name as NAME FROM glpi_computers 
558
                        LEFT JOIN glpi_dropdown_os ON glpi_dropdown_os.ID=glpi_computers.os ORDER BY glpi_computers.os, glpi_computers.osver";
559
                $result=$DB->query($query) or die("0.5 select for update OS ".$LANG["update"][90].$DB->error());
560
                $valeur=array();
561
                $curros=-1;
562
                $currvers="-------------------------";
563
                while ($data=$DB->fetch_array($result)){
564
                        // Nouvel OS -> update de l'element de dropdown
565
                        if ($data["ID"]!=$curros){
566
                                $curros=$data["ID"];
567

    
568
                                if (!empty($data["VERS"])){
569
                                        $query_update="UPDATE glpi_dropdown_os SET name='".$data["NAME"]." - ".$data["VERS"]."' WHERE ID='".$data["ID"]."'";
570
                                        $DB->query($query_update) or die("0.5 update for update OS ".$LANG["update"][90].$DB->error());
571
                                }
572

    
573
                        } else { // OS deja mis a jour -> creation d'un nouvel OS et mise a jour des elements
574
                                $newname=$data["NAME"]." - ".$data["VERS"];
575
                                $query_insert="INSERT INTO glpi_dropdown_os (name) VALUES ('$newname');";
576
                                $DB->query($query_insert) or die("0.5 insert for update OS ".$LANG["update"][90].$DB->error());
577
                                $query_select="SELECT ID from  glpi_dropdown_os WHERE name = '$newname';";
578
                                $res=$DB->query($query_select) or die("0.5 select for update OS ".$LANG["update"][90].$DB->error());
579
                                if ($DB->numrows($res)==1){
580
                                        $query_update="UPDATE glpi_computers SET os='".$DB->result($res,0,"ID")."' WHERE os='".$data["ID"]."' AND osver='".$data["VERS"]."'";
581
                                        $DB->query($query_update) or die("0.5 update2 for update OS ".$LANG["update"][90].$DB->error());
582
                                }
583

    
584
                        }
585
                }
586
                $DB->free_result($result);
587
                $query_alter= "ALTER TABLE `glpi_computers` DROP `osver` ";
588
                $DB->query($query_alter) or die("0.5 alter for update OS ".$LANG["update"][90].$DB->error());
589
        }
590

    
591
        // Ajout Fabriquant computer
592
        if(!FieldExists("glpi_computers","FK_glpi_enterprise")) {
593

    
594
                $query = "ALTER TABLE `glpi_computers` ADD `FK_glpi_enterprise` INT(11) DEFAULT '0' NOT NULL ;";
595
                $DB->query($query) or die("0.5 add field manufacturer ".$LANG["update"][90].$DB->error());
596

    
597

    
598
                $query="ALTER TABLE `glpi_computers` ADD INDEX (`FK_glpi_enterprise`)" ;
599
                $DB->query($query) or die("0.5 alter field manufacturer ".$LANG["update"][90].$DB->error());
600

    
601
        }
602

    
603
        // Ajout Fabriquant printer
604
        if(!FieldExists("glpi_printers","FK_glpi_enterprise")) {
605

    
606
                $query = "ALTER TABLE `glpi_printers` ADD `FK_glpi_enterprise` INT(11) DEFAULT '0' NOT NULL ;";
607
                $DB->query($query) or die("0.5 add field manufacturer ".$LANG["update"][90].$DB->error());
608

    
609
                $query="ALTER TABLE `glpi_printers` ADD INDEX (`FK_glpi_enterprise`)" ;
610
                $DB->query($query) or die("0.5 alter field manufacturer ".$LANG["update"][90].$DB->error());
611

    
612

    
613
        }
614

    
615
        // Ajout Fabriquant networking
616
        if(!FieldExists("glpi_networking","FK_glpi_enterprise")) {
617

    
618
                $query = "ALTER TABLE `glpi_networking` ADD `FK_glpi_enterprise` INT(11) DEFAULT '0' NOT NULL ;";
619
                $DB->query($query) or die("0.5 add field manufacturer ".$LANG["update"][90].$DB->error());
620

    
621
                $query="ALTER TABLE `glpi_networking` ADD INDEX (`FK_glpi_enterprise`)" ;
622
                $DB->query($query) or die("0.5 alter field manufacturer ".$LANG["update"][90].$DB->error());
623

    
624

    
625
        }
626

    
627
        // Ajout Fabriquant monitor
628
        if(!FieldExists("glpi_monitors","FK_glpi_enterprise")) {
629

    
630
                $query = "ALTER TABLE `glpi_monitors` ADD `FK_glpi_enterprise` INT(11) DEFAULT '0' NOT NULL ;";
631
                $DB->query($query) or die("0.5 add field manufacturer ".$LANG["update"][90].$DB->error());
632

    
633
                $query="ALTER TABLE `glpi_monitors` ADD INDEX (`FK_glpi_enterprise`)" ;
634
                $DB->query($query) or die("0.5 alter field manufacturer ".$LANG["update"][90].$DB->error());
635

    
636

    
637
        }
638

    
639
        // Ajout Fabriquant software
640
        if(!FieldExists("glpi_software","FK_glpi_enterprise")) {
641

    
642
                $query = "ALTER TABLE `glpi_software` ADD `FK_glpi_enterprise` INT(11) DEFAULT '0' NOT NULL ;";
643
                $DB->query($query) or die("0.5 add field manufacturer ".$LANG["update"][90].$DB->error());
644

    
645
                $query="ALTER TABLE `glpi_software` ADD INDEX (`FK_glpi_enterprise`)" ;
646
                $DB->query($query) or die("0.5 alter field manufacturer ".$LANG["update"][90].$DB->error());
647

    
648

    
649
        }
650

    
651
        // Ajout Fabriquant peripheral
652
        if(!FieldExists("glpi_peripherals","FK_glpi_enterprise")) {
653

    
654
                $query = "ALTER TABLE `glpi_peripherals` ADD `FK_glpi_enterprise` INT(11) DEFAULT '0' NOT NULL ;";
655
                $DB->query($query) or die("0.5 add field manufacturer ".$LANG["update"][90].$DB->error());
656

    
657
                $query="ALTER TABLE `glpi_peripherals` ADD INDEX (`FK_glpi_enterprise`)" ;
658
                $DB->query($query) or die("0.5 alter field manufacturer ".$LANG["update"][90].$DB->error());
659

    
660

    
661
        }
662

    
663
        // Ajout deleted peripheral
664
        if(!FieldExists("glpi_peripherals","deleted")) {
665

    
666
                $query = "ALTER TABLE `glpi_peripherals` ADD `deleted` ENUM('Y', 'N') DEFAULT 'N' NOT NULL ;";
667
                $DB->query($query) or die("0.5 add field deleted ".$LANG["update"][90].$DB->error());
668

    
669
                $query="ALTER TABLE `glpi_peripherals` ADD INDEX (`deleted`)" ;
670
                $DB->query($query) or die("0.5 alter field deleted ".$LANG["update"][90].$DB->error());
671

    
672

    
673
        }
674

    
675
        // Ajout deleted software
676
        if(!FieldExists("glpi_software","deleted")) {
677

    
678
                $query = "ALTER TABLE `glpi_software` ADD `deleted` ENUM('Y', 'N') DEFAULT 'N' NOT NULL ;";
679
                $DB->query($query) or die("0.5 add field deleted ".$LANG["update"][90].$DB->error());
680

    
681
                $query="ALTER TABLE `glpi_software` ADD INDEX (`deleted`)" ;
682
                $DB->query($query) or die("0.5 alter field deleted ".$LANG["update"][90].$DB->error());
683

    
684

    
685
        }
686

    
687
        // Ajout deleted monitor
688
        if(!FieldExists("glpi_monitors","deleted")) {
689

    
690
                $query = "ALTER TABLE `glpi_monitors` ADD `deleted` ENUM('Y', 'N') DEFAULT 'N' NOT NULL ;";
691
                $DB->query($query) or die("0.5 add field deleted ".$LANG["update"][90].$DB->error());
692

    
693
                $query="ALTER TABLE `glpi_monitors` ADD INDEX (`deleted`)" ;
694
                $DB->query($query) or die("0.5 alter field deleted ".$LANG["update"][90].$DB->error());
695

    
696

    
697
        }
698

    
699
        // Ajout deleted networking
700
        if(!FieldExists("glpi_networking","deleted")) {
701

    
702
                $query = "ALTER TABLE `glpi_networking` ADD `deleted` ENUM('Y', 'N') DEFAULT 'N' NOT NULL ;";
703
                $DB->query($query) or die("0.5 add field deleted ".$LANG["update"][90].$DB->error());
704

    
705
                $query="ALTER TABLE `glpi_networking` ADD INDEX (`deleted`)" ;
706
                $DB->query($query) or die("0.5 alter field deleted ".$LANG["update"][90].$DB->error());
707

    
708

    
709
        }
710
        // Ajout deleted printer
711
        if(!FieldExists("glpi_printers","deleted")) {
712

    
713
                $query = "ALTER TABLE `glpi_printers` ADD `deleted` ENUM('Y', 'N') DEFAULT 'N' NOT NULL ;";
714
                $DB->query($query) or die("0.5 add field deleted ".$LANG["update"][90].$DB->error());
715

    
716
                $query="ALTER TABLE `glpi_printers` ADD INDEX (`deleted`)" ;
717
                $DB->query($query) or die("0.5 alter field deleted ".$LANG["update"][90].$DB->error());
718

    
719

    
720
        }
721
        // Ajout deleted computer
722
        if(!FieldExists("glpi_computers","deleted")) {
723

    
724
                $query = "ALTER TABLE `glpi_computers` ADD `deleted` ENUM('Y', 'N') DEFAULT 'N' NOT NULL ;";
725
                $DB->query($query) or die("0.5 add field deleted ".$LANG["update"][90].$DB->error());
726

    
727
                $query="ALTER TABLE `glpi_computers` ADD INDEX (`deleted`)" ;
728
                $DB->query($query) or die("0.5 alter field deleted ".$LANG["update"][90].$DB->error());
729

    
730

    
731
        }
732

    
733
        // Ajout template peripheral
734
        if(!FieldExists("glpi_peripherals","is_template")) {
735

    
736
                $query = "ALTER TABLE `glpi_peripherals` ADD `is_template` ENUM('0', '1') DEFAULT '0' NOT NULL , ADD `tplname` VARCHAR(255) ;";
737
                $DB->query($query) or die("0.5 add field deleted ".$LANG["update"][90].$DB->error());
738

    
739
                $query="INSERT INTO glpi_peripherals (is_template,tplname) VALUES ('1','Blank Template')";
740
                $DB->query($query) or die("0.5 add blank template ".$LANG["update"][90].$DB->error());        
741

    
742
                $query="ALTER TABLE `glpi_peripherals` ADD INDEX (`is_template`)" ;
743
                $DB->query($query) or die("0.5 alter field is_template ".$LANG["update"][90].$DB->error());
744

    
745

    
746
        }
747

    
748
        // Ajout template software
749
        if(!FieldExists("glpi_software","is_template")) {
750

    
751
                $query = "ALTER TABLE `glpi_software` ADD `is_template` ENUM('0', '1') DEFAULT '0' NOT NULL , ADD `tplname` VARCHAR(255) ;";
752
                $DB->query($query) or die("0.5 add field deleted ".$LANG["update"][90].$DB->error());
753

    
754
                $query="INSERT INTO glpi_software (is_template,tplname) VALUES ('1','Blank Template')";
755
                $DB->query($query) or die("0.5 add blank template ".$LANG["update"][90].$DB->error());        
756

    
757
                $query="ALTER TABLE `glpi_software` ADD INDEX (`is_template`)" ;
758
                $DB->query($query) or die("0.5 alter field is_template ".$LANG["update"][90].$DB->error());
759

    
760
        }
761

    
762
        // Ajout template monitor
763
        if(!FieldExists("glpi_monitors","is_template")) {
764

    
765
                $query = "ALTER TABLE `glpi_monitors` ADD `is_template` ENUM('0', '1') DEFAULT '0' NOT NULL , ADD `tplname` VARCHAR(255) ;";
766
                $DB->query($query) or die("0.5 add field deleted ".$LANG["update"][90].$DB->error());
767

    
768
                $query="INSERT INTO glpi_monitors (is_template,tplname) VALUES ('1','Blank Template')";
769
                $DB->query($query) or die("0.5 add blank template ".$LANG["update"][90].$DB->error());        
770

    
771
                $query="ALTER TABLE `glpi_monitors` ADD INDEX (`is_template`)" ;
772
                $DB->query($query) or die("0.5 alter field is_template ".$LANG["update"][90].$DB->error());
773

    
774

    
775
        }
776

    
777
        if(!isIndex("glpi_computers", "is_template")) {
778
                $query = "ALTER TABLE `glpi_computers` ADD INDEX (`is_template`) ";
779
                $DB->query($query) or die("5 ".$LANG["update"][90].$DB->error());
780
        }
781

    
782
        // Ajout template networking
783
        if(!FieldExists("glpi_networking","is_template")) {
784

    
785
                $query = "ALTER TABLE `glpi_networking` ADD `is_template` ENUM('0', '1') DEFAULT '0' NOT NULL , ADD `tplname` VARCHAR(255) ;";
786
                $DB->query($query) or die("0.5 add field deleted ".$LANG["update"][90].$DB->error());
787

    
788
                $query="INSERT INTO glpi_networking (is_template,tplname) VALUES ('1','Blank Template')";
789
                $DB->query($query) or die("0.5 add blank template ".$LANG["update"][90].$DB->error());        
790

    
791
                $query="ALTER TABLE `glpi_networking` ADD INDEX (`is_template`)" ;
792
                $DB->query($query) or die("0.5 alter field is_template ".$LANG["update"][90].$DB->error());
793

    
794

    
795
        }
796
        // Ajout template printer
797
        if(!FieldExists("glpi_printers","is_template")) {
798

    
799
                $query = "ALTER TABLE `glpi_printers` ADD `is_template` ENUM('0', '1') DEFAULT '0' NOT NULL , ADD `tplname` VARCHAR(255) ;";
800
                $DB->query($query) or die("0.5 add field deleted ".$LANG["update"][90].$DB->error());
801

    
802
                $query="INSERT INTO glpi_printers (is_template,tplname) VALUES ('1','Blank Template')";
803
                $DB->query($query) or die("0.5 add blank template ".$LANG["update"][90].$DB->error());        
804

    
805
                $query="ALTER TABLE `glpi_printers` ADD INDEX (`is_template`)" ;
806
                $DB->query($query) or die("0.5 alter field is_template ".$LANG["update"][90].$DB->error());
807

    
808

    
809

    
810
        }
811
        // Ajout date_mod
812
        if(!FieldExists("glpi_printers","date_mod")) {
813
                $query = "ALTER TABLE `glpi_printers` ADD `date_mod` DATETIME DEFAULT NULL";
814
                $DB->query($query) or die("Error : ".$query." ".$DB->error());
815

    
816
                $query="ALTER TABLE `glpi_printers` ADD INDEX (`date_mod`)" ;
817
                $DB->query($query) or die("0.5 alter field date_mod ".$LANG["update"][90].$DB->error());
818

    
819
        }
820

    
821
        if(!isIndex("glpi_computers", "date_mod")) {
822
                $query = "ALTER TABLE `glpi_computers` ADD INDEX (`date_mod`) ";
823
                $DB->query($query) or die("5 ".$LANG["update"][90].$DB->error());
824
        }
825

    
826
        // Ajout date_mod
827
        if(!FieldExists("glpi_monitors","date_mod")) {
828
                $query = "ALTER TABLE `glpi_monitors` ADD `date_mod` DATETIME DEFAULT NULL";
829
                $DB->query($query) or die("Error : ".$query." ".$DB->error());
830

    
831
                $query="ALTER TABLE `glpi_monitors` ADD INDEX (`date_mod`)" ;
832
                $DB->query($query) or die("0.5 alter field date_mod ".$LANG["update"][90].$DB->error());
833
        }
834

    
835
        // Ajout date_mod
836
        if(!FieldExists("glpi_software","date_mod")) {
837
                $query = "ALTER TABLE `glpi_software` ADD `date_mod` DATETIME DEFAULT NULL";
838
                $DB->query($query) or die("Error : ".$query." ".$DB->error());
839

    
840
                $query="ALTER TABLE `glpi_software` ADD INDEX (`date_mod`)" ;
841
                $DB->query($query) or die("0.5 alter field date_mod ".$LANG["update"][90].$DB->error());
842
        }
843

    
844
        // Ajout date_mod
845
        if(!FieldExists("glpi_networking","date_mod")) {
846
                $query = "ALTER TABLE `glpi_networking` ADD `date_mod` DATETIME DEFAULT NULL";
847
                $DB->query($query) or die("Error : ".$query." ".$DB->error());
848

    
849
                $query="ALTER TABLE `glpi_networking` ADD INDEX (`date_mod`)" ;
850
                $DB->query($query) or die("0.5 alter field date_mod ".$LANG["update"][90].$DB->error());
851
        }
852

    
853
        // Ajout tech_num
854
        if(!FieldExists("glpi_computers","tech_num")) {
855
                $query = "ALTER TABLE `glpi_computers` ADD `tech_num` int(11) NOT NULL default '0' AFTER `contact_num`";
856
                $DB->query($query) or die("Error : ".$query." ".$DB->error());
857

    
858
                $query="ALTER TABLE `glpi_computers` ADD INDEX (`tech_num`)" ;
859
                $DB->query($query) or die("0.5 alter field tech_num ".$LANG["update"][90].$DB->error());
860
        }
861
        // Ajout tech_num
862
        if(!FieldExists("glpi_networking","tech_num")) {
863
                $query = "ALTER TABLE `glpi_networking` ADD `tech_num` int(11) NOT NULL default '0' AFTER `contact_num`";
864
                $DB->query($query) or die("Error : ".$query." ".$DB->error());
865

    
866
                $query="ALTER TABLE `glpi_networking` ADD INDEX (`tech_num`)" ;
867
                $DB->query($query) or die("0.5 alter field tech_num ".$LANG["update"][90].$DB->error());
868
        }
869
        // Ajout tech_num
870
        if(!FieldExists("glpi_printers","tech_num")) {
871
                $query = "ALTER TABLE `glpi_printers` ADD `tech_num` int(11) NOT NULL default '0' AFTER `contact_num`";
872
                $DB->query($query) or die("Error : ".$query." ".$DB->error());
873

    
874
                $query="ALTER TABLE `glpi_printers` ADD INDEX (`tech_num`)" ;
875
                $DB->query($query) or die("0.5 alter field tech_num ".$LANG["update"][90].$DB->error());
876
        }
877

    
878
        // Ajout tech_num
879
        if(!FieldExists("glpi_monitors","tech_num")) {
880
                $query = "ALTER TABLE `glpi_monitors` ADD `tech_num` int(11) NOT NULL default '0' AFTER `contact_num`";
881
                $DB->query($query) or die("Error : ".$query." ".$DB->error());
882

    
883
                $query="ALTER TABLE `glpi_monitors` ADD INDEX (`tech_num`)" ;
884
                $DB->query($query) or die("0.5 alter field tech_num ".$LANG["update"][90].$DB->error());
885
        }
886

    
887
        // Ajout tech_num
888
        if(!FieldExists("glpi_software","tech_num")) {
889
                $query = "ALTER TABLE `glpi_software` ADD `tech_num` int(11) NOT NULL default '0' AFTER `location`";
890
                $DB->query($query) or die("Error : ".$query." ".$DB->error());
891

    
892
                $query="ALTER TABLE `glpi_software` ADD INDEX (`tech_num`)" ;
893
                $DB->query($query) or die("0.5 alter field tech_num ".$LANG["update"][90].$DB->error());
894
        }
895

    
896
        // Ajout tech_num
897
        if(!FieldExists("glpi_peripherals","tech_num")) {
898
                $query = "ALTER TABLE `glpi_peripherals` ADD `tech_num` int(11) NOT NULL default '0' AFTER `contact_num`";
899
                $DB->query($query) or die("Error : ".$query." ".$DB->error());
900

    
901
                $query="ALTER TABLE `glpi_peripherals` ADD INDEX (`tech_num`)" ;
902
                $DB->query($query) or die("0.5 alter field tech_num ".$LANG["update"][90].$DB->error());
903
        }
904

    
905
        // Ajout tech_num
906
        if(!FieldExists("glpi_software","tech_num")) {
907
                $query = "ALTER TABLE `glpi_software` ADD `tech_num` int(11) NOT NULL default '0'";
908
                $DB->query($query) or die("Error : ".$query." ".$DB->error());
909

    
910
                $query="ALTER TABLE `glpi_software` ADD INDEX (`tech_num`)" ;
911
                $DB->query($query) or die("0.5 alter field tech_num ".$LANG["update"][90].$DB->error());
912
        }
913

    
914
        // Ajout tech_num
915
        if(!TableExists("glpi_type_docs")) {
916

    
917
                $query = "CREATE TABLE glpi_type_docs (
918
                        ID int(11) NOT NULL auto_increment,
919
                           name varchar(255) NOT NULL default '',
920
                           ext varchar(10) NOT NULL default '',
921
                           icon varchar(255) NOT NULL default '',
922
                           mime varchar(100) NOT NULL default '',
923
                           upload enum('Y','N') NOT NULL default 'Y',
924
                           date_mod datetime default NULL,
925
                           PRIMARY KEY  (ID),
926
                           UNIQUE KEY extension (ext),
927
                           KEY (upload)
928
                                   ) TYPE=MyISAM;";
929

    
930
                $DB->query($query) or die("Error creating table typedoc ".$query." ".$DB->error());
931

    
932

    
933

    
934
                $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'),
935
                        (2, 'PNG', 'png', 'png-dist.png', '', 'Y', '2004-12-13 19:47:21'),
936
                        (3, 'GIF', 'gif', 'gif-dist.png', '', 'Y', '2004-12-13 19:47:21'),
937
                        (4, 'BMP', 'bmp', 'bmp-dist.png', '', 'Y', '2004-12-13 19:47:21'),
938
                        (5, 'Photoshop', 'psd', 'psd-dist.png', '', 'Y', '2004-12-13 19:47:21'),
939
                        (6, 'TIFF', 'tif', 'tif-dist.png', '', 'Y', '2004-12-13 19:47:21'),
940
                        (7, 'AIFF', 'aiff', 'aiff-dist.png', '', 'Y', '2004-12-13 19:47:21'),
941
                        (8, 'Windows Media', 'asf', 'asf-dist.png', '', 'Y', '2004-12-13 19:47:21'),
942
                        (9, 'Windows Media', 'avi', 'avi-dist.png', '', 'Y', '2004-12-13 19:47:21'),
943
                        (44, 'C source', 'c', '', '', 'Y', '2004-12-13 19:47:22'),
944
                        (27, 'RealAudio', 'rm', 'rm-dist.png', '', 'Y', '2004-12-13 19:47:21'),
945
                        (16, 'Midi', 'mid', 'mid-dist.png', '', 'Y', '2004-12-13 19:47:21'),
946
                        (17, 'QuickTime', 'mov', 'mov-dist.png', '', 'Y', '2004-12-13 19:47:21'),
947
                        (18, 'MP3', 'mp3', 'mp3-dist.png', '', 'Y', '2004-12-13 19:47:21'),
948
                        (19, 'MPEG', 'mpg', 'mpg-dist.png', '', 'Y', '2004-12-13 19:47:21'),
949
                        (20, 'Ogg Vorbis', 'ogg', 'ogg-dist.png', '', 'Y', '2004-12-13 19:47:21'),
950
                        (24, 'QuickTime', 'qt', 'qt-dist.png', '', 'Y', '2004-12-13 19:47:21'),
951
                        (10, 'BZip', 'bz2', 'bz2-dist.png', '', 'Y', '2004-12-13 19:47:21'),
952
                        (25, 'RealAudio', 'ra', 'ra-dist.png', '', 'Y', '2004-12-13 19:47:21'),
953
                        (26, 'RealAudio', 'ram', 'ram-dist.png', '', 'Y', '2004-12-13 19:47:21'),
954
                        (11, 'Word', 'doc', 'doc-dist.png', '', 'Y', '2004-12-13 19:47:21'),
955
                        (12, 'DjVu', 'djvu', '', '', 'Y', '2004-12-13 19:47:21'),
956
                        (42, 'MNG', 'mng', '', '', 'Y', '2004-12-13 19:47:22'),
957
                        (13, 'PostScript', 'eps', 'ps-dist.png', '', 'Y', '2004-12-13 19:47:21'),
958
                        (14, 'GZ', 'gz', 'gz-dist.png', '', 'Y', '2004-12-13 19:47:21'),
959
                        (37, 'WAV', 'wav', 'wav-dist.png', '', 'Y', '2004-12-13 19:47:22'),
960
                        (15, 'HTML', 'html', 'html-dist.png', '', 'Y', '2004-12-13 19:47:21'),
961
                        (34, 'Flash', 'swf', '', '', 'Y', '2004-12-13 19:47:22'),
962
                        (21, 'PDF', 'pdf', 'pdf-dist.png', '', 'Y', '2004-12-13 19:47:21'),
963
                        (22, 'PowerPoint', 'ppt', 'ppt-dist.png', '', 'Y', '2004-12-13 19:47:21'),
964
                        (23, 'PostScript', 'ps', 'ps-dist.png', '', 'Y', '2004-12-13 19:47:21'),
965
                        (40, 'Windows Media', 'wmv', '', '', 'Y', '2004-12-13 19:47:22'),
966
                        (28, 'RTF', 'rtf', 'rtf-dist.png', '', 'Y', '2004-12-13 19:47:21'),
967
                        (29, 'StarOffice', 'sdd', 'sdd-dist.png', '', 'Y', '2004-12-13 19:47:22'),
968
                        (30, 'StarOffice', 'sdw', 'sdw-dist.png', '', 'Y', '2004-12-13 19:47:22'),
969
                        (31, 'Stuffit', 'sit', 'sit-dist.png', '', 'Y', '2004-12-13 19:47:22'),
970
                        (43, 'Adobe Illustrator', 'ai', 'ai-dist.png', '', 'Y', '2004-12-13 19:47:22'),
971
                        (32, 'OpenOffice Impress', 'sxi', 'sxi-dist.png', '', 'Y', '2004-12-13 19:47:22'),
972
                        (33, 'OpenOffice', 'sxw', 'sxw-dist.png', '', 'Y', '2004-12-13 19:47:22'),
973
                        (46, 'DVI', 'dvi', 'dvi-dist.png', '', 'Y', '2004-12-13 19:47:22'),
974
                        (35, 'TGZ', 'tgz', 'tgz-dist.png', '', 'Y', '2004-12-13 19:47:22'),
975
                        (36, 'texte', 'txt', 'txt-dist.png', '', 'Y', '2004-12-13 19:47:22'),
976
                        (49, 'RedHat/Mandrake/SuSE', 'rpm', 'rpm-dist.png', '', 'Y', '2004-12-13 19:47:22'),
977
                        (38, 'Excel', 'xls', 'xls-dist.png', '', 'Y', '2004-12-13 19:47:22'),
978
                        (39, 'XML', 'xml', 'xml-dist.png', '', 'Y', '2004-12-13 19:47:22'),
979
                        (41, 'Zip', 'zip', 'zip-dist.png', '', 'Y', '2004-12-13 19:47:22'),
980
                        (45, 'Debian', 'deb', 'deb-dist.png', '', 'Y', '2004-12-13 19:47:22'),
981
                        (47, 'C header', 'h', '', '', 'Y', '2004-12-13 19:47:22'),
982
                        (48, 'Pascal', 'pas', '', '', 'Y', '2004-12-13 19:47:22'),
983
                        (50, 'OpenOffice Calc', 'sxc', 'sxc-dist.png', '', 'Y', '2004-12-13 19:47:22'),
984
                        (51, 'LaTeX', 'tex', 'tex-dist.png', '', 'Y', '2004-12-13 19:47:22'),
985
                        (52, 'GIMP multi-layer', 'xcf', 'xcf-dist.png', '', 'Y', '2004-12-13 19:47:22'),
986
                        (53, 'JPEG', 'jpeg', 'jpg-dist.png', '', 'Y', '2005-03-07 22:23:17');";
987

    
988

    
989

    
990

    
991

    
992

    
993
                $DB->query($query) or die("Error inserting elements in table typedoc ".$query." ".$DB->error());
994

    
995
        }
996

    
997
        if(!TableExists("glpi_docs")) {
998

    
999
                $query = "CREATE TABLE glpi_docs (
1000
                        ID int(11) NOT NULL auto_increment,
1001
                           name varchar(255) NOT NULL default '',
1002
                           filename varchar(255) NOT NULL default '',
1003
                           rubrique int(11) NOT NULL default '0',
1004
                           mime varchar(30) NOT NULL default '',
1005
                           date_mod datetime NOT NULL default '0000-00-00 00:00:00',
1006
                           comment text NOT NULL,
1007
                           deleted enum('Y','N') NOT NULL default 'N',
1008
                           PRIMARY KEY  (ID),
1009
                           KEY rubrique (rubrique),
1010
                           KEY deleted (deleted),
1011
                           KEY date_mod (date_mod)
1012
                                   ) TYPE=MyISAM;";
1013

    
1014
                $DB->query($query) or die("Error creating table docs ".$query." ".$DB->error());
1015
        }
1016

    
1017
        if(!TableExists("glpi_doc_device")) {
1018

    
1019
                $query = "CREATE TABLE glpi_doc_device (
1020
                        ID int(11) NOT NULL auto_increment,
1021
                           FK_doc int(11) NOT NULL default '0',
1022
                           FK_device int(11) NOT NULL default '0',
1023
                           device_type tinyint(4) NOT NULL default '0',
1024
                           PRIMARY KEY  (ID),
1025
                           UNIQUE KEY FK_doc (FK_doc,FK_device,device_type),
1026
                           KEY FK_doc_2 (FK_doc),
1027
                           KEY FK_device (FK_device,device_type)
1028
                                   ) TYPE=MyISAM;";
1029

    
1030
                $DB->query($query) or die("Error creating table docs ".$query." ".$DB->error());
1031
        }
1032

    
1033
        if(!TableExists("glpi_dropdown_rubdocs")) {
1034

    
1035
                $query = "CREATE TABLE glpi_dropdown_rubdocs (
1036
                        ID int(11) NOT NULL auto_increment,
1037
                           name varchar(255) default NULL,
1038
                           PRIMARY KEY  (ID)
1039
                                   ) TYPE=MyISAM;";
1040
                $DB->query($query) or die("Error creating table docs ".$query." ".$DB->error());
1041
        }
1042

    
1043
        if(!isIndex("glpi_contacts", "deleted")) {
1044
                $query = "ALTER TABLE `glpi_contacts` ADD INDEX `deleted` (`deleted`) ";
1045
                $DB->query($query) or die("0.5 alter field deleted".$LANG["update"][90].$DB->error());
1046
        }
1047

    
1048
        if(!isIndex("glpi_contacts", "type")) {
1049
                $query = "ALTER TABLE `glpi_contacts` ADD INDEX `type` (`type`) ";
1050
                $DB->query($query) or die("0.5 alter field type ".$LANG["update"][90].$DB->error());
1051
        }
1052

    
1053
        if(!isIndex("glpi_event_log", "itemtype")) {
1054
                $query = "ALTER TABLE `glpi_event_log` ADD INDEX (`itemtype`) ";
1055
                $DB->query($query) or die("0.5 alter field itemtype ".$LANG["update"][90].$DB->error());
1056
        }
1057

    
1058
        if(!isIndex("glpi_followups", "date")) {
1059
                $query = "ALTER TABLE `glpi_followups` ADD INDEX (`date`) ";
1060
                $DB->query($query) or die("0.5 alter field date ".$LANG["update"][90].$DB->error());
1061
        }
1062

    
1063
        if(!isIndex("glpi_tracking", "category")) {
1064
                $query = "ALTER TABLE `glpi_tracking` ADD INDEX (`category`) ";
1065
                $DB->query($query) or die("0.5 alter field category ".$LANG["update"][90].$DB->error());
1066
        }
1067

    
1068
        if(!FieldExists("glpi_config","date_fiscale")) {
1069
                $query = "ALTER TABLE `glpi_config` ADD `date_fiscale` date NOT NULL default '2005-12-31'";
1070
                $DB->query($query) or die("0.5 add field date_fiscale ".$LANG["update"][90].$DB->error());
1071
        }
1072

    
1073
        if(!FieldExists("glpi_networking","ifmac")) {
1074
                $query = "ALTER TABLE `glpi_networking` ADD `ifmac` char(30) NOT NULL default ''";
1075
                $DB->query($query) or die("0.5 add field ifmac ".$LANG["update"][90].$DB->error());
1076
        }
1077

    
1078
        if(!FieldExists("glpi_networking","ifaddr")) {
1079
                $query = "ALTER TABLE `glpi_networking` ADD `ifaddr` char(30) NOT NULL default ''";
1080
                $DB->query($query) or die("0.5 add field ifaddr ".$LANG["update"][90].$DB->error());
1081
        }
1082

    
1083
        if(!TableExists("glpi_repair_item")) {
1084

    
1085
                $query = "CREATE TABLE glpi_repair_item (
1086
                        ID int(11) NOT NULL auto_increment,
1087
                           device_type tinyint(4) NOT NULL default '0', 
1088
                           id_device int(11) NOT NULL default '0', 
1089
                           PRIMARY KEY  (ID), 
1090
                           KEY device_type (device_type), 
1091
                           KEY device_type_2 (device_type,id_device)
1092
                                   )TYPE=MyISAM;";
1093

    
1094
                $DB->query($query) or die("0.5 create glpirepair_item table ".$LANG["update"][90].$DB->error());
1095
        }
1096

    
1097
        if(TableExists("glpi_prefs")&&!FieldExists("glpi_prefs","username")) {
1098

    
1099
                if(isIndex("glpi_prefs", "user")) {
1100
                        $query = " ALTER TABLE `glpi_prefs` DROP INDEX `user`;";
1101
                        $DB->query($query) or die("0.5 drop key user ".$LANG["update"][90].$DB->error());
1102
                }
1103

    
1104
                $query = " ALTER TABLE `glpi_prefs` CHANGE `user` `username` VARCHAR(80) NOT NULL;";
1105
                $DB->query($query) or die("0.5 change user to username ".$LANG["update"][90].$DB->error());
1106
                $query = "ALTER TABLE `glpi_prefs` ADD UNIQUE (`username`) ";
1107
                $DB->query($query) or die("0.5 alter field username ".$LANG["update"][90].$DB->error());
1108
        }
1109

    
1110
        //Mise a jour 0.5 verification des prefs pour chaque user.
1111
        if (TableExists("glpi_prefs")){
1112
                $query = "select ID, name from glpi_users";
1113
                $query2 = "select ID, username from glpi_prefs";
1114
                $result = $DB->query($query);
1115
                $result2 = $DB->query($query2);
1116
                if($DB->numrows($result) != $DB->numrows($result2)) { 
1117
                        $users = array();
1118
                        $i = 0;
1119
                        while ($line = $DB->fetch_array($result2)) {
1120
                                $prefs[$i] = $line["username"];
1121
                                $i++;
1122
                        }
1123
                        while($line = $DB->fetch_array($result)) {
1124
                                if(!in_array($line["name"],$prefs)) {
1125
                                        $query_insert =  "INSERT INTO `glpi_prefs` (`username` , `tracking_order` , `language`) VALUES ('".$line["name"]."', 'no', 'english')";
1126
                                        $DB->query($query_insert) or die("glpi maj prefs ".$LANG["update"][90].$DB->error()); 
1127
                                }
1128
                        }
1129
                }
1130
                $DB->free_result($result);
1131
                $DB->free_result($result2);
1132
        }
1133

    
1134

    
1135
}
1136
/// Update to 0.5 : date difference used for update
1137
function date_diff($from, $to) {
1138
        $from=strtotime($from);
1139
        $to=strtotime($to);
1140
        if ($from > $to) {
1141
                $t = $to;
1142
                $to = $from;
1143
                $from = $t;
1144
        }
1145

    
1146
        $year1 = date("Y", $from);
1147
        $year2 = date("Y", $to);
1148
        $month1 = date("n", $from);
1149
        $month2 = date("n", $to);
1150

    
1151
        if ($month2 < $month1) {
1152
                $month2 += 12;
1153
                $year2 --;
1154
        }
1155
        $months = $month2 - $month1;
1156
        $years = $year2 - $year1;
1157
        return (12*$years+$months);
1158
}
1159

    
1160
/** Update to 0.5 : Update maintenance informations
1161
* @param $table table name
1162
* @param $type item type
1163
* @param $ID item ID
1164
*/
1165
function updateMaintenanceInfos($table,$type,$ID){
1166
        global $DB,$LANG;
1167
        $elements=array();
1168
        $query="SELECT ID from $table WHERE maintenance='1'";
1169
        $result=$DB->query($query);
1170
        while ($data=$DB->fetch_array($result)){
1171
                $query_insert="INSERT INTO glpi_contract_device (FK_contract,FK_device,device_type) VALUES ('$ID','".$data["ID"]."','$type')";        
1172
                $result_insert=$DB->query($query_insert) or die("0.5 insert for update maintenance ".$LANG["update"][90].$DB->error());
1173
        }
1174
        $DB->free_result($result);
1175

    
1176
        $query_drop =  "ALTER TABLE `$table` DROP `maintenance`";
1177
        $result_drop=$DB->query($query_drop) or die("0.5 drop for update maintenance ".$LANG["update"][90].$DB->error());
1178

    
1179
}
1180

    
1181
/** Update to 0.5 : Update warranty informations
1182
* @param $table table name
1183
* @param $type item type
1184
*/
1185
function updateWarrantyInfos($table,$type){
1186
        global $DB,$LANG;
1187
        $elements=array();
1188
        $query="SELECT ID,achat_date,date_fin_garantie from $table ORDER BY achat_date,date_fin_garantie";
1189
        $result=$DB->query($query) or die("0.5 select for update warranty ".$LANG["update"][90].$DB->error());
1190
        while ($data=$DB->fetch_array($result)){
1191
                if (($data['achat_date']!="0000-00-00"&&!empty($data['achat_date']))||($data['date_fin_garantie']!="0000-00-00"&&!empty($data['date_fin_garantie']))){
1192
                        $IDitem=$data['ID'];
1193
                        if ($data['achat_date']=="0000-00-00"&&!empty($data['achat_date'])) $achat_date=date("Y-m-d");
1194
                        else $achat_date=$data['achat_date'];
1195
                        $duration=0;
1196
                        if ($data['date_fin_garantie']!="0000-00-00"&&!empty($data['date_fin_garantie']))
1197
                                $duration=round(date_diff($achat_date,$data['date_fin_garantie']),2);
1198
                        $query_insert="INSERT INTO glpi_infocoms (device_type,FK_device,buy_date,warranty_duration) VALUES ('$type','$IDitem','".$achat_date."','$duration')";
1199
                        $result_insert=$DB->query($query_insert) or die("0.5 insert for update warranty ".$LANG["update"][90].$DB->error());
1200
                }
1201
        }
1202
        $DB->free_result($result);
1203

    
1204
        $query_drop =  "ALTER TABLE `$table` DROP `achat_date`";
1205
        $result_drop=$DB->query($query_drop) or die("0.5 drop1 for update warranty ".$LANG["update"][90].$DB->error());
1206
        $query_drop =  "ALTER TABLE `$table` DROP `date_fin_garantie`";
1207
        $result_drop=$DB->query($query_drop) or die("0.5 drop2 for update warranty ".$LANG["update"][90].$DB->error());
1208

    
1209
}
1210
/// Update to 0.5 :Is maintenance used ?
1211
function isMaintenanceUsed(){
1212
        global $DB,$LANG;
1213
        $tables=array("glpi_computers","glpi_printers","glpi_monitors","glpi_peripherals","glpi_networking");
1214
        foreach ($tables as $key => $table){
1215
                $query="SELECT ID from $table WHERE maintenance='1';";
1216
                $result=$DB->query($query) or die("0.5 find for update maintenance ".$LANG["update"][90].$DB->error());
1217
                if ($DB->numrows($result)>0) return true;
1218
        }
1219
        return false;
1220

    
1221
}
1222

    
1223
/// Update to 0.5 :drop maintenance field ?
1224
function dropMaintenanceField(){
1225
        global $DB,$LANG;
1226
        $tables=array("glpi_computers","glpi_printers","glpi_monitors","glpi_peripherals","glpi_networking");
1227
        foreach ($tables as $key => $table){
1228
                $query="ALTER TABLE `$table` DROP `maintenance`";
1229
                $result=$DB->query($query) or die("0.5 alter for update maintenance ".$LANG["update"][90].$DB->error());
1230
        }
1231
}
1232

    
1233
/**
1234
 * Update to 0.5 : Get data from old dropdowns to new devices
1235
 *
1236
 * This function assure to keep clean data and integrity, during the change from 
1237
 * computers-dropdown to computers devices. Then delete the unused old elements.
1238
 *
1239
 * @param $devtype integer the devtype number 
1240
 * @param $devname string the device table name (end of the name (glpi_device_thisparam))
1241
 * @param $dpdname string the dropdown table name (end of the name (glpi_dropdown_thisparam))
1242
 * @param $compDpdName string the name of the dropdown foreign key on glpi_computers (eg : hdtype, processor) 
1243
 * @param $specif string the name of the dropdown value entry on glpi_computer (eg : hdspace, processor_speed) optionnal argument.
1244
 * @returns nothing if everything is good, else display mysql query and error.
1245
 */
1246
function compDpd2Device($devtype,$devname,$dpdname,$compDpdName,$specif='') {
1247
        global $DB,$LANG;
1248
        $query = "select * from glpi_dropdown_".$dpdname."";
1249

    
1250
        $result = $DB->query($query);
1251
        while($lndropd = $DB->fetch_array($result)) {
1252
                $query2 = "insert into glpi_device_".$devname." (designation) values ('".addslashes($lndropd["name"])."')";
1253
                $DB->query($query2) or die("unable to transfer ".$dpdname." to ".$devname."  ".$LANG["update"][90].$DB->error());
1254
                $devid = $DB->insert_id();
1255
                $query3 = "select * from glpi_computers where ".$compDpdName." = '".$lndropd["ID"]."'";
1256
                $result3 = $DB->query($query3);
1257
                while($lncomp = $DB->fetch_array($result3)) {
1258
                        $query4 = "insert into glpi_computer_device (device_type, FK_device, FK_computers) values ('$devtype','".$devid."','".$lncomp["ID"]."')";
1259
                        if(!empty($specif)) {
1260
                                $queryspecif = "SELECT ".$specif." FROM glpi_computers WHERE ID = '".$lncomp["ID"]."'";
1261
                                if($resultspecif = $DB->query($queryspecif)) {
1262
                                        $query4 = "insert into glpi_computer_device (specificity, device_type, FK_device, FK_computers) values ('".$DB->result($resultspecif,0,$specif)."','$devtype','".$devid."','".$lncomp["ID"]."')";
1263
                                }
1264

    
1265
                        }
1266
                        $DB->query($query4) or die("unable to migrate from ".$dpdname." to ".$devname." for item computer:".$lncomp["ID"]."  ".$LANG["update"][90].$DB->error());
1267
                }
1268
        }
1269
        $DB->free_result($result);
1270
        //Delete unused elements (dropdown on the computer table, dropdown table and specif)
1271
        $query = "ALTER TABLE glpi_computers drop `".$compDpdName."`";
1272
        $DB->query($query) or die("Error : ".$query." ".$DB->error());
1273
        $query = "DROP TABLE `glpi_dropdown_".$dpdname."`";
1274
        $DB->query($query) or die("Error : ".$query." ".$DB->error());
1275
        if(!empty($specif)) {
1276
                $query = "ALTER TABLE glpi_computers drop `".$specif."`";
1277
                $DB->query($query) or die("Error : ".$query." ".$DB->error());
1278
        }
1279
}
1280

    
1281

    
1282
?>
Redmine Appliance - Powered by TurnKey Linux