-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdatabase.sql
318 lines (298 loc) · 7.5 KB
/
database.sql
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
CREATE DATABASE dbPointOfSale;
USE dbPointOfSale
GO
--Creating tables for my database
CREATE TABLE tbCustomer
(
Cust_ID INT PRIMARY KEY IDENTITY(1,1),
FName VARCHAR(20) DEFAULT 'DEMO' NOT NULL,
LName VARCHAR(20) DEFAULT 'Customer' NOT NULL,
Cust_Contact VARCHAR(20) DEFAULT NULL
);
CREATE TABLE tbEmployee
(
Emp_ID INT PRIMARY KEY IDENTITY(1,1),
FName VARCHAR(20) NOT NULL,
LName VARCHAR(20) DEFAULT '' NOT NULL,
Emp_Designation VARCHAR(40) NOT NULL,
Emp_Contact VARCHAR(20) NOT NULL
);
CREATE TABLE tbSupplier
(
Supp_ID INT PRIMARY KEY IDENTITY(1,1),
FName VARCHAR(20) DEFAULT 'DEMO' NOT NULL,
LName VARCHAR(20) DEFAULT 'Supplier' NOT NULL,
Supp_Contact VARCHAR(20) NOT NULL
);
CREATE TABLE tbProduct
(
P_ID INT PRIMARY KEY IDENTITY(1,1),
P_Dec VARCHAR(50) DEFAULT 'Product Description' NOT NULL,
P_Price INT NOT NULL,
P_Quantity INT NOT NULL
);
CREATE TABLE tbOrder
(
O_ID INT PRIMARY KEY IDENTITY(1,1),
Cust_ID INT NOT NULL FOREIGN KEY REFERENCES tbCustomer (Cust_ID),
Emp_ID INT NOT NULL FOREIGN KEY REFERENCES tbEmployee (Emp_ID),
);
CREATE TABLE tbOrderDec
(
O_ID INT NOT NULL FOREIGN KEY REFERENCES tbOrder (O_ID) ,
P_ID INT NOT NULL FOREIGN KEY REFERENCES tbProduct (P_ID) ,
Quantity INT DEFAULT 1 NOT NULL,
PRIMARY KEY (O_ID, P_ID)
);
CREATE TABLE tbDelivery
(
Dev_ID INT PRIMARY KEY IDENTITY(1,1),
Supp_ID INT NOT NULL FOREIGN KEY REFERENCES tbSupplier (Supp_ID) ,
Dev_Date DATE NOT NULL,
Dev_TIME TIME NOT NULL
);
CREATE TABLE tbDeliveryDec
(
Dev_ID INT NOT NULL FOREIGN KEY REFERENCES tbProduct (P_ID) ,
P_ID INT NOT NULL FOREIGN KEY REFERENCES tbProduct (P_ID) ,
Pro_Quantity INT NOT NULL,
PRIMARY KEY (Dev_ID, P_ID)
);
CREATE TABLE tbLogin
(
Emp_ID INT NOT NULL FOREIGN KEY REFERENCES tbEmployee(Emp_ID) ON DELETE CASCADE,
Username VARCHAR(30) NOT NULL,
User_password VARCHAR(30) NOT NULL,
PRIMARY KEY (Emp_ID)
);
--Procedures for inserting, updating, deleting PRODUCTS
ALTER PROCEDURE spInsertUpdateDeleteProduct
(
@P_id INT = null,
@P_dec VARCHAR(50)= null ,
@P_price INT = null,
@P_quantity INT = null,
@StatementType VARCHAR(20) = ''
)
WITH ENCRYPTION
AS
BEGIN
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
BEGIN TRY
BEGIN TRANSACTION
IF @StatementType = 'Insert'
BEGIN
INSERT INTO tbProduct (P_Dec,P_Price,P_Quantity)
VALUES ( @P_dec,@P_price,@P_quantity)
COMMIT TRANSACTION
END
ELSE IF @StatementType = 'Update'
BEGIN
UPDATE tbProduct
SET P_Dec = @P_dec, P_Price = @P_price, P_Quantity = @P_quantity
WHERE P_ID = @P_id
COMMIT TRANSACTION
END
ELSE IF @StatementType = 'Delete'
BEGIN
DELETE FROM tbProduct WHERE P_ID = @P_id
COMMIT TRANSACTION
END
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
END CATCH
END
--Procedures for inserting, updating, deleting Employee
ALTER PROCEDURE spInsertUpdateDeleteEmployee
(
@emp_id INT = null,
@fname VARCHAR(20)= null ,
@lname VARCHAR(20) = null,
@emp_contact VARCHAR(20) = null,
@emp_designation VARCHAR(50)= null ,
@StatementType VARCHAR(20) = ''
)
WITH ENCRYPTION
AS
BEGIN
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
BEGIN TRY
BEGIN TRANSACTION
IF @StatementType = 'Insert'
BEGIN
INSERT INTO tbEmployee (FName,LName,Emp_Contact,Emp_Designation)
VALUES (@fname,@lname,@emp_contact,@emp_designation)
COMMIT TRANSACTION
END
ELSE IF @StatementType = 'Update'
BEGIN
UPDATE tbEmployee
SET FName = @fname, LName = @lname, Emp_Contact = @emp_contact, Emp_Designation = @emp_designation
WHERE Emp_ID = @emp_id
COMMIT TRANSACTION
END
ELSE IF @StatementType = 'Delete'
BEGIN
DELETE FROM tbEmployee
WHERE Emp_ID = @emp_id
COMMIT TRANSACTION
END
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
END CATCH
END
--Procedures for inserting, updating, deleting Supplier
ALTER PROCEDURE spInsertUpdateDeleteSupplier
(
@Supp_id INT = null,
@fname VARCHAR(20)= null ,
@lname VARCHAR(20) = null,
@supp_contact VARCHAR(20) = null,
@StatementType VARCHAR(20) = ''
)
WITH ENCRYPTION
AS
BEGIN
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
BEGIN TRY
BEGIN TRANSACTION
IF @StatementType = 'Insert'
BEGIN
INSERT INTO tbSupplier (FName,LName,Supp_Contact) VALUES (@fname,@lname,@supp_contact)
COMMIT TRANSACTION
END
ELSE IF @StatementType = 'Update'
BEGIN
UPDATE tbSupplier
SET FName = @fname, LName = @lname, Supp_Contact = @supp_contact
WHERE Supp_ID = @supp_id
COMMIT TRANSACTION
END
ELSE IF @StatementType = 'Delete'
BEGIN
DELETE FROM tbSupplier
WHERE Supp_ID = @supp_id
COMMIT TRANSACTION
END
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
END CATCH
END
--Procedures for inserting, updating, deleting Logins
ALTER PROCEDURE spInsertUpdateDeleteLogins
(
@emp_id INT = null,
@username VARCHAR(30)= null ,
@password VARCHAR(30) = null,
@StatementType VARCHAR(20) = ''
)
WITH ENCRYPTION
AS
BEGIN
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
BEGIN TRY
BEGIN TRANSACTION
IF @StatementType = 'Insert'
BEGIN
INSERT INTO tbLogin(Emp_ID,Username,User_password) VALUES (@emp_id,@username,@password)
COMMIT TRANSACTION
END
ELSE IF @StatementType = 'Update'
BEGIN
UPDATE tbLogin
SET Username = @username, User_Password = @password
WHERE Emp_ID = @emp_id
COMMIT TRANSACTION
END
ELSE IF @StatementType = 'Delete'
BEGIN
DELETE FROM tbLogin
WHERE Emp_ID = @emp_id
COMMIT TRANSACTION
END
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
END CATCH
END
--Procedures for inserting, updating, deleting Logins
CREATE PROCEDURE spInsertUpdateDeleteDeliveryDec
(
@Dev_id INT = null,
@P_ID INT= null ,
@Quantity INT = null,
@StatementType VARCHAR(20) = ''
)
WITH ENCRYPTION
AS
BEGIN
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
BEGIN TRY
BEGIN TRANSACTION
IF @StatementType = 'Insert'
BEGIN
INSERT INTO tbDeliveryDec(Dev_ID,P_ID,Pro_Quantity) VALUES (@Dev_id,@P_ID,@Quantity)
COMMIT TRANSACTION
END
ELSE IF @StatementType = 'Update'
BEGIN
UPDATE tbLogin
SET Username = @username, User_Password = @password
WHERE Emp_ID = @emp_id
COMMIT TRANSACTION
END
ELSE IF @StatementType = 'Delete'
BEGIN
DELETE FROM tbLogin
WHERE Emp_ID = @emp_id
COMMIT TRANSACTION
END
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
END CATCH
END
--creating funtion on tbLogin
ALTER FUNCTION fn_Login
(
@user VARCHAR(30),
@password VARCHAR(40)
)
RETURNS INT
WITH ENCRYPTION
AS
BEGIN
DECLARE @Found INT
SET @Found =(SELECT Emp_ID FROM dbo.tbLogin
WHERE Username = @user AND User_password = @password)
IF(@Found IS NULL)
SET @Found = 0;
ElSE
SET @Found = 1;
RETURN @Found
-- searches for value in table
CREATE PROCEDURE spSearchObject
@tableName VARCHAR(20),
@match INT OUTPUT
AS
BEGIN
BEGIN TRY
BEGIN TRANSACTION
DECLARE @sql VARCHAR(MAX)
SET @sql = 'SELECT * from ' + QUOTENAME(@tableName)
EXECUTE sp_executesql @sql
IF @@ROWCOUNT>0
PRINT '1'
ELSE
SET @match = 0
print @match
RETURN @match
COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
END CATCH
END