Project

General

Profile

ASS_USE_CONFIRM_MASTER_Search.txt

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

 
1
ALTER PROCEDURE [dbo].[ASS_USE_CONFIRM_MASTER_Search]
2
@p_USER_MASTER_ID	varchar(15)  = NULL,
3
@p_BRANCH_ID	varchar(15)  = NULL,
4
@p_USE_EXPORT_DT	VARCHAR(20) = NULL,
5
@p_USER_EXPORT	nvarchar(200)  = NULL,
6
@p_USER_EXPORT_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_KT_IS_DO			VARCHAR(1) = NULL,
21
@p_LEVEL	VARCHAR(50) = 'UNIT',
22
@p_TOP	INT = 10,
23
@p_FROMDATE VARCHAR(20) = NULL,
24
@p_TODATE VARCHAR(20) = NULL,
25
@p_USER_LOGIN   VARCHAR(15),-- 26022020 LUCTV TRUYEN XUONG USER LOGIN DE DO TIM MA PHONG BAN
26
@p_TYPE_SEARCH VARCHAR(10)= NULL -- 26022020 LUCTV TRUYEN XUONG DAU HIEU DE PHAN BIET TIM KIEM O MAN HINH KE TOAN HAY MAN HINH HCQT
27
AS
28
BEGIN -- PAGING
29

    
30
	SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 
31

    
32
	------
33
	SET @p_RECORD_STATUS = '1'
34
	-------
35

    
36
	DECLARE @BRANCH_LOGIN VARCHAR(15)
37
		SET @BRANCH_LOGIN = (SELECT TOP 1 TLSUBBRID FROM TL_USER WHERE TLNANME = @p_USER_LOGIN)
38

    
39
	DECLARE @ASSIGN_ROLES TABLE (BRANCH_ID VARCHAR(20), DEPT_ID VARCHAR(15), ROLE_ID VARCHAR(20))
40
	INSERT INTO @ASSIGN_ROLES SELECT * FROM [dbo].[TL_USER_GET_ASSIGNED_BRANCH](@p_USER_LOGIN)
41

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

    
45
	DECLARE @tmp TABLE (BRANCH_ID VARCHAR(20), DEPT_ID VARCHAR(15))
46
		INSERT INTO @tmp 
47
		SELECT DT.BRANCH_ID, DT.DEPT_ID FROM ASS_USE_MULTI_MASTER AM
48
		LEFT JOIN ASS_USE_MULTI_DT DT ON DT.USE_MULTI_ID IN (SELECT MIN(USE_MULTI_ID) FROM ASS_USE_MULTI_DT  TEMP WHERE TEMP.USER_MASTER_ID=AM.USER_MASTER_ID)
49
		WHERE 1= 1
50
		AND ((EXISTS(SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = DT.BRANCH_ID AND BRANCH_TYPE ='HS')
51
				AND (DT.DEPT_ID IN (SELECT R.DEPT_ID FROM @USER_ROLES R WHERE R.ROLE_ID IN ('GDDV','TP')))
52
					OR DT.DEPT_ID IN (SELECT DEPT_ID FROM @ASSIGN_ROLES WHERE ROLE_ID IN ('GDDV','TP')))
53
			OR (NOT EXISTS(SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = DT.BRANCH_ID AND BRANCH_TYPE ='HS')
54
				AND (DT.BRANCH_ID IN (SELECT R.BRANCH_ID FROM @USER_ROLES R WHERE R.ROLE_ID IN ('GDDV','TPGD'))))
55
					OR DT.BRANCH_ID IN (SELECT BRANCH_ID FROM @ASSIGN_ROLES WHERE ROLE_ID IN ('GDDV','TPGD')))
56

    
57
IF(@p_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0)
58
-- PAGING BEGIN
59
	SELECT A.*,C.BRANCH_CODE, C.BRANCH_NAME, F.CONTENT AS AUTH_STATUS_NAME,C.BRANCH_CODE+' - '+ C.BRANCH_NAME AS FULL_BRANCH_NAME,
60
	ATKT.CONTENT AS AUTH_STATUS_NAME_KT,
61
	@p_USER_LOGIN AS USER_LOGIN,@p_TYPE_SEARCH AS TYPE_SEARCH, 
