Project

General

Profile

1.8 WORKFLOW KIEM NHIEM UY QUYEN.txt

Luc Tran Van, 03/10/2021 04:33 PM

 
1

    
2

    
3
ALTER PROCEDURE [dbo].[PL_PROCESS_CURRENT_SEARCH]
4
	@p_REQ_ID VARCHAR(20)=NULL,
5
	@p_USER_LOGIN VARCHAR(20)=NULL,
6
	@p_TYPE VARCHAR(20)=NULL
7
AS
8
BEGIN
9

    
10
DECLARE @PROCESS_CURR VARCHAR(20),@IS_HAS_CHILD BIT
11

    
12
SELECT TOP 1 @PROCESS_CURR = PROCESS_ID,@IS_HAS_CHILD=IS_HAS_CHILD FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND STATUS='C'
13

    
14
IF(@p_TYPE LIKE 'TTCT%')
15
BEGIN
16
IF(@IS_HAS_CHILD=0 OR @IS_HAS_CHILD IS NULL)
17
BEGIN
18
	
19
	DECLARE @SIGN_USER VARCHAR(15), @CURENT_PROCESS VARCHAR(50)
20
	SET @SIGN_USER = (SELECT SIGN_USER FROM dbo.PL_REQUEST_DOC WHERE REQ_ID = @p_REQ_ID)
21
	SET @CURENT_PROCESS = (SELECT TOP 1 PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND STATUS='C')
22

    
23
	-- Nếu có cấp phê duyệt trung gian
24
	IF(@SIGN_USER IS NOT NULL AND @SIGN_USER <> '' AND @CURENT_PROCESS = 'SIGN')
25
	BEGIN
26
	    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 dbo.PL_REQUEST_PROCESS PL
27
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
28
		LEFT JOIN 
29
		(
30
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU 
31
		LEFT JOIN(
32
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
33
		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
34
		) 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='')))  
35
		AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
36
		AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
37
		AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
38
		LEFT JOIN dbo.PL_REQUEST_DOC RD ON RD.REQ_ID = PL.REQ_ID
39
		LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
40
		WHERE PL.REQ_ID = @p_REQ_ID AND STATUS='C' AND (PL.PROCESS_ID = 'SIGN' AND TempU.TLNANME = RD.SIGN_USER)
41

    
42
	END
43
	ELSE
44
	BEGIN
45
		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 dbo.PL_REQUEST_PROCESS PL
46
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
47
		LEFT JOIN 
