Project

General

Profile

adv_serach.txt

Luc Tran Van, 01/11/2023 05:27 PM

 
1
-- PROCEDURE NAME: TR_REQ_ADVANCE_PAYMENT_Search
2

    
3
DECLARE @p_REQ_PAY_ID varchar(15) = NULL,
4
@p_REQ_PAY_CODE varchar(50) = NULL,
5
@p_REQ_DT varchar(20) = NULL,
6
@p_BRANCH_ID varchar(15) = N'DV0001',
7
@p_DEP_ID varchar(15) = NULL,
8
@p_REQ_REASON nvarchar(MAX) = NULL,
9
@p_REQ_TYPE varchar(15) = NULL,
10
@P_REQ_ENTRIES nvarchar(MAX) = NULL,
11
@p_REQ_DESCRIPTION nvarchar(MAX) = NULL,
12
@p_REF_ID varchar(15) = NULL,
13
@p_RECEIVER_PO nvarchar(250) = NULL,
14
@p_RECEIVER_DEBIT nvarchar(250) = NULL,
15
@p_REQ_PAY_TYPE varchar(15) = NULL,
16
@p_REQ_TYPE_CURRENCY nvarchar(50) = NULL,
17
@p_REQ_AMT decimal = NULL,
18
@p_REQ_TEMP_AMT decimal = NULL,
19
@p_MAKER_ID varchar(15) = NULL,
20
@p_CREATE_DT varchar(25) = NULL,
21
@p_EDITOR_ID varchar(15) = NULL,
22
@p_AUTH_STATUS varchar(1) = N'U',
23
@p_CHECKER_ID varchar(15) = NULL,
24
@p_APPROVE_DT varchar(25) = NULL,
25
@p_CREATE_DT_KT varchar(25) = NULL,
26
@p_MAKER_ID_KT varchar(15) = NULL,
27
@p_AUTH_STATUS_KT varchar(1) = NULL,
28
@p_CHECKER_ID_KT varchar(1) = NULL,
29
@p_EXEC_USER_KT nvarchar(20) = NULL,
30
@p_APPROVE_DT_KT varchar(25) = NULL,
31
@p_CORE_NOTE nvarchar(500) = NULL,
32
@p_BRANCH_CREATE varchar(15) = N'DV0001',
33
@p_NOTES nvarchar(15) = NULL,
34
@p_RECORD_STATUS varchar(1) = NULL,
35
@p_TRANSFER_MAKER nvarchar(50) = NULL,
36
@p_TRANSFER_DT varchar(25) = NULL,
37
@p_TRASFER_USER_RECIVE varchar(15) = NULL,
38
@p_PROCESS varchar(15) = NULL,
39
@p_PAY_PHASE varchar(15) = NULL,
40
@p_XMP_TEMP xml = NULL,
41
@p_TOP int = NULL,
42
@p_LEVEL varchar(10) = N'ALL',
43
@p_FRMDATE varchar(20) = NULL,
44
@p_TODATE varchar(20) = N'11/01/2023 00:00:00',
45
@p_BRANCH_LOGIN varchar(15) = N'DV0001',
46
@p_IS_UPDATE_KT varchar(15) = NULL,
47
@p_IS_TRANSFER varchar(15) = NULL,
48
@p_DVDM_ID varchar(15) = NULL,
49
@p_USER_LOGIN varchar(15) = N'muoilvb',
50
@p_RATE decimal = NULL,
51
@p_FUNCTION varchar(15) = NULL,
52
@p_TYPE_SEARCH varchar(15) = N'HC',
53
@p_TEMP_PAY_STATUS varchar(10) = NULL
54

    
55
	SET @p_TOP = NULL  
56
	IF(ISNULL(@p_BRANCH_ID, '') = '')
57
	BEGIN
58
		SET @p_BRANCH_ID = @p_BRANCH_LOGIN
59
	END
60
	IF(ISNULL(@p_BRANCH_CREATE, '') = '')
61
	BEGIN
62
		SET @p_BRANCH_CREATE = @p_BRANCH_LOGIN
63
	END
64
-- BRANCH TYPE CUA USER LOGIN
65
	DECLARE @TB_TYPE TABLE (BRANCH_TYPE VARCHAR(15))  
66
	IF((SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID= @p_BRANCH_LOGIN)='HS')  
67
	BEGIN  
68
		INSERT INTO @TB_TYPE VALUES('HS')  
69
	END  
70
	ELSE  
71
	BEGIN  
72
		INSERT INTO @TB_TYPE VALUES('PGD')  
73
		INSERT INTO @TB_TYPE VALUES('CN')  
74
	END  
75

    
76
-- DANH SACH PHONG BAN CON CUA NGUOI TAO PHIEU
77
	IF(NOT EXISTS (SELECT * FROM CM_BRANCH WHERE BRANCH_ID = @p_BRANCH_ID))
78
	BEGIN
79
		SET @p_BRANCH_ID = (SELECT TOP 1 BRANCH_ID FROM CM_BRANCH WHERE BRANCH_CODE = @p_BRANCH_ID)
80
	END
81
	DECLARE @tmp TABLE(BRANCH_ID VARCHAR(15))  
82
	INSERT INTO @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)  
83
-- DANH SACH PHONG BAN CON CUA USER LOGIN
84
	declare @tmp_Login table(BRANCH_ID varchar(15))  
85
	insert into @tmp_Login SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)  
86

    
87
	DECLARE @ROLE_ID VARCHAR(20) , @DEP_ID_LG VARCHAR(15) = NULL, @COST_LG VARCHAR(15), @DVDM_ID VARCHAR(15), @BRANCH_TYPE VARCHAR(15) , @KHOI_ID_LG VARCHAR(15) = NULL, @KHOI_ID VARCHAR(15) = NULL
88
-- BRANCH TYPE CUA PHIEU DE NGHI TAM UNG
89
	SET @BRANCH_TYPE =(SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID=(SELECT BRANCH_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID))  
90
-- ROLE CUA USER LOGIN
91
	SET @ROLE_ID = (SELECT ROLENAME FROM TL_USER WHERE TLNANME=@p_USER_LOGIN)  
92
-- KHAI BAO UY QUYEN KIEM NHIEM
93
	DECLARE @TABLE_ROLE TABLE (ROLE_AUTH VARCHAR(50))  
94
	INSERT INTO @TABLE_ROLE VALUES (@ROLE_ID)
95
	INSERT INTO @TABLE_ROLE SELECT ROLE_NEW FROM TL_SYS_ROLE_MAPPING WHERE ROLE_OLD =@ROLE_ID  
96
	AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
97
	AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='') AND TLNAME =@p_USER_LOGIN
98

    
99
	--AND CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) AND CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103)  
100

    
101
-- PHONG BAN CUA USER LOGIN
102
	SET @DEP_ID_LG =(SELECT SECUR_CODE FROM TL_USER WHERE TLNANME=@p_USER_LOGIN)  
103
	SET @KHOI_ID_LG =(SELECT KHOI_ID FROM CM_DEPARTMENT WHERE DEP_ID=@DEP_ID_LG) 
104
	SET @KHOI_ID =(SELECT KHOI_ID FROM CM_DEPARTMENT WHERE DEP_ID	=	(SELECT DEP_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @p_REQ_PAY_ID)) 
105
	
106
	DECLARE @TMP_DEP TABLE(DEP_ID VARCHAR(15))  
107
	SET @COST_LG =(SELECT TOP 1 COST_ID FROM PL_COSTCENTER_DT WHERE DEP_ID =@DEP_ID_LG)  
108
	SET @DVDM_ID =(SELECT TOP 1 DVDM_ID FROM PL_COSTCENTER WHERE COST_ID =@COST_LG)  
109
	INSERT INTO @TMP_DEP SELECT B.DEP_ID FROM PL_COSTCENTER_DT B WHERE COST_ID =@COST_LG  
110
-- BRANCH_TYPE USER LOGIN
111
	DECLARE @BRANCH_TYPE_LG VARCHAR(15)  
112
	SET @BRANCH_TYPE_LG = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_LOGIN)  
113
-- KHAI BAO NHUNG PHONG BAN MA 1 USER KIEM NHIEM  
114
	DECLARE @DEP_AUTH TABLE (DEP_AUTH VARCHAR(15))  
115
	INSERT INTO @DEP_AUTH VALUES (@DEP_ID_LG)
116
	INSERT INTO @DEP_AUTH SELECT DEP_ID FROM TL_SYS_ROLE_MAPPING WHERE TLNAME =@P_USER_LOGIN  
117
	AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
118
	AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='')
119

    
120
	DECLARE @BRANCH_AUTH TABLE (BRN_AUTH VARCHAR(15))
121
	INSERT INTO @BRANCH_AUTH VALUES (@BRANCH_TYPE_LG)
122
	INSERT INTO @BRANCH_AUTH SELECT BRANCH_ID FROM TL_SYS_ROLE_MAPPING WHERE TLNAME =@P_USER_LOGIN 
123
	AND CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) 
124
	AND CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103)
125

    
126
	--END
127
	--IF(EXISTS(SELECT * FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@ROLE_ID))  
128
	-- SET @ROLE_ID=(SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@ROLE_ID)  
129

    
130
-- LAY ROLE USER LOGIN
131
	SET @ROLE_ID =(SELECT TOP 1 RoleName FROM TL_USER WHERE TLNANME =@p_USER_LOGIN)  
