Project

General

Profile

2.1. TR_REQUEST_DOC_SEARCH.txt

Luc Tran Van, 10/23/2022 09:48 PM

 
1
ALTER PROCEDURE [dbo].[TR_REQUEST_DOC_Search]
2
@p_REQ_ID	varchar(15)  = NULL,
3
@p_REQ_CODE	varchar(50)  = NULL,
4
@p_PL_REQ_CODE	varchar(50)  = NULL,
5
@p_REQ_NAME	nvarchar(200)  = NULL,
6
@p_REQ_DT	varchar(30) = NULL,--
7
@p_REQ_CONTENT NVARCHAR(1000)=NULL,
8
@p_TOTAL_AMT	decimal = NULL,
9
@p_NOTES	nvarchar(1000)  = NULL,
10
@p_RECORD_STATUS	varchar(1)  = NULL,
11
@p_MAKER_ID	varchar(12)  = NULL,
12
@p_CREATE_DT	varchar(30) = NULL,--
13
@p_AUTH_STATUS	varchar(50)  = NULL,
14
@p_CHECKER_ID	varchar(12)  = NULL,
15
@p_APPROVE_DT	varchar(30) = NULL,--
16
@p_BRANCH_DO VARCHAR(15) = NULL,
17
@p_BRANCH_CREATE VARCHAR(15) = NULL,
18
@p_USER_REQUEST VARCHAR(15) = NULL,
19
@p_BRANCH_LOGIN VARCHAR(15)=NULL,
20
@p_TLNAME_USER VARCHAR(20)=NULL,
21
@p_ROLE_USER VARCHAR(20),
22
@p_TOP	INT = 10,
23
@p_PROCESS_STATUS varchar(50) = NULL,
24
@p_FR_DATE varchar(30) = NULL,--
25
@p_TO_DATE varchar(30) = NULL,--
26
@p_TYPE VARCHAR(15),
27
@p_TYPE_TRANFER VARCHAR(15)=NULL,
28
@p_YEAR INT = NULL,
29
@p_IS_TRANSFER VARCHAR(10) = NULL,
30
@p_NGUOIXULY NVARCHAR(15) = NULL,
31
@p_IS_KT bit = NULL,
32
@p_PL_REQ_ID VARCHAR(20)=NULL,
33
------------------BAODNQ 21/10/2022 : TRUYỀN THÊM DEP_CREATE
34
@p_DEP_CREATE VARCHAR(15) = NULL
35

    
36
AS
37
BEGIN -- PAGING
38
	IF(@p_ROLE_USER ='KTT')
39
		SET @p_ROLE_USER ='GDDV'
40
	DECLARE @DEP_ID VARCHAR(15),@BRANCH_TYPE VARCHAR(20)
41
	DECLARE
42
	@COST_ID TABLE (
43
		COST_ID VARCHAR(15),
44
		DVDM_ID VARCHAR(15)
45
	)
46
	SET @DEP_ID =(SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@p_TLNAME_USER)
47
	INSERT INTO @COST_ID
48
	SELECT DT.COST_ID,PC.DVDM_ID FROM dbo.PL_COSTCENTER_DT DT
49
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
50
	WHERE DEP_ID=@DEP_ID AND BRANCH_ID=@p_BRANCH_LOGIN
51

    
52
	SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE  BRANCH_ID=@p_BRANCH_LOGIN)
53
	IF(EXISTS(SELECT DEP_ID FROM dbo.CM_DEPARTMENT WHERE DEP_ID=@DEP_ID AND DEP_CODE LIKE '069%'))
54
		SET @BRANCH_TYPE='HS'
55

    
56
	DECLARE @AUTHOR TABLE
57
	(
58
		ROLE_ID VARCHAR(100),
59
		BRANCH_ID VARCHAR(20),
60
		DEP_ID VARCHAR(20),
61
		BRANCH_TYPE VARCHAR(20)
62
	)
63

    
64
	DECLARE @AUTHOR_DVDM TABLE
65
	(
66
		ROLE_ID VARCHAR(100),
67
		BRANCH_ID VARCHAR(20),
68
		DEP_ID VARCHAR(20),
69
		DVDM_ID VARCHAR(20)
70
	)
71
	DECLARE @AUTHOR_DMMS TABLE
72
	(
73
		ROLE_ID VARCHAR(100),
74
		BRANCH_ID VARCHAR(20),
75
		DEP_ID VARCHAR(20),
76
		DMMS_ID VARCHAR(20)
77
	)
78
	INSERT INTO @AUTHOR
79
	(
80
	    ROLE_ID,
81
	    BRANCH_ID,
82
	    DEP_ID,
83
		BRANCH_TYPE
84
	)
85
	SELECT RoleName,TLSUBBRID,SECUR_CODE,CB.BRANCH_TYPE FROM dbo.TL_USER TU
86
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
87
	WHERE TLNANME=@p_TLNAME_USER
88
	UNION ALL
89
	SELECT TM.ROLE_NEW RoleName,TLSUBBRID,SECUR_CODE,CB.BRANCH_TYPE FROM dbo.TL_USER TU
90
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='')
91
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
92
	WHERE TLNANME=@p_TLNAME_USER
93
	UNION ALL
94
	SELECT TM1.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE,CB.BRANCH_TYPE FROM dbo.TL_SYS_ROLE_MAPPING TM1
95
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TM1.BRANCH_ID
96
	WHERE TM1.TLNAME=@p_TLNAME_USER AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
97
	UNION ALL
98
	SELECT TM.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE,CB.BRANCH_TYPE FROM dbo.TL_SYS_ROLE_MAPPING TM1
99
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TM1.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='')
100
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TM1.BRANCH_ID
101
	WHERE TM1.TLNAME=@p_TLNAME_USER AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
102

    
103
	INSERT INTO @AUTHOR_DVDM
104
	(
105
	    ROLE_ID,
106
	    BRANCH_ID,
107
	    DEP_ID,
108
	    DVDM_ID
109
	)
110
	SELECT TU.RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU 
111
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=TU.SECUR_CODE
112
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
113
	WHERE TU.TLNANME=@p_TLNAME_USER
114
	UNION ALL
115
	SELECT TM.ROLE_NEW RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU 
116
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=TU.SECUR_CODE
117
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
118
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='')
119
	WHERE TU.TLNANME=@p_TLNAME_USER
120
	UNION ALL
121
	SELECT TU.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU 
122
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=TU.DEP_ID
123
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
124
	WHERE TU.TLNAME=@p_TLNAME_USER AND CAST(EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
125
	UNION ALL
126
	SELECT TM.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU 
127
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=TU.DEP_ID
128
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
129
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='')
130
	WHERE TU.TLNAME=@p_TLNAME_USER AND CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
131

    
132
	INSERT INTO @AUTHOR_DMMS
133
	(
134
	    ROLE_ID,
135
	    BRANCH_ID,
136
	    DEP_ID,
137
		DMMS_ID
138
	)
139
	SELECT RoleName,TLSUBBRID,SECUR_CODE,MS.DMMS_ID FROM dbo.TL_USER TU
140
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
141
	LEFT JOIN dbo.CM_DMMS MS ON MS.BRANCH_ID = CB.BRANCH_ID AND (TU.SECUR_CODE=MS.DEP_ID OR CB.BRANCH_TYPE <>'HS')
142
	WHERE TLNANME=@p_TLNAME_USER
143
	UNION ALL
144
	SELECT TM.ROLE_NEW RoleName,TLSUBBRID,SECUR_CODE,MS.DMMS_ID FROM dbo.TL_USER TU
145
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='')
146
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
147
	LEFT JOIN dbo.CM_DMMS MS ON MS.BRANCH_ID = CB.BRANCH_ID AND (TU.SECUR_CODE=MS.DEP_ID OR CB.BRANCH_TYPE <>'HS')
148
	WHERE TLNANME=@p_TLNAME_USER
149
	UNION ALL
150
	SELECT TM1.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE,MS.DMMS_ID FROM dbo.TL_SYS_ROLE_MAPPING TM1
151
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TM1.BRANCH_ID
152
	LEFT JOIN dbo.CM_DMMS MS ON MS.BRANCH_ID = CB.BRANCH_ID AND (TM1.DEP_ID=MS.DEP_ID OR CB.BRANCH_TYPE <>'HS')
153
	WHERE TM1.TLNAME=@p_TLNAME_USER AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
154
	UNION ALL
155
	SELECT TM.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE,MS.DMMS_ID FROM dbo.TL_SYS_ROLE_MAPPING TM1
156
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TM1.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='')
157
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TM1.BRANCH_ID
158
	LEFT JOIN dbo.CM_DMMS MS ON MS.BRANCH_ID = CB.BRANCH_ID AND (TM1.DEP_ID=MS.DEP_ID OR CB.BRANCH_TYPE <>'HS')
159
	WHERE TM1.TLNAME=@p_TLNAME_USER AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
160

    
161

    
162
	----NGUOI XU LY 18022021
163
		DECLARE @lstREQUEST TABLE (
164
			REQ_ID VARCHAR(20),
165
			PROCESS_ID VARCHAR(50),
166
			DVDM_NAME NVARCHAR(200),
167
			TLNAME VARCHAR(200),
168
			TLFullName NVARCHAR(200),
169
			NOTES NVARCHAR(200)
170
		)
171
	INSERT INTO @lstREQUEST
172
	( REQ_ID,PROCESS_ID, DVDM_NAME,TLNAME,TLFullName, NOTES)	
173
	SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLNANME ELSE TU.TLNANME END AS TLNAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLFullName ELSE TU.TLFullName END AS TLFullName,CASE WHEN TempC.ID IS NULL THEN PL.NOTES ELSE TempC.CONTENT END AS NOTES 	
174
	FROM
175
	(SELECT * FROM dbo.PL_REQUEST_PROCESS PRC
176
	WHERE EXISTS(SELECT TRD.REQ_ID FROM dbo.TR_REQUEST_DOC TRD WHERE TRD.REQ_ID=PRC.REQ_ID) 
177
	AND PRC.PROCESS_ID ='DMMS' AND PRC.STATUS='C'
178
	) PL
179
	LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
180
	LEFT JOIN dbo.TR_REQUEST_DOC TR ON TR.REQ_ID=PL.REQ_ID
181
	LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
182
	LEFT JOIN 
183
	(
184
	SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC 
185
	LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
186
	WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
187
	)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
188
	LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
189
	LEFT JOIN 
190
	(
191
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DMMS_ID 
192
		FROM
193
		(
194
		SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
195
		dbo.TL_USER TS 
196
		UNION ALL
197
		SELECT  TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
198
		dbo.TL_SYS_ROLE_MAPPING TM
199
		LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
200
		WHERE  CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
201
		) TU
202
		LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
203
		LEFT JOIN(
204
		SELECT PC.DMMS_ID,PC.DEP_ID,PC.BRANCH_ID FROM dbo.CM_DMMS PC
205
		UNION ALL
206
		SELECT DVDM.DVDM_ID AS DMMS_ID,DVDM.DEP_ID,DVDM.BRANCH_ID  FROM 
207
		(
208
			SELECT CD.DVDM_ID,PCDT.BRANCH_ID,PCDT.DEP_ID FROM dbo.CM_DVDM CD
209
			LEFT JOIN dbo.PL_COSTCENTER PC ON PC.DVDM_ID=CD.DVDM_ID
210
			LEFT JOIN dbo.PL_COSTCENTER_DT PCDT ON PCDT.COST_ID = PC.COST_ID
211
			WHERE CD.IS_KHOI <>1
212
			GROUP BY CD.DVDM_ID,PCDT.BRANCH_ID,PCDT.DEP_ID
213
		) DVDM
214
		) Temp ON (Temp.DEP_ID=TU.SECUR_CODE OR CB.BRANCH_TYPE<>'HS') AND Temp.BRANCH_ID=TU.TLSUBBRID
215
	) TempU ON (TempU.RoleName=PL.ROLE_USER  OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE TM.ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.DMMS_ID=TR.DMMS_ID) AND TempC.ID IS NULL	
216
	WHERE PL.STATUS='C'	
217
	UNION ALL
218
	SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,TempU.TLNANME AS TLNAME,TempU.TLFullName,PL.NOTES 
219
	FROM
220
	(SELECT * FROM dbo.PL_REQUEST_PROCESS PRC
221
	WHERE EXISTS(SELECT TRD.REQ_ID FROM dbo.TR_REQUEST_DOC TRD WHERE TRD.REQ_ID=PRC.REQ_ID) 
222
	AND PRC.PROCESS_ID <>'DMMS' AND PRC.PROCESS_ID <> 'NEW' AND PRC.PROCESS_ID <>'APPROVE' 
223
	AND PRC.STATUS='C' AND (PRC.IS_HAS_CHILD=0 OR PRC.IS_HAS_CHILD IS NULL)
224
	) PL
225
	LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
226
	LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
227
	LEFT JOIN 
