Project

General

Profile

DB_STATUS_ASSET_QUANTITY_BAR.txt

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

 
1

    
2
ALTER   PROC [dbo].[DB_STATUS_ASSET_QUANTITY_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

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

    
58

    
59
	DECLARE @YEAR INT
60
	DECLARE @TABLE TABLE(
61
		USE_DATE_KT NVARCHAR(100) NULL,
62
		TOTAL_COUNT INT NULL,
63
		[YEAR] VARCHAR(10) NULL
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,TOTAL_COUNT,[YEAR])
88
				(
89
					SELECT N'0 - 3 năm' USE_DATE_KT,COUNT(*) AS TOTAL_COUNT,@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,COUNT(*) AS TOTAL_COUNT,@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 A.GROUP_ID IN (SELECT GROUP_ID FROM ASS_GROUP WHERE PARENT_ID = @p_GROUP_ID))
112
					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) 
113
							OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,2) =@p_GROUP_ID) OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,3) =@p_GROUP_ID))
114
					AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
115
				)
116
				UNION ALL
117
				(
118
					SELECT N'Trên 5 năm' USE_DATE_KT,COUNT(*) AS TOTAL_COUNT,@YEAR AS [YEAR] FROM ASS_MASTER A
119
					WHERE 1=1
120
					--AND (CONVERT(date,A.USE_DATE_KT,103) >= CONVERT(date,@p_FROM_DATE,103) OR @p_FROM_DATE IS NULL OR @p_FROM_DATE ='')
121
					AND (CONVERT(date,A.LIQUIDATION_DT,103) >= CONVERT(date,@p_FROM_DATE,103) OR @p_FROM_DATE IS NULL OR @p_FROM_DATE ='')
122
					AND (CONVERT(date,A.USE_DATE_KT,103) <= CONVERT(date,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE ='')
123
					AND (@YEAR-YEAR(USE_DATE_KT) > 5)
124
					AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
125
					--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))
126
					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) 
127
							OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,2) =@p_GROUP_ID) OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,3) =@p_GROUP_ID))
128
					AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
129
				)
130

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

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

    
187
				FETCH NEXT FROM CUR_FILTER_YEAR
188
					  INTO @YEAR
189
			END
190
		END
191
	CLOSE CUR_FILTER_YEAR
192
	DEALLOCATE CUR_FILTER_YEAR
193

    
194
	SELECT * FROM @TABLE
195
	ORDER BY [YEAR] ASC
196
END
197