132
	IF(@ROLE_ID IS NOT NULL AND @ROLE_ID <>'' AND @ROLE_ID IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','TBP','KTT','GDK','KSV','TC','NVTC','TPTC','PPGD','TKTGD','TKHDQT'))  
133
	BEGIN  
134
		PRINT @ROLE_ID  
135
	END  
136
	ELSE  
137
	BEGIN  
138
		SET @ROLE_ID =(SELECT TOP 1 RoleName FROM TL_USER_V2 WHERE TLNANME =@p_USER_LOGIN)  
139
		IF(@ROLE_ID IS NULL OR @ROLE_ID ='')  
140
		BEGIN  
141
			SET @ROLE_ID =(SELECT TOP 1 ROLE_NEW FROM TL_SYS_ROLE_MAPPING WHERE ROLE_OLD =(SELECT TOP 1 ROLENAME FROM TL_USER WHERE TLNANME=@p_USER_LOGIN))  
142
		END  
143
	END  
144
	--if(1=1)
145
	--begin
146
	--print 'role: ' + @ROLE_ID
147
	--return;
148
	--end
149
	IF(@p_TOP IS NULL OR @p_TOP=0)
150
	BEGIN
151
-- PAGING BEGIN
152
BEGIN
153
SELECT COUNT(*) FROM( 
154
		SELECT A.*, A.CONFIRM_NOTES AS CONFIRM_NOTE, '' as TEMP_PAY_STATUS ,ISNULL(B.AUTH_STATUS_NAME,N'Chờ duyệt') AS AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME,  
155
		TL1.TLFullName APPROVE_FULLNAME,TL2.TLFullName CREATE_FULLNAME_KT,TL3.TLFullName APPROVE_FULLNAME_KT,  
156
		CASE WHEN ISNULL(A.IS_PERIOD,'') <> '' AND A.IS_PERIOD ='Y' AND  EXISTS (SELECT TOP 1 X.* FROM TR_REQ_ADVANCE_DT X 
157
										INNER JOIN TR_CONTRACT CT ON X.REF_ID = CT.CONTRACT_ID
158
										WHERE X.REQ_PAY_ID = A.REQ_PAY_ID AND CT.BRANCH_ID <>  @p_BRANCH_LOGIN AND CT.BRANCH_ID IS NOT NULL AND CT.BRANCH_ID <> '') THEN 
159
										BR.BRANCH_NAME + ISNULL(' - '+ (SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT 
160
										WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
161
										ELSE BR.BRANCH_NAME END BRANCH_NAME_REQ,
162
		BR1.BRANCH_NAME BRANCH_NAME, DP.DEP_NAME AS DEP_NAME, DP.DEP_CODE AS DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ,  
163
		--Luanlt--2019/10/15-Sửa AL,AL1  
164
		BR1.BRANCH_CODE BRANCH_CODE_CRE, BR1.BRANCH_NAME AS BRANCH_NAME_CRE , AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME,  
165
		A.REQ_AMT AS TOTAL_AMT_TEMP,CASE WHEN H.SOTIEN_TT IS NULL THEN ISNULL(A.PAY_AMT,0) ELSE ISNULL(A.PAY_AMT,0) END AS TOTAL_AMT_PAY_HIS,  
166
		TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME,  
167
		TL6.TLFullName AS REC_DEBIT_NAME, TL6.TLNANME AS REC_DEBIT_CODE, TL7.TLFullName AS EMP_NAME, TL7.TLNANME AS EMP_CODE,  
168
		PO.PO_CODE, PO.PO_NAME,SUP.SUP_NAME,SUP.TAX_NO AS SUP_TAX_NO,CUS.CUSTOMER_CODE AS CUST_CODE, CUS.CUSTOMER_NAME AS CUST_NAME,PM.PAY_PHASE AS KY_TAM_UNG,  
169
		DV.DVDM_CODE, DV.DVDM_NAME, CASE WHEN PC.ROLE_USER ='GDDV' THEN (SELECT RoleName FROM TL_USER WHERE TLNANME =@p_USER_LOGIN) ELSE PC.ROLE_USER END AS ROLE_CONF, 
170
		--PR.PROCESS_DESC +N' vào lúc '+ CONVERT(VARCHAR(30), CONVERT(DATETIME, PR.APP_DT,103)) AS CONF_STATUS, 
171
		PR.PROCESS_DESC +N' vào lúc '+ ISNULL(FORMAT(PR.APP_DT,'dd/MM/yyyy H:mm:ss'),'') AS CONF_STATUS,
172
		--PC1.NOTES AS NEXT_STEP,  
173
		---2021112 CAU HINH BUOC XU LY TIEP THEO PDN TAM UNG NOI BO
174
		CASE WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS ='E' THEN N'Phiếu đang chờ gửi phê duyệt' 
175
		WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS_KT ='R' THEN N'Phiếu đang chờ GDV xử lý'
176
		WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS_KT ='P' THEN N'Phiếu đang chờ KSV xử lý'
177
		WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS ='R' THEN N'Phiếu bị trả về đơn vị' 
178
		WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND  (A.PROCESS IS NULL OR A.PROCESS ='') AND ISNULL(A.TRASFER_USER_RECIVE,'') <> '' AND ISNULL(A.NOTES,'')='' THEN N'Chờ cấp duyệt trung gian xác nhận'
179
		WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND  (A.PROCESS IS NULL OR A.PROCESS ='') AND ISNULL(A.TRASFER_USER_RECIVE,'') <> '' AND ISNULL(A.NOTES,'') <> '' THEN N'Chờ trưởng đơn vị xác nhận'
180
		WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND   ISNULL(A.TRASFER_USER_RECIVE,'') = ''  AND ISNULL(A.PROCESS,'') = '' THEN N'Chờ trưởng đơn vị xác nhận'
181
		WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND (A.PROCESS IS NOT NULL OR A.PROCESS ='0') THEN PC1.NOTES
182
		WHEN A.REQ_TYPE='I' AND  A.BRANCH_CREATE <> 'DV0001' AND ISNULL(A.TRASFER_USER_RECIVE,'') <> '' AND (A.PROCESS IS NULL OR A.PROCESS ='') THEN N'Chờ cấp duyệt trung gian xác nhận'
183
		WHEN A.REQ_TYPE='I' AND  A.BRANCH_CREATE<>'DV0001' AND (ISNULL(A.TRASFER_USER_RECIVE,'') ='' OR A.PROCESS ='0') THEN PC1.NOTES END AS NEXT_STEP,  
184
		PC3.LEVEL_JOB, PC3.STATUS_JOB,PC3.TYPE_JOB,TL8.TLFullName AS RECIVER_MONEY_FULLNAME, CASE WHEN BR1.BRANCH_TYPE <> 'PGD'THEN BR1.BRANCH_TYPE ELSE 'CN' END AS BRANCH_TYPE_CR, BR.BRANCH_TYPE,@p_TYPE_SEARCH AS TYPE_SEARCH,  
185
		SR.ROLE_ID AS ROLE_ID_CRE, ISNULL(H.SOTIEN_TT,0) AS STTT, A.REQ_AMT - ISNULL(H.SOTIEN_TT,0) AS SL_CL,BR_CORE.BRANCH_CODE AS BRANCH_CODE_CORE, BR_CORE.BRANCH_NAME AS BRANCH_NAME_CORE, '' AS BRANCH_CODE_CONTRACT, '' AS BRANCH_NAME_CONTRACT,
186
		EXEC_USER = CASE WHEN PC3.TLNAME IS NOT NULL THEN PC3.TLNAME 
187
						 WHEN PC3.TLNAME <>'' THEN PC3.TLNAME
188
						 ELSE TL2.TLNANME  
189
						 END
190
		-- doanptt 120522
191
		, C.AUTH_STATUS_KT_DESC,
192
		dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.TRANSFER_DT, GETDATE()) AS NUMBER_OF_TRANSFER,
193
		PC3.TLNAME AS EXEC_USER_KT,
194
		CASE WHEN ISNULL(A.CREATE_DT_KT, '') <> '' AND A.AUTH_STATUS_KT IN('P', 'S')  THEN dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.CREATE_DT_KT, GETDATE())
195
			 ELSE 0 END AS NUMBER_OF_SEND_APPR
196

    
197
-- SELECT END
198
		FROM TR_REQ_ADVANCE_PAYMENT A  
199
		LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS  
200
		LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS  
201
		LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME  
202
		LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME  
203
		LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME  
204
		LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME  
205
		LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID  
206
		LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID  
207
		LEFT JOIN dbo.CM_DEPARTMENT DP ON A.DEP_ID= DP.DEP_ID  
208
		--Luanlt--2019/10/15-Sửa AL,AL1  
209
		LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='REQ_TYPE'  AND AL.CDTYPE = 'REQ_PAY_ADVANCE'--Loại thanh toán (Nội bộ/Thanh toán/Nợ)  
210
		LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE'  AND AL1.CDTYPE = 'REQ_PAY_METHOD' --Hình thức thanh toán( Tiền mặt/Chuyển khoản)
211
		LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME  
212
		LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME  
213
		LEFT JOIN TL_USER TL6 ON A.RECEIVER_DEBIT = TL6.TLNANME AND A.REQ_TYPE='D'  
214
		LEFT JOIN  
215
		(  
216
		SELECT PAY_ADV_ID,(ISNULL(SUM(AMT_USE),0) - ISNULL(SUM(AMT_ADD),0) + ISNULL(SUM(AMT_REVERT),0)) AS SOTIEN_TT FROM TR_REQ_PAYMENT_DT WHERE AUTH_STATUS_KT ='A' GROUP BY PAY_ADV_ID  
217
		) H ON A.REQ_PAY_ID = H.PAY_ADV_ID  
218
		LEFT JOIN TL_USER TL7 ON TL7.TLNANME = A.REF_ID AND A.REQ_TYPE='I'  
219
		LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P'  
220
		LEFT JOIN CM_SUPPLIER SUP ON PO.SUP_ID = SUP.SUP_ID AND A.REQ_TYPE='P'  
221
		LEFT JOIN LS_CUSTOMER CUS ON A.REF_ID = CUS.CUSTOMER_ID AND A.REQ_TYPE='D'  
222
		LEFT JOIN TR_PO_PAYMENT PM ON A.PAY_PHASE = PM.PAY_ID AND A.REQ_TYPE='P'  
223
		LEFT JOIN CM_DVDM DV ON A.DVDM_ID = DV.DVDM_ID  
224
		--LEFT JOIN PL_PROCESS PR ON A.PROCESS = PR.PROCESS_ID AND A.REQ_PAY_ID = PR.REQ_ID  
225
		LEFT JOIN  
226
		(  
227
		SELECT P.REQ_ID, P.PROCESS_DESC, P.APPROVE_DT AS APP_DT FROM PL_PROCESS P 
228
		INNER JOIN  
229
		(  
230
			SELECT MAX (PR.ID) AS ID, MAX(PR.REQ_ID) AS REQ_ID FROM PL_PROCESS PR
231
			GROUP BY PR.REQ_ID  
232
		) PR ON PR.REQ_ID = P.REQ_ID AND P.ID = PR.ID  
233
		--WHERE P.REQ_ID =@p_REQ_PAY_ID
234
		) AS PR ON A.REQ_PAY_ID = PR.REQ_ID  
235
		LEFT JOIN PL_REQUEST_PROCESS PC ON PC.REQ_ID= A.REQ_PAY_ID AND 
236
		(PC.ROLE_USER = @ROLE_ID OR EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =A.REQ_PAY_ID AND STATUS_JOB ='C' AND TLNAME =@p_USER_LOGIN))
237
		AND PC.STATUS='C' 
238
		--LEFT JOIN PL_REQUEST_PROCESS PC ON PC.REQ_ID= A.REQ_PAY_ID AND PC.ROLE_USER IN (SELECT * FROM @TABLE_ROLE) AND PC.STATUS='C'  
239
		LEFT JOIN PL_REQUEST_PROCESS PC1 ON PC1.REQ_ID= A.REQ_PAY_ID AND PC1.STATUS='C'  
240
		LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C'  
241
		LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C'  
242
		LEFT JOIN TL_USER TL8 ON A.RECIVER_MONEY = TL8.TLNANME  
243
		LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID  
244
		LEFT JOIN CM_BRANCH BR_CORE ON TL2.TLSUBBRID = BR_CORE.BRANCH_ID  
245
		WHERE 1=1  
246
		AND (A.REQ_PAY_ID =@p_REQ_PAY_ID OR @p_REQ_PAY_ID IS NULL OR @p_REQ_PAY_ID ='') 
247
		AND(A.MAKER_ID = @p_MAKER_ID OR @p_MAKER_ID = '' OR @p_MAKER_ID IS NULL) 
248
		AND(A.MAKER_ID_KT = @p_MAKER_ID_KT OR @p_MAKER_ID_KT = '' OR @p_MAKER_ID_KT IS NULL)
249
		AND(PC3.TLNAME = @p_EXEC_USER_KT OR @p_EXEC_USER_KT = '' OR @p_EXEC_USER_KT IS NULL)
250
		AND(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' OR @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL)  
251
		AND(A.REQ_REASON LIKE N'%'+@p_REQ_REASON+'%' OR @p_REQ_REASON='' OR @p_REQ_REASON IS NULL)    
252
		AND(A.NOTES LIKE N'%'+@p_NOTES+'%' OR @p_NOTES='' OR @p_NOTES IS NULL)  
253
		--Luanlt-2019/10/14-Thêm Filter REQ_TYPE,FROMDATE TODATE REF_ID  
254
		AND(A.REQ_TYPE LIKE N'%'+@p_REQ_TYPE+'%' OR @p_REQ_TYPE = '' OR @p_REQ_TYPE IS NULL)
255
		AND(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @p_FRMDATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='' OR A.CREATE_DT IS NULL OR A.REQ_DT IS NULL)  
256
		AND(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='' OR A.CREATE_DT IS NULL OR A.REQ_DT IS NULL)  --Luanlt-2019/10/17-Thêm Filter REQ_PAY_CODE REQ_PAY_NAME BRANCH_ID DEP_ID KT_AUTH  
257
		AND(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' or @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL)  
258
		--AND(A.TRASFER_USER_RECIVE =@p_TRASFER_USER_RECIVE or @p_TRASFER_USER_RECIVE='' OR @p_TRASFER_USER_RECIVE IS NULL OR A.MAKER_ID_KT IS NOT NULL OR A.MAKER_ID_KT <>'')  
259
		AND(A.DEP_ID = @p_DEP_ID or @p_DEP_ID='' OR @p_DEP_ID IS NULL)  
260
		AND	(	(A.AUTH_STATUS_KT=@p_AUTH_STATUS_KT OR @p_AUTH_STATUS_KT='' 
261
				OR @p_AUTH_STATUS_KT IS NULL) OR (@p_AUTH_STATUS_KT ='P' AND A.AUTH_STATUS_KT IN ('P','S'))	
262
			)  
263
		AND(A.REF_ID =@p_REF_ID OR @p_REF_ID='' OR @p_REF_ID IS NULL) 
264
		AND	(	A.AUTH_STATUS=@p_AUTH_STATUS 
265
				OR @p_AUTH_STATUS='' 
266
				OR @p_AUTH_STATUS IS NULL 
267
				OR (@p_AUTH_STATUS = 'W' AND ISNULL(A.AUTH_STATUS, '') = 'U' AND A.PROCESS IS NULL)
268
				OR (@p_AUTH_STATUS = 'G' AND ISNULL(A.AUTH_STATUS, '') = 'U' AND A.PROCESS = '')
269
				OR (	A.REQ_TYPE ='I' 
270
						AND A.AUTH_STATUS <>'A' 
271
						AND EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH IN ('GDDV','PP','GDK','KTT','PTGD','TGD','HDQT','TKTGD','TKHDQT'))
272
					)
273
			)
274
		AND	(	(A.MAKER_ID_KT IS NOT NULL AND @p_IS_UPDATE_KT='Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat  
275
				OR	(A.MAKER_ID_KT IS NULL AND @p_IS_UPDATE_KT='N')
276
				OR @p_IS_UPDATE_KT IS NULL 
277
				OR @p_IS_UPDATE_KT=''
278
			)  
279
		 
280
		AND
281
		(
282
			(	@p_IS_TRANSFER='Y' 
283
				 AND(
284
						@p_TYPE_SEARCH ='TKTGD' AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='1')
285
			
286
					 OR (
287
							@p_TYPE_SEARCH ='TKHDQT' AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='2')
288
						)
289
					 OR (
290
							@p_TYPE_SEARCH ='KT' AND (EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID)  OR A.AUTH_STATUS_KT ='A')
291
						)
292
					)
293
			) --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat  
294
			OR
295
			(	@p_IS_TRANSFER='N' 
296
				AND (
297
						(@p_TYPE_SEARCH ='TKTGD' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND  PROCESS_ID ='1') AND ISNULL(A.AUTH_STATUS_KT,'') <> 'A') 
298
				
299
						OR  (
300
								@p_TYPE_SEARCH ='TKHDQT' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='2' AND ISNULL(A.AUTH_STATUS_KT,'') <> 'A')
301
							)
302
						OR  (
303
								@p_TYPE_SEARCH ='KT' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND (PROCESS_ID IS NULL OR PROCESS_ID ='' OR PROCESS_ID ='3')) AND ISNULL(A.AUTH_STATUS_KT,'') <> 'A' 
304
							)
305
					)
306
			)
307
			OR @p_IS_TRANSFER IS NULL 
308
			OR @p_IS_TRANSFER=''
309
		) 
310

    
311
		AND	(	(	(	@p_PROCESS='PM' 
312
						AND (A.REQ_AMT- ISNULL(A.PAY_AMT,0.00)) >0
313
					)  
314
					AND (	A.REQ_TYPE IN('I','D','P') 
315
							OR	(	@DEP_ID_LG ='DEP000000000014' 
316
									AND A.REQ_TYPE IN ('I','P','D')
317
								)
318
						)	
319
					AND	(	(	A.DEP_ID = @DEP_ID_LG 
320
								OR A.MAKER_ID =@p_USER_LOGIN 
321
								OR A.MAKER_ID IS NULL
322
							) 
323
								OR	(	@BRANCH_TYPE_LG <>'HS' 
324
										AND A.BRANCH_ID =@p_BRANCH_LOGIN
325
									) 
326
										OR (	@p_REQ_PAY_CODE IS NOT NULL 
327
												AND @p_REQ_PAY_CODE <> '' 
328
												AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE
329
											)
330
						)
331
				)  
332
				OR @p_PROCESS IS NULL OR @p_PROCESS =''
333
			)  
334
		AND	(	(	@p_LEVEL='ALL' 
335
					AND A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp)
336
				)  
337
				OR	(	(	@p_LEVEL='UNIT' 
338
							AND A.BRANCH_ID=@p_BRANCH_ID
339
						)
340
						OR	(	@p_BRANCH_ID='' 
341
								OR @p_BRANCH_ID IS NULL
342
							) 
343
						OR	(	@p_REQ_PAY_CODE IS NOT NULL 
344
									AND @p_REQ_PAY_CODE <> '' 
345
									AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE
346
							)
347
					)
348
			)    
349
		AND (	(	@p_FUNCTION ='KT' 
350
					AND (	EXISTS	(	SELECT TOP 1 * FROM PL_REQUEST_PROCESS_CHILD X 
351
										WHERE X.REQ_ID = A.REQ_PAY_ID 
352
										AND (	X.TLNAME= @p_USER_LOGIN 
353
												OR X.TLNAME =@p_EXEC_USER_KT
354
											)
355
									)
356
						) 
357
					OR A.CHECKER_ID_KT ='admin' OR A.AUTH_STATUS_KT ='A'
358
				)  
359
				OR @p_FUNCTION IS NULL 
360
				OR @p_FUNCTION ='' 
361
				OR (@p_FUNCTION ='TF' AND A.AUTH_STATUS='A') 
362
				OR @p_FUNCTION ='SIGN'
363
			)
364
		AND(A.MAKER_ID LIKE '%'+@p_MAKER_ID+'%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID ='')    
365
		AND	(	EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS_CHILD 
366
							WHERE TLNAME =@p_TRASFER_USER_RECIVE 
367
							AND TYPE_JOB IN ('XL','KS','TP') 
368
							AND REQ_ID = A.REQ_PAY_ID
369
						) 
370
				OR @p_TRASFER_USER_RECIVE IS NULL 
371
				OR @p_TRASFER_USER_RECIVE=''
372
			)  
373
		AND	(	A.MAKER_ID =@p_USER_LOGIN 
374
				OR (A.TRASFER_USER_RECIVE = @p_USER_LOGIN AND A.AUTH_STATUS NOT IN ('E','R'))  
375
				OR	(	A.AUTH_STATUS <>'E' AND A.AUTH_STATUS <> 'R'
376
						AND	(	(	@p_TYPE_SEARCH ='HC'	-- NEU LA PHIEU DE NGHI TAM UNG NOI BO
377
									AND @BRANCH_TYPE_LG ='HS' 
378
									AND A.REQ_TYPE ='I'  
379
									AND (	(	EXISTS	(	SELECT * FROM @TABLE_ROLE 
380
															WHERE ROLE_AUTH IN ('GDDV','TP', 'PP', 'KTT','TC')
381
														) 
382
												AND (	A.BRANCH_ID =@p_BRANCH_LOGIN 
383
														OR A.BRANCH_ID IN (SELECT * FROM @BRANCH_AUTH)
384
													)
385
												AND (A.DEP_ID = @DEP_ID_LG OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH))
386
												AND	(	(	@p_AUTH_STATUS ='A' 
387
															AND ISNULL(PROCESS,'') ='0' 
388
															AND	EXISTS	(	SELECT * FROM PL_PROCESS 
389
																			WHERE REQ_ID =A.REQ_PAY_ID 
390
																			AND PROCESS_DESC IN (N'Trưởng đơn vị xác nhận phiếu',N'Cấp phê duyệt trung gian xác nhận phiếu')
391
																		)
392
															OR (@p_AUTH_STATUS ='U' AND (ISNULL(PROCESS,'')='')) 
393
															OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS =''
394
														)
395
													)
396
											) 
397
											OR	(	@ROLE_ID IN ('NVMS','NVTT','TBP') 
398
													AND	(	A.TRASFER_USER_RECIVE = @p_USER_LOGIN  
399
															OR A.MAKER_ID =@p_MAKER_ID 
400
															OR A.DEP_ID=@p_DEP_ID
401
														)
402
													AND (A.AUTH_STATUS =@p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS,'') ='')
403
												)
404
											OR	(	EXISTS	(	SELECT * FROM @TABLE_ROLE 
405
																WHERE ROLE_AUTH  IN ('GDK','PTGD')
406
															) 
407
													AND	(	A.DVDM_ID =@DVDM_ID 
408
															OR (	A.DVDM_ID IS NULL 
409
																	OR A.DVDM_ID =''
410
																)
411
														) 
412
													AND EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS 
413
																	WHERE REQ_ID = A.REQ_PAY_ID
414
																	AND ROLE_USER IN (	SELECT * FROM @TABLE_ROLE) 
415
																	-- AND A.BRANCH_CREATE ='DV0001' 
416
																	AND A.PROCESS<>'' 
417
																	AND A.PROCESS IS NOT NULL
418
																	AND	(	(	@p_AUTH_STATUS ='A' 
419
																				AND STATUS IN ('P','A')
420
																			) 
421
																			OR	(	@p_AUTH_STATUS = 'U' AND STATUS ='C') 
422
																			OR	(	ISNULL(@p_AUTH_STATUS,'') ='' 
423
																					AND STATUS IN ('C','P','A')
424
																				)
425
																		)
426
																)
427
													AND @KHOI_ID = @KHOI_ID_LG
428
												)
429
											OR	(	EXISTS	(	SELECT * 
430
																FROM @TABLE_ROLE 
431
																WHERE ROLE_AUTH IN ('TKTGD', 'TKHDQT','TGD','HDQT')) 
432
																AND EXISTS	(	SELECT * 
433
																				FROM PL_REQUEST_PROCESS	
434
																				WHERE REQ_ID = A.REQ_PAY_ID
435
																				AND ROLE_USER IN(SELECT * FROM @TABLE_ROLE) 
436
																				--AND A.BRANCH_CREATE ='DV0001' 
437
																				AND A.PROCESS<>'' 
438
																				AND A.PROCESS IS NOT NULL
439
																				AND (	(	@p_AUTH_STATUS ='A' 
440
																							AND STATUS IN ('P','A')
441
																						) 
442
																						OR (@p_AUTH_STATUS = 'U' AND STATUS ='C') 
443
																						OR(ISNULL(@p_AUTH_STATUS,'') ='' )
444
																					)
445
																			)
446
												)
447

    
448
										)-- NEU ROLE NAM TRONG DS CAC ROLE WORKFLOW 1
449
								)	-- ngoac so 2, line 347
450
-- NGUOC LAI NEU LA TAM UNG KHAC
451
								OR	(	@p_TYPE_SEARCH ='HC' 
452
										AND @BRANCH_TYPE_LG ='HS' 
453
										AND A.REQ_TYPE <> 'I' 
454
										AND	(	A.TRASFER_USER_RECIVE = @p_USER_LOGIN 
455
												OR	(	@ROLE_ID IN ('GDDV','GDK','KTT','TPTC','PP','TBP','TP','TC') 
456
														AND (	A.BRANCH_ID =@p_BRANCH_LOGIN 
457
																OR A.BRANCH_ID IN(SELECT * FROM @BRANCH_AUTH)
458
															)	
459
														AND	(	A.DEP_ID =@DEP_ID_LG 
460
																		OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH)
461
															)  
462
														AND	(	A.TRASFER_USER_RECIVE IS NULL 
463
																OR A.TRASFER_USER_RECIVE ='' 
464
																OR	(	A.TRASFER_USER_RECIVE IS NOT NULL 
465
																		AND A.TRASFER_USER_RECIVE <>'' 
466
																		AND A.PROCESS IS NOT NULL 
467
																	)
468
															)
469
													)  
470
												OR	(	@ROLE_ID NOT IN ('GDDV','GDK','KTT','TPTC','PP','TBP','TP','TC') 
471
														AND (A.DEP_ID =@DEP_ID_LG OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH))
472
													)  
