Project

General

Profile

ASS_TRANSFER_CONFIRM_MASTER_Search.txt

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

 
1
ALTER PROCEDURE [dbo].[ASS_TRANSFER_CONFIRM_MASTER_Search]
2
@p_TRANS_MULTI_MASTER_ID	varchar(15)  = NULL,
3
@p_BRANCH_ID	varchar(15)  = NULL,
4
@p_TRANSFER_DT	VARCHAR(20) = NULL,
5
@p_USER_TRANSFER	nvarchar(200)  = NULL,
6
@p_USER_TRANSFER_NAME	nvarchar(200)  = NULL,
7
@p_NOTES	nvarchar(1000)  = NULL,
8
@p_RECORD_STATUS	varchar(1)  = NULL,
9
@p_MAKER_ID	varchar(15)  = NULL,
10
@p_CREATE_DT	VARCHAR(20) = NULL,
11
@p_CHECKER_ID	varchar(15)  = NULL,
12
@p_APPROVE_DT	VARCHAR(20) = NULL,
13
@p_AUTH_STATUS_KT	varchar(15)  = NULL,
14
@p_CREATE_DT_KT	VARCHAR(20) = NULL,
15
@p_APPROVE_DT_KT	VARCHAR(20) = NULL,
16
@p_MAKER_ID_KT	varchar(50)  = NULL,
17
@p_CHECKER_ID_KT	varchar(50)  = NULL,
18
@p_REPORT_STATUS	varchar(15)  = NULL,
19
@p_LEVEL	VARCHAR(50) = 'UNIT',
20
@p_TOP	INT = 10,
21
@p_FROMDATE VARCHAR(20) = NULL,
22
@p_TODATE VARCHAR(20) = NULL,
23
@p_AUTH_STATUS	varchar(1)  = NULL, -- TRẠNG THÁI XÁC NHẬN CỦA BÊN GIAO (CHO)
24
@p_IS_UPDATE VARCHAR(1) = NULL, -- TRẠNG THÁI XÁC NHẬN CỦA NHẬN
25
@p_USER_LOGIN   VARCHAR(15) = NULL,
26
@p_TYPE_SEARCH VARCHAR(10)= NULL -- BN  --- BG
27
AS
28

    
29
BEGIN -- PAGING
30
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 
31
SET @p_RECORD_STATUS = '1'
32

    
33
	DECLARE @BRANCH_LOGIN VARCHAR(15),@BRANCH_TYPE VARCHAR(10), @DEP_LOGIN VARCHAR(15)
34
		SET @BRANCH_LOGIN = (SELECT TOP 1 TLSUBBRID FROM TL_USER WHERE TLNANME = @p_USER_LOGIN)
35
		SET @DEP_LOGIN = (SELECT TOP 1 SECUR_CODE FROM TL_USER WHERE TLNANME = @p_USER_LOGIN)
36
		SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_LOGIN)
37

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

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

    
44
	DECLARE @tmp TABLE (BRANCH_ID VARCHAR(20), DEPT_ID VARCHAR(15),BRANCH_ID_OLD VARCHAR(20), DEPT_ID_OLD VARCHAR(15))
45
	INSERT INTO @tmp 
46
	SELECT DT.BRANCH_ID, DT.DEPT_ID, DT.BRANCH_ID_OLD, DT.DEPT_ID_OLD FROM ASS_TRANSFER_MULTI_MASTER AM
47
	LEFT JOIN ASS_TRANSFER_MULTI_DT DT ON DT.TRANSFER_MULTI_ID IN (SELECT MIN(TRANSFER_MULTI_ID) FROM ASS_TRANSFER_MULTI_DT  TEMP WHERE TEMP.TRANS_MULTI_MASTER_ID=AM.TRANS_MULTI_MASTER_ID)
48
	WHERE 1= 1