62
	B.CONFIRM_STATUS,
63
	CASE WHEN B.CONFIRM_STATUS = 'Y'
64
			THEN N'Đã xác nhận'  
65
			ELSE N'Chưa xác nhận' END AS CONFIRM_STATUS_NAME
66
-- SELECT END
67
	FROM ASS_USE_MULTI_MASTER A
68
	LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
69
	LEFT JOIN dbo.CM_ALLCODE F ON F.CDVAL = A.AUTH_STATUS AND F.CDNAME = 'ASS_ADD_AUTH' AND F.CDTYPE = 'ASS_ADDNEW'
70
	LEFT JOIN dbo.CM_ALLCODE ATKT ON ATKT.CDVAL = A.AUTH_STATUS_KT AND ATKT.CDNAME = 'ASS_ADD_AUTH' AND ATKT.CDTYPE = 'ASS_ADDNEW'
71
	--INNER JOIN (SELECT BRANCH_ID,USER_MASTER_ID,COUNT(*) AS SL FROM ASS_USE_MULTI_DT WHERE BRANCH_ID = @BRANCH_LOGIN GROUP BY BRANCH_ID,USER_MASTER_ID) DTT ON DTT.USER_MASTER_ID = A.USER_MASTER_ID   
72
	 LEFT JOIN ASS_USE_CONFIRM_MASTER B ON A.USER_MASTER_ID = B.USER_MASTER_ID
73
	WHERE 1 = 1
74
	AND (A.USER_MASTER_ID LIKE '%' + @p_USER_MASTER_ID + '%' OR  @p_USER_MASTER_ID IS NULL OR @p_USER_MASTER_ID = '')
75
	AND (CONVERT(DATE,ISNULL(A.APPROVE_DT,A.USE_EXPORT_DT),103) >=CONVERT(DATE, @p_FROMDATE, 103) OR  @p_FROMDATE IS NULL OR @p_FROMDATE = '')
76
	AND (CONVERT(DATE,ISNULL(A.APPROVE_DT, A.USE_EXPORT_DT),103) <=CONVERT(DATETIME, @p_TODATE, 103) OR  @p_TODATE IS NULL OR @p_TODATE = '')
77
	AND (A.USER_EXPORT LIKE '%' + @p_USER_EXPORT + '%' OR  @p_USER_EXPORT IS NULL OR @p_USER_EXPORT = '')
78
	AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR  @p_NOTES IS NULL OR @p_NOTES = '')	 
79
	AND A.AUTH_STATUS = 'A'
80
	  --AND ( (@p_AUTH_STATUS = 'Y' AND A.USER_MASTER_ID = B.USER_MASTER_ID) 
81
			--OR (@p_AUTH_STATUS = 'N' AND A.USER_MASTER_ID <> B.USER_MASTER_ID
82
			--OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '' )))
83
	 AND ( (@p_AUTH_STATUS = 'Y' AND A.USER_MASTER_ID IN (SELECT G.USER_MASTER_ID FROM ASS_USE_CONFIRM_MASTER G)) 
84
			OR (@p_AUTH_STATUS = 'N' AND A.USER_MASTER_ID NOT IN (SELECT G.USER_MASTER_ID FROM ASS_USE_CONFIRM_MASTER G)
85
			OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '' )))
86

    
87
	AND (EXISTS (SELECT DT.USE_MULTI_ID FROM dbo.ASS_USE_MULTI_DT DT WHERE DT.USER_MASTER_ID=A.USER_MASTER_ID 
88
		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))
89
			OR ((SELECT BR.BRANCH_TYPE FROM dbo.CM_BRANCH BR WHERE BR.BRANCH_ID = DT.BRANCH_ID) = 'HS' AND DT.DEPT_ID IN (SELECT DEPT_ID FROM @tmp)))))
90
	
91
	ORDER BY A.CREATE_DT DESC
92
	
93
-- PAGING END
94
	ELSE
95
-- PAGING BEGIN
96
	SELECT TOP(CONVERT(INT,@P_TOP))A.*,C.BRANCH_CODE, C.BRANCH_NAME, F.CONTENT AS AUTH_STATUS_NAME, C.BRANCH_CODE+' - '+ C.BRANCH_NAME AS FULL_BRANCH_NAME,
