Project

General

Profile

1.6 CAP NHAT TO TRINH 0023 2021 TTr 0692205 TOAN HANG.txt

Luc Tran Van, 10/18/2021 09:05 PM

 
1
DECLARE @REQ_ID VARCHAR(15)
2
SET @REQ_ID=(SELECT REQ_ID FROM PL_REQUEST_DOC WHERE REQ_CODE ='0023/2021/TTr-0692205')
3
UPDATE PL_REQUEST_DOC SET IS_CHECKALL=1 WHERE REQ_ID =@REQ_ID
4
INSERT INTO PL_PROCESS (REQ_ID,PROCESS_ID,NOTES,PROCESS_DESC,CHECKER_ID,APPROVE_DT) 
5
VALUES (@REQ_ID,'IT',N'Yêu cầu cập nhật toàn hàng',N'Hỗ trợ cập nhật chủ trương toàn hàng theo yêu cầu','anhngv',GETDATE())
6
---20211018
7
¿
8
ALTER PROCEDURE [dbo].[PL_REQUEST_DOC_Search]
9
@p_REQ_ID	varchar(15)  = NULL,
10
@p_REQ_CODE	nvarchar(100)  = NULL,
11
@p_REQ_NAME	nvarchar(200)  = NULL,
12
@p_REQ_DT	DATETIME = NULL,
13
@p_REQ_TYPE	int = NULL,
14
@p_REQ_CONTENT NVARCHAR(1000)=NULL,
15
@p_REQ_REASON NVARCHAR(500)=NULL,
16
@p_TOTAL_AMT	decimal = NULL,
17
@p_NOTES	nvarchar(1000)  = NULL,
18
@p_RECORD_STATUS	varchar(1)  = NULL,
19
@p_MAKER_ID	varchar(12)  = NULL,
20
@p_CREATE_DT	DATETIME = NULL,
21
@p_AUTH_STATUS	varchar(50)  = NULL,
22
@p_CHECKER_ID	varchar(12)  = NULL,
23
@p_APPROVE_DT	DATETIME = NULL,
24
@p_PROCESS_ID varchar(15) = NULL,
25
@p_BRANCH_ID VARCHAR(15)=NULL,
26
@p_DEP_ID VARCHAR(15) = NULL,
27
@p_BRANCH_LOGIN VARCHAR(15),
28
@p_ROLE_USER VARCHAR(20),
29
@p_TLNAME_USER VARCHAR(15),
30
@p_FR_DATE DATETIME = NULL,
31
@p_TO_DATE DATETIME = NULL,
32
@p_TYPE_TRANFER VARCHAR(15),
33
@p_TYPE VARCHAR(15),
34
@p_YEAR INT,
35
@p_TOP	INT = 10,
36
@p_IS_TRANSFER VARCHAR(10) = NULL,
37
@p_NGUOIXULY NVARCHAR(15) = NULL
38
AS
39
BEGIN
40

    
41
	DECLARE @TABLE_ROLE TABLE 
42
	( ROLE_ID VARCHAR(20))
43
	INSERT INTO @TABLE_ROLE VALUES(@p_ROLE_USER)
44

    
45
	
46
	INSERT INTO @TABLE_ROLE
47
	SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@p_ROLE_USER
48
	
49

    
50

    
51
	DECLARE @DEP_ID VARCHAR(15),@BRANCH_TYPE VARCHAR(15)
52
	
53
	DECLARE
54
	@COST_ID TABLE (
55
		COST_ID VARCHAR(15)
56
	)
57

    
58
	DECLARE @DVDM_ID TABLE (
59
		DVDM_ID VARCHAR(15)
60
	)
61
	SET @DEP_ID =(SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@p_TLNAME_USER)
62
	SET @BRANCH_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_LOGIN)
63

    
64

    
65
	IF(EXISTS(SELECT DEP_CODE FROM dbo.CM_DEPARTMENT WHERE DEP_ID=@DEP_ID AND DEP_CODE LIKE '069%'))
66
	BEGIN
67
		SET @BRANCH_TYPE='HS'
68
	END
69

    
70

    
71

    
72
	DECLARE @AUTHOR TABLE
73
	(
74
		ROLE_ID VARCHAR(100),
75
		BRANCH_ID VARCHAR(20),
76
		DEP_ID VARCHAR(20)
77
	)
78
	DECLARE @AUTHOR_DVDM TABLE
79
	(
80
		ROLE_ID VARCHAR(100),
81
		BRANCH_ID VARCHAR(20),
82
		DEP_ID VARCHAR(20),
83
		DVDM_ID VARCHAR(20)
84
	)
85

    
86
	INSERT INTO @AUTHOR
87
	(
88
	    ROLE_ID,
89
	    BRANCH_ID,
90
	    DEP_ID
91
	)
92
	SELECT RoleName,TLSUBBRID,SECUR_CODE FROM dbo.TL_USER TU
93
	WHERE TLNANME=@p_TLNAME_USER
94
	UNION ALL
95
	SELECT TM.ROLE_NEW RoleName,TLSUBBRID,SECUR_CODE FROM dbo.TL_USER TU
96
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='')
97
	WHERE TLNANME=@p_TLNAME_USER AND TM.ROLE_NEW IS NOT NULL
98
	UNION ALL
99
	SELECT TM1.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE FROM dbo.TL_SYS_ROLE_MAPPING TM1
100
	WHERE TM1.TLNAME=@p_TLNAME_USER AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
101
	UNION ALL
102
	SELECT TM.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE FROM dbo.TL_SYS_ROLE_MAPPING TM1
103
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TM1.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='')
104
	WHERE TM1.TLNAME=@p_TLNAME_USER AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
105

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

    
135
	INSERT INTO @COST_ID
136
	SELECT COST_ID FROM dbo.PL_COSTCENTER_DT WHERE DEP_ID=@DEP_ID AND BRANCH_ID=@p_BRANCH_LOGIN
137
	INSERT INTO @DVDM_ID
138
	SELECT DVDM_ID FROM dbo.PL_COSTCENTER WHERE COST_ID IN (SELECT COST_ID FROM @COST_ID) GROUP BY DVDM_ID
139

    
140
	---- NGUOI XU lY TIEP THEO 18022021
141
			DECLARE @lstREQUEST TABLE (
142
			REQ_ID VARCHAR(20),
143
			PROCESS_ID VARCHAR(50),
144
			DVDM_NAME NVARCHAR(200),
145
			TLNAME VARCHAR(200),
146
			TLFullName NVARCHAR(200),
147
			NOTES NVARCHAR(200)
148
		)
149
		INSERT INTO @lstREQUEST