48
		(
49
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU 
50
		LEFT JOIN(
51
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
52
		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
53
		UNION ALL
54
		SELECT TU.TLNAME,US.TLFullName,TU.ROLE_NEW RoleName,Temp.DVDM_ID,TU.DEP_ID SECUR_CODE,TU.BRANCH_ID TLSUBBRID
55
		FROM dbo.TL_SYS_ROLE_MAPPING TU
56
		LEFT JOIN dbo.TL_USER US ON US.TLNANME=TU.TLNAME
57
		LEFT JOIN(
58
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
59
		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
60
		WHERE  CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
61
		) 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='') 
62
		AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
63
		AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
64
		LEFT JOIN dbo.PL_REQUEST_DOC RD ON RD.REQ_ID = PL.REQ_ID
65
		LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
66
		WHERE PL.REQ_ID = @p_REQ_ID AND STATUS='C'
67
	END
68

    
69
END
70

    
71
ELSE IF(@IS_HAS_CHILD=1)
72
BEGIN
73
	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 FROM dbo.PL_REQUEST_PROCESS PL
74
LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
75
LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
76
LEFT JOIN 
77
(
78
SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC 
79
LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
80
WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
81
)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
82
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
83
LEFT JOIN 
84
	(
85
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU 
86
		LEFT JOIN(
87
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
88
		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
89
		UNION ALL
90
		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
91
		LEFT JOIN dbo.TL_USER US ON US.TLNANME=TU.TLNAME
92
		LEFT JOIN(
93
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
94
		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
95
		WHERE  CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
96
	) 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='') 
97
	AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
98
	AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
99
WHERE PL.REQ_ID =@p_REQ_ID AND PL.STATUS='C'
100
END
101

    
102

    
103
END
104
ELSE IF(@p_TYPE LIKE 'PYC%')
105
BEGIN
106
IF(@PROCESS_CURR='DMMS')
107
BEGIN
108
	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 FROM dbo.PL_REQUEST_PROCESS PL
109
	LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
110
	LEFT JOIN dbo.TR_REQUEST_DOC TR ON TR.REQ_ID=PL.REQ_ID
111
	LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
112
	LEFT JOIN 
113
	(
114
	SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC 
115
	LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
116
	WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
117
	)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
118
	LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
119
	LEFT JOIN 
120
	(
121
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DMMS_ID 
122
		FROM
123
		(
124
		SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
125
		dbo.TL_USER TS 
126
		UNION ALL
127
		SELECT  TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
128
		dbo.TL_SYS_ROLE_MAPPING TM
129
		LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
130
		WHERE  CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
131
		) TU
132
		LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
133
		LEFT JOIN(
134
		SELECT PC.DMMS_ID,PC.DEP_ID,PC.BRANCH_ID FROM dbo.CM_DMMS PC
135
		UNION ALL
136
		SELECT DVDM.DVDM_ID AS DMMS_ID,DVDM.DEP_ID,DVDM.BRANCH_ID  FROM 
137
		(
138
			SELECT CD.DVDM_ID,PCDT.BRANCH_ID,PCDT.DEP_ID FROM dbo.CM_DVDM CD
139
			LEFT JOIN dbo.PL_COSTCENTER PC ON PC.DVDM_ID=CD.DVDM_ID
140
			LEFT JOIN dbo.PL_COSTCENTER_DT PCDT ON PCDT.COST_ID = PC.COST_ID
141
			WHERE CD.IS_KHOI <>1
142
			GROUP BY CD.DVDM_ID,PCDT.BRANCH_ID,PCDT.DEP_ID
143
		) DVDM
144
		) Temp ON (Temp.DEP_ID=TU.SECUR_CODE OR CB.BRANCH_TYPE<>'HS') AND Temp.BRANCH_ID=TU.TLSUBBRID
145

    
146
	) 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
147
	
148
	WHERE PL.REQ_ID =@p_REQ_ID AND PL.STATUS='C'	
149
END
150
ELSE IF(@IS_HAS_CHILD=0 OR @IS_HAS_CHILD IS NULL)
151

    
152
BEGIN
153
	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 dbo.PL_REQUEST_PROCESS PL
154
	LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
155
	LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
156
	LEFT JOIN 
157
	(
158
	SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID 
159
	FROM (
160
		SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
161
		dbo.TL_USER TS 
162
		UNION ALL
163
		SELECT  TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
164
		dbo.TL_SYS_ROLE_MAPPING TM
165
		LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
166
		WHERE  CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
167
		) TU
168
	LEFT JOIN
169
		(
170
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
171
		LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID
172
		) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
173
	) 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='') 
174
	AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
175
	AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
176
	WHERE REQ_ID =@p_REQ_ID AND STATUS='C'
177
	 
178
END
179
ELSE IF(@IS_HAS_CHILD=1)
180
BEGIN
181
	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 FROM dbo.PL_REQUEST_PROCESS PL
182
	LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
183
	LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
184
	LEFT JOIN 
185
	(
186
	SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC 
187
	LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
188
	WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
189
	)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
190
	LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
191
	LEFT JOIN 
192
	(
193
	SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID 
194
	FROM       (
195
		SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
196
		dbo.TL_USER TS 
197
		UNION ALL
198
		SELECT  TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
199
		dbo.TL_SYS_ROLE_MAPPING TM
200
		LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
201
		WHERE  CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
202
		)  TU 
203
	LEFT JOIN(
204
	SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
205
	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
206
	) 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='') 
207
	AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
208
	AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
209
	WHERE PL.REQ_ID =@p_REQ_ID AND PL.STATUS='C'		
210
END
211
END
212

    
213
END
214
--EXEC CM_GOODS_Search '','','','','',0,'','','','','','','','',100
215
¿
216

    
217
ALTER PROCEDURE [dbo].[PL_REQUEST_DOC_Search]
218
@p_REQ_ID	varchar(15)  = NULL,
219
@p_REQ_CODE	nvarchar(100)  = NULL,
220
@p_REQ_NAME	nvarchar(200)  = NULL,
221
@p_REQ_DT	DATETIME = NULL,
222
@p_REQ_TYPE	int = NULL,
223
@p_REQ_CONTENT NVARCHAR(1000)=NULL,
224
@p_REQ_REASON NVARCHAR(500)=NULL,
225
@p_TOTAL_AMT	decimal = NULL,
226
@p_NOTES	nvarchar(1000)  = NULL,
227
@p_RECORD_STATUS	varchar(1)  = NULL,
228
@p_MAKER_ID	varchar(12)  = NULL,
229
@p_CREATE_DT	DATETIME = NULL,
230
@p_AUTH_STATUS	varchar(50)  = NULL,
231
@p_CHECKER_ID	varchar(12)  = NULL,
232
@p_APPROVE_DT	DATETIME = NULL,
233
@p_PROCESS_ID varchar(15) = NULL,
234
@p_BRANCH_ID VARCHAR(15)=NULL,
235
@p_DEP_ID VARCHAR(15) = NULL,
236
@p_BRANCH_LOGIN VARCHAR(15),
237
@p_ROLE_USER VARCHAR(20),
238
@p_TLNAME_USER VARCHAR(15),
239
@p_FR_DATE DATETIME = NULL,
240
@p_TO_DATE DATETIME = NULL,
241
@p_TYPE_TRANFER VARCHAR(15),
242
@p_TYPE VARCHAR(15),
243
@p_YEAR INT,
244
@p_TOP	INT = 10,
245
@p_IS_TRANSFER VARCHAR(10) = NULL,
246
@p_NGUOIXULY NVARCHAR(15) = NULL
247

    
248
AS
249
BEGIN
250

    
251
	DECLARE @TABLE_ROLE TABLE 
252
	( ROLE_ID VARCHAR(20))
253
	INSERT INTO @TABLE_ROLE VALUES(@p_ROLE_USER)
254

    
255
	
256
	INSERT INTO @TABLE_ROLE
257
	SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@p_ROLE_USER
258
	
259

    
260

    
261
	DECLARE @DEP_ID VARCHAR(15),@BRANCH_TYPE VARCHAR(15)
262
	
263
	DECLARE
264
	@COST_ID TABLE (
265
		COST_ID VARCHAR(15)
266
	)
267

    
268
	DECLARE @DVDM_ID TABLE (
269
		DVDM_ID VARCHAR(15)
270
	)
271
	SET @DEP_ID =(SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@p_TLNAME_USER)
272
	SET @BRANCH_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_LOGIN)
273

    
274

    
275
	IF(EXISTS(SELECT DEP_CODE FROM dbo.CM_DEPARTMENT WHERE DEP_ID=@DEP_ID AND DEP_CODE LIKE '069%'))
276
	BEGIN
277
		SET @BRANCH_TYPE='HS'
278
	END
279

    
280

    
281

    
282
	DECLARE @AUTHOR TABLE
283
	(
284
		ROLE_ID VARCHAR(100),
285
		BRANCH_ID VARCHAR(20),
286
		DEP_ID VARCHAR(20)
287
	)
288
	DECLARE @AUTHOR_DVDM TABLE
289
	(
290
		ROLE_ID VARCHAR(100),
291
		BRANCH_ID VARCHAR(20),
292
		DEP_ID VARCHAR(20),
293
		DVDM_ID VARCHAR(20)
294
	)
295

    
296
	INSERT INTO @AUTHOR
297
	(
298
	    ROLE_ID,
299
	    BRANCH_ID,
300
	    DEP_ID
301
	)
302
	SELECT RoleName,TLSUBBRID,SECUR_CODE FROM dbo.TL_USER TU
303
	WHERE TLNANME=@p_TLNAME_USER
304
	UNION ALL
305
	SELECT TM.ROLE_NEW RoleName,TLSUBBRID,SECUR_CODE FROM dbo.TL_USER TU
306
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='')
307
	WHERE TLNANME=@p_TLNAME_USER AND TM.ROLE_NEW IS NOT NULL
308
	UNION ALL
309
	SELECT TM1.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE FROM dbo.TL_SYS_ROLE_MAPPING TM1
310
	WHERE TM1.TLNAME=@p_TLNAME_USER AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
