Project

General

Profile

ASS_COLLECT_CONFIRM_MASTER_Search.txt

Luc Tran Van, 03/21/2022 04:19 PM

 
1
ALTER PROCEDURE [dbo].[ASS_COLLECT_CONFIRM_MASTER_Search]
2
@p_COL_MULTI_MASTER_ID	varchar(15)  = NULL,
3
@p_BRANCH_ID	varchar(15)  = NULL,
4
@p_COLLECT_DT	VARCHAR(20) = NULL,
5
@p_USER_COLLECT	nvarchar(200)  = NULL,
6
@p_USER_COLLECT_NAME nvarchar(200)=NULL,
7
@p_NOTES	nvarchar(1000)  = NULL,
8
@p_RECORD_STATUS	varchar(1)  = NULL,
9
@p_AUTH_STATUS	varchar(1)  = NULL,
10
@p_MAKER_ID	varchar(15)  = NULL,
11
@p_CREATE_DT	VARCHAR(20) = NULL,
12
@p_CHECKER_ID	varchar(15)  = NULL,
13
@p_APPROVE_DT	VARCHAR(20) = NULL,
14
@p_AUTH_STATUS_KT	varchar(15)  = NULL,
15
@p_CREATE_DT_KT	VARCHAR(20) = NULL,
16
@p_APPROVE_DT_KT	VARCHAR(20) = NULL,
17
@p_MAKER_ID_KT	varchar(50)  = NULL,
18
@p_CHECKER_ID_KT	varchar(50)  = NULL,
19
@p_REPORT_STATUS	varchar(15)  = NULL,
20
@p_LEVEL	VARCHAR(50) = 'UNIT',
21
@p_TOP	INT = NULL,
22
@p_FROMDATE VARCHAR(20) = NULL,
23
@p_TODATE VARCHAR(20) = NULL,
24
@p_IS_UPDATE VARCHAR(1) = NULL,
25
@p_USER_LOGIN   VARCHAR(15),
26
@p_TYPE_SEARCH VARCHAR(10)= NULL
27
AS
28
BEGIN -- PAGING
29
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 
30

    
31
----
32
set @p_RECORD_STATUS = '1'
33
----
34
	DECLARE @ASSIGN_ROLES TABLE (BRANCH_ID VARCHAR(20), DEPT_ID VARCHAR(15), ROLE_ID VARCHAR(20))
35
	INSERT INTO @ASSIGN_ROLES SELECT * FROM [dbo].[TL_USER_GET_ASSIGNED_BRANCH](@p_USER_LOGIN)
36

    
37
	DECLARE @USER_ROLES TABLE (BRANCH_ID VARCHAR(20), DEPT_ID VARCHAR(15), ROLE_ID VARCHAR(20))
38
	INSERT INTO @USER_ROLES SELECT * FROM [dbo].[TL_USER_GET_ROLES](@p_USER_LOGIN)
39

    
40
	DECLARE @tmp TABLE (BRANCH_ID VARCHAR(20), DEPT_ID VARCHAR(15))
41
	INSERT INTO @tmp 
42
	SELECT DT.BRANCH_ID, DT.DEPT_ID_USE FROM dbo.ASS_COLLECT_MULTI_MASTER AM
43
	LEFT JOIN ASS_COLLECT_MULTI_DT DT ON DT.COLLECT_MULTI_ID IN (SELECT MIN(COLLECT_MULTI_ID) FROM ASS_COLLECT_MULTI_DT  TEMP WHERE TEMP.COL_MULTI_MASTER_ID=AM.COL_MULTI_MASTER_ID)
44
	WHERE 1= 1
45
	AND ((EXISTS(SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = DT.BRANCH_ID AND BRANCH_TYPE ='HS')
46
			AND (DT.DEPT_ID_USE IN (SELECT R.DEPT_ID FROM @USER_ROLES R WHERE R.ROLE_ID IN ('GDDV','TP')))
47
				OR DT.DEPT_ID_USE IN (SELECT DEPT_ID FROM @ASSIGN_ROLES WHERE ROLE_ID IN ('GDDV','TP')))
48
		OR (NOT EXISTS(SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = DT.BRANCH_ID AND BRANCH_TYPE ='HS')
49
			AND (DT.BRANCH_ID IN (SELECT R.BRANCH_ID FROM @USER_ROLES R WHERE R.ROLE_ID IN ('GDDV','TPGD'))))
50
				OR DT.BRANCH_ID IN (SELECT BRANCH_ID FROM @ASSIGN_ROLES WHERE ROLE_ID IN ('GDDV','TPGD')))