228
	(
229
	SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID 
230
	FROM (
231
		SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
232
		dbo.TL_USER TS 
233
		UNION ALL
234
		SELECT  TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
235
		dbo.TL_SYS_ROLE_MAPPING TM
236
		LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
237
		WHERE  CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
238
		) TU
239
	LEFT JOIN
240
		(
241
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
242
		LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID
243
		) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
244
	) TempU ON (TempU.RoleName=PL.ROLE_USER  OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
245
	AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
246
	AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
247
	WHERE  STATUS='C'
248
	UNION ALL
249
		SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLNANME ELSE TU.TLNANME END AS TLNAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLFullName ELSE TU.TLFullName END AS TLFullName,CASE WHEN TempC.ID IS NULL THEN PL.NOTES ELSE TempC.CONTENT END AS NOTES 
250
		FROM 
251
	(SELECT * FROM dbo.PL_REQUEST_PROCESS PRC
252
	WHERE EXISTS(SELECT TRD.REQ_ID FROM dbo.TR_REQUEST_DOC TRD WHERE TRD.REQ_ID=PRC.REQ_ID) 
253
	AND PRC.PROCESS_ID <>'DMMS' AND PRC.PROCESS_ID <> 'NEW' AND PRC.PROCESS_ID <>'APPROVE' 
254
	AND PRC.STATUS='C' AND PRC.IS_HAS_CHILD=1 
255
	) PL
256
	LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
257
	LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
258
	LEFT JOIN 
259
	(
260
	SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC 
261
	LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
262
	WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
263
	)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
264
	LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
265
	LEFT JOIN 
266
	(
267
	SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID 
268
	FROM       (
269
		SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
270
		dbo.TL_USER TS 
271
		UNION ALL
272
		SELECT  TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
273
		dbo.TL_SYS_ROLE_MAPPING TM
274
		LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
275
		WHERE  CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
276
		)  TU 
277
	LEFT JOIN(
278
	SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
279
	LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
280
	) TempU ON  (TempU.RoleName=PL.ROLE_USER  OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
281
	AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
282
	AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
283
	WHERE  PL.STATUS='C'
284

    
285

    
286

    
287
	----
288

    
289
	IF(@P_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0 OR @P_TOP>0)
290
	BEGIN
291
		IF(@p_TYPE='DVKD')
292
		BEGIN
293
		-- PAGING BEGIN
294
		SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT, A.REQ_TYPE, A.IS_KT,
295
               A.REQ_REASON, A.REQ_CONTENT,A.PL_REQ_ID,A.TOTAL_AMT AS TOTAL_AMT, A.NOTES, A.RECORD_STATUS,A.MAKER_ID, A.CREATE_DT,
296
               A.AUTH_STATUS,A.CHECKER_ID,A.APPROVE_DT,A.BRANCH_DO, A.PROCESS_ID,A.BRANCH_CREATE, A.USER_REQUEST,U.TLFullName AS USER_REQUEST_NAME,
297
			   D.AUTH_STATUS_NAME,UDV.TLFullName AS CHECKER_NAME,UMS.TLFullName AS USER_DVMS_NAME,UM.TLFullName AS MAKER_NAME,
298
			   CMS.DMMS_NAME,A.DMMS_ID,
299
			   RP.NOTES AS PROCESS_STATUS,RP.APPROVE_DT AS PROCESS_APP_DT,UP.TLFullName AS PROCESS_CHECKER_NAME,
300
			   RP.ROLE_USER,
301
			   CASE WHEN 
302
			   A.PROCESS_ID='APPROVE' THEN N'Hoàn tất' 
303
				ELSE N'Chưa hoàn tất' END AS AUTH_STATUS_PROCESS_NAME,
304
				RPN.NOTES AS PROCESS_STATUS_NEXT
305
		,G.BRANCH_NAME AS BRANCH_DO_NAME,G.BRANCH_CODE AS BRANCH_DO_CODE,PLRD.REQ_CODE AS PL_REQ_CODE,
306
		DVMS.BRANCH_CODE AS BRANCH_CODE_DVMS,DVMS.BRANCH_NAME AS BRANCH_NAME_DVMS,DVC.BRANCH_CODE AS BRANCH_CREATE_CODE,
307
		DVC.BRANCH_NAME AS BRANCH_CREATE_NAME,
308
		PLRD.REQ_NAME AS PL_REQ_NAME,'' TYPE_JOB,'' AS USER_JOB,'' AS USER_JOB_NAME,'' AS TRANSFER_MAKER,CAST(NULL AS DATETIME)  AS TRANFER_DT ,
309
		'' AS TRANSFER_MAKER_ID,'' AS TYPE_JOB_XL,'' AS USER_JOB_XL,PLRD.REQ_CODE AS SO_TT_CT, PLRD.REQ_DT AS NGAY_NHAN_TT, PLRD.EFFEC_DT NGAY_DUYET_TT, '' AS NCC_CODE, FORMAT(PLRD.TOTAL_AMT,'#,###') AS NCC_NAME, '' AS NCC_ADDR,RP.ID AS REF_ID,
310
		  RPN.STATUS AS STATUS_NEXT,
311
		  RP.STATUS AS STATUS_CURR,
312
		'' AS STATUS_JOB,A.REQ_PARENT_ID,A.DEP_CREATE,APR.REQ_CODE AS REQ_PARENT_CODE,CDC.DEP_NAME AS DEP_CREATE_NAME,CDC.DEP_CODE AS DEP_CREATE_CODE,
313
		A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME, '' AS IS_TRANSFER,
314
		--NGUOI XU LY
315
		--dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'PYC-DVKD',0) AS NGUOIXULY,
316
		CASE WHEN A.PROCESS_ID ='SIGN' THEN TL.TLFullName ELSE NXL.NGUOIXULY END AS NGUOIXULY,
317
		PLRD.TOTAL_AMT AS GIATRI_TO_TRINH,
318
		------------BAODNQ 11/8/2022 : Lấy đơn vị yêu cầu-------------
319
		--------------Nếu ĐV tạo ở HS, lấy thêm phòng ban, ngược lại chỉ lấy ĐV-------
320
		CASE
321
			WHEN (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_CREATE) = 'HS'
322
				THEN CDC.DEP_NAME + ' - ' + DVC.BRANCH_NAME
323
			ELSE DVC.BRANCH_NAME
324
		END AS BRANCH_DEP_REQUEST
325

    
326
		-- NXL.NGUOIXULY AS NGUOIXULY
327
		-- SELECT END
328
		FROM TR_REQUEST_DOC A
329
		LEFT JOIN dbo.PL_REQUEST_DOC PLRD ON A.PL_REQ_ID=PLRD.REQ_ID
330
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
331
		LEFT JOIN CM_BRANCH G ON A.BRANCH_DO=G.BRANCH_ID
332
		LEFT JOIN dbo.TL_USER U ON U.TLNANME =A.USER_REQUEST
333
		LEFT JOIN dbo.TL_USER UMS ON UMS.TLNANME =A.USER_DVMS
334
		LEFT JOIN dbo.CM_BRANCH DVMS ON DVMS.BRANCH_ID=A.BRANCH_DVMS
335
		LEFT JOIN dbo.CM_BRANCH DVC ON DVC.BRANCH_ID=A.BRANCH_CREATE
336
		LEFT JOIN dbo.CM_DEPARTMENT CDC ON CDC.DEP_ID=A.DEP_CREATE
337
		LEFT JOIN dbo.TR_REQUEST_DOC APR ON APR.REQ_ID=A.REQ_PARENT_ID
338
		LEFT JOIN dbo.TL_USER UM ON UM.TLNANME=A.MAKER_ID
339
		LEFT JOIN 
340
		(
341
			SELECT REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES FROM
342
			dbo.PL_REQUEST_PROCESS
343
			GROUP BY REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES
344
		) RPN ON RPN.REQ_ID=A.REQ_ID AND ([RPN].[STATUS]='C' OR [RPN].[STATUS]='R')
345
		LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID=(SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID 
346
		AND PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID ORDER BY APPROVE_DT DESC)	
347
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
348
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
349
		LEFT JOIN 
350
		(
351
			SELECT DMMS_ID,DEP_NAME+'-'+BRANCH_NAME AS DMMS_NAME FROM
352
			dbo.CM_DMMS 
353
			LEFT JOIN dbo.CM_BRANCH ON CM_BRANCH.BRANCH_ID=CM_DMMS.BRANCH_ID
354
			LEFT JOIN dbo.CM_DEPARTMENT ON CM_DEPARTMENT.DEP_ID = CM_DMMS.DEP_ID
355
			UNION ALL
356
			SELECT DVDM_ID AS DMMS_ID ,DVDM_NAME AS DMMS_NAME
357
			FROM dbo.CM_DVDM
358
		)CMS ON CMS.DMMS_ID=A.DMMS_ID
359
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
360
		LEFT JOIN
361
		(		
362
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
363
		FROM @lstREQUEST RE
364
		WHERE RE.REQ_ID=Results.REQ_ID
365
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
366
		STUFF((select ', ' + RE.TLNAME  
367
		FROM @lstREQUEST RE
368
		WHERE RE.REQ_ID=Results.REQ_ID
369
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
370
		FROM @lstREQUEST Results
371
		GROUP BY REQ_ID
372
		) NXL ON NXL.REQ_ID=A.REQ_ID
373

    
374
		WHERE 1 = 1
375
		AND (A.IS_KT = @p_IS_KT OR @p_IS_KT IS NULL)
376
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
377
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
378
		AND (A.REQ_REASON LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
379
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
380
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
381
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
382
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
383
		AND (CAST(A.CREATE_DT AS DATE)=CONVERT(DATETIME, @p_CREATE_DT, 103) OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')		
384
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
385
		AND (CAST(A.APPROVE_DT AS DATE) = CONVERT(DATETIME, @p_APPROVE_DT, 103) OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
386
		AND (
387
			A.PROCESS_ID LIKE '%' + @p_PROCESS_STATUS + '%'
388
			OR @p_PROCESS_STATUS IS NULL OR @p_PROCESS_STATUS=''
389
		)	
390
		 --AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM  CM_BRANCH_GETCHILDID(@p_BRANCH_ID)))
391
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CONVERT(DATETIME, @p_FR_DATE, 103))
392
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CONVERT(DATETIME, @p_TO_DATE, 103))
393
		--AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = ''
394
		--OR A.DEP_CREATE LIKE '%' + @p_BRANCH_CREATE + '%'
395
		--)
396
		AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
397
		--------------------------BAODNQ 21/10/2022 SEARCH THEO DEP_CREATE---------------------------
398
		AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
399
		AND (PLRD.REQ_CODE LIKE '%' + @p_PL_REQ_CODE + '%' OR @p_PL_REQ_CODE IS NULL OR @p_PL_REQ_CODE = '')
400
		AND (A.PL_REQ_ID LIKE '%' + @p_PL_REQ_ID + '%' OR @p_PL_REQ_ID IS NULL OR @p_PL_REQ_ID = '')
401
		AND A.RECORD_STATUS = '1'
402
		AND	(A.MAKER_ID=@p_TLNAME_USER OR 		
403
				(EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS PLRP WHERE A.REQ_ID=PLRP.REQ_ID AND PLRP.PROCESS_ID='APPNEW' 
404
					AND EXISTS(SELECT * FROM @AUTHOR AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND AUTH.BRANCH_ID=PLRP.BRANCH_ID 
405
					AND (AUTH.DEP_ID=PLRP.DEP_ID OR AUTH.BRANCH_TYPE <>'HS'))  )) 		
406
		OR (A.SIGN_USER IS NOT NULL AND A.SIGN_USER <>'' AND A.SIGN_USER =@p_TLNAME_USER AND A.AUTH_STATUS <>'E')
407
		OR (EXISTS(SELECT * FROM PL_ROLE_DATA_CONFIG WHERE ROLE_TYPE ='TR_REQUEST_DOC_ALL' AND BRANCH_ID =@p_TLNAME_USER))
408
		)
409

    
410
		--AND (
411
		--	( @p_AUTH_STATUS='A' AND  A.PROCESS_ID='APPROVE') 
412
		--	OR( @p_AUTH_STATUS='U' AND A.PROCESS_ID <> 'APPROVE')
413
		--	or @p_AUTH_STATUS=A.AUTH_STATUS
414
		--	OR @p_AUTH_STATUS IS NULL 
415
		--	OR @p_AUTH_STATUS = ''
416
		--)
417
		--CuongLX
418
		AND (
419
			  (A.AUTH_STATUS=@p_AUTH_STATUS OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
420
			  OR (@p_AUTH_STATUS = 'W' AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS PL WHERE A.REQ_ID = PL.REQ_ID AND PL.PROCESS_ID = 'SIGN' AND PL.STATUS = 'C'))
421
			  OR (@p_AUTH_STATUS = 'G' AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS PL WHERE A.REQ_ID = PL.REQ_ID AND PL.PROCESS_ID = 'SIGN' AND PL.STATUS = 'P'))
422
		)
423
		AND(@p_YEAR IS NULL OR YEAR(A.REQ_DT)=@p_YEAR OR @p_YEAR = '' OR @p_YEAR IS NULL OR @p_YEAR = 0)	
424
		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
425
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
426
		--AND(
427
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'PYC-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
428
		--	OR
429
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'PYC-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
430
		--)
431

    
432
		ORDER BY A.CREATE_DT DESC
433
		-- PAGING END
434
		END
435
		ELSE IF(@p_TYPE='TFJOB')
436
		BEGIN
437
		-- PAGING BEGIN
438
		SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT, A.REQ_TYPE,A.IS_KT,
439
               A.REQ_REASON, A.REQ_CONTENT,A.PL_REQ_ID,A.TOTAL_AMT AS TOTAL_AMT, A.NOTES, A.RECORD_STATUS,A.MAKER_ID, A.CREATE_DT,
440
               A.AUTH_STATUS,A.CHECKER_ID,A.APPROVE_DT,A.BRANCH_DO, A.PROCESS_ID,A.BRANCH_CREATE, A.USER_REQUEST,U.TLFullName AS USER_REQUEST_NAME,
441
			   D.AUTH_STATUS_NAME,UDV.TLFullName AS CHECKER_NAME,UMS.TLFullName AS USER_DVMS_NAME,UM.TLFullName AS MAKER_NAME,
442
			   CMS.DMMS_NAME,A.DMMS_ID,
443
			   RP.NOTES AS PROCESS_STATUS,RP.APPROVE_DT AS PROCESS_APP_DT,UP.TLFullName AS PROCESS_CHECKER_NAME,
444
			   RP.ROLE_USER,
445
				CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt' 
446
				ELSE N'Chờ duyệt' END AS AUTH_STATUS_PROCESS_NAME,
447
				RPN.NOTES AS PROCESS_STATUS_NEXT
448
		,G.BRANCH_NAME AS BRANCH_DO_NAME,G.BRANCH_CODE AS BRANCH_DO_CODE,PLRD.REQ_CODE AS PL_REQ_CODE,
449
		DVMS.BRANCH_CODE AS BRANCH_CODE_DVMS,DVMS.BRANCH_NAME AS BRANCH_NAME_DVMS,DVC.BRANCH_CODE AS BRANCH_CREATE_CODE,
450
		CASE WHEN DVC.BRANCH_TYPE ='HS' THEN DVC.BRANCH_NAME ELSE DEP.DEP_NAME END AS BRANCH_CREATE_NAME,
451
		--DVC.BRANCH_NAME AS BRANCH_CREATE_NAME,
