Project

General

Profile

TR_BUDGET_CHECK_LIMIT_MONTH_Byid.txt

Luc Tran Van, 04/24/2023 11:20 AM

 
1
ALTER PROCEDURE dbo.TR_BUDGET_CHECK_LIMIT_MONTH_Byid
2
@p_GD_ID	VARCHAR(20)  = NULL,
3
@p_GD_CODE	VARCHAR(20)  = NULL,
4
@p_BRANCH_TYPE VARCHAR(20)  = NULL,
5
@p_BUDGET_YEAR	VARCHAR(20)  = NULL,
6
@p_MONTH_RATE VARCHAR(20) = NULL,
7
@p_BRANCH_KIND VARCHAR(20) = NULL,
8
@p_BRANCH_TAKE_COST_ID VARCHAR(20) = NULL,
9
@p_DEP_TAKE_COST_ID VARCHAR(20) = NULL,
10
@p_BUDGET_LIMIT_CURRENT DECIMAL(18,0) OUT,
11
@p_BUDGET_USED_CURRENT DECIMAL(18,0) OUT
12
AS
13

    
14
	DECLARE @l_BUDGET_LIMIT_CURRENT DECIMAL(18,0);
15
	DECLARE @l_BUDGET_USED_CURRENT DECIMAL(18,0);
16

    
17
	IF(ISNULL(@p_BRANCH_TAKE_COST_ID, '') = 'DV0001')
18
	BEGIN
19
		-- duyet moi kiem tra han muc
20
		IF(EXISTS(SELECT TOP 1 * FROM TR_REQ_BUDGET_MONTH_LIMIT where GD_ID = @p_GD_ID AND BRANCH_TYPE = @p_BRANCH_TYPE AND BUDGET_YEAR = @p_BUDGET_YEAR AND AUTH_STATUS = 'A'))
21
		BEGIN
22
			--Validation is here
23
			/*
24
			*/
25
			-- Lấy hạn mức tháng, năm được chọn
26
			SET @l_BUDGET_LIMIT_CURRENT = ISNULL((SELECT TOP 1 BUDGET_LIMIT_AMT = CASE	WHEN @p_MONTH_RATE = 'M1' then M1
27
																						WHEN @p_MONTH_RATE = 'M2' then M2
28
																						WHEN @p_MONTH_RATE = 'M3' then M3
29
																						WHEN @p_MONTH_RATE = 'M4' then M4
30
																						WHEN @p_MONTH_RATE = 'M5' then M5
31
																						WHEN @p_MONTH_RATE = 'M6' then M6
32
																						WHEN @p_MONTH_RATE = 'M7' then M7
33
																						WHEN @p_MONTH_RATE = 'M8' then M8
34
																						WHEN @p_MONTH_RATE = 'M9' then M9
35
																						WHEN @p_MONTH_RATE = 'M10' then M10
36
																						WHEN @p_MONTH_RATE = 'M11' then M11
37
																						WHEN @p_MONTH_RATE = 'M12' then M12
38
																						ELSE M1
39
																				  END
40
											FROM TR_REQ_BUDGET_MONTH_LIMIT 
41
											WHERE GD_ID = @p_GD_ID AND BRANCH_TYPE = @p_BRANCH_TYPE AND BUDGET_YEAR = @p_BUDGET_YEAR AND AUTH_STATUS = 'A' AND RECORD_STATUS = 1 AND BUDGET_TYPE = 'thang'),0)
42

    
43
			-- Lấy hạn mức đã sử dụng đến hiện tại
44
			SET @l_BUDGET_USED_CURRENT = ISNULL((SELECT BUDGET_LIMIT_CURRENT = SUM(CASE	WHEN @p_MONTH_RATE = 'M1' then M1
45
																						WHEN @p_MONTH_RATE = 'M2' then M2
46
																						WHEN @p_MONTH_RATE = 'M3' then M3
47
																						WHEN @p_MONTH_RATE = 'M4' then M4
48
																						WHEN @p_MONTH_RATE = 'M5' then M5
49
																						WHEN @p_MONTH_RATE = 'M6' then M6
50
																						WHEN @p_MONTH_RATE = 'M7' then M7
51
																						WHEN @p_MONTH_RATE = 'M8' then M8
52
																						WHEN @p_MONTH_RATE = 'M9' then M9
53
																						WHEN @p_MONTH_RATE = 'M10' then M10
54
																						WHEN @p_MONTH_RATE = 'M11' then M11
55
																						WHEN @p_MONTH_RATE = 'M12' then M12
56
																					ELSE M1
57
																					END)
58
											FROM TR_REQ_BUDGET_MONTH_LIMIT_DETAIL 
59
											WHERE GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_TAKE_COST_ID AND DEP_ID = @p_DEP_TAKE_COST_ID AND BUDGET_YEAR = @p_BUDGET_YEAR AND RECORD_STATUS = 1 AND AUTH_STATUS = 'A'
60
											GROUP BY GD_ID),0)
61

    
62
			SET @p_BUDGET_LIMIT_CURRENT = @l_BUDGET_LIMIT_CURRENT;
63
			SET @p_BUDGET_USED_CURRENT = @l_BUDGET_USED_CURRENT;
64

    
65
			IF(@l_BUDGET_USED_CURRENT > @l_BUDGET_LIMIT_CURRENT)
66
			BEGIN