311
	UNION ALL
312
	SELECT TM.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE FROM dbo.TL_SYS_ROLE_MAPPING TM1
313
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TM1.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='')
314
	WHERE TM1.TLNAME=@p_TLNAME_USER AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
315

    
316
	INSERT INTO @AUTHOR_DVDM
317
	(
318
	    ROLE_ID,
319
	    BRANCH_ID,
320
	    DEP_ID,
321
	    DVDM_ID
322
	)
323
	SELECT TU.RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU 
324
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=TU.SECUR_CODE
325
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
326
	WHERE TU.TLNANME=@p_TLNAME_USER
327
	UNION ALL
328
	SELECT TM.ROLE_NEW RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU 
329
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=TU.SECUR_CODE
330
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
331
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='')
332
	WHERE TU.TLNANME=@p_TLNAME_USER AND TM.ROLE_NEW IS NOT NULL
333
	UNION ALL
334
	SELECT TU.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU 
335
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=TU.DEP_ID
336
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
337
	WHERE TU.TLNAME=@p_TLNAME_USER AND CAST(EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
338
	UNION ALL
339
	SELECT TM.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU 
340
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=TU.DEP_ID
341
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
342
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='')
343
	WHERE TU.TLNAME=@p_TLNAME_USER AND CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)	
344

    
345
	INSERT INTO @COST_ID
346
	SELECT COST_ID FROM dbo.PL_COSTCENTER_DT WHERE DEP_ID=@DEP_ID AND BRANCH_ID=@p_BRANCH_LOGIN
347
	INSERT INTO @DVDM_ID
348
	SELECT DVDM_ID FROM dbo.PL_COSTCENTER WHERE COST_ID IN (SELECT COST_ID FROM @COST_ID) GROUP BY DVDM_ID
349

    
350
	---- NGUOI XU lY TIEP THEO 18022021
351
			DECLARE @lstREQUEST TABLE (
352
			REQ_ID VARCHAR(20),
353
			PROCESS_ID VARCHAR(50),
354
			DVDM_NAME NVARCHAR(200),
355
			TLNAME VARCHAR(200),
356
			TLFullName NVARCHAR(200),
357
			NOTES NVARCHAR(200)
358
		)
359
		INSERT INTO @lstREQUEST
360
		( REQ_ID,PROCESS_ID, DVDM_NAME,TLNAME,TLFullName, NOTES)
361
		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 