51

    
52
-- GiaNT
53
DECLARE @BRANCH_LOGIN VARCHAR(15), @DEP_LOGIN VARCHAR(15)
54
		SET @BRANCH_LOGIN = (SELECT TOP 1 TLSUBBRID FROM TL_USER WHERE TLNANME = @p_USER_LOGIN)
55
				
56
		SET @DEP_LOGIN = (SELECT TOP 1 DEP_ID  FROM TL_USER WHERE TLNANME = @p_USER_LOGIN)
57

    
58
-- GIANT 11/10/2021
59
DECLARE @BRANCH_TYPE VARCHAR(5)
60
		SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_LOGIN)
61

    
62
IF(@p_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0)
63
begin
64
-- PAGING BEGIN
65
	SELECT A.*,C.BRANCH_CODE, C.BRANCH_NAME, F.AUTH_STATUS_NAME, T1.TLFullName AS MAKER_NAME,T2.TLFullName AS MAKER_NAME_KT,T3.TLFullName APPROVE_NAME, T4.TLFullName APPROVE_NAME_KT,
66
	ATKT.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_KT, C.BRANCH_CODE +' - '+ C.BRANCH_NAME AS FULL_BRANCH_NAME,
67
	@p_USER_LOGIN AS USER_LOGIN,@p_TYPE_SEARCH AS TYPE_SEARCH,
68
	CASE WHEN EXISTS (SELECT * FROM ASS_COLLECT_CONFIRM_MASTER M WHERE M.COL_MULTI_MASTER_ID = A.COL_MULTI_MASTER_ID) 
69
			THEN 'Y'  
70
		ELSE 'N' END AS CONFIRM_STATUS
71
	-- SELECT END
72
	FROM ASS_COLLECT_MULTI_MASTER A
73
	LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
74
	LEFT JOIN CM_AUTH_STATUS F ON A.AUTH_STATUS = F.AUTH_STATUS
75
	LEFT JOIN CM_AUTH_STATUS ATKT ON ATKT.AUTH_STATUS = A.AUTH_STATUS_KT
76
	LEFT JOIN TL_USER T1 ON A.MAKER_ID = T1.TLNANME 
77
	LEFT JOIN TL_USER T2 ON A.MAKER_ID_KT = T2.TLNANME
78
	LEFT JOIN TL_USER T3 ON A.CHECKER_ID = T3.TLNANME 
79
	LEFT JOIN TL_USER T4 ON A.CHECKER_ID_KT = T4.TLNANME
80
	--INNER JOIN (SELECT BRANCH_ID,COL_MULTI_MASTER_ID,COUNT(*) AS SL FROM ASS_COLLECT_MULTI_DT WHERE DEPT_ID_USE = @BRANCH_LOGIN GROUP BY BRANCH_ID,COL_MULTI_MASTER_ID) DTT ON DTT.COL_MULTI_MASTER_ID = A.COL_MULTI_MASTER_ID   
81

    
82
	WHERE 1 = 1
83
	AND (A.COL_MULTI_MASTER_ID LIKE '%' + @p_COL_MULTI_MASTER_ID + '%' OR  @p_COL_MULTI_MASTER_ID IS NULL OR @p_COL_MULTI_MASTER_ID = '')
84
	AND (CONVERT(DATE,ISNULL(A.CREATE_DT_KT, A.COLLECT_DT),103) >= CONVERT(DATE,@p_FROMDATE, 103) OR @p_FROMDATE IS NULL OR @p_FROMDATE ='')
85
	AND (CONVERT(DATE,ISNULL(A.CREATE_DT_KT, A.COLLECT_DT),103) <= CONVERT(DATE,@p_TODATE, 103) OR @p_TODATE IS NULL OR @p_TODATE ='')
