Subversion Repositories computer_asset_manager_v1

Rev

Rev 1 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 rodolico 1
--
2
-- Table structure for table `maintenance_schedule`
3
--
4
 
5
DROP TABLE IF EXISTS `maintenance_schedule`;
6
CREATE TABLE `maintenance_schedule` (
7
  `maintenance_schedule_id` int(10) unsigned NOT NULL auto_increment,
8
  `device_id` int(10) unsigned NOT NULL COMMENT 'The device this task is due on' references device(device_id),
9
  `maintenance_task_id` int(10) unsigned NOT NULL COMMENT 'The task to be performed' references maintenance_task(maintenance_task_id),
10
  `schedule` int(10) unsigned NOT NULL COMMENT 'The number of days between performance of this task',
11
  `login_id` int(10) unsigned default NULL COMMENT 'Login ID of the persion who is generally responsible for this maintenance' references login(login_id),
12
  `added_date` datetime default NULL,
13
  `removed_date` datetime default NULL,
14
  PRIMARY KEY  (`maintenance_schedule_id`)
15
) COMMENT='Holds a list of maintenance to be performed on a device';
16
 
17
--
18
-- Table structure for table `maintenance_performed`
19
--
20
 
21
DROP TABLE IF EXISTS `maintenance_performed`;
22
CREATE TABLE `maintenance_performed` (
23
  `maintenance_performed_id` int(10) unsigned NOT NULL auto_increment,
24
  `device_id` int(10) unsigned NOT NULL COMMENT 'The device this task is due on' references device(device_id),
25
  `maintenance_task_id` int(10) unsigned NOT NULL COMMENT 'The task to be performed' references maintenance_task(maintenance_task_id),
26
  `maintenance_date` datetime NOT NULL COMMENT 'Date and Time maintenance was performed',
27
  `notes` text COMMENT 'Any comments/notes the maintainer wants to put in',
28
  `login_id` int(10) unsigned NOT NULL COMMENT 'login id of the person performing the maintenance',
29
  PRIMARY KEY  (`maintenance_performed_id`)
30
) COMMENT='This holds the actual maintenance records';
31
 
32
--
33
-- Table structure for table `maintenance_task`
34
--
35
 
36
DROP TABLE IF EXISTS `maintenance_task`;
37
CREATE TABLE `maintenance_task` (
38
  `maintenance_task_id` int(10) unsigned NOT NULL auto_increment,
39
  `description` varchar(64) default NULL COMMENT 'A description of the task',
40
  `default_period` int(11) default NULL COMMENT 'The default number of days between maintenance',
41
  `notes` text COMMENT 'Detailed instructions on completing task',
42
  `added_date` datetime default NULL,
43
  `removed_date` datetime default NULL,
44
  PRIMARY KEY  (`maintenance_task_id`)
45
) COMMENT='Holds a list of tasks available to assign for maintnenance o';
46
 
47
/* create some keys */
48
alter table maintenance_performed add index (login_id);
49
alter table maintenance_performed add index (maintenance_task_id);
50
alter table maintenance_performed add index (maintenance_date);
51
alter table maintenance_performed add index (device_id);
52
alter table maintenance_task add index (removed_date);
53
alter table maintenance_schedule add index (removed_date);
54
alter table maintenance_schedule add index (login_id);
55
alter table maintenance_schedule add index (device_id);
56
alter table maintenance_schedule add index (maintenance_task_id);
57
 
58
insert into _system ( group_name,key_name,theValue,added_date) values ( 'Modules', 'Maintenance', 'modules/maintenance/', now() );
49 rodolico 59
/* add maintenance report */
60
insert into _system( group_name,key_name,theValue,added_date ) values ( 'device view', 'Maintenance', 'callable.php:maintenanceView', now() );
1 rodolico 61
 