49
	AND ((@p_TYPE_SEARCH = 'BG' AND ((EXISTS(SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = DT.BRANCH_ID_OLD AND BRANCH_TYPE ='HS')
50
		AND (DT.DEPT_ID_OLD IN (SELECT R.DEPT_ID FROM @USER_ROLES R WHERE R.ROLE_ID IN ('GDDV','TP')))
51
				OR DT.DEPT_ID_OLD IN (SELECT DEPT_ID FROM @ASSIGN_ROLES WHERE ROLE_ID IN ('GDDV','TP')))
52
		OR (NOT EXISTS(SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = DT.BRANCH_ID_OLD AND BRANCH_TYPE ='HS')
53
			AND (DT.BRANCH_ID_OLD IN (SELECT R.BRANCH_ID FROM @USER_ROLES R WHERE R.ROLE_ID IN ('GDDV','TPGD'))))
54
				OR DT.BRANCH_ID_OLD IN (SELECT BRANCH_ID FROM @ASSIGN_ROLES WHERE ROLE_ID IN ('GDDV','TPGD'))))
55
	OR (@p_TYPE_SEARCH = 'BN' AND ((EXISTS(SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = DT.BRANCH_ID AND BRANCH_TYPE ='HS')
56
			AND (DT.DEPT_ID IN (SELECT R.DEPT_ID FROM @USER_ROLES R WHERE R.ROLE_ID IN ('GDDV','TP')))
57
				OR DT.DEPT_ID IN (SELECT DEPT_ID FROM @ASSIGN_ROLES WHERE ROLE_ID IN ('GDDV','TP')))
58
		OR (NOT EXISTS(SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = DT.BRANCH_ID AND BRANCH_TYPE ='HS')
59
			AND (DT.BRANCH_ID IN (SELECT R.BRANCH_ID FROM @USER_ROLES R WHERE R.ROLE_ID IN ('GDDV','TPGD'))))
60
				OR DT.BRANCH_ID IN (SELECT BRANCH_ID FROM @ASSIGN_ROLES WHERE ROLE_ID IN ('GDDV','TPGD')))))
61
	
62

    
63
IF(@p_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0)
64
	-- PAGING BEGIN
65

    
66
		SELECT A.*,C.BRANCH_CODE, C.BRANCH_NAME, F.AUTH_STATUS_NAME,C.BRANCH_CODE +' - '+ C.BRANCH_NAME AS FULL_BRANCH_NAME,
67
		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,
68
		@p_USER_LOGIN AS USER_LOGIN,@p_TYPE_SEARCH AS TYPE_SEARCH,
69
		ACM.CONFIRM_STATUS_BG, ACM.CONFIRM_STATUS_BN, ACM.TRANS_MULTI_MASTER_CONFIRM_ID
70
	-- SELECT END
71

    
72
	FROM ASS_TRANSFER_MULTI_MASTER A
73
	INNER JOIN dbo.ASS_TRANSFER_CONFIRM_MASTER ACM ON A.TRANS_MULTI_MASTER_ID = ACM.TRANS_MULTI_MASTER_ID
74
	LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
75
	LEFT JOIN CM_AUTH_STATUS F ON A.AUTH_STATUS = F.AUTH_STATUS
76
	LEFT JOIN CM_AUTH_STATUS ATKT ON ATKT.AUTH_STATUS = A.AUTH_STATUS_KT
77
	LEFT JOIN TL_USER T1 ON A.MAKER_ID = T1.TLNANME 
78
	LEFT JOIN TL_USER T2 ON A.MAKER_ID_KT = T2.TLNANME
79
	LEFT JOIN TL_USER T3 ON A.CHECKER_ID = T3.TLNANME 
80
	LEFT JOIN TL_USER T4 ON A.CHECKER_ID_KT = T4.TLNANME
81

    
82
	--INNER JOIN (SELECT BRANCH_ID,TRANS_MULTI_MASTER_ID,COUNT(*) AS SL FROM ASS_TRANSFER_MULTI_DT WHERE BRANCH_ID = @BRANCH_LOGIN GROUP BY BRANCH_ID,TRANS_MULTI_MASTER_ID) DTT ON DTT.TRANS_MULTI_MASTER_ID = A.TRANS_MULTI_MASTER_ID   
83

    
84
	 WHERE 1 = 1