86
	AND (A.USER_COLLECT LIKE '%' + @p_USER_COLLECT + '%' OR  @p_USER_COLLECT IS NULL OR @p_USER_COLLECT = '')
87
	AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR  @p_NOTES IS NULL OR @p_NOTES = '')
88
	AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR  @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
89
	AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR  @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
90
	AND (A.CREATE_DT =CONVERT(DATETIME, @p_CREATE_DT, 103) OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
91
	AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
92
	AND (A.APPROVE_DT =CONVERT(DATETIME, @p_APPROVE_DT, 103) OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
93
	AND (A.AUTH_STATUS_KT LIKE '%' + @p_AUTH_STATUS_KT + '%' OR  @p_AUTH_STATUS_KT IS NULL OR @p_AUTH_STATUS_KT = '')
94
	AND (A.CREATE_DT_KT =CONVERT(DATETIME, @p_CREATE_DT_KT, 103) OR  @p_CREATE_DT_KT IS NULL OR @p_CREATE_DT_KT = '')
95
	AND (A.APPROVE_DT_KT =CONVERT(DATETIME, @p_APPROVE_DT_KT, 103) OR  @p_APPROVE_DT_KT IS NULL OR @p_APPROVE_DT_KT = '')
96
	AND (A.MAKER_ID_KT LIKE '%' + @p_MAKER_ID_KT + '%' OR  @p_MAKER_ID_KT IS NULL OR @p_MAKER_ID_KT = '')
97
	AND (A.CHECKER_ID_KT LIKE '%' + @p_CHECKER_ID_KT + '%' OR  @p_CHECKER_ID_KT IS NULL OR @p_CHECKER_ID_KT = '')
98
	AND (A.REPORT_STATUS LIKE '%' + @p_REPORT_STATUS + '%' OR  @p_REPORT_STATUS IS NULL OR @p_REPORT_STATUS = '')
99
	AND A.RECORD_STATUS='1'
100
	AND (A.REPORT_STATUS LIKE '%' + @p_REPORT_STATUS + '%' OR  @p_REPORT_STATUS IS NULL OR @p_REPORT_STATUS = '')
101

    
102
	-- GiaNT 28/09/2021
103
	AND ( (@p_AUTH_STATUS = 'Y' AND A.COL_MULTI_MASTER_ID IN (SELECT G.COL_MULTI_MASTER_ID FROM ASS_COLLECT_CONFIRM_MASTER G)) 
104
			OR (@p_AUTH_STATUS = 'N' AND A.COL_MULTI_MASTER_ID NOT IN (SELECT G.COL_MULTI_MASTER_ID FROM ASS_COLLECT_CONFIRM_MASTER G)
105
			OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '' )))
106
	AND A.AUTH_STATUS = 'A'
107

    
108
	-- GiaNT 11/10/2021
109
	--AND ( 
110
	--	(@BRANCH_TYPE = 'HS' AND  EXISTS (SELECT * FROM ASS_COLLECT_MULTI_DT WHERE A.COL_MULTI_MASTER_ID = ASS_COLLECT_MULTI_DT.COL_MULTI_MASTER_ID AND ASS_COLLECT_MULTI_DT.DEPT_ID_USE = @DEP_LOGIN))
111
	--	OR (@BRANCH_TYPE <> 'HS' AND  EXISTS (SELECT * FROM ASS_COLLECT_MULTI_DT WHERE A.COL_MULTI_MASTER_ID = ASS_COLLECT_MULTI_DT.COL_MULTI_MASTER_ID AND ASS_COLLECT_MULTI_DT.BRANCH_ID = @BRANCH_LOGIN))
112
	--)
113
	AND (EXISTS (SELECT DT.COLLECT_MULTI_ID FROM dbo.ASS_COLLECT_MULTI_DT DT WHERE A.COL_MULTI_MASTER_ID = DT.COL_MULTI_MASTER_ID 
114
		AND ((SELECT BR.BRANCH_TYPE FROM dbo.CM_BRANCH BR WHERE BR.BRANCH_ID = DT.BRANCH_ID) <> 'HS' AND (DT.BRANCH_ID IN (SELECT BRANCH_ID FROM @tmp))
115
			OR ((SELECT BR.BRANCH_TYPE FROM dbo.CM_BRANCH BR WHERE BR.BRANCH_ID = DT.BRANCH_ID) = 'HS' AND DT.DEPT_ID_USE IN (SELECT DEPT_ID FROM @tmp)))))
116

    
117
	ORDER BY A.CREATE_DT DESC
118
-- PAGING END
119
end
120
ELSE
121
BEGIN
122
-- PAGING BEGIN
123
	SELECT TOP(CONVERT(INT,@P_TOP))A.*,C.BRANCH_CODE, C.BRANCH_NAME, F.AUTH_STATUS_NAME, 
124
	ATKT.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_KT,T1.TLFullName AS MAKER_NAME,T2.TLFullName AS MAKER_NAME_KT,T3.TLFullName APPROVE_NAME, T4.TLFullName APPROVE_NAME_KT,
125
	C.BRANCH_CODE +' - '+ C.BRANCH_NAME AS FULL_BRANCH_NAME,
126
	@p_USER_LOGIN AS USER_LOGIN,@p_TYPE_SEARCH AS TYPE_SEARCH,
127
	CASE WHEN EXISTS (SELECT * FROM ASS_COLLECT_CONFIRM_MASTER M WHERE M.COL_MULTI_MASTER_ID = A.COL_MULTI_MASTER_ID) 
128
			THEN 'Y'  
129
		ELSE 'N' END AS CONFIRM_STATUS
130
	 -- SELECT END
131
	FROM ASS_COLLECT_MULTI_MASTER A
132
	LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
133
	LEFT JOIN CM_AUTH_STATUS F ON A.AUTH_STATUS = F.AUTH_STATUS
134
	LEFT JOIN CM_AUTH_STATUS ATKT ON ATKT.AUTH_STATUS = A.AUTH_STATUS_KT
135
	LEFT JOIN TL_USER T1 ON A.MAKER_ID = T1.TLNANME 
136
	LEFT JOIN TL_USER T2 ON A.MAKER_ID_KT = T2.TLNANME
137
	LEFT JOIN TL_USER T3 ON A.CHECKER_ID = T3.TLNANME 
138
	LEFT JOIN TL_USER T4 ON A.CHECKER_ID_KT = T4.TLNANME
139
	--INNER JOIN (SELECT BRANCH_ID,COL_MULTI_MASTER_ID,COUNT(*) AS SL FROM ASS_COLLECT_MULTI_DT WHERE BRANCH_ID = @BRANCH_LOGIN GROUP BY BRANCH_ID,COL_MULTI_MASTER_ID) DTT ON DTT.COL_MULTI_MASTER_ID = A.COL_MULTI_MASTER_ID   
140

    
141
	 WHERE 1 = 1
142
	 AND (A.COL_MULTI_MASTER_ID LIKE '%' + @p_COL_MULTI_MASTER_ID + '%' OR  @p_COL_MULTI_MASTER_ID IS NULL OR @p_COL_MULTI_MASTER_ID = '')
143
	 AND (CONVERT(DATE,ISNULL(A.CREATE_DT_KT, A.COLLECT_DT),103) >= CONVERT(DATE,@p_FROMDATE, 103) OR @p_FROMDATE IS NULL OR @p_FROMDATE ='')
144
	 AND (CONVERT(DATE,ISNULL(A.CREATE_DT_KT, A.COLLECT_DT),103) <= CONVERT(DATE,@p_TODATE, 103) OR @p_TODATE IS NULL OR @p_TODATE ='')
145
	 AND (A.USER_COLLECT LIKE '%' + @p_USER_COLLECT + '%' OR  @p_USER_COLLECT IS NULL OR @p_USER_COLLECT = '')
146
	 AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR  @p_NOTES IS NULL OR @p_NOTES = '')