452
		PLRD.REQ_NAME AS PL_REQ_NAME,ISNULL(RPC.TYPE_JOB,'KS') AS TYPE_JOB,RPC.TLNAME AS USER_JOB,TU.TLFullName AS USER_JOB_NAME,TFM.TLFullName AS TRANSFER_MAKER,RPC.TRANFER_DT ,RPC.MAKER_ID AS TRANSFER_MAKER_ID,
453
			 '' AS TYPE_JOB_XL,'' AS USER_JOB_XL,PLRD.REQ_CODE AS SO_TT_CT, PLRD.REQ_DT AS NGAY_NHAN_TT, PLRD.EFFEC_DT NGAY_DUYET_TT, '' AS NCC_CODE, FORMAT(PLRD.TOTAL_AMT,'#,###') AS NCC_NAME, '' AS NCC_ADDR,PLRP.ID AS REF_ID,
454
		  RPN.STATUS AS STATUS_NEXT,
455
		  PLRP.STATUS AS STATUS_CURR,
456
		'' AS STATUS_JOB,A.REQ_PARENT_ID,A.DEP_CREATE,APR.REQ_CODE AS REQ_PARENT_CODE,
457
		--CDC.DEP_NAME AS DEP_CREATE_NAME,
458
		CASE WHEN DVC.BRANCH_TYPE ='HS' THEN CDC.DEP_NAME ELSE DVC.BRANCH_NAME END AS DEP_CREATE_NAME,
459
		CDC.DEP_CODE AS DEP_CREATE_CODE,A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME, '' AS IS_TRANSFER,
460
		
461
		--NGUOI XU LY
462
		--dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'PYC-DVKD',0) AS NGUOIXULY
463
		 NXL.NGUOIXULY AS NGUOIXULY,
464
		 -------BAODNQ 21/4/2022: Lấy giá trị tờ trình------
465
		 PLRD.TOTAL_AMT AS GIATRI_TO_TRINH,
466
		 -------------END BAODNQ---------------------
467
		 ------------BAODNQ 11/8/2022 : Lấy đơn vị yêu cầu-------------
468
		--------------Nếu ĐV tạo ở HS, lấy thêm phòng ban, ngược lại chỉ lấy ĐV-------
469
		CASE
470
			WHEN (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_CREATE) = 'HS'
471
				THEN CDC.DEP_NAME + ' - ' + DVC.BRANCH_NAME
472
			ELSE DVC.BRANCH_NAME
473
		END AS BRANCH_DEP_REQUEST
474

    
475
		-- SELECT END
476
		FROM TR_REQUEST_DOC A
477
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS = 'C' AND PLRP.IS_HAS_CHILD=1 		
478
		LEFT JOIN dbo.PL_REQUEST_DOC PLRD ON A.PL_REQ_ID=PLRD.REQ_ID
479
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
480
		LEFT JOIN CM_BRANCH G ON A.BRANCH_DO=G.BRANCH_ID
481
		LEFT JOIN dbo.TL_USER U ON U.TLNANME =A.USER_REQUEST
482
		LEFT JOIN dbo.TL_USER UMS ON UMS.TLNANME =A.USER_DVMS
483
		LEFT JOIN dbo.CM_BRANCH DVMS ON DVMS.BRANCH_ID=A.BRANCH_DVMS
484
		LEFT JOIN dbo.CM_BRANCH DVC ON DVC.BRANCH_ID=A.BRANCH_CREATE
485
		LEFT JOIN dbo.CM_DEPARTMENT CDC ON CDC.DEP_ID=A.DEP_CREATE
486
		LEFT JOIN dbo.TR_REQUEST_DOC APR ON APR.REQ_ID=A.REQ_PARENT_ID
487
		LEFT JOIN dbo.TL_USER UM ON UM.TLNANME=A.MAKER_ID
488
		LEFT JOIN CM_DEPARTMENT DEP ON UM.SECUR_CODE = DEP.DEP_ID
489
		LEFT JOIN 
490
		(
491
			SELECT REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES FROM
492
			dbo.PL_REQUEST_PROCESS
493
			GROUP BY REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES
494
		) RPN ON RPN.REQ_ID=A.REQ_ID AND ( [RPN].[STATUS]='C' OR [RPN].[STATUS]='R')
495
		LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID=(SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID AND PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID ORDER BY APPROVE_DT DESC)	
496
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
497
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
498
		LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD RPC ON RPC.REQ_ID=A.REQ_ID AND RPC.PROCESS_ID=PLRP.ID AND (RPC.STATUS_JOB='C' OR RPC.STATUS_JOB='R')
499
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
500
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
501
		LEFT JOIN 
502
		(
503
			SELECT DMMS_ID,DEP_NAME+'-'+BRANCH_NAME AS DMMS_NAME FROM
504
			dbo.CM_DMMS 
505
			LEFT JOIN dbo.CM_BRANCH ON CM_BRANCH.BRANCH_ID=CM_DMMS.BRANCH_ID
506
			LEFT JOIN dbo.CM_DEPARTMENT ON CM_DEPARTMENT.DEP_ID = CM_DMMS.DEP_ID
507
			UNION ALL
508
			SELECT DVDM_ID AS DMMS_ID ,DVDM_NAME AS DMMS_NAME
509
			FROM dbo.CM_DVDM
510
		)CMS ON CMS.DMMS_ID=A.DMMS_ID
511

    
512
		
513

    
514
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
515
		LEFT JOIN
516
		(		
517
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
518
		FROM @lstREQUEST RE
519
		WHERE RE.REQ_ID=Results.REQ_ID
520
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
521
		STUFF((select ', ' + RE.TLNAME  
522
		FROM @lstREQUEST RE
523
		WHERE RE.REQ_ID=Results.REQ_ID
524
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
525
		FROM @lstREQUEST Results
526
		GROUP BY REQ_ID
527
		) NXL ON NXL.REQ_ID=A.REQ_ID
528
		WHERE 1 = 1
529
		AND (A.IS_KT = @p_IS_KT OR @p_IS_KT IS NULL)
530
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
531
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
532
		AND (A.REQ_REASON LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
533
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
534
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
535
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
536
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
537
		AND (CAST(A.CREATE_DT AS DATE)=CONVERT(DATETIME, @p_CREATE_DT, 103) OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
538
		
539
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
540
		AND (CAST(A.APPROVE_DT AS DATE) = CONVERT(DATETIME, @p_APPROVE_DT, 103) OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
541
		AND (A.PROCESS_ID LIKE '%' + @p_PROCESS_STATUS + '%' OR @p_PROCESS_STATUS IS NULL OR @p_PROCESS_STATUS='')	
542
		 --AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM  CM_BRANCH_GETCHILDID(@p_BRANCH_ID)))
543
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CONVERT(DATETIME, @p_FR_DATE, 103))
544
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CONVERT(DATETIME, @p_TO_DATE, 103))
545
		--AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = ''
546
		--OR A.DEP_CREATE LIKE '%' + @p_BRANCH_CREATE + '%'
547
		--)
548
		AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
549
		--------------------------BAODNQ 21/10/2022 SEARCH THEO DEP_CREATE---------------------------
550
		AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
551
		AND (PLRD.REQ_CODE LIKE '%' + @p_PL_REQ_CODE + '%' OR @p_PL_REQ_CODE IS NULL OR @p_PL_REQ_CODE = '')
552
		AND (A.PL_REQ_ID LIKE '%' + @p_PL_REQ_ID + '%' OR @p_PL_REQ_ID IS NULL OR @p_PL_REQ_ID = '')
553
		AND A.RECORD_STATUS = '1'
554
		AND (	
555
			   EXISTS(SELECT  AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND PLRP.DVDM_ID=AUTH.DVDM_ID)
556
			OR EXISTS(SELECT  AUTH.ROLE_ID FROM @AUTHOR_DMMS AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND A.DMMS_ID=AUTH.DMMS_ID AND A.PROCESS_ID='DMMS')
557
			OR EXISTS(SELECT  AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND A.DMMS_ID=AUTH.DVDM_ID AND A.PROCESS_ID='DMMS')
558
			OR EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID AND  TLNAME=@p_TLNAME_USER AND TYPE_JOB='KS')
559
		)
560

    
561
		--AND ( ( ( (PLRP.ROLE_USER=@p_ROLE_USER OR PLRP.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@p_ROLE_USER)) AND ((PLRP.DVDM_ID  IN (SELECT DVDM_ID FROM @COST_ID) ) 
562
		--OR ((A.DMMS_ID IN (SELECT DMMS_ID FROM dbo.CM_DMMS WHERE BRANCH_ID =@p_BRANCH_LOGIN AND (DEP_ID=@DEP_ID OR @BRANCH_TYPE <>'HS')) 
563
		--OR A.DMMS_ID IN (SELECT DVDM_ID FROM @COST_ID)) AND A.PROCESS_ID='DMMS'))))
564
		--OR (EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID AND  TLNAME=@p_TLNAME_USER AND TYPE_JOB='KS') ))
565
		
566
		AND (( @p_AUTH_STATUS='A' AND  A.PROCESS_ID='APPROVE') OR( @p_AUTH_STATUS='U' AND A.PROCESS_ID <> 'APPROVE') OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
567
		AND(@p_YEAR IS NULL OR YEAR(A.REQ_DT)=@p_YEAR OR @p_YEAR = '' OR @p_YEAR IS NULL OR @p_YEAR = 0)
568
		AND (RPC.TYPE_JOB <>'TP' OR RPC.TYPE_JOB IS NULL OR RPC.TYPE_JOB ='')
569
		AND (
570
			--((RPC.REQ_ID IS NOT NULL OR RPC.REQ_ID <> '') AND @p_IS_TRANSFER = 'Y')
571
			--OR ((RPC.REQ_ID IS NULL OR RPC.REQ_ID = '') AND @p_IS_TRANSFER = 'N')
572
			--OR @p_IS_TRANSFER = '' OR @p_IS_TRANSFER IS NULL
573
			------------BAODNQ 18/5/2022: SỬA TÌM KIẾM THEO TÌNH TRẠNG ĐIỀU PHỐI--------------
574
			((RPC.REQ_ID IS NOT NULL AND RPC.REQ_ID <> '' AND RPC.MAKER_ID =@p_TLNAME_USER) AND @p_IS_TRANSFER = '1') --- LUCTV 22-10-22 DIEU CHINH NGUYEN TAC CHUA DIEU PHOI / DA DIEU PHOI
575
			OR ((RPC.REQ_ID IS NULL OR RPC.REQ_ID = '' OR (RPC.REQ_ID IS NOT NULL AND RPC.REQ_ID <> '' AND RPC.MAKER_ID  <> @p_TLNAME_USER)) AND @p_IS_TRANSFER = '0')
576
			OR @p_IS_TRANSFER = '' OR @p_IS_TRANSFER IS NULL
577
			---------------------------END BAODNQ---------------------------------------------
578
			)
579
		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
580
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
581
		--AND(
582
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'PYC-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
583
		--	OR
584
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'PYC-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
585
		--)
586
		--LUCTV 10-03-2021 Ơ MAN HINH DIEU PHOI PYCMS NEU PHIEU DA DUOC NHAN VIEN XU LY GUI PHE DUYET THI KHONG CAN HIEN THI
587
		AND ((NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =A.REQ_ID AND TYPE_JOB ='XL'  AND STATUS_JOB ='P' AND PROCESS_ID IN (SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =A.REQ_ID))) OR A.PROCESS_ID ='DVCM')
588
		ORDER BY A.CREATE_DT DESC
589
		-- PAGING END
590
		END
591
		ELSE IF(@p_TYPE='DMMS')
592
		BEGIN
593
		-- PAGING BEGIN
594
		SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT, A.REQ_TYPE,A.IS_KT,
595
               A.REQ_REASON, A.REQ_CONTENT,A.PL_REQ_ID,A.TOTAL_AMT AS TOTAL_AMT, A.NOTES, A.RECORD_STATUS,A.MAKER_ID, A.CREATE_DT,
596
               A.AUTH_STATUS,A.CHECKER_ID,A.APPROVE_DT,A.BRANCH_DO, A.PROCESS_ID,A.BRANCH_CREATE, A.USER_REQUEST,U.TLFullName AS USER_REQUEST_NAME,
597
			   D.AUTH_STATUS_NAME,UDV.TLFullName AS CHECKER_NAME,UMS.TLFullName AS USER_DVMS_NAME,UM.TLFullName AS MAKER_NAME,
598
			   CMS.DMMS_NAME,A.DMMS_ID,
599
			   RP.NOTES AS PROCESS_STATUS,RP.APPROVE_DT AS PROCESS_APP_DT,UP.TLFullName AS PROCESS_CHECKER_NAME,
600
			   RP.ROLE_USER,
601
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt' 
602
				ELSE N'Chờ duyệt' END AS AUTH_STATUS_PROCESS_NAME,
603
				RPN.NOTES AS PROCESS_STATUS_NEXT
604
		,G.BRANCH_NAME AS BRANCH_DO_NAME,G.BRANCH_CODE AS BRANCH_DO_CODE,PLRD.REQ_CODE AS PL_REQ_CODE,
605
		DVMS.BRANCH_CODE AS BRANCH_CODE_DVMS,DVMS.BRANCH_NAME AS BRANCH_NAME_DVMS,DVC.BRANCH_CODE AS BRANCH_CREATE_CODE,
606
		CASE WHEN DVC.BRANCH_TYPE ='HS' THEN DVC.BRANCH_NAME ELSE DEP.DEP_NAME END AS BRANCH_CREATE_NAME,
607
		--DVC.BRANCH_NAME AS BRANCH_CREATE_NAME,
608
		PLRD.REQ_NAME AS PL_REQ_NAME,RPC.TYPE_JOB,RPC.TLNAME AS USER_JOB,TU.TLFullName AS USER_JOB_NAME,TFM.TLFullName AS TRANSFER_MAKER,RPC.TRANFER_DT ,RPC.MAKER_ID AS TRANSFER_MAKER_ID,
609
			 '' AS TYPE_JOB_XL,'' AS USER_JOB_XL,PLRD.REQ_CODE AS SO_TT_CT, PLRD.REQ_DT AS NGAY_NHAN_TT, PLRD.EFFEC_DT NGAY_DUYET_TT, '' AS NCC_CODE, FORMAT(PLRD.TOTAL_AMT,'#,###') AS NCC_NAME, '' AS NCC_ADDR,PLRP.ID AS REF_ID,