362
		(SELECT * FROM dbo.PL_REQUEST_PROCESS PRC WHERE 
363
			EXISTS(SELECT PLRD.REQ_ID FROM dbo.PL_REQUEST_DOC PLRD 
364
			WHERE PLRD.REQ_ID=PRC.REQ_ID 
365

    
366
		) 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
367
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
368
		LEFT JOIN 
369
		(
370
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU 
371
		LEFT JOIN(
372
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
373
		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
374
		UNION ALL
375
		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
376
		LEFT JOIN dbo.TL_USER US ON US.TLNANME=TU.TLNAME
377
		LEFT JOIN(
378
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
379
		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
380
		WHERE  CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
381
		) 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='') 
382
		AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
383
		AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
384
		LEFT JOIN dbo.PL_REQUEST_DOC RD ON RD.REQ_ID = PL.REQ_ID
385
		LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
386
		WHERE PL.STATUS='C' 
387
		UNION ALL
388
		 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 
389
		(SELECT * FROM dbo.PL_REQUEST_PROCESS PRC WHERE 
390
			EXISTS(SELECT PLRD.REQ_ID FROM dbo.PL_REQUEST_DOC PLRD 
391
			WHERE PLRD.REQ_ID=PRC.REQ_ID 
392
		)  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
393
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
394
		LEFT JOIN 
395
		(
396
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU 
397
		LEFT JOIN(
398
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
399
		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
400
		) 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='')))  
401
		AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
402
		AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
403
		AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
404
		LEFT JOIN dbo.PL_REQUEST_DOC RD ON RD.REQ_ID = PL.REQ_ID
405
		LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
406
		WHERE  STATUS='C' AND (PL.PROCESS_ID = 'SIGN' AND TempU.TLNANME = RD.SIGN_USER)
407

    
408
		UNION ALL
409
		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
410
		FROM 
411
		(SELECT * FROM dbo.PL_REQUEST_PROCESS PRC WHERE 
412
			EXISTS(SELECT PLRD.REQ_ID FROM dbo.PL_REQUEST_DOC PLRD 
413
			WHERE PLRD.REQ_ID=PRC.REQ_ID 
414

    
415
		)  AND PRC.STATUS='C' AND PRC.PROCESS_ID <>'APPROVE' AND PRC.PROCESS_ID <>'SIGN' AND PRC.IS_HAS_CHILD = 1  ) PL
416
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
417
		LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
418
		LEFT JOIN 
419
		(
420
		SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC 
421
		LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
422
		WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
423
		)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
424
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
425
		LEFT JOIN 
426
			(
427
				SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU 
428
				LEFT JOIN(
429
				SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
430
				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
431
				UNION ALL
432
				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
433
				LEFT JOIN dbo.TL_USER US ON US.TLNANME=TU.TLNAME
434
				LEFT JOIN(
435
				SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
436
				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
437
				WHERE  CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
438
			) 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='') 
439
			AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
440
			AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
441
		WHERE  PL.STATUS='C'
442

    
443

    
444

    
445

    
446
		
447
	----
448

    
449

    
450

    
451

    
452
	IF(@p_TYPE='DVKD')
453
	BEGIN	
454
		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,
455
               A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
456
			   UDV.TLFullName AS CHECKER_NAME_DV,
457
			   A.APPROVE_DT,
458
               A.PROCESS_ID,
459
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
460
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
461
			   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,
462
			   G.BRANCH_CODE,
463
			   G.BRANCH_NAME,
464
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
465
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
466
			   UC.TLFullName AS MAKER_NAME,
467
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
468
			   RP.ROLE_USER, 
469
			   RP.NOTES AS PROCESS_STATUS , 
470
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
471
			   A.DVDM_APP_ID,
472
			   CD.DVDM_NAME AS DVDM_APP_NAME,
473
			   A.REQ_PARENT_ID,
474
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
475
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
476
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
477
			   A.BRANCH_FEE,
478
			   A.DEP_ID,
479
			   A.DEP_FEE,
480
			   DEP.DEP_NAME,
481
			   DEP.DEP_CODE,
482
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
483
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
484
			   DF.DEP_NAME AS DEP_FEE_NAME,
485
			   DF.DEP_CODE AS DEP_FEE_CODE,
486
			   '' AS BRANCH_DEP,
487
			   '' AS BRANCH_DEP_FEE,
488
			   
489

    
490

    
491
			   '' AS TYPE_JOB,
492
			   '' AS USER_JOB,
493
			   '' AS USER_JOB_NAME,
494
			   '' AS TRANSFER_MAKER,
495
			    A.CREATE_DT AS TRANFER_DT ,
496
				'' AS TRANSFER_MAKER_ID,
497
			   A.EFFEC_DT,A.IS_BACKDAY,
498
			   '' AS TYPE_JOB_XL,
499
			   '' AS USER_JOB_XL,
500
			   RP.ID AS REF_ID,
501
			   RPN.STATUS AS STATUS_NEXT,
502
			   RP.STATUS AS STATUS_CURR,
503
			   '' AS STATUS_JOB,
504
			   A.BRANCH_CREATE,
505
			   A.DEP_CREATE,
506
			   A.REQ_LINE,
507
			   A.TC_NOTES,
508
			   A.SIGN_USER,
509
			   TL.TLFullName AS SIGN_USER_NAME,
510
			   A.KT_NOTES,
511
			   A.IS_CHECKALL,
512
			   A.BASED_CONTENT,
513
			   A.PL_BASED_ID, PL_B.REQ_CODE AS PL_BASED_CODE, PL_B.REQ_CONTENT AS PL_BASED_CONTENT, 
514
			   '' AS IS_TRANSFER,
515
			   --NGUOI XU LY
516
			  NXL.NGUOIXULY AS NGUOIXULY
517
			   
518
		FROM PL_REQUEST_DOC A 	
519
		--LEFT JOIN	dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID  AND PLRP.STATUS <>'U'
520
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
521
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
522
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
523

    
524
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
525
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
526

    
527
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
528
	
529
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
530
		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') )
531
		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)
532
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
533
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
534
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
535
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
536
		LEFT JOIN dbo.PL_REQUEST_DOC PL_B ON PL_B.REQ_ID=A.PL_BASED_ID
537
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
538
		LEFT JOIN
539
		(
540
		
541
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
542
		FROM @lstREQUEST RE
543
		WHERE RE.REQ_ID=Results.REQ_ID
544
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
545
		STUFF((select ', ' + RE.TLNAME  
546
		FROM @lstREQUEST RE
547
		WHERE RE.REQ_ID=Results.REQ_ID
548
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
549
		FROM @lstREQUEST Results
550
		GROUP BY REQ_ID
551
		) NXL ON NXL.REQ_ID=A.REQ_ID
552

    
553
		WHERE 1 = 1
554
		
555
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
556
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
557
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
558
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
559
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
560
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
561
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
562
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
563
			AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
564
	
565
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
566
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
567
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')		
568
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
569
		AND A.RECORD_STATUS = '1'
570
		
571
		AND(
572
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
573
			OR
574
				(
575
					@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)
576
				)
577
				OR
578
				(
579
						@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)
580
				)
581
			)
582

    
583
		AND    (A.MAKER_ID=@p_TLNAME_USER OR 
584
				(A.PROCESS_ID ='APPROVE' AND A.BRANCH_CREATE=@p_BRANCH_LOGIN AND (A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE<>'HS'))
585
				OR EXISTS(SELECT ID FROM dbo.PL_ROLE_DATA_CONFIG WHERE ROLE_TYPE='PL_REQUEST_DOC_ALL' AND BRANCH_ID=@p_TLNAME_USER )
586
				OR EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS PLRP WHERE PLRP.PROCESS_ID='APPNEW' AND PLRP.REQ_ID=A.REQ_ID
587
																			AND EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND AUTH.BRANCH_ID=PLRP.BRANCH_ID 
588
																														AND(PLRP.DEP_ID=AUTH.DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID ='') ))
589
				--OR (EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS PLRP WHERE A.REQ_ID=PLRP.REQ_ID AND PLRP.PROCESS_ID='APPNEW' 
590
				--												AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) AND PLRP.BRANCH_ID=@p_BRANCH_LOGIN 
591
				--												AND (PLRP.DEP_ID=@DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID =''))) 
592
		OR(A.SIGN_USER IS NOT NULL AND A.SIGN_USER <>'' AND A.SIGN_USER  =@p_TLNAME_USER AND A.AUTH_STATUS<>'E'))
593
		--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 = '')
594
		--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 ='')))))
595
		AND (A.AUTH_STATUS = @p_AUTH_STATUS OR @p_AUTH_STATUS ='' OR @p_AUTH_STATUS IS NULL)
596
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
597
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
598
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
599
		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
600
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
601

    
602
		AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
603
		AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
604
		
605
		ORDER BY A.CREATE_DT DESC
606
	END
607
	ELSE IF(@p_TYPE='PDTT')
608
	BEGIN
609
		
610
		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,
611
               A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
612

    
613
			   UDV.TLFullName AS CHECKER_NAME_DV,
614
			  
615
			   A.APPROVE_DT,
616
               A.PROCESS_ID,
617
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
618
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
619
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
620
			   G.BRANCH_CODE,
621
			   G.BRANCH_NAME,
622
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
623
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
624
			   UC.TLFullName AS MAKER_NAME,
625
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
626
			   RPN.ROLE_USER, 
627
			   RP.NOTES AS PROCESS_STATUS , 
628
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
629
			   A.DVDM_APP_ID,
630
			   CD.DVDM_NAME AS DVDM_APP_NAME,
631
			   A.REQ_PARENT_ID,
632
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
633
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
634
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
635
			   A.BRANCH_FEE,
636
			   A.DEP_ID,
637
			   A.DEP_FEE,
638
			   DEP.DEP_NAME,
639
			   DEP.DEP_CODE,
640
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
641
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
642
			   DF.DEP_NAME AS DEP_FEE_NAME,
643
			   DF.DEP_CODE AS DEP_FEE_CODE,
644
			   '' AS BRANCH_DEP,
645
			   '' AS BRANCH_DEP_FEE,