150
		( REQ_ID,PROCESS_ID, DVDM_NAME,TLNAME,TLFullName, NOTES)
151
		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 FROM 
152
		(SELECT * FROM dbo.PL_REQUEST_PROCESS PRC WHERE 
153
			EXISTS(SELECT PLRD.REQ_ID FROM dbo.PL_REQUEST_DOC PLRD 
154
			WHERE PLRD.REQ_ID=PRC.REQ_ID 
155

    
156
		) AND PRC.STATUS='C' AND PRC.PROCESS_ID <>'APPROVE' AND PRC.PROCESS_ID <>'SIGN' AND (PRC.IS_HAS_CHILD = 0  OR PRC.IS_HAS_CHILD IS NULL)) PL
157
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
158
		LEFT JOIN 
159
		(
160
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU 
161
		LEFT JOIN(
162
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
163
		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
164
		UNION ALL
165
		SELECT TU.TLNAME,US.TLFullName,TU.ROLE_NEW RoleName,Temp.DVDM_ID,TU.DEP_ID SECUR_CODE,TU.BRANCH_ID TLSUBBRID FROM dbo.TL_SYS_ROLE_MAPPING TU
166
		LEFT JOIN dbo.TL_USER US ON US.TLNANME=TU.TLNAME
167
		LEFT JOIN(
168
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
169
		LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.DEP_ID AND Temp.BRANCH_ID=TU.BRANCH_ID
170
		WHERE  CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
171
		) 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='') 
172
		AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
173
		AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
174
		LEFT JOIN dbo.PL_REQUEST_DOC RD ON RD.REQ_ID = PL.REQ_ID
175
		LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
176
		WHERE PL.STATUS='C' 
177
		UNION ALL
178
		 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 FROM 
179
		(SELECT * FROM dbo.PL_REQUEST_PROCESS PRC WHERE 
180
			EXISTS(SELECT PLRD.REQ_ID FROM dbo.PL_REQUEST_DOC PLRD 
181
			WHERE PLRD.REQ_ID=PRC.REQ_ID 
182
		)  AND PRC.STATUS='C' AND PRC.PROCESS_ID <>'APPROVE' AND PRC.PROCESS_ID ='SIGN' AND (PRC.IS_HAS_CHILD = 0  OR PRC.IS_HAS_CHILD IS NULL)) PL
183
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
184
		LEFT JOIN 
185
		(
186
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU 
187
		LEFT JOIN(
188
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
189
		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
190
		) 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='')))  
191
		AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
192
		AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
193
		AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
194
		LEFT JOIN dbo.PL_REQUEST_DOC RD ON RD.REQ_ID = PL.REQ_ID
195
		LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
196
		WHERE  STATUS='C' AND (PL.PROCESS_ID = 'SIGN' AND TempU.TLNANME = RD.SIGN_USER)
197

    
198
		UNION ALL
199
		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
200
		FROM 
201
		(SELECT * FROM dbo.PL_REQUEST_PROCESS PRC WHERE 
202
			EXISTS(SELECT PLRD.REQ_ID FROM dbo.PL_REQUEST_DOC PLRD 
203
			WHERE PLRD.REQ_ID=PRC.REQ_ID 
204

    
205
		)  AND PRC.STATUS='C' AND PRC.PROCESS_ID <>'APPROVE' AND PRC.PROCESS_ID <>'SIGN' AND PRC.IS_HAS_CHILD = 1  ) PL
206
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
207
		LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
208
		LEFT JOIN 
209
		(
210
		SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC 
211
		LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
212
		WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
213
		)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
214
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
215
		LEFT JOIN 