610
		   RPN.STATUS AS STATUS_NEXT,
611
		  PLRP.STATUS AS STATUS_CURR,
612
		RPC.STATUS_JOB AS STATUS_JOB,A.REQ_PARENT_ID,A.DEP_CREATE,APR.REQ_CODE AS REQ_PARENT_CODE,
613
		CASE WHEN DVC.BRANCH_TYPE ='HS' THEN CDC.DEP_NAME ELSE DVC.BRANCH_NAME END AS DEP_CREATE_NAME,
614
		CDC.DEP_CODE AS DEP_CREATE_CODE,A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME, '' AS IS_TRANSFER,
615
		
616
		--NGUOI XU LY
617
		--dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'PYC-DVKD',0) AS NGUOIXULY
618
		NXL.NGUOIXULY AS NGUOIXULY,PLRD.TOTAL_AMT AS GIATRI_TO_TRINH,
619
		------------BAODNQ 11/8/2022 : Lấy đơn vị yêu cầu-------------
620
		--------------Nếu ĐV tạo ở HS, lấy thêm phòng ban, ngược lại chỉ lấy ĐV-------
621
		CASE
622
			WHEN (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_CREATE) = 'HS'
623
				THEN CDC.DEP_NAME + ' - ' + DVC.BRANCH_NAME
624
			ELSE DVC.BRANCH_NAME
625
		END AS BRANCH_DEP_REQUEST
626
		
627

    
628
		-- SELECT END
629
		FROM TR_REQUEST_DOC A 	
630
		LEFT JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND	PLRP.STATUS <>'U' AND PLRP.PROCESS_ID = 'DMMS'
631
		LEFT JOIN dbo.PL_REQUEST_DOC PLRD ON A.PL_REQ_ID=PLRD.REQ_ID 
632
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
633
		LEFT JOIN CM_BRANCH G ON A.BRANCH_DO=G.BRANCH_ID
634
		LEFT JOIN dbo.TL_USER U ON U.TLNANME =A.USER_REQUEST
635
		LEFT JOIN dbo.TL_USER UMS ON UMS.TLNANME =A.USER_DVMS
636
		LEFT JOIN dbo.CM_BRANCH DVMS ON DVMS.BRANCH_ID=A.BRANCH_DVMS
637
		LEFT JOIN dbo.CM_BRANCH DVC ON DVC.BRANCH_ID=A.BRANCH_CREATE
638
		LEFT JOIN dbo.CM_DEPARTMENT CDC ON CDC.DEP_ID=A.DEP_CREATE
639
		LEFT JOIN dbo.TR_REQUEST_DOC APR ON APR.REQ_ID=A.REQ_PARENT_ID
640
		LEFT JOIN dbo.TL_USER UM ON UM.TLNANME=A.MAKER_ID
641
		LEFT JOIN CM_DEPARTMENT DEP ON UM.SECUR_CODE = DEP.DEP_ID
642
		LEFT JOIN 
643
		(
644
			SELECT REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES FROM
645
			dbo.PL_REQUEST_PROCESS
646
			GROUP BY REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES
647
		) RPN ON RPN.REQ_ID=A.REQ_ID AND( [RPN].[STATUS]='C' OR [RPN].[STATUS]='R')
648
		LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID=(SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID AND PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID ORDER BY APPROVE_DT DESC)	
649
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
650
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
651
		LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD RPC ON RPC.REQ_ID=A.REQ_ID AND RPC.PROCESS_ID=PLRP.ID AND (RPC.STATUS_JOB='C' OR RPC.STATUS_JOB='R') AND A.PROCESS_ID <>'PDHT'
652
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
653
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
654
		LEFT JOIN 
655
		(
656
			SELECT DMMS_ID,DEP_NAME+'-'+BRANCH_NAME AS DMMS_NAME FROM
657
			dbo.CM_DMMS 
658
			LEFT JOIN dbo.CM_BRANCH ON CM_BRANCH.BRANCH_ID=CM_DMMS.BRANCH_ID
659
			LEFT JOIN dbo.CM_DEPARTMENT ON CM_DEPARTMENT.DEP_ID = CM_DMMS.DEP_ID
660
			UNION ALL
661
			SELECT DVDM_ID AS DMMS_ID ,DVDM_NAME AS DMMS_NAME
662
			FROM dbo.CM_DVDM
663
		)CMS ON CMS.DMMS_ID=A.DMMS_ID
664
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
665
		LEFT JOIN
666
		(		
667
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
668
		FROM @lstREQUEST RE
669
		WHERE 
670
		RE.REQ_ID=Results.REQ_ID
671
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
672
		STUFF((select ', ' + RE.TLNAME  
673
		FROM @lstREQUEST RE
674
		WHERE RE.REQ_ID=Results.REQ_ID
675
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
676
		FROM @lstREQUEST Results
677
		GROUP BY REQ_ID
678
		) NXL ON NXL.REQ_ID=A.REQ_ID
679
		
680

    
681
		WHERE 1 = 1
682
		AND (A.IS_KT = @p_IS_KT OR @p_IS_KT IS NULL)
683
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
684
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
685
		AND (A.REQ_REASON LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
686
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
687
		--AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
688
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
689
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
690
		AND (CAST(A.CREATE_DT AS DATE)=CONVERT(DATETIME, @p_CREATE_DT, 103) OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
691
		
692
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
693
		AND (CAST(A.APPROVE_DT AS DATE) = CONVERT(DATETIME, @p_APPROVE_DT, 103) OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
694
		
695
		AND (@p_PROCESS_STATUS IS NULL OR @p_PROCESS_STATUS='' 
696
		OR (RPC.TYPE_JOB LIKE '%' + @p_PROCESS_STATUS + '%'  AND (@p_PROCESS_STATUS='KS' OR @p_PROCESS_STATUS='TP') 
697
				AND EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD Temp   WHERE Temp.REQ_ID=A.REQ_ID AND Temp.STATUS_JOB='P' AND Temp.TYPE_JOB='XL')
698
		OR 	 (RPC.TYPE_JOB LIKE '%' + @p_PROCESS_STATUS + '%'  AND @p_PROCESS_STATUS='XL') 	
699
		OR A.USER_DVMS =@p_TLNAME_USER
700
		)
701
		)
702

    
703
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CONVERT(DATETIME, @p_FR_DATE, 103))
704
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CONVERT(DATETIME, @p_TO_DATE, 103))
705
		--AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = ''
706
		--OR A.DEP_CREATE LIKE '%' + @p_BRANCH_CREATE + '%'
707
		--)
708
		AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
709
		--------------------------BAODNQ 21/10/2022 SEARCH THEO DEP_CREATE---------------------------
710
		AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
711
		AND (PLRD.REQ_CODE LIKE '%' + @p_PL_REQ_CODE + '%' OR @p_PL_REQ_CODE IS NULL OR @p_PL_REQ_CODE = '')
712
		AND (A.PL_REQ_ID LIKE '%' + @p_PL_REQ_ID + '%' OR @p_PL_REQ_ID IS NULL OR @p_PL_REQ_ID = '')
713
		AND A.RECORD_STATUS = '1'
714
		
715
		AND (				
716
			   EXISTS(SELECT  AUTH.ROLE_ID FROM @AUTHOR_DMMS AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND A.DMMS_ID=AUTH.DMMS_ID AND A.PROCESS_ID='DMMS')
717
			OR EXISTS(SELECT  AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND A.DMMS_ID=AUTH.DVDM_ID AND A.PROCESS_ID='DMMS')
718
			OR EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE TLNAME=@p_TLNAME_USER AND PROCESS_ID=PLRP.ID AND PLRP.PROCESS_ID='DMMS')
719
			OR(A.USER_DVMS =@p_TLNAME_USER)
720
		)
721
		AND (( @p_AUTH_STATUS='A' AND  A.PROCESS_ID='APPROVE') OR( @p_AUTH_STATUS='U' AND A.PROCESS_ID <> 'APPROVE') OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
722
		AND(@p_YEAR IS NULL OR YEAR(A.REQ_DT)=@p_YEAR OR @p_YEAR = '' OR @p_YEAR IS NULL OR @p_YEAR = 0)
723
	
724
		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
725
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
726
		-- LUCTV: 10-03-2021 BO SUNG DIEU KIEN NEU CHUA DIEU PHOI THI KHONG TIM THAY O MAN HINH DMMS
727
		--AND ((EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =A.REQ_ID AND TLNAME = @p_TLNAME_USER AND PROCESS_ID IN (SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =A.REQ_ID)) OR LEN(A.REQ_CODE) >15))
728
		----------BAODNQ 17/10/2022 : Chỉ tìm thấy phiếu ở màn hình ĐMMS khi đã có điều phối cho NVXL--------------
729
		AND(EXISTS(
730
			SELECT * FROM PL_REQUEST_PROCESS_CHILD 
731
			WHERE REQ_ID = A.REQ_ID 
732
			AND PROCESS_ID = (SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_ID AND PROCESS_ID = 'DMMS')
733
			AND TYPE_JOB = 'XL'		
734
			)
735
		)
736
		-------------------------------------END BAODNQ-----------------------------------
737
		ORDER BY A.CREATE_DT DESC
738
		-- PAGING END
739
		END
740

    
741
		ELSE IF(@p_TYPE='PDYC')
742
		BEGIN
743
		-- PAGING BEGIN
744
		SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT, A.REQ_TYPE,A.IS_KT,
745
               A.REQ_REASON, A.REQ_CONTENT,A.PL_REQ_ID,A.TOTAL_AMT AS TOTAL_AMT, A.NOTES, A.RECORD_STATUS,A.MAKER_ID, A.CREATE_DT,
746
               A.AUTH_STATUS,A.CHECKER_ID,A.APPROVE_DT,A.BRANCH_DO, A.PROCESS_ID,A.BRANCH_CREATE, A.USER_REQUEST,U.TLFullName AS USER_REQUEST_NAME,
747
			   D.AUTH_STATUS_NAME,UDV.TLFullName AS CHECKER_NAME,UMS.TLFullName AS USER_DVMS_NAME,UM.TLFullName AS MAKER_NAME,
748
			   CMS.DMMS_NAME,A.DMMS_ID,
749
			   RP.NOTES AS PROCESS_STATUS,RP.APPROVE_DT AS PROCESS_APP_DT,UP.TLFullName AS PROCESS_CHECKER_NAME,
750
			   PLRP.ROLE_USER,
751
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt' 
752
				ELSE N'Chờ duyệt' END AS AUTH_STATUS_PROCESS_NAME,
753
				RPN.NOTES AS PROCESS_STATUS_NEXT
754
		,G.BRANCH_NAME AS BRANCH_DO_NAME,G.BRANCH_CODE AS BRANCH_DO_CODE,PLRD.REQ_CODE AS PL_REQ_CODE,
755
		DVMS.BRANCH_CODE AS BRANCH_CODE_DVMS,DVMS.BRANCH_NAME AS BRANCH_NAME_DVMS,DVC.BRANCH_CODE AS BRANCH_CREATE_CODE,
756
		DVC.BRANCH_NAME AS BRANCH_CREATE_NAME,
757
		PLRD.REQ_NAME AS PL_REQ_NAME,RPC.TYPE_JOB,RPC.TLNAME AS USER_JOB,TU.TLFullName AS USER_JOB_NAME,TFM.TLFullName AS TRANSFER_MAKER,RPC.TRANFER_DT ,RPC.MAKER_ID AS TRANSFER_MAKER_ID,
758
			 '' AS TYPE_JOB_XL,'' AS USER_JOB_XL,PLRD.REQ_CODE AS SO_TT_CT, PLRD.REQ_DT AS NGAY_NHAN_TT, PLRD.EFFEC_DT NGAY_DUYET_TT, '' AS NCC_CODE, '' NCC_NAME, '' AS NCC_ADDR,PLRP.ID AS REF_ID,
759
		  RPN.STATUS AS STATUS_NEXT,
760
		  PLRP.STATUS AS STATUS_CURR,
761
		RPC.STATUS_JOB AS STATUS_JOB,A.REQ_PARENT_ID,A.DEP_CREATE,APR.REQ_CODE AS REQ_PARENT_CODE,CDC.DEP_NAME AS DEP_CREATE_NAME,CDC.DEP_CODE AS DEP_CREATE_CODE,
762
		A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME, '' AS IS_TRANSFER,
763

    
764
		--NGUOI XU LY
765
		--dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'PYC-DVKD',0) AS NGUOIXULY
766
		NXL.NGUOIXULY AS NGUOIXULY,
767
		------------BAODNQ 11/8/2022 : Lấy đơn vị yêu cầu-------------
768
		--------------Nếu ĐV tạo ở HS, lấy thêm phòng ban, ngược lại chỉ lấy ĐV-------
769
		CASE
770
			WHEN (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_CREATE) = 'HS'
771
				THEN CDC.DEP_NAME + ' - ' + DVC.BRANCH_NAME
772
			ELSE DVC.BRANCH_NAME
773
		END AS BRANCH_DEP_REQUEST
774

    
775
		-- SELECT END
776
		FROM TR_REQUEST_DOC A 	
777
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS<>'U'		
778
		LEFT JOIN dbo.PL_REQUEST_DOC PLRD ON A.PL_REQ_ID=PLRD.REQ_ID
779
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
780
		LEFT JOIN CM_BRANCH G ON A.BRANCH_DO=G.BRANCH_ID
781
		LEFT JOIN dbo.TL_USER U ON U.TLNANME =A.USER_REQUEST
782
		LEFT JOIN dbo.TL_USER UMS ON UMS.TLNANME =A.USER_DVMS
783
		LEFT JOIN dbo.CM_BRANCH DVMS ON DVMS.BRANCH_ID=A.BRANCH_DVMS
784
		LEFT JOIN dbo.CM_BRANCH DVC ON DVC.BRANCH_ID=A.BRANCH_CREATE
785
		LEFT JOIN dbo.CM_DEPARTMENT CDC ON CDC.DEP_ID=A.DEP_CREATE
