Project

General

Profile

budget_year_limit.txt

Luc Tran Van, 06/30/2022 02:38 PM

 
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_MONTH varchar(20) = NULL,
8
@p_YEAR varchar(20) = NULL,
9
@p_BUDGET_LIMIT_CURRENT decimal(18,0) OUT,
10
@p_BUDGET_USED_CURRENT decimal(18,0) OUT
11
AS
12

    
13

    
14
--Validation is here
15
	DECLARE @l_BUDGET_LIMIT_CURRENT DECIMAL(18,0)
16
	/*
17
	NSCP theo định mức năm sẽ được tính bằng lũy kế.
18
	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.
19
	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.
20
	T1 được cấp 100tr, nếu dùng quá định mức sẽ báo.
21
	*/
22
	-- Lấy hạn mức lũy kế theo tháng hiện tại
23
	SET @l_BUDGET_LIMIT_CURRENT = ISNULL((SELECT BUDGET_LIMIT_CURRENT = CASE	WHEN MONTH(GETDATE()) = 1 then M1
24
																				WHEN MONTH(GETDATE()) = 2 then M2
25
																				WHEN MONTH(GETDATE()) = 3 then M3
26
																				WHEN MONTH(GETDATE()) = 4 then M4
27
																				WHEN MONTH(GETDATE()) = 5 then M5
28
																				WHEN MONTH(GETDATE()) = 6 then M6
29
																				WHEN MONTH(GETDATE()) = 7 then M7
30
																				WHEN MONTH(GETDATE()) = 8 then M8
31
																				WHEN MONTH(GETDATE()) = 9 then M9
32
																				WHEN MONTH(GETDATE()) = 10 then M10
33
																				WHEN MONTH(GETDATE()) = 11 then M11
34
																				WHEN MONTH(GETDATE()) = 12 then M12
35
																				ELSE BUDGET_YEAR
36
																		END
37
									FROM TR_REQ_BUDGET_YEAR_LIMIT 
38
									WHERE GD_ID = @p_GD_ID AND BRANCH_ID = @p_BRANCH_ID AND DEP_ID = @p_DEP_ID),0)
39
	-- Lấy hạn mức đã sử dụng đến hiện tại
40
	DECLARE @l_BUDGET_USED_CURRENT DECIMAL(18,0)
41
	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),
42
	@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),
43
	@l_BUDGET_USED_M11 DECIMAL(18,0), @l_BUDGET_USED_M12 DECIMAL(18,0)
44
	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 DEP_ID = @p_DEP_ID GROUP BY GD_ID),0)
45
	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 DEP_ID = @p_DEP_ID GROUP BY GD_ID),0)
46
	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 DEP_ID = @p_DEP_ID GROUP BY GD_ID),0)
47
	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 DEP_ID = @p_DEP_ID GROUP BY GD_ID),0)
48
	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 DEP_ID = @p_DEP_ID GROUP BY GD_ID),0)
49
	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 DEP_ID = @p_DEP_ID GROUP BY GD_ID),0)
50
	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 DEP_ID = @p_DEP_ID GROUP BY GD_ID),0)
51
	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 DEP_ID = @p_DEP_ID GROUP BY GD_ID),0)
52
	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 DEP_ID = @p_DEP_ID GROUP BY GD_ID),0)
53
	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 DEP_ID = @p_DEP_ID GROUP BY GD_ID),0)
54
	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 DEP_ID = @p_DEP_ID GROUP BY GD_ID),0)
55
	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 DEP_ID = @p_DEP_ID GROUP BY GD_ID),0)
56

    
57
	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 
58
	+ @l_BUDGET_USED_M9 + @l_BUDGET_USED_M10 + @l_BUDGET_USED_M11 + @l_BUDGET_USED_M12 
59

    
60
	SET @p_BUDGET_LIMIT_CURRENT = @l_BUDGET_LIMIT_CURRENT;
61
	SET @p_BUDGET_USED_CURRENT = @l_BUDGET_USED_CURRENT;
62

    
63
	IF(@l_BUDGET_USED_CURRENT > @l_BUDGET_LIMIT_CURRENT)
64
	BEGIN
65
		--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à ' + FORMAT(@l_BUDGET_LIMIT_CURRENT,'#,#', 'vi-VN')   + N', số tiền đã sử dụng đến hiện tại là ' + FORMAT(@l_BUDGET_LIMIT_CURRENT,'#,#', 'vi-VN')  ErrorDesc
66
		RETURN '-1'
67
	END
68
	ELSE
69
	BEGIN
70
		--SELECT '0' as Result, @l_BUDGET_LIMIT_CURRENT LIMIT_CURRENT, @l_BUDGET_USED_CURRENT LIMIT_USED,  '' ErrorDesc
71
		RETURN '0'
72
	END
73

    
74

    
75

    
76