67
				--SELECT '-1' as Result, N'Thông tin hạng mục ngân sách và chi phí, mã ngân sách ' + @p_GD_CODE + N': Số tiền sử dụng ngân sách vượt quá định mức ngân sách. Hạn mức hiện tại là ' +  @l_BUDGET_LIMIT_CURRENT + N', số tiền đã sử dụng đến hiện tại là ' + @l_BUDGET_USED_CURRENT ErrorDesc
68
				RETURN '-1'
69
			END
70
			ELSE
71
			BEGIN
72
				--SELECT '0' as Result, @l_BUDGET_LIMIT_CURRENT LIMIT_CURRENT, @l_BUDGET_USED_CURRENT LIMIT_USED,  '' ErrorDesc
73
				RETURN '0'
74
			END
75
		END
76
		ELSE
77
		BEGIN
78
			RETURN '1'
79
		END
80
	END
81
	ELSE
82
	BEGIN
83
		-- duyet moi kiem tra han muc
84
		IF(EXISTS(SELECT TOP 1 * FROM TR_REQ_BUDGET_MONTH_LIMIT where GD_ID = @p_GD_ID AND BRANCH_TYPE = @p_BRANCH_TYPE AND BUDGET_YEAR = @p_BUDGET_YEAR AND AUTH_STATUS = 'A'))
85
		BEGIN
86
			--Validation is here
87
			/*
88
			*/
89
			-- Lấy hạn mức tháng, năm được chọn
90
			SET @l_BUDGET_LIMIT_CURRENT = ISNULL((SELECT BUDGET_LIMIT_AMT = CASE WHEN @p_MONTH_RATE = 'M1' then M1
91
																				 WHEN @p_MONTH_RATE = 'M2' then M2
92
																				 WHEN @p_MONTH_RATE = 'M3' then M3
93
																				 WHEN @p_MONTH_RATE = 'M4' then M4
94
																				 WHEN @p_MONTH_RATE = 'M5' then M5
95
																				 WHEN @p_MONTH_RATE = 'M6' then M6
96
																				 WHEN @p_MONTH_RATE = 'M7' then M7
97
																				 WHEN @p_MONTH_RATE = 'M8' then M8
98
																				 WHEN @p_MONTH_RATE = 'M9' then M9
99
																				 WHEN @p_MONTH_RATE = 'M10' then M10
100
																				 WHEN @p_MONTH_RATE = 'M11' then M11
101
																				 WHEN @p_MONTH_RATE = 'M12' then M12
102
																				 ELSE M1
103
																			END
104
											FROM TR_REQ_BUDGET_MONTH_LIMIT 
105
											WHERE GD_ID = @p_GD_ID AND BRANCH_TYPE = @p_BRANCH_TYPE AND BUDGET_YEAR = @p_BUDGET_YEAR AND BRANCH_KIND = @p_BRANCH_KIND),0)
106

    
107
			-- Lấy hạn mức đã sử dụng đến hiện tại
108
			SET @l_BUDGET_USED_CURRENT = ISNULL((SELECT BUDGET_LIMIT_CURRENT = SUM(CASE	WHEN @p_MONTH_RATE = 'M1' then M1
109
																						WHEN @p_MONTH_RATE = 'M2' then M2
110
																						WHEN @p_MONTH_RATE = 'M3' then M3
111
																						WHEN @p_MONTH_RATE = 'M4' then M4
112
																						WHEN @p_MONTH_RATE = 'M5' then M5
113
																						WHEN @p_MONTH_RATE = 'M6' then M6
114
																						WHEN @p_MONTH_RATE = 'M7' then M7
115
																						WHEN @p_MONTH_RATE = 'M8' then M8
116
																						WHEN @p_MONTH_RATE = 'M9' then M9
117
																						WHEN @p_MONTH_RATE = 'M10' then M10
118
																						WHEN @p_MONTH_RATE = 'M11' then M11
119
																						WHEN @p_MONTH_RATE = 'M12' then M12
120
																					ELSE M1
121
																					END)
122
											FROM TR_REQ_BUDGET_MONTH_LIMIT_DETAIL 
123
											WHERE GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_TAKE_COST_ID AND BUDGET_YEAR = @p_BUDGET_YEAR AND BRANCH_KIND = @p_BRANCH_KIND AND RECORD_STATUS = 1 AND AUTH_STATUS = 'A'
124
											GROUP BY GD_ID),0)
125

    
126
			SET @p_BUDGET_LIMIT_CURRENT = @l_BUDGET_LIMIT_CURRENT;
127
			SET @p_BUDGET_USED_CURRENT = @l_BUDGET_USED_CURRENT;
128

    
129
			IF(@l_BUDGET_USED_CURRENT > @l_BUDGET_LIMIT_CURRENT)
130
			BEGIN
131
				--SELECT '-1' as Result, N'Thông tin hạng mục ngân sách và chi phí, mã ngân sách ' + @p_GD_CODE + N': Số tiền sử dụng ngân sách vượt quá định mức ngân sách. Hạn mức hiện tại là ' +  @l_BUDGET_LIMIT_CURRENT + N', số tiền đã sử dụng đến hiện tại là ' + @l_BUDGET_USED_CURRENT ErrorDesc
132
				RETURN '-1'
133
			END
134
			ELSE
135
			BEGIN
136
				--SELECT '0' as Result, @l_BUDGET_LIMIT_CURRENT LIMIT_CURRENT, @l_BUDGET_USED_CURRENT LIMIT_USED,  '' ErrorDesc
137
				RETURN '0'
138
			END
139
		END
140
		ELSE
141
		BEGIN
142
			RETURN '1'
143
		END
144
END