786
		LEFT JOIN dbo.TR_REQUEST_DOC APR ON APR.REQ_ID=A.REQ_PARENT_ID
787
		LEFT JOIN dbo.TL_USER UM ON UM.TLNANME=A.MAKER_ID
788
		LEFT JOIN 
789
		(
790
			SELECT REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES FROM
791
			dbo.PL_REQUEST_PROCESS
792
			GROUP BY REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES
793
		) RPN ON RPN.REQ_ID=A.REQ_ID AND ([RPN].[STATUS]='C' OR [RPN].[STATUS]='R')
794
		LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID=(SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID AND PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID ORDER BY APPROVE_DT DESC)	
795
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
796
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
797
		LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD RPC ON RPC.REQ_ID=A.REQ_ID AND RPC.PROCESS_ID=PLRP.REQ_ID AND  (RPC.STATUS_JOB='C' OR RPC.STATUS_JOB='R')
798
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
799
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
800
		LEFT JOIN 
801
		(
802
			SELECT DMMS_ID,DEP_NAME+'-'+BRANCH_NAME AS DMMS_NAME FROM
803
			dbo.CM_DMMS 
804
			LEFT JOIN dbo.CM_BRANCH ON CM_BRANCH.BRANCH_ID=CM_DMMS.BRANCH_ID
805
			LEFT JOIN dbo.CM_DEPARTMENT ON CM_DEPARTMENT.DEP_ID = CM_DMMS.DEP_ID
806
			UNION ALL
807
			SELECT DVDM_ID AS DMMS_ID ,DVDM_NAME AS DMMS_NAME
808
			FROM dbo.CM_DVDM
809
		)CMS ON CMS.DMMS_ID=A.DMMS_ID
810
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
811
		LEFT JOIN
812
		(		
813
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
814
		FROM @lstREQUEST RE
815
		WHERE RE.REQ_ID=Results.REQ_ID
816
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
817
		STUFF((select ', ' + RE.TLNAME  
818
		FROM @lstREQUEST RE
819
		WHERE RE.REQ_ID=Results.REQ_ID
820
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
821
		FROM @lstREQUEST Results
822
		GROUP BY REQ_ID
823
		) NXL ON NXL.REQ_ID=A.REQ_ID
824
		
825
		WHERE 1 = 1
826
		AND (A.IS_KT = @p_IS_KT OR @p_IS_KT IS NULL)
827
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
828
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
829
		AND (A.REQ_REASON LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
830
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
831
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
832
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
833
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
834
		AND (CAST(A.CREATE_DT AS DATE)=CONVERT(DATETIME, @p_CREATE_DT, 103) OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
835
		
836
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
837
		AND (CAST(A.APPROVE_DT AS DATE) = CONVERT(DATETIME, @p_APPROVE_DT, 103) OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
838
		AND (A.PROCESS_ID LIKE '%' + @p_PROCESS_STATUS + '%' OR @p_PROCESS_STATUS IS NULL OR @p_PROCESS_STATUS='')	
839
		 --AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM  CM_BRANCH_GETCHILDID(@p_BRANCH_ID)))
840
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CONVERT(DATETIME, @p_FR_DATE, 103))
841
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CONVERT(DATETIME, @p_TO_DATE, 103))
842
		--AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = ''
843
		--OR A.DEP_CREATE LIKE '%' + @p_BRANCH_CREATE + '%'
844
		--)
845
		AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
846
		--------------------------BAODNQ 21/10/2022 SEARCH THEO DEP_CREATE---------------------------
847
		AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
848
		AND (PLRD.REQ_CODE LIKE '%' + @p_PL_REQ_CODE + '%' OR @p_PL_REQ_CODE IS NULL OR @p_PL_REQ_CODE = '')
849
		AND (A.PL_REQ_ID LIKE '%' + @p_PL_REQ_ID + '%' OR @p_PL_REQ_ID IS NULL OR @p_PL_REQ_ID = '')
850
		AND A.RECORD_STATUS = '1'
851
		--AND (PLRP.ROLE_USER=@p_ROLE_USER OR PLRP.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@p_ROLE_USER)) AND  PLRP.PROCESS_ID <>'DMMS' AND PLRP.PROCESS_ID<>'APPNEW' AND (
852
		-- (PLRP.DVDM_ID IN (SELECT DVDM_ID FROM @COST_ID) OR PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL))
853

    
854
		 AND (EXISTS(
855
			SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH 
856
			WHERE AUTH.ROLE_ID=PLRP.ROLE_USER 
857
			AND (PLRP.DVDM_ID=AUTH.DVDM_ID OR PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) 
858
			AND  PLRP.PROCESS_ID <>'DMMS' AND PLRP.PROCESS_ID<>'APPNEW' AND PLRP.PROCESS_ID <> 'DVCM'
859
			-----------------------BAODNQ 15/8/2022 : Chờ duyệt chỉ hiện những phiếu đến mình duyệt--------
860
			AND ((@p_AUTH_STATUS = 'U' AND PLRP.STATUS = 'C')
861
					OR (@p_AUTH_STATUS <> 'U')
862
					OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = ''
863
			)
864
			)
865
		)
866

    
867
		AND (
868
			( @p_AUTH_STATUS='A' AND  A.PROCESS_ID='APPROVE')
869
			OR( @p_AUTH_STATUS='U' AND A.PROCESS_ID <> 'APPROVE') 
870
			OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
871
		AND(@p_YEAR IS NULL OR YEAR(A.REQ_DT)=@p_YEAR OR @p_YEAR = '' OR @p_YEAR IS NULL OR @p_YEAR = 0)
872

    
873
		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
874
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
875

    
876
		ORDER BY A.CREATE_DT DESC
877
		-- PAGING END
878
		END
879
		ELSE IF(@p_TYPE='DVCM')
880
		BEGIN
881
		-- PAGING BEGIN	
882
		SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT, A.REQ_TYPE,A.IS_KT,
883
               A.REQ_REASON, A.REQ_CONTENT,A.PL_REQ_ID,ISNULL(A.TOTAL_AMT,0.00) AS TOTAL_AMT, A.NOTES, A.RECORD_STATUS,A.MAKER_ID, A.CREATE_DT,
884
               A.AUTH_STATUS,A.CHECKER_ID,A.APPROVE_DT,A.BRANCH_DO, A.PROCESS_ID,A.BRANCH_CREATE, A.USER_REQUEST,U.TLFullName AS USER_REQUEST_NAME,
885
			   D.AUTH_STATUS_NAME,UDV.TLFullName AS CHECKER_NAME,UMS.TLFullName AS USER_DVMS_NAME,UM.TLFullName AS MAKER_NAME,
886
			   CMS.DMMS_NAME,A.DMMS_ID,
887
			   RP.NOTES AS PROCESS_STATUS,RP.APPROVE_DT AS PROCESS_APP_DT,UP.TLFullName AS PROCESS_CHECKER_NAME,
888
			   PLRP.ROLE_USER,
889
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt' 
890
				ELSE N'Chờ duyệt' END AS AUTH_STATUS_PROCESS_NAME,
891
				RPN.NOTES AS PROCESS_STATUS_NEXT
892
		,G.BRANCH_NAME AS BRANCH_DO_NAME,G.BRANCH_CODE AS BRANCH_DO_CODE,PLRD.REQ_CODE AS PL_REQ_CODE,
893
		DVMS.BRANCH_CODE AS BRANCH_CODE_DVMS,DVMS.BRANCH_NAME AS BRANCH_NAME_DVMS,DVC.BRANCH_CODE AS BRANCH_CREATE_CODE,
894
		DVC.BRANCH_NAME AS BRANCH_CREATE_NAME,
895
		PLRD.REQ_NAME AS PL_REQ_NAME,RPC.TYPE_JOB,RPC.TLNAME AS USER_JOB,TU.TLFullName AS USER_JOB_NAME,TFM.TLFullName AS TRANSFER_MAKER,RPC.TRANFER_DT ,RPC.MAKER_ID AS TRANSFER_MAKER_ID,
896
			 '' AS TYPE_JOB_XL,'' AS USER_JOB_XL,PLRD.REQ_CODE AS SO_TT_CT, PLRD.REQ_DT AS NGAY_NHAN_TT, PLRD.EFFEC_DT NGAY_DUYET_TT, '' AS NCC_CODE, '' NCC_NAME, '' AS NCC_ADDR,PLRP.ID AS REF_ID,
897
		  RPN.STATUS AS STATUS_NEXT,
898
		  PLRP.STATUS AS STATUS_CURR,
899
		RPC.STATUS_JOB AS STATUS_JOB,A.REQ_PARENT_ID,A.DEP_CREATE,APR.REQ_CODE AS REQ_PARENT_CODE,CDC.DEP_NAME AS DEP_CREATE_NAME,CDC.DEP_CODE AS DEP_CREATE_CODE,A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME, '' AS IS_TRANSFER,
900
		--NGUOI XU LY
901
		--dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'PYC-DVKD',0) AS NGUOIXULY
902
		NXL.NGUOIXULY AS NGUOIXULY,PLRD.TOTAL_AMT AS GIATRI_TO_TRINH,
903
		------------BAODNQ 11/8/2022 : Lấy đơn vị yêu cầu-------------
904
		--------------Nếu ĐV tạo ở HS, lấy thêm phòng ban, ngược lại chỉ lấy ĐV-------
905
		CASE
906
			WHEN (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_CREATE) = 'HS'
907
				THEN CDC.DEP_NAME + ' - ' + DVC.BRANCH_NAME
908
			ELSE DVC.BRANCH_NAME
909
		END AS BRANCH_DEP_REQUEST
910

    
911
		-- SELECT END
912
		FROM TR_REQUEST_DOC A 	
913
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS<>'U'	
914
		LEFT JOIN dbo.PL_REQUEST_DOC PLRD ON A.PL_REQ_ID=PLRD.REQ_ID
915
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
916
		LEFT JOIN CM_BRANCH G ON A.BRANCH_DO=G.BRANCH_ID
917
		LEFT JOIN dbo.TL_USER U ON U.TLNANME =A.USER_REQUEST
918
		LEFT JOIN dbo.TL_USER UMS ON UMS.TLNANME =A.USER_DVMS
919
		LEFT JOIN dbo.CM_BRANCH DVMS ON DVMS.BRANCH_ID=A.BRANCH_DVMS
920
		LEFT JOIN dbo.CM_BRANCH DVC ON DVC.BRANCH_ID=A.BRANCH_CREATE
921
		LEFT JOIN dbo.CM_DEPARTMENT CDC ON CDC.DEP_ID=A.DEP_CREATE
922
		LEFT JOIN dbo.TR_REQUEST_DOC APR ON APR.REQ_ID=A.REQ_PARENT_ID
923
		LEFT JOIN dbo.TL_USER UM ON UM.TLNANME=A.MAKER_ID
924
		LEFT JOIN 
925
		(
926
			SELECT REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES FROM
927
			dbo.PL_REQUEST_PROCESS
928
			GROUP BY REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES
929
		) RPN ON RPN.REQ_ID=A.REQ_ID AND ([RPN].[STATUS]='C' OR [RPN].[STATUS]='R')
930
		LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID=(SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID AND PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID ORDER BY APPROVE_DT DESC)	
931
		
932
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
933
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
934
		LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD RPC ON RPC.REQ_ID=A.REQ_ID AND RPC.PROCESS_ID=PLRP.ID AND (RPC.STATUS_JOB='C' OR RPC.STATUS_JOB='R')  AND A.PROCESS_ID <>'PDHT'
935
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
936
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
937
		LEFT JOIN 
938
		(
939
			SELECT DMMS_ID,DEP_NAME+'-'+BRANCH_NAME AS DMMS_NAME FROM
940
			dbo.CM_DMMS 
941
			LEFT JOIN dbo.CM_BRANCH ON CM_BRANCH.BRANCH_ID=CM_DMMS.BRANCH_ID
942
			LEFT JOIN dbo.CM_DEPARTMENT ON CM_DEPARTMENT.DEP_ID = CM_DMMS.DEP_ID
943
			UNION ALL
944
			SELECT DVDM_ID AS DMMS_ID ,DVDM_NAME AS DMMS_NAME
945
			FROM dbo.CM_DVDM
946
		)CMS ON CMS.DMMS_ID=A.DMMS_ID
947
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
948
		LEFT JOIN
949
		(		
950
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
951
		FROM @lstREQUEST RE
952
		WHERE RE.REQ_ID=Results.REQ_ID
953
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
954
		STUFF((select ', ' + RE.TLNAME  
955
		FROM @lstREQUEST RE
956
		WHERE RE.REQ_ID=Results.REQ_ID
957
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
958
		FROM @lstREQUEST Results
959
		GROUP BY REQ_ID
960
		) NXL ON NXL.REQ_ID=A.REQ_ID
961
		
962

    
963
		WHERE 1 = 1
964
		AND (A.IS_KT = @p_IS_KT OR @p_IS_KT IS NULL)
965
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
966
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
967
		AND (A.REQ_REASON LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
968
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
969
		--AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
970
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
971
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
972
		AND (CAST(A.CREATE_DT AS DATE)=CONVERT(DATETIME, @p_CREATE_DT, 103) OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
973
		
974
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
975
		AND (CAST(A.APPROVE_DT AS DATE) = CONVERT(DATETIME, @p_APPROVE_DT, 103) OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
976
		AND (A.PROCESS_ID LIKE '%' + @p_PROCESS_STATUS + '%' OR @p_PROCESS_STATUS IS NULL OR @p_PROCESS_STATUS='')	
977
		 --AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM  CM_BRANCH_GETCHILDID(@p_BRANCH_ID)))
978
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CONVERT(DATETIME, @p_FR_DATE, 103))
979
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CONVERT(DATETIME, @p_TO_DATE, 103))
980
		--AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = ''
981
		--OR A.DEP_CREATE LIKE '%' + @p_BRANCH_CREATE + '%'
982
		--)
983
		AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
984
		--------------------------BAODNQ 21/10/2022 SEARCH THEO DEP_CREATE---------------------------
985
		AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
986
		AND (PLRD.REQ_CODE LIKE '%' + @p_PL_REQ_CODE + '%' OR @p_PL_REQ_CODE IS NULL OR @p_PL_REQ_CODE = '')