646
			   
647

    
648

    
649
			   RPC.TYPE_JOB AS TYPE_JOB,
650
			   RPC.TLNAME AS USER_JOB,
651
			   TU.TLFullName AS USER_JOB_NAME,
652
			   TFM.TLNANME AS TRANSFER_MAKER,
653
			    RPC.TRANFER_DT AS TRANFER_DT ,
654
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
655
			   A.EFFEC_DT,A.IS_BACKDAY,
656
			   '' AS TYPE_JOB_XL,
657
			   '' AS USER_JOB_XL,
658
			   RP.ID AS REF_ID,
659
			   RPN.STATUS AS STATUS_NEXT,
660
			   PLRP.STATUS AS STATUS_CURR,
661
			    RPC.STATUS_JOB AS STATUS_JOB,
662
			   A.BRANCH_CREATE,
663
			   A.DEP_CREATE,
664
			   A.REQ_LINE,
665
			     A.TC_NOTES,
666
				  A.SIGN_USER,
667
			   TL.TLFullName  AS SIGN_USER_NAME,
668
			   A.KT_NOTES,
669
			     A.IS_CHECKALL,
670
			   A.BASED_CONTENT, 
671
			   '' AS IS_TRANSFER,
672
			   --NGUOI XU LY
673
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
674
			    NXL.NGUOIXULY AS NGUOIXULY
675
		FROM PL_REQUEST_DOC A 	
676
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS <>'U'	
677
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
678
		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') )
679
		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)	
680
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
681
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
682

    
683
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
684
		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')
685
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
686
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
687
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
688
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
689
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
690
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
691
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
692
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
693
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
694
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
695
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
696
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
697
		LEFT JOIN
698
		(
699
		
700
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
701
		FROM @lstREQUEST RE
702
		WHERE RE.REQ_ID=Results.REQ_ID
703
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
704
		STUFF((select ', ' + RE.TLNAME  
705
		FROM @lstREQUEST RE
706
		WHERE RE.REQ_ID=Results.REQ_ID
707
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
708
		FROM @lstREQUEST Results
709
		GROUP BY REQ_ID
710
		) NXL ON NXL.REQ_ID=A.REQ_ID
711

    
712
		WHERE 1 = 1
713
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
714
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
715
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
716
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
717
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
718
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
719
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
720
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
721
		AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
722
		
723
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
724
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
725
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')	
726
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
727
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
728
		AND A.RECORD_STATUS = '1'
729

    
730

    
731
		AND(
732
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
733
			OR
734
				(
735
					@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)
736
				)
737
				OR
738
				(
739
						@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)
740
				)
741
			)
742

    
743
		AND EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND (
744
			(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=''))
745
			OR PLRP.DVDM_ID=AUTH.DVDM_ID
746
			OR ((PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))
747
		))
748
		--AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) 
749
		--AND (
750
		--  (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='')) 
751
		--OR ( PLRP.DVDM_ID IN (SELECT DVDM_ID FROM @DVDM_ID))
752
		--OR
753
		--( (PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))	
754
		--)
755
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
756
		AND (PLRP.IS_HAS_CHILD=0 OR PLRP.IS_HAS_CHILD IS NULL)
757
		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 = '')
758
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
759
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
760
		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
761
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
762
		--AND(
763
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
764
		--	OR
765
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
766
		--)
767

    
768
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
769
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
770

    
771
		ORDER BY A.CREATE_DT DESC
772
 
773
	END
774
	ELSE IF(@p_TYPE='TFJOB')
775
	BEGIN
776
		
777
				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,
778
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
779

    
780
			   UDV.TLFullName AS CHECKER_NAME_DV,
781
			  
782
			   A.APPROVE_DT,
783
               A.PROCESS_ID,
784
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
785
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
786
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
787
			   G.BRANCH_CODE,
788
			   G.BRANCH_NAME,
789
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
790
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
791
			   UC.TLFullName AS MAKER_NAME,
792
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
793
			   RP.ROLE_USER, 
794
			   RP.NOTES AS PROCESS_STATUS , 
795
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
796
			   A.DVDM_APP_ID,
797
			   CD.DVDM_NAME AS DVDM_APP_NAME,
798
			   A.REQ_PARENT_ID,
799
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
800
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
801
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
802
			   A.BRANCH_FEE,
803
			   A.DEP_ID,
804
			   A.DEP_FEE,
805
			   DEP.DEP_NAME,
806
			   DEP.DEP_CODE,
807
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
808
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
809
			   DF.DEP_NAME AS DEP_FEE_NAME,
810
			   DF.DEP_CODE AS DEP_FEE_CODE,
811
			   '' AS BRANCH_DEP,
812
			   '' AS BRANCH_DEP_FEE,
813
			   RPC.TYPE_JOB AS TYPE_JOB,
814
			   RPC.TLNAME AS USER_JOB,
815
			   TU.TLFullName AS USER_JOB_NAME,
816
			   TFM.TLNANME AS TRANSFER_MAKER,
817
			    RPC.TRANFER_DT AS TRANFER_DT ,
818
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
819
			   A.EFFEC_DT,A.IS_BACKDAY,
820
			   '' AS TYPE_JOB_XL,
821
			   '' AS USER_JOB_XL,
822
			   PLRP.ID AS REF_ID,
823
			   RPN.STATUS AS STATUS_NEXT,
824
			   PLRP.STATUS AS STATUS_CURR,
825
			    RPC.STATUS_JOB AS STATUS_JOB,
826
			   A.BRANCH_CREATE,
827
			   A.DEP_CREATE,
828
			   A.REQ_LINE,
829
			   A.TC_NOTES,
830
			   A.SIGN_USER,
831
			   TL.TLFULLNAME AS SIGN_USER_NAME,
832
			   A.KT_NOTES,
833
			     A.IS_CHECKALL,
834
			   A.BASED_CONTENT, 
835
			   '' AS IS_TRANSFER,
836
			  --NGUOI XU LY
837
			 -- dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
838
			  NXL.NGUOIXULY AS NGUOIXULY
839
		FROM PL_REQUEST_DOC A 	
840
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS = 'C' AND PLRP.IS_HAS_CHILD=1
841
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
842
		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') )
843
		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)	
844
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
845
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
846
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
847

    
848
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
849
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
850
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
851
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
852
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
853
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
854
		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')