147
	 AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR  @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
148
	 AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR  @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
149
	 AND (A.CREATE_DT =CONVERT(DATETIME, @p_CREATE_DT, 103) OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
150
	 AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
151
	 AND (A.APPROVE_DT =CONVERT(DATETIME, @p_APPROVE_DT, 103) OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
152
	 AND (A.AUTH_STATUS_KT LIKE '%' + @p_AUTH_STATUS_KT + '%' OR  @p_AUTH_STATUS_KT IS NULL OR @p_AUTH_STATUS_KT = '')
153
	 AND (A.CREATE_DT_KT =CONVERT(DATETIME, @p_CREATE_DT_KT, 103) OR  @p_CREATE_DT_KT IS NULL OR @p_CREATE_DT_KT = '')
154
	 AND (A.APPROVE_DT_KT =CONVERT(DATETIME, @p_APPROVE_DT_KT, 103) OR  @p_APPROVE_DT_KT IS NULL OR @p_APPROVE_DT_KT = '')
155
	 AND (A.MAKER_ID_KT LIKE '%' + @p_MAKER_ID_KT + '%' OR  @p_MAKER_ID_KT IS NULL OR @p_MAKER_ID_KT = '')
156
	 AND (A.CHECKER_ID_KT LIKE '%' + @p_CHECKER_ID_KT + '%' OR  @p_CHECKER_ID_KT IS NULL OR @p_CHECKER_ID_KT = '')
157
	 AND (A.REPORT_STATUS LIKE '%' + @p_REPORT_STATUS + '%' OR  @p_REPORT_STATUS IS NULL OR @p_REPORT_STATUS = '')
158
	 AND A.RECORD_STATUS='1'
159
	 AND (A.REPORT_STATUS LIKE '%' + @p_REPORT_STATUS + '%' OR  @p_REPORT_STATUS IS NULL OR @p_REPORT_STATUS = '')
160

    
161
	-- GiaNT 28/09/2021
162
	AND ( (@p_AUTH_STATUS = 'Y' AND A.COL_MULTI_MASTER_ID IN (SELECT G.COL_MULTI_MASTER_ID FROM ASS_COLLECT_CONFIRM_MASTER G)) 
163
			OR (@p_AUTH_STATUS = 'N' AND A.COL_MULTI_MASTER_ID NOT IN (SELECT G.COL_MULTI_MASTER_ID FROM ASS_COLLECT_CONFIRM_MASTER G)
164
			OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '' )))
165
	AND A.AUTH_STATUS = 'A'
166
	-- GiaNT 11/10/2021
167
	--AND ( 
168
	--	(@BRANCH_TYPE = 'HS' AND  EXISTS (SELECT * FROM ASS_COLLECT_MULTI_DT WHERE A.COL_MULTI_MASTER_ID = ASS_COLLECT_MULTI_DT.COL_MULTI_MASTER_ID AND ASS_COLLECT_MULTI_DT.DEPT_ID_USE = @DEP_LOGIN))
169
	--	OR (@BRANCH_TYPE <> 'HS' AND  EXISTS (SELECT * FROM ASS_COLLECT_MULTI_DT WHERE A.COL_MULTI_MASTER_ID = ASS_COLLECT_MULTI_DT.COL_MULTI_MASTER_ID AND ASS_COLLECT_MULTI_DT.BRANCH_ID = @BRANCH_LOGIN))
170
	--)
171
	AND (EXISTS (SELECT DT.COLLECT_MULTI_ID FROM dbo.ASS_COLLECT_MULTI_DT DT WHERE A.COL_MULTI_MASTER_ID = DT.COL_MULTI_MASTER_ID 
172
		AND ((SELECT BR.BRANCH_TYPE FROM dbo.CM_BRANCH BR WHERE BR.BRANCH_ID = DT.BRANCH_ID) <> 'HS' AND (DT.BRANCH_ID IN (SELECT BRANCH_ID FROM @tmp))
173
			OR ((SELECT BR.BRANCH_TYPE FROM dbo.CM_BRANCH BR WHERE BR.BRANCH_ID = DT.BRANCH_ID) = 'HS' AND DT.DEPT_ID_USE IN (SELECT DEPT_ID FROM @tmp)))))
174
	ORDER BY A.CREATE_DT DESC
175

    
176
-- PAGING END
177
END
178
END -- PAGING
179