1
|
|
2
|
ALTER PROCEDURE [dbo].[TR_BUDGET_CHECK_LIMIT_YEAR_Byid]
|
3
|
@p_GD_ID varchar(20) = NULL,
|
4
|
@p_GD_CODE varchar(20) = NULL,
|
5
|
@p_BRANCH_ID varchar(20) = NULL,
|
6
|
@p_DEP_ID varchar(20) = NULL,
|
7
|
@p_KHOI_ID varchar(20) = NULL,
|
8
|
@p_TLNAME varchar(20) = NULL,
|
9
|
@p_ROLENAME varchar(20) = NULL,
|
10
|
@p_MONTH varchar(20) = NULL,
|
11
|
@p_YEAR varchar(20) = NULL,
|
12
|
@p_BUDGET_LIMIT_CURRENT decimal(18,0) OUT,
|
13
|
@p_BUDGET_USED_CURRENT decimal(18,0) OUT
|
14
|
AS
|
15
|
-- validation
|
16
|
DECLARE @l_BUDGET_LIMIT_CURRENT DECIMAL(18,0)
|
17
|
-- Lấy hạn mức đã sử dụng đến hiện tại
|
18
|
DECLARE @l_BUDGET_USED_CURRENT DECIMAL(18,0)
|
19
|
DECLARE @l_BUDGET_USED_M1 DECIMAL(18,0), @l_BUDGET_USED_M2 DECIMAL(18,0), @l_BUDGET_USED_M3 DECIMAL(18,0), @l_BUDGET_USED_M4 DECIMAL(18,0), @l_BUDGET_USED_M5 DECIMAL(18,0),
|
20
|
@l_BUDGET_USED_M6 DECIMAL(18,0), @l_BUDGET_USED_M7 DECIMAL(18,0), @l_BUDGET_USED_M8 DECIMAL(18,0), @l_BUDGET_USED_M9 DECIMAL(18,0), @l_BUDGET_USED_M10 DECIMAL(18,0),
|
21
|
@l_BUDGET_USED_M11 DECIMAL(18,0), @l_BUDGET_USED_M12 DECIMAL(18,0)
|
22
|
|
23
|
IF(ISNULL(@p_ROLENAME, '') = '')
|
24
|
BEGIN
|
25
|
-- duyet moi kiem tra han muc
|
26
|
IF(EXISTS(SELECT TOP 1 * FROM TR_REQ_BUDGET_YEAR_LIMIT where GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND AUTH_STATUS = 'A' AND BUDGET_YEAR = @p_YEAR))
|
27
|
BEGIN
|
28
|
--Validation is here
|
29
|
/*
|
30
|
NSCP theo định mức năm sẽ được tính bằng lũy kế.
|
31
|
Ban đầu, sẽ có 1 ngân sách năm được cấp, nhưng chỉ là dự kiến(hứa sẽ cấp), còn ngân sách thật sự sẽ được chia từng tháng.
|
32
|
VD: Ngân sách năm được cấp 1 tỷ. Nhưng 1 tỷ này sẽ chia ra cho 12 tháng.
|
33
|
T1 được cấp 100tr, nếu dùng quá định mức sẽ báo.
|
34
|
*/
|
35
|
-- Lấy hạn mức lũy kế theo tháng hiện tại
|
36
|
SET @l_BUDGET_LIMIT_CURRENT = ISNULL((SELECT BUDGET_LIMIT_CURRENT = CASE WHEN MONTH(GETDATE()) = 1 then M1
|
37
|
WHEN MONTH(GETDATE()) = 2 then M2
|
38
|
WHEN MONTH(GETDATE()) = 3 then M3
|
39
|
WHEN MONTH(GETDATE()) = 4 then M4
|
40
|
WHEN MONTH(GETDATE()) = 5 then M5
|
41
|
WHEN MONTH(GETDATE()) = 6 then M6
|
42
|
WHEN MONTH(GETDATE()) = 7 then M7
|
43
|
WHEN MONTH(GETDATE()) = 8 then M8
|
44
|
WHEN MONTH(GETDATE()) = 9 then M9
|
45
|
WHEN MONTH(GETDATE()) = 10 then M10
|
46
|
WHEN MONTH(GETDATE()) = 11 then M11
|
47
|
WHEN MONTH(GETDATE()) = 12 then M12
|
48
|
ELSE M1
|
49
|
END
|
50
|
FROM TR_REQ_BUDGET_YEAR_LIMIT
|
51
|
WHERE GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND BUDGET_YEAR = @p_YEAR AND AUTH_STATUS = 'A' AND RECORD_STATUS = '1'),0)
|
52
|
-- Lấy hạn mức đã sử dụng đến hiện tại
|
53
|
SET @l_BUDGET_USED_M1 = ISNULL((SELECT SUM(M1) FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE 1=1 AND GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND BUDGET_YEAR = @p_YEAR AND ISNULL(ROLENAME, '') = '' GROUP BY GD_ID),0)
|
54
|
SET @l_BUDGET_USED_M2 = ISNULL((SELECT SUM(M2) FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE 1=1 AND GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND BUDGET_YEAR = @p_YEAR AND ISNULL(ROLENAME, '') = '' GROUP BY GD_ID),0)
|
55
|
SET @l_BUDGET_USED_M3 = ISNULL((SELECT SUM(M3) FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE 1=1 AND GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND BUDGET_YEAR = @p_YEAR AND ISNULL(ROLENAME, '') = '' GROUP BY GD_ID),0)
|
56
|
SET @l_BUDGET_USED_M4 = ISNULL((SELECT SUM(M4) FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE 1=1 AND GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND BUDGET_YEAR = @p_YEAR AND ISNULL(ROLENAME, '') = '' GROUP BY GD_ID),0)
|
57
|
SET @l_BUDGET_USED_M5 = ISNULL((SELECT SUM(M5) FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE 1=1 AND GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND BUDGET_YEAR = @p_YEAR AND ISNULL(ROLENAME, '') = '' GROUP BY GD_ID),0)
|
58
|
SET @l_BUDGET_USED_M6 = ISNULL((SELECT SUM(M6) FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE 1=1 AND GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND BUDGET_YEAR = @p_YEAR AND ISNULL(ROLENAME, '') = '' GROUP BY GD_ID),0)
|
59
|
SET @l_BUDGET_USED_M7 = ISNULL((SELECT SUM(M7) FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE 1=1 AND GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND BUDGET_YEAR = @p_YEAR AND ISNULL(ROLENAME, '') = '' GROUP BY GD_ID),0)
|
60
|
SET @l_BUDGET_USED_M8 = ISNULL((SELECT SUM(M8) FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE 1=1 AND GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND BUDGET_YEAR = @p_YEAR AND ISNULL(ROLENAME, '') = '' GROUP BY GD_ID),0)
|
61
|
SET @l_BUDGET_USED_M9 = ISNULL((SELECT SUM(M9) FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE 1=1 AND GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND BUDGET_YEAR = @p_YEAR AND ISNULL(ROLENAME, '') = '' GROUP BY GD_ID),0)
|
62
|
SET @l_BUDGET_USED_M10 = ISNULL((SELECT SUM(M10) FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE 1=1 AND GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND BUDGET_YEAR = @p_YEAR AND ISNULL(ROLENAME, '') = '' GROUP BY GD_ID),0)
|
63
|
SET @l_BUDGET_USED_M11 = ISNULL((SELECT SUM(M11) FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE 1=1 AND GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND BUDGET_YEAR = @p_YEAR AND ISNULL(ROLENAME, '') = '' GROUP BY GD_ID),0)
|
64
|
SET @l_BUDGET_USED_M12 = ISNULL((SELECT SUM(M12) FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE 1=1 AND GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND BUDGET_YEAR = @p_YEAR AND ISNULL(ROLENAME, '') = '' GROUP BY GD_ID),0)
|
65
|
|
66
|
SET @l_BUDGET_USED_CURRENT = @l_BUDGET_USED_M1 + @l_BUDGET_USED_M2 + @l_BUDGET_USED_M3 + @l_BUDGET_USED_M4 + @l_BUDGET_USED_M5 + @l_BUDGET_USED_M6 + @l_BUDGET_USED_M7 + @l_BUDGET_USED_M8
|
67
|
+ @l_BUDGET_USED_M9 + @l_BUDGET_USED_M10 + @l_BUDGET_USED_M11 + @l_BUDGET_USED_M12
|
68
|
|
69
|
SET @p_BUDGET_LIMIT_CURRENT = @l_BUDGET_LIMIT_CURRENT;
|
70
|
SET @p_BUDGET_USED_CURRENT = @l_BUDGET_USED_CURRENT;
|
71
|
|
72
|
-- CHECK NEU KHONG AP DUNG TINH HAN MUC THI BYPASS
|
73
|
IF(ISNULL((SELECT BUDGET_LIMIT_AMT FROM TR_REQ_BUDGET_YEAR_LIMIT WHERE 1=1 AND GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND BUDGET_YEAR = @p_YEAR AND ISNULL(ROLENAME, '') = '' ),0) > 0)
|
74
|
BEGIN
|
75
|
IF(@l_BUDGET_USED_CURRENT > @l_BUDGET_LIMIT_CURRENT)
|
76
|
BEGIN
|
77
|
RETURN '-1'
|
78
|
END
|
79
|
ELSE
|
80
|
BEGIN
|
81
|
RETURN '0'
|
82
|
END
|
83
|
END
|
84
|
ELSE
|
85
|
BEGIN
|
86
|
RETURN '1'
|
87
|
END
|
88
|
|
89
|
END
|
90
|
ELSE
|
91
|
BEGIN
|
92
|
RETURN '1'
|
93
|
END
|
94
|
END
|
95
|
ELSE
|
96
|
BEGIN
|
97
|
print 'tlname'
|
98
|
-- duyet moi kiem tra han muc
|
99
|
IF(EXISTS(SELECT TOP 1 * FROM TR_REQ_BUDGET_YEAR_LIMIT where GD_ID = @p_GD_ID AND KHOI_ID = @p_KHOI_ID AND BRANCH_ID = @p_BRANCH_ID AND ROLENAME = @p_ROLENAME AND BUDGET_YEAR = @p_YEAR AND AUTH_STATUS = 'A'))
|
100
|
BEGIN
|
101
|
print 'da duyet'
|
102
|
--Validation is here
|
103
|
/*
|
104
|
NSCP theo định mức năm sẽ được tính bằng lũy kế.
|
105
|
Ban đầu, sẽ có 1 ngân sách năm được cấp, nhưng chỉ là dự kiến(hứa sẽ cấp), còn ngân sách thật sự sẽ được chia từng tháng.
|
106
|
VD: Ngân sách năm được cấp 1 tỷ. Nhưng 1 tỷ này sẽ chia ra cho 12 tháng.
|
107
|
T1 được cấp 100tr, nếu dùng quá định mức sẽ báo.
|
108
|
*/
|
109
|
-- Lấy hạn mức lũy kế theo tháng hiện tại
|
110
|
SET @l_BUDGET_LIMIT_CURRENT = ISNULL((SELECT BUDGET_LIMIT_CURRENT = CASE WHEN MONTH(GETDATE()) = 1 then M1
|
111
|
WHEN MONTH(GETDATE()) = 2 then M2
|
112
|
WHEN MONTH(GETDATE()) = 3 then M3
|
113
|
WHEN MONTH(GETDATE()) = 4 then M4
|
114
|
WHEN MONTH(GETDATE()) = 5 then M5
|
115
|
WHEN MONTH(GETDATE()) = 6 then M6
|
116
|
WHEN MONTH(GETDATE()) = 7 then M7
|
117
|
WHEN MONTH(GETDATE()) = 8 then M8
|
118
|
WHEN MONTH(GETDATE()) = 9 then M9
|
119
|
WHEN MONTH(GETDATE()) = 10 then M10
|
120
|
WHEN MONTH(GETDATE()) = 11 then M11
|
121
|
WHEN MONTH(GETDATE()) = 12 then M12
|
122
|
ELSE M1
|
123
|
END
|
124
|
FROM TR_REQ_BUDGET_YEAR_LIMIT
|
125
|
WHERE GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND ROLENAME = @p_ROLENAME AND BUDGET_YEAR = @p_YEAR AND AUTH_STATUS = 'A' AND RECORD_STATUS = '1'),0)
|
126
|
-- Lấy hạn mức đã sử dụng đến hiện tại
|
127
|
SET @l_BUDGET_USED_M1 = ISNULL((SELECT SUM(M1) FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE 1=1 AND GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND KHOI_ID = @p_KHOI_ID AND ROLENAME = @p_ROLENAME AND BUDGET_YEAR = @p_YEAR GROUP BY GD_ID),0)
|
128
|
SET @l_BUDGET_USED_M2 = ISNULL((SELECT SUM(M2) FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE 1=1 AND GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND KHOI_ID = @p_KHOI_ID AND ROLENAME = @p_ROLENAME AND BUDGET_YEAR = @p_YEAR GROUP BY GD_ID),0)
|
129
|
SET @l_BUDGET_USED_M3 = ISNULL((SELECT SUM(M3) FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE 1=1 AND GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND KHOI_ID = @p_KHOI_ID AND ROLENAME = @p_ROLENAME AND BUDGET_YEAR = @p_YEAR GROUP BY GD_ID),0)
|
130
|
SET @l_BUDGET_USED_M4 = ISNULL((SELECT SUM(M4) FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE 1=1 AND GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND KHOI_ID = @p_KHOI_ID AND ROLENAME = @p_ROLENAME AND BUDGET_YEAR = @p_YEAR GROUP BY GD_ID),0)
|
131
|
SET @l_BUDGET_USED_M5 = ISNULL((SELECT SUM(M5) FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE 1=1 AND GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND KHOI_ID = @p_KHOI_ID AND ROLENAME = @p_ROLENAME AND BUDGET_YEAR = @p_YEAR GROUP BY GD_ID),0)
|
132
|
SET @l_BUDGET_USED_M6 = ISNULL((SELECT SUM(M6) FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE 1=1 AND GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND KHOI_ID = @p_KHOI_ID AND ROLENAME = @p_ROLENAME AND BUDGET_YEAR = @p_YEAR GROUP BY GD_ID),0)
|
133
|
SET @l_BUDGET_USED_M7 = ISNULL((SELECT SUM(M7) FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE 1=1 AND GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND KHOI_ID = @p_KHOI_ID AND ROLENAME = @p_ROLENAME AND BUDGET_YEAR = @p_YEAR GROUP BY GD_ID),0)
|
134
|
SET @l_BUDGET_USED_M8 = ISNULL((SELECT SUM(M8) FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE 1=1 AND GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND KHOI_ID = @p_KHOI_ID AND ROLENAME = @p_ROLENAME AND BUDGET_YEAR = @p_YEAR GROUP BY GD_ID),0)
|
135
|
SET @l_BUDGET_USED_M9 = ISNULL((SELECT SUM(M9) FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE 1=1 AND GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND KHOI_ID = @p_KHOI_ID AND ROLENAME = @p_ROLENAME AND BUDGET_YEAR = @p_YEAR GROUP BY GD_ID),0)
|
136
|
SET @l_BUDGET_USED_M10 = ISNULL((SELECT SUM(M10) FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE 1=1 AND GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND KHOI_ID = @p_KHOI_ID AND ROLENAME = @p_ROLENAME AND BUDGET_YEAR = @p_YEAR GROUP BY GD_ID),0)
|
137
|
SET @l_BUDGET_USED_M11 = ISNULL((SELECT SUM(M11) FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE 1=1 AND GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND KHOI_ID = @p_KHOI_ID AND ROLENAME = @p_ROLENAME AND BUDGET_YEAR = @p_YEAR GROUP BY GD_ID),0)
|
138
|
SET @l_BUDGET_USED_M12 = ISNULL((SELECT SUM(M12) FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE 1=1 AND GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND KHOI_ID = @p_KHOI_ID AND ROLENAME = @p_ROLENAME AND BUDGET_YEAR = @p_YEAR GROUP BY GD_ID),0)
|
139
|
|
140
|
SET @l_BUDGET_USED_CURRENT = @l_BUDGET_USED_M1 + @l_BUDGET_USED_M2 + @l_BUDGET_USED_M3 + @l_BUDGET_USED_M4 + @l_BUDGET_USED_M5 + @l_BUDGET_USED_M6 + @l_BUDGET_USED_M7 + @l_BUDGET_USED_M8
|
141
|
+ @l_BUDGET_USED_M9 + @l_BUDGET_USED_M10 + @l_BUDGET_USED_M11 + @l_BUDGET_USED_M12
|
142
|
|
143
|
SET @p_BUDGET_LIMIT_CURRENT = @l_BUDGET_LIMIT_CURRENT;
|
144
|
SET @p_BUDGET_USED_CURRENT = @l_BUDGET_USED_CURRENT;
|
145
|
|
146
|
print @p_BUDGET_LIMIT_CURRENT
|
147
|
print @p_BUDGET_USED_CURRENT
|
148
|
|
149
|
-- CHECK NEU KHONG AP DUNG TINH HAN MUC THI BYPASS
|
150
|
IF(ISNULL((SELECT BUDGET_LIMIT_AMT FROM TR_REQ_BUDGET_YEAR_LIMIT WHERE 1=1 AND GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND KHOI_ID = @p_KHOI_ID AND ROLENAME = @p_ROLENAME AND BUDGET_YEAR = @p_YEAR ),0) > 0)
|
151
|
BEGIN
|
152
|
IF(@l_BUDGET_USED_CURRENT > @l_BUDGET_LIMIT_CURRENT)
|
153
|
BEGIN
|
154
|
RETURN '-1'
|
155
|
END
|
156
|
ELSE
|
157
|
BEGIN
|
158
|
RETURN '0'
|
159
|
END
|
160
|
END
|
161
|
ELSE
|
162
|
BEGIN
|
163
|
RETURN '1'
|
164
|
END
|
165
|
END
|
166
|
ELSE
|
167
|
BEGIN
|
168
|
RETURN '1'
|
169
|
END
|
170
|
END
|
171
|
|