987
		AND (A.PL_REQ_ID LIKE '%' + @p_PL_REQ_ID + '%' OR @p_PL_REQ_ID IS NULL OR @p_PL_REQ_ID = '')
988
		AND A.RECORD_STATUS = '1'
989
		
990
		AND (( @p_AUTH_STATUS='A' AND  A.PROCESS_ID='APPROVE') OR( @p_AUTH_STATUS='U' AND A.PROCESS_ID <> 'APPROVE') OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
991
		
992

    
993
		AND(((PLRP.ROLE_USER=@p_ROLE_USER OR PLRP.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@p_ROLE_USER)) AND ((PLRP.DVDM_ID  IN (SELECT DVDM_ID FROM @COST_ID) )))
994
		OR (EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE TLNAME=@p_TLNAME_USER  AND PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID AND PLRP.PROCESS_ID='DVCM') ))
995

    
996
		AND (	
997
			   EXISTS(SELECT  AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND PLRP.DVDM_ID=AUTH.DVDM_ID)
998
			
999
			OR EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE TLNAME=@p_TLNAME_USER  AND PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID AND PLRP.PROCESS_ID='DVCM')
1000
		)
1001

    
1002

    
1003

    
1004
		AND(@p_YEAR IS NULL OR YEAR(A.REQ_DT)=@p_YEAR OR @p_YEAR = '' OR @p_YEAR IS NULL OR @p_YEAR = 0)
1005

    
1006
		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
1007
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
1008
		ORDER BY A.CREATE_DT DESC
1009
		-- PAGING END
1010
		END
1011
		ELSE IF(@p_TYPE='PLDVCM')
1012
		BEGIN
1013
		-- PAGING BEGIN	
1014
		SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT, A.REQ_TYPE,A.IS_KT,
1015
               A.REQ_REASON, A.REQ_CONTENT,A.PL_REQ_ID,ISNULL(A.TOTAL_AMT,0.00) AS TOTAL_AMT, A.NOTES, A.RECORD_STATUS,A.MAKER_ID, A.CREATE_DT,
1016
               A.AUTH_STATUS,A.CHECKER_ID,A.APPROVE_DT,A.BRANCH_DO, A.PROCESS_ID,A.BRANCH_CREATE, A.USER_REQUEST,U.TLFullName AS USER_REQUEST_NAME,
1017
			   D.AUTH_STATUS_NAME,UDV.TLFullName AS CHECKER_NAME,UMS.TLFullName AS USER_DVMS_NAME,UM.TLFullName AS MAKER_NAME,
1018
			   CMS.DMMS_NAME,A.DMMS_ID,
1019
			   RP.NOTES AS PROCESS_STATUS,RP.APPROVE_DT AS PROCESS_APP_DT,UP.TLFullName AS PROCESS_CHECKER_NAME,
1020
			   --PLRP.ROLE_USER,
1021
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt' 
1022
				ELSE N'Chờ duyệt' END AS AUTH_STATUS_PROCESS_NAME,
1023
				RPN.NOTES AS PROCESS_STATUS_NEXT
1024
		,G.BRANCH_NAME AS BRANCH_DO_NAME,G.BRANCH_CODE AS BRANCH_DO_CODE,PLRD.REQ_CODE AS PL_REQ_CODE,
1025
		DVMS.BRANCH_CODE AS BRANCH_CODE_DVMS,DVMS.BRANCH_NAME AS BRANCH_NAME_DVMS,DVC.BRANCH_CODE AS BRANCH_CREATE_CODE,
1026
		DVC.BRANCH_NAME AS BRANCH_CREATE_NAME,
1027
		PLRD.REQ_NAME AS PL_REQ_NAME,
1028
		--RPC.TYPE_JOB,RPC.TLNAME AS USER_JOB,TU.TLFullName AS USER_JOB_NAME,TFM.TLFullName AS TRANSFER_MAKER,RPC.TRANFER_DT ,RPC.MAKER_ID AS TRANSFER_MAKER_ID,
1029
			 '' AS TYPE_JOB, '' AS USER_JOB, '' AS TYPE_JOB_XL,'' AS USER_JOB_XL,PLRD.REQ_CODE AS SO_TT_CT, PLRD.REQ_DT AS NGAY_NHAN_TT, PLRD.EFFEC_DT NGAY_DUYET_TT, '' AS NCC_CODE, '' NCC_NAME, '' AS NCC_ADDR,
1030
			 --PLRP.ID AS REF_ID,
1031
		  RPN.STATUS AS STATUS_NEXT,
1032
		  --PLRP.STATUS AS STATUS_CURR,
1033
		--RPC.STATUS_JOB AS STATUS_JOB,
1034
		A.REQ_PARENT_ID,A.DEP_CREATE,APR.REQ_CODE AS REQ_PARENT_CODE,CDC.DEP_NAME AS DEP_CREATE_NAME,CDC.DEP_CODE AS DEP_CREATE_CODE,A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME, '' AS IS_TRANSFER,
1035
		--NGUOI XU LY
1036
		--dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'PYC-DVKD',0) AS NGUOIXULY
1037
		NXL.NGUOIXULY AS NGUOIXULY
1038
		-- SELECT END
1039
		FROM TR_REQUEST_DOC A 	
1040
		--INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS<>'U'	
1041
		LEFT JOIN dbo.PL_REQUEST_DOC PLRD ON A.PL_REQ_ID=PLRD.REQ_ID
1042
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1043
		LEFT JOIN CM_BRANCH G ON A.BRANCH_DO=G.BRANCH_ID
1044
		LEFT JOIN dbo.TL_USER U ON U.TLNANME =A.USER_REQUEST
1045
		LEFT JOIN dbo.TL_USER UMS ON UMS.TLNANME =A.USER_DVMS
1046
		LEFT JOIN dbo.CM_BRANCH DVMS ON DVMS.BRANCH_ID=A.BRANCH_DVMS
1047
		LEFT JOIN dbo.CM_BRANCH DVC ON DVC.BRANCH_ID=A.BRANCH_CREATE
1048
		LEFT JOIN dbo.CM_DEPARTMENT CDC ON CDC.DEP_ID=A.DEP_CREATE
1049
		LEFT JOIN dbo.TR_REQUEST_DOC APR ON APR.REQ_ID=A.REQ_PARENT_ID
1050
		LEFT JOIN dbo.TL_USER UM ON UM.TLNANME=A.MAKER_ID
1051
		LEFT JOIN 
1052
		(
1053
			SELECT REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES FROM
1054
			dbo.PL_REQUEST_PROCESS
1055
			GROUP BY REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES
1056
		) RPN ON RPN.REQ_ID=A.REQ_ID AND ([RPN].[STATUS]='C' OR [RPN].[STATUS]='R')
1057
		LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID=(SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID AND PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID ORDER BY APPROVE_DT DESC)	
1058
		
1059
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1060
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1061
		--LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD RPC ON RPC.REQ_ID=A.REQ_ID AND RPC.PROCESS_ID=PLRP.ID AND (RPC.STATUS_JOB='C' OR RPC.STATUS_JOB='R')  AND A.PROCESS_ID <>'PDHT'
1062
		--LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
1063
		--LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
1064
		LEFT JOIN 
1065
		(
1066
			SELECT DMMS_ID,DEP_NAME+'-'+BRANCH_NAME AS DMMS_NAME FROM
1067
			dbo.CM_DMMS 
1068
			LEFT JOIN dbo.CM_BRANCH ON CM_BRANCH.BRANCH_ID=CM_DMMS.BRANCH_ID
1069
			LEFT JOIN dbo.CM_DEPARTMENT ON CM_DEPARTMENT.DEP_ID = CM_DMMS.DEP_ID
1070
			UNION ALL
1071
			SELECT DVDM_ID AS DMMS_ID ,DVDM_NAME AS DMMS_NAME
1072
			FROM dbo.CM_DVDM
1073
		)CMS ON CMS.DMMS_ID=A.DMMS_ID
1074
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
1075
		LEFT JOIN
1076
		(		
1077
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
1078
		FROM @lstREQUEST RE
1079
		WHERE RE.REQ_ID=Results.REQ_ID
1080
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
1081
		STUFF((select ', ' + RE.TLNAME  
1082
		FROM @lstREQUEST RE
1083
		WHERE RE.REQ_ID=Results.REQ_ID
1084
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
1085
		FROM @lstREQUEST Results
1086
		GROUP BY REQ_ID
1087
		) NXL ON NXL.REQ_ID=A.REQ_ID
1088
		
1089

    
1090
		WHERE 1 = 1
1091
		AND (A.IS_KT = @p_IS_KT OR @p_IS_KT IS NULL)
1092
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
1093
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
1094
		AND (A.REQ_REASON LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
1095
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
1096
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
1097
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
1098
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
1099
		AND (CAST(A.CREATE_DT AS DATE)=CONVERT(DATETIME, @p_CREATE_DT, 103) OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
1100
		
1101
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
1102
		AND (CAST(A.APPROVE_DT AS DATE) = CONVERT(DATETIME, @p_APPROVE_DT, 103) OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
1103
		AND (A.PROCESS_ID LIKE '%' + @p_PROCESS_STATUS + '%' OR @p_PROCESS_STATUS IS NULL OR @p_PROCESS_STATUS='')	
1104
		 --AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM  CM_BRANCH_GETCHILDID(@p_BRANCH_ID)))
1105
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CONVERT(DATETIME, @p_FR_DATE, 103))
1106
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CONVERT(DATETIME, @p_TO_DATE, 103))
1107
		AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = ''
1108
		OR A.DEP_CREATE LIKE '%' + @p_BRANCH_CREATE + '%'
1109
		)
1110
		AND (PLRD.REQ_CODE LIKE '%' + @p_PL_REQ_CODE + '%' OR @p_PL_REQ_CODE IS NULL OR @p_PL_REQ_CODE = '')
1111
		AND (A.PL_REQ_ID LIKE '%' + @p_PL_REQ_ID + '%' OR @p_PL_REQ_ID IS NULL OR @p_PL_REQ_ID = '')
1112
		AND A.RECORD_STATUS = '1'
1113
		
1114
		AND (( @p_AUTH_STATUS='A' AND  A.PROCESS_ID='APPROVE') OR( @p_AUTH_STATUS='U' AND A.PROCESS_ID <> 'APPROVE') OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
1115
		
1116

    
1117
		--AND(	EXISTS (
1118
		--			SELECT * FROM PL_REQUEST_COSTCENTER  PRC
1119
		--			INNER JOIN @COST_ID COST ON PRC.COST_ID = COST.DVDM_ID
1120
		--			WHERE PRC.REQ_ID = A.PL_REQ_ID
1121
		--			)
1122
		--			OR @DEP_ID='DEP000000000022'
1123
										
1124
		--	)
1125

    
1126
		AND(@p_YEAR IS NULL OR YEAR(A.REQ_DT)=@p_YEAR OR @p_YEAR = '' OR @p_YEAR IS NULL OR @p_YEAR = 0)
1127

    
1128
		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
1129
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
1130
		--AND(((PLRP.ROLE_USER=@p_ROLE_USER OR PLRP.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@p_ROLE_USER)) AND ((PLRP.DVDM_ID  IN (SELECT DVDM_ID FROM @COST_ID) )))
1131
		--	OR (EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE TLNAME=@p_TLNAME_USER  AND PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID) ))
1132

    
1133
		ORDER BY A.CREATE_DT DESC
1134
		-- PAGING END
1135
		END
1136

    
1137
		ELSE	IF(@p_TYPE='DVKD_PARENT' )
1138
		BEGIN
1139
		-- PAGING BEGIN	
1140
		SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT, A.REQ_TYPE,A.IS_KT,
1141
               A.REQ_REASON, A.REQ_CONTENT,A.PL_REQ_ID,A.TOTAL_AMT AS TOTAL_AMT, A.NOTES, A.RECORD_STATUS,A.MAKER_ID, A.CREATE_DT,
1142
               A.AUTH_STATUS,A.CHECKER_ID,A.APPROVE_DT,A.BRANCH_DO, A.PROCESS_ID,A.BRANCH_CREATE, A.USER_REQUEST,U.TLFullName AS USER_REQUEST_NAME,
1143
			   D.AUTH_STATUS_NAME,UDV.TLFullName AS CHECKER_NAME,UMS.TLFullName AS USER_DVMS_NAME,UM.TLFullName AS MAKER_NAME,
1144
			   CMS.DMMS_NAME,A.DMMS_ID,
1145
			   RP.NOTES AS PROCESS_STATUS,RP.APPROVE_DT AS PROCESS_APP_DT,UP.TLFullName AS PROCESS_CHECKER_NAME,
1146
			   RP.ROLE_USER,
1147
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt' 
1148
				ELSE N'Chờ duyệt' END AS AUTH_STATUS_PROCESS_NAME,
1149
				RPN.NOTES AS PROCESS_STATUS_NEXT
1150
		,G.BRANCH_NAME AS BRANCH_DO_NAME,G.BRANCH_CODE AS BRANCH_DO_CODE,PLRD.REQ_CODE AS PL_REQ_CODE,
1151
		DVMS.BRANCH_CODE AS BRANCH_CODE_DVMS,DVMS.BRANCH_NAME AS BRANCH_NAME_DVMS,DVC.BRANCH_CODE AS BRANCH_CREATE_CODE,
1152
		DVC.BRANCH_NAME AS BRANCH_CREATE_NAME,
1153
		PLRD.REQ_NAME AS PL_REQ_NAME,'' TYPE_JOB,'' AS USER_JOB,'' AS USER_JOB_NAME,'' AS TRANSFER_MAKER,CAST(NULL AS DATETIME) AS TRANFER_DT ,
1154
		'' AS TRANSFER_MAKER_ID,'' AS TYPE_JOB_XL,'' AS USER_JOB_XL,PLRD.REQ_CODE AS SO_TT_CT, PLRD.REQ_DT AS NGAY_NHAN_TT, PLRD.EFFEC_DT NGAY_DUYET_TT, '' AS NCC_CODE, '' NCC_NAME, '' AS NCC_ADDR,RP.ID AS REF_ID,
1155
		  RPN.STATUS AS STATUS_NEXT,
