Project

General

Profile

DB_STATUS_ASSET_VALUE_BAR.txt

Luc Tran Van, 03/14/2023 11:52 AM

 
1

    
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_DATE VARCHAR(100) = NULL,
8
@p_TO_DATE VARCHAR(100) = NULL,
9
@p_AMORT_DATE_CHECK VARCHAR(100) = NULL,
10
@p_USE_DATE_KT_CHECK VARCHAR(100) = 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

    
26
		IF(@p_USE_DATE_KT_CHECK = '1')
27
		BEGIN
28
			SELECT DISTINCT 
29
				YEAR(USE_DATE_KT) AS [YEAR],ROUND(ISNULL(SUM(BUY_PRICE),0)/1000000000,2) AS BUY_PRICE
30
			FROM ASS_MASTER A
31
			WHERE 1=1
32
			AND A.BUY_DATE_KT IS NOT NULL
33
			AND (CONVERT(date,A.USE_DATE_KT,103) >= CONVERT(date,@p_FROM_DATE,103) OR @p_FROM_DATE IS NULL OR @p_FROM_DATE ='')
34
			AND (CONVERT(date,A.USE_DATE_KT,103) <= CONVERT(date,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE ='')
35
			AND (A.TYPE_ID=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
36
			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))
37
			AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
38
			GROUP BY YEAR(USE_DATE_KT)
39
			ORDER BY YEAR(USE_DATE_KT) ASC
40
		END
41
		ELSE IF(@p_AMORT_DATE_CHECK = '1')
42
		BEGIN
43
			SELECT DISTINCT 
44
				YEAR(AMORT_START_DATE) AS [YEAR],ROUND(ISNULL(SUM(BUY_PRICE),0)/1000000000,2) AS BUY_PRICE
45
			FROM ASS_MASTER A
46
			WHERE 1=1
47
			AND A.BUY_DATE_KT IS NOT NULL
48
			AND (CONVERT(date,A.AMORT_START_DATE,103) >= CONVERT(date,@p_FROM_DATE,103) OR @p_FROM_DATE IS NULL OR @p_FROM_DATE ='')
49
			AND (CONVERT(date,A.AMORT_START_DATE,103) <= CONVERT(date,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE ='')
50
			AND (A.TYPE_ID=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
51
			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))
52
			AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
53
			GROUP BY YEAR(AMORT_START_DATE)
54
			ORDER BY YEAR(AMORT_START_DATE) ASC
55
		END
56
	
57

    
58
		DECLARE @YEAR INT
59
		DECLARE @TABLE TABLE(
60
			USE_DATE_KT NVARCHAR(100) NULL,
61
			BUY_PRICE DECIMAL(18,2) NULL,
62
			[YEAR] VARCHAR(10) NULL
63
		)
64

    
65
		DECLARE CUR_FILTER_YEAR CURSOR FOR
66
		SELECT DISTINCT 
67
			CASE WHEN  @p_USE_DATE_KT_CHECK = '1' THEN YEAR(USE_DATE_KT) 
68
				ELSE YEAR(AMORT_START_DATE) END
69
			AS USE_DATE_KT
70
		FROM ASS_MASTER A WHERE 1=1
71
		AND USE_DATE_KT IS NOT NULL
72
		AND ((@p_USE_DATE_KT_CHECK = '1' AND (CONVERT(date,A.USE_DATE_KT,103) >= CONVERT(date,@p_FROM_DATE,103) OR @p_FROM_DATE IS NULL OR @p_FROM_DATE ='') AND (CONVERT(date,A.USE_DATE_KT,103) <= CONVERT(date,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE =''))
73
			OR (@p_AMORT_DATE_CHECK = '1' AND (CONVERT(date,A.AMORT_START_DATE,103) >= CONVERT(date,@p_FROM_DATE,103) OR @p_FROM_DATE IS NULL OR @p_FROM_DATE ='') AND (CONVERT(date,A.AMORT_START_DATE,103) <= CONVERT(date,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE =''))
74
			)
75
		AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
76
		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))
77
		AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
78
		OPEN CUR_FILTER_YEAR
79

    
80
		IF(@p_USE_DATE_KT_CHECK = '1')
81
		BEGIN
82
			FETCH NEXT FROM CUR_FILTER_YEAR
83
				  INTO @YEAR
84

    
85
			WHILE @@FETCH_STATUS = 0
86
			BEGIN
87
				INSERT INTO @TABLE(USE_DATE_KT,BUY_PRICE,[YEAR])
88
				(
89
					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
90
					WHERE 1=1
91
					--AND (CONVERT(date,A.USE_DATE_KT,103) >= CONVERT(date,@p_FROM_DATE,103) OR @p_FROM_DATE IS NULL OR @p_FROM_DATE ='')
92
					AND (CONVERT(date,A.LIQUIDATION_DT,103) >= CONVERT(date,@p_FROM_DATE,103) OR @p_FROM_DATE IS NULL OR @p_FROM_DATE ='')
93
					AND (CONVERT(date,A.USE_DATE_KT,103) <= CONVERT(date,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE ='')
94
					AND (@YEAR-YEAR(USE_DATE_KT) >= 0)
95
					AND (@YEAR-YEAR(USE_DATE_KT) <= 3)
96
					AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
97
				AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='' OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,1) =@p_GROUP_ID) 
98
							OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,2) =@p_GROUP_ID) OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,3) =@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
				)
101
				UNION ALL