62
insert into menu( url, caption, parent_id) values ('', 'Maintenance', null);
63
insert into menu( url,caption,parent_id) select '/modules/maintenance/do_maintenance.html','Scheduled Maintenance',menu_id from menu where caption = 'Maintenance';
64
insert into menu( url,caption,parent_id) select '/modules/maintenance/unscheduled_maintenance.html','Unscheduled Maintenance',menu_id from menu where caption = 'Maintenance';
65
insert into menu( url,caption,parent_id) select '/modules/maintenance/edit_schedule.html','Edit Schedules',menu_id from menu where caption = 'Maintenance';
66
 
67
 
68
/* Maintenance Due Report */
69
insert into report ( name, query, parameters ) values ('Maintenance Due','select concat( client.name, \' Site \', site.name ) \"Site\",
70
      device.name \"Device Name\",
71
      maintenance_task.description \"Task\",
72
      DATEDIFF(DATE_ADD(maintenance_performed.maintenance_date, INTERVAL schedule DAY), now()) \"Due\",
73
      DATE(DATE_ADD(maintenance_performed.maintenance_date, INTERVAL schedule DAY)) \"Date Due\",
74
      login.email \"Technician\"
75
from maintenance_schedule join maintenance_performed on 
76
            maintenance_performed.maintenance_task_id = maintenance_schedule.maintenance_task_id
77
            and maintenance_performed.device_id = maintenance_schedule.device_id
78
   join login on login.login_id = maintenance_schedule.login_id
79
   join maintenance_task on maintenance_task.maintenance_task_id = maintenance_schedule.maintenance_task_id
80
   join device on maintenance_schedule.device_id = device.device_id
81
   join site on device.site_id = site.site_id
82
   join client on site.client_id = client.client_id
83
where device.removed_date is null
84
      and site.removed_date is null
85
      and client.removed_date is null
86
      and maintenance_schedule.removed_date is null
87
      and DATE(DATE_ADD(maintenance_performed.maintenance_date, INTERVAL schedule DAY)) <= <maintenancedate>
88
      and maintenance_performed.maintenance_performed_id in (
89
               select max(maintenance_performed_id) 
90
               from maintenance_performed 
91
               group by device_id,maintenance_task_id
92
            )
93
order by client.name,site.name,device.name, maintenance_task.description;
94
','maintenancedate++Report Date++++');
95
 
96
/* Maintenance Performed on a device */
97
 
98
insert into report ( name, query, parameters ) values ('Device Maintenance Record','select maintenance_task.description \"Task\",
99
         DATE(maintenance_performed.maintenance_date) \"Date\",
100
         maintenance_performed.notes \"Notes\",
101
         login.email \"Technician\"
102
from maintenance_performed join device using (device_id)
103
   join maintenance_task using (maintenance_task_id)
104
   join login using (login_id)
105
   join site using (site_id)
106
   join client using (client_id)
107
where device.device_id = <device>','device++Choose Device++select distinct device.device_id, concat( client.name, \' - \',device.name) \"Device\"from device join site using (site_id) join client using (client_id) join maintenance_performed using (device_id)order by concat( client.name, \' - \',device.name)++select concat( client.name, \' - \',device.name) \"Device\" from device join site using (site_id) join client using (client_id)where device.device_id = <value>');
108
 
109
/* Maintenance performed in a period of time */
110
 
111
insert into report ( name, query, parameters ) values ('Maintenance Performed in Period','select   client.name \"Client\",
112
         device.name \"Device Name\",
113
         maintenance_task.description \"Task\",
114
         DATE(maintenance_performed.maintenance_date) \"Date\",
115
         maintenance_performed.notes \"Notes\",
116
         login.email \"Technician\"
117
from maintenance_performed join device on maintenance_performed.device_id = device.device_id
118
   join maintenance_task on maintenance_task.maintenance_task_id = maintenance_performed.maintenance_task_id
119
   join login on login.login_id = maintenance_performed.login_id
120
   join site on device.site_id = site.site_id
121
   join client on client.client_id = site.client_id
122
where DATE(maintenance_performed.maintenance_date) >= <start_date>
123
   and DATE(maintenance_performed.maintenance_date) <= <end_date>
124
order by DATE(maintenance_performed.maintenance_date), client.name,site.name,device.name
125
','start_date++Starting Date++++
126
end_date++Ending Date++++');