Project

General

Profile

[GSOFT-ABBANK].1.04042025.FIX.txt

Luc Tran Van, 04/04/2025 05:04 PM

 
1
SET QUOTED_IDENTIFIER ON
2
SET ANSI_NULLS ON
3
GO
4

    
5
ALTER PROCEDURE dbo.TR_REQUEST_DOC_Search
6
@p_REQ_ID	varchar(15)  = NULL,
7
@p_REQ_CODE	nvarchar(100)  = NULL,
8
@p_REQ_NAME	nvarchar(200)  = NULL,
9
@p_REQ_DT	VARCHAR(20) = NULL,
10
@p_REQ_TYPE	varchar(20) = NULL,
11
@p_REQ_CONTENT NVARCHAR(1000)=NULL,
12
@p_CONTRACT_ID	varchar(15)  = NULL,
13
@p_SUP_ID	varchar(15)  = NULL,
14
@p_SUP_NAME	nvarchar(200)  = NULL,
15
@p_SUP_ADDR	nvarchar(200)  = NULL,
16
@p_TOTAL_AMT	decimal = NULL,
17
@p_NOTES	nvarchar(1000)  = NULL,
18
@p_RECORD_STATUS	varchar(1)  = NULL,
19
@p_MAKER_ID NVARCHAR(100)  = NULL,
20
@p_CREATE_DT	VARCHAR(20) = NULL,
21
@p_AUTH_STATUS	varchar(50)  = NULL,
22
@p_CHECKER_ID VARCHAR(100)  = NULL,
23
@p_APPROVE_DT	VARCHAR(20) = NULL,
24
@p_CONTRACT_CODE VARCHAR(15) = NULL,
25
@p_RECEIVE_BRANCH VARCHAR(15) = NULL,
26
@p_USERNAME VARCHAR(100) = NULL,
27
@p_BRANCH_ID VARCHAR(15)=NULL,
28
@p_DEP_ID VARCHAR(15)=NULL,
29
@p_STATUS  VARCHAR(15)=NULL,
30
@p_TOP	INT = 10,
31
@p_DVKD_MANAGE_APP_FROM	VARCHAR(20) = NULL,
32
@p_DVKD_MANAGE_APP_TO	VARCHAR(20) = NULL,
33
@p_REGION_ID varchar(15)  = NULL,
34
@p_LIST_CONTRACT_CODE VARCHAR(MAX) = NULL,
35
@p_LIST_MSTT VARCHAR(MAX) = NULL
36

    
37

    
38
AS
39
BEGIN -- PAGING
40
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 
41
	DECLARE @DEP_ID VARCHAR(20),@BRANCH_ID VARCHAR(20)
42
	DECLARE  @ROLE_LOGIN TABLE(ROLE_USER VARCHAR(20))
43
	INSERT INTO @ROLE_LOGIN SELECT DisplayName AS ROLE_USER FROM AbpRoles WHERE Id IN (SELECT A.RoleId FROM AbpUserRoles A 
44
																		LEFT JOIN TL_USER B ON A.UserId = B.ID
45
																		WHERE B.TLNANME = @p_USERNAME)
46

    
47
	SET @DEP_ID= (SELECT DEP_ID FROM dbo.TL_USER WHERE TLNANME=@p_USERNAME)
48
	SET @BRANCH_ID= (SELECT TLSUBBRID FROM dbo.TL_USER WHERE TLNANME=@p_USERNAME)
49
	DECLARE @lstCOST TABLE
50
	(
51
		COST_ID VARCHAR(20)
52
	)
53
	INSERT INTO @lstCOST
54
	SELECT COST_ID FROM dbo.CM_COSTCENTER_DT WHERE BRANCH_ID=@BRANCH_ID AND DEP_ID=@DEP_ID
55
	-- TienLee 11/14/21 --
56
	DECLARE @REQUEST_DOC_DT_TABLE_CC TABLE
57
		(
58
			CONTRACT_CODE VARCHAR(50) NULL
59
		)
60
	DECLARE @REQUEST_DOC_DT_TABLE_M TABLE
61
		(
62
			MSTT VARCHAR(15) NULL
63
		)
64
	IF @p_LIST_CONTRACT_CODE IS NOT NULL OR @p_LIST_CONTRACT_CODE = ''
65
	BEGIN
66
		DECLARE @id VARCHAR(15) 
67

    
68
		DECLARE setTable CURSOR FOR
69
		SELECT VALUE AS 'CONTRACT_CODE' FROM dbo.wsiSplit(@p_LIST_CONTRACT_CODE, ',')
70

    
71
		OPEN setTable 
72

    
73
		FETCH NEXT FROM setTable
74
			  INTO @id
75

    
76
		WHILE @@FETCH_STATUS = 0
77
		BEGIN
78
			IF(@id != 'null')
79
			BEGIN
80
				INSERT INTO @REQUEST_DOC_DT_TABLE_CC(CONTRACT_CODE)
81
				VALUES(@id)
82
			END
83
			FETCH NEXT FROM setTable
84
				  INTO @id
85
		END
86

    
87
		CLOSE setTable
88
		DEALLOCATE setTable							
89
	END
90
	--
91
	IF @p_LIST_MSTT IS NOT NULL OR @p_LIST_MSTT = ''
92
	BEGIN
93
		DECLARE @id_ VARCHAR(15) 
94

    
95
		DECLARE setTable_ CURSOR FOR
96
		SELECT VALUE AS 'MSTT' FROM dbo.wsiSplit(@p_LIST_MSTT, ',')
97

    
98
		OPEN setTable_ 
99

    
100
		FETCH NEXT FROM setTable_
101
			  INTO @id_
102

    
103
		WHILE @@FETCH_STATUS = 0
104
		BEGIN
105
		IF(@id_ != 'null')
106
			BEGIN
107
				INSERT INTO @REQUEST_DOC_DT_TABLE_M(MSTT)
108
				VALUES(@id_)
109
			END
110
			FETCH NEXT FROM setTable_
111
				  INTO @id_
112
		END
113

    
114
		CLOSE setTable_
115
		DEALLOCATE setTable_						
116
	END
117

    
118
	DECLARE @TempSTATUS   TABLE
119
	(
120
		STATUS VARCHAR(20)
121
	)
122

    
123
	IF(EXISTS(SELECT ROLE_USER FROM @ROLE_LOGIN WHERE ROLE_USER ='QLTS' ))
124
	BEGIN
125
		INSERT INTO @TempSTATUS VALUES('DVKD')
126
		INSERT INTO @TempSTATUS VALUES('DVCM')
127
	END
128
	ELSE IF(EXISTS(SELECT ROLE_USER FROM @ROLE_LOGIN WHERE ROLE_USER ='DVCM' ))
129
	BEGIN
130
		INSERT INTO @TempSTATUS VALUES('QLTS_N')
131
		--INSERT INTO @TempSTATUS VALUES('DVCM')
132
	END
133
	--ELSE IF(EXISTS(SELECT ROLE_USER FROM @ROLE_LOGIN WHERE ROLE_USER ='CVMS' ))
134
	--BEGIN
135
	--	INSERT INTO @TempSTATUS VALUES('QLTS_N')
136
	--	INSERT INTO @TempSTATUS VALUES('QLTS_XL')
137
	--	--INSERT INTO @TempSTATUS VALUES('DVCM')
138
	--END
139

    
140
		DECLARE @lstBRANCH_DEP TABLE
141
	(
142
		BRANCH_ID VARCHAR(20),
143
		DEP_ID VARCHAR(20)
144
	) 
145

    
146

    
147
	IF(NOT EXISTS(SELECT ROLE_USER FROM @ROLE_LOGIN WHERE ROLE_USER ='DVCM' OR ROLE_USER='CVMS_TBP' ))
148
	BEGIN
149
		INSERT INTO @lstBRANCH_DEP
150
		(BRANCH_ID,DEP_ID)
151
		SELECT TLSUBBRID,DEP_ID FROM dbo.TL_USER WHERE TLNANME=@p_USERNAME 
152

    
153
		INSERT INTO @lstBRANCH_DEP
154
		(BRANCH_ID,DEP_ID)
155
		SELECT BRANCH_ID,DEP_ID FROM dbo.CM_KHOI_DT
156
		WHERE KHOI_ID IN (SELECT KHOI_ID FROM dbo.CM_KHOI_DT WHERE DEP_ID= @DEP_ID AND BRANCH_ID=@BRANCH_ID)
157
	END
158

    
159

    
160

    
161
  DECLARE @tbDep TABLE(DEP_ID VARCHAR(20))