473
											)
474
									)
475
									-- HẾT KIỂM TRA LIÊN QUAN ĐẾN LOẠI TẠM ỨNG
476
								OR	(	@p_TYPE_SEARCH ='HC' 
477
										AND @BRANCH_TYPE_LG = 'CN' 
478
										AND (	@ROLE_ID IN ('GDDV','PGD','TPGD','PPGD') 
479
												AND	(	(	A.TRASFER_USER_RECIVE IS NOT NULL 
480
															AND A.TRASFER_USER_RECIVE <>'' 
481
															AND A.PROCESS IS NOT NULL 
482
														)  
483
														OR A.TRASFER_USER_RECIVE ='' OR A.TRASFER_USER_RECIVE IS NULL
484
													)  
485

    
486
												OR	(	(	A.BRANCH_CREATE <> @p_BRANCH_LOGIN 
487
															AND A.TRASFER_USER_RECIVE IS NOT NULL 
488
															AND A.TRASFER_USER_RECIVE <>''
489
														) 
490
														OR A.BRANCH_CREATE = @p_BRANCH_LOGIN
491
													)  
492
												AND A.BRANCH_ID IN (SELECT * FROM @tmp)
493
											)
494
									)  
495
								OR	(	@p_TYPE_SEARCH ='HC' 
496
										AND @BRANCH_TYPE_LG = 'CN' 
497
										AND A.BRANCH_ID IN (SELECT * FROM @tmp)
498
									)  
499
								OR	(	@p_TYPE_SEARCH ='HC' 
500
										AND @BRANCH_TYPE_LG = 'PGD' 
501
										AND	(	@ROLE_ID IN ('GDDV','TPGD','PPGD','PGD') 
502
												AND A.BRANCH_ID =@p_BRANCH_LOGIN
503
											)
504
									)  
505
								OR	(	@p_TYPE_SEARCH ='HC' 
506
										AND	(	A.DVDM_ID IS NOT NULL 
507
												AND A.DVDM_ID <>'' 
508
												AND A.DVDM_ID =@DVDM_ID 
509
												AND A.PROCESS IS NOT NULL 
510
												AND A.PROCESS <>'' 
511
												AND	@ROLE_ID IN	(	SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID =A.REQ_PAY_ID)
512
											) 
513
										OR	(	A.DEP_ID IN (SELECT * FROM @TMP_DEP) 
514
												AND A.PROCESS IS NOT NULL 
515
												AND A.PROCESS <>''  
516
												AND @ROLE_ID <> 'TKTGD' 
517
												AND @ROLE_ID IN	(	SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID =A.REQ_PAY_ID)
518
											)
519
									)  
520
								--OR(@p_TYPE_SEARCH ='HC' AND (@ROLE_ID IN (SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID= A.REQ_PAY_ID AND ROLE_USER IN ('TGD','HDQT','TKTGD','TKHDQT') AND STATUS ='C')))  
521
								OR	(	@p_TYPE_SEARCH='KT' 
522
										AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
523
									)  
524
								OR	(	@p_TYPE_SEARCH='HC' 
525
										AND	(	@ROLE_ID IN ('KSV','GDV')  
526
												OR @DEP_ID_LG ='DEP000000000022'
527
											) 
528
										AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
529
									)  
530
								OR	(	@p_TYPE_SEARCH='HC' AND (	EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS_CHILD 
531
																				WHERE REQ_ID = A.REQ_PAY_ID 
532
																				AND TLNAME =@p_USER_LOGIN 
533
																				AND TYPE_JOB ='XL' 
534
																				AND STATUS_JOB = 'C' 
535
																				AND ISNULL(A.AUTH_STATUS, '') <> 'A'
536
																			) 
537
																	OR EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS_CHILD 
538
																					WHERE REQ_ID = A.REQ_PAY_ID 
539
																					AND TLNAME =@p_USER_LOGIN 
540
																					AND TYPE_JOB ='XL' 
541
																					AND STATUS_JOB = 'P' 
542
																					AND	(	ISNULL(A.AUTH_STATUS, '') = 'A'
543
																																																								OR EXISTS	(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND TYPE_JOB ='KS' AND STATUS_JOB = 'C')
544
																																																							)
545
																				)
546
																)
547
									) 
548
								OR	(	@p_TYPE_SEARCH IN ('TK','TKTGD','TKHDQT') 
549
										AND A.PROCESS<>'' 
550
										AND A.PROCESS IS NOT NULL
551
										AND (	(	@p_FUNCTION ='TF' AND  EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS 
552
																					WHERE REQ_ID = A.REQ_PAY_ID 
553
																					AND ROLE_USER =@ROLE_ID 
554
																					AND STATUS ='C'
555
																				)
556
												)
557
												OR	(	ISNULL(@p_FUNCTION,'') <> 'TF' 
558
														AND EXISTS(	SELECT * 
559
																	FROM PL_REQUEST_PROCESS 
560
																	WHERE REQ_ID = A.REQ_PAY_ID 
561
																	AND ROLE_USER =@ROLE_ID 
562
																	AND (	(@p_IS_TRANSFER = N'N' AND STATUS ='C') 
563
																			OR	(	@p_IS_TRANSFER <>'N' 
564
																					AND STATUS IN ('C','P')
565
																				)
566
																		)
567
																	)
568
													)
569
											)
570
									)
571
								OR	(	@p_TYPE_SEARCH='PAY' 
572
										AND (	A.REQ_AMT -ISNULL(A.PAY_AMT,0)) >0 
573
										AND	(	(	@BRANCH_TYPE_LG ='HS' 
574
													AND	(	A.DEP_ID =@DEP_ID_LG 
575
															OR A.MAKER_ID =@p_USER_LOGIN 
576
															OR A.MAKER_ID IS NULL 
577
															OR 1=1
578
														)
579
												) 
580
												OR	(	@BRANCH_TYPE_LG <> 'HS' 
581
														AND A.BRANCH_ID = @p_BRANCH_LOGIN
582
													)
583
												OR	(	@p_REQ_PAY_CODE IS NOT NULL 
584
														AND @p_REQ_PAY_CODE <> '' 
585
														AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE
586
													)
587
											)
588
									)  
589
							) -- ngoac so 1, line 347
590
						OR	(	@p_TYPE_SEARCH='HC' 
591
								AND	(	@ROLE_ID IN ('KSV','GDV')  
592
										OR @DEP_ID_LG ='DEP000000000022'
593
									) AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
594
							)
595
					) -- line 346
596
			) -- line 344
597
		AND	(	(	A.PAY_AMT = A.REQ_AMT 
598
					AND (@p_TEMP_PAY_STATUS = 'HT')
599
				)  
600
				OR (A.PAY_AMT = 0 AND (@p_TEMP_PAY_STATUS = 'DCHU') )  
601
				OR (A.PAY_AMT <> 0 and A.PAY_AMT < A.REQ_AMT AND (@p_TEMP_PAY_STATUS = 'DHU'))  
602
				OR @p_TEMP_PAY_STATUS IS NULL OR @p_TEMP_PAY_STATUS = ''  
603
			)  
604
		AND	(	A.RECORD_STATUS ='1' AND A.AUTH_STATUS <>'X')
605
		
606
) COUNTER_TOP;WITH QUERY_DATA AS (  
607
		SELECT A.*, A.CONFIRM_NOTES AS CONFIRM_NOTE, '' as TEMP_PAY_STATUS ,ISNULL(B.AUTH_STATUS_NAME,N'Chờ duyệt') AS AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME,  
608
		TL1.TLFullName APPROVE_FULLNAME,TL2.TLFullName CREATE_FULLNAME_KT,TL3.TLFullName APPROVE_FULLNAME_KT,  
609
		CASE WHEN ISNULL(A.IS_PERIOD,'') <> '' AND A.IS_PERIOD ='Y' AND  EXISTS (SELECT TOP 1 X.* FROM TR_REQ_ADVANCE_DT X 
610
										INNER JOIN TR_CONTRACT CT ON X.REF_ID = CT.CONTRACT_ID
611
										WHERE X.REQ_PAY_ID = A.REQ_PAY_ID AND CT.BRANCH_ID <>  @p_BRANCH_LOGIN AND CT.BRANCH_ID IS NOT NULL AND CT.BRANCH_ID <> '') THEN 
612
										BR.BRANCH_NAME + ISNULL(' - '+ (SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT 
613
										WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
614
										ELSE BR.BRANCH_NAME END BRANCH_NAME_REQ,
615
		BR1.BRANCH_NAME BRANCH_NAME, DP.DEP_NAME AS DEP_NAME, DP.DEP_CODE AS DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ,  
616
		--Luanlt--2019/10/15-Sửa AL,AL1  
617
		BR1.BRANCH_CODE BRANCH_CODE_CRE, BR1.BRANCH_NAME AS BRANCH_NAME_CRE , AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME,  
618
		A.REQ_AMT AS TOTAL_AMT_TEMP,CASE WHEN H.SOTIEN_TT IS NULL THEN ISNULL(A.PAY_AMT,0) ELSE ISNULL(A.PAY_AMT,0) END AS TOTAL_AMT_PAY_HIS,  
619
		TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME,  
620
		TL6.TLFullName AS REC_DEBIT_NAME, TL6.TLNANME AS REC_DEBIT_CODE, TL7.TLFullName AS EMP_NAME, TL7.TLNANME AS EMP_CODE,  
621
		PO.PO_CODE, PO.PO_NAME,SUP.SUP_NAME,SUP.TAX_NO AS SUP_TAX_NO,CUS.CUSTOMER_CODE AS CUST_CODE, CUS.CUSTOMER_NAME AS CUST_NAME,PM.PAY_PHASE AS KY_TAM_UNG,  
622
		DV.DVDM_CODE, DV.DVDM_NAME, CASE WHEN PC.ROLE_USER ='GDDV' THEN (SELECT RoleName FROM TL_USER WHERE TLNANME =@p_USER_LOGIN) ELSE PC.ROLE_USER END AS ROLE_CONF, 
623
		--PR.PROCESS_DESC +N' vào lúc '+ CONVERT(VARCHAR(30), CONVERT(DATETIME, PR.APP_DT,103)) AS CONF_STATUS, 
624
		PR.PROCESS_DESC +N' vào lúc '+ ISNULL(FORMAT(PR.APP_DT,'dd/MM/yyyy H:mm:ss'),'') AS CONF_STATUS,
625
		--PC1.NOTES AS NEXT_STEP,  
626
		---2021112 CAU HINH BUOC XU LY TIEP THEO PDN TAM UNG NOI BO
627
		CASE WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS ='E' THEN N'Phiếu đang chờ gửi phê duyệt' 
628
		WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS_KT ='R' THEN N'Phiếu đang chờ GDV xử lý'
629
		WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS_KT ='P' THEN N'Phiếu đang chờ KSV xử lý'
630
		WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS ='R' THEN N'Phiếu bị trả về đơn vị' 
631
		WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND  (A.PROCESS IS NULL OR A.PROCESS ='') AND ISNULL(A.TRASFER_USER_RECIVE,'') <> '' AND ISNULL(A.NOTES,'')='' THEN N'Chờ cấp duyệt trung gian xác nhận'
632
		WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND  (A.PROCESS IS NULL OR A.PROCESS ='') AND ISNULL(A.TRASFER_USER_RECIVE,'') <> '' AND ISNULL(A.NOTES,'') <> '' THEN N'Chờ trưởng đơn vị xác nhận'
633
		WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND   ISNULL(A.TRASFER_USER_RECIVE,'') = ''  AND ISNULL(A.PROCESS,'') = '' THEN N'Chờ trưởng đơn vị xác nhận'
634
		WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND (A.PROCESS IS NOT NULL OR A.PROCESS ='0') THEN PC1.NOTES
635
		WHEN A.REQ_TYPE='I' AND  A.BRANCH_CREATE <> 'DV0001' AND ISNULL(A.TRASFER_USER_RECIVE,'') <> '' AND (A.PROCESS IS NULL OR A.PROCESS ='') THEN N'Chờ cấp duyệt trung gian xác nhận'
636
		WHEN A.REQ_TYPE='I' AND  A.BRANCH_CREATE<>'DV0001' AND (ISNULL(A.TRASFER_USER_RECIVE,'') ='' OR A.PROCESS ='0') THEN PC1.NOTES END AS NEXT_STEP,  
637
		PC3.LEVEL_JOB, PC3.STATUS_JOB,PC3.TYPE_JOB,TL8.TLFullName AS RECIVER_MONEY_FULLNAME, CASE WHEN BR1.BRANCH_TYPE <> 'PGD'THEN BR1.BRANCH_TYPE ELSE 'CN' END AS BRANCH_TYPE_CR, BR.BRANCH_TYPE,@p_TYPE_SEARCH AS TYPE_SEARCH,  
638
		SR.ROLE_ID AS ROLE_ID_CRE, ISNULL(H.SOTIEN_TT,0) AS STTT, A.REQ_AMT - ISNULL(H.SOTIEN_TT,0) AS SL_CL,BR_CORE.BRANCH_CODE AS BRANCH_CODE_CORE, BR_CORE.BRANCH_NAME AS BRANCH_NAME_CORE, '' AS BRANCH_CODE_CONTRACT, '' AS BRANCH_NAME_CONTRACT,
639
		EXEC_USER = CASE WHEN PC3.TLNAME IS NOT NULL THEN PC3.TLNAME 
640
						 WHEN PC3.TLNAME <>'' THEN PC3.TLNAME
641
						 ELSE TL2.TLNANME  
642
						 END
643
		-- doanptt 120522
644
		, C.AUTH_STATUS_KT_DESC,
645
		dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.TRANSFER_DT, GETDATE()) AS NUMBER_OF_TRANSFER,
646
		PC3.TLNAME AS EXEC_USER_KT,
647
		CASE WHEN ISNULL(A.CREATE_DT_KT, '') <> '' AND A.AUTH_STATUS_KT IN('P', 'S')  THEN dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.CREATE_DT_KT, GETDATE())
648
			 ELSE 0 END AS NUMBER_OF_SEND_APPR
649

    
650
, ROW_NUMBER() OVER (ORDER BY  A.CREATE_DT DESC   
651
) AS __ROWNUM-- SELECT END
652
		FROM TR_REQ_ADVANCE_PAYMENT A  
653
		LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS  
654
		LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS  
655
		LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME  
656
		LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME  
657
		LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME  
658
		LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME  
659
		LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID  
660
		LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID  
661
		LEFT JOIN dbo.CM_DEPARTMENT DP ON A.DEP_ID= DP.DEP_ID  
662
		--Luanlt--2019/10/15-Sửa AL,AL1  
663
		LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='REQ_TYPE'  AND AL.CDTYPE = 'REQ_PAY_ADVANCE'--Loại thanh toán (Nội bộ/Thanh toán/Nợ)  
664
		LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE'  AND AL1.CDTYPE = 'REQ_PAY_METHOD' --Hình thức thanh toán( Tiền mặt/Chuyển khoản)
665
		LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME  
666
		LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME  
667
		LEFT JOIN TL_USER TL6 ON A.RECEIVER_DEBIT = TL6.TLNANME AND A.REQ_TYPE='D'  
668
		LEFT JOIN  
669
		(  
670
		SELECT PAY_ADV_ID,(ISNULL(SUM(AMT_USE),0) - ISNULL(SUM(AMT_ADD),0) + ISNULL(SUM(AMT_REVERT),0)) AS SOTIEN_TT FROM TR_REQ_PAYMENT_DT WHERE AUTH_STATUS_KT ='A' GROUP BY PAY_ADV_ID  
671
		) H ON A.REQ_PAY_ID = H.PAY_ADV_ID  
672
		LEFT JOIN TL_USER TL7 ON TL7.TLNANME = A.REF_ID AND A.REQ_TYPE='I'  
673
		LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P'  
674
		LEFT JOIN CM_SUPPLIER SUP ON PO.SUP_ID = SUP.SUP_ID AND A.REQ_TYPE='P'  
675
		LEFT JOIN LS_CUSTOMER CUS ON A.REF_ID = CUS.CUSTOMER_ID AND A.REQ_TYPE='D'  
676
		LEFT JOIN TR_PO_PAYMENT PM ON A.PAY_PHASE = PM.PAY_ID AND A.REQ_TYPE='P'  
677
		LEFT JOIN CM_DVDM DV ON A.DVDM_ID = DV.DVDM_ID  
678
		--LEFT JOIN PL_PROCESS PR ON A.PROCESS = PR.PROCESS_ID AND A.REQ_PAY_ID = PR.REQ_ID  
679
		LEFT JOIN  
680
		(  
681
		SELECT P.REQ_ID, P.PROCESS_DESC, P.APPROVE_DT AS APP_DT FROM PL_PROCESS P 
682
		INNER JOIN  
683
		(  
684
			SELECT MAX (PR.ID) AS ID, MAX(PR.REQ_ID) AS REQ_ID FROM PL_PROCESS PR
685
			GROUP BY PR.REQ_ID  
686
		) PR ON PR.REQ_ID = P.REQ_ID AND P.ID = PR.ID  
687
		--WHERE P.REQ_ID =@p_REQ_PAY_ID
688
		) AS PR ON A.REQ_PAY_ID = PR.REQ_ID  
689
		LEFT JOIN PL_REQUEST_PROCESS PC ON PC.REQ_ID= A.REQ_PAY_ID AND 
690
		(PC.ROLE_USER = @ROLE_ID OR EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =A.REQ_PAY_ID AND STATUS_JOB ='C' AND TLNAME =@p_USER_LOGIN))
691
		AND PC.STATUS='C' 
692
		--LEFT JOIN PL_REQUEST_PROCESS PC ON PC.REQ_ID= A.REQ_PAY_ID AND PC.ROLE_USER IN (SELECT * FROM @TABLE_ROLE) AND PC.STATUS='C'  