1156
		  RP.STATUS AS STATUS_CURR,
1157
		'' AS STATUS_JOB,A.REQ_PARENT_ID,A.DEP_CREATE,APR.REQ_CODE AS REQ_PARENT_CODE,CDC.DEP_NAME AS DEP_CREATE_NAME,CDC.DEP_CODE AS DEP_CREATE_CODE,A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME, '' AS IS_TRANSFER,
1158
		--NGUOI XU LY
1159
		--dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'PYC-DVKD',0) AS NGUOIXULY
1160
		NXL.NGUOIXULY AS NGUOIXULY
1161
		-- SELECT END
1162
		FROM TR_REQUEST_DOC A
1163
		LEFT JOIN dbo.PL_REQUEST_DOC PLRD ON A.PL_REQ_ID=PLRD.REQ_ID
1164
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1165
		LEFT JOIN CM_BRANCH G ON A.BRANCH_DO=G.BRANCH_ID
1166
		LEFT JOIN dbo.TL_USER U ON U.TLNANME =A.USER_REQUEST
1167
		LEFT JOIN dbo.TL_USER UMS ON UMS.TLNANME =A.USER_DVMS
1168
		LEFT JOIN dbo.CM_BRANCH DVMS ON DVMS.BRANCH_ID=A.BRANCH_DVMS
1169
		LEFT JOIN dbo.CM_BRANCH DVC ON DVC.BRANCH_ID=A.BRANCH_CREATE
1170
		LEFT JOIN dbo.CM_DEPARTMENT CDC ON CDC.DEP_ID=A.DEP_CREATE
1171
		LEFT JOIN dbo.TR_REQUEST_DOC APR ON APR.REQ_ID=A.REQ_PARENT_ID
1172
		LEFT JOIN dbo.TL_USER UM ON UM.TLNANME=A.MAKER_ID
1173
		LEFT JOIN 
1174
		(
1175
			SELECT REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES FROM
1176
			dbo.PL_REQUEST_PROCESS
1177
			GROUP BY REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES
1178
		) RPN ON RPN.REQ_ID=A.REQ_ID AND ([RPN].[STATUS]='C' OR [RPN].[STATUS]='R')
1179
		LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID=(SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID AND PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID ORDER BY APPROVE_DT DESC)	
1180
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1181
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1182
		LEFT JOIN 
1183
		(
1184
			SELECT DMMS_ID,DEP_NAME+'-'+BRANCH_NAME AS DMMS_NAME FROM
1185
			dbo.CM_DMMS 
1186
			LEFT JOIN dbo.CM_BRANCH ON CM_BRANCH.BRANCH_ID=CM_DMMS.BRANCH_ID
1187
			LEFT JOIN dbo.CM_DEPARTMENT ON CM_DEPARTMENT.DEP_ID = CM_DMMS.DEP_ID
1188
			UNION ALL
1189
			SELECT DVDM_ID AS DMMS_ID ,DVDM_NAME AS DMMS_NAME
1190
			FROM dbo.CM_DVDM
1191
		)CMS ON CMS.DMMS_ID=A.DMMS_ID
1192
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
1193
		LEFT JOIN
1194
		(		
1195
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
1196
		FROM @lstREQUEST RE
1197
		WHERE RE.REQ_ID=Results.REQ_ID
1198
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
1199
		STUFF((select ', ' + RE.TLNAME  
1200
		FROM @lstREQUEST RE
1201
		WHERE RE.REQ_ID=Results.REQ_ID
1202
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
1203
		FROM @lstREQUEST Results
1204
		GROUP BY REQ_ID
1205
		) NXL ON NXL.REQ_ID=A.REQ_ID
1206
		
1207

    
1208
		WHERE 1 = 1
1209
		AND (A.IS_KT = @p_IS_KT OR @p_IS_KT IS NULL)
1210
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
1211
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
1212
		AND (A.REQ_REASON LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
1213
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
1214
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
1215
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
1216
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
1217
		AND (CAST(A.CREATE_DT AS DATE)=CONVERT(DATETIME, @p_CREATE_DT, 103) OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
1218
		
1219
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
1220
		AND (CAST(A.APPROVE_DT AS DATE) = CONVERT(DATETIME, @p_APPROVE_DT, 103) OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
1221
		AND (A.PROCESS_ID LIKE '%' + @p_PROCESS_STATUS + '%' OR @p_PROCESS_STATUS IS NULL OR @p_PROCESS_STATUS='')	
1222
		 --AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM  CM_BRANCH_GETCHILDID(@p_BRANCH_ID)))
1223
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CONVERT(DATETIME, @p_FR_DATE, 103))
1224
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CONVERT(DATETIME, @p_TO_DATE, 103))
1225
		AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
1226
		AND (A.PL_REQ_ID LIKE '%' + @p_PL_REQ_CODE + '%' OR @p_PL_REQ_CODE IS NULL OR @p_PL_REQ_CODE = '')
1227
		
1228
		AND A.RECORD_STATUS = '1'
1229
		AND (A.BRANCH_CREATE =@p_BRANCH_LOGIN AND (A.DEP_CREATE=@DEP_ID OR A.DEP_CREATE ='' OR A.DEP_CREATE IS NULL))
1230
		AND (( @p_AUTH_STATUS='A' AND  A.PROCESS_ID='APPROVE') OR( @p_AUTH_STATUS='U' AND A.PROCESS_ID <> 'APPROVE') OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
1231
		AND(@p_YEAR IS NULL OR YEAR(A.REQ_DT)=@p_YEAR OR @p_YEAR = '' OR @p_YEAR IS NULL OR @p_YEAR = 0)
1232
		AND (A.REQ_PARENT_ID IS NULL  OR A.REQ_PARENT_ID='')
1233

    
1234
		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
1235
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
1236

    
1237
		ORDER BY A.CREATE_DT DESC
1238
		-- PAGING END
1239
		END
1240
		ELSE IF(@p_TYPE='DMMS_PARENT')
1241
		BEGIN
1242
		-- PAGING BEGIN	
1243
		SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT, A.REQ_TYPE,A.IS_KT,
1244
               A.REQ_REASON, A.REQ_CONTENT,A.PL_REQ_ID,A.TOTAL_AMT AS TOTAL_AMT, A.NOTES, A.RECORD_STATUS,A.MAKER_ID, A.CREATE_DT,
1245
               A.AUTH_STATUS,A.CHECKER_ID,A.APPROVE_DT,A.BRANCH_DO, A.PROCESS_ID,A.BRANCH_CREATE, A.USER_REQUEST,U.TLFullName AS USER_REQUEST_NAME,
1246
			   D.AUTH_STATUS_NAME,UDV.TLFullName AS CHECKER_NAME,UMS.TLFullName AS USER_DVMS_NAME,UM.TLFullName AS MAKER_NAME,
1247
			   CMS.DMMS_NAME,A.DMMS_ID,
1248
			   RP.NOTES AS PROCESS_STATUS,RP.APPROVE_DT AS PROCESS_APP_DT,UP.TLFullName AS PROCESS_CHECKER_NAME,
1249
			   RP.ROLE_USER,
1250
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt' 
1251
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_PROCESS_NAME,
1252
				RPN.NOTES AS PROCESS_STATUS_NEXT
1253
		,G.BRANCH_NAME AS BRANCH_DO_NAME,G.BRANCH_CODE AS BRANCH_DO_CODE,PLRD.REQ_CODE AS PL_REQ_CODE,
1254
		DVMS.BRANCH_CODE AS BRANCH_CODE_DVMS,DVMS.BRANCH_NAME AS BRANCH_NAME_DVMS,DVC.BRANCH_CODE AS BRANCH_CREATE_CODE,
1255
		DVC.BRANCH_NAME AS BRANCH_CREATE_NAME,
1256
		PLRD.REQ_NAME AS PL_REQ_NAME,RPC.TYPE_JOB,RPC.TLNAME AS USER_JOB,TU.TLFullName AS USER_JOB_NAME,TFM.TLFullName AS TRANSFER_MAKER,RPC.TRANFER_DT ,RPC.MAKER_ID AS TRANSFER_MAKER_ID,
1257
			 '' AS TYPE_JOB_XL,'' AS USER_JOB_XL,PLRD.REQ_CODE AS SO_TT_CT, PLRD.REQ_DT AS NGAY_NHAN_TT, PLRD.EFFEC_DT NGAY_DUYET_TT, '' AS NCC_CODE, '' NCC_NAME, '' AS NCC_ADDR,PLRP.ID AS REF_ID,
1258
		   RPN.STATUS AS STATUS_NEXT,
1259
		  PLRP.STATUS AS STATUS_CURR,
1260
		RPC.STATUS_JOB AS STATUS_JOB,A.REQ_PARENT_ID,A.DEP_CREATE,APR.REQ_CODE AS REQ_PARENT_CODE,CDC.DEP_NAME AS DEP_CREATE_NAME,CDC.DEP_CODE AS DEP_CREATE_CODE,A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME, '' AS IS_TRANSFER,
1261
		--NGUOI XU LY
1262
		--dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'PYC-DVKD',0) AS NGUOIXULY
1263
		NXL.NGUOIXULY AS NGUOIXULY
1264
		-- SELECT END
1265
		FROM TR_REQUEST_DOC A 	
1266
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND	PLRP.STATUS <>'U'
1267
		LEFT JOIN dbo.PL_REQUEST_DOC PLRD ON A.PL_REQ_ID=PLRD.REQ_ID 
1268
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1269
		LEFT JOIN CM_BRANCH G ON A.BRANCH_DO=G.BRANCH_ID
1270
		LEFT JOIN dbo.TL_USER U ON U.TLNANME =A.USER_REQUEST
1271
		LEFT JOIN dbo.TL_USER UMS ON UMS.TLNANME =A.USER_DVMS
1272
		LEFT JOIN dbo.CM_BRANCH DVMS ON DVMS.BRANCH_ID=A.BRANCH_DVMS
1273
		LEFT JOIN dbo.CM_BRANCH DVC ON DVC.BRANCH_ID=A.BRANCH_CREATE
1274
		LEFT JOIN dbo.CM_DEPARTMENT CDC ON CDC.DEP_ID=A.DEP_CREATE
1275
		LEFT JOIN dbo.TR_REQUEST_DOC APR ON APR.REQ_ID=A.REQ_PARENT_ID
1276
			LEFT JOIN dbo.TL_USER UM ON UM.TLNANME=A.MAKER_ID
1277
		LEFT JOIN 
1278
		(
1279
			SELECT REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES FROM
1280
			dbo.PL_REQUEST_PROCESS
1281
			GROUP BY REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES
1282
		) RPN ON RPN.REQ_ID=A.REQ_ID AND( [RPN].[STATUS]='C' OR [RPN].[STATUS]='R')
1283
		LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID=(SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID AND PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID ORDER BY APPROVE_DT DESC)	
1284
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1285
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1286
		LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD RPC ON RPC.REQ_ID=A.REQ_ID AND RPC.PROCESS_ID=PLRP.ID AND (RPC.STATUS_JOB='C' OR RPC.STATUS_JOB='R') AND A.PROCESS_ID <>'PDHT'
1287
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
1288
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
1289
		LEFT JOIN 
1290
		(
1291
			SELECT DMMS_ID,DEP_NAME+'-'+BRANCH_NAME AS DMMS_NAME FROM
1292
			dbo.CM_DMMS 
1293
			LEFT JOIN dbo.CM_BRANCH ON CM_BRANCH.BRANCH_ID=CM_DMMS.BRANCH_ID
1294
			LEFT JOIN dbo.CM_DEPARTMENT ON CM_DEPARTMENT.DEP_ID = CM_DMMS.DEP_ID
1295
			UNION ALL
1296
			SELECT DVDM_ID AS DMMS_ID ,DVDM_NAME AS DMMS_NAME
1297
			FROM dbo.CM_DVDM
1298
		)CMS ON CMS.DMMS_ID=A.DMMS_ID
1299
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
1300
		LEFT JOIN
1301
		(		
1302
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
1303
		FROM @lstREQUEST RE
1304
		WHERE RE.REQ_ID=Results.REQ_ID
1305
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
1306
		STUFF((select ', ' + RE.TLNAME  
1307
		FROM @lstREQUEST RE
1308
		WHERE RE.REQ_ID=Results.REQ_ID
1309
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
1310
		FROM @lstREQUEST Results
1311
		GROUP BY REQ_ID
1312
		) NXL ON NXL.REQ_ID=A.REQ_ID
1313
		
1314

    
1315
		WHERE 1 = 1
1316
		AND (A.IS_KT = @p_IS_KT OR @p_IS_KT IS NULL)
1317
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
1318
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
1319
		AND (A.REQ_REASON LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
1320
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
1321
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
1322
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
1323
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
1324
		AND (CAST(A.CREATE_DT AS DATE)=CONVERT(DATETIME, @p_CREATE_DT, 103) OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
1325
		
1326
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
1327
		AND (CAST(A.APPROVE_DT AS DATE) = CONVERT(DATETIME, @p_APPROVE_DT, 103) OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
1328
		AND (A.PROCESS_ID LIKE '%' + @p_PROCESS_STATUS + '%' OR @p_PROCESS_STATUS IS NULL OR @p_PROCESS_STATUS='')	
1329
		 --AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM  CM_BRANCH_GETCHILDID(@p_BRANCH_ID)))
1330
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CONVERT(DATETIME, @p_FR_DATE, 103))
1331
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CONVERT(DATETIME, @p_TO_DATE, 103))
1332
		AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
1333
		AND (A.PL_REQ_ID LIKE '%' + @p_PL_REQ_CODE + '%' OR @p_PL_REQ_CODE IS NULL OR @p_PL_REQ_CODE = '')
1334
		
1335
		AND A.RECORD_STATUS = '1'
1336
		AND (((PLRP.ROLE_USER=@p_ROLE_USER OR PLRP.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@p_ROLE_USER)) AND ( A.DMMS_ID IN (SELECT DMMS_ID FROM dbo.CM_DMMS WHERE BRANCH_ID =@p_BRANCH_LOGIN AND (DEP_ID=@DEP_ID  OR @BRANCH_TYPE <>'HS')) OR A.DMMS_ID IN (SELECT DVDM_ID FROM @COST_ID) )OR (EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE TLNAME=@p_TLNAME_USER AND PROCESS_ID=PLRP.ID) )) OR A.USER_DVMS=@p_TLNAME_USER)