216
			(
217
				SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU 
218
				LEFT JOIN(
219
				SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
220
				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
221
				UNION ALL
222
				SELECT TU.TLNAME,US.TLFullName,TU.ROLE_NEW RoleName,Temp.DVDM_ID,TU.DEP_ID SECUR_CODE,TU.BRANCH_ID TLSUBBRID  FROM dbo.TL_SYS_ROLE_MAPPING TU
223
				LEFT JOIN dbo.TL_USER US ON US.TLNANME=TU.TLNAME
224
				LEFT JOIN(
225
				SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
226
				LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.DEP_ID AND Temp.BRANCH_ID=TU.BRANCH_ID
227
				WHERE  CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
228
			) 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='') 
229
			AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
230
			AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
231
		WHERE  PL.STATUS='C'
232
	IF(@p_TYPE='DVKD')
233
	BEGIN	
234
		SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID,
235
               A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
236
			   UDV.TLFullName AS CHECKER_NAME_DV,
237
			   A.APPROVE_DT,
238
               A.PROCESS_ID,
239
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
240
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
241
			   WHEN A.PROCESS_ID<> 'APPROVE' AND A.AUTH_STATUS='A' THEN N'Chờ duyệt' ELSE D.AUTH_STATUS_NAME END AS AUTH_STATUS_NAME,
242
			   G.BRANCH_CODE,
243
			   CASE WHEN A.BRANCH_CREATE <> 'DV0001' THEN G.BRANCH_NAME ELSE G.BRANCH_NAME+' - ' + DEP.DEP_NAME END AS BRANCH_NAME,
244
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
245
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
246
			   UC.TLFullName AS MAKER_NAME,
247
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
248
			   RP.ROLE_USER, 
249
			   RP.NOTES AS PROCESS_STATUS , 
250
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
251
			   A.DVDM_APP_ID,
252
			   CD.DVDM_NAME AS DVDM_APP_NAME,
253
			   A.REQ_PARENT_ID,
254
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
255
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
256
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
257
			   A.BRANCH_FEE,
258
			   A.DEP_ID,
259
			   A.DEP_FEE,
260
			   DEP.DEP_NAME,
261
			   DEP.DEP_CODE,
262
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
263
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
264
			   DF.DEP_NAME AS DEP_FEE_NAME,
265
			   DF.DEP_CODE AS DEP_FEE_CODE,
266
			   '' AS BRANCH_DEP,
267
			   '' AS BRANCH_DEP_FEE,  
268
			   '' AS TYPE_JOB,
269
			   '' AS USER_JOB,
270
			   '' AS USER_JOB_NAME,
271
			   '' AS TRANSFER_MAKER,
272
			    A.CREATE_DT AS TRANFER_DT ,
273
				'' AS TRANSFER_MAKER_ID,
274
			   A.EFFEC_DT,A.IS_BACKDAY,
275
			   '' AS TYPE_JOB_XL,
276
			   '' AS USER_JOB_XL,
277
			   RP.ID AS REF_ID,
278
			   RPN.STATUS AS STATUS_NEXT,
279
			   RP.STATUS AS STATUS_CURR,
280
			   '' AS STATUS_JOB,
281
			   A.BRANCH_CREATE,
282
			   A.DEP_CREATE,
283
			   A.REQ_LINE,
284
			   A.TC_NOTES,
285
			   A.SIGN_USER,
286
			   TL.TLFullName AS SIGN_USER_NAME,
287
			   A.KT_NOTES,
288
			   A.IS_CHECKALL,
289
			   A.BASED_CONTENT,
290
			   A.PL_BASED_ID, PL_B.REQ_CODE AS PL_BASED_CODE, PL_B.REQ_CONTENT AS PL_BASED_CONTENT, 
291
			   '' AS IS_TRANSFER,
292
			   --NGUOI XU LY
293
			  NXL.NGUOIXULY AS NGUOIXULY,
294
			  '' AS TK_HDQT_NOTES, '' AS TK_TGD_NOTES, '' AS OTHER_NOTES
295
		FROM PL_REQUEST_DOC A 	
296
		--LEFT JOIN	dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID  AND PLRP.STATUS <>'U'
297
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
298
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
299
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
300

    
301
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
302
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
303

    
304
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
305
	
306
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
307
		ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') )
308
		LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID IN(SELECT TOP 1 ID FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID AND  PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID)
309
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
310
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
311
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
312
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
313
		LEFT JOIN dbo.PL_REQUEST_DOC PL_B ON PL_B.REQ_ID=A.PL_BASED_ID
314
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
315
		LEFT JOIN
316
		(
317
		
318
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
319
		FROM @lstREQUEST RE
320
		WHERE RE.REQ_ID=Results.REQ_ID
321
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
322
		STUFF((select ', ' + RE.TLNAME  
323
		FROM @lstREQUEST RE
324
		WHERE RE.REQ_ID=Results.REQ_ID
325
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
326
		FROM @lstREQUEST Results
327
		GROUP BY REQ_ID
328
		) NXL ON NXL.REQ_ID=A.REQ_ID
329

    
330
		WHERE 1 = 1
331
		
332
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
333
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
334
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
335
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
336
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
337
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
338
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
339
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
340
		AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
341
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
342
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
343
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')		
344
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
345
		AND A.RECORD_STATUS = '1'
346
		
347
		AND(
348
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
349
			OR
350
				(
351
					@p_REQ_TYPE=1 AND EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)
352
				)
353
				OR
354
				(
355
						@p_REQ_TYPE=0 AND NOT EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)
356
				)
357
			)
358

    
359
		AND    (A.MAKER_ID=@p_TLNAME_USER OR 
360
				(A.PROCESS_ID ='APPROVE' AND A.BRANCH_CREATE=@p_BRANCH_LOGIN AND (A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE<>'HS'))
361
				OR EXISTS(SELECT ID FROM dbo.PL_ROLE_DATA_CONFIG WHERE ROLE_TYPE='PL_REQUEST_DOC_ALL' AND BRANCH_ID=@p_TLNAME_USER )
362
				OR EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS PLRP WHERE PLRP.PROCESS_ID='APPNEW' AND PLRP.REQ_ID=A.REQ_ID
363
																			AND EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND AUTH.BRANCH_ID=PLRP.BRANCH_ID 
364
																														AND(PLRP.DEP_ID=AUTH.DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID ='') ))
365
				--OR (EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS PLRP WHERE A.REQ_ID=PLRP.REQ_ID AND PLRP.PROCESS_ID='APPNEW' 
366
				--												AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) AND PLRP.BRANCH_ID=@p_BRANCH_LOGIN 
367
				--												AND (PLRP.DEP_ID=@DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID =''))) 
368
		OR(A.SIGN_USER IS NOT NULL AND A.SIGN_USER <>'' AND A.SIGN_USER  =@p_TLNAME_USER AND A.AUTH_STATUS<>'E'))
369
		--AND (( @p_AUTH_STATUS='A' AND  A.PROCESS_ID='APPROVE') OR( @p_AUTH_STATUS IN('U','R','E') AND (A.PROCESS_ID <> 'APPROVE' OR A.PROCESS_ID IS NULL)) OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
370
		--AND ((A.AUTH_STATUS='E' AND A.MAKER_ID=@p_TLNAME_USER) OR (A.AUTH_STATUS <> 'E' AND (A.MAKER_ID=@p_TLNAME_USER OR (PLRP.PROCESS_ID='DVKD' AND PLRP.ROLE_USER=@p_ROLE_USER AND PLRP.BRANCH_ID=@p_BRANCH_LOGIN AND (PLRP.DEP_ID=@DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID ='')))))
371
		AND (A.AUTH_STATUS = @p_AUTH_STATUS OR @p_AUTH_STATUS ='' OR @p_AUTH_STATUS IS NULL)
372
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
373
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
374
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
375
		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
376
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
377

    
378
		AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
379
		AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
380
		
381
		ORDER BY A.CREATE_DT DESC
382
	END
383
	ELSE IF(@p_TYPE='PDTT')
384
	BEGIN
385
		
386
		SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID,
387
               A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
388

    
389
			   UDV.TLFullName AS CHECKER_NAME_DV,
390
			  
391
			   A.APPROVE_DT,
392
               A.PROCESS_ID,
393
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
394
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
395
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
396
			   G.BRANCH_CODE,
397
			   G.BRANCH_NAME,
398
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
399
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
400
			   UC.TLFullName AS MAKER_NAME,
401
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
402
			   RPN.ROLE_USER, 
403
			   RP.NOTES AS PROCESS_STATUS , 
404
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
405
			   A.DVDM_APP_ID,
406
			   CD.DVDM_NAME AS DVDM_APP_NAME,
407
			   A.REQ_PARENT_ID,
408
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
409
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
410
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
411
			   A.BRANCH_FEE,
412
			   A.DEP_ID,
413
			   A.DEP_FEE,
414
			   DEP.DEP_NAME,
415
			   DEP.DEP_CODE,
416
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
417
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
418
			   DF.DEP_NAME AS DEP_FEE_NAME,
419
			   DF.DEP_CODE AS DEP_FEE_CODE,
420
			   '' AS BRANCH_DEP,
421
			   '' AS BRANCH_DEP_FEE,
422
			   
423

    
424

    
425
			   RPC.TYPE_JOB AS TYPE_JOB,
426
			   RPC.TLNAME AS USER_JOB,
427
			   TU.TLFullName AS USER_JOB_NAME,
428
			   TFM.TLNANME AS TRANSFER_MAKER,
429
			    RPC.TRANFER_DT AS TRANFER_DT ,
430
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
431
			   A.EFFEC_DT,A.IS_BACKDAY,
432
			   '' AS TYPE_JOB_XL,
433
			   '' AS USER_JOB_XL,
434
			   RP.ID AS REF_ID,
435
			   RPN.STATUS AS STATUS_NEXT,
436
			   PLRP.STATUS AS STATUS_CURR,
437
			    RPC.STATUS_JOB AS STATUS_JOB,
438
			   A.BRANCH_CREATE,
439
			   A.DEP_CREATE,
440
			   A.REQ_LINE,
441
			     A.TC_NOTES,
442
				  A.SIGN_USER,
443
			   TL.TLFullName  AS SIGN_USER_NAME,
444
			   A.KT_NOTES,
445
			     A.IS_CHECKALL,
446
			   A.BASED_CONTENT, 
447
			   '' AS IS_TRANSFER,
448
			   --NGUOI XU LY
449
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
450
			    NXL.NGUOIXULY AS NGUOIXULY,
451
				'' AS TK_HDQT_NOTES, '' AS TK_TGD_NOTES, '' AS OTHER_NOTES
452
		FROM PL_REQUEST_DOC A 	
453
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS <>'U'	
454
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
455
		ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') )
456
		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)	