693
		LEFT JOIN PL_REQUEST_PROCESS PC1 ON PC1.REQ_ID= A.REQ_PAY_ID AND PC1.STATUS='C'  
694
		LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C'  
695
		LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C'  
696
		LEFT JOIN TL_USER TL8 ON A.RECIVER_MONEY = TL8.TLNANME  
697
		LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID  
698
		LEFT JOIN CM_BRANCH BR_CORE ON TL2.TLSUBBRID = BR_CORE.BRANCH_ID  
699
		WHERE 1=1  
700
		AND (A.REQ_PAY_ID =@p_REQ_PAY_ID OR @p_REQ_PAY_ID IS NULL OR @p_REQ_PAY_ID ='') 
701
		AND(A.MAKER_ID = @p_MAKER_ID OR @p_MAKER_ID = '' OR @p_MAKER_ID IS NULL) 
702
		AND(A.MAKER_ID_KT = @p_MAKER_ID_KT OR @p_MAKER_ID_KT = '' OR @p_MAKER_ID_KT IS NULL)
703
		AND(PC3.TLNAME = @p_EXEC_USER_KT OR @p_EXEC_USER_KT = '' OR @p_EXEC_USER_KT IS NULL)
704
		AND(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' OR @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL)  
705
		AND(A.REQ_REASON LIKE N'%'+@p_REQ_REASON+'%' OR @p_REQ_REASON='' OR @p_REQ_REASON IS NULL)    
706
		AND(A.NOTES LIKE N'%'+@p_NOTES+'%' OR @p_NOTES='' OR @p_NOTES IS NULL)  
707
		--Luanlt-2019/10/14-Thêm Filter REQ_TYPE,FROMDATE TODATE REF_ID  
708
		AND(A.REQ_TYPE LIKE N'%'+@p_REQ_TYPE+'%' OR @p_REQ_TYPE = '' OR @p_REQ_TYPE IS NULL)
709
		AND(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @p_FRMDATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='' OR A.CREATE_DT IS NULL OR A.REQ_DT IS NULL)  
710
		AND(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='' OR A.CREATE_DT IS NULL OR A.REQ_DT IS NULL)  --Luanlt-2019/10/17-Thêm Filter REQ_PAY_CODE REQ_PAY_NAME BRANCH_ID DEP_ID KT_AUTH  
711
		AND(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' or @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL)  
712
		--AND(A.TRASFER_USER_RECIVE =@p_TRASFER_USER_RECIVE or @p_TRASFER_USER_RECIVE='' OR @p_TRASFER_USER_RECIVE IS NULL OR A.MAKER_ID_KT IS NOT NULL OR A.MAKER_ID_KT <>'')  
713
		AND(A.DEP_ID = @p_DEP_ID or @p_DEP_ID='' OR @p_DEP_ID IS NULL)  
714
		AND	(	(A.AUTH_STATUS_KT=@p_AUTH_STATUS_KT OR @p_AUTH_STATUS_KT='' 
715
				OR @p_AUTH_STATUS_KT IS NULL) OR (@p_AUTH_STATUS_KT ='P' AND A.AUTH_STATUS_KT IN ('P','S'))	
716
			)  
717
		AND(A.REF_ID =@p_REF_ID OR @p_REF_ID='' OR @p_REF_ID IS NULL) 
718
		AND	(	A.AUTH_STATUS=@p_AUTH_STATUS 
719
				OR @p_AUTH_STATUS='' 
720
				OR @p_AUTH_STATUS IS NULL 
721
				OR (@p_AUTH_STATUS = 'W' AND ISNULL(A.AUTH_STATUS, '') = 'U' AND A.PROCESS IS NULL)
722
				OR (@p_AUTH_STATUS = 'G' AND ISNULL(A.AUTH_STATUS, '') = 'U' AND A.PROCESS = '')
723
				OR (	A.REQ_TYPE ='I' 
724
						AND A.AUTH_STATUS <>'A' 
725
						AND EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH IN ('GDDV','PP','GDK','KTT','PTGD','TGD','HDQT','TKTGD','TKHDQT'))
726
					)
727
			)
728
		AND	(	(A.MAKER_ID_KT IS NOT NULL AND @p_IS_UPDATE_KT='Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat  
729
				OR	(A.MAKER_ID_KT IS NULL AND @p_IS_UPDATE_KT='N')
730
				OR @p_IS_UPDATE_KT IS NULL 
731
				OR @p_IS_UPDATE_KT=''
732
			)  
733
		 
734
		AND
735
		(
736
			(	@p_IS_TRANSFER='Y' 
737
				 AND(
738
						@p_TYPE_SEARCH ='TKTGD' AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='1')
739
			
740
					 OR (
741
							@p_TYPE_SEARCH ='TKHDQT' AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='2')
742
						)
743
					 OR (
744
							@p_TYPE_SEARCH ='KT' AND (EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID)  OR A.AUTH_STATUS_KT ='A')
745
						)
746
					)
747
			) --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat  
748
			OR
749
			(	@p_IS_TRANSFER='N' 
750
				AND (
751
						(@p_TYPE_SEARCH ='TKTGD' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND  PROCESS_ID ='1') AND ISNULL(A.AUTH_STATUS_KT,'') <> 'A') 
752
				
753
						OR  (
754
								@p_TYPE_SEARCH ='TKHDQT' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='2' AND ISNULL(A.AUTH_STATUS_KT,'') <> 'A')
755
							)
756
						OR  (
757
								@p_TYPE_SEARCH ='KT' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND (PROCESS_ID IS NULL OR PROCESS_ID ='' OR PROCESS_ID ='3')) AND ISNULL(A.AUTH_STATUS_KT,'') <> 'A' 
758
							)
759
					)
760
			)
761
			OR @p_IS_TRANSFER IS NULL 
762
			OR @p_IS_TRANSFER=''
763
		) 
764

    
765
		AND	(	(	(	@p_PROCESS='PM' 
766
						AND (A.REQ_AMT- ISNULL(A.PAY_AMT,0.00)) >0
767
					)  
768
					AND (	A.REQ_TYPE IN('I','D','P') 
769
							OR	(	@DEP_ID_LG ='DEP000000000014' 
770
									AND A.REQ_TYPE IN ('I','P','D')
771
								)
772
						)	
773
					AND	(	(	A.DEP_ID = @DEP_ID_LG 
774
								OR A.MAKER_ID =@p_USER_LOGIN 
775
								OR A.MAKER_ID IS NULL
776
							) 
777
								OR	(	@BRANCH_TYPE_LG <>'HS' 
778
										AND A.BRANCH_ID =@p_BRANCH_LOGIN
779
									) 
780
										OR (	@p_REQ_PAY_CODE IS NOT NULL 
781
												AND @p_REQ_PAY_CODE <> '' 
782
												AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE
783
											)
784
						)
785
				)  
786
				OR @p_PROCESS IS NULL OR @p_PROCESS =''
787
			)  
788
		AND	(	(	@p_LEVEL='ALL' 
789
					AND A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp)
790
				)  
791
				OR	(	(	@p_LEVEL='UNIT' 
792
							AND A.BRANCH_ID=@p_BRANCH_ID
793
						)
794
						OR	(	@p_BRANCH_ID='' 
795
								OR @p_BRANCH_ID IS NULL
796
							) 
797
						OR	(	@p_REQ_PAY_CODE IS NOT NULL 
798
									AND @p_REQ_PAY_CODE <> '' 
799
									AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE
800
							)
801
					)
802
			)    
803
		AND (	(	@p_FUNCTION ='KT' 
804
					AND (	EXISTS	(	SELECT TOP 1 * FROM PL_REQUEST_PROCESS_CHILD X 
805
										WHERE X.REQ_ID = A.REQ_PAY_ID 
806
										AND (	X.TLNAME= @p_USER_LOGIN 
807
												OR X.TLNAME =@p_EXEC_USER_KT
808
											)
809
									)
810
						) 
811
					OR A.CHECKER_ID_KT ='admin' OR A.AUTH_STATUS_KT ='A'
812
				)  
813
				OR @p_FUNCTION IS NULL 
814
				OR @p_FUNCTION ='' 
815
				OR (@p_FUNCTION ='TF' AND A.AUTH_STATUS='A') 
816
				OR @p_FUNCTION ='SIGN'
817
			)
818
		AND(A.MAKER_ID LIKE '%'+@p_MAKER_ID+'%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID ='')    
819
		AND	(	EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS_CHILD 
820
							WHERE TLNAME =@p_TRASFER_USER_RECIVE 
821
							AND TYPE_JOB IN ('XL','KS','TP') 
822
							AND REQ_ID = A.REQ_PAY_ID
823
						) 
824
				OR @p_TRASFER_USER_RECIVE IS NULL 
825
				OR @p_TRASFER_USER_RECIVE=''
826
			)  
827
		AND	(	A.MAKER_ID =@p_USER_LOGIN 
828
				OR (A.TRASFER_USER_RECIVE = @p_USER_LOGIN AND A.AUTH_STATUS NOT IN ('E','R'))  
829
				OR	(	A.AUTH_STATUS <>'E' AND A.AUTH_STATUS <> 'R'
830
						AND	(	(	@p_TYPE_SEARCH ='HC'	-- NEU LA PHIEU DE NGHI TAM UNG NOI BO
831
									AND @BRANCH_TYPE_LG ='HS' 
832
									AND A.REQ_TYPE ='I'  
833
									AND (	(	EXISTS	(	SELECT * FROM @TABLE_ROLE 
834
															WHERE ROLE_AUTH IN ('GDDV','TP', 'PP', 'KTT','TC')
835
														) 
836
												AND (	A.BRANCH_ID =@p_BRANCH_LOGIN 
837
														OR A.BRANCH_ID IN (SELECT * FROM @BRANCH_AUTH)
838
													)
839
												AND (A.DEP_ID = @DEP_ID_LG OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH))
840
												AND	(	(	@p_AUTH_STATUS ='A' 
841
															AND ISNULL(PROCESS,'') ='0' 
842
															AND	EXISTS	(	SELECT * FROM PL_PROCESS 
843
																			WHERE REQ_ID =A.REQ_PAY_ID 
844
																			AND PROCESS_DESC IN (N'Trưởng đơn vị xác nhận phiếu',N'Cấp phê duyệt trung gian xác nhận phiếu')
845
																		)
846
															OR (@p_AUTH_STATUS ='U' AND (ISNULL(PROCESS,'')='')) 
847
															OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS =''
848
														)
849
													)
850
											) 
851
											OR	(	@ROLE_ID IN ('NVMS','NVTT','TBP') 
852
													AND	(	A.TRASFER_USER_RECIVE = @p_USER_LOGIN  
853
															OR A.MAKER_ID =@p_MAKER_ID 
854
															OR A.DEP_ID=@p_DEP_ID
855
														)
856
													AND (A.AUTH_STATUS =@p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS,'') ='')
857
												)
858
											OR	(	EXISTS	(	SELECT * FROM @TABLE_ROLE 
859
																WHERE ROLE_AUTH  IN ('GDK','PTGD')
860
															) 
861
													AND	(	A.DVDM_ID =@DVDM_ID 
862
															OR (	A.DVDM_ID IS NULL 
863
																	OR A.DVDM_ID =''
864
																)
865
														) 
866
													AND EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS 
867
																	WHERE REQ_ID = A.REQ_PAY_ID
868
																	AND ROLE_USER IN (	SELECT * FROM @TABLE_ROLE) 
869
																	-- AND A.BRANCH_CREATE ='DV0001' 
870
																	AND A.PROCESS<>'' 
871
																	AND A.PROCESS IS NOT NULL
872
																	AND	(	(	@p_AUTH_STATUS ='A' 
873
																				AND STATUS IN ('P','A')
874
																			) 
875
																			OR	(	@p_AUTH_STATUS = 'U' AND STATUS ='C') 
876
																			OR	(	ISNULL(@p_AUTH_STATUS,'') ='' 
877
																					AND STATUS IN ('C','P','A')
878
																				)
879
																		)
880
																)
881
													AND @KHOI_ID = @KHOI_ID_LG
882
												)
883
											OR	(	EXISTS	(	SELECT * 
884
																FROM @TABLE_ROLE 
885
																WHERE ROLE_AUTH IN ('TKTGD', 'TKHDQT','TGD','HDQT')) 
886
																AND EXISTS	(	SELECT * 
887
																				FROM PL_REQUEST_PROCESS	
888
																				WHERE REQ_ID = A.REQ_PAY_ID
889
																				AND ROLE_USER IN(SELECT * FROM @TABLE_ROLE) 
890
																				--AND A.BRANCH_CREATE ='DV0001' 
891
																				AND A.PROCESS<>'' 
892
																				AND A.PROCESS IS NOT NULL
893
																				AND (	(	@p_AUTH_STATUS ='A' 
894
																							AND STATUS IN ('P','A')
895
																						) 
896
																						OR (@p_AUTH_STATUS = 'U' AND STATUS ='C') 
897
																						OR(ISNULL(@p_AUTH_STATUS,'') ='' )
898
																					)
899
																			)
900
												)
901

    
902
										)-- NEU ROLE NAM TRONG DS CAC ROLE WORKFLOW 1
903
								)	-- ngoac so 2, line 347
904
-- NGUOC LAI NEU LA TAM UNG KHAC
905
								OR	(	@p_TYPE_SEARCH ='HC' 
906
										AND @BRANCH_TYPE_LG ='HS' 
907
										AND A.REQ_TYPE <> 'I' 
908
										AND	(	A.TRASFER_USER_RECIVE = @p_USER_LOGIN 
909
												OR	(	@ROLE_ID IN ('GDDV','GDK','KTT','TPTC','PP','TBP','TP','TC') 
910
														AND (	A.BRANCH_ID =@p_BRANCH_LOGIN 
911
																OR A.BRANCH_ID IN(SELECT * FROM @BRANCH_AUTH)
912
															)	
913
														AND	(	A.DEP_ID =@DEP_ID_LG 
914
																		OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH)
915
															)  
916
														AND	(	A.TRASFER_USER_RECIVE IS NULL 
917
																OR A.TRASFER_USER_RECIVE ='' 
918
																OR	(	A.TRASFER_USER_RECIVE IS NOT NULL 
919
																		AND A.TRASFER_USER_RECIVE <>'' 
920
																		AND A.PROCESS IS NOT NULL 
921
																	)
922
															)
923
													)  
924
												OR	(	@ROLE_ID NOT IN ('GDDV','GDK','KTT','TPTC','PP','TBP','TP','TC') 
925
														AND (A.DEP_ID =@DEP_ID_LG OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH))
926
													)  
927
											)
928
									)
929
									-- HẾT KIỂM TRA LIÊN QUAN ĐẾN LOẠI TẠM ỨNG
930
								OR	(	@p_TYPE_SEARCH ='HC' 
931
										AND @BRANCH_TYPE_LG = 'CN' 
932
										AND (	@ROLE_ID IN ('GDDV','PGD','TPGD','PPGD') 
933
												AND	(	(	A.TRASFER_USER_RECIVE IS NOT NULL 
934
															AND A.TRASFER_USER_RECIVE <>'' 
935
															AND A.PROCESS IS NOT NULL 
936
														)  
937
														OR A.TRASFER_USER_RECIVE ='' OR A.TRASFER_USER_RECIVE IS NULL
938
													)  
939

    
940
												OR	(	(	A.BRANCH_CREATE <> @p_BRANCH_LOGIN 
941
															AND A.TRASFER_USER_RECIVE IS NOT NULL 
942
															AND A.TRASFER_USER_RECIVE <>''
943
														) 
944
														OR A.BRANCH_CREATE = @p_BRANCH_LOGIN
945
													)  
946
												AND A.BRANCH_ID IN (SELECT * FROM @tmp)
947
											)
948
									)  
949
								OR	(	@p_TYPE_SEARCH ='HC' 
950
										AND @BRANCH_TYPE_LG = 'CN' 
951
										AND A.BRANCH_ID IN (SELECT * FROM @tmp)
952
									)  
953
								OR	(	@p_TYPE_SEARCH ='HC' 
954
										AND @BRANCH_TYPE_LG = 'PGD' 
955
										AND	(	@ROLE_ID IN ('GDDV','TPGD','PPGD','PGD') 
956
												AND A.BRANCH_ID =@p_BRANCH_LOGIN
957
											)
958
									)  
959
								OR	(	@p_TYPE_SEARCH ='HC' 
960
										AND	(	A.DVDM_ID IS NOT NULL 
961
												AND A.DVDM_ID <>'' 
962
												AND A.DVDM_ID =@DVDM_ID 
963
												AND A.PROCESS IS NOT NULL 
964
												AND A.PROCESS <>'' 
965
												AND	@ROLE_ID IN	(	SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID =A.REQ_PAY_ID)
966
											) 
967
										OR	(	A.DEP_ID IN (SELECT * FROM @TMP_DEP) 
968
												AND A.PROCESS IS NOT NULL 
969
												AND A.PROCESS <>''  
970
												AND @ROLE_ID <> 'TKTGD' 
971
												AND @ROLE_ID IN	(	SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID =A.REQ_PAY_ID)
972
											)
973
									)  
974
								--OR(@p_TYPE_SEARCH ='HC' AND (@ROLE_ID IN (SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID= A.REQ_PAY_ID AND ROLE_USER IN ('TGD','HDQT','TKTGD','TKHDQT') AND STATUS ='C')))  
975
								OR	(	@p_TYPE_SEARCH='KT' 
976
										AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
977
									)  
978
								OR	(	@p_TYPE_SEARCH='HC' 
979
										AND	(	@ROLE_ID IN ('KSV','GDV')  
980
												OR @DEP_ID_LG ='DEP000000000022'
981
											) 
982
										AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
983
									)  
