-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patheAccount_list.sql
More file actions
123 lines (100 loc) · 3.76 KB
/
eAccount_list.sql
File metadata and controls
123 lines (100 loc) · 3.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
CREATE TABLE eAccount_list(
account_number varchar(255) PRIMARY KEY,
nic varchar(13) NOT NULL
);
ALTER TABLE eAccount_list
ADD COLUMN user_status ENUM('ACTIVE', 'INACTIVE') NOT NULL DEFAULT 'ACTIVE';
ALTER TABLE eAccount_list
ADD COLUMN meter_status ENUM('ACTIVE', 'INACTIVE') NOT NULL DEFAULT 'ACTIVE';
ALTER TABLE eAccount_list
ADD COLUMN iot_meter ENUM('YES', 'NO') NOT NULL DEFAULT 'NO';
ALTER TABLE eAccount_list
ADD COLUMN region VARCHAR(25) NOT NULL;
ALTER TABLE eAccount_list
ADD COLUMN iot_id varchar(255) NOT NULL DEFAULT 'NO';
ALTER TABLE utilitysaga.eAccount_list
ADD COLUMN sub_region VARCHAR(25),
ADD COLUMN balance DECIMAL(10,2) NOT NULL DEFAULT 0;
ALTER TABLE utilitySaga.eAccount_list
ADD COLUMN timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP;
ALTER TABLE utilitySaga.eAccount_list
ADD COLUMN request_id INT NULL;
DELIMITER $$
CREATE TRIGGER update_electricity_meter_update
AFTER UPDATE ON utilitysaga.eAccount_list
FOR EACH ROW
BEGIN
IF OLD.meter_status <> NEW.meter_status THEN
INSERT INTO utilitysaga.electricity_regionaladmin_notification (title, recipientType, recipientId, `date`, subject, message)
VALUES (
'Electricity Meter Status Update',
'SPECIFIC',
NEW.nic,
CURRENT_TIMESTAMP,
'IMPORTANT',
CONCAT('Your meter status of account ', NEW.account_number , ' has been updated to status ', NEW.meter_status)
);
END IF;
END$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER update_eaccount_balance
AFTER INSERT ON utilitysaga.electricity_manual_payment
FOR EACH ROW
BEGIN
UPDATE utilitysaga.eAccount_list
SET balance = balance - NEW.amount
WHERE account_number = NEW.account_number;
END$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER update_balance_notification
AFTER UPDATE ON utilitysaga.eAccount_list
FOR EACH ROW
BEGIN
IF OLD.balance <> NEW.balance THEN
INSERT INTO utilitysaga.electricity_regionaladmin_notification (title, recipientType, recipientId, `date`, subject, message)
VALUES (
'Balance Update',
'SPECIFIC',
NEW.nic,
CURRENT_TIMESTAMP,
'Balance Updated',
CONCAT('Your account balance for account ', NEW.account_number , ' has been updated to ', NEW.balance)
);
END IF;
END$$
DELIMITER ;
ALTER TABLE eAccount_list ADD COLUMN address VARCHAR(255) NOT NULL;
ALTER TABLE eAccount_list
ALTER COLUMN address SET DEFAULT '';
ALTER TABLE eAccount_list
ADD CONSTRAINT fk_eaccount_request_id FOREIGN KEY (request_id) REFERENCES electricity_connection_request(id);
CREATE TRIGGER update_water_connection_request
AFTER UPDATE ON water_connection_request
FOR EACH ROW
BEGIN
IF OLD.account_status <> NEW.account_status THEN
IF NEW.account_status = 'ADDED' THEN
INSERT INTO water_regionaladmin_notification (title, recipientType, recipientId, `date`, subject, message)
VALUES (
CONCAT('Water Connection Request Update ID: ', NEW.id),
'SPECIFIC',
NEW.nic,
CURRENT_TIMESTAMP,
'IMPORTANT',
CONCAT('Your request status has been updated to ', NEW.account_status, '. New account number: ', NEW.account_number)
);
ELSE
INSERT INTO water_regionaladmin_notification (title, recipientType, recipientId, `date`, subject, message)
VALUES (
CONCAT('Water Connection Request Update ID: ', NEW.id),
'SPECIFIC',
NEW.nic,
CURRENT_TIMESTAMP,
'IMPORTANT',
CONCAT('Your request status has been updated to ', NEW.account_status)
);
END IF;
END IF;
END;