102
				(
103
					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
104
					WHERE 1=1
105
					--AND (CONVERT(date,A.USE_DATE_KT,103) >= CONVERT(date,@p_FROM_DATE,103) OR @p_FROM_DATE IS NULL OR @p_FROM_DATE ='')
106
					AND (CONVERT(date,A.LIQUIDATION_DT,103) >= CONVERT(date,@p_FROM_DATE,103) OR @p_FROM_DATE IS NULL OR @p_FROM_DATE ='')
107
					AND (CONVERT(date,A.USE_DATE_KT,103) <= CONVERT(date,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE ='')
108
					AND (@YEAR-YEAR(USE_DATE_KT) > 3)
109
					AND (@YEAR-YEAR(USE_DATE_KT) <= 5)
110
					AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
111
				AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='' OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,1) =@p_GROUP_ID) 
112
							OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,2) =@p_GROUP_ID) OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,3) =@p_GROUP_ID))
113
					AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
114
				)
115
				UNION ALL
116
				(
117
					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
118
					WHERE 1=1
119
					--AND (CONVERT(date,A.USE_DATE_KT,103) >= CONVERT(date,@p_FROM_DATE,103) OR @p_FROM_DATE IS NULL OR @p_FROM_DATE ='')
120
					AND (CONVERT(date,A.LIQUIDATION_DT,103) >= CONVERT(date,@p_FROM_DATE,103) OR @p_FROM_DATE IS NULL OR @p_FROM_DATE ='')
121
					AND (CONVERT(date,A.USE_DATE_KT,103) <= CONVERT(date,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE ='')
122
					AND (@YEAR-YEAR(USE_DATE_KT) > 5)
123
					AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
124
				AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='' OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,1) =@p_GROUP_ID) 
125
							OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,2) =@p_GROUP_ID) OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,3) =@p_GROUP_ID))
126
					AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
127
				)
128

    
129
				FETCH NEXT FROM CUR_FILTER_YEAR
130
					  INTO @YEAR
131
			END
132
		END
133
		ELSE IF(@p_AMORT_DATE_CHECK = '1')
134
		BEGIN 
135
			FETCH NEXT FROM CUR_FILTER_YEAR
136
				  INTO @YEAR
137

    
138
			WHILE @@FETCH_STATUS = 0
139
			BEGIN
140
				INSERT INTO @TABLE(USE_DATE_KT,BUY_PRICE,[YEAR])
141
				(
142
					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
143
					WHERE 1=1
144
					--AND (CONVERT(date,A.AMORT_START_DATE,103) >= CONVERT(date,@p_FROM_DATE,103) OR @p_FROM_DATE IS NULL OR @p_FROM_DATE ='')
145
					AND (CONVERT(date,A.LIQUIDATION_DT,103) >= CONVERT(date,@p_FROM_DATE,103) OR @p_FROM_DATE IS NULL OR @p_FROM_DATE ='')
146
					AND (CONVERT(date,A.AMORT_START_DATE,103) <= CONVERT(date,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE ='')
147
					AND (@YEAR-YEAR(AMORT_START_DATE) >= 0)
148
					AND (@YEAR-YEAR(AMORT_START_DATE) <= 3)
149
					AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
150
					AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='' OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,1) =@p_GROUP_ID) 
151
							OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,2) =@p_GROUP_ID) OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,3) =@p_GROUP_ID))
152
					AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
153
				)
154
				UNION ALL
155
				(
156
					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
157
					WHERE 1=1
158
					--AND (CONVERT(date,A.AMORT_START_DATE,103) >= CONVERT(date,@p_FROM_DATE,103) OR @p_FROM_DATE IS NULL OR @p_FROM_DATE ='')
159
					AND (CONVERT(date,A.LIQUIDATION_DT,103) >= CONVERT(date,@p_FROM_DATE,103) OR @p_FROM_DATE IS NULL OR @p_FROM_DATE ='')
160
					AND (CONVERT(date,A.AMORT_START_DATE,103) <= CONVERT(date,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE ='')
161
					AND (@YEAR-YEAR(AMORT_START_DATE) > 3)
162
					AND (@YEAR-YEAR(AMORT_START_DATE) <= 5)
163
					AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
164
					AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='' OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,1) =@p_GROUP_ID) 
165
							OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,2) =@p_GROUP_ID) OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,3) =@p_GROUP_ID))
166
					AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
167
				)
168
				UNION ALL
169
				(
170
					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
171
					WHERE 1=1
172
					--AND (CONVERT(date,A.AMORT_START_DATE,103) >= CONVERT(date,@p_FROM_DATE,103) OR @p_FROM_DATE IS NULL OR @p_FROM_DATE ='')
173
					AND (CONVERT(date,A.LIQUIDATION_DT,103) >= CONVERT(date,@p_FROM_DATE,103) OR @p_FROM_DATE IS NULL OR @p_FROM_DATE ='')
174
					AND (CONVERT(date,A.AMORT_START_DATE,103) <= CONVERT(date,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE ='')
175
					AND (@YEAR-YEAR(AMORT_START_DATE) > 5)
176
					AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
177
					AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='' OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,1) =@p_GROUP_ID) 
178
							OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,2) =@p_GROUP_ID) OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,3) =@p_GROUP_ID))
179
					AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
180
				)
181

    
182
				FETCH NEXT FROM CUR_FILTER_YEAR
183
					  INTO @YEAR
184
			END
185
		END
186
		CLOSE CUR_FILTER_YEAR
187
		DEALLOCATE CUR_FILTER_YEAR
188

    
189
		SELECT * FROM @TABLE	
190
		ORDER BY [YEAR] ASC
191
END
192