984
								OR	(	@p_TYPE_SEARCH='HC' AND (	EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS_CHILD 
985
																				WHERE REQ_ID = A.REQ_PAY_ID 
986
																				AND TLNAME =@p_USER_LOGIN 
987
																				AND TYPE_JOB ='XL' 
988
																				AND STATUS_JOB = 'C' 
989
																				AND ISNULL(A.AUTH_STATUS, '') <> 'A'
990
																			) 
991
																	OR EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS_CHILD 
992
																					WHERE REQ_ID = A.REQ_PAY_ID 
993
																					AND TLNAME =@p_USER_LOGIN 
994
																					AND TYPE_JOB ='XL' 
995
																					AND STATUS_JOB = 'P' 
996
																					AND	(	ISNULL(A.AUTH_STATUS, '') = 'A'
997
																																																								OR EXISTS	(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND TYPE_JOB ='KS' AND STATUS_JOB = 'C')
998
																																																							)
999
																				)
1000
																)
1001
									) 
1002
								OR	(	@p_TYPE_SEARCH IN ('TK','TKTGD','TKHDQT') 
1003
										AND A.PROCESS<>'' 
1004
										AND A.PROCESS IS NOT NULL
1005
										AND (	(	@p_FUNCTION ='TF' AND  EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS 
1006
																					WHERE REQ_ID = A.REQ_PAY_ID 
1007
																					AND ROLE_USER =@ROLE_ID 
1008
																					AND STATUS ='C'
1009
																				)
1010
												)
1011
												OR	(	ISNULL(@p_FUNCTION,'') <> 'TF' 
1012
														AND EXISTS(	SELECT * 
1013
																	FROM PL_REQUEST_PROCESS 
1014
																	WHERE REQ_ID = A.REQ_PAY_ID 
1015
																	AND ROLE_USER =@ROLE_ID 
1016
																	AND (	(@p_IS_TRANSFER = N'N' AND STATUS ='C') 
1017
																			OR	(	@p_IS_TRANSFER <>'N' 
1018
																					AND STATUS IN ('C','P')
1019
																				)
1020
																		)
1021
																	)
1022
													)
1023
											)
1024
									)
1025
								OR	(	@p_TYPE_SEARCH='PAY' 
1026
										AND (	A.REQ_AMT -ISNULL(A.PAY_AMT,0)) >0 
1027
										AND	(	(	@BRANCH_TYPE_LG ='HS' 
1028
													AND	(	A.DEP_ID =@DEP_ID_LG 
1029
															OR A.MAKER_ID =@p_USER_LOGIN 
1030
															OR A.MAKER_ID IS NULL 
1031
															OR 1=1
1032
														)
1033
												) 
1034
												OR	(	@BRANCH_TYPE_LG <> 'HS' 
1035
														AND A.BRANCH_ID = @p_BRANCH_LOGIN
1036
													)
1037
												OR	(	@p_REQ_PAY_CODE IS NOT NULL 
1038
														AND @p_REQ_PAY_CODE <> '' 
1039
														AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE
1040
													)
1041
											)
1042
									)  
1043
							) -- ngoac so 1, line 347
1044
						OR	(	@p_TYPE_SEARCH='HC' 
1045
								AND	(	@ROLE_ID IN ('KSV','GDV')  
1046
										OR @DEP_ID_LG ='DEP000000000022'
1047
									) AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
1048
							)
1049
					) -- line 346
1050
			) -- line 344
1051
		AND	(	(	A.PAY_AMT = A.REQ_AMT 
1052
					AND (@p_TEMP_PAY_STATUS = 'HT')
1053
				)  
1054
				OR (A.PAY_AMT = 0 AND (@p_TEMP_PAY_STATUS = 'DCHU') )  
1055
				OR (A.PAY_AMT <> 0 and A.PAY_AMT < A.REQ_AMT AND (@p_TEMP_PAY_STATUS = 'DHU'))  
1056
				OR @p_TEMP_PAY_STATUS IS NULL OR @p_TEMP_PAY_STATUS = ''  
1057
			)  
1058
		AND	(	A.RECORD_STATUS ='1' AND A.AUTH_STATUS <>'X')
1059
		
1060
) SELECT * FROM QUERY_DATA WHERE __ROWNUM > 0 AND __ROWNUM <= 10
1061
END-- PAGING END
1062
	END;
1063
	ELSE 
1064
	BEGIN
1065
-- PAGING BEGIN
1066
BEGIN
1067
SELECT COUNT(*) FROM( 
1068
		SELECT A.*, A.CONFIRM_NOTES AS CONFIRM_NOTE,'' as TEMP_PAY_STATUS ,ISNULL(B.AUTH_STATUS_NAME,N'Chờ duyệt') AS AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME,  
1069
		TL1.TLFullName APPROVE_FULLNAME,TL2.TLFullName CREATE_FULLNAME_KT,TL3.TLFullName APPROVE_FULLNAME_KT,  
1070
		CASE WHEN ISNULL(A.IS_PERIOD,'') <> '' AND A.IS_PERIOD ='Y' AND  EXISTS (SELECT TOP 1 X.* FROM TR_REQ_ADVANCE_DT X 
1071
										INNER JOIN TR_CONTRACT CT ON X.REF_ID = CT.CONTRACT_ID
1072
										WHERE X.REQ_PAY_ID = A.REQ_PAY_ID AND CT.BRANCH_ID <>  @p_BRANCH_LOGIN AND CT.BRANCH_ID IS NOT NULL AND CT.BRANCH_ID <> '') THEN 
1073
										BR.BRANCH_NAME + ISNULL(' - '+ (SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT 
1074
										WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
1075
										ELSE BR.BRANCH_NAME END BRANCH_NAME_REQ, 
1076
		BR1.BRANCH_NAME BRANCH_NAME, DP.DEP_NAME AS DEP_NAME, DP.DEP_CODE AS DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ,  
1077
		--Luanlt--2019/10/15-Sửa AL,AL1  
1078
		BR1.BRANCH_CODE BRANCH_CODE_CRE, BR1.BRANCH_NAME AS BRANCH_NAME_CRE , AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME,  
1079
		A.REQ_AMT AS TOTAL_AMT_TEMP,CASE WHEN H.SOTIEN_TT IS NULL THEN ISNULL(A.PAY_AMT,0) ELSE ISNULL(A.PAY_AMT,0) END AS TOTAL_AMT_PAY_HIS,  
1080
		TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME,  
1081
		TL6.TLFullName AS REC_DEBIT_NAME, TL6.TLNANME AS REC_DEBIT_CODE, TL7.TLFullName AS EMP_NAME, TL7.TLNANME AS EMP_CODE,  
1082
		PO.PO_CODE, PO.PO_NAME,SUP.SUP_NAME,SUP.TAX_NO AS SUP_TAX_NO,CUS.CUSTOMER_CODE AS CUST_CODE, CUS.CUSTOMER_NAME AS CUST_NAME,PM.PAY_PHASE AS KY_TAM_UNG,  
1083
		DV.DVDM_CODE, DV.DVDM_NAME, CASE WHEN PC.ROLE_USER ='GDDV' THEN (SELECT RoleName FROM TL_USER WHERE TLNANME =@p_USER_LOGIN) ELSE PC.ROLE_USER END AS ROLE_CONF, 
1084
		--PR.PROCESS_DESC +N' vào lúc '+ CONVERT(VARCHAR(30), CONVERT(DATETIME, PR.APP_DT,103)) AS CONF_STATUS, 
1085
		PR.PROCESS_DESC +N' vào lúc '+ ISNULL(FORMAT(PR.APP_DT,'dd/MM/yyyy H:mm:ss'),'') AS CONF_STATUS,
1086
		--PC1.NOTES AS NEXT_STEP,  
1087
		---2021112 CAU HINH BUOC XU LY TIEP THEO PDN TAM UNG NOI BO
1088
		CASE WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS ='E' THEN N'Phiếu đang chờ gửi phê duyệt' 
1089
		WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS_KT ='R' THEN N'Phiếu đang chờ GDV xử lý'
1090
		WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS_KT ='P' THEN N'Phiếu đang chờ KSV xử lý'
1091
		WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS ='R' THEN N'Phiếu bị trả về đơn vị' 
1092
		WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND  (A.PROCESS IS NULL OR A.PROCESS ='') AND ISNULL(A.TRASFER_USER_RECIVE,'') <> '' AND ISNULL(A.NOTES,'')='' THEN N'Chờ cấp duyệt trung gian xác nhận'
1093
		WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND  (A.PROCESS IS NULL OR A.PROCESS ='') AND ISNULL(A.TRASFER_USER_RECIVE,'') <> '' AND ISNULL(A.NOTES,'') <> '' THEN N'Chờ trưởng đơn vị xác nhận'
1094
		WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND   ISNULL(A.TRASFER_USER_RECIVE,'') = ''  AND ISNULL(A.PROCESS,'') = '' THEN N'Chờ trưởng đơn vị xác nhận'
1095
		WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND (A.PROCESS IS NOT NULL OR A.PROCESS ='0') THEN PC1.NOTES
1096
		WHEN A.REQ_TYPE='I' AND  A.BRANCH_CREATE <> 'DV0001' AND ISNULL(A.TRASFER_USER_RECIVE,'') <> '' AND (A.PROCESS IS NULL OR A.PROCESS ='') THEN N'Chờ cấp duyệt trung gian xác nhận'
1097
		WHEN A.REQ_TYPE='I' AND  A.BRANCH_CREATE<>'DV0001' AND (ISNULL(A.TRASFER_USER_RECIVE,'') ='' OR A.PROCESS ='0') THEN PC1.NOTES END AS NEXT_STEP,  
1098
		PC3.LEVEL_JOB, PC3.STATUS_JOB,PC3.TYPE_JOB, TL8.TLFullName AS RECIVER_MONEY_FULLNAME, CASE WHEN BR1.BRANCH_TYPE <> 'PGD'THEN BR1.BRANCH_TYPE ELSE 'CN' END AS BRANCH_TYPE_CR, BR.BRANCH_TYPE,@p_TYPE_SEARCH AS TYPE_SEARCH,  
1099
		SR.ROLE_ID AS ROLE_ID_CRE, ISNULL(H.SOTIEN_TT,0) AS STTT, A.REQ_AMT - ISNULL(H.SOTIEN_TT,0) AS SL_CL,BR_CORE.BRANCH_CODE AS BRANCH_CODE_CORE, BR_CORE.BRANCH_NAME AS BRANCH_NAME_CORE, '' AS BRANCH_CODE_CONTRACT, '' AS BRANCH_NAME_CONTRACT,
1100
		EXEC_USER = CASE WHEN PC3.TLNAME IS NOT NULL THEN PC3.TLNAME 
1101
						 WHEN PC3.TLNAME <>'' THEN PC3.TLNAME
1102
						 ELSE TL2.TLNANME  
1103
						 END
1104
		-- doanptt 120522
1105
		, C.AUTH_STATUS_KT_DESC,
1106
		dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.TRANSFER_DT, GETDATE()) AS NUMBER_OF_TRANSFER,
1107
		PC3.TLNAME AS EXEC_USER_KT,
1108
		CASE WHEN ISNULL(A.CREATE_DT_KT, '') <> '' AND A.AUTH_STATUS_KT IN('P', 'S')  THEN dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.CREATE_DT_KT, GETDATE())
1109
			 ELSE 0 END AS NUMBER_OF_SEND_APPR
1110
-- SELECT END
1111
		FROM TR_REQ_ADVANCE_PAYMENT A  
1112
		LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS  
1113
		LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS  
1114
		LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME  
1115
		LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME  
1116
		LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME  
1117
		LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME  
1118
		LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID  
1119
		LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID  
1120
		LEFT JOIN dbo.CM_DEPARTMENT DP ON A.DEP_ID= DP.DEP_ID  
1121
		--Luanlt--2019/10/15-Sửa AL,AL1  
1122
		LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='REQ_TYPE'  AND AL.CDTYPE = 'REQ_PAY_ADVANCE'--Loại thanh toán (Nội bộ/Thanh toán/Nợ)  
1123
		LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE'  AND AL1.CDTYPE = 'REQ_PAY_METHOD' --Hình thức thanh toán( Tiền mặt/Chuyển khoản)
1124
		LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME  
1125
		LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME  
1126
		LEFT JOIN TL_USER TL6 ON A.RECEIVER_DEBIT = TL6.TLNANME AND A.REQ_TYPE='D'  
1127
		LEFT JOIN  
1128
		(  
1129
		SELECT PAY_ADV_ID,(ISNULL(SUM(AMT_USE),0) - ISNULL(SUM(AMT_ADD),0) + ISNULL(SUM(AMT_REVERT),0)) AS SOTIEN_TT FROM TR_REQ_PAYMENT_DT WHERE AUTH_STATUS_KT ='A' GROUP BY PAY_ADV_ID  
1130
		) H ON A.REQ_PAY_ID = H.PAY_ADV_ID  
1131
		LEFT JOIN TL_USER TL7 ON TL7.TLNANME = A.REF_ID AND A.REQ_TYPE='I'  
1132
		LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P'  
1133
		LEFT JOIN CM_SUPPLIER SUP ON PO.SUP_ID = SUP.SUP_ID AND A.REQ_TYPE='P'  
1134
		LEFT JOIN LS_CUSTOMER CUS ON A.REF_ID = CUS.CUSTOMER_ID AND A.REQ_TYPE='D'  
1135
		LEFT JOIN TR_PO_PAYMENT PM ON A.PAY_PHASE = PM.PAY_ID AND A.REQ_TYPE='P'  
1136
		LEFT JOIN CM_DVDM DV ON A.DVDM_ID = DV.DVDM_ID  
1137
		--LEFT JOIN PL_PROCESS PR ON A.PROCESS = PR.PROCESS_ID AND A.REQ_PAY_ID = PR.REQ_ID  
1138
		LEFT JOIN  
1139
		(  
1140
		SELECT P.REQ_ID, P.PROCESS_DESC, P.APPROVE_DT AS APP_DT FROM PL_PROCESS P 
1141
		INNER JOIN  
1142
		(  
1143
			SELECT MAX (PR.ID) AS ID, MAX(PR.REQ_ID) AS REQ_ID FROM PL_PROCESS PR
1144
			GROUP BY PR.REQ_ID  
1145
		) PR ON PR.REQ_ID = P.REQ_ID AND P.ID = PR.ID  
1146
		--WHERE P.REQ_ID =@p_REQ_PAY_ID
1147
		) AS PR ON A.REQ_PAY_ID = PR.REQ_ID  
1148
		LEFT JOIN PL_REQUEST_PROCESS PC ON PC.REQ_ID= A.REQ_PAY_ID AND 
1149
		(PC.ROLE_USER = @ROLE_ID OR EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =A.REQ_PAY_ID AND STATUS_JOB ='C' AND TLNAME =@p_USER_LOGIN))
1150
		AND PC.STATUS='C'  
1151
		--LEFT JOIN PL_REQUEST_PROCESS PC ON PC.REQ_ID= A.REQ_PAY_ID AND PC.ROLE_USER IN (SELECT * FROM @TABLE_ROLE) AND PC.STATUS='C'  
1152
		LEFT JOIN PL_REQUEST_PROCESS PC1 ON PC1.REQ_ID= A.REQ_PAY_ID AND PC1.STATUS='C'  
1153
		LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C'  
1154
		LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C'  
1155
		LEFT JOIN TL_USER TL8 ON A.RECIVER_MONEY = TL8.TLNANME  
1156
		LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID  
1157
		LEFT JOIN CM_BRANCH BR_CORE ON TL2.TLSUBBRID = BR_CORE.BRANCH_ID  
1158
		WHERE 1=1  
1159
		AND (A.REQ_PAY_ID =@p_REQ_PAY_ID OR @p_REQ_PAY_ID IS NULL OR @p_REQ_PAY_ID ='')  
