Project

General

Profile

DB_STATUS_ASSET_VALUE_BAR.txt

Luc Tran Van, 03/03/2023 01:36 PM

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

    
17
  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')))
18
  BEGIN
19
    IF(@BRANCH_LOGIN = 'DV0001') SET @p_BRANCH_ID = @DEP_LOGIN
20
    ELSE SET @p_BRANCH_ID = @BRANCH_LOGIN
21
  END
22

    
23

    
24
	IF(@p_TYPE_ID = 'ALL') SET @p_TYPE_ID=''
25
	IF(@p_FILTER = 'year')
26
	BEGIN
27
		SELECT DISTINCT 
28
			YEAR(USE_DATE_KT) AS [YEAR],ROUND(ISNULL(SUM(BUY_PRICE),0)/1000000000,2) AS BUY_PRICE
29
		FROM ASS_MASTER A
30
		WHERE 1=1
31
		AND A.BUY_DATE_KT IS NOT NULL
32
		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) ='')
33
		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) ='')
34
		AND (A.TYPE_ID=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
35
		AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='')
36
		AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
37
		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) ='')
38
		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) ='')
39
		GROUP BY YEAR(USE_DATE_KT)
40
		ORDER BY YEAR(USE_DATE_KT) ASC
41

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

    
49
		DECLARE CUR_FILTER_YEAR CURSOR FOR
50
		SELECT DISTINCT 
51
			YEAR(USE_DATE_KT) AS USE_DATE_KT
52
		FROM ASS_MASTER A WHERE 1=1
53
		AND USE_DATE_KT IS NOT NULL
54
		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) ='')
55
		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) ='')
56
		AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
57
		AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @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 (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) ='')
78
				--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) ='')
79
			)
80
			UNION ALL
81
			(
82
				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
83
				WHERE 1=1
84
				AND (@YEAR-YEAR(USE_DATE_KT) > 3)
85
				AND (@YEAR-YEAR(USE_DATE_KT) <= 5)
86
				AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
87
				AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='')
88
				AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
89
				--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) ='')
90
				--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) ='')
91
			)
92
			UNION ALL
93
			(
94
				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
95
				WHERE 1=1
96
				AND (@YEAR-YEAR(USE_DATE_KT) > 5)
97
				AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
98
				AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='')
99
				AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
100
				--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) ='')
101
				--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) ='')
102
			)
103

    
104
			FETCH NEXT FROM CUR_FILTER_YEAR
105
				  INTO @YEAR
106
		END
107

    
108
		CLOSE CUR_FILTER_YEAR
109
		DEALLOCATE CUR_FILTER_YEAR
110

    
111
		SELECT * FROM @TABLE	
112
		ORDER BY [YEAR] ASC
113
	END
114
	ELSE IF (@p_FILTER = 'month')
115
	BEGIN
116
		SELECT DISTINCT 
117
			MONTH(USE_DATE_KT) AS [YEAR],ROUND(ISNULL(SUM(BUY_PRICE),0)/1000000000,2) AS BUY_PRICE
118
		FROM ASS_MASTER A
119
		WHERE 1=1
120
		AND A.BUY_DATE_KT IS NOT NULL
121
		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) ='')
122
		AND (A.TYPE_ID=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
123
		AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='')
124
		AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
125
		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) ='')
126
		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) ='')
127
		GROUP BY MONTH(USE_DATE_KT)
128
		ORDER BY MONTH(USE_DATE_KT) ASC
129

    
130
		DECLARE @MONTH INT
131
		DECLARE @TABLE_MONTH TABLE(
132
			USE_DATE_KT NVARCHAR(100) NULL,
133
			BUY_PRICE DECIMAL(18,2) NULL,
134
			[YEAR] INT NULL
135
		)
136

    
137
		DECLARE CUR_FILTER_YEAR CURSOR FOR
138
		SELECT DISTINCT 
139
			MONTH(USE_DATE_KT) AS USE_DATE_KT
140
		FROM ASS_MASTER A WHERE 1=1
141
		AND USE_DATE_KT IS NOT NULL
142
		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) ='')
143
		AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
144
		AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='')
145
		AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
146
		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) ='')
147
		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) ='')
148
		OPEN CUR_FILTER_YEAR
149

    
150
		FETCH NEXT FROM CUR_FILTER_YEAR
151
			  INTO @YEAR
152

    
153
		WHILE @@FETCH_STATUS = 0
154
		BEGIN
155
			INSERT INTO @TABLE_MONTH(USE_DATE_KT,BUY_PRICE,[YEAR])
156
			(
157
				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
158
				WHERE 1=1
159
				AND (CAST(@p_TO_YEAR AS INT)-YEAR(USE_DATE_KT) >= 0)
160
				AND (MONTH(A.USE_DATE_KT) <= CAST(@YEAR AS INT))
161
				AND (CAST(@p_TO_YEAR AS INT)-YEAR(USE_DATE_KT) <= 3)
162
				AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
163
				AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='')
164
				AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
165
				--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) ='')
166
				--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) ='')
167
			)
168
			UNION ALL
169
			(
170
				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
171
				WHERE 1=1
172
				AND (CAST(@p_TO_YEAR AS INT)-YEAR(USE_DATE_KT) > 3)
173
				AND (MONTH(A.USE_DATE_KT) <= CAST(@YEAR AS INT))
174
				AND (CAST(@p_TO_YEAR AS INT)-YEAR(USE_DATE_KT) <= 5)
175
				AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
176
				AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='')
177
				AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
178
				--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) ='')
179
				--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) ='')
180
			)
181
			UNION ALL
182
			(
183
				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
184
				WHERE 1=1
185
				AND (CAST(@p_TO_YEAR AS INT)-YEAR(USE_DATE_KT) > 5)
186
				AND (MONTH(A.USE_DATE_KT) <= CAST(@YEAR AS INT))
187
				AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
188
				AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='')
189
				AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
190
				--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) ='')
191
				--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) ='')
192
			)
193

    
194
			FETCH NEXT FROM CUR_FILTER_YEAR
195
				  INTO @YEAR
196
		END
197

    
198
		CLOSE CUR_FILTER_YEAR
199
		DEALLOCATE CUR_FILTER_YEAR
200

    
201
		SELECT * FROM @TABLE_MONTH	
202
		ORDER BY [YEAR] ASC
203
	END
204
END
205