97
	ATKT.CONTENT AS AUTH_STATUS_NAME_KT,
98
	@p_USER_LOGIN AS USER_LOGIN,@p_TYPE_SEARCH AS TYPE_SEARCH,
99
	B.CONFIRM_STATUS,
100
	CASE WHEN B.CONFIRM_STATUS = 'Y'
101
			THEN N'Đã xác nhận'  
102
			ELSE N'Chưa xác nhận' END AS CONFIRM_STATUS_NAME
103
-- SELECT END
104
		FROM ASS_USE_MULTI_MASTER A
105
		LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
106
		LEFT JOIN dbo.CM_ALLCODE F ON F.CDVAL = A.AUTH_STATUS AND F.CDNAME = 'ASS_ADD_AUTH' AND F.CDTYPE = 'ASS_ADDNEW'
107
		LEFT JOIN dbo.CM_ALLCODE ATKT ON ATKT.CDVAL = A.AUTH_STATUS_KT AND ATKT.CDNAME = 'ASS_ADD_AUTH' AND ATKT.CDTYPE = 'ASS_ADDNEW'
108
		--INNER JOIN (SELECT BRANCH_ID,USER_MASTER_ID,COUNT(*) AS SL FROM ASS_USE_MULTI_DT WHERE BRANCH_ID = @BRANCH_LOGIN GROUP BY BRANCH_ID,USER_MASTER_ID) DTT ON DTT.USER_MASTER_ID = A.USER_MASTER_ID   
109
		LEFT JOIN ASS_USE_CONFIRM_MASTER B ON A.USER_MASTER_ID = B.USER_MASTER_ID
110
		WHERE 1 = 1
111
		AND (A.USER_MASTER_ID LIKE '%' + @p_USER_MASTER_ID + '%' OR  @p_USER_MASTER_ID IS NULL OR @p_USER_MASTER_ID = '')
112
		AND (CONVERT(DATE,ISNULL(A.APPROVE_DT,A.USE_EXPORT_DT),103) >=CONVERT(DATE, @p_FROMDATE, 103) OR  @p_FROMDATE IS NULL OR @p_FROMDATE = '')
113
		AND (CONVERT(DATE,ISNULL(A.APPROVE_DT,A.USE_EXPORT_DT),103) <=CONVERT(DATETIME, @p_TODATE, 103) OR  @p_TODATE IS NULL OR @p_TODATE = '')
114
		AND (A.USER_EXPORT LIKE '%' + @p_USER_EXPORT + '%' OR  @p_USER_EXPORT IS NULL OR @p_USER_EXPORT = '')
115
		AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR  @p_NOTES IS NULL OR @p_NOTES = '')
116
		AND A.AUTH_STATUS = 'A'
117
		AND ( (@p_AUTH_STATUS = 'Y' AND A.USER_MASTER_ID IN (SELECT G.USER_MASTER_ID FROM ASS_USE_CONFIRM_MASTER G)) 
118
			OR (@p_AUTH_STATUS = 'N' AND A.USER_MASTER_ID NOT IN (SELECT G.USER_MASTER_ID FROM ASS_USE_CONFIRM_MASTER G)
119
			OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '' )))
120
		 --AND ( (@p_AUTH_STATUS = 'Y' AND A.USER_MASTER_ID = B.USER_MASTER_ID) 
121
			--OR (@p_AUTH_STATUS = 'N' AND A.USER_MASTER_ID <> B.USER_MASTER_ID
122
			--OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '' )))
123
		AND (EXISTS (SELECT DT.USE_MULTI_ID FROM dbo.ASS_USE_MULTI_DT DT WHERE DT.USER_MASTER_ID=A.USER_MASTER_ID 
124
			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))
125
				OR ((SELECT BR.BRANCH_TYPE FROM dbo.CM_BRANCH BR WHERE BR.BRANCH_ID = DT.BRANCH_ID) = 'HS' AND DT.DEPT_ID IN (SELECT DEPT_ID FROM @tmp)))))
126
		ORDER BY A.CREATE_DT DESC
127
-- PAGING END
128
END -- PAGING