1160
		AND(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' OR @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL) 
1161
		AND(A.MAKER_ID = @p_MAKER_ID OR @p_MAKER_ID = '' OR @p_MAKER_ID IS NULL) 
1162
		AND(A.MAKER_ID_KT = @p_MAKER_ID_KT OR @p_MAKER_ID_KT = '' OR @p_MAKER_ID_KT IS NULL)  
1163
		AND(PC3.TLNAME = @p_EXEC_USER_KT OR @p_EXEC_USER_KT = '' OR @p_EXEC_USER_KT IS NULL)
1164
		AND(A.REQ_REASON LIKE N'%'+@p_REQ_REASON+'%' OR @p_REQ_REASON='' OR @p_REQ_REASON IS NULL)    
1165
		AND(A.NOTES LIKE N'%'+@p_NOTES+'%' OR @p_NOTES='' OR @p_NOTES IS NULL)  
1166
		--Luanlt-2019/10/14-Thêm Filter REQ_TYPE,FROMDATE TODATE REF_ID  
1167
		AND(A.REQ_TYPE LIKE N'%'+@p_REQ_TYPE+'%' OR @p_REQ_TYPE = '' OR @p_REQ_TYPE IS NULL)
1168
		AND(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @p_FRMDATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='' OR A.CREATE_DT IS NULL OR A.REQ_DT IS NULL)  
1169
		AND(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='' OR A.CREATE_DT IS NULL OR A.REQ_DT IS NULL)  --Luanlt-2019/10/17-Thêm Filter REQ_PAY_CODE REQ_PAY_NAME BRANCH_ID DEP_ID KT_AUTH  
1170
		AND(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' or @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL)  
1171
		--AND(A.TRASFER_USER_RECIVE =@p_TRASFER_USER_RECIVE or @p_TRASFER_USER_RECIVE='' OR @p_TRASFER_USER_RECIVE IS NULL OR A.MAKER_ID_KT IS NOT NULL OR A.MAKER_ID_KT <>'')  
1172
		AND(A.DEP_ID = @p_DEP_ID or @p_DEP_ID='' OR @p_DEP_ID IS NULL)  
1173
		AND((A.AUTH_STATUS_KT=@p_AUTH_STATUS_KT OR @p_AUTH_STATUS_KT='' OR @p_AUTH_STATUS_KT IS NULL) OR (@p_AUTH_STATUS_KT ='P' AND A.AUTH_STATUS_KT IN ('P','S')))  
1174
		AND(A.REF_ID =@p_REF_ID OR @p_REF_ID='' OR @p_REF_ID IS NULL) 
1175
		AND	(	A.AUTH_STATUS=@p_AUTH_STATUS 
1176
				OR @p_AUTH_STATUS='' 
1177
				OR @p_AUTH_STATUS IS NULL 
1178
				OR (@p_AUTH_STATUS = 'W' AND ISNULL(A.AUTH_STATUS, '') = 'U' AND A.PROCESS IS NULL)
1179
				OR (@p_AUTH_STATUS = 'G' AND ISNULL(A.AUTH_STATUS, '') = 'U' AND A.PROCESS = '')
1180
				OR (	A.REQ_TYPE ='I' 
1181
						AND A.AUTH_STATUS <>'A' 
1182
						AND EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH IN ('GDDV','PP','GDK','KTT','PTGD','TGD','HDQT','TKTGD','TKHDQT'))
1183
					)
1184
			)
1185
		AND	(	(A.MAKER_ID_KT IS NOT NULL AND @p_IS_UPDATE_KT='Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat  
1186
				OR	(A.MAKER_ID_KT IS NULL AND @p_IS_UPDATE_KT='N')
1187
				OR @p_IS_UPDATE_KT IS NULL 
1188
				OR @p_IS_UPDATE_KT=''
1189
			)  
1190
		 
1191
		AND
1192
		(
1193
			(	@p_IS_TRANSFER='Y' 
1194
				 AND(
1195
						@p_TYPE_SEARCH ='TKTGD' AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='1')
1196
			
1197
					 OR (
1198
							@p_TYPE_SEARCH ='TKHDQT' AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='2')
1199
						)
1200
					 OR (
1201
							@p_TYPE_SEARCH ='KT' AND (EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID)  OR A.AUTH_STATUS_KT ='A')
1202
						)
1203
					)
1204
			) --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat  
1205
			OR
1206
			(	@p_IS_TRANSFER='N' 
1207
				AND (
1208
						(@p_TYPE_SEARCH ='TKTGD' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND  PROCESS_ID ='1') AND ISNULL(A.AUTH_STATUS_KT,'') <> 'A') 
1209
				
1210
						OR  (
1211
								@p_TYPE_SEARCH ='TKHDQT' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='2' AND ISNULL(A.AUTH_STATUS_KT,'') <> 'A')
1212
							)
1213
						OR  (
1214
								@p_TYPE_SEARCH ='KT' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND (PROCESS_ID IS NULL OR PROCESS_ID ='' OR PROCESS_ID ='3')) AND ISNULL(A.AUTH_STATUS_KT,'') <> 'A' 
1215
							)
1216
					)
1217
			)
1218
			OR @p_IS_TRANSFER IS NULL 
1219
			OR @p_IS_TRANSFER=''
1220
		) 
1221

    
1222
		AND	(	(	(	@p_PROCESS='PM' 
1223
						AND (A.REQ_AMT- ISNULL(A.PAY_AMT,0.00)) >0
1224
					)  
1225
					AND (	A.REQ_TYPE IN('I','D','P') 
1226
							OR	(	@DEP_ID_LG ='DEP000000000014' 
1227
									AND A.REQ_TYPE IN ('I','P','D')
1228
								)
1229
						)	
1230
					AND	(	(	A.DEP_ID = @DEP_ID_LG 
1231
								OR A.MAKER_ID =@p_USER_LOGIN 
1232
								OR A.MAKER_ID IS NULL
1233
							) 
1234
								OR	(	@BRANCH_TYPE_LG <>'HS' 
1235
										AND A.BRANCH_ID =@p_BRANCH_LOGIN
1236
									) 
1237
										OR (	@p_REQ_PAY_CODE IS NOT NULL 
1238
												AND @p_REQ_PAY_CODE <> '' 
1239
												AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE
1240
											)
1241
						)
1242
				)  
1243
				OR @p_PROCESS IS NULL OR @p_PROCESS =''
1244
			)  
1245
		AND	(	(	@p_LEVEL='ALL' 
1246
					AND A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp)
1247
				)  
1248
				OR	(	(	@p_LEVEL='UNIT' 
1249
							AND A.BRANCH_ID=@p_BRANCH_ID
1250
						)
1251
						OR	(	@p_BRANCH_ID='' 
1252
								OR @p_BRANCH_ID IS NULL
1253
							) 
1254
						OR	(	@p_REQ_PAY_CODE IS NOT NULL 
1255
									AND @p_REQ_PAY_CODE <> '' 
1256
									AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE
1257
							)
1258
					)
1259
			)    
1260
		AND (	(	@p_FUNCTION ='KT' 
1261
					AND (	EXISTS	(	SELECT TOP 1 * FROM PL_REQUEST_PROCESS_CHILD X 
1262
										WHERE X.REQ_ID = A.REQ_PAY_ID 
1263
										AND (	X.TLNAME= @p_USER_LOGIN 
1264
												OR X.TLNAME =@p_EXEC_USER_KT
1265
											)
1266
									)
1267
						) 
1268
					OR A.CHECKER_ID_KT ='admin' OR A.AUTH_STATUS_KT ='A'
1269
				)  
1270
				OR @p_FUNCTION IS NULL 
1271
				OR @p_FUNCTION ='' 
1272
				OR (@p_FUNCTION ='TF' AND A.AUTH_STATUS='A') 
1273
				OR @p_FUNCTION ='SIGN'
1274
			)
1275
		AND(A.MAKER_ID LIKE '%'+@p_MAKER_ID+'%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID ='')    
1276
		AND	(	EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS_CHILD 
1277
							WHERE TLNAME =@p_TRASFER_USER_RECIVE 
1278
							AND TYPE_JOB IN ('XL','KS','TP') 
1279
							AND REQ_ID = A.REQ_PAY_ID
1280
						) 
1281
				OR @p_TRASFER_USER_RECIVE IS NULL 
1282
				OR @p_TRASFER_USER_RECIVE=''
1283
			)  
1284
		AND	(	A.MAKER_ID =@p_USER_LOGIN 
1285
				OR (A.TRASFER_USER_RECIVE = @p_USER_LOGIN AND A.AUTH_STATUS NOT IN ('E','R'))  
1286
				OR	(	A.AUTH_STATUS <>'E' AND A.AUTH_STATUS <> 'R'
1287
						AND	(	(	@p_TYPE_SEARCH ='HC'	-- NEU LA PHIEU DE NGHI TAM UNG NOI BO
1288
									AND @BRANCH_TYPE_LG ='HS' 
1289
									AND A.REQ_TYPE ='I'  
1290
									AND (	(	EXISTS	(	SELECT * FROM @TABLE_ROLE 
1291
															WHERE ROLE_AUTH IN ('GDDV','TP', 'PP', 'KTT','TC')
1292
														) 
1293
												AND (	A.BRANCH_ID =@p_BRANCH_LOGIN 
1294
														OR A.BRANCH_ID IN (SELECT * FROM @BRANCH_AUTH)
1295
													)
1296
												AND (A.DEP_ID = @DEP_ID_LG OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH))
1297
												AND	(	(	@p_AUTH_STATUS ='A' 
1298
															AND ISNULL(PROCESS,'') ='0' 
1299
															AND	EXISTS	(	SELECT * FROM PL_PROCESS 
1300
																			WHERE REQ_ID =A.REQ_PAY_ID 
1301
																			AND PROCESS_DESC IN (N'Trưởng đơn vị xác nhận phiếu',N'Cấp phê duyệt trung gian xác nhận phiếu')
1302
																		)
1303
															OR (@p_AUTH_STATUS ='U' AND ISNULL(PROCESS,'')='') 
1304
															OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS =''
1305
														)
1306
													)
1307
											) 
1308
											OR	(	@ROLE_ID IN ('NVMS','NVTT','TBP') 
1309
													AND	(	A.TRASFER_USER_RECIVE = @p_USER_LOGIN  
1310
															OR A.MAKER_ID =@p_MAKER_ID 
1311
															OR A.DEP_ID=@p_DEP_ID
1312
														)
1313
													AND (A.AUTH_STATUS =@p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS,'') ='')
1314
												)
1315
											OR	(	EXISTS	(	SELECT * FROM @TABLE_ROLE 
1316
																WHERE ROLE_AUTH  IN ('GDK','PTGD')
1317
															) 
1318
													AND	(	A.DVDM_ID =@DVDM_ID 
1319
															OR (	A.DVDM_ID IS NULL 
1320
																	OR A.DVDM_ID =''
1321
																)
1322
														) 
1323
													AND EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS 
1324
																	WHERE REQ_ID = A.REQ_PAY_ID
1325
																	AND ROLE_USER IN (	SELECT * FROM @TABLE_ROLE) 
1326
																	-- AND A.BRANCH_CREATE ='DV0001' 
1327
																	AND A.PROCESS<>'' 
1328
																	AND A.PROCESS IS NOT NULL
1329
																	AND	(	(	@p_AUTH_STATUS ='A' 
1330
																				AND STATUS IN ('P','A')
1331
																			) 
1332
																			OR	(	@p_AUTH_STATUS = 'U' AND STATUS ='C') 
1333
																			OR	(	ISNULL(@p_AUTH_STATUS,'') ='' 
1334
																					AND STATUS IN ('C','P','A')
1335
																				)
1336
																		)
1337
																)
1338
													AND @KHOI_ID = @KHOI_ID_LG
1339
												)
1340
											OR	(	EXISTS	(	SELECT * 
1341
																FROM @TABLE_ROLE 
1342
																WHERE ROLE_AUTH IN ('TKTGD', 'TKHDQT','TGD','HDQT')) 
1343
																AND EXISTS	(	SELECT * 
1344
																				FROM PL_REQUEST_PROCESS	
1345
																				WHERE REQ_ID = A.REQ_PAY_ID
1346
																				AND ROLE_USER IN(SELECT * FROM @TABLE_ROLE) 
1347
																				--AND A.BRANCH_CREATE ='DV0001' 
1348
																				AND A.PROCESS<>'' 
1349
																				AND A.PROCESS IS NOT NULL
1350
																				AND (	(	@p_AUTH_STATUS ='A' 
1351
																							AND STATUS IN ('P','A')
1352
																						) 
1353
																						OR (@p_AUTH_STATUS = 'U' AND STATUS ='C') 
1354
																						OR(ISNULL(@p_AUTH_STATUS,'') ='' )
1355
																					)
1356
																			)
1357
												)
1358

    
1359
										)-- NEU ROLE NAM TRONG DS CAC ROLE WORKFLOW 1
1360
								)	-- ngoac so 2, line 347
1361
-- NGUOC LAI NEU LA TAM UNG KHAC
1362
								OR	(	@p_TYPE_SEARCH ='HC' 
1363
										AND @BRANCH_TYPE_LG ='HS' 
1364
										AND A.REQ_TYPE <> 'I' 
1365
										AND	(	A.TRASFER_USER_RECIVE = @p_USER_LOGIN 
1366
												OR	(	@ROLE_ID IN ('GDDV','GDK','KTT','TPTC','PP','TBP','TP','TC') 
1367
														AND (	A.BRANCH_ID =@p_BRANCH_LOGIN 
1368
																OR A.BRANCH_ID IN(SELECT * FROM @BRANCH_AUTH)
1369
															)	
1370
														AND	(	A.DEP_ID =@DEP_ID_LG 
1371
																		OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH)
1372
															)  
1373
														AND	(	A.TRASFER_USER_RECIVE IS NULL 
1374
																OR A.TRASFER_USER_RECIVE ='' 
1375
																OR	(	A.TRASFER_USER_RECIVE IS NOT NULL 
1376
																		AND A.TRASFER_USER_RECIVE <>'' 
1377
																		AND A.PROCESS IS NOT NULL 
1378
																		AND A.PROCESS <>''
1379
																	)
1380
															)
1381
													)  
1382
												OR	(	@ROLE_ID NOT IN ('GDDV','GDK','KTT','TPTC','PP','TBP','TP','TC') 
1383
														AND (A.DEP_ID =@DEP_ID_LG OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH))
1384
													)  
1385
											)
1386
									)
1387
									-- HẾT KIỂM TRA LIÊN QUAN ĐẾN LOẠI TẠM ỨNG
1388
								OR	(	@p_TYPE_SEARCH ='HC' 
1389
										AND @BRANCH_TYPE_LG = 'CN' 
1390
										AND (	@ROLE_ID IN ('GDDV','PGD','TPGD','PPGD') 
1391
												AND	(	(	A.TRASFER_USER_RECIVE IS NOT NULL 
1392
															AND A.TRASFER_USER_RECIVE <>'' 
1393
															AND A.PROCESS IS NOT NULL 
1394
															AND A.PROCESS <>''
1395
														)  
1396
														OR A.TRASFER_USER_RECIVE ='' OR A.TRASFER_USER_RECIVE IS NULL
1397
													)  
1398

    
1399
												OR	(	(	A.BRANCH_CREATE <> @p_BRANCH_LOGIN 
1400
															AND A.TRASFER_USER_RECIVE IS NOT NULL 
1401
															AND A.TRASFER_USER_RECIVE <>''
1402
														) 
1403
														OR A.BRANCH_CREATE = @p_BRANCH_LOGIN
1404
													)  
1405
												AND A.BRANCH_ID IN (SELECT * FROM @tmp)
1406
											)
1407
									)  
1408
								OR	(	@p_TYPE_SEARCH ='HC' 
1409
										AND @BRANCH_TYPE_LG = 'CN' 
1410
										AND A.BRANCH_ID IN (SELECT * FROM @tmp)
1411
									)  
1412
								OR	(	@p_TYPE_SEARCH ='HC' 
1413
										AND @BRANCH_TYPE_LG = 'PGD' 
1414
										AND	(	@ROLE_ID IN ('GDDV','TPGD','PPGD','PGD') 
1415
												AND A.BRANCH_ID =@p_BRANCH_LOGIN
1416
											)
1417
									)  
1418
								OR	(	@p_TYPE_SEARCH ='HC' 
1419
										AND	(	A.DVDM_ID IS NOT NULL 
1420
												AND A.DVDM_ID <>'' 
1421
												AND A.DVDM_ID =@DVDM_ID 
1422
												AND A.PROCESS IS NOT NULL 
1423
												AND A.PROCESS <>'' 
1424
												AND	@ROLE_ID IN	(	SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID =A.REQ_PAY_ID)
1425
											) 
1426
										OR	(	A.DEP_ID IN (SELECT * FROM @TMP_DEP) 
1427
												AND A.PROCESS IS NOT NULL 
1428
												AND A.PROCESS <>''  
1429
												AND @ROLE_ID <> 'TKTGD' 
1430
												AND @ROLE_ID IN	(	SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID =A.REQ_PAY_ID)
1431
											)
1432
									)  
1433
								--OR(@p_TYPE_SEARCH ='HC' AND (@ROLE_ID IN (SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID= A.REQ_PAY_ID AND ROLE_USER IN ('TGD','HDQT','TKTGD','TKHDQT') AND STATUS ='C')))  
1434
								OR	(	@p_TYPE_SEARCH='KT' 
1435
										AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
1436
									)  
1437
								OR	(	@p_TYPE_SEARCH='HC' 
1438
										AND	(	@ROLE_ID IN ('KSV','GDV')  
1439
												OR @DEP_ID_LG ='DEP000000000022'
1440
											) 
1441
										AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
1442
									)  
1443
								OR	(	@p_TYPE_SEARCH='HC' AND (	EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS_CHILD 
1444
																				WHERE REQ_ID = A.REQ_PAY_ID 
1445
																				AND TLNAME =@p_USER_LOGIN 
1446
																				AND TYPE_JOB ='XL' 
1447
																				AND STATUS_JOB = 'C' 
1448
																				AND ISNULL(A.AUTH_STATUS, '') <> 'A'
1449
																			) 
1450
																	OR EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS_CHILD 
1451
																					WHERE REQ_ID = A.REQ_PAY_ID 
1452
																					AND TLNAME =@p_USER_LOGIN 
1453
																					AND TYPE_JOB ='XL' 
1454
																					AND STATUS_JOB = 'P' 
1455
																					AND	(	ISNULL(A.AUTH_STATUS, '') = 'A'
1456
																																																								OR EXISTS	(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND TYPE_JOB ='KS' AND STATUS_JOB = 'C')
1457
																																																							)
1458
																				)
1459
																)
1460
									) 
1461
								OR	(	@p_TYPE_SEARCH IN ('TK','TKTGD','TKHDQT') 
1462
										AND A.PROCESS<>'' 
1463
										AND A.PROCESS IS NOT NULL
1464
										AND (	(	@p_FUNCTION ='TF' AND  EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS 
1465
																					WHERE REQ_ID = A.REQ_PAY_ID 
1466
																					AND ROLE_USER =@ROLE_ID 
1467
																					AND STATUS ='C'
1468
																				)
1469
												)
1470
												OR	(	ISNULL(@p_FUNCTION,'') <> 'TF' 
1471
														AND EXISTS(	SELECT * 
1472
																	FROM PL_REQUEST_PROCESS 
1473
																	WHERE REQ_ID = A.REQ_PAY_ID 
1474
																	AND ROLE_USER =@ROLE_ID 
1475
																	AND (	(@p_IS_TRANSFER = N'N' AND STATUS ='C') 
1476
																			OR	(	@p_IS_TRANSFER <>'N' 
1477
																					AND STATUS IN ('C','P')
1478
																				)
1479
																		)
1480
																	)
1481
													)
1482
											)
1483
									)