457
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
458
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
459

    
460
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
461
		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')
462
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
463
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
464
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
465
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
466
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
467
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
468
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
469
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
470
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
471
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
472
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
473
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
474
		LEFT JOIN
475
		(
476
		
477
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
478
		FROM @lstREQUEST RE
479
		WHERE RE.REQ_ID=Results.REQ_ID
480
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
481
		STUFF((select ', ' + RE.TLNAME  
482
		FROM @lstREQUEST RE
483
		WHERE RE.REQ_ID=Results.REQ_ID
484
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
485
		FROM @lstREQUEST Results
486
		GROUP BY REQ_ID
487
		) NXL ON NXL.REQ_ID=A.REQ_ID
488

    
489
		WHERE 1 = 1
490
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
491
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
492
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
493
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
494
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
495
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
496
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
497
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
498
		AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
499
		
500
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
501
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
502
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')	
503
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
504
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
505
		AND A.RECORD_STATUS = '1'
506

    
507

    
508
		AND(
509
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
510
			OR
511
				(
512
					@p_REQ_TYPE=1 AND EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)
513
				)
514
				OR
515
				(
516
						@p_REQ_TYPE=0 AND NOT EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)
517
				)
518
			)
519

    
520
		AND EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND (
521
			(PLRP.PROCESS_ID='DVDC' AND PLRP.BRANCH_ID=AUTH.BRANCH_ID AND (PLRP.DEP_ID=AUTH.DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID=''))
522
			OR PLRP.DVDM_ID=AUTH.DVDM_ID
523
			OR ((PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))
524
		))
525
		--AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) 
526
		--AND (
527
		--  (PLRP.PROCESS_ID='DVDC' AND PLRP.BRANCH_ID=@p_BRANCH_LOGIN AND (PLRP.DEP_ID=@DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID='')) 
528
		--OR ( PLRP.DVDM_ID IN (SELECT DVDM_ID FROM @DVDM_ID))
529
		--OR
530
		--( (PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))	
531
		--)
532
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
533
		AND (PLRP.IS_HAS_CHILD=0 OR PLRP.IS_HAS_CHILD IS NULL)
534
		AND (( @p_AUTH_STATUS='A' AND  PLRP.STATUS='P') OR( @p_AUTH_STATUS='U' AND (PLRP.STATUS='C')) OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
535
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
536
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
537
		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
538
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
539
		--AND(
540
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
541
		--	OR
542
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
543
		--)
544

    
545
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
546
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
547

    
548
		ORDER BY A.CREATE_DT DESC
549
 
550
	END
551
	ELSE IF(@p_TYPE='TFJOB')
552
	BEGIN
553
		
554
				SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID,
555
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
556

    
557
			   UDV.TLFullName AS CHECKER_NAME_DV,
558
			  
559
			   A.APPROVE_DT,
560
               A.PROCESS_ID,
561
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
562
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
563
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
564
			   G.BRANCH_CODE,
565
			   G.BRANCH_NAME,
566
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
567
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
568
			   UC.TLFullName AS MAKER_NAME,
569
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
570
			   RP.ROLE_USER, 
571
			   RP.NOTES AS PROCESS_STATUS , 
572
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
573
			   A.DVDM_APP_ID,
574
			   CD.DVDM_NAME AS DVDM_APP_NAME,
575
			   A.REQ_PARENT_ID,
576
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
577
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
578
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
579
			   A.BRANCH_FEE,
580
			   A.DEP_ID,
581
			   A.DEP_FEE,
582
			   DEP.DEP_NAME,
583
			   DEP.DEP_CODE,
584
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
585
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
586
			   DF.DEP_NAME AS DEP_FEE_NAME,
587
			   DF.DEP_CODE AS DEP_FEE_CODE,
588
			   '' AS BRANCH_DEP,
589
			   '' AS BRANCH_DEP_FEE,
590
			  CASE WHEN RPC.TYPE_JOB IS NULL OR RPC.TYPE_JOB ='' THEN 'TP' ELSE RPC.TYPE_JOB END AS TYPE_JOB,
591
			   RPC.TLNAME AS USER_JOB,
592
			   TU.TLFullName AS USER_JOB_NAME,
593
			   TFM.TLNANME AS TRANSFER_MAKER,
594
			    RPC.TRANFER_DT AS TRANFER_DT ,
595
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
596
			   A.EFFEC_DT,A.IS_BACKDAY,
597
			   '' AS TYPE_JOB_XL,
598
			   '' AS USER_JOB_XL,
599
			   PLRP.ID AS REF_ID,
600
			   RPN.STATUS AS STATUS_NEXT,
601
			   PLRP.STATUS AS STATUS_CURR,
602
			    RPC.STATUS_JOB AS STATUS_JOB,
603
			   A.BRANCH_CREATE,
604
			   A.DEP_CREATE,
605
			   A.REQ_LINE,
606
			   A.TC_NOTES,
607
			   A.SIGN_USER,
608
			   TL.TLFULLNAME AS SIGN_USER_NAME,
609
			   A.KT_NOTES,
610
			     A.IS_CHECKALL,
611
			   A.BASED_CONTENT, 
612
			   '' AS IS_TRANSFER,
613
			  --NGUOI XU LY
614
			 -- dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
615
			  NXL.NGUOIXULY AS NGUOIXULY,
616
			 '' AS TK_HDQT_NOTES, '' AS TK_TGD_NOTES, '' AS OTHER_NOTES
617
		FROM PL_REQUEST_DOC A 	
618
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS = 'C' AND PLRP.IS_HAS_CHILD=1
619
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
620
		ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') )
621
		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)	
