Project

General

Profile

[DB_STATUS_ASSET_VALUE_BAR].txt

Luc Tran Van, 03/03/2023 03:13 PM

 
1

    
2

    
3
ALTER   PROC [dbo].[DB_STATUS_ASSET_VALUE_BAR]
4
@p_USER_LOGIN VARCHAR(250) = NULL,
5
@p_TYPE_ID VARCHAR(5) = NULL,
6
@p_GROUP_ID VARCHAR(15) = NULL,
7
@p_BRANCH_ID VARCHAR(15) = NULL,
8
@p_FROM_MONTH VARCHAR(4) = NULL,
9
@p_TO_MONTH VARCHAR(4) = NULL,
10
@p_FROM_YEAR VARCHAR(10) = NULL,
11
@p_TO_YEAR VARCHAR(10) = NULL,
12
@p_FILTER VARCHAR(100) = NULL
13
AS
14
BEGIN
15
	DECLARE @BRANCH_LOGIN varchar(15) ='', @DEP_LOGIN varchar(15) =''
16
	SELECT @DEP_LOGIN = SECUR_CODE, @BRANCH_LOGIN = TLSUBBRID FROM TL_USER WHERE TLNANME = @p_USER_LOGIN
17

    
18
  IF(NOT EXISTS(SELECT * FROM CM_DEPARTMENT cd WHERE cd.BRANCH_ID = @BRANCH_LOGIN AND cd.DEP_ID = @DEP_LOGIN AND (cd.DEP_CODE = '0690604' OR cd.DEP_CODE = '0690802' OR cd.DEP_CODE = '0690803')))
19
  BEGIN
20
    IF(@BRANCH_LOGIN = 'DV0001') SET @p_BRANCH_ID = @DEP_LOGIN
21
    ELSE SET @p_BRANCH_ID = @BRANCH_LOGIN
22
  END
23

    
24

    
25
	IF(@p_TYPE_ID = 'ALL') SET @p_TYPE_ID=''
26
	SELECT DISTINCT 
27
		YEAR(USE_DATE_KT) AS [YEAR],ROUND(ISNULL(SUM(BUY_PRICE),0)/1000000000,2) AS BUY_PRICE
28
	FROM ASS_MASTER A
29
	WHERE 1=1
30
	AND A.BUY_DATE_KT IS NOT NULL
31
	AND (YEAR(A.USE_DATE_KT)<= CAST(@p_TO_YEAR AS INT) OR CAST(@p_TO_YEAR AS INT) IS NULL OR CAST(@p_TO_YEAR AS INT) ='')
32
	AND (YEAR(A.USE_DATE_KT)>= CAST(@p_FROM_YEAR AS INT) OR CAST(@p_FROM_YEAR AS INT) IS NULL OR CAST(@p_FROM_YEAR AS INT) ='')
33
	AND (A.TYPE_ID=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
34
	AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='' OR A.GROUP_ID IN (SELECT GROUP_ID FROM ASS_GROUP WHERE PARENT_ID = @p_GROUP_ID))
35
	AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
36
	AND (MONTH(A.USE_DATE_KT)>= CAST(@p_FROM_MONTH AS INT) OR CAST(@p_FROM_MONTH AS INT) IS NULL OR CAST(@p_FROM_MONTH AS INT) ='')
37
	AND (MONTH(A.USE_DATE_KT)<= CAST(@p_TO_MONTH AS INT) OR CAST(@p_TO_MONTH AS INT) IS NULL OR CAST(@p_TO_MONTH AS INT) ='')
38
	GROUP BY YEAR(USE_DATE_KT)
39
	ORDER BY YEAR(USE_DATE_KT) ASC
40

    
41
	DECLARE @YEAR INT
42
	DECLARE @TABLE TABLE(
43
		USE_DATE_KT NVARCHAR(100) NULL,
44
		BUY_PRICE DECIMAL(18,2) NULL,
45
		[YEAR] VARCHAR(10) NULL
46
	)
47

    
48
	DECLARE CUR_FILTER_YEAR CURSOR FOR
49
	SELECT DISTINCT 
50
		YEAR(USE_DATE_KT) AS USE_DATE_KT
51
	FROM ASS_MASTER A WHERE 1=1
52
	AND USE_DATE_KT IS NOT NULL
53
	AND (YEAR(A.USE_DATE_KT)<= CAST(@p_TO_YEAR AS INT) OR CAST(@p_TO_YEAR AS INT) IS NULL OR CAST(@p_TO_YEAR AS INT) ='')
54
	AND (YEAR(A.USE_DATE_KT)>= CAST(@p_FROM_YEAR AS INT) OR CAST(@p_FROM_YEAR AS INT) IS NULL OR CAST(@p_FROM_YEAR AS INT) ='')
55
	AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
56
	--AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='')