85
		AND (A.TRANS_MULTI_MASTER_ID LIKE '%' + @p_TRANS_MULTI_MASTER_ID + '%' OR  @p_TRANS_MULTI_MASTER_ID IS NULL OR @p_TRANS_MULTI_MASTER_ID = '')	
86
		AND (CONVERT(DATE,ISNULL(A.CREATE_DT_KT, A.TRANSFER_DT),103) >= CONVERT(DATE,@p_FROMDATE, 103) OR @p_FROMDATE IS NULL OR @p_FROMDATE ='')
87
		AND (CONVERT(DATE,ISNULL(A.CREATE_DT_KT, A.TRANSFER_DT),103) <= CONVERT(DATE,@p_TODATE, 103) OR @p_TODATE IS NULL OR @p_TODATE ='')
88
		AND A.AUTH_STATUS = 'A' AND [dbo].[FN_CHECK_PRIVATE_TRANSFER](A.TRANS_MULTI_MASTER_ID) = 0
89
		--TRẠNG THÁI XÁC NHẬN CỦA BÊN GIAO (CHO)
90
		AND ((@p_AUTH_STATUS = 'Y' AND ACM.CONFIRM_STATUS_BG = 'Y') 
91
			OR (@p_AUTH_STATUS = 'N' AND ACM.CONFIRM_STATUS_BG IS NULL)
92
			OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '' ))
93

    
94
		--  TRẠNG THÁI XÁC NHẬN CỦA NHẬN
95
		AND ((@p_IS_UPDATE = 'Y' AND ACM.CONFIRM_STATUS_BN = 'Y') 
96
				OR (@p_IS_UPDATE = 'N' AND ACM.CONFIRM_STATUS_BN IS NULL)
97
				OR (@p_IS_UPDATE IS NULL OR @p_IS_UPDATE = '' ))
98

    
99
		AND ((@p_TYPE_SEARCH = 'BG' AND EXISTS(SELECT TRANS_MULTI_MASTER_ID FROM ASS_TRANSFER_MULTI_DT DT WHERE A.TRANS_MULTI_MASTER_ID = DT.TRANS_MULTI_MASTER_ID
100
				AND ((SELECT BR.BRANCH_TYPE FROM dbo.CM_BRANCH BR WHERE BR.BRANCH_ID = DT.BRANCH_ID_OLD) <> 'HS' AND (DT.BRANCH_ID_OLD IN (SELECT BRANCH_ID_OLD FROM @tmp))
101
					OR ((SELECT BR.BRANCH_TYPE FROM dbo.CM_BRANCH BR WHERE BR.BRANCH_ID = DT.BRANCH_ID_OLD) = 'HS' AND DT.DEPT_ID_OLD IN (SELECT DEPT_ID_OLD FROM @tmp)))))
102
			OR (@p_TYPE_SEARCH = 'BN' AND EXISTS(SELECT TRANS_MULTI_MASTER_ID FROM ASS_TRANSFER_MULTI_DT DT WHERE A.TRANS_MULTI_MASTER_ID = DT.TRANS_MULTI_MASTER_ID
103
				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))
104
					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)))))
105
			OR (@p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = ''))
106
		
107
	ORDER BY A.CREATE_DT DESC
108
	-- PAGING END
109

    
110
ELSE
111
	-- PAGING BEGIN
112

    
113
		SELECT A.*,C.BRANCH_CODE, C.BRANCH_NAME, F.AUTH_STATUS_NAME,C.BRANCH_CODE +' - '+ C.BRANCH_NAME AS FULL_BRANCH_NAME,
114
		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,
115
		@p_USER_LOGIN AS USER_LOGIN,@p_TYPE_SEARCH AS TYPE_SEARCH,
116
		ACM.CONFIRM_STATUS_BG, ACM.CONFIRM_STATUS_BN, ACM.TRANS_MULTI_MASTER_CONFIRM_ID	
117

    
118
		-- SELECT END
119

    
120
		FROM ASS_TRANSFER_MULTI_MASTER A
121
		INNER JOIN dbo.ASS_TRANSFER_CONFIRM_MASTER ACM ON A.TRANS_MULTI_MASTER_ID = ACM.TRANS_MULTI_MASTER_ID