622
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
623
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
624
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
625

    
626
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
627
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
628
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
629
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
630
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
631
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
632
		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')
633
		
634
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
635
	
636
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
637
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
638
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
639
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
640
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
641
		LEFT JOIN
642
		(
643
		
644
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
645
		FROM @lstREQUEST RE
646
		WHERE RE.REQ_ID=Results.REQ_ID
647
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
648
		STUFF((select ', ' + RE.TLNAME  
649
		FROM @lstREQUEST RE
650
		WHERE RE.REQ_ID=Results.REQ_ID
651
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
652
		FROM @lstREQUEST Results
653
		GROUP BY REQ_ID
654
		) NXL ON NXL.REQ_ID=A.REQ_ID
655
		WHERE 1 = 1
656
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
657
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
658
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
659
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
660
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
661
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
662
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
663
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
664
		AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
665
		
666
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
667
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
668
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')	
669
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
670
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
671
		AND A.RECORD_STATUS = '1'
672

    
673

    
674
		AND(
675
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
676
			OR
677
				(
678
					@p_REQ_TYPE=1 AND EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)
679
				)
680
				OR
681
				(
682
						@p_REQ_TYPE=0 AND NOT EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)
683
				)
684
			)
685

    
686

    
687
		
688
		AND(
689
		
690
		EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND (
691
			(PLRP.PROCESS_ID='DVDC' AND PLRP.BRANCH_ID=AUTH.BRANCH_ID AND (PLRP.DEP_ID=AUTH.DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID=''))
692
			OR PLRP.DVDM_ID=AUTH.DVDM_ID
693
			OR ((PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))
694
		))
695
			OR (EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE TLNAME=@p_TLNAME_USER AND TYPE_JOB='KS' AND PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID) ) )
696
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
697
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
698
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
699
		AND (( @p_AUTH_STATUS='A' AND  PLRP.STATUS='P') OR( @p_AUTH_STATUS='U' AND (PLRP.STATUS='C')) OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
700
		AND (NOT EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID AND PL_REQUEST_PROCESS_CHILD.STATUS_JOB='C' AND PL_REQUEST_PROCESS_CHILD.TYPE_JOB='TP'))
701
		AND (
702
			((RPC.REQ_ID IS NOT NULL OR RPC.REQ_ID <> '') AND @p_IS_TRANSFER = 'Y')
703
			OR ((RPC.REQ_ID IS NULL OR RPC.REQ_ID = '') AND @p_IS_TRANSFER = 'N')
704
			OR @p_IS_TRANSFER = '' OR @p_IS_TRANSFER IS NULL
705
			)
706
		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
707
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
708
	ORDER BY A.CREATE_DT DESC
709
	END
710
	ELSE IF(@p_TYPE='XLTT')
711
	BEGIN
712
			
713
				SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID,
714
             A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
715

    
716
			   UDV.TLFullName AS CHECKER_NAME_DV,
717
			  
718
			   A.APPROVE_DT,
719
               A.PROCESS_ID,
720
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
721
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
722
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
723
			   G.BRANCH_CODE,
724
			   CASE WHEN A.BRANCH_CREATE <> 'DV0001' THEN G.BRANCH_NAME ELSE G.BRANCH_NAME+' - ' + DEP.DEP_NAME END AS BRANCH_NAME,
725
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
726
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
727
			   UC.TLFullName AS MAKER_NAME,
728
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
729
			   RPN.ROLE_USER, 
730
			   RP.NOTES AS PROCESS_STATUS , 
731
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
732
			   A.DVDM_APP_ID,
733
			   CD.DVDM_NAME AS DVDM_APP_NAME,
734
			   A.REQ_PARENT_ID,
735
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
736
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
737
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
738
			   A.BRANCH_FEE,
739
			   A.DEP_ID,
740
			   A.DEP_FEE,
741
			   DEP.DEP_NAME,
742
			   DEP.DEP_CODE,
743
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
744
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
745
			   DF.DEP_NAME AS DEP_FEE_NAME,
746
			   DF.DEP_CODE AS DEP_FEE_CODE,
747
			   '' AS BRANCH_DEP,
748
			   '' AS BRANCH_DEP_FEE,
749
			   RPC.TYPE_JOB AS TYPE_JOB,
750
			   RPC.TLNAME AS USER_JOB,
751
			   TU.TLFullName AS USER_JOB_NAME,
752
			   TFM.TLNANME AS TRANSFER_MAKER,
753
			    RPC.TRANFER_DT AS TRANFER_DT ,
754
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
755
			   A.EFFEC_DT,A.IS_BACKDAY,
756
			   '' AS TYPE_JOB_XL,
757
			   '' AS USER_JOB_XL,
758
			   PLRP.ID AS REF_ID,
759
			   RPN.STATUS AS STATUS_NEXT,
760
			   PLRP.STATUS AS STATUS_CURR,
761
			   RPC.STATUS_JOB AS STATUS_JOB,
762
			   A.BRANCH_CREATE,
763
			   A.DEP_CREATE,
764
			   A.REQ_LINE,
765
			   A.TC_NOTES,
766
			   A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
767
			   A.KT_NOTES,
768
			     A.IS_CHECKALL,
769
			   A.BASED_CONTENT, 
770
			   '' AS IS_TRANSFER,
771
			   --NGUOI XU LY
772
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
773
			    NXL.NGUOIXULY AS NGUOIXULY,
774
				--,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES
775
				'' AS TK_HDQT_NOTES, '' AS TK_TGD_NOTES, '' AS OTHER_NOTES
776
		FROM PL_REQUEST_DOC A 	
777
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS <> 'U' AND (PLRP.IS_HAS_CHILD=1 OR PLRP.PROCESS_ID IN ('TKTGD','TKHDQT'))
778
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
779
		ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') )
780
		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)	
781
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
782
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
783
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
784

    
785
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
786
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
787
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
788
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
789
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
790
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
791
		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')
792
		
793
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
794
	
795
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
796
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
797
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
798
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
799
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
800
		LEFT JOIN
801
		(
802
		
803
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
804
		FROM @lstREQUEST RE
805
		WHERE RE.REQ_ID=Results.REQ_ID
806
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
807
		STUFF((select ', ' + RE.TLNAME  
808
		FROM @lstREQUEST RE
809
		WHERE RE.REQ_ID=Results.REQ_ID
810
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
811
		FROM @lstREQUEST Results
812
		GROUP BY REQ_ID
813
		) NXL ON NXL.REQ_ID=A.REQ_ID
814

    
815
		WHERE 1 = 1
816
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
817
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
818
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
819
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
820
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
821
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
822
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
823
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
824
		AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
825
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
826
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
827
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')	
828
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
829
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
830
		AND A.RECORD_STATUS = '1'
831
		AND(
832
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
833
			OR
834
				(
835
					@p_REQ_TYPE=1 AND EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)
836
				)
837
				OR
838
				(
839
						@p_REQ_TYPE=0 AND NOT EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)
840
				)
841
			)
