-
Notifications
You must be signed in to change notification settings - Fork 0
/
Treasury.sql
179 lines (148 loc) · 2.77 KB
/
Treasury.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
USE RAC_SARAYAT
GO
CREATE OR ALTER PROC usp_Fees_Insert
@MemberID INT,
@Amount INT,
@PaymentMonth NVARCHAR(10),
@PaymentYear NVARCHAR(10),
@HexCode NVARCHAR(2) OUTPUT,
@HexMsg NVARCHAR(50) OUTPUT
AS
BEGIN
IF NOT EXISTS(SELECT * FROM Members WHERE MemberID = @MemberID)
BEGIN
SET @HexCode = '01'
SET @HexMsg = 'Failed to find user'
RETURN -1
END
IF(@Amount <= 0)
BEGIN
SET @HexCode = '02'
SET @HexMsg = 'Invalid Amount'
RETURN -1
END
INSERT INTO Fees
(
MemberID,
PaidAmount,
PaymentMonth,
PaymentYear
)
VALUES
(
@MemberID,
@Amount,
@PaymentMonth,
@PaymentYear
)
INSERT INTO Treasury
(
CurrentAmount
)
VALUES
(
@Amount + (SELECT TOP 1 CurrentAmount FROM Treasury ORDER BY ID DESC)
)
SET @HexCode = '00'
SET @HexMsg = 'Successfully Registered'
END
GO
CREATE OR ALTER PROC usp_Treasury_GetByYear
@Year NVARCHAR(10)
AS
BEGIN
SELECT * FROM Treasury
WHERE DATEPART(YEAR, DateOfChange) Like '%' + @Year + '%'
END
GO
CREATE OR ALTER PROC usp_Treasury_GetByMonthAndYear
@Year NVARCHAR(10),
@Month NVARCHAR(10)
AS
BEGIN
SELECT * FROM Treasury
WHERE DATEPART(YEAR, DateOfChange) Like '%' + @Year + '%'
AND DATEPART(MONTH, DateOfChange) = @Month
END
GO
CREATE OR ALTER PROC usp_Payment_Pay
@PaidAmount INT,
@RecieverOfPayment NVARCHAR(100),
@HexCode NVARCHAR(2) OUTPUT,
@HexMsg NVARCHAR(50) OUTPUT
AS
BEGIN
DECLARE @MinimumThreshold INT
SET @MinimumThreshold = (SELECT TOP 1 MinimumThreshold
FROM GeneralParameters ORDER BY ID DESC)
IF(@PaidAmount < 0)
BEGIN
SET @HexCode = '01'
SET @HexMsg = 'You entered a negative amount'
RETURN -1
END
DECLARE @CheckAmount INT
SET @CheckAmount = (SELECT TOP 1 CurrentAmount FROM Treasury ORDER BY ID DESC)-@PaidAmount
IF(@CheckAmount < @MinimumThreshold)
BEGIN
SET @HexCode = '02'
SET @HexMsg = 'Amount Exceeds Currently Allowed Threshold'
RETURN -1
END
INSERT INTO Treasury
(
CurrentAmount
)
VALUES
(
@CheckAmount
)
INSERT INTO Payments
(
PaidAmount,
RecieverOfPayment
)
VALUES
(
@PaidAmount,
@RecieverOfPayment
)
SET @HexCode = '00'
SET @HexMsg = 'Payment Succeeded'
END
GO
CREATE OR ALTER PROC usp_Treasury_GetMembersPaid
@Month NVARCHAR(2),
@Year NVARCHAR(4)
AS
BEGIN
SELECT Members.*,Fees.* FROM Fees
INNER JOIN Members
ON Members.MemberID = Fees.MemberID
WHERE PaymentYear Like '%' + @Year + '%'
AND PaymentMonth = @Month
AND Fees.MemberID IS NOT NULL
END
GO
CREATE OR ALTER PROC usp_Treasury_GetHistoryMember
@MemberID INT
AS
BEGIN
SELECT Members.*,Fees.* FROM Fees
INNER JOIN Members
ON Members.MemberID = Fees.MemberID
AND Fees.MemberID = @MemberID
END
GO
CREATE OR ALTER PROC usp_Treasury_GetHistoryMemberByYear
@MemberID INT,
@Year NVARCHAR(4)
AS
BEGIN
SELECT Members.*,Fees.* FROM Fees
INNER JOIN Members
ON Members.MemberID = Fees.MemberID
AND Fees.MemberID = @MemberID
AND PaymentYear = @Year
END
GO