855
		
856
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
857
	
858
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
859
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
860
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
861
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
862
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
863
		LEFT JOIN
864
		(
865
		
866
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
867
		FROM @lstREQUEST RE
868
		WHERE RE.REQ_ID=Results.REQ_ID
869
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
870
		STUFF((select ', ' + RE.TLNAME  
871
		FROM @lstREQUEST RE
872
		WHERE RE.REQ_ID=Results.REQ_ID
873
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
874
		FROM @lstREQUEST Results
875
		GROUP BY REQ_ID
876
		) NXL ON NXL.REQ_ID=A.REQ_ID
877
		WHERE 1 = 1
878
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
879
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
880
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
881
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
882
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
883
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
884
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
885
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
886
		AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
887
		
888
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
889
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
890
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')	
891
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
892
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
893
		AND A.RECORD_STATUS = '1'
894

    
895

    
896
		AND(
897
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
898
			OR
899
				(
900
					@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)
901
				)
902
				OR
903
				(
904
						@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)
905
				)
906
			)
907

    
908

    
909
		
910
		AND(
911
		
912
		EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND (
913
			(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=''))
914
			OR PLRP.DVDM_ID=AUTH.DVDM_ID
915
			OR ((PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))
916
		))
917
			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) ) )
918
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
919
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
920
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
921
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 = '')
922
  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'))
923
		AND (
924
			((RPC.REQ_ID IS NOT NULL OR RPC.REQ_ID <> '') AND @p_IS_TRANSFER = 'Y')
925
			OR ((RPC.REQ_ID IS NULL OR RPC.REQ_ID = '') AND @p_IS_TRANSFER = 'N')
926
			OR @p_IS_TRANSFER = '' OR @p_IS_TRANSFER IS NULL
927
			)
928
		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
929
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
930
		--AND(
931
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
932
		--	OR
933
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
934
		--)
935

    
936
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
937
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
938

    
939

    
940
	ORDER BY A.CREATE_DT DESC
941
	END
942

    
943
	ELSE IF(@p_TYPE='XLTT')
944
	BEGIN
945
			
946
				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,
947
             A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
948

    
949
			   UDV.TLFullName AS CHECKER_NAME_DV,
950
			  
951
			   A.APPROVE_DT,
952
               A.PROCESS_ID,
953
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
954
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
955
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
956
			   G.BRANCH_CODE,
957
			   G.BRANCH_NAME,
958
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
959
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
960
			   UC.TLFullName AS MAKER_NAME,
961
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
962
			   RPN.ROLE_USER, 
963
			   RP.NOTES AS PROCESS_STATUS , 
964
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
965
			   A.DVDM_APP_ID,
966
			   CD.DVDM_NAME AS DVDM_APP_NAME,
967
			   A.REQ_PARENT_ID,
968
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
969
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
970
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
971
			   A.BRANCH_FEE,
972
			   A.DEP_ID,
973
			   A.DEP_FEE,
974
			   DEP.DEP_NAME,
975
			   DEP.DEP_CODE,
976
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
977
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
978
			   DF.DEP_NAME AS DEP_FEE_NAME,
979
			   DF.DEP_CODE AS DEP_FEE_CODE,
980
			   '' AS BRANCH_DEP,
981
			   '' AS BRANCH_DEP_FEE,
982
			   
983

    
984

    
985
			   RPC.TYPE_JOB AS TYPE_JOB,
986
			   RPC.TLNAME AS USER_JOB,
987
			   TU.TLFullName AS USER_JOB_NAME,
988
			   TFM.TLNANME AS TRANSFER_MAKER,
989
			    RPC.TRANFER_DT AS TRANFER_DT ,
990
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
991
			   A.EFFEC_DT,A.IS_BACKDAY,
992
			   '' AS TYPE_JOB_XL,
993
			   '' AS USER_JOB_XL,
994
			   PLRP.ID AS REF_ID,
995
			   RPN.STATUS AS STATUS_NEXT,
996
			   PLRP.STATUS AS STATUS_CURR,
997
			   RPC.STATUS_JOB AS STATUS_JOB,
998
			   A.BRANCH_CREATE,
999
			   A.DEP_CREATE,
1000
			   A.REQ_LINE,
1001
			   A.TC_NOTES,
1002
			   A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
1003
			   A.KT_NOTES,
1004
			     A.IS_CHECKALL,
1005
			   A.BASED_CONTENT, 
1006
			   '' AS IS_TRANSFER,
1007
			   --NGUOI XU LY
1008
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
1009
			    NXL.NGUOIXULY AS NGUOIXULY
1010
		FROM PL_REQUEST_DOC A 	
1011
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS <> 'U' AND PLRP.IS_HAS_CHILD=1
1012
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
1013
		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') )
1014
		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)	
1015
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1016
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
1017
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
1018

    
1019
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1020
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1021
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
1022
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
1023
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
1024
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
1025
		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')
1026
		
1027
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1028
	
1029
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1030
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
1031
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
1032
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
1033
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
1034
		LEFT JOIN
1035
		(
1036
		
1037
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
1038
		FROM @lstREQUEST RE
1039
		WHERE RE.REQ_ID=Results.REQ_ID
1040
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
1041
		STUFF((select ', ' + RE.TLNAME  
1042
		FROM @lstREQUEST RE
1043
		WHERE RE.REQ_ID=Results.REQ_ID
1044
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
1045
		FROM @lstREQUEST Results
1046
		GROUP BY REQ_ID
1047
		) NXL ON NXL.REQ_ID=A.REQ_ID
1048

    
1049
		WHERE 1 = 1
1050
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
1051
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
1052
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
1053
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
1054
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
1055
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
1056
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
1057
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
1058
		AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
1059
		
1060
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
1061
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
1062
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')	
1063
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
1064
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
1065
		AND A.RECORD_STATUS = '1'
1066

    
1067

    
1068
		AND(
1069
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
1070
			OR
1071
				(
1072
					@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)
1073
				)
1074
				OR
1075
				(
1076
						@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)
1077
				)
1078
			)
1079

    
1080

    
1081
		
1082
		AND(
1083
		EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND (
1084
			(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=''))
1085
			OR PLRP.DVDM_ID=AUTH.DVDM_ID
1086
			OR ((PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))
1087
		)) 