842
		AND(
843
		EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND (
844
			(PLRP.PROCESS_ID='DVDC' AND PLRP.BRANCH_ID=AUTH.BRANCH_ID AND (PLRP.DEP_ID=AUTH.DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID=''))
845
			OR PLRP.DVDM_ID=AUTH.DVDM_ID
846
			OR ((PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))
847
		)) 
848
		OR (EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE TLNAME=@p_TLNAME_USER  AND PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID))
849
		OR (EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND CHECKER_ID =@p_TLNAME_USER ))
850
		)
851
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
852
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
853
			AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)		
854
		AND (( @p_AUTH_STATUS='A' AND  PLRP.STATUS='P') OR( @p_AUTH_STATUS='U' AND (PLRP.STATUS='C')) OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') 
855
	
856
			AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
857
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
858
		AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
859
		AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
860
		-- LUCTV 10 03 2021 BO SUNG DIEU KIENN NEU PHIEU CHUA DUOC DIEU PHOI THI SE KHONG TIM THAY O MAN HINH DVCM 20211018
861
		AND((EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS_CHILD  C WHERE A.REQ_ID=C.REQ_ID AND C.PROCESS_ID=PLRP.ID AND C.TLNAME =@p_TLNAME_USER AND C.STATUS_JOB IN ('C','P')))
862
			OR (@p_NGUOIXULY IS NOT NULL AND @p_NGUOIXULY <> '') OR (EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND CHECKER_ID =@p_TLNAME_USER) ))
863
	ORDER BY A.CREATE_DT DESC
864
	END
865
	ELSE IF(@p_TYPE='DVKD_PARENT')
866
	BEGIN	
867
		SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID,
868
               A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
869
			   UDV.TLFullName AS CHECKER_NAME_DV,
870
			   A.APPROVE_DT,
871
               A.PROCESS_ID,
872
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
873
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
874
			   WHEN A.PROCESS_ID<> 'APPROVE' AND A.AUTH_STATUS='A' THEN N'Chờ duyệt' ELSE D.AUTH_STATUS_NAME END AS AUTH_STATUS_NAME,
875
			   G.BRANCH_CODE,
876
			   CASE WHEN A.BRANCH_CREATE <> 'DV0001' THEN G.BRANCH_NAME ELSE G.BRANCH_NAME+' - ' + DEP.DEP_NAME END AS BRANCH_NAME,
877
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
878
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
879
			   UC.TLFullName AS MAKER_NAME,
880
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
881
			   RP.ROLE_USER, 
882
			   RP.NOTES AS PROCESS_STATUS , 
883
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
884
			   A.DVDM_APP_ID,
885
			   CD.DVDM_NAME AS DVDM_APP_NAME,
886
			   A.REQ_PARENT_ID,
887
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
888
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
889
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
890
			   A.BRANCH_FEE,
891
			   A.DEP_ID,
892
			   A.DEP_FEE,
893
			   DEP.DEP_NAME,
894
			   DEP.DEP_CODE,
895
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
896
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
897
			   DF.DEP_NAME AS DEP_FEE_NAME,
898
			   DF.DEP_CODE AS DEP_FEE_CODE,
899
			   '' AS BRANCH_DEP,
900
			   '' AS BRANCH_DEP_FEE,
901
			   '' AS TYPE_JOB,
902
			   '' AS USER_JOB,
903
			   '' AS USER_JOB_NAME,
904
			   '' AS TRANSFER_MAKER,
905
			    A.CREATE_DT AS TRANFER_DT ,
906
				'' AS TRANSFER_MAKER_ID,
907
			   A.EFFEC_DT,A.IS_BACKDAY,
908
			   '' AS TYPE_JOB_XL,
909
			   '' AS USER_JOB_XL,
910
			   0 AS REF_ID,
911
			   RPN.STATUS AS STATUS_NEXT,
912
			   RP.STATUS AS STATUS_CURR,
913
			   '' AS STATUS_JOB,
914
			   A.BRANCH_CREATE,
915
			   A.DEP_CREATE,
916
			   A.REQ_LINE,
917
			   A.TC_NOTES,
918
			   A.SIGN_USER,
919
			   TL.TLFullName AS SIGN_USER_NAME,
920
			   A.KT_NOTES,
921
			   A.IS_CHECKALL,
922
			   A.BASED_CONTENT,
923
			   A.PL_BASED_ID, PL_B.REQ_CODE AS PL_BASED_CODE, PL_B.REQ_CONTENT AS PL_BASED_CONTENT, 
924
			   '' AS IS_TRANSFER,
925
			   --NGUOI XU LY
926
			  NXL.NGUOIXULY AS NGUOIXULY,
927
			  --,A.TK_HDQT_NOTES, A.TK_TGD_NOTES, A.OTHER_NOTES
928
			  '' AS TK_HDQT_NOTES, '' AS TK_TGD_NOTES, '' AS OTHER_NOTES
929
		FROM PL_REQUEST_DOC A 	
930
		--LEFT JOIN	dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID  AND PLRP.STATUS <>'U'
931
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
932
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
933
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
934

    
935
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
936
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
937

    
938
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
939
	
940
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
941
		ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') )
942
		LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID IN(SELECT TOP 1 ID FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID AND  PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID)
943
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
944
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
945
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
946
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
947
		LEFT JOIN dbo.PL_REQUEST_DOC PL_B ON PL_B.REQ_ID=A.PL_BASED_ID
948
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
949
		LEFT JOIN