1484
								OR	(	@p_TYPE_SEARCH='PAY' 
1485
										AND (	A.REQ_AMT -ISNULL(A.PAY_AMT,0)) >0 
1486
										AND	(	(	@BRANCH_TYPE_LG ='HS' 
1487
													AND	(	A.DEP_ID =@DEP_ID_LG 
1488
															OR A.MAKER_ID =@p_USER_LOGIN 
1489
															OR A.MAKER_ID IS NULL 
1490
															OR 1=1
1491
														)
1492
												) 
1493
												OR	(	@BRANCH_TYPE_LG <> 'HS' 
1494
														AND A.BRANCH_ID = @p_BRANCH_LOGIN
1495
													)
1496
												OR	(	@p_REQ_PAY_CODE IS NOT NULL 
1497
														AND @p_REQ_PAY_CODE <> '' 
1498
														AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE
1499
													)
1500
											)
1501
									)  
1502
							) -- ngoac so 1, line 347
1503
						OR	(	@p_TYPE_SEARCH='HC' 
1504
								AND	(	@ROLE_ID IN ('KSV','GDV')  
1505
										OR @DEP_ID_LG ='DEP000000000022'
1506
									) AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
1507
							)
1508
					) -- line 346
1509
			) -- line 344
1510
		AND	(	(	A.PAY_AMT = A.REQ_AMT 
1511
					AND (@p_TEMP_PAY_STATUS = 'HT')
1512
				)  
1513
				OR (A.PAY_AMT = 0 AND (@p_TEMP_PAY_STATUS = 'DCHU') )  
1514
				OR (A.PAY_AMT <> 0 and A.PAY_AMT < A.REQ_AMT AND (@p_TEMP_PAY_STATUS = 'DHU'))  
1515
				OR @p_TEMP_PAY_STATUS IS NULL OR @p_TEMP_PAY_STATUS = ''  
1516
			)  
1517
		AND	(	A.RECORD_STATUS ='1' AND A.AUTH_STATUS <>'X')
1518
		
1519
) COUNTER_TOP;WITH QUERY_DATA AS (  
1520
		SELECT A.*, A.CONFIRM_NOTES AS CONFIRM_NOTE,'' as TEMP_PAY_STATUS ,ISNULL(B.AUTH_STATUS_NAME,N'Chờ duyệt') AS AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME,  
1521
		TL1.TLFullName APPROVE_FULLNAME,TL2.TLFullName CREATE_FULLNAME_KT,TL3.TLFullName APPROVE_FULLNAME_KT,  
1522
		CASE WHEN ISNULL(A.IS_PERIOD,'') <> '' AND A.IS_PERIOD ='Y' AND  EXISTS (SELECT TOP 1 X.* FROM TR_REQ_ADVANCE_DT X 
1523
										INNER JOIN TR_CONTRACT CT ON X.REF_ID = CT.CONTRACT_ID
1524
										WHERE X.REQ_PAY_ID = A.REQ_PAY_ID AND CT.BRANCH_ID <>  @p_BRANCH_LOGIN AND CT.BRANCH_ID IS NOT NULL AND CT.BRANCH_ID <> '') THEN 
1525
										BR.BRANCH_NAME + ISNULL(' - '+ (SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT 
1526
										WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
1527
										ELSE BR.BRANCH_NAME END BRANCH_NAME_REQ, 
1528
		BR1.BRANCH_NAME BRANCH_NAME, DP.DEP_NAME AS DEP_NAME, DP.DEP_CODE AS DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ,  
1529
		--Luanlt--2019/10/15-Sửa AL,AL1  
1530
		BR1.BRANCH_CODE BRANCH_CODE_CRE, BR1.BRANCH_NAME AS BRANCH_NAME_CRE , AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME,  
1531
		A.REQ_AMT AS TOTAL_AMT_TEMP,CASE WHEN H.SOTIEN_TT IS NULL THEN ISNULL(A.PAY_AMT,0) ELSE ISNULL(A.PAY_AMT,0) END AS TOTAL_AMT_PAY_HIS,  
1532
		TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME,  
1533
		TL6.TLFullName AS REC_DEBIT_NAME, TL6.TLNANME AS REC_DEBIT_CODE, TL7.TLFullName AS EMP_NAME, TL7.TLNANME AS EMP_CODE,  
1534
		PO.PO_CODE, PO.PO_NAME,SUP.SUP_NAME,SUP.TAX_NO AS SUP_TAX_NO,CUS.CUSTOMER_CODE AS CUST_CODE, CUS.CUSTOMER_NAME AS CUST_NAME,PM.PAY_PHASE AS KY_TAM_UNG,  
1535
		DV.DVDM_CODE, DV.DVDM_NAME, CASE WHEN PC.ROLE_USER ='GDDV' THEN (SELECT RoleName FROM TL_USER WHERE TLNANME =@p_USER_LOGIN) ELSE PC.ROLE_USER END AS ROLE_CONF, 
1536
		--PR.PROCESS_DESC +N' vào lúc '+ CONVERT(VARCHAR(30), CONVERT(DATETIME, PR.APP_DT,103)) AS CONF_STATUS, 
1537
		PR.PROCESS_DESC +N' vào lúc '+ ISNULL(FORMAT(PR.APP_DT,'dd/MM/yyyy H:mm:ss'),'') AS CONF_STATUS,
1538
		--PC1.NOTES AS NEXT_STEP,  
1539
		---2021112 CAU HINH BUOC XU LY TIEP THEO PDN TAM UNG NOI BO
1540
		CASE WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS ='E' THEN N'Phiếu đang chờ gửi phê duyệt' 
1541
		WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS_KT ='R' THEN N'Phiếu đang chờ GDV xử lý'
1542
		WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS_KT ='P' THEN N'Phiếu đang chờ KSV xử lý'
1543
		WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS ='R' THEN N'Phiếu bị trả về đơn vị' 
1544
		WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND  (A.PROCESS IS NULL OR A.PROCESS ='') AND ISNULL(A.TRASFER_USER_RECIVE,'') <> '' AND ISNULL(A.NOTES,'')='' THEN N'Chờ cấp duyệt trung gian xác nhận'
1545
		WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND  (A.PROCESS IS NULL OR A.PROCESS ='') AND ISNULL(A.TRASFER_USER_RECIVE,'') <> '' AND ISNULL(A.NOTES,'') <> '' THEN N'Chờ trưởng đơn vị xác nhận'
1546
		WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND   ISNULL(A.TRASFER_USER_RECIVE,'') = ''  AND ISNULL(A.PROCESS,'') = '' THEN N'Chờ trưởng đơn vị xác nhận'
1547
		WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND (A.PROCESS IS NOT NULL OR A.PROCESS ='0') THEN PC1.NOTES
1548
		WHEN A.REQ_TYPE='I' AND  A.BRANCH_CREATE <> 'DV0001' AND ISNULL(A.TRASFER_USER_RECIVE,'') <> '' AND (A.PROCESS IS NULL OR A.PROCESS ='') THEN N'Chờ cấp duyệt trung gian xác nhận'
1549
		WHEN A.REQ_TYPE='I' AND  A.BRANCH_CREATE<>'DV0001' AND (ISNULL(A.TRASFER_USER_RECIVE,'') ='' OR A.PROCESS ='0') THEN PC1.NOTES END AS NEXT_STEP,  
1550
		PC3.LEVEL_JOB, PC3.STATUS_JOB,PC3.TYPE_JOB, TL8.TLFullName AS RECIVER_MONEY_FULLNAME, CASE WHEN BR1.BRANCH_TYPE <> 'PGD'THEN BR1.BRANCH_TYPE ELSE 'CN' END AS BRANCH_TYPE_CR, BR.BRANCH_TYPE,@p_TYPE_SEARCH AS TYPE_SEARCH,  
1551
		SR.ROLE_ID AS ROLE_ID_CRE, ISNULL(H.SOTIEN_TT,0) AS STTT, A.REQ_AMT - ISNULL(H.SOTIEN_TT,0) AS SL_CL,BR_CORE.BRANCH_CODE AS BRANCH_CODE_CORE, BR_CORE.BRANCH_NAME AS BRANCH_NAME_CORE, '' AS BRANCH_CODE_CONTRACT, '' AS BRANCH_NAME_CONTRACT,
1552
		EXEC_USER = CASE WHEN PC3.TLNAME IS NOT NULL THEN PC3.TLNAME 
1553
						 WHEN PC3.TLNAME <>'' THEN PC3.TLNAME
1554
						 ELSE TL2.TLNANME  
1555
						 END
1556
		-- doanptt 120522
1557
		, C.AUTH_STATUS_KT_DESC,
1558
		dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.TRANSFER_DT, GETDATE()) AS NUMBER_OF_TRANSFER,
1559
		PC3.TLNAME AS EXEC_USER_KT,
1560
		CASE WHEN ISNULL(A.CREATE_DT_KT, '') <> '' AND A.AUTH_STATUS_KT IN('P', 'S')  THEN dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.CREATE_DT_KT, GETDATE())
1561
			 ELSE 0 END AS NUMBER_OF_SEND_APPR
1562
, ROW_NUMBER() OVER (ORDER BY  A.CREATE_DT DESC   
1563
) AS __ROWNUM-- SELECT END
1564
		FROM TR_REQ_ADVANCE_PAYMENT A  
1565
		LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS  
1566
		LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS  
1567
		LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME  
1568
		LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME  
1569
		LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME  
1570
		LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME  
1571
		LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID  
1572
		LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID  
1573
		LEFT JOIN dbo.CM_DEPARTMENT DP ON A.DEP_ID= DP.DEP_ID  
1574
		--Luanlt--2019/10/15-Sửa AL,AL1  
1575
		LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='REQ_TYPE'  AND AL.CDTYPE = 'REQ_PAY_ADVANCE'--Loại thanh toán (Nội bộ/Thanh toán/Nợ)  
1576
		LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE'  AND AL1.CDTYPE = 'REQ_PAY_METHOD' --Hình thức thanh toán( Tiền mặt/Chuyển khoản)
1577
		LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME  
1578
		LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME  
1579
		LEFT JOIN TL_USER TL6 ON A.RECEIVER_DEBIT = TL6.TLNANME AND A.REQ_TYPE='D'  
1580
		LEFT JOIN  
1581
		(  
1582
		SELECT PAY_ADV_ID,(ISNULL(SUM(AMT_USE),0) - ISNULL(SUM(AMT_ADD),0) + ISNULL(SUM(AMT_REVERT),0)) AS SOTIEN_TT FROM TR_REQ_PAYMENT_DT WHERE AUTH_STATUS_KT ='A' GROUP BY PAY_ADV_ID  
1583
		) H ON A.REQ_PAY_ID = H.PAY_ADV_ID  
1584
		LEFT JOIN TL_USER TL7 ON TL7.TLNANME = A.REF_ID AND A.REQ_TYPE='I'  
1585
		LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P'  
1586
		LEFT JOIN CM_SUPPLIER SUP ON PO.SUP_ID = SUP.SUP_ID AND A.REQ_TYPE='P'  
1587
		LEFT JOIN LS_CUSTOMER CUS ON A.REF_ID = CUS.CUSTOMER_ID AND A.REQ_TYPE='D'  
1588
		LEFT JOIN TR_PO_PAYMENT PM ON A.PAY_PHASE = PM.PAY_ID AND A.REQ_TYPE='P'  
1589
		LEFT JOIN CM_DVDM DV ON A.DVDM_ID = DV.DVDM_ID  
1590
		--LEFT JOIN PL_PROCESS PR ON A.PROCESS = PR.PROCESS_ID AND A.REQ_PAY_ID = PR.REQ_ID  
1591
		LEFT JOIN  
1592
		(  
1593
		SELECT P.REQ_ID, P.PROCESS_DESC, P.APPROVE_DT AS APP_DT FROM PL_PROCESS P 
1594
		INNER JOIN  
1595
		(  
1596
			SELECT MAX (PR.ID) AS ID, MAX(PR.REQ_ID) AS REQ_ID FROM PL_PROCESS PR
1597
			GROUP BY PR.REQ_ID  
1598
		) PR ON PR.REQ_ID = P.REQ_ID AND P.ID = PR.ID  
1599
		--WHERE P.REQ_ID =@p_REQ_PAY_ID
1600
		) AS PR ON A.REQ_PAY_ID = PR.REQ_ID  
1601
		LEFT JOIN PL_REQUEST_PROCESS PC ON PC.REQ_ID= A.REQ_PAY_ID AND 
1602
		(PC.ROLE_USER = @ROLE_ID OR EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =A.REQ_PAY_ID AND STATUS_JOB ='C' AND TLNAME =@p_USER_LOGIN))
1603
		AND PC.STATUS='C'  
1604
		--LEFT JOIN PL_REQUEST_PROCESS PC ON PC.REQ_ID= A.REQ_PAY_ID AND PC.ROLE_USER IN (SELECT * FROM @TABLE_ROLE) AND PC.STATUS='C'  
1605
		LEFT JOIN PL_REQUEST_PROCESS PC1 ON PC1.REQ_ID= A.REQ_PAY_ID AND PC1.STATUS='C'  
1606
		LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C'  
1607
		LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C'  
1608
		LEFT JOIN TL_USER TL8 ON A.RECIVER_MONEY = TL8.TLNANME  
1609
		LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID  
1610
		LEFT JOIN CM_BRANCH BR_CORE ON TL2.TLSUBBRID = BR_CORE.BRANCH_ID  
1611
		WHERE 1=1  
1612
		AND (A.REQ_PAY_ID =@p_REQ_PAY_ID OR @p_REQ_PAY_ID IS NULL OR @p_REQ_PAY_ID ='')  
1613
		AND(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' OR @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL) 
1614
		AND(A.MAKER_ID = @p_MAKER_ID OR @p_MAKER_ID = '' OR @p_MAKER_ID IS NULL) 
1615
		AND(A.MAKER_ID_KT = @p_MAKER_ID_KT OR @p_MAKER_ID_KT = '' OR @p_MAKER_ID_KT IS NULL)  
1616
		AND(PC3.TLNAME = @p_EXEC_USER_KT OR @p_EXEC_USER_KT = '' OR @p_EXEC_USER_KT IS NULL)
1617
		AND(A.REQ_REASON LIKE N'%'+@p_REQ_REASON+'%' OR @p_REQ_REASON='' OR @p_REQ_REASON IS NULL)    
1618
		AND(A.NOTES LIKE N'%'+@p_NOTES+'%' OR @p_NOTES='' OR @p_NOTES IS NULL)  
1619
		--Luanlt-2019/10/14-Thêm Filter REQ_TYPE,FROMDATE TODATE REF_ID  
1620
		AND(A.REQ_TYPE LIKE N'%'+@p_REQ_TYPE+'%' OR @p_REQ_TYPE = '' OR @p_REQ_TYPE IS NULL)
1621
		AND(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @p_FRMDATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='' OR A.CREATE_DT IS NULL OR A.REQ_DT IS NULL)  
1622
		AND(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='' OR A.CREATE_DT IS NULL OR A.REQ_DT IS NULL)  --Luanlt-2019/10/17-Thêm Filter REQ_PAY_CODE REQ_PAY_NAME BRANCH_ID DEP_ID KT_AUTH  
1623
		AND(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' or @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL)  
1624
		--AND(A.TRASFER_USER_RECIVE =@p_TRASFER_USER_RECIVE or @p_TRASFER_USER_RECIVE='' OR @p_TRASFER_USER_RECIVE IS NULL OR A.MAKER_ID_KT IS NOT NULL OR A.MAKER_ID_KT <>'')  
1625
		AND(A.DEP_ID = @p_DEP_ID or @p_DEP_ID='' OR @p_DEP_ID IS NULL)  
1626
		AND((A.AUTH_STATUS_KT=@p_AUTH_STATUS_KT OR @p_AUTH_STATUS_KT='' OR @p_AUTH_STATUS_KT IS NULL) OR (@p_AUTH_STATUS_KT ='P' AND A.AUTH_STATUS_KT IN ('P','S')))  
1627
		AND(A.REF_ID =@p_REF_ID OR @p_REF_ID='' OR @p_REF_ID IS NULL) 
1628
		AND	(	A.AUTH_STATUS=@p_AUTH_STATUS 
1629
				OR @p_AUTH_STATUS='' 
1630
				OR @p_AUTH_STATUS IS NULL 
1631
				OR (@p_AUTH_STATUS = 'W' AND ISNULL(A.AUTH_STATUS, '') = 'U' AND A.PROCESS IS NULL)
1632
				OR (@p_AUTH_STATUS = 'G' AND ISNULL(A.AUTH_STATUS, '') = 'U' AND A.PROCESS = '')
1633
				OR (	A.REQ_TYPE ='I' 
1634
						AND A.AUTH_STATUS <>'A' 
1635
						AND EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH IN ('GDDV','PP','GDK','KTT','PTGD','TGD','HDQT','TKTGD','TKHDQT'))
1636
					)
1637
			)
1638
		AND	(	(A.MAKER_ID_KT IS NOT NULL AND @p_IS_UPDATE_KT='Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat  
1639
				OR	(A.MAKER_ID_KT IS NULL AND @p_IS_UPDATE_KT='N')
1640
				OR @p_IS_UPDATE_KT IS NULL 
1641
				OR @p_IS_UPDATE_KT=''
1642
			)  
1643
		 
1644
		AND
1645
		(
1646
			(	@p_IS_TRANSFER='Y' 
1647
				 AND(
1648
						@p_TYPE_SEARCH ='TKTGD' AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='1')
1649
			
1650
					 OR (
1651
							@p_TYPE_SEARCH ='TKHDQT' AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='2')
1652
						)
1653
					 OR (
1654
							@p_TYPE_SEARCH ='KT' AND (EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID)  OR A.AUTH_STATUS_KT ='A')
1655
						)
1656
					)
1657
			) --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat  