1088
		OR (EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE TLNAME=@p_TLNAME_USER  AND PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID) ))
1089
				AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
1090
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
1091
			AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)		
1092
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 = '') 
1093
	
1094
			AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
1095
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
1096
		--AND(
1097
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1098
		--	OR
1099
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1100
		--)
1101

    
1102
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
1103
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
1104
		-- LUCTV 10 03 2021 BO SUNG DIEU KIENN NEU PHIEU CHUA DUOC DIEU PHOI THI SE KHONG TIM THAY O MAN HINH DVCM
1105
		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 STATUS_JOB ='C' )) 
1106
			OR (@p_NGUOIXULY IS NOT NULL AND @p_NGUOIXULY <> ''))
1107
	ORDER BY A.CREATE_DT DESC
1108
	END
1109
	ELSE IF(@p_TYPE='DVKD_PARENT')
1110
	BEGIN	
1111
		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,
1112
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
1113
			   UDV.TLFullName AS CHECKER_NAME_DV,
1114
			   A.APPROVE_DT,
1115
               A.PROCESS_ID,
1116
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
1117
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
1118
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
1119
			   G.BRANCH_CODE,
1120
			   G.BRANCH_NAME,
1121
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
1122
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
1123
			   UC.TLFullName AS MAKER_NAME,
1124
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
1125
			   RP.ROLE_USER, 
1126
			   RP.NOTES AS PROCESS_STATUS , 
1127
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
1128
			   A.DVDM_APP_ID,
1129
			   CD.DVDM_NAME AS DVDM_APP_NAME,
1130
			   A.REQ_PARENT_ID,
1131
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
1132
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
1133
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
1134
			   A.BRANCH_FEE,
1135
			   A.DEP_ID,
1136
			   A.DEP_FEE,
1137
			   DEP.DEP_NAME,
1138
			   DEP.DEP_CODE,
1139
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
1140
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
1141
			   DF.DEP_NAME AS DEP_FEE_NAME,
1142
			   DF.DEP_CODE AS DEP_FEE_CODE,
1143
			   '' AS BRANCH_DEP,
1144
			   '' AS BRANCH_DEP_FEE,
1145
			   
1146

    
1147

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

    
1177
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1178
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1179

    
1180
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1181
	
1182
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
1183
		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') )
1184
		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)
1185
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1186
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
1187
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
1188
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
1189
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
1190
		LEFT JOIN
1191
		(
1192
		
1193
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
1194
		FROM @lstREQUEST RE
1195
		WHERE RE.REQ_ID=Results.REQ_ID
1196
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
1197
		STUFF((select ', ' + RE.TLNAME  
1198
		FROM @lstREQUEST RE
1199
		WHERE RE.REQ_ID=Results.REQ_ID
1200
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
1201
		FROM @lstREQUEST Results
1202
		GROUP BY REQ_ID
1203
		) NXL ON NXL.REQ_ID=A.REQ_ID
1204
		WHERE 1 = 1
1205
		
1206
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
1207
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
1208
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
1209
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
1210
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
1211
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
1212
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
1213
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
1214
			AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
1215
	
1216
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
1217
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
1218
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')		
1219
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
1220
		AND A.RECORD_STATUS = '1'
1221
		
1222
		AND(
1223
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
1224
			OR
1225
				(
1226
					@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)
1227
				)
1228
				OR
1229
				(
1230
						@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)
1231
				)
1232
			)
1233

    
1234
		AND (  (A.BRANCH_CREATE = @p_BRANCH_LOGIN AND( A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE <>'HS')) OR A.IS_CHECKALL=1)
1235

    
1236
		AND A.PROCESS_ID='APPROVE'
1237
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
1238
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
1239
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
1240
		AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
1241
		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
1242
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
1243
		--AND(
1244
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1245
		--	OR
1246
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1247
		--)
1248

    
1249
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
1250
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
1251

    
1252

    
1253
		ORDER BY A.CREATE_DT DESC
1254
 
1255
	END
1256
	ELSE IF(@p_TYPE='DVKD_ISALL')
1257
	BEGIN	
1258
		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,
1259
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
1260
			   UDV.TLFullName AS CHECKER_NAME_DV,
1261
			   A.APPROVE_DT,
1262
               A.PROCESS_ID,
1263
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
1264
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
1265
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
1266
			   G.BRANCH_CODE,
1267
			   G.BRANCH_NAME,
1268
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
1269
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
1270
			   UC.TLFullName AS MAKER_NAME,
1271
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
1272
			   RP.ROLE_USER, 
1273
			   RP.NOTES AS PROCESS_STATUS , 
1274
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
1275
			   A.DVDM_APP_ID,
1276
			   CD.DVDM_NAME AS DVDM_APP_NAME,
1277
			   A.REQ_PARENT_ID,
1278
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
1279
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
1280
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
1281
			   A.BRANCH_FEE,
1282
			   A.DEP_ID,
1283
			   A.DEP_FEE,
1284
			   DEP.DEP_NAME,
1285
			   DEP.DEP_CODE,
1286
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
1287
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
1288
			   DF.DEP_NAME AS DEP_FEE_NAME,
1289
			   DF.DEP_CODE AS DEP_FEE_CODE,
1290
			   '' AS BRANCH_DEP,
1291
			   '' AS BRANCH_DEP_FEE,
1292
			   
1293

    
1294

    
1295
			   '' AS TYPE_JOB,
1296
			   '' AS USER_JOB,
1297
			   '' AS USER_JOB_NAME,
1298
			   '' AS TRANSFER_MAKER,
1299
			    A.CREATE_DT AS TRANFER_DT ,
1300
				'' AS TRANSFER_MAKER_ID,
1301
			   A.EFFEC_DT,A.IS_BACKDAY,
1302
			   '' AS TYPE_JOB_XL,
1303
			   '' AS USER_JOB_XL,
1304
			   RP.ID AS REF_ID,
1305
			   RPN.STATUS AS STATUS_NEXT,
1306
			   RP.STATUS AS STATUS_CURR,
1307
			   '' AS STATUS_JOB,
1308
			   A.BRANCH_CREATE,
1309
			   A.DEP_CREATE,
1310
			   A.REQ_LINE,
1311
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
1312
			   A.KT_NOTES,
1313
			     A.IS_CHECKALL,