162
INSERT INTO @tbDep
163
SELECT ckd.DEP_ID FROM CM_DEPARTMENT cd
164
LEFT JOIN CM_KHOI ck ON cd.DEP_CODE=ck.KHOI_CODE
165
LEFT JOIN CM_KHOI_DT ckd ON ck.KHOI_ID = ckd.KHOI_ID
166
WHERE cd.DEP_ID=@p_DEP_ID
167

    
168

    
169

    
170

    
171

    
172
	IF((EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_SLAS' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN))))
173
	BEGIN
174
		IF(@P_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0)
175
			BEGIN
176
			-- PAGING BEGIN
177
				SELECT A.REQ_ID,
178
					   A.REQ_CODE,
179
					   A.REQ_NAME,
180
					   ISNULL(PRP.APPROVE_DT,PRP2.APPROVE_DT) AS REQ_DT,
181
					   A.REQ_TYPE,
182
					   A.REQ_CONTENT,
183
					   A.CONTRACT_ID,
184
					   A.SUP_ID,
185
					   A.SUP_NAME,
186
					   A.SUP_ADDR,
187
					   A.TOTAL_AMT,
188
					   A.NOTES,
189
					   A.RECORD_STATUS,
190
					   A.MAKER_ID,
191
					   A.CREATE_DT,
192
					   A.AUTH_STATUS,
193
					   A.CHECKER_ID,
194
					   A.APPROVE_DT,
195
					   A.BRANCH_ID,
196
					   A.STATUS,
197
					   A.DEP_ID,
198
					   A.HO_NOTES,C.CONTRACT_CODE,  E.SUP_CODE AS S_SUP_CODE, E.SUP_NAME AS S_SUP_NAME, E.ADDR AS S_ADDR, K.CONTENT AS REQ_TYPE_NAME,
199
                   CASE 
200
                       	WHEN A.STATUS='DONE' AND A.BRANCH_ID='DV0001' AND KHOI.KHOI_CODE <>'D2200' THEN N'Đợi PMS trình Ban điều hàng theo đúng quy định'
201
                    	  WHEN A.STATUS='DONE' AND( A.BRANCH_ID <> 'DV0001' OR KHOI.KHOI_CODE='D2200') THEN N'Phiếu đang chuyển trình Ban điều hành.' -- NguyenTD: Fix theo yêu cầu chị Loan
202

    
203

    
204
                       	ELSE  ISNULL(J.CONTENT, I.CONTENT)
205
                       	-- ELSE
206
                       END 
207
                        
208
                         AS REQ_STATUS_NAME,
209
						F.CONTRACT_CODE AS C_CONTRACT_CODE, F.[CONTRACT_NAME] AS C_CONTRACT_NAME,  F.TOTAL_AMT AS C_TOTAL_AMT ,
210
						ISNULL((SELECT SUM(TR_REQ.TOTAL_AMT) FROM TR_REQUEST_DOC TR_REQ WHERE TR_REQ.CONTRACT_ID = A.CONTRACT_ID),0) AS C_DONE_AMT, @p_RECEIVE_BRANCH AS RECEIVE_BRANCH,G.BRANCH_CODE,G.BRANCH_NAME, PRP.DVKD_USER_APP,
211
						--CASE WHEN  RQT.STATUS = 'C' OR RQT.STATUS = 'U' THEN N'Chờ duyệt' 
212
						--ELSE N'Đã duyệt' END AS AUTH_STATUS_NAME
213
						D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME
214
						--D.AUTH_STATUS_NAME 
215
				-- SELECT END
216
				FROM TR_REQUEST_DOC A
217

    
218
				LEFT JOIN TR_CONTRACT C ON A.CONTRACT_ID = C.CONTRACT_ID  
219
				LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
220
				LEFT JOIN CM_SUPPLIER E ON E.SUP_ID= A.SUP_ID
221
				LEFT JOIN TR_CONTRACT F ON F.CONTRACT_ID = A.CONTRACT_ID --AND A.CONTRACT_ID IS NOT NULL
222
				LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
223
				LEFT JOIN CM_ALLCODE K ON K.CDNAME = 'TRREQTYPE' AND K.CDVAL = A.REQ_TYPE
224
				LEFT JOIN CM_ALLCODE I ON I.CDNAME = 'TRREQSTATUS' AND I.CDVAL = A.[STATUS]
225
         LEFT JOIN CM_ALLCODE J ON J.CDNAME='TRREQAFTER' AND J.CDVAL=A.AFTER_APPROVE
226
         LEFT JOIN (
227
SELECT CK.KHOI_ID,CK.KHOI_CODE,ckd.DEP_ID FROM CM_KHOI ck 
228
LEFT JOIN CM_KHOI_DT ckd ON ck.KHOI_ID = ckd.KHOI_ID
229
) KHOI ON KHOI.DEP_ID=A.DEP_ID
230

    
231

    
232
				LEFT JOIN dbo.PL_REQUEST_PROCESS PRP ON PRP.REQ_ID=A.REQ_ID AND   (PRP.ID = (SELECT TOP (1) ID FROM PL_REQUEST_PROCESS WHERE PROCESS_ID IN (SELECT STATUS FROM @TempSTATUS ) AND PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID ORDER BY ID DESC) 
233
				
234
																						OR ( NOT EXISTS(SELECT STATUS FROM @TempSTATUS) AND PRP.PROCESS_ID IN (SELECT T.PARENT_PROCESS_ID FROM dbo.PL_REQUEST_PROCESS T WHERE T.REQ_ID=A.REQ_ID AND T.PROCESS_ID=@p_STATUS) OR ((PRP.PROCESS_ID='DVKD_XN' ) AND @p_STATUS='DONE')))
235
		
236
				 
237
				--LEFT JOIN dbo.CM_AUTH_STATUS AUTH ON AUTH.AUTH_STATUS = A.AUTH_STATUS
238
				--LEFT JOIN dbo.PL_REQUEST_PROCESS RQT ON RQT.REQ_ID = A.REQ_ID 
239
				--AND (((RQT.PROCESS_ID = A.STATUS AND  RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR (RQT.PROCESS_ID = A.STATUS AND EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN))))
240
				--LEFT JOIN dbo.PL_REQUEST_PROCESS PRP1 ON PRP1.REQ_ID = A.REQ_ID  AND PRP1.PROCESS_ID = 'CVMS_N'
241
				LEFT JOIN dbo.PL_REQUEST_PROCESS PRP2 ON PRP2.REQ_ID = A.REQ_ID  AND PRP2.PROCESS_ID = 'DVKD'
242
				
243
				LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=A.MAKER_ID
244
				WHERE 1 = 1
245
				AND (G.REGION_ID LIKE '%' + @p_REGION_ID + '%' OR @p_REGION_ID IS NULL OR @p_REGION_ID = '')
246
				AND (CONVERT(DATETIME,@p_DVKD_MANAGE_APP_FROM,103) <= CAST (PRP2.RECEPTION_DT AS DATE)  OR @p_DVKD_MANAGE_APP_FROM IS NULL OR @p_DVKD_MANAGE_APP_FROM = '')
247
				AND (DATEADD(day,1,CONVERT(DATETIME,@p_DVKD_MANAGE_APP_TO,103)) > CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_TO IS NULL OR @p_DVKD_MANAGE_APP_TO = '')
248
		
249
				--AND (((RQT.PROCESS_ID = A.STATUS AND  RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN)))
250
				--AND ((@p_AUTH_STATUS = 'U' AND (RQT.STATUS = 'C' OR RQT.STATUS = 'U')) OR (@p_AUTH_STATUS = 'A' AND (RQT.STATUS = 'P' OR RQT.STATUS IS NULL))OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = ''))		
251
				AND  A.REQ_DT >='2021-09-01'
252
				AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
253
				AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
254
				AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
255
				AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
256
				--AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI  OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
257
				--AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
258
				AND (A.CONTRACT_ID LIKE '%' + @p_CONTRACT_ID + '%' OR @p_CONTRACT_ID IS NULL OR @p_CONTRACT_ID = '')
259
				AND (A.SUP_ID LIKE '%' + @p_SUP_ID + '%' OR @p_SUP_ID IS NULL OR @p_SUP_ID = '')
260
				AND (A.SUP_ADDR LIKE '%' + @p_SUP_ADDR + '%' OR @p_SUP_ADDR IS NULL OR @p_SUP_ADDR = '')		
261
				AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
262
				
263
				AND (DATEDIFF(DAY,A.CREATE_DT , CONVERT(DATETIME,@p_CREATE_DT,103)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
264
				--AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
265
				AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
266
				AND (DATEDIFF(DAY,A.APPROVE_DT , CONVERT(DATETIME,@p_APPROVE_DT,103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')		
267
				AND (C.CONTRACT_CODE LIKE '%' + @P_CONTRACT_CODE + '%' OR @P_CONTRACT_CODE = '' OR @P_CONTRACT_CODE IS NULL)
268
				AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
269
				AND (A.STATUS = @p_STATUS OR @p_STATUS IS NULL OR @p_STATUS = '' OR @p_STATUS='WAITAPP' OR @p_STATUS='DONEAPP'  
270
				
271
					OR (@p_STATUS ='WAITPO' AND A.AUTH_STATUS='A' AND A.STATUS='APPROVE' AND NOT EXISTS (SELECT PO.PO_ID FROM dbo.TR_PO_MASTER PO WHERE PO.REQ_DOC_ID=A.REQ_ID)) 
272
				
273
					 OR (@p_STATUS ='CREATEDPO' AND A.AUTH_STATUS='A' AND  EXISTS (SELECT PO.PO_ID FROM dbo.TR_PO_MASTER PO WHERE PO.REQ_DOC_ID=A.REQ_ID))
274
					 OR (@p_STATUS='WAITASS' AND A.AUTH_STATUS='A' AND A.STATUS='APPROVE' AND NOT EXISTS(SELECT ADDNEW_ID FROM dbo.ASS_ADDNEW_PO ASSPO
275
																							INNER JOIN dbo.TR_PO_MASTER PM ON PM.PO_ID=ASSPO.PO_ID
276
																							WHERE PM.REQ_DOC_ID=A.REQ_ID))
277
					OR (@p_STATUS='WAITASS_USE' AND A.AUTH_STATUS='A'  AND A.STATUS='APPROVE' AND NOT EXISTS(SELECT ASS_USE.USER_MASTER_ID FROM dbo.ASS_USE_MULTI_MASTER ASS_USE
278
																												
279
																												WHERE ASS_USE.REQ_ID=A.REQ_ID AND ASS_USE.AUTH_STATUS='A'))
280
					OR (@p_STATUS = 'QLTS_N' AND A.STATUS LIKE '%QLTS%')
281
					 OR (@p_STATUS = 'DVCM_XN' AND EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS PRC WHERE PRC.REQ_ID=A.REQ_ID AND PRC.PROCESS_ID='DVCM' AND PRC.STATUS='P'))
282
					OR(@p_STATUS='IN_PROCESS' AND EXISTS(SELECT ID FROM PL_REQUEST_PROCESS PRC2 WHERE PRC2.REQ_ID=A.REQ_ID AND PRC2.STATUS='C'))
283
					OR(@p_STATUS='CVMS_REJECT' AND EXISTS(SELECT * FROM dbo.PL_PROCESS PLR WHERE (PLR.PROCESS_DESC='Reject' OR PLR.PROCESS_DESC='REJECT_QLTS' OR PLR.PROCESS_DESC='REJECT_DVCM') AND PROCESS_ID='CVMS_N' AND PLR.REQ_ID=A.REQ_ID))
284
				)
285
					  
286
				--AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM  CM_BRANCH_GETCHILDID(@p_BRANCH_ID)))
287
				--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
288
				--AND (@p_RECEIVE_BRANCH IS NULL OR @p_RECEIVE_BRANCH = '' OR EXISTS(SELECT REQ_DOC_ID FROM TR_REQUEST_DOC_DT WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH AND REQ_DOC_ID = A.REQ_ID))
289
				AND A.RECORD_STATUS = '1'
290
				AND (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' OR A.BRANCH_ID = @p_BRANCH_ID)
291
				AND (@p_DEP_ID IS NULL OR @p_DEP_ID = '' OR A.DEP_ID IN (SELECT DEP_ID FROM @tbDep))
292
				AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI  OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
293
				AND( TU.TLFullName COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI  OR TU.TLNANME COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI 
294
				 OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
295

    
296
				 	AND (EXISTS(SELECT * FROM TR_REQUEST_DOC_DT DTT
297
								LEFT JOIN dbo.TR_CONTRACT TC ON TC.CONTRACT_ID=DTT.CONTRACT_ID
298
							INNER JOIN @REQUEST_DOC_DT_TABLE_CC DT_1 ON DT_1.CONTRACT_CODE = ISNULL(TC.CONTRACT_CODE,DTT.CONTRACT_CODE)
299
							WHERE DTT.REQ_DOC_ID = A.REQ_ID)
300
					OR @p_LIST_CONTRACT_CODE IS NULL OR @p_LIST_CONTRACT_CODE = ''
301
				)
302
				AND (EXISTS(SELECT * FROM TR_REQUEST_DOC_DT DTT
303
							INNER JOIN @REQUEST_DOC_DT_TABLE_M DT_1 ON DT_1.MSTT = DTT.MSTT
304
							WHERE DTT.REQ_DOC_ID = A.REQ_ID)
305
					OR @p_LIST_MSTT IS NULL OR @p_LIST_MSTT = ''
306
				)
307

    
308
				
309
				ORDER BY  PRP.APPROVE_DT,A.REQ_DT DESC
310
			-- PAGING END
311
			END
312
		   ELSE 
313
		   BEGIN
314
		   -- PAGING BEGIN
315
				SELECT TOP(CONVERT(INT,@P_TOP)) A.REQ_ID,
316
												A.REQ_CODE,
317
												A.REQ_NAME,
318
												 ISNULL(PRP.APPROVE_DT,PRP2.APPROVE_DT) AS REQ_DT,
319
												A.REQ_TYPE,
320
												A.REQ_CONTENT,
321
												A.CONTRACT_ID,
322
												A.SUP_ID,
323
												A.SUP_NAME,
324
												A.SUP_ADDR,
325
												A.TOTAL_AMT,
326
												A.NOTES,
327
												A.RECORD_STATUS,
328
												A.MAKER_ID,
329
												A.CREATE_DT,
330
												A.AUTH_STATUS,
331
												A.CHECKER_ID,
332
												A.APPROVE_DT,
333
												A.BRANCH_ID,
334
												A.STATUS,
335
												A.DEP_ID,
336
												A.HO_NOTES,C.CONTRACT_CODE,   E.SUP_CODE AS S_SUP_CODE, E.SUP_NAME AS S_SUP_NAME, E.ADDR AS S_ADDR, K.CONTENT AS REQ_TYPE_NAME,
337
                             CASE 
338
                       	WHEN A.STATUS='DONE' AND A.BRANCH_ID='DV0001' AND KHOI.KHOI_CODE <>'D2200' THEN N'Đợi PMS trình Ban điều hàng theo đúng quy định'
339
                    	  WHEN A.STATUS='DONE' AND( A.BRANCH_ID <> 'DV0001' OR KHOI.KHOI_CODE='D2200') THEN N'Phiếu đang chuyển trình Ban điều hành.' -- NguyenTD: Fix theo yêu cầu chị Loan
340

    
341

    
342
                       	ELSE  ISNULL(J.CONTENT, I.CONTENT)
343
                       	-- ELSE
344
                       END 
345
                        
346
                         AS REQ_STATUS_NAME,
347
						F.CONTRACT_CODE AS C_CONTRACT_CODE, F.[CONTRACT_NAME] AS C_CONTRACT_NAME,  F.TOTAL_AMT AS C_TOTAL_AMT ,
348
						ISNULL((SELECT SUM(TR_REQ.TOTAL_AMT) FROM TR_REQUEST_DOC TR_REQ WHERE TR_REQ.CONTRACT_ID = A.CONTRACT_ID),0) AS C_DONE_AMT, @p_RECEIVE_BRANCH AS RECEIVE_BRANCH,G.BRANCH_CODE,G.BRANCH_NAME, PRP.DVKD_USER_APP,
349
						--CASE WHEN  RQT.STATUS = 'C' OR RQT.STATUS = 'U' THEN N'Chờ duyệt' 
350
						--ELSE N'Đã duyệt' END AS AUTH_STATUS_NAME
351
						--RQT.STATUS AS TEST
352
						D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME
353
						--D.AUTH_STATUS_NAME
354
				-- SELECT END
355
				FROM TR_REQUEST_DOC A
356
		
357
				LEFT JOIN TR_CONTRACT C ON A.CONTRACT_ID = C.CONTRACT_ID  
358
				LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
359
				LEFT JOIN CM_SUPPLIER E ON E.SUP_ID= A.SUP_ID
360
				LEFT JOIN TR_CONTRACT F ON F.CONTRACT_ID = A.CONTRACT_ID --AND A.CONTRACT_ID IS NOT NULL
361
				LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
362
				LEFT JOIN CM_ALLCODE K ON K.CDNAME = 'TRREQTYPE' AND K.CDVAL = A.REQ_TYPE
363
				LEFT JOIN CM_ALLCODE I ON I.CDNAME = 'TRREQSTATUS' AND I.CDVAL = A.[STATUS]
364
         LEFT JOIN CM_ALLCODE J ON J.CDNAME='TRREQAFTER' AND J.CDVAL=A.AFTER_APPROVE
365
                LEFT JOIN (
366
SELECT CK.KHOI_ID,CK.KHOI_CODE,ckd.DEP_ID FROM CM_KHOI ck 
367
LEFT JOIN CM_KHOI_DT ckd ON ck.KHOI_ID = ckd.KHOI_ID
368
) KHOI ON KHOI.DEP_ID=A.DEP_ID
369
				LEFT JOIN dbo.PL_REQUEST_PROCESS PRP ON PRP.REQ_ID=A.REQ_ID AND   (PRP.ID = (SELECT TOP (1) ID FROM PL_REQUEST_PROCESS WHERE PROCESS_ID IN (SELECT STATUS FROM @TempSTATUS ) AND PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID ORDER BY ID DESC) 
370
				
371
																						OR ( NOT EXISTS(SELECT STATUS FROM @TempSTATUS) AND PRP.PROCESS_ID IN (SELECT T.PARENT_PROCESS_ID FROM dbo.PL_REQUEST_PROCESS T WHERE T.REQ_ID=A.REQ_ID AND T.PROCESS_ID=@p_STATUS) OR ((PRP.PROCESS_ID='DVKD_XN') AND @p_STATUS='DONE')))--LEFT JOIN dbo.CM_AUTH_STATUS AUTH ON AUTH.AUTH_STATUS = @p_AUTH_STATUS
372
				--LEFT JOIN dbo.PL_REQUEST_PROCESS RQT ON RQT.REQ_ID = A.REQ_ID 
373
				--AND (((RQT.PROCESS_ID = A.STATUS AND  RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR (RQT.PROCESS_ID = A.STATUS AND EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN))))
374
				--LEFT JOIN dbo.PL_REQUEST_PROCESS PRP1 ON PRP1.REQ_ID = A.REQ_ID  AND PRP1.PROCESS_ID = 'CVMS_N'
375
				LEFT JOIN dbo.PL_REQUEST_PROCESS PRP2 ON PRP2.REQ_ID = A.REQ_ID  AND PRP2.PROCESS_ID = 'DVKD'
376
				LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=A.MAKER_ID
377
				WHERE 1 = 1
378
				AND (G.REGION_ID LIKE '%' + @p_REGION_ID + '%' OR @p_REGION_ID IS NULL OR @p_REGION_ID = '')
379
				AND (CONVERT(DATETIME,@p_DVKD_MANAGE_APP_FROM,103) <= CAST (PRP2.RECEPTION_DT AS DATE)  OR @p_DVKD_MANAGE_APP_FROM IS NULL OR @p_DVKD_MANAGE_APP_FROM = '')
380
				AND (DATEADD(day,1,CONVERT(DATETIME,@p_DVKD_MANAGE_APP_TO,103)) > CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_TO IS NULL OR @p_DVKD_MANAGE_APP_TO = '')
381
				--AND (((RQT.PROCESS_ID = A.STATUS AND  RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN)))
382
				--AND ((@p_AUTH_STATUS = 'U' AND (RQT.STATUS = 'C' OR RQT.STATUS = 'U')) OR (@p_AUTH_STATUS = 'A' AND (RQT.STATUS = 'P' OR RQT.STATUS IS NULL))OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = ''))
383
				AND A.REQ_DT >='2021-09-01'
384
				--AND ((A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') )
385
				AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
386
				AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
387
				AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
388
				AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
389
				
390
				AND (A.CONTRACT_ID LIKE '%' + @p_CONTRACT_ID + '%' OR @p_CONTRACT_ID IS NULL OR @p_CONTRACT_ID = '')
391
				AND (A.SUP_ID LIKE '%' + @p_SUP_ID + '%' OR @p_SUP_ID IS NULL OR @p_SUP_ID = '')
392
				AND (A.SUP_ADDR LIKE '%' + @p_SUP_ADDR + '%' OR @p_SUP_ADDR IS NULL OR @p_SUP_ADDR = '')				
393
				AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
394
				--AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
395
				AND (DATEDIFF(DAY,A.CREATE_DT , CONVERT(DATETIME,@p_CREATE_DT,103)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
396
				--AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
397
				AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
398
				AND (DATEDIFF(DAY,A.APPROVE_DT , CONVERT(DATETIME,@p_APPROVE_DT,103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')		
399
				AND (C.CONTRACT_CODE LIKE '%' + @P_CONTRACT_CODE + '%' OR @P_CONTRACT_CODE = '' OR @P_CONTRACT_CODE IS NULL)
400
				AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
401
				AND (A.STATUS = @p_STATUS OR @p_STATUS IS NULL OR @p_STATUS = '' OR @p_STATUS='WAITAPP' OR @p_STATUS='DONEAPP'  
402
				
403
					OR (@p_STATUS ='WAITPO' AND A.AUTH_STATUS='A' AND A.STATUS='APPROVE' AND NOT EXISTS (SELECT PO.PO_ID FROM dbo.TR_PO_MASTER PO WHERE PO.REQ_DOC_ID=A.REQ_ID)) 
404
				
405
					 OR (@p_STATUS ='CREATEDPO' AND A.AUTH_STATUS='A' AND  EXISTS (SELECT PO.PO_ID FROM dbo.TR_PO_MASTER PO WHERE PO.REQ_DOC_ID=A.REQ_ID))
406
					 OR (@p_STATUS='WAITASS' AND A.AUTH_STATUS='A' AND A.STATUS='APPROVE' AND NOT EXISTS(SELECT ADDNEW_ID FROM dbo.ASS_ADDNEW_PO ASSPO
407
																							INNER JOIN dbo.TR_PO_MASTER PM ON PM.PO_ID=ASSPO.PO_ID
408
																							WHERE PM.REQ_DOC_ID=A.REQ_ID))
409
					OR (@p_STATUS='WAITASS_USE' AND A.AUTH_STATUS='A'  AND A.STATUS='APPROVE' AND NOT EXISTS(SELECT ASS_USE.USER_MASTER_ID FROM dbo.ASS_USE_MULTI_MASTER ASS_USE
410
																												
411
																												WHERE ASS_USE.REQ_ID=A.REQ_ID AND ASS_USE.AUTH_STATUS='A'))
412
					OR (@p_STATUS = 'QLTS_N' AND A.STATUS LIKE '%QLTS%')
413
					 OR (@p_STATUS = 'DVCM_XN' AND EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS PRC WHERE PRC.REQ_ID=A.REQ_ID AND PRC.PROCESS_ID='DVCM' AND PRC.STATUS='P'))
414
					OR(@p_STATUS='IN_PROCESS' AND EXISTS(SELECT ID FROM PL_REQUEST_PROCESS PRC2 WHERE PRC2.REQ_ID=A.REQ_ID AND PRC2.STATUS='C'))
415
					OR(@p_STATUS='CVMS_REJECT' AND EXISTS(SELECT * FROM dbo.PL_PROCESS PLR WHERE (PLR.PROCESS_DESC='Reject' OR PLR.PROCESS_DESC='REJECT_QLTS' OR PLR.PROCESS_DESC='REJECT_DVCM') AND PROCESS_ID='CVMS_N' AND PLR.REQ_ID=A.REQ_ID))
416
				)
417
					
418

    
419
				--AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM  CM_BRANCH_GETCHILDID(@p_BRANCH_ID)))
420
				--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
421
				--AND (@p_RECEIVE_BRANCH IS NULL OR @p_RECEIVE_BRANCH = '' OR EXISTS(SELECT REQ_DOC_ID FROM TR_REQUEST_DOC_DT WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH AND REQ_DOC_ID = A.REQ_ID))
422
				AND A.RECORD_STATUS = '1'
423
				AND (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' OR A.BRANCH_ID = @p_BRANCH_ID)
424
				AND (@p_DEP_ID IS NULL OR @p_DEP_ID = '' OR A.DEP_ID IN (SELECT DEP_ID FROM @tbDep))
425
					AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI  OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
426
				AND( TU.TLFullName COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI  OR TU.TLNANME COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI 
427
				 OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
428

    
429
				 	AND (EXISTS(SELECT * FROM TR_REQUEST_DOC_DT DTT
430
								LEFT JOIN dbo.TR_CONTRACT TC ON TC.CONTRACT_ID=DTT.CONTRACT_ID
431
							INNER JOIN @REQUEST_DOC_DT_TABLE_CC DT_1 ON DT_1.CONTRACT_CODE = ISNULL(TC.CONTRACT_CODE,DTT.CONTRACT_CODE)
432
							WHERE DTT.REQ_DOC_ID = A.REQ_ID)
433
					OR @p_LIST_CONTRACT_CODE IS NULL OR @p_LIST_CONTRACT_CODE = ''
434
				)
435
				AND (EXISTS(SELECT * FROM TR_REQUEST_DOC_DT DTT
436
							INNER JOIN @REQUEST_DOC_DT_TABLE_M DT_1 ON DT_1.MSTT = DTT.MSTT
437
							WHERE DTT.REQ_DOC_ID = A.REQ_ID)
438
					OR @p_LIST_MSTT IS NULL OR @p_LIST_MSTT = ''
439
				)
440

    
441
				ORDER BY  PRP.APPROVE_DT,A.REQ_DT DESC
442
			 -- PAGING END 
443
		END
444
	END
445
	ELSE
446
	BEGIN
447
		IF(@P_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0)
448
			BEGIN
449
			-- PAGING BEGIN
450
				SELECT A.REQ_ID,
451
					   A.REQ_CODE,
452
					   A.REQ_NAME,
453
					   ISNULL(PRP.APPROVE_DT,PRP2.APPROVE_DT) AS REQ_DT,
454
					   A.REQ_TYPE,
455
					   A.REQ_CONTENT,
456
					   A.CONTRACT_ID,
457
					   A.SUP_ID,
458
					   A.SUP_NAME,
459
					   A.SUP_ADDR,
460
					   A.TOTAL_AMT,
461
					   A.NOTES,
462
					   A.RECORD_STATUS,
463
					   A.MAKER_ID,
464
					   A.CREATE_DT,
465
					   A.AUTH_STATUS,
466
					   A.CHECKER_ID,
467
					   A.APPROVE_DT,
468
					   A.BRANCH_ID,
469
					   A.STATUS,
470
					   A.DEP_ID,
471
					   A.HO_NOTES,C.CONTRACT_CODE,  E.SUP_CODE AS S_SUP_CODE, E.SUP_NAME AS S_SUP_NAME, E.ADDR AS S_ADDR, K.CONTENT AS REQ_TYPE_NAME,
472
                  CASE 
473
                       	WHEN A.STATUS='DONE' AND A.BRANCH_ID='DV0001' AND KHOI.KHOI_CODE <>'D2200' THEN N'Đợi PMS trình Ban điều hàng theo đúng quy định'
474
                    	  WHEN A.STATUS='DONE' AND( A.BRANCH_ID <> 'DV0001' OR KHOI.KHOI_CODE='D2200') THEN N'Phiếu đang chuyển trình Ban điều hành.' -- NguyenTD: Fix theo yêu cầu chị Loan
475

    
476

    
477
                       	ELSE  ISNULL(J.CONTENT, I.CONTENT)
478
                       	-- ELSE
479
                       END 
480
                        
481
                         AS REQ_STATUS_NAME,
482
						F.CONTRACT_CODE AS C_CONTRACT_CODE, F.[CONTRACT_NAME] AS C_CONTRACT_NAME,  F.TOTAL_AMT AS C_TOTAL_AMT ,
483
						ISNULL((SELECT SUM(TR_REQ.TOTAL_AMT) FROM TR_REQUEST_DOC TR_REQ WHERE TR_REQ.CONTRACT_ID = A.CONTRACT_ID),0) AS C_DONE_AMT, @p_RECEIVE_BRANCH AS RECEIVE_BRANCH,G.BRANCH_CODE,G.BRANCH_NAME, PRP.DVKD_USER_APP,
484
						--CASE WHEN  RQT.STATUS = 'C' OR RQT.STATUS = 'U' THEN N'Chờ duyệt' 
485
						--ELSE N'Đã duyệt' END AS AUTH_STATUS_NAME
486
						D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME
487
						--D.AUTH_STATUS_NAME 
488
				-- SELECT END
489
				FROM TR_REQUEST_DOC A
490

    
491
				LEFT JOIN TR_CONTRACT C ON A.CONTRACT_ID = C.CONTRACT_ID  
492
				LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
493
				LEFT JOIN CM_SUPPLIER E ON E.SUP_ID= A.SUP_ID
494
				LEFT JOIN TR_CONTRACT F ON F.CONTRACT_ID = A.CONTRACT_ID --AND A.CONTRACT_ID IS NOT NULL
495
				LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
496
				LEFT JOIN CM_ALLCODE K ON K.CDNAME = 'TRREQTYPE' AND K.CDVAL = A.REQ_TYPE
497
				LEFT JOIN CM_ALLCODE I ON I.CDNAME = 'TRREQSTATUS' AND I.CDVAL = A.[STATUS]
498
        LEFT JOIN CM_ALLCODE J ON J.CDNAME='TRREQAFTER' AND J.CDVAL=A.AFTER_APPROVE
499
               LEFT JOIN (
500
SELECT CK.KHOI_ID,CK.KHOI_CODE,ckd.DEP_ID FROM CM_KHOI ck 
501
LEFT JOIN CM_KHOI_DT ckd ON ck.KHOI_ID = ckd.KHOI_ID
502
) KHOI ON KHOI.DEP_ID=A.DEP_ID
503
				LEFT JOIN dbo.PL_REQUEST_PROCESS PRP ON PRP.REQ_ID=A.REQ_ID AND   (PRP.ID = (SELECT TOP (1) ID FROM PL_REQUEST_PROCESS WHERE PROCESS_ID IN (SELECT STATUS FROM @TempSTATUS ) AND PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID ORDER BY ID DESC) 
504
				
505
																						OR ( NOT EXISTS(SELECT STATUS FROM @TempSTATUS) AND PRP.PROCESS_ID IN (SELECT T.PARENT_PROCESS_ID FROM dbo.PL_REQUEST_PROCESS T WHERE T.REQ_ID=A.REQ_ID AND T.PROCESS_ID=@p_STATUS) OR ((PRP.PROCESS_ID='DVKD_XN' ) AND @p_STATUS='DONE')))
506
				--LEFT JOIN dbo.CM_AUTH_STATUS AUTH ON AUTH.AUTH_STATUS = A.AUTH_STATUS
507
				--LEFT JOIN dbo.PL_REQUEST_PROCESS RQT ON RQT.REQ_ID = A.REQ_ID 
508
				--AND (((RQT.PROCESS_ID = A.STATUS AND  RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR (RQT.PROCESS_ID = A.STATUS AND EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN))))
509

    
510
				--LEFT JOIN dbo.PL_REQUEST_PROCESS PRP1 ON PRP1.REQ_ID = A.REQ_ID  AND PRP1.PROCESS_ID = 'CVMS_N'
511
				LEFT JOIN dbo.PL_REQUEST_PROCESS PRP2 ON PRP2.REQ_ID = A.REQ_ID  AND PRP2.PROCESS_ID = 'DVKD'
512
				LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=A.MAKER_ID
513
				WHERE 1 = 1
514
				AND (G.REGION_ID LIKE '%' + @p_REGION_ID + '%' OR @p_REGION_ID IS NULL OR @p_REGION_ID = '')
515
				AND (CONVERT(DATETIME,@p_DVKD_MANAGE_APP_FROM,103) <= CAST (PRP2.RECEPTION_DT AS DATE)  OR @p_DVKD_MANAGE_APP_FROM IS NULL OR @p_DVKD_MANAGE_APP_FROM = '')
516
				AND (DATEADD(day,1,CONVERT(DATETIME,@p_DVKD_MANAGE_APP_TO,103)) > CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_TO IS NULL OR @p_DVKD_MANAGE_APP_TO = '')
517
				--AND (((RQT.PROCESS_ID = A.STATUS AND  RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN)))
518
				--AND ((@p_AUTH_STATUS = 'U' AND (RQT.STATUS = 'C' OR RQT.STATUS = 'U')) OR (@p_AUTH_STATUS = 'A' AND (RQT.STATUS = 'P' OR RQT.STATUS IS NULL))OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = ''))
519
			 	   AND (((A.MAKER_ID=@p_USERNAME 
520
							OR( 
521
							(G.BRANCH_TYPE='HS' AND EXISTS(SELECT T.DEP_ID FROM @lstBRANCH_DEP T WHERE  T.BRANCH_ID=A.BRANCH_ID AND T.DEP_ID=A.DEP_ID))
522
							OR (
523
							(G.BRANCH_TYPE<>'HS' AND EXISTS(SELECT T.BRANCH_ID FROM @lstBRANCH_DEP T WHERE  T.BRANCH_ID=A.BRANCH_ID))
524
							) 
525
							) 
526
							) 
527
				  
528
				  AND  (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') )   OR 
529
		 
530
							EXISTS (SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID  
531
								AND (PL_REQUEST_PROCESS.STATUS='C' OR PL_REQUEST_PROCESS.STATUS='P')
532
								AND ((@p_AUTH_STATUS='U' AND PL_REQUEST_PROCESS.STATUS='C') OR (@p_AUTH_STATUS='A' AND PL_REQUEST_PROCESS.STATUS='P') OR (@p_AUTH_STATUS<>'A' AND @p_AUTH_STATUS<>'U') OR @p_AUTH_STATUS IS NULL)
533
								--AND (((PL_REQUEST_PROCESS.STATUS='C' OR PL_REQUEST_PROCESS.STATUS='P') AND (@p_AUTH_STATUS='' OR @p_AUTH_STATUS IS NULL)) OR 
534
								--		(@p_AUTH_STATUS='U' AND PL_REQUEST_PROCESS.STATUS='C') OR (@p_AUTH_STATUS='A' AND PL_REQUEST_PROCESS.STATUS='P'))
535
								AND (PL_REQUEST_PROCESS.DVKD_USER_APP IS NULL OR PL_REQUEST_PROCESS.DVKD_USER_APP ='')
536
								AND PL_REQUEST_PROCESS.ROLE_USER in (SELECT r.DisplayName FROM TL_USER u 
537
								LEFT JOIN AbpUserRoles ur ON ur.UserId = u.ID
538
								LEFT JOIN AbpRoles r ON ur.RoleId = r.Id
539
								where u.TLNANME=@p_USERNAME)
540
								 AND BRANCH_ID=@BRANCH_ID
541
								 AND ( EXISTS(SELECT * FROM dbo.CM_BRANCH WHERE CM_BRANCH.BRANCH_ID = PL_REQUEST_PROCESS.BRANCH_ID AND CM_BRANCH.BRANCH_TYPE<>'HS') OR DEP_ID IS NULL OR DEP_ID='' OR DEP_ID IN (SELECT DEP_ID FROM dbo.CM_KHOI_DT WHERE KHOI_ID IN  (SELECT KHOI_ID FROM dbo.CM_KHOI_DT WHERE DEP_ID=@DEP_ID)) )
542
								 AND (COST_ID IN (SELECT COST_ID FROM @lstCOST) OR COST_ID ='' OR COST_ID IS NULL)
543
								 ) OR
544
								EXISTS (SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID  
545
								 AND DVKD_USER_APP = @p_USERNAME AND (PL_REQUEST_PROCESS.STATUS='C' OR PL_REQUEST_PROCESS.STATUS='P')
546
								 AND ((@p_AUTH_STATUS='U' AND PL_REQUEST_PROCESS.STATUS='C') OR (@p_AUTH_STATUS='A' AND PL_REQUEST_PROCESS.STATUS='P') OR (@p_AUTH_STATUS<>'U' AND @p_AUTH_STATUS<>'A') OR @p_AUTH_STATUS IS NULL))
547
								 OR (
548
									EXISTS(SELECT COST_ID FROM dbo.TR_REQUEST_COSTCENTER TRCO WHERE TRCO.REQ_ID=A.REQ_ID  AND TRCO.COST_ID IN (SELECT COST_ID FROM @lstCOST)  )
549
									AND NOT EXISTS(SELECT ID FROM PL_REQUEST_PROCESS PRPC2 WHERE PRPC2.REQ_ID =A.REQ_ID AND PRPC2.COST_ID IN (SELECT COST_ID FROM @lstCOST)) 
550
									AND @p_AUTH_STATUS<>'U'
551
								 )
552
								OR( EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN))
553
								OR (EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_SLAS' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN)) AND A.REQ_DT >='2021-09-01')
554
				) AND ((A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') ))
555

    
556
				AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
557
				AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
558
				AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
559
				AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
560
				--AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI  OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
561
				--AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
562
				AND (A.CONTRACT_ID LIKE '%' + @p_CONTRACT_ID + '%' OR @p_CONTRACT_ID IS NULL OR @p_CONTRACT_ID = '')
563
				AND (A.SUP_ID LIKE '%' + @p_SUP_ID + '%' OR @p_SUP_ID IS NULL OR @p_SUP_ID = '')
564
				AND (A.SUP_ADDR LIKE '%' + @p_SUP_ADDR + '%' OR @p_SUP_ADDR IS NULL OR @p_SUP_ADDR = '')		
565
				AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
566
				--AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
567
				AND (DATEDIFF(DAY,A.CREATE_DT , CONVERT(DATETIME,@p_CREATE_DT,103)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
568
				--AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
569
				AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
570
				AND (DATEDIFF(DAY,A.APPROVE_DT , CONVERT(DATETIME,@p_APPROVE_DT,103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')		
571
				AND (C.CONTRACT_CODE LIKE '%' + @P_CONTRACT_CODE + '%' OR @P_CONTRACT_CODE = '' OR @P_CONTRACT_CODE IS NULL)
572
				AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
573
				AND (A.STATUS = @p_STATUS OR @p_STATUS IS NULL OR @p_STATUS = '' OR @p_STATUS='WAITAPP' OR @p_STATUS='DONEAPP'  
574
				
575
					OR (@p_STATUS ='WAITPO' AND A.AUTH_STATUS='A' AND A.STATUS='APPROVE' AND NOT EXISTS (SELECT PO.PO_ID FROM dbo.TR_PO_MASTER PO WHERE PO.REQ_DOC_ID=A.REQ_ID)) 
576
				
577
					 OR (@p_STATUS ='CREATEDPO' AND A.AUTH_STATUS='A' AND  EXISTS (SELECT PO.PO_ID FROM dbo.TR_PO_MASTER PO WHERE PO.REQ_DOC_ID=A.REQ_ID))
578
					 OR (@p_STATUS='WAITASS' AND A.AUTH_STATUS='A' AND A.STATUS='APPROVE' AND NOT EXISTS(SELECT ADDNEW_ID FROM dbo.ASS_ADDNEW_PO ASSPO
579
																							INNER JOIN dbo.TR_PO_MASTER PM ON PM.PO_ID=ASSPO.PO_ID
580
																							WHERE PM.REQ_DOC_ID=A.REQ_ID))
581
					OR (@p_STATUS='WAITASS_USE' AND A.AUTH_STATUS='A'  AND A.STATUS='APPROVE' AND NOT EXISTS(SELECT ASS_USE.USER_MASTER_ID FROM dbo.ASS_USE_MULTI_MASTER ASS_USE
582
																												
583
																												WHERE ASS_USE.REQ_ID=A.REQ_ID AND ASS_USE.AUTH_STATUS='A'))
584
					OR (@p_STATUS = 'QLTS_N' AND A.STATUS LIKE '%QLTS%')
585
					 OR (@p_STATUS = 'DVCM_XN' AND EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS PRC WHERE PRC.REQ_ID=A.REQ_ID AND PRC.PROCESS_ID='DVCM' AND PRC.STATUS='P'))
586
					OR(@p_STATUS='IN_PROCESS' AND EXISTS(SELECT ID FROM PL_REQUEST_PROCESS PRC2 WHERE PRC2.REQ_ID=A.REQ_ID AND PRC2.STATUS='C'))
587
					OR(@p_STATUS='CVMS_REJECT' AND EXISTS(SELECT * FROM dbo.PL_PROCESS PLR WHERE (PLR.PROCESS_DESC='Reject' OR PLR.PROCESS_DESC='REJECT_QLTS' OR PLR.PROCESS_DESC='REJECT_DVCM') AND PROCESS_ID='CVMS_N' AND PLR.REQ_ID=A.REQ_ID))
588
				)
589
					  
590
				--AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM  CM_BRANCH_GETCHILDID(@p_BRANCH_ID)))
591
				--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
592
				--AND (@p_RECEIVE_BRANCH IS NULL OR @p_RECEIVE_BRANCH = '' OR EXISTS(SELECT REQ_DOC_ID FROM TR_REQUEST_DOC_DT WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH AND REQ_DOC_ID = A.REQ_ID))
593
				AND A.RECORD_STATUS = '1'
594
				AND (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' OR A.BRANCH_ID = @p_BRANCH_ID)
595
			AND (@p_DEP_ID IS NULL OR @p_DEP_ID = '' OR A.DEP_ID IN (SELECT DEP_ID FROM @tbDep))
596
				AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI  OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
597
				AND( TU.TLFullName COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI  OR TU.TLNANME COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI 
598
				OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
599
						AND (EXISTS(SELECT * FROM TR_REQUEST_DOC_DT DTT
600
								LEFT JOIN dbo.TR_CONTRACT TC ON TC.CONTRACT_ID=DTT.CONTRACT_ID
601
							INNER JOIN @REQUEST_DOC_DT_TABLE_CC DT_1 ON DT_1.CONTRACT_CODE = ISNULL(TC.CONTRACT_CODE,DTT.CONTRACT_CODE)
602
							WHERE DTT.REQ_DOC_ID = A.REQ_ID)
603
					OR @p_LIST_CONTRACT_CODE IS NULL OR @p_LIST_CONTRACT_CODE = ''
604
				)
605
				AND (EXISTS(SELECT * FROM TR_REQUEST_DOC_DT DTT
606
							INNER JOIN @REQUEST_DOC_DT_TABLE_M DT_1 ON DT_1.MSTT = DTT.MSTT
607
							WHERE DTT.REQ_DOC_ID = A.REQ_ID)
608
					OR @p_LIST_MSTT IS NULL OR @p_LIST_MSTT = ''
609
				)
610

    
611
				ORDER BY  PRP.APPROVE_DT,A.REQ_DT ASC
612
			-- PAGING END
613
			END
614
		   ELSE 
615
		   BEGIN
616
		   -- PAGING BEGIN
617
				SELECT TOP(CONVERT(INT,@P_TOP)) A.REQ_ID,
618
												A.REQ_CODE,
619
												A.REQ_NAME,
620
												 ISNULL(PRP.APPROVE_DT,PRP2.APPROVE_DT) AS REQ_DT,
621
												A.REQ_TYPE,
622
												A.REQ_CONTENT,
623
												A.CONTRACT_ID,
624
												A.SUP_ID,
625
												A.SUP_NAME,
626
												A.SUP_ADDR,
627
												A.TOTAL_AMT,
628
												A.NOTES,
629
												A.RECORD_STATUS,
630
												A.MAKER_ID,
631
												A.CREATE_DT,
632
												A.AUTH_STATUS,
633
												A.CHECKER_ID,
634
												A.APPROVE_DT,
635
												A.BRANCH_ID,
636
												A.STATUS,
637
												A.DEP_ID,
638
												A.HO_NOTES,C.CONTRACT_CODE,   E.SUP_CODE AS S_SUP_CODE, E.SUP_NAME AS S_SUP_NAME, E.ADDR AS S_ADDR, K.CONTENT AS REQ_TYPE_NAME,
639
                       CASE 
640
                       	WHEN A.STATUS='DONE' AND A.BRANCH_ID='DV0001' AND KHOI.KHOI_CODE <>'D2200' THEN N'Đợi PMS trình Ban điều hàng theo đúng quy định'
641
                    	  WHEN A.STATUS='DONE' AND( A.BRANCH_ID <> 'DV0001' OR KHOI.KHOI_CODE='D2200') THEN N'Phiếu đang chuyển trình Ban điều hành.' -- NguyenTD: Fix theo yêu cầu chị Loan
642

    
643

    
644
                       	ELSE  ISNULL(J.CONTENT, I.CONTENT)
645
                       	-- ELSE
646
                       END 
647
                        
648
                         AS REQ_STATUS_NAME,
649

    
650

    
651
						F.CONTRACT_CODE AS C_CONTRACT_CODE, F.[CONTRACT_NAME] AS C_CONTRACT_NAME,  F.TOTAL_AMT AS C_TOTAL_AMT ,
652
						ISNULL((SELECT SUM(TR_REQ.TOTAL_AMT) FROM TR_REQUEST_DOC TR_REQ WHERE TR_REQ.CONTRACT_ID = A.CONTRACT_ID),0) AS C_DONE_AMT, @p_RECEIVE_BRANCH AS RECEIVE_BRANCH,G.BRANCH_CODE,G.BRANCH_NAME, PRP.DVKD_USER_APP,
653
						--CASE WHEN  RQT.STATUS = 'C' OR RQT.STATUS = 'U' THEN N'Chờ duyệt' 
654
						--ELSE N'Đã duyệt' END AS AUTH_STATUS_NAME
655
						--RQT.STATUS AS TEST
656
						D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME
657
						--D.AUTH_STATUS_NAME
658
				-- SELECT END
659
				FROM TR_REQUEST_DOC A
660
		
661
				LEFT JOIN TR_CONTRACT C ON A.CONTRACT_ID = C.CONTRACT_ID  
662
				LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
663
				LEFT JOIN CM_SUPPLIER E ON E.SUP_ID= A.SUP_ID
664
				LEFT JOIN TR_CONTRACT F ON F.CONTRACT_ID = A.CONTRACT_ID --AND A.CONTRACT_ID IS NOT NULL
665
				LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
666
				LEFT JOIN CM_ALLCODE K ON K.CDNAME = 'TRREQTYPE' AND K.CDVAL = A.REQ_TYPE
667
				LEFT JOIN CM_ALLCODE I ON I.CDNAME = 'TRREQSTATUS' AND I.CDVAL = A.[STATUS]
668
        LEFT JOIN CM_ALLCODE J ON J.CDNAME='TRREQAFTER' AND J.CDVAL=A.AFTER_APPROVE
669
               LEFT JOIN (
670
SELECT CK.KHOI_ID,CK.KHOI_CODE,ckd.DEP_ID FROM CM_KHOI ck 
671
LEFT JOIN CM_KHOI_DT ckd ON ck.KHOI_ID = ckd.KHOI_ID
672
) KHOI ON KHOI.DEP_ID=A.DEP_ID
673
				LEFT JOIN dbo.PL_REQUEST_PROCESS PRP ON PRP.REQ_ID=A.REQ_ID AND   (PRP.ID = (SELECT TOP (1) ID FROM PL_REQUEST_PROCESS WHERE PROCESS_ID IN (SELECT STATUS FROM @TempSTATUS ) AND PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID ORDER BY ID DESC) 
674
				
675
																						OR ( NOT EXISTS(SELECT STATUS FROM @TempSTATUS) AND PRP.PROCESS_ID IN (SELECT T.PARENT_PROCESS_ID FROM dbo.PL_REQUEST_PROCESS T WHERE T.REQ_ID=A.REQ_ID AND T.PROCESS_ID=@p_STATUS) OR ((PRP.PROCESS_ID='DVKD_XN' ) AND @p_STATUS='DONE')))
676
																						--LEFT JOIN dbo.CM_AUTH_STATUS AUTH ON AUTH.AUTH_STATUS = @p_AUTH_STATUS
677
				--LEFT JOIN dbo.PL_REQUEST_PROCESS RQT ON RQT.REQ_ID = A.REQ_ID 
678
				--AND (((RQT.PROCESS_ID = A.STATUS AND  RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR (RQT.PROCESS_ID = A.STATUS AND EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN))))
679
				--LEFT JOIN dbo.PL_REQUEST_PROCESS PRP1 ON PRP1.REQ_ID = A.REQ_ID  AND PRP1.PROCESS_ID = 'CVMS_N'
680
				LEFT JOIN dbo.PL_REQUEST_PROCESS PRP2 ON PRP2.REQ_ID = A.REQ_ID  AND PRP2.PROCESS_ID = 'DVKD'
681
				LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=A.MAKER_ID
682
				WHERE 1 = 1
683
				AND (G.REGION_ID LIKE '%' + @p_REGION_ID + '%' OR @p_REGION_ID IS NULL OR @p_REGION_ID = '')
684
				AND (CONVERT(DATETIME,@p_DVKD_MANAGE_APP_FROM,103) <= CAST (PRP2.RECEPTION_DT AS DATE)  OR @p_DVKD_MANAGE_APP_FROM IS NULL OR @p_DVKD_MANAGE_APP_FROM = '')
685
				AND (DATEADD(day,1,CONVERT(DATETIME,@p_DVKD_MANAGE_APP_TO,103)) > CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_TO IS NULL OR @p_DVKD_MANAGE_APP_TO = '')
686
				--AND (((RQT.PROCESS_ID = A.STATUS AND  RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN)))
687
				--AND ((@p_AUTH_STATUS = 'U' AND (RQT.STATUS = 'C' OR RQT.STATUS = 'U')) OR (@p_AUTH_STATUS = 'A' AND (RQT.STATUS = 'P' OR RQT.STATUS IS NULL))OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = ''))
688
			    AND (((A.MAKER_ID=@p_USERNAME 
689
							OR( 
690
							(G.BRANCH_TYPE='HS' AND EXISTS(SELECT T.DEP_ID FROM @lstBRANCH_DEP T WHERE  T.BRANCH_ID=A.BRANCH_ID AND T.DEP_ID=A.DEP_ID))
691
							OR(
692
							(G.BRANCH_TYPE<>'HS' AND EXISTS(SELECT T.BRANCH_ID FROM @lstBRANCH_DEP T WHERE  T.BRANCH_ID=A.BRANCH_ID))
693
							) 
694
							) 
695
							) 
696
			  
697
			  AND  (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') )   OR 
698
		 
699
							EXISTS (SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID  
700
								AND (PL_REQUEST_PROCESS.STATUS='C' OR PL_REQUEST_PROCESS.STATUS='P')
701
								AND ((@p_AUTH_STATUS='U' AND PL_REQUEST_PROCESS.STATUS='C') OR (@p_AUTH_STATUS='A' AND PL_REQUEST_PROCESS.STATUS='P') OR (@p_AUTH_STATUS<>'A' AND @p_AUTH_STATUS<>'U') OR @p_AUTH_STATUS IS NULL)
702
								--AND (((PL_REQUEST_PROCESS.STATUS='C' OR PL_REQUEST_PROCESS.STATUS='P') AND (@p_AUTH_STATUS='' OR @p_AUTH_STATUS IS NULL)) OR 
703
								--		(@p_AUTH_STATUS='U' AND PL_REQUEST_PROCESS.STATUS='C') OR (@p_AUTH_STATUS='A' AND PL_REQUEST_PROCESS.STATUS='P'))
704
								AND (PL_REQUEST_PROCESS.DVKD_USER_APP IS NULL OR PL_REQUEST_PROCESS.DVKD_USER_APP ='')
705
								AND PL_REQUEST_PROCESS.ROLE_USER in (SELECT r.DisplayName FROM TL_USER u 
706
								LEFT JOIN AbpUserRoles ur ON ur.UserId = u.ID
707
								LEFT JOIN AbpRoles r ON ur.RoleId = r.Id
708
								where u.TLNANME=@p_USERNAME)
709
								 AND BRANCH_ID=@BRANCH_ID
710
								 AND ( EXISTS(SELECT * FROM dbo.CM_BRANCH WHERE CM_BRANCH.BRANCH_ID = PL_REQUEST_PROCESS.BRANCH_ID AND CM_BRANCH.BRANCH_TYPE<>'HS') OR DEP_ID IS NULL OR DEP_ID='' OR DEP_ID IN (SELECT DEP_ID FROM dbo.CM_KHOI_DT WHERE KHOI_ID IN  (SELECT KHOI_ID FROM dbo.CM_KHOI_DT WHERE DEP_ID=@DEP_ID)) )
711
								 AND (COST_ID IN (SELECT COST_ID FROM @lstCOST) OR COST_ID ='' OR COST_ID IS NULL)
712
								 ) OR
713
								EXISTS (SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID  
714
								 AND DVKD_USER_APP = @p_USERNAME AND (PL_REQUEST_PROCESS.STATUS='C' OR PL_REQUEST_PROCESS.STATUS='P')
715
								 AND ((@p_AUTH_STATUS='U' AND PL_REQUEST_PROCESS.STATUS='C') OR (@p_AUTH_STATUS='A' AND PL_REQUEST_PROCESS.STATUS='P') OR (@p_AUTH_STATUS<>'U' AND @p_AUTH_STATUS<>'A') OR @p_AUTH_STATUS IS NULL))
716
								OR (
717
									EXISTS(SELECT COST_ID FROM dbo.TR_REQUEST_COSTCENTER TRCO WHERE TRCO.REQ_ID=A.REQ_ID  AND TRCO.COST_ID IN (SELECT COST_ID FROM @lstCOST)  )
718
									AND NOT EXISTS(SELECT ID FROM PL_REQUEST_PROCESS PRPC2 WHERE PRPC2.REQ_ID =A.REQ_ID AND PRPC2.COST_ID IN (SELECT COST_ID FROM @lstCOST)) 
719
									AND @p_AUTH_STATUS<>'U'
720
								 )
721
								OR( EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN))
722
								OR (EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_SLAS' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN)) AND A.REQ_DT >='2021-09-01')
723
				) AND ((A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') ))
724
				AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
725
				AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
726
				AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
727
				AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
728
				
729
				AND (A.CONTRACT_ID LIKE '%' + @p_CONTRACT_ID + '%' OR @p_CONTRACT_ID IS NULL OR @p_CONTRACT_ID = '')
730
				AND (A.SUP_ID LIKE '%' + @p_SUP_ID + '%' OR @p_SUP_ID IS NULL OR @p_SUP_ID = '')
731
				AND (A.SUP_ADDR LIKE '%' + @p_SUP_ADDR + '%' OR @p_SUP_ADDR IS NULL OR @p_SUP_ADDR = '')				
732
				AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
733
				--AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
734
				AND (DATEDIFF(DAY,A.CREATE_DT , CONVERT(DATETIME,@p_CREATE_DT,103)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
735
				--AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
736
				AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
737
				AND (DATEDIFF(DAY,A.APPROVE_DT , CONVERT(DATETIME,@p_APPROVE_DT,103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')		
738
				AND (C.CONTRACT_CODE LIKE '%' + @P_CONTRACT_CODE + '%' OR @P_CONTRACT_CODE = '' OR @P_CONTRACT_CODE IS NULL)
739
				AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
740
				AND (A.STATUS = @p_STATUS OR @p_STATUS IS NULL OR @p_STATUS = '' OR @p_STATUS='WAITAPP' OR @p_STATUS='DONEAPP'  
741
				
742
					OR (@p_STATUS ='WAITPO' AND A.AUTH_STATUS='A' AND A.STATUS='APPROVE' AND NOT EXISTS (SELECT PO.PO_ID FROM dbo.TR_PO_MASTER PO WHERE PO.REQ_DOC_ID=A.REQ_ID)) 
743
				
744
					 OR (@p_STATUS ='CREATEDPO' AND A.AUTH_STATUS='A' AND  EXISTS (SELECT PO.PO_ID FROM dbo.TR_PO_MASTER PO WHERE PO.REQ_DOC_ID=A.REQ_ID))
745
					 OR (@p_STATUS='WAITASS' AND A.AUTH_STATUS='A' AND A.STATUS='APPROVE' AND NOT EXISTS(SELECT ADDNEW_ID FROM dbo.ASS_ADDNEW_PO ASSPO
746
																							INNER JOIN dbo.TR_PO_MASTER PM ON PM.PO_ID=ASSPO.PO_ID
747
																							WHERE PM.REQ_DOC_ID=A.REQ_ID))
748
					OR (@p_STATUS='WAITASS_USE' AND A.AUTH_STATUS='A'  AND A.STATUS='APPROVE' AND NOT EXISTS(SELECT ASS_USE.USER_MASTER_ID FROM dbo.ASS_USE_MULTI_MASTER ASS_USE
749
																												
750
																												WHERE ASS_USE.REQ_ID=A.REQ_ID AND ASS_USE.AUTH_STATUS='A'))
751
					OR (@p_STATUS = 'QLTS_N' AND A.STATUS LIKE '%QLTS%')
752
					 OR (@p_STATUS = 'DVCM_XN' AND EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS PRC WHERE PRC.REQ_ID=A.REQ_ID AND PRC.PROCESS_ID='DVCM' AND PRC.STATUS='P'))
753
					OR(@p_STATUS='IN_PROCESS' AND EXISTS(SELECT ID FROM PL_REQUEST_PROCESS PRC2 WHERE PRC2.REQ_ID=A.REQ_ID AND PRC2.STATUS='C'))
754
					OR(@p_STATUS='CVMS_REJECT' AND EXISTS(SELECT * FROM dbo.PL_PROCESS PLR WHERE (PLR.PROCESS_DESC='Reject' OR PLR.PROCESS_DESC='REJECT_QLTS' OR PLR.PROCESS_DESC='REJECT_DVCM') AND PROCESS_ID='CVMS_N' AND PLR.REQ_ID=A.REQ_ID))
755
				)
756
					
757

    
758
				--AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM  CM_BRANCH_GETCHILDID(@p_BRANCH_ID)))
759
				--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
760
				--AND (@p_RECEIVE_BRANCH IS NULL OR @p_RECEIVE_BRANCH = '' OR EXISTS(SELECT REQ_DOC_ID FROM TR_REQUEST_DOC_DT WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH AND REQ_DOC_ID = A.REQ_ID))
761
				AND A.RECORD_STATUS = '1'
762
				AND (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' OR A.BRANCH_ID = @p_BRANCH_ID)
763
				AND (@p_DEP_ID IS NULL OR @p_DEP_ID = '' OR A.DEP_ID IN (SELECT DEP_ID FROM @tbDep))
764
					AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI  OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
765
				AND( TU.TLFullName COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI  OR TU.TLNANME COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI 
766
				 OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
767
				AND (EXISTS(SELECT * FROM TR_REQUEST_DOC_DT DTT
768
								LEFT JOIN dbo.TR_CONTRACT TC ON TC.CONTRACT_ID=DTT.CONTRACT_ID
769
							INNER JOIN @REQUEST_DOC_DT_TABLE_CC DT_1 ON DT_1.CONTRACT_CODE = ISNULL(TC.CONTRACT_CODE,DTT.CONTRACT_CODE)
770
							WHERE DTT.REQ_DOC_ID = A.REQ_ID)
771
					OR @p_LIST_CONTRACT_CODE IS NULL OR @p_LIST_CONTRACT_CODE = ''
772
				)
773
				AND (EXISTS(SELECT * FROM TR_REQUEST_DOC_DT DTT
774
							INNER JOIN @REQUEST_DOC_DT_TABLE_M DT_1 ON DT_1.MSTT = DTT.MSTT
775
							WHERE DTT.REQ_DOC_ID = A.REQ_ID)
776
					OR @p_LIST_MSTT IS NULL OR @p_LIST_MSTT = ''
777
				)
778

    
779
				ORDER BY  PRP.APPROVE_DT,A.REQ_DT DESC
780
			 -- PAGING END 
781
		END
782
	END
783
	
784
		
785
		
786
   END -- PAGING
787

    
788

    
789

    
790

    
791

    
792