57
	AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='' OR A.GROUP_ID IN (SELECT GROUP_ID FROM ASS_GROUP WHERE PARENT_ID = @p_GROUP_ID))
58
	AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
59
	AND (MONTH(A.USE_DATE_KT)>= CAST(@p_FROM_MONTH AS INT) OR CAST(@p_FROM_MONTH AS INT) IS NULL OR CAST(@p_FROM_MONTH AS INT) ='')
60
	AND (MONTH(A.USE_DATE_KT)<= CAST(@p_TO_MONTH AS INT) OR CAST(@p_TO_MONTH AS INT) IS NULL OR CAST(@p_TO_MONTH AS INT) ='')
61
	OPEN CUR_FILTER_YEAR
62

    
63
	FETCH NEXT FROM CUR_FILTER_YEAR
64
		  INTO @YEAR
65

    
66
	WHILE @@FETCH_STATUS = 0
67
	BEGIN
68
		INSERT INTO @TABLE(USE_DATE_KT,BUY_PRICE,[YEAR])
69
		(
70
			SELECT N'0 - 3 năm' USE_DATE_KT,ROUND(ISNULL(SUM(BUY_PRICE),0)/1000000000,2) BUY_PRICE,@YEAR AS [YEAR] FROM ASS_MASTER A
71
			WHERE 1=1
72
			AND (@YEAR-YEAR(USE_DATE_KT) >= 0)
73
			AND (@YEAR-YEAR(USE_DATE_KT) <= 3)
74
			AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
75
			AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='')
76
			--AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
77
			AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='' OR A.GROUP_ID IN (SELECT GROUP_ID FROM ASS_GROUP WHERE PARENT_ID = @p_GROUP_ID))
78
			AND (MONTH(A.USE_DATE_KT)>= CAST(@p_FROM_MONTH AS INT) OR CAST(@p_FROM_MONTH AS INT) IS NULL OR CAST(@p_FROM_MONTH AS INT) ='')
79
			AND (MONTH(A.USE_DATE_KT)<= CAST(@p_TO_MONTH AS INT) OR CAST(@p_TO_MONTH AS INT) IS NULL OR CAST(@p_TO_MONTH AS INT) ='')
80
		)
81
		UNION ALL
82
		(
83
			SELECT N'3 - 5 năm' USE_DATE_KT,ROUND(ISNULL(SUM(BUY_PRICE),0)/1000000000,2) BUY_PRICE,@YEAR AS [YEAR] FROM ASS_MASTER A
84
			WHERE 1=1
85
			AND (@YEAR-YEAR(USE_DATE_KT) > 3)
86
			AND (@YEAR-YEAR(USE_DATE_KT) <= 5)
87
			AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
88
			--AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='')
89
			AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='' OR A.GROUP_ID IN (SELECT GROUP_ID FROM ASS_GROUP WHERE PARENT_ID = @p_GROUP_ID))
90
			AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
91
			AND (MONTH(A.USE_DATE_KT)>= CAST(@p_FROM_MONTH AS INT) OR CAST(@p_FROM_MONTH AS INT) IS NULL OR CAST(@p_FROM_MONTH AS INT) ='')
92
			AND (MONTH(A.USE_DATE_KT)<= CAST(@p_TO_MONTH AS INT) OR CAST(@p_TO_MONTH AS INT) IS NULL OR CAST(@p_TO_MONTH AS INT) ='')
93
		)
94
		UNION ALL
95
		(
96
			SELECT N'Trên 5 năm' USE_DATE_KT,ROUND(ISNULL(SUM(BUY_PRICE),0)/1000000000,2) BUY_PRICE,@YEAR AS [YEAR] FROM ASS_MASTER A
97
			WHERE 1=1
98
			AND (@YEAR-YEAR(USE_DATE_KT) > 5)
99
			AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
100
			--AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='')
101
			AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='' OR A.GROUP_ID IN (SELECT GROUP_ID FROM ASS_GROUP WHERE PARENT_ID = @p_GROUP_ID))
102
			AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
103
			AND (MONTH(A.USE_DATE_KT)>= CAST(@p_FROM_MONTH AS INT) OR CAST(@p_FROM_MONTH AS INT) IS NULL OR CAST(@p_FROM_MONTH AS INT) ='')
104
			AND (MONTH(A.USE_DATE_KT)<= CAST(@p_TO_MONTH AS INT) OR CAST(@p_TO_MONTH AS INT) IS NULL OR CAST(@p_TO_MONTH AS INT) ='')
105
		)
106

    
107
		FETCH NEXT FROM CUR_FILTER_YEAR
108
			  INTO @YEAR
109
	END
110

    
111
	CLOSE CUR_FILTER_YEAR
112
	DEALLOCATE CUR_FILTER_YEAR
113

    
114
	SELECT * FROM @TABLE	
115
	ORDER BY [YEAR] ASC
116
END
117

    
118