122
		LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
123
		LEFT JOIN CM_AUTH_STATUS F ON A.AUTH_STATUS = F.AUTH_STATUS
124
		LEFT JOIN CM_AUTH_STATUS ATKT ON ATKT.AUTH_STATUS = A.AUTH_STATUS_KT
125
		LEFT JOIN TL_USER T1 ON A.MAKER_ID = T1.TLNANME 
126
		LEFT JOIN TL_USER T2 ON A.MAKER_ID_KT = T2.TLNANME
127
		LEFT JOIN TL_USER T3 ON A.CHECKER_ID = T3.TLNANME 
128
		LEFT JOIN TL_USER T4 ON A.CHECKER_ID_KT = T4.TLNANME
129

    
130
	 WHERE 1 = 1
131
		AND (A.TRANS_MULTI_MASTER_ID LIKE '%' + @p_TRANS_MULTI_MASTER_ID + '%' OR  @p_TRANS_MULTI_MASTER_ID IS NULL OR @p_TRANS_MULTI_MASTER_ID = '')	
132
		AND (CONVERT(DATE,ISNULL(A.CREATE_DT_KT, A.TRANSFER_DT),103) >= CONVERT(DATE,@p_FROMDATE, 103) OR @p_FROMDATE IS NULL OR @p_FROMDATE ='')
133
		AND (CONVERT(DATE,ISNULL(A.CREATE_DT_KT, A.TRANSFER_DT),103) <= CONVERT(DATE,@p_TODATE, 103) OR @p_TODATE IS NULL OR @p_TODATE ='')
134
		AND A.AUTH_STATUS = 'A' AND [dbo].[FN_CHECK_PRIVATE_TRANSFER](A.TRANS_MULTI_MASTER_ID) = 0
135
		--TRẠNG THÁI XÁC NHẬN CỦA BÊN GIAO (CHO)
136
		AND ((@p_AUTH_STATUS = 'Y' AND ACM.CONFIRM_STATUS_BG = 'Y') 
137
			OR (@p_AUTH_STATUS = 'N' AND ACM.CONFIRM_STATUS_BG IS NULL)
138
			OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '' ))
139

    
140
		--  TRẠNG THÁI XÁC NHẬN CỦA NHẬN
141
		AND ((@p_IS_UPDATE = 'Y' AND ACM.CONFIRM_STATUS_BN = 'Y') 
142
				OR (@p_IS_UPDATE = 'N' AND ACM.CONFIRM_STATUS_BN IS NULL)
143
				OR (@p_IS_UPDATE IS NULL OR @p_IS_UPDATE = '' ))
144

    
145
		AND ((@p_TYPE_SEARCH = 'BG' AND EXISTS(SELECT TRANS_MULTI_MASTER_ID FROM ASS_TRANSFER_MULTI_DT DT WHERE A.TRANS_MULTI_MASTER_ID = DT.TRANS_MULTI_MASTER_ID
146
				AND ((SELECT BR.BRANCH_TYPE FROM dbo.CM_BRANCH BR WHERE BR.BRANCH_ID = DT.BRANCH_ID_OLD) <> 'HS' AND (DT.BRANCH_ID_OLD IN (SELECT BRANCH_ID_OLD FROM @tmp))
147
					OR ((SELECT BR.BRANCH_TYPE FROM dbo.CM_BRANCH BR WHERE BR.BRANCH_ID = DT.BRANCH_ID_OLD) = 'HS' AND DT.DEPT_ID_OLD IN (SELECT DEPT_ID_OLD FROM @tmp)))))
148
			OR (@p_TYPE_SEARCH = 'BN' AND EXISTS(SELECT TRANS_MULTI_MASTER_ID FROM ASS_TRANSFER_MULTI_DT DT WHERE A.TRANS_MULTI_MASTER_ID = DT.TRANS_MULTI_MASTER_ID
149
				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))
150
					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)))))
151
			OR (@p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = ''))
152
	ORDER BY A.CREATE_DT DESC
153
	-- PAGING END
154

    
155
END -- PAGING
156