1658
			OR
1659
			(	@p_IS_TRANSFER='N' 
1660
				AND (
1661
						(@p_TYPE_SEARCH ='TKTGD' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND  PROCESS_ID ='1') AND ISNULL(A.AUTH_STATUS_KT,'') <> 'A') 
1662
				
1663
						OR  (
1664
								@p_TYPE_SEARCH ='TKHDQT' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='2' AND ISNULL(A.AUTH_STATUS_KT,'') <> 'A')
1665
							)
1666
						OR  (
1667
								@p_TYPE_SEARCH ='KT' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND (PROCESS_ID IS NULL OR PROCESS_ID ='' OR PROCESS_ID ='3')) AND ISNULL(A.AUTH_STATUS_KT,'') <> 'A' 
1668
							)
1669
					)
1670
			)
1671
			OR @p_IS_TRANSFER IS NULL 
1672
			OR @p_IS_TRANSFER=''
1673
		) 
1674

    
1675
		AND	(	(	(	@p_PROCESS='PM' 
1676
						AND (A.REQ_AMT- ISNULL(A.PAY_AMT,0.00)) >0
1677
					)  
1678
					AND (	A.REQ_TYPE IN('I','D','P') 
1679
							OR	(	@DEP_ID_LG ='DEP000000000014' 
1680
									AND A.REQ_TYPE IN ('I','P','D')
1681
								)
1682
						)	
1683
					AND	(	(	A.DEP_ID = @DEP_ID_LG 
1684
								OR A.MAKER_ID =@p_USER_LOGIN 
1685
								OR A.MAKER_ID IS NULL
1686
							) 
1687
								OR	(	@BRANCH_TYPE_LG <>'HS' 
1688
										AND A.BRANCH_ID =@p_BRANCH_LOGIN
1689
									) 
1690
										OR (	@p_REQ_PAY_CODE IS NOT NULL 
1691
												AND @p_REQ_PAY_CODE <> '' 
1692
												AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE
1693
											)
1694
						)
1695
				)  
1696
				OR @p_PROCESS IS NULL OR @p_PROCESS =''
1697
			)  
1698
		AND	(	(	@p_LEVEL='ALL' 
1699
					AND A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp)
1700
				)  
1701
				OR	(	(	@p_LEVEL='UNIT' 
1702
							AND A.BRANCH_ID=@p_BRANCH_ID
1703
						)
1704
						OR	(	@p_BRANCH_ID='' 
1705
								OR @p_BRANCH_ID IS NULL
1706
							) 
1707
						OR	(	@p_REQ_PAY_CODE IS NOT NULL 
1708
									AND @p_REQ_PAY_CODE <> '' 
1709
									AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE
1710
							)
1711
					)
1712
			)    
1713
		AND (	(	@p_FUNCTION ='KT' 
1714
					AND (	EXISTS	(	SELECT TOP 1 * FROM PL_REQUEST_PROCESS_CHILD X 
1715
										WHERE X.REQ_ID = A.REQ_PAY_ID 
1716
										AND (	X.TLNAME= @p_USER_LOGIN 
1717
												OR X.TLNAME =@p_EXEC_USER_KT
1718
											)
1719
									)
1720
						) 
1721
					OR A.CHECKER_ID_KT ='admin' OR A.AUTH_STATUS_KT ='A'
1722
				)  
1723
				OR @p_FUNCTION IS NULL 
1724
				OR @p_FUNCTION ='' 
1725
				OR (@p_FUNCTION ='TF' AND A.AUTH_STATUS='A') 
1726
				OR @p_FUNCTION ='SIGN'
1727
			)
1728
		AND(A.MAKER_ID LIKE '%'+@p_MAKER_ID+'%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID ='')    
1729
		AND	(	EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS_CHILD 
1730
							WHERE TLNAME =@p_TRASFER_USER_RECIVE 
1731
							AND TYPE_JOB IN ('XL','KS','TP') 
1732
							AND REQ_ID = A.REQ_PAY_ID
1733
						) 
1734
				OR @p_TRASFER_USER_RECIVE IS NULL 
1735
				OR @p_TRASFER_USER_RECIVE=''
1736
			)  
1737
		AND	(	A.MAKER_ID =@p_USER_LOGIN 
1738
				OR (A.TRASFER_USER_RECIVE = @p_USER_LOGIN AND A.AUTH_STATUS NOT IN ('E','R'))  
1739
				OR	(	A.AUTH_STATUS <>'E' AND A.AUTH_STATUS <> 'R'
1740
						AND	(	(	@p_TYPE_SEARCH ='HC'	-- NEU LA PHIEU DE NGHI TAM UNG NOI BO
1741
									AND @BRANCH_TYPE_LG ='HS' 
1742
									AND A.REQ_TYPE ='I'  
1743
									AND (	(	EXISTS	(	SELECT * FROM @TABLE_ROLE 
1744
															WHERE ROLE_AUTH IN ('GDDV','TP', 'PP', 'KTT','TC')
1745
														) 
1746
												AND (	A.BRANCH_ID =@p_BRANCH_LOGIN 
1747
														OR A.BRANCH_ID IN (SELECT * FROM @BRANCH_AUTH)
1748
													)
1749
												AND (A.DEP_ID = @DEP_ID_LG OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH))
1750
												AND	(	(	@p_AUTH_STATUS ='A' 
1751
															AND ISNULL(PROCESS,'') ='0' 
1752
															AND	EXISTS	(	SELECT * FROM PL_PROCESS 
1753
																			WHERE REQ_ID =A.REQ_PAY_ID 
1754
																			AND PROCESS_DESC IN (N'Trưởng đơn vị xác nhận phiếu',N'Cấp phê duyệt trung gian xác nhận phiếu')
1755
																		)
1756
															OR (@p_AUTH_STATUS ='U' AND ISNULL(PROCESS,'')='') 
1757
															OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS =''
1758
														)
1759
													)
1760
											) 
1761
											OR	(	@ROLE_ID IN ('NVMS','NVTT','TBP') 
1762
													AND	(	A.TRASFER_USER_RECIVE = @p_USER_LOGIN  
1763
															OR A.MAKER_ID =@p_MAKER_ID 
1764
															OR A.DEP_ID=@p_DEP_ID
1765
														)
1766
													AND (A.AUTH_STATUS =@p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS,'') ='')
1767
												)
1768
											OR	(	EXISTS	(	SELECT * FROM @TABLE_ROLE 
1769
																WHERE ROLE_AUTH  IN ('GDK','PTGD')
1770
															) 
1771
													AND	(	A.DVDM_ID =@DVDM_ID 
1772
															OR (	A.DVDM_ID IS NULL 
1773
																	OR A.DVDM_ID =''
1774
																)
1775
														) 
1776
													AND EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS 
1777
																	WHERE REQ_ID = A.REQ_PAY_ID
1778
																	AND ROLE_USER IN (	SELECT * FROM @TABLE_ROLE) 
1779
																	-- AND A.BRANCH_CREATE ='DV0001' 
1780
																	AND A.PROCESS<>'' 
1781
																	AND A.PROCESS IS NOT NULL
1782
																	AND	(	(	@p_AUTH_STATUS ='A' 
1783
																				AND STATUS IN ('P','A')
1784
																			) 
1785
																			OR	(	@p_AUTH_STATUS = 'U' AND STATUS ='C') 
1786
																			OR	(	ISNULL(@p_AUTH_STATUS,'') ='' 
1787
																					AND STATUS IN ('C','P','A')
1788
																				)
1789
																		)
1790
																)
1791
													AND @KHOI_ID = @KHOI_ID_LG
1792
												)
1793
											OR	(	EXISTS	(	SELECT * 
1794
																FROM @TABLE_ROLE 
1795
																WHERE ROLE_AUTH IN ('TKTGD', 'TKHDQT','TGD','HDQT')) 
1796
																AND EXISTS	(	SELECT * 
1797
																				FROM PL_REQUEST_PROCESS	
1798
																				WHERE REQ_ID = A.REQ_PAY_ID
1799
																				AND ROLE_USER IN(SELECT * FROM @TABLE_ROLE) 
1800
																				--AND A.BRANCH_CREATE ='DV0001' 
1801
																				AND A.PROCESS<>'' 
1802
																				AND A.PROCESS IS NOT NULL
1803
																				AND (	(	@p_AUTH_STATUS ='A' 
1804
																							AND STATUS IN ('P','A')
1805
																						) 
1806
																						OR (@p_AUTH_STATUS = 'U' AND STATUS ='C') 
1807
																						OR(ISNULL(@p_AUTH_STATUS,'') ='' )
1808
																					)
1809
																			)
1810
												)
1811

    
1812
										)-- NEU ROLE NAM TRONG DS CAC ROLE WORKFLOW 1
1813
								)	-- ngoac so 2, line 347
1814
-- NGUOC LAI NEU LA TAM UNG KHAC
1815
								OR	(	@p_TYPE_SEARCH ='HC' 
1816
										AND @BRANCH_TYPE_LG ='HS' 
1817
										AND A.REQ_TYPE <> 'I' 
1818
										AND	(	A.TRASFER_USER_RECIVE = @p_USER_LOGIN 
1819
												OR	(	@ROLE_ID IN ('GDDV','GDK','KTT','TPTC','PP','TBP','TP','TC') 
1820
														AND (	A.BRANCH_ID =@p_BRANCH_LOGIN 
1821
																OR A.BRANCH_ID IN(SELECT * FROM @BRANCH_AUTH)
1822
															)	
1823
														AND	(	A.DEP_ID =@DEP_ID_LG 
1824
																		OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH)
1825
															)  
1826
														AND	(	A.TRASFER_USER_RECIVE IS NULL 
1827
																OR A.TRASFER_USER_RECIVE ='' 
1828
																OR	(	A.TRASFER_USER_RECIVE IS NOT NULL 
1829
																		AND A.TRASFER_USER_RECIVE <>'' 
1830
																		AND A.PROCESS IS NOT NULL 
1831
																		AND A.PROCESS <>''
1832
																	)
1833
															)
1834
													)  
1835
												OR	(	@ROLE_ID NOT IN ('GDDV','GDK','KTT','TPTC','PP','TBP','TP','TC') 
1836
														AND (A.DEP_ID =@DEP_ID_LG OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH))
1837
													)  
1838
											)
1839
									)
1840
									-- HẾT KIỂM TRA LIÊN QUAN ĐẾN LOẠI TẠM ỨNG
1841
								OR	(	@p_TYPE_SEARCH ='HC' 
1842
										AND @BRANCH_TYPE_LG = 'CN' 
1843
										AND (	@ROLE_ID IN ('GDDV','PGD','TPGD','PPGD') 
1844
												AND	(	(	A.TRASFER_USER_RECIVE IS NOT NULL 
1845
															AND A.TRASFER_USER_RECIVE <>'' 
1846
															AND A.PROCESS IS NOT NULL 
1847
															AND A.PROCESS <>''
1848
														)  
1849
														OR A.TRASFER_USER_RECIVE ='' OR A.TRASFER_USER_RECIVE IS NULL
1850
													)  
1851

    
1852
												OR	(	(	A.BRANCH_CREATE <> @p_BRANCH_LOGIN 
1853
															AND A.TRASFER_USER_RECIVE IS NOT NULL 
1854
															AND A.TRASFER_USER_RECIVE <>''
1855
														) 
1856
														OR A.BRANCH_CREATE = @p_BRANCH_LOGIN
1857
													)  
1858
												AND A.BRANCH_ID IN (SELECT * FROM @tmp)
1859
											)
1860
									)  
1861
								OR	(	@p_TYPE_SEARCH ='HC' 
1862
										AND @BRANCH_TYPE_LG = 'CN' 
1863
										AND A.BRANCH_ID IN (SELECT * FROM @tmp)
1864
									)  
1865
								OR	(	@p_TYPE_SEARCH ='HC' 
1866
										AND @BRANCH_TYPE_LG = 'PGD' 
1867
										AND	(	@ROLE_ID IN ('GDDV','TPGD','PPGD','PGD') 
1868
												AND A.BRANCH_ID =@p_BRANCH_LOGIN
1869
											)
1870
									)  
1871
								OR	(	@p_TYPE_SEARCH ='HC' 
1872
										AND	(	A.DVDM_ID IS NOT NULL 
1873
												AND A.DVDM_ID <>'' 
1874
												AND A.DVDM_ID =@DVDM_ID 
1875
												AND A.PROCESS IS NOT NULL 
1876
												AND A.PROCESS <>'' 
1877
												AND	@ROLE_ID IN	(	SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID =A.REQ_PAY_ID)
1878
											) 
1879
										OR	(	A.DEP_ID IN (SELECT * FROM @TMP_DEP) 
1880
												AND A.PROCESS IS NOT NULL 
1881
												AND A.PROCESS <>''  
1882
												AND @ROLE_ID <> 'TKTGD' 
1883
												AND @ROLE_ID IN	(	SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID =A.REQ_PAY_ID)
1884
											)
1885
									)  
1886
								--OR(@p_TYPE_SEARCH ='HC' AND (@ROLE_ID IN (SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID= A.REQ_PAY_ID AND ROLE_USER IN ('TGD','HDQT','TKTGD','TKHDQT') AND STATUS ='C')))  
1887
								OR	(	@p_TYPE_SEARCH='KT' 
1888
										AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
1889
									)  
1890
								OR	(	@p_TYPE_SEARCH='HC' 
1891
										AND	(	@ROLE_ID IN ('KSV','GDV')  
1892
												OR @DEP_ID_LG ='DEP000000000022'
1893
											) 
1894
										AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
1895
									)  
1896
								OR	(	@p_TYPE_SEARCH='HC' AND (	EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS_CHILD 
1897
																				WHERE REQ_ID = A.REQ_PAY_ID 
1898
																				AND TLNAME =@p_USER_LOGIN 
1899
																				AND TYPE_JOB ='XL' 
1900
																				AND STATUS_JOB = 'C' 
1901
																				AND ISNULL(A.AUTH_STATUS, '') <> 'A'
1902
																			) 
1903
																	OR EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS_CHILD 
1904
																					WHERE REQ_ID = A.REQ_PAY_ID 
1905
																					AND TLNAME =@p_USER_LOGIN 
1906
																					AND TYPE_JOB ='XL' 
1907
																					AND STATUS_JOB = 'P' 
1908
																					AND	(	ISNULL(A.AUTH_STATUS, '') = 'A'
1909
																																																								OR EXISTS	(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND TYPE_JOB ='KS' AND STATUS_JOB = 'C')
1910
																																																							)
1911
																				)
1912
																)
1913
									) 
1914
								OR	(	@p_TYPE_SEARCH IN ('TK','TKTGD','TKHDQT') 
1915
										AND A.PROCESS<>'' 
1916
										AND A.PROCESS IS NOT NULL
1917
										AND (	(	@p_FUNCTION ='TF' AND  EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS 
1918
																					WHERE REQ_ID = A.REQ_PAY_ID 
1919
																					AND ROLE_USER =@ROLE_ID 
1920
																					AND STATUS ='C'
1921
																				)
1922
												)
1923
												OR	(	ISNULL(@p_FUNCTION,'') <> 'TF' 
1924
														AND EXISTS(	SELECT * 
1925
																	FROM PL_REQUEST_PROCESS 
1926
																	WHERE REQ_ID = A.REQ_PAY_ID 
1927
																	AND ROLE_USER =@ROLE_ID 
1928
																	AND (	(@p_IS_TRANSFER = N'N' AND STATUS ='C') 
1929
																			OR	(	@p_IS_TRANSFER <>'N' 
1930
																					AND STATUS IN ('C','P')
1931
																				)
1932
																		)
1933
																	)
1934
													)
1935
											)
1936
									)
1937
								OR	(	@p_TYPE_SEARCH='PAY' 
1938
										AND (	A.REQ_AMT -ISNULL(A.PAY_AMT,0)) >0 
1939
										AND	(	(	@BRANCH_TYPE_LG ='HS' 
1940
													AND	(	A.DEP_ID =@DEP_ID_LG 
1941
															OR A.MAKER_ID =@p_USER_LOGIN 
1942
															OR A.MAKER_ID IS NULL 
1943
															OR 1=1
1944
														)
1945
												) 
1946
												OR	(	@BRANCH_TYPE_LG <> 'HS' 
1947
														AND A.BRANCH_ID = @p_BRANCH_LOGIN
1948
													)
1949
												OR	(	@p_REQ_PAY_CODE IS NOT NULL 
1950
														AND @p_REQ_PAY_CODE <> '' 
1951
														AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE
1952
													)
1953
											)
1954
									)  
1955
							) -- ngoac so 1, line 347
1956
						OR	(	@p_TYPE_SEARCH='HC' 
1957
								AND	(	@ROLE_ID IN ('KSV','GDV')  
1958
										OR @DEP_ID_LG ='DEP000000000022'
1959
									) AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
1960
							)
1961
					) -- line 346
1962
			) -- line 344
1963
		AND	(	(	A.PAY_AMT = A.REQ_AMT 
1964
					AND (@p_TEMP_PAY_STATUS = 'HT')
1965
				)  
1966
				OR (A.PAY_AMT = 0 AND (@p_TEMP_PAY_STATUS = 'DCHU') )  
1967
				OR (A.PAY_AMT <> 0 and A.PAY_AMT < A.REQ_AMT AND (@p_TEMP_PAY_STATUS = 'DHU'))  
1968
				OR @p_TEMP_PAY_STATUS IS NULL OR @p_TEMP_PAY_STATUS = ''  
1969
			)  
1970
		AND	(	A.RECORD_STATUS ='1' AND A.AUTH_STATUS <>'X')
1971
		
1972
) SELECT * FROM QUERY_DATA WHERE __ROWNUM > 0 AND __ROWNUM <= 10
1973
END-- PAGING END
1974
	END;
1975

    
1976
go