1337
		AND (( @p_AUTH_STATUS='A' AND  A.PROCESS_ID='APPROVE') OR( @p_AUTH_STATUS='U' AND A.PROCESS_ID <> 'APPROVE') OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
1338
		AND(@p_YEAR IS NULL OR YEAR(A.REQ_DT)=@p_YEAR OR @p_YEAR = '' OR @p_YEAR IS NULL OR @p_YEAR = 0)
1339
		AND (A.REQ_PARENT_ID IS NULL  OR A.REQ_PARENT_ID='')
1340

    
1341
		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
1342
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
1343

    
1344
		ORDER BY A.CREATE_DT DESC
1345
		-- PAGING END
1346
		END
1347
		ELSE	IF(@p_TYPE='TTCT' )
1348
		BEGIN
1349
		-- PAGING BEGIN	
1350
		SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT, A.REQ_TYPE,A.IS_KT,
1351
               A.REQ_REASON, A.REQ_CONTENT,A.PL_REQ_ID,A.TOTAL_AMT AS TOTAL_AMT, A.NOTES, A.RECORD_STATUS,A.MAKER_ID, A.CREATE_DT,
1352
               A.AUTH_STATUS,A.CHECKER_ID,A.APPROVE_DT,A.BRANCH_DO, A.PROCESS_ID,A.BRANCH_CREATE, A.USER_REQUEST,U.TLFullName AS USER_REQUEST_NAME,
1353
			   D.AUTH_STATUS_NAME,UDV.TLFullName AS CHECKER_NAME,UMS.TLFullName AS USER_DVMS_NAME,UM.TLFullName AS MAKER_NAME,
1354
			   CMS.DMMS_NAME,A.DMMS_ID,
1355
			   RP.NOTES AS PROCESS_STATUS,RP.APPROVE_DT AS PROCESS_APP_DT,UP.TLFullName AS PROCESS_CHECKER_NAME,
1356
			   RP.ROLE_USER,
1357
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt' 
1358
				ELSE N'Chờ duyệt' END AS AUTH_STATUS_PROCESS_NAME,
1359
				RPN.NOTES AS PROCESS_STATUS_NEXT
1360
		,G.BRANCH_NAME AS BRANCH_DO_NAME,G.BRANCH_CODE AS BRANCH_DO_CODE,PLRD.REQ_CODE AS PL_REQ_CODE,
1361
		DVMS.BRANCH_CODE AS BRANCH_CODE_DVMS,DVMS.BRANCH_NAME AS BRANCH_NAME_DVMS,DVC.BRANCH_CODE AS BRANCH_CREATE_CODE,
1362
		DVC.BRANCH_NAME AS BRANCH_CREATE_NAME,
1363
		PLRD.REQ_NAME AS PL_REQ_NAME,'' TYPE_JOB,'' AS USER_JOB,'' AS USER_JOB_NAME,'' AS TRANSFER_MAKER,CAST(NULL AS DATETIME) AS TRANFER_DT ,
1364
		'' AS TRANSFER_MAKER_ID,'' AS TYPE_JOB_XL,'' AS USER_JOB_XL,PLRD.REQ_CODE AS SO_TT_CT, PLRD.REQ_DT AS NGAY_NHAN_TT, PLRD.EFFEC_DT NGAY_DUYET_TT, '' AS NCC_CODE, '' NCC_NAME, '' AS NCC_ADDR,RP.ID AS REF_ID,
1365
		  RPN.STATUS AS STATUS_NEXT,
1366
		  RP.STATUS AS STATUS_CURR,
1367
		'' AS STATUS_JOB,A.REQ_PARENT_ID,A.DEP_CREATE,APR.REQ_CODE AS REQ_PARENT_CODE,CDC.DEP_NAME AS DEP_CREATE_NAME,CDC.DEP_CODE AS DEP_CREATE_CODE,A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME, '' AS IS_TRANSFER,
1368
		--NGUOI XU LY
1369
		--dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'PYC-DVKD',0) AS NGUOIXULY
1370
		NXL.NGUOIXULY AS NGUOIXULY
1371
		-- SELECT END
1372
		FROM TR_REQUEST_DOC A
1373
		LEFT JOIN dbo.PL_REQUEST_DOC PLRD ON A.PL_REQ_ID=PLRD.REQ_ID
1374
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1375
		LEFT JOIN CM_BRANCH G ON A.BRANCH_DO=G.BRANCH_ID
1376
		LEFT JOIN dbo.TL_USER U ON U.TLNANME =A.USER_REQUEST
1377
		LEFT JOIN dbo.TL_USER UMS ON UMS.TLNANME =A.USER_DVMS
1378
		LEFT JOIN dbo.CM_BRANCH DVMS ON DVMS.BRANCH_ID=A.BRANCH_DVMS
1379
		LEFT JOIN dbo.CM_BRANCH DVC ON DVC.BRANCH_ID=A.BRANCH_CREATE
1380
		LEFT JOIN dbo.CM_DEPARTMENT CDC ON CDC.DEP_ID=A.DEP_CREATE
1381
		LEFT JOIN dbo.TR_REQUEST_DOC APR ON APR.REQ_ID=A.REQ_PARENT_ID
1382
		LEFT JOIN dbo.TL_USER UM ON UM.TLNANME=A.MAKER_ID
1383
		LEFT JOIN 
1384
		(
1385
			SELECT REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES FROM
1386
			dbo.PL_REQUEST_PROCESS
1387
			GROUP BY REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES
1388
		) RPN ON RPN.REQ_ID=A.REQ_ID AND ([RPN].[STATUS]='C' OR [RPN].[STATUS]='R')
1389
		LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID=(SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID AND PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID ORDER BY APPROVE_DT DESC)	
1390
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1391
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1392
		LEFT JOIN 
1393
		(
1394
			SELECT DMMS_ID,DEP_NAME+'-'+BRANCH_NAME AS DMMS_NAME FROM
1395
			dbo.CM_DMMS 
1396
			LEFT JOIN dbo.CM_BRANCH ON CM_BRANCH.BRANCH_ID=CM_DMMS.BRANCH_ID
1397
			LEFT JOIN dbo.CM_DEPARTMENT ON CM_DEPARTMENT.DEP_ID = CM_DMMS.DEP_ID
1398
			UNION ALL
1399
			SELECT DVDM_ID AS DMMS_ID ,DVDM_NAME AS DMMS_NAME
1400
			FROM dbo.CM_DVDM
1401
		)CMS ON CMS.DMMS_ID=A.DMMS_ID
1402
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
1403
		LEFT JOIN
1404
		(		
1405
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
1406
		FROM @lstREQUEST RE
1407
		WHERE RE.REQ_ID=Results.REQ_ID
1408
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
1409
		STUFF((select ', ' + RE.TLNAME  
1410
		FROM @lstREQUEST RE
1411
		WHERE RE.REQ_ID=Results.REQ_ID
1412
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
1413
		FROM @lstREQUEST Results
1414
		GROUP BY REQ_ID
1415
		) NXL ON NXL.REQ_ID=A.REQ_ID
1416
		
1417

    
1418
		WHERE 1 = 1
1419
		AND A.PL_REQ_ID=@p_PL_REQ_ID
1420

    
1421
		ORDER BY A.CREATE_DT DESC
1422
		-- PAGING END
1423
		END
1424
		-- NEU LA LINK PYCMS
1425
		ELSE IF(@p_TYPE='LINK_TTCT' )
1426
		BEGIN
1427
		-- PAGING BEGIN	
1428
		SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT, A.REQ_TYPE,A.IS_KT,
1429
               A.REQ_REASON, A.REQ_CONTENT,A.PL_REQ_ID,A.TOTAL_AMT AS TOTAL_AMT, A.NOTES, A.RECORD_STATUS,A.MAKER_ID, A.CREATE_DT,
1430
               A.AUTH_STATUS,A.CHECKER_ID,A.APPROVE_DT,A.BRANCH_DO, A.PROCESS_ID,A.BRANCH_CREATE, A.USER_REQUEST,U.TLFullName AS USER_REQUEST_NAME,
1431
			   D.AUTH_STATUS_NAME,UDV.TLFullName AS CHECKER_NAME,UMS.TLFullName AS USER_DVMS_NAME,UM.TLFullName AS MAKER_NAME,
1432
			   CMS.DMMS_NAME,A.DMMS_ID,
1433
			   RP.NOTES AS PROCESS_STATUS,RP.APPROVE_DT AS PROCESS_APP_DT,UP.TLFullName AS PROCESS_CHECKER_NAME,
1434
			   RP.ROLE_USER,
1435
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt' 
1436
				ELSE N'Chờ duyệt' END AS AUTH_STATUS_PROCESS_NAME,
1437
				RPN.NOTES AS PROCESS_STATUS_NEXT
1438
		,G.BRANCH_NAME AS BRANCH_DO_NAME,G.BRANCH_CODE AS BRANCH_DO_CODE,PLRD.REQ_CODE AS PL_REQ_CODE,
1439
		DVMS.BRANCH_CODE AS BRANCH_CODE_DVMS,DVMS.BRANCH_NAME AS BRANCH_NAME_DVMS,DVC.BRANCH_CODE AS BRANCH_CREATE_CODE,
1440
		DVC.BRANCH_NAME AS BRANCH_CREATE_NAME,
1441
		PLRD.REQ_NAME AS PL_REQ_NAME,'' TYPE_JOB,'' AS USER_JOB,'' AS USER_JOB_NAME,'' AS TRANSFER_MAKER,CAST(NULL AS DATETIME) AS TRANFER_DT ,
1442
		'' AS TRANSFER_MAKER_ID,'' AS TYPE_JOB_XL,'' AS USER_JOB_XL,PLRD.REQ_CODE AS SO_TT_CT, PLRD.REQ_DT AS NGAY_NHAN_TT, PLRD.EFFEC_DT NGAY_DUYET_TT, '' AS NCC_CODE, '' NCC_NAME, '' AS NCC_ADDR,RP.ID AS REF_ID,
1443
		  RPN.STATUS AS STATUS_NEXT,
1444
		  RP.STATUS AS STATUS_CURR,
1445
		'' AS STATUS_JOB,A.REQ_PARENT_ID,A.DEP_CREATE,APR.REQ_CODE AS REQ_PARENT_CODE,CDC.DEP_NAME AS DEP_CREATE_NAME,CDC.DEP_CODE AS DEP_CREATE_CODE,A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME, '' AS IS_TRANSFER,
1446
		--NGUOI XU LY
1447
		--dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'PYC-DVKD',0) AS NGUOIXULY
1448
		NXL.NGUOIXULY AS NGUOIXULY
1449
		-- SELECT END
1450
		FROM TR_REQUEST_DOC A
1451
		LEFT JOIN dbo.PL_REQUEST_DOC PLRD ON A.PL_REQ_ID=PLRD.REQ_ID
1452
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1453
		LEFT JOIN CM_BRANCH G ON A.BRANCH_DO=G.BRANCH_ID
1454
		LEFT JOIN dbo.TL_USER U ON U.TLNANME =A.USER_REQUEST
1455
		LEFT JOIN dbo.TL_USER UMS ON UMS.TLNANME =A.USER_DVMS
1456
		LEFT JOIN dbo.CM_BRANCH DVMS ON DVMS.BRANCH_ID=A.BRANCH_DVMS
1457
		LEFT JOIN dbo.CM_BRANCH DVC ON DVC.BRANCH_ID=A.BRANCH_CREATE
1458
		LEFT JOIN dbo.CM_DEPARTMENT CDC ON CDC.DEP_ID=A.DEP_CREATE
1459
		LEFT JOIN dbo.TR_REQUEST_DOC APR ON APR.REQ_ID=A.REQ_PARENT_ID
1460
		LEFT JOIN dbo.TL_USER UM ON UM.TLNANME=A.MAKER_ID
1461
		LEFT JOIN 
1462
		(
1463
			SELECT REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES FROM
1464
			dbo.PL_REQUEST_PROCESS
1465
			GROUP BY REQ_ID,PROCESS_ID,PARENT_PROCESS_ID,STATUS,NOTES
1466
		) RPN ON RPN.REQ_ID=A.REQ_ID AND ([RPN].[STATUS]='C' OR [RPN].[STATUS]='R')
1467
		LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID=(SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID AND PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID ORDER BY APPROVE_DT DESC)	
1468
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1469
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1470
		LEFT JOIN 
1471
		(
1472
			SELECT DMMS_ID,DEP_NAME+'-'+BRANCH_NAME AS DMMS_NAME FROM
1473
			dbo.CM_DMMS 
1474
			LEFT JOIN dbo.CM_BRANCH ON CM_BRANCH.BRANCH_ID=CM_DMMS.BRANCH_ID
1475
			LEFT JOIN dbo.CM_DEPARTMENT ON CM_DEPARTMENT.DEP_ID = CM_DMMS.DEP_ID
1476
			UNION ALL
1477
			SELECT DVDM_ID AS DMMS_ID ,DVDM_NAME AS DMMS_NAME
1478
			FROM dbo.CM_DVDM
1479
		)CMS ON CMS.DMMS_ID=A.DMMS_ID
1480
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
1481
		LEFT JOIN
1482
		(		
1483
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
1484
		FROM @lstREQUEST RE
1485
		WHERE RE.REQ_ID=Results.REQ_ID
1486
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
1487
		STUFF((select ', ' + RE.TLNAME  
1488
		FROM @lstREQUEST RE
1489
		WHERE RE.REQ_ID=Results.REQ_ID
1490
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
1491
		FROM @lstREQUEST Results
1492
		GROUP BY REQ_ID
1493
		) NXL ON NXL.REQ_ID=A.REQ_ID
1494
		
1495

    
1496
		WHERE 1 = 1
1497
		AND A.PL_REQ_ID=@p_PL_REQ_ID
1498

    
1499
		ORDER BY A.CREATE_DT DESC
1500
		-- PAGING END
1501
		END-- END LUCTV
1502
	END
1503
END -- PAGING
1504