950
		(
951
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
952
		FROM @lstREQUEST RE
953
		WHERE RE.REQ_ID=Results.REQ_ID
954
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
955
		STUFF((select ', ' + RE.TLNAME  
956
		FROM @lstREQUEST RE
957
		WHERE RE.REQ_ID=Results.REQ_ID
958
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
959
		FROM @lstREQUEST Results
960
		GROUP BY REQ_ID
961
		) NXL ON NXL.REQ_ID=A.REQ_ID
962
		WHERE 1 = 1
963
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
964
		AND ((A.BRANCH_CREATE = @p_BRANCH_LOGIN AND( A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE <>'HS')) OR A.IS_CHECKALL=1)
965
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
966
		AND (ISNULL(A.PROCESS_ID,'') ='APPROVE')
967
		ORDER BY A.CREATE_DT DESC
968
 
969
	END
970
	ELSE IF(@p_TYPE='DVKD_ISALL')
971
	BEGIN	
972
		SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID,
973
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
974
			   UDV.TLFullName AS CHECKER_NAME_DV,
975
			   A.APPROVE_DT,
976
               A.PROCESS_ID,
977
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
978
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
979
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
980
			   G.BRANCH_CODE,
981
			   G.BRANCH_NAME,
982
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
983
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
984
			   UC.TLFullName AS MAKER_NAME,
985
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
986
			   RP.ROLE_USER, 
987
			   RP.NOTES AS PROCESS_STATUS , 
988
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
989
			   A.DVDM_APP_ID,
990
			   CD.DVDM_NAME AS DVDM_APP_NAME,
991
			   A.REQ_PARENT_ID,
992
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
993
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
994
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
995
			   A.BRANCH_FEE,
996
			   A.DEP_ID,
997
			   A.DEP_FEE,
998
			   DEP.DEP_NAME,
999
			   DEP.DEP_CODE,
1000
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
1001
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
1002
			   DF.DEP_NAME AS DEP_FEE_NAME,
1003
			   DF.DEP_CODE AS DEP_FEE_CODE,
1004
			   '' AS BRANCH_DEP,
1005
			   '' AS BRANCH_DEP_FEE,
1006
			   '' AS TYPE_JOB,
1007
			   '' AS USER_JOB,
1008
			   '' AS USER_JOB_NAME,
1009
			   '' AS TRANSFER_MAKER,
1010
			    A.CREATE_DT AS TRANFER_DT ,
1011
				'' AS TRANSFER_MAKER_ID,
1012
			   A.EFFEC_DT,A.IS_BACKDAY,
1013
			   '' AS TYPE_JOB_XL,
1014
			   '' AS USER_JOB_XL,
1015
			   RP.ID AS REF_ID,
1016
			   RPN.STATUS AS STATUS_NEXT,
1017
			   RP.STATUS AS STATUS_CURR,
1018
			   '' AS STATUS_JOB,
1019
			   A.BRANCH_CREATE,
1020
			   A.DEP_CREATE,
1021
			   A.REQ_LINE,
1022
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
1023
			   A.KT_NOTES,
1024
			     A.IS_CHECKALL,
1025
			   A.BASED_CONTENT, 
1026
			   '' AS IS_TRANSFER,
1027
			   --NGUOI XU LY
1028
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
1029
			    NXL.NGUOIXULY AS NGUOIXULY,
1030
				--,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES
1031
				'' AS TK_HDQT_NOTES, '' AS TK_TGD_NOTES, '' AS OTHER_NOTES
1032
		FROM PL_REQUEST_DOC A 		
1033
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1034
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
1035
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
1036

    
1037
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1038
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1039

    
1040
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1041
	
1042
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
1043
		ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') )
1044
		LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID IN(SELECT TOP 1 ID FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID AND  PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID)
1045
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1046
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
1047
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
1048
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
1049
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
1050
		LEFT JOIN
1051
		(
1052
		
1053
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
1054
		FROM @lstREQUEST RE
1055
		WHERE RE.REQ_ID=Results.REQ_ID
1056
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
1057
		STUFF((select ', ' + RE.TLNAME  
1058
		FROM @lstREQUEST RE
1059
		WHERE RE.REQ_ID=Results.REQ_ID
1060
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
1061
		FROM @lstREQUEST Results
1062
		GROUP BY REQ_ID
1063
		) NXL ON NXL.REQ_ID=A.REQ_ID
1064
		WHERE 1 = 1
1065
		
1066
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
1067
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
1068
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
1069
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
1070
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
1071
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
1072
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
1073
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
1074
			AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
1075
	
1076
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
1077
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
1078
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')		
1079
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
1080
		AND A.RECORD_STATUS = '1'
1081
		
1082
		AND(
1083
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
1084
			OR
1085
				(
1086
					@p_REQ_TYPE=1 AND EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)
1087
				)
1088
				OR
1089
				(
1090
						@p_REQ_TYPE=0 AND NOT EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)
1091
				)
1092
			)
1093

    
1094
		AND A.IS_CHECKALL=1
1095

    
1096
		AND A.PROCESS_ID='APPROVE'
1097
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
1098
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
1099
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
1100
		AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
1101
			AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
1102
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
1103
		--AND(
1104
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1105
		--	OR
1106
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1107
		--)
1108

    
1109
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
1110
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
1111

    
1112

    
1113
		ORDER BY A.CREATE_DT DESC
1114
 
1115
	END
1116
	ELSE IF(@p_TYPE='TTCT_DVCM')
1117
	BEGIN	
1118
		SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID,
1119
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
1120
			   UDV.TLFullName AS CHECKER_NAME_DV,
1121
			   A.APPROVE_DT,
1122
               A.PROCESS_ID,
1123
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
1124
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
1125
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
1126
			   G.BRANCH_CODE,
1127
			   G.BRANCH_NAME,
1128
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
1129
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
1130
			   UC.TLFullName AS MAKER_NAME,
1131
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
1132
			   RP.ROLE_USER, 
1133
			   RP.NOTES AS PROCESS_STATUS , 
1134
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
1135
			   A.DVDM_APP_ID,
1136
			   CD.DVDM_NAME AS DVDM_APP_NAME,
1137
			   A.REQ_PARENT_ID,
1138
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
1139
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
1140
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
1141
			   A.BRANCH_FEE,
1142
			   A.DEP_ID,
1143
			   A.DEP_FEE,
1144
			   DEP.DEP_NAME,
1145
			   DEP.DEP_CODE,
1146
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
1147
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
1148
			   DF.DEP_NAME AS DEP_FEE_NAME,
1149
			   DF.DEP_CODE AS DEP_FEE_CODE,
1150
			   '' AS BRANCH_DEP,
1151
			   '' AS BRANCH_DEP_FEE,
1152
			   
1153

    
1154

    
1155
			   '' AS TYPE_JOB,
1156
			   '' AS USER_JOB,
1157
			   '' AS USER_JOB_NAME,
1158
			   '' AS TRANSFER_MAKER,
1159
			    A.CREATE_DT AS TRANFER_DT ,
1160
				'' AS TRANSFER_MAKER_ID,
1161
			   A.EFFEC_DT,A.IS_BACKDAY,
1162
			   '' AS TYPE_JOB_XL,
1163
			   '' AS USER_JOB_XL,
1164
			   RP.ID AS REF_ID,
1165
			   RPN.STATUS AS STATUS_NEXT,
1166
			   RP.STATUS AS STATUS_CURR,
1167
			   '' AS STATUS_JOB,
1168
			   A.BRANCH_CREATE,
1169
			   A.DEP_CREATE,
1170
			   A.REQ_LINE,
1171
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
1172
			   A.KT_NOTES,
1173
			     A.IS_CHECKALL,
1174
			   A.BASED_CONTENT, 
1175
			   '' AS IS_TRANSFER,
1176
			   --NGUOI XU LY
1177
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
1178
			    NXL.NGUOIXULY AS NGUOIXULY,
1179
				--,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES
1180
				'' AS TK_HDQT_NOTES, '' AS TK_TGD_NOTES, '' AS OTHER_NOTES
1181
		FROM PL_REQUEST_DOC A 		
1182
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1183
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
1184
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
1185

    
1186
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1187
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1188

    
1189
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1190
	
1191
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
1192
		ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') )
1193
		LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID IN(SELECT TOP 1 ID FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID AND  PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID)
1194
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1195
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
1196
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
1197
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
1198
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
1199
		LEFT JOIN
1200
		(
1201
		
1202
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
1203
		FROM @lstREQUEST RE
1204
		WHERE RE.REQ_ID=Results.REQ_ID
1205
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
1206
		STUFF((select ', ' + RE.TLNAME  
1207
		FROM @lstREQUEST RE
1208
		WHERE RE.REQ_ID=Results.REQ_ID
1209
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
1210
		FROM @lstREQUEST Results
1211
		GROUP BY REQ_ID
1212
		) NXL ON NXL.REQ_ID=A.REQ_ID
1213
		WHERE 1 = 1
1214
		
1215
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
1216
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
1217
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
1218
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
1219
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
1220
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
1221
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
1222
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
1223
			AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
1224
	
1225
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
1226
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
1227
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')		
1228
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
1229
		AND A.RECORD_STATUS = '1'
1230
		
1231
		AND(
1232
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
1233
			OR
1234
				(
1235
					@p_REQ_TYPE=1 AND EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)
1236
				)
1237
				OR
1238
				(
1239
						@p_REQ_TYPE=0 AND NOT EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)
1240
				)
1241
			)
1242

    
1243
		AND (  
1244
		 EXISTS (SELECT * FROM dbo.PL_REQUEST_COSTCENTER PC WHERE PC.REQ_ID=A.REQ_ID AND EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.DVDM_ID=PC.COST_ID) )
1245
		)
1246

    
1247
		AND A.PROCESS_ID='APPROVE'
1248
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
1249
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
1250
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
1251
		AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
1252
			AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
1253
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
1254
		--AND(
1255
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1256
		--	OR
1257
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1258
		--)
1259

    
1260
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
1261
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
1262

    
1263

    
1264
		ORDER BY A.CREATE_DT DESC
1265
 
1266
	END
1267
	ELSE IF(@p_TYPE='REQ_PARENT')
1268
	BEGIN	
1269
		SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID,
1270
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
1271
			   UDV.TLFullName AS CHECKER_NAME_DV,
1272
			   A.APPROVE_DT,
1273
               A.PROCESS_ID,
1274
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
1275
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
1276
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
1277
			   G.BRANCH_CODE,
1278
			   G.BRANCH_NAME,
1279
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
1280
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
1281
			   UC.TLFullName AS MAKER_NAME,
1282
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
1283
			   RP.ROLE_USER, 
1284
			   RP.NOTES AS PROCESS_STATUS , 
1285
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
1286
			   A.DVDM_APP_ID,
1287
			   CD.DVDM_NAME AS DVDM_APP_NAME,
1288
			   A.REQ_PARENT_ID,
1289
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
1290
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
1291
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
1292
			   A.BRANCH_FEE,
1293
			   A.DEP_ID,
1294
			   A.DEP_FEE,
1295
			   DEP.DEP_NAME,
1296
			   DEP.DEP_CODE,
1297
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
1298
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
1299
			   DF.DEP_NAME AS DEP_FEE_NAME,
1300
			   DF.DEP_CODE AS DEP_FEE_CODE,
1301
			   '' AS BRANCH_DEP,
1302
			   '' AS BRANCH_DEP_FEE,
1303
			   
1304

    
1305

    
1306
			   '' AS TYPE_JOB,
1307
			   '' AS USER_JOB,
1308
			   '' AS USER_JOB_NAME,
1309
			   '' AS TRANSFER_MAKER,
1310
			    A.CREATE_DT AS TRANFER_DT ,
1311
				'' AS TRANSFER_MAKER_ID,
1312
			   A.EFFEC_DT,A.IS_BACKDAY,
1313
			   '' AS TYPE_JOB_XL,
1314
			   '' AS USER_JOB_XL,
1315
			   RP.ID AS REF_ID,
1316
			   RPN.STATUS AS STATUS_NEXT,
1317
			   RP.STATUS AS STATUS_CURR,
1318
			   '' AS STATUS_JOB,
1319
			   A.BRANCH_CREATE,
1320
			   A.DEP_CREATE,
1321
			   A.REQ_LINE,
1322
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
1323
			   A.KT_NOTES,
1324
			     A.IS_CHECKALL,
1325
			   A.BASED_CONTENT, 
1326
			   '' AS IS_TRANSFER,
1327
			   --NGUOI XU LY
1328
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
1329
			    NXL.NGUOIXULY AS NGUOIXULY,
1330
				'' AS TK_HDQT_NOTES, '' AS TK_TGD_NOTES, '' AS OTHER_NOTES
1331
		FROM PL_REQUEST_DOC A 		
1332
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1333
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
1334
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
1335

    
1336
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1337
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1338

    
1339
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1340
	
1341
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
1342
		ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') )
1343
		LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID IN(SELECT TOP 1 ID FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID AND  PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID)
1344
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1345
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
1346
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
1347
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
1348
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
1349
		LEFT JOIN
1350
		(
1351
		
1352
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
1353
		FROM @lstREQUEST RE
1354
		WHERE RE.REQ_ID=Results.REQ_ID
1355
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
1356
		STUFF((select ', ' + RE.TLNAME  
1357
		FROM @lstREQUEST RE
1358
		WHERE RE.REQ_ID=Results.REQ_ID
1359
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
1360
		FROM @lstREQUEST Results
1361
		GROUP BY REQ_ID
1362
		) NXL ON NXL.REQ_ID=A.REQ_ID
1363
		WHERE 1 = 1 
1364
		AND A.REQ_PARENT_ID =@p_REQ_ID
1365

    
1366
		ORDER BY A.CREATE_DT DESC
1367
 
1368
	END
1369
   END
1370

    
1371

    
1372