1314
			   A.BASED_CONTENT, 
1315
			   '' AS IS_TRANSFER,
1316
			   --NGUOI XU LY
1317
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
1318
			    NXL.NGUOIXULY AS NGUOIXULY
1319
		FROM PL_REQUEST_DOC A 		
1320
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1321
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
1322
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
1323

    
1324
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1325
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1326

    
1327
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1328
	
1329
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
1330
		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') )
1331
		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)
1332
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1333
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
1334
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
1335
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
1336
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
1337
		LEFT JOIN
1338
		(
1339
		
1340
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
1341
		FROM @lstREQUEST RE
1342
		WHERE RE.REQ_ID=Results.REQ_ID
1343
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
1344
		STUFF((select ', ' + RE.TLNAME  
1345
		FROM @lstREQUEST RE
1346
		WHERE RE.REQ_ID=Results.REQ_ID
1347
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
1348
		FROM @lstREQUEST Results
1349
		GROUP BY REQ_ID
1350
		) NXL ON NXL.REQ_ID=A.REQ_ID
1351
		WHERE 1 = 1
1352
		
1353
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
1354
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
1355
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
1356
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
1357
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
1358
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
1359
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
1360
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
1361
			AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
1362
	
1363
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
1364
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
1365
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')		
1366
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
1367
		AND A.RECORD_STATUS = '1'
1368
		
1369
		AND(
1370
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
1371
			OR
1372
				(
1373
					@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)
1374
				)
1375
				OR
1376
				(
1377
						@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)
1378
				)
1379
			)
1380

    
1381
		AND A.IS_CHECKALL=1
1382

    
1383
		AND A.PROCESS_ID='APPROVE'
1384
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
1385
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
1386
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
1387
		AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
1388
			AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
1389
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
1390
		--AND(
1391
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1392
		--	OR
1393
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1394
		--)
1395

    
1396
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
1397
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
1398

    
1399

    
1400
		ORDER BY A.CREATE_DT DESC
1401
 
1402
	END
1403
	ELSE IF(@p_TYPE='TTCT_DVCM')
1404
	BEGIN	
1405
		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,
1406
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
1407
			   UDV.TLFullName AS CHECKER_NAME_DV,
1408
			   A.APPROVE_DT,
1409
               A.PROCESS_ID,
1410
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
1411
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
1412
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
1413
			   G.BRANCH_CODE,
1414
			   G.BRANCH_NAME,
1415
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
1416
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
1417
			   UC.TLFullName AS MAKER_NAME,
1418
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
1419
			   RP.ROLE_USER, 
1420
			   RP.NOTES AS PROCESS_STATUS , 
1421
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
1422
			   A.DVDM_APP_ID,
1423
			   CD.DVDM_NAME AS DVDM_APP_NAME,
1424
			   A.REQ_PARENT_ID,
1425
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
1426
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
1427
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
1428
			   A.BRANCH_FEE,
1429
			   A.DEP_ID,
1430
			   A.DEP_FEE,
1431
			   DEP.DEP_NAME,
1432
			   DEP.DEP_CODE,
1433
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
1434
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
1435
			   DF.DEP_NAME AS DEP_FEE_NAME,
1436
			   DF.DEP_CODE AS DEP_FEE_CODE,
1437
			   '' AS BRANCH_DEP,
1438
			   '' AS BRANCH_DEP_FEE,
1439
			   
1440

    
1441

    
1442
			   '' AS TYPE_JOB,
1443
			   '' AS USER_JOB,
1444
			   '' AS USER_JOB_NAME,
1445
			   '' AS TRANSFER_MAKER,
1446
			    A.CREATE_DT AS TRANFER_DT ,
1447
				'' AS TRANSFER_MAKER_ID,
1448
			   A.EFFEC_DT,A.IS_BACKDAY,
1449
			   '' AS TYPE_JOB_XL,
1450
			   '' AS USER_JOB_XL,
1451
			   RP.ID AS REF_ID,
1452
			   RPN.STATUS AS STATUS_NEXT,
1453
			   RP.STATUS AS STATUS_CURR,
1454
			   '' AS STATUS_JOB,
1455
			   A.BRANCH_CREATE,
1456
			   A.DEP_CREATE,
1457
			   A.REQ_LINE,
1458
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
1459
			   A.KT_NOTES,
1460
			     A.IS_CHECKALL,
1461
			   A.BASED_CONTENT, 
1462
			   '' AS IS_TRANSFER,
1463
			   --NGUOI XU LY
1464
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
1465
			    NXL.NGUOIXULY AS NGUOIXULY
1466
		FROM PL_REQUEST_DOC A 		
1467
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1468
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
1469
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
1470

    
1471
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1472
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1473

    
1474
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1475
	
1476
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
1477
		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') )
1478
		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)
1479
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1480
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
1481
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
1482
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
1483
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
1484
		LEFT JOIN
1485
		(
1486
		
1487
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
1488
		FROM @lstREQUEST RE
1489
		WHERE RE.REQ_ID=Results.REQ_ID
1490
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
1491
		STUFF((select ', ' + RE.TLNAME  
1492
		FROM @lstREQUEST RE
1493
		WHERE RE.REQ_ID=Results.REQ_ID
1494
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
1495
		FROM @lstREQUEST Results
1496
		GROUP BY REQ_ID
1497
		) NXL ON NXL.REQ_ID=A.REQ_ID
1498
		WHERE 1 = 1
1499
		
1500
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
1501
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
1502
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
1503
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
1504
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
1505
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
1506
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
1507
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
1508
			AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
1509
	
1510
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
1511
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
1512
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')		
1513
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
1514
		AND A.RECORD_STATUS = '1'
1515
		
1516
		AND(
1517
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
1518
			OR
1519
				(
1520
					@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)
1521
				)
1522
				OR
1523
				(
1524
						@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)
1525
				)
1526
			)
1527

    
1528
		AND (  
1529
		 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) )
1530
		)
1531

    
1532
		AND A.PROCESS_ID='APPROVE'
1533
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
1534
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
1535
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
1536
		AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
1537
			AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
1538
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
1539
		--AND(
1540
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1541
		--	OR
1542
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1543
		--)
1544

    
1545
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
1546
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
1547

    
1548

    
1549
		ORDER BY A.CREATE_DT DESC
1550
 
1551
	END
1552
   END