Project

General

Profile

advance_serach_120123.txt

Luc Tran Van, 01/12/2023 10:46 AM

 
1

    
2
ALTER   PROCEDURE [dbo].[TR_REQ_ADVANCE_PAYMENT_Search]  
3
@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) = NULL,  
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(18, 0) = NULL,  
18
@p_REQ_TEMP_AMT decimal(18, 0) = 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) = NULL,  
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) = NULL,  
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 = 10,  
42
@p_LEVEL varchar(10) = NULL,  
43
@p_FRMDATE VARCHAR(20)= NULL,  
44
@p_TODATE VARCHAR(20) = NULL,  
45
@p_BRANCH_LOGIN VARCHAR(15) = NULL,  
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) = NULL,  
50
@p_RATE DECIMAL(18,0) =0,  
51
@p_FUNCTION VARCHAR(15) = NULL,  
52
@p_TYPE_SEARCH VARCHAR(15) = NULL,  
53
@p_TEMP_PAY_STATUS VARCHAR(10) = NULL  
54
--select * from CM_ALLCODE where CDTYPE = 'TEMPPAYSTATUS'  
55
--HT Hoàn tất  
56
--DCHU Đang chờ hoàn ứng  
57
--DHU Đã hoàn ứng  
58
--'' tất cả  
59
AS
60
BEGIN -- PAGING
61
	SET @p_TOP = NULL  
62
	IF(ISNULL(@p_BRANCH_ID, '') = '')
63
	BEGIN
64
		SET @p_BRANCH_ID = @p_BRANCH_LOGIN
65
	END
66
	IF(ISNULL(@p_BRANCH_CREATE, '') = '')
67
	BEGIN
68
		SET @p_BRANCH_CREATE = @p_BRANCH_LOGIN
69
	END
70
-- BRANCH TYPE CUA USER LOGIN
71
	DECLARE @TB_TYPE TABLE (BRANCH_TYPE VARCHAR(15))  
72
	IF((SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID= @p_BRANCH_LOGIN)='HS')  
73
	BEGIN  
74
		INSERT INTO @TB_TYPE VALUES('HS')  
75
	END  
76
	ELSE  
77
	BEGIN  
78
		INSERT INTO @TB_TYPE VALUES('PGD')  
79
		INSERT INTO @TB_TYPE VALUES('CN')  
80
	END  
81

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

    
93
	DECLARE @ROLE_ID VARCHAR(20) , @DEP_ID_LG VARCHAR(15) = NULL, @DEP_ID 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
94
-- BRANCH TYPE CUA PHIEU DE NGHI TAM UNG
95
	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))  
96
-- ROLE CUA USER LOGIN
97
	SET @ROLE_ID = (SELECT ROLENAME FROM TL_USER WHERE TLNANME=@p_USER_LOGIN)  
98
-- KHAI BAO UY QUYEN KIEM NHIEM
99
	DECLARE @TABLE_ROLE TABLE (ROLE_AUTH VARCHAR(50))  
100
	INSERT INTO @TABLE_ROLE VALUES (@ROLE_ID)
101
	INSERT INTO @TABLE_ROLE SELECT ROLE_NEW FROM TL_SYS_ROLE_MAPPING WHERE ROLE_OLD =@ROLE_ID  
102
	AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
103
	AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='') AND TLNAME =@p_USER_LOGIN
104

    
105
	--AND CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) AND CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103)  
106

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

    
127
	DECLARE @BRANCH_AUTH TABLE (BRN_AUTH VARCHAR(15))
128
	INSERT INTO @BRANCH_AUTH VALUES (@BRANCH_TYPE_LG)
129
	INSERT INTO @BRANCH_AUTH SELECT BRANCH_ID FROM TL_SYS_ROLE_MAPPING WHERE TLNAME =@P_USER_LOGIN 
130
	AND CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) 
131
	AND CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103)
132

    
133
	--END
134
	--IF(EXISTS(SELECT * FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@ROLE_ID))  
135
	-- SET @ROLE_ID=(SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@ROLE_ID)  
136

    
137
-- LAY ROLE USER LOGIN
138
	SET @ROLE_ID =(SELECT TOP 1 RoleName FROM TL_USER WHERE TLNANME =@p_USER_LOGIN)  
139
	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'))  
140
	BEGIN  
141
		PRINT @ROLE_ID  
142
	END  
143
	ELSE  
144
	BEGIN  
145
		SET @ROLE_ID =(SELECT TOP 1 RoleName FROM TL_USER_V2 WHERE TLNANME =@p_USER_LOGIN)  
146
		IF(@ROLE_ID IS NULL OR @ROLE_ID ='')  
147
		BEGIN  
148
			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))  
149
		END  
150
	END  
151
	--if(1=1)
152
	--begin
153
	--print 'role: ' + @ROLE_ID
154
	--return;
155
	--end
156
	IF(@p_TOP IS NULL OR @p_TOP=0)
157
	BEGIN
158
-- PAGING BEGIN 
159
		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,  
160
		TL1.TLFullName APPROVE_FULLNAME,TL2.TLFullName CREATE_FULLNAME_KT,TL3.TLFullName APPROVE_FULLNAME_KT,  
161
		CASE WHEN ISNULL(A.IS_PERIOD,'') <> '' AND A.IS_PERIOD ='Y' AND  EXISTS (SELECT TOP 1 X.* FROM TR_REQ_ADVANCE_DT X 
162
										INNER JOIN TR_CONTRACT CT ON X.REF_ID = CT.CONTRACT_ID
163
										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 
164
										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 
165
										WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
166
										ELSE BR.BRANCH_NAME END BRANCH_NAME_REQ,
167
		BR1.BRANCH_NAME BRANCH_NAME, DP.DEP_NAME AS DEP_NAME, DP.DEP_CODE AS DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ,  
168
		--Luanlt--2019/10/15-Sửa AL,AL1  
169
		BR1.BRANCH_CODE BRANCH_CODE_CRE, BR1.BRANCH_NAME AS BRANCH_NAME_CRE , AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME,  
170
		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,  
171
		TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME,  
172
		TL6.TLFullName AS REC_DEBIT_NAME, TL6.TLNANME AS REC_DEBIT_CODE, TL7.TLFullName AS EMP_NAME, TL7.TLNANME AS EMP_CODE,  
173
		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,  
174
		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, 
175
		--PR.PROCESS_DESC +N' vào lúc '+ CONVERT(VARCHAR(30), CONVERT(DATETIME, PR.APP_DT,103)) AS CONF_STATUS, 
176
		PR.PROCESS_DESC +N' vào lúc '+ ISNULL(FORMAT(PR.APP_DT,'dd/MM/yyyy H:mm:ss'),'') AS CONF_STATUS,
177
		--PC1.NOTES AS NEXT_STEP,  
178
		---2021112 CAU HINH BUOC XU LY TIEP THEO PDN TAM UNG NOI BO
179
		CASE WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS ='E' THEN N'Phiếu đang chờ gửi phê duyệt' 
180
		WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS_KT ='R' THEN N'Phiếu đang chờ GDV xử lý'
181
		WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS_KT ='P' THEN N'Phiếu đang chờ KSV xử lý'
182
		WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS ='R' THEN N'Phiếu bị trả về đơn vị' 
183
		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'
184
		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'
185
		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'
186
		WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND (A.PROCESS IS NOT NULL OR A.PROCESS ='0') THEN PC1.NOTES
187
		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'
188
		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,  
189
		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,  
190
		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,
191
		EXEC_USER = CASE WHEN PC3.TLNAME IS NOT NULL THEN PC3.TLNAME 
192
						 WHEN PC3.TLNAME <>'' THEN PC3.TLNAME
193
						 ELSE TL2.TLNANME  
194
						 END
195
		-- doanptt 120522
196
		, C.AUTH_STATUS_KT_DESC,
197
		dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.TRANSFER_DT, GETDATE()) AS NUMBER_OF_TRANSFER,
198
		PC3.TLNAME AS EXEC_USER_KT,
199
		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())
200
			 ELSE 0 END AS NUMBER_OF_SEND_APPR
201

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

    
316
		AND	(	(	(	@p_PROCESS='PM' 
317
						AND (A.REQ_AMT- ISNULL(A.PAY_AMT,0.00)) >0
318
					)  
319
					AND (	A.REQ_TYPE IN('I','D','P') 
320
							OR	(	@DEP_ID_LG ='DEP000000000014' 
321
									AND A.REQ_TYPE IN ('I','P','D')
322
								)
323
						)	
324
					AND	(	(	A.DEP_ID = @DEP_ID_LG 
325
								OR A.MAKER_ID =@p_USER_LOGIN 
326
								OR A.MAKER_ID IS NULL
327
							) 
328
								OR	(	@BRANCH_TYPE_LG <>'HS' 
329
										AND A.BRANCH_ID =@p_BRANCH_LOGIN
330
									) 
331
										OR (	@p_REQ_PAY_CODE IS NOT NULL 
332
												AND @p_REQ_PAY_CODE <> '' 
333
												AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE
334
											)
335
						)
336
				)  
337
				OR @p_PROCESS IS NULL OR @p_PROCESS =''
338
			)  
339
		AND	(	(	@p_LEVEL='ALL' 
340
					AND A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp)
341
				)  
342
				OR	(	(	@p_LEVEL='UNIT' 
343
							AND A.BRANCH_ID=@p_BRANCH_ID
344
						)
345
						OR	(	@p_BRANCH_ID='' 
346
								OR @p_BRANCH_ID IS NULL
347
							) 
348
						OR	(	@p_REQ_PAY_CODE IS NOT NULL 
349
									AND @p_REQ_PAY_CODE <> '' 
350
									AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE
351
							)
352
					)
353
			)    
354
		AND (	(	@p_FUNCTION ='KT' 
355
					AND (	EXISTS	(	SELECT TOP 1 * FROM PL_REQUEST_PROCESS_CHILD X 
356
										WHERE X.REQ_ID = A.REQ_PAY_ID 
357
										AND (	X.TLNAME= @p_USER_LOGIN 
358
												OR X.TLNAME =@p_EXEC_USER_KT
359
											)
360
									)
361
						) 
362
					OR A.CHECKER_ID_KT ='admin' OR A.AUTH_STATUS_KT ='A'
363
				)  
364
				OR @p_FUNCTION IS NULL 
365
				OR @p_FUNCTION ='' 
366
				OR (@p_FUNCTION ='TF' AND A.AUTH_STATUS='A') 
367
				OR @p_FUNCTION ='SIGN'
368
			)
369
		AND(A.MAKER_ID LIKE '%'+@p_MAKER_ID+'%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID ='')    
370
		AND	(	EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS_CHILD 
371
							WHERE TLNAME =@p_TRASFER_USER_RECIVE 
372
							AND TYPE_JOB IN ('XL','KS','TP') 
373
							AND REQ_ID = A.REQ_PAY_ID
374
						) 
375
				OR @p_TRASFER_USER_RECIVE IS NULL 
376
				OR @p_TRASFER_USER_RECIVE=''
377
			)  
378
		AND	(	A.MAKER_ID =@p_USER_LOGIN 
379
				OR (A.TRASFER_USER_RECIVE = @p_USER_LOGIN AND A.AUTH_STATUS NOT IN ('E','R'))  
380
				OR	(	A.AUTH_STATUS <>'E' AND A.AUTH_STATUS <> 'R'
381
						AND	(	(	@p_TYPE_SEARCH ='HC'	-- NEU LA PHIEU DE NGHI TAM UNG NOI BO
382
									AND @BRANCH_TYPE_LG ='HS' 
383
									AND A.REQ_TYPE ='I'  
384
									AND (	(	EXISTS	(	SELECT * FROM @TABLE_ROLE 
385
															WHERE ROLE_AUTH IN ('GDDV','TP', 'PP', 'KTT','TC')
386
														) 
387
												AND (	A.BRANCH_ID =@p_BRANCH_LOGIN 
388
														OR A.BRANCH_ID IN (SELECT * FROM @BRANCH_AUTH)
389
													)
390
												AND (A.DEP_ID = @DEP_ID_LG OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH))
391
												AND	(	(	@p_AUTH_STATUS ='A' 
392
															AND ISNULL(PROCESS,'') ='0' 
393
															AND	EXISTS	(	SELECT * FROM PL_PROCESS 
394
																			WHERE REQ_ID =A.REQ_PAY_ID 
395
																			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')
396
																		)
397
															OR (@p_AUTH_STATUS ='U' AND (ISNULL(PROCESS,'')='')) 
398
															OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS =''
399
														)
400
													)
401
											) 
402
											OR	(	@ROLE_ID IN ('NVMS','NVTT','TBP') 
403
													AND	(	A.TRASFER_USER_RECIVE = @p_USER_LOGIN  
404
															OR A.MAKER_ID =@p_MAKER_ID 
405
															OR A.DEP_ID=@p_DEP_ID
406
														)
407
													AND (A.AUTH_STATUS =@p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS,'') ='')
408
												)
409
											OR	(	EXISTS	(	SELECT * FROM @TABLE_ROLE 
410
																WHERE ROLE_AUTH  IN ('GDK')
411
															) 
412
													AND	(	A.DVDM_ID =@DVDM_ID 
413
															OR (	A.DVDM_ID IS NULL 
414
																	OR A.DVDM_ID =''
415
																)
416
														) 
417
													AND EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS 
418
																	WHERE REQ_ID = A.REQ_PAY_ID
419
																	AND ROLE_USER IN (	SELECT * FROM @TABLE_ROLE) 
420
																	-- AND A.BRANCH_CREATE ='DV0001' 
421
																	AND A.PROCESS<>'' 
422
																	AND A.PROCESS IS NOT NULL
423
																	AND	(	(	@p_AUTH_STATUS ='A' 
424
																				AND STATUS IN ('P','A')
425
																			) 
426
																			OR	(	@p_AUTH_STATUS = 'U' AND STATUS ='C') 
427
																			OR	(	ISNULL(@p_AUTH_STATUS,'') ='' 
428
																					AND STATUS IN ('C','P','A')
429
																				)
430
																		)
431
																)
432
												)
433
											OR	(	EXISTS	(	SELECT * FROM @TABLE_ROLE 
434
																WHERE ROLE_AUTH  IN ('PTGD')
435
															) 
436
													AND	(	A.DVDM_ID =@DVDM_ID 
437
															OR (	A.DVDM_ID IS NULL 
438
																	OR A.DVDM_ID =''
439
																)
440
														) 
441
													AND EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS 
442
																	WHERE REQ_ID = A.REQ_PAY_ID
443
																	AND ROLE_USER IN (	SELECT * FROM @TABLE_ROLE) 
444
																	-- AND A.BRANCH_CREATE ='DV0001' 
445
																	AND A.PROCESS<>'' 
446
																	AND A.PROCESS IS NOT NULL
447
																	AND	(	(	@p_AUTH_STATUS ='A' 
448
																				AND STATUS IN ('P','A')
449
																			) 
450
																			OR	(	@p_AUTH_STATUS = 'U' AND STATUS ='C') 
451
																			OR	(	ISNULL(@p_AUTH_STATUS,'') ='' 
452
																					AND STATUS IN ('C','P','A')
453
																				)
454
																		)
455
																)
456
													AND (	@KHOI_ID_LG = (SELECT KHOI_ID FROM CM_DEPARTMENT WHERE DEP_ID	= (SELECT DEP_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = A.REQ_PAY_ID))
457
															OR	(	@p_USER_LOGIN = 'tupa' AND (SELECT DEP_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = A.REQ_PAY_ID) = 'DEP000000000015')
458
															OR EXISTS	(	SELECT TOP 1 DVDM_ID FROM PL_REQUEST_PROCESS 
459
																			WHERE REQ_ID = A.REQ_PAY_ID	AND DVDM_ID = @KHOI_ID_LG
460
																		)
461
														)
462
												)
463
											OR	(	EXISTS	(	SELECT * 
464
																FROM @TABLE_ROLE 
465
																WHERE ROLE_AUTH IN ('TKTGD', 'TKHDQT','TGD','HDQT')) 
466
																AND EXISTS	(	SELECT * 
467
																				FROM PL_REQUEST_PROCESS	
468
																				WHERE REQ_ID = A.REQ_PAY_ID
469
																				AND ROLE_USER IN(SELECT * FROM @TABLE_ROLE) 
470
																				--AND A.BRANCH_CREATE ='DV0001' 
471
																				AND A.PROCESS<>'' 
472
																				AND A.PROCESS IS NOT NULL
473
																				AND (	(	@p_AUTH_STATUS ='A' 
474
																							AND STATUS IN ('P','A')
475
																						) 
476
																						OR (@p_AUTH_STATUS = 'U' AND STATUS ='C') 
477
																						OR(ISNULL(@p_AUTH_STATUS,'') ='' )
478
																					)
479
																			)
480
												)
481

    
482
										)-- NEU ROLE NAM TRONG DS CAC ROLE WORKFLOW 1
483
								)	-- ngoac so 2, line 347
484
-- NGUOC LAI NEU LA TAM UNG KHAC
485
								OR	(	@p_TYPE_SEARCH ='HC' 
486
										AND @BRANCH_TYPE_LG ='HS' 
487
										AND A.REQ_TYPE <> 'I' 
488
										AND	(	A.TRASFER_USER_RECIVE = @p_USER_LOGIN 
489
												OR	(	@ROLE_ID IN ('GDDV','GDK','KTT','TPTC','PP','TBP','TP','TC') 
490
														AND (	A.BRANCH_ID =@p_BRANCH_LOGIN 
491
																OR A.BRANCH_ID IN(SELECT * FROM @BRANCH_AUTH)
492
															)	
493
														AND	(	A.DEP_ID =@DEP_ID_LG 
494
																		OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH)
495
															)  
496
														AND	(	A.TRASFER_USER_RECIVE IS NULL 
497
																OR A.TRASFER_USER_RECIVE ='' 
498
																OR	(	A.TRASFER_USER_RECIVE IS NOT NULL 
499
																		AND A.TRASFER_USER_RECIVE <>'' 
500
																		AND A.PROCESS IS NOT NULL 
501
																	)
502
															)
503
													)  
504
												OR	(	@ROLE_ID NOT IN ('GDDV','GDK','KTT','TPTC','PP','TBP','TP','TC') 
505
														AND (A.DEP_ID =@DEP_ID_LG OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH))
506
													)  
507
											)
508
									)
509
									-- HẾT KIỂM TRA LIÊN QUAN ĐẾN LOẠI TẠM ỨNG
510
								OR	(	@p_TYPE_SEARCH ='HC' 
511
										AND @BRANCH_TYPE_LG = 'CN' 
512
										AND (	@ROLE_ID IN ('GDDV','PGD','TPGD','PPGD') 
513
												AND	(	(	A.TRASFER_USER_RECIVE IS NOT NULL 
514
															AND A.TRASFER_USER_RECIVE <>'' 
515
															AND A.PROCESS IS NOT NULL 
516
														)  
517
														OR A.TRASFER_USER_RECIVE ='' OR A.TRASFER_USER_RECIVE IS NULL
518
													)  
519

    
520
												OR	(	(	A.BRANCH_CREATE <> @p_BRANCH_LOGIN 
521
															AND A.TRASFER_USER_RECIVE IS NOT NULL 
522
															AND A.TRASFER_USER_RECIVE <>''
523
														) 
524
														OR A.BRANCH_CREATE = @p_BRANCH_LOGIN
525
													)  
526
												AND A.BRANCH_ID IN (SELECT * FROM @tmp)
527
											)
528
									)  
529
								OR	(	@p_TYPE_SEARCH ='HC' 
530
										AND @BRANCH_TYPE_LG = 'CN' 
531
										AND A.BRANCH_ID IN (SELECT * FROM @tmp)
532
									)  
533
								OR	(	@p_TYPE_SEARCH ='HC' 
534
										AND @BRANCH_TYPE_LG = 'PGD' 
535
										AND	(	@ROLE_ID IN ('GDDV','TPGD','PPGD','PGD') 
536
												AND A.BRANCH_ID =@p_BRANCH_LOGIN
537
											)
538
									)  
539
								OR	(	@p_TYPE_SEARCH ='HC' 
540
										AND	(	A.DVDM_ID IS NOT NULL 
541
												AND A.DVDM_ID <>'' 
542
												AND A.DVDM_ID =@DVDM_ID 
543
												AND A.PROCESS IS NOT NULL 
544
												AND A.PROCESS <>'' 
545
												AND	@ROLE_ID IN	(	SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID =A.REQ_PAY_ID)
546
											) 
547
										OR	(	A.DEP_ID IN (SELECT * FROM @TMP_DEP) 
548
												AND A.PROCESS IS NOT NULL 
549
												AND A.PROCESS <>''  
550
												AND @ROLE_ID <> 'TKTGD' 
551
												AND @ROLE_ID IN	(	SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID =A.REQ_PAY_ID)
552
											)
553
									)  
554
								--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')))  
555
								OR	(	@p_TYPE_SEARCH='KT' 
556
										AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
557
									)  
558
								OR	(	@p_TYPE_SEARCH='HC' 
559
										AND	(	@ROLE_ID IN ('KSV','GDV')  
560
												OR @DEP_ID_LG ='DEP000000000022'
561
											) 
562
										AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
563
									)  
564
								OR	(	@p_TYPE_SEARCH='HC' AND (	EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS_CHILD 
565
																				WHERE REQ_ID = A.REQ_PAY_ID 
566
																				AND TLNAME =@p_USER_LOGIN 
567
																				AND TYPE_JOB ='XL' 
568
																				AND STATUS_JOB = 'C' 
569
																				AND ISNULL(A.AUTH_STATUS, '') <> 'A'
570
																			) 
571
																	OR EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS_CHILD 
572
																					WHERE REQ_ID = A.REQ_PAY_ID 
573
																					AND TLNAME =@p_USER_LOGIN 
574
																					AND TYPE_JOB ='XL' 
575
																					AND STATUS_JOB = 'P' 
576
																					AND	(	ISNULL(A.AUTH_STATUS, '') = 'A'
577
																																																								OR EXISTS	(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND TYPE_JOB ='KS' AND STATUS_JOB = 'C')
578
																																																							)
579
																				)
580
																)
581
									) 
582
								OR	(	@p_TYPE_SEARCH IN ('TK','TKTGD','TKHDQT') 
583
										AND A.PROCESS<>'' 
584
										AND A.PROCESS IS NOT NULL
585
										AND (	(	@p_FUNCTION ='TF' AND  EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS 
586
																					WHERE REQ_ID = A.REQ_PAY_ID 
587
																					AND ROLE_USER =@ROLE_ID 
588
																					AND STATUS ='C'
589
																				)
590
												)
591
												OR	(	ISNULL(@p_FUNCTION,'') <> 'TF' 
592
														AND EXISTS(	SELECT * 
593
																	FROM PL_REQUEST_PROCESS 
594
																	WHERE REQ_ID = A.REQ_PAY_ID 
595
																	AND ROLE_USER =@ROLE_ID 
596
																	AND (	(@p_IS_TRANSFER = N'N' AND STATUS ='C') 
597
																			OR	(	@p_IS_TRANSFER <>'N' 
598
																					AND STATUS IN ('C','P')
599
																				)
600
																		)
601
																	)
602
													)
603
											)
604
									)
605
								OR	(	@p_TYPE_SEARCH='PAY' 
606
										AND (	A.REQ_AMT -ISNULL(A.PAY_AMT,0)) >0 
607
										AND	(	(	@BRANCH_TYPE_LG ='HS' 
608
													AND	(	A.DEP_ID =@DEP_ID_LG 
609
															OR A.MAKER_ID =@p_USER_LOGIN 
610
															OR A.MAKER_ID IS NULL 
611
															OR 1=1
612
														)
613
												) 
614
												OR	(	@BRANCH_TYPE_LG <> 'HS' 
615
														AND A.BRANCH_ID = @p_BRANCH_LOGIN
616
													)
617
												OR	(	@p_REQ_PAY_CODE IS NOT NULL 
618
														AND @p_REQ_PAY_CODE <> '' 
619
														AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE
620
													)
621
											)
622
									)  
623
							) -- ngoac so 1, line 347
624
						OR	(	@p_TYPE_SEARCH='HC' 
625
								AND	(	@ROLE_ID IN ('KSV','GDV')  
626
										OR @DEP_ID_LG ='DEP000000000022'
627
									) AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
628
							)
629
					) -- line 346
630
			) -- line 344
631
		AND	(	(	A.PAY_AMT = A.REQ_AMT 
632
					AND (@p_TEMP_PAY_STATUS = 'HT')
633
				)  
634
				OR (A.PAY_AMT = 0 AND (@p_TEMP_PAY_STATUS = 'DCHU') )  
635
				OR (A.PAY_AMT <> 0 and A.PAY_AMT < A.REQ_AMT AND (@p_TEMP_PAY_STATUS = 'DHU'))  
636
				OR @p_TEMP_PAY_STATUS IS NULL OR @p_TEMP_PAY_STATUS = ''  
637
			)  
638
		AND	(	A.RECORD_STATUS ='1' AND A.AUTH_STATUS <>'X')
639
		ORDER BY A.CREATE_DT DESC   
640
-- PAGING END
641
	END;
642
	ELSE 
643
	BEGIN
644
-- PAGING BEGIN 
645
		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,  
646
		TL1.TLFullName APPROVE_FULLNAME,TL2.TLFullName CREATE_FULLNAME_KT,TL3.TLFullName APPROVE_FULLNAME_KT,  
647
		CASE WHEN ISNULL(A.IS_PERIOD,'') <> '' AND A.IS_PERIOD ='Y' AND  EXISTS (SELECT TOP 1 X.* FROM TR_REQ_ADVANCE_DT X 
648
										INNER JOIN TR_CONTRACT CT ON X.REF_ID = CT.CONTRACT_ID
649
										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 
650
										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 
651
										WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
652
										ELSE BR.BRANCH_NAME END BRANCH_NAME_REQ, 
653
		BR1.BRANCH_NAME BRANCH_NAME, DP.DEP_NAME AS DEP_NAME, DP.DEP_CODE AS DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ,  
654
		--Luanlt--2019/10/15-Sửa AL,AL1  
655
		BR1.BRANCH_CODE BRANCH_CODE_CRE, BR1.BRANCH_NAME AS BRANCH_NAME_CRE , AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME,  
656
		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,  
657
		TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME,  
658
		TL6.TLFullName AS REC_DEBIT_NAME, TL6.TLNANME AS REC_DEBIT_CODE, TL7.TLFullName AS EMP_NAME, TL7.TLNANME AS EMP_CODE,  
659
		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,  
660
		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, 
661
		--PR.PROCESS_DESC +N' vào lúc '+ CONVERT(VARCHAR(30), CONVERT(DATETIME, PR.APP_DT,103)) AS CONF_STATUS, 
662
		PR.PROCESS_DESC +N' vào lúc '+ ISNULL(FORMAT(PR.APP_DT,'dd/MM/yyyy H:mm:ss'),'') AS CONF_STATUS,
663
		--PC1.NOTES AS NEXT_STEP,  
664
		---2021112 CAU HINH BUOC XU LY TIEP THEO PDN TAM UNG NOI BO
665
		CASE WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS ='E' THEN N'Phiếu đang chờ gửi phê duyệt' 
666
		WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS_KT ='R' THEN N'Phiếu đang chờ GDV xử lý'
667
		WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS_KT ='P' THEN N'Phiếu đang chờ KSV xử lý'
668
		WHEN A.REQ_TYPE='I' AND A.AUTH_STATUS ='R' THEN N'Phiếu bị trả về đơn vị' 
669
		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'
670
		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'
671
		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'
672
		WHEN A.REQ_TYPE='I' AND A.BRANCH_CREATE='DV0001' AND (A.PROCESS IS NOT NULL OR A.PROCESS ='0') THEN PC1.NOTES
673
		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'
674
		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,  
675
		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,  
676
		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,
677
		EXEC_USER = CASE WHEN PC3.TLNAME IS NOT NULL THEN PC3.TLNAME 
678
						 WHEN PC3.TLNAME <>'' THEN PC3.TLNAME
679
						 ELSE TL2.TLNANME  
680
						 END
681
		-- doanptt 120522
682
		, C.AUTH_STATUS_KT_DESC,
683
		dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.TRANSFER_DT, GETDATE()) AS NUMBER_OF_TRANSFER,
684
		PC3.TLNAME AS EXEC_USER_KT,
685
		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())
686
			 ELSE 0 END AS NUMBER_OF_SEND_APPR
687
-- SELECT END
688
		FROM TR_REQ_ADVANCE_PAYMENT A  
689
		LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS  
690
		LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS  
691
		LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME  
692
		LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME  
693
		LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME  
694
		LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME  
695
		LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID  
696
		LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID  
697
		LEFT JOIN dbo.CM_DEPARTMENT DP ON A.DEP_ID= DP.DEP_ID  
698
		--Luanlt--2019/10/15-Sửa AL,AL1  
699
		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ợ)  
700
		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)
701
		LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME  
702
		LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME  
703
		LEFT JOIN TL_USER TL6 ON A.RECEIVER_DEBIT = TL6.TLNANME AND A.REQ_TYPE='D'  
704
		LEFT JOIN  
705
		(  
706
		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  
707
		) H ON A.REQ_PAY_ID = H.PAY_ADV_ID  
708
		LEFT JOIN TL_USER TL7 ON TL7.TLNANME = A.REF_ID AND A.REQ_TYPE='I'  
709
		LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P'  
710
		LEFT JOIN CM_SUPPLIER SUP ON PO.SUP_ID = SUP.SUP_ID AND A.REQ_TYPE='P'  
711
		LEFT JOIN LS_CUSTOMER CUS ON A.REF_ID = CUS.CUSTOMER_ID AND A.REQ_TYPE='D'  
712
		LEFT JOIN TR_PO_PAYMENT PM ON A.PAY_PHASE = PM.PAY_ID AND A.REQ_TYPE='P'  
713
		LEFT JOIN CM_DVDM DV ON A.DVDM_ID = DV.DVDM_ID  
714
		--LEFT JOIN PL_PROCESS PR ON A.PROCESS = PR.PROCESS_ID AND A.REQ_PAY_ID = PR.REQ_ID  
715
		LEFT JOIN  
716
		(  
717
		SELECT P.REQ_ID, P.PROCESS_DESC, P.APPROVE_DT AS APP_DT FROM PL_PROCESS P 
718
		INNER JOIN  
719
		(  
720
			SELECT MAX (PR.ID) AS ID, MAX(PR.REQ_ID) AS REQ_ID FROM PL_PROCESS PR
721
			GROUP BY PR.REQ_ID  
722
		) PR ON PR.REQ_ID = P.REQ_ID AND P.ID = PR.ID  
723
		--WHERE P.REQ_ID =@p_REQ_PAY_ID
724
		) AS PR ON A.REQ_PAY_ID = PR.REQ_ID  
725
		LEFT JOIN PL_REQUEST_PROCESS PC ON PC.REQ_ID= A.REQ_PAY_ID AND 
726
		(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))
727
		AND PC.STATUS='C'  
728
		--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'  
729
		LEFT JOIN PL_REQUEST_PROCESS PC1 ON PC1.REQ_ID= A.REQ_PAY_ID AND PC1.STATUS='C'  
730
		LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C'  
731
		LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C'  
732
		LEFT JOIN TL_USER TL8 ON A.RECIVER_MONEY = TL8.TLNANME  
733
		LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID  
734
		LEFT JOIN CM_BRANCH BR_CORE ON TL2.TLSUBBRID = BR_CORE.BRANCH_ID  
735
		WHERE 1=1  
736
		AND (A.REQ_PAY_ID =@p_REQ_PAY_ID OR @p_REQ_PAY_ID IS NULL OR @p_REQ_PAY_ID ='')  
737
		AND(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' OR @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL) 
738
		AND(A.MAKER_ID = @p_MAKER_ID OR @p_MAKER_ID = '' OR @p_MAKER_ID IS NULL) 
739
		AND(A.MAKER_ID_KT = @p_MAKER_ID_KT OR @p_MAKER_ID_KT = '' OR @p_MAKER_ID_KT IS NULL)  
740
		AND(PC3.TLNAME = @p_EXEC_USER_KT OR @p_EXEC_USER_KT = '' OR @p_EXEC_USER_KT IS NULL)
741
		AND(A.REQ_REASON LIKE N'%'+@p_REQ_REASON+'%' OR @p_REQ_REASON='' OR @p_REQ_REASON IS NULL)    
742
		AND(A.NOTES LIKE N'%'+@p_NOTES+'%' OR @p_NOTES='' OR @p_NOTES IS NULL)  
743
		--Luanlt-2019/10/14-Thêm Filter REQ_TYPE,FROMDATE TODATE REF_ID  
744
		AND(A.REQ_TYPE LIKE N'%'+@p_REQ_TYPE+'%' OR @p_REQ_TYPE = '' OR @p_REQ_TYPE IS NULL)
745
		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)  
746
		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  
747
		AND(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' or @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL)  
748
		--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 <>'')  
749
		AND(A.DEP_ID = @p_DEP_ID or @p_DEP_ID='' OR @p_DEP_ID IS NULL)  
750
		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')))  
751
		AND(A.REF_ID =@p_REF_ID OR @p_REF_ID='' OR @p_REF_ID IS NULL) 
752
		AND	(	A.AUTH_STATUS=@p_AUTH_STATUS 
753
				OR @p_AUTH_STATUS='' 
754
				OR @p_AUTH_STATUS IS NULL 
755
				OR (@p_AUTH_STATUS = 'W' AND ISNULL(A.AUTH_STATUS, '') = 'U' AND A.PROCESS IS NULL)
756
				OR (@p_AUTH_STATUS = 'G' AND ISNULL(A.AUTH_STATUS, '') = 'U' AND A.PROCESS = '')
757
				OR (	A.REQ_TYPE ='I' 
758
						AND A.AUTH_STATUS <>'A' 
759
						AND EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH IN ('GDDV','PP','GDK','KTT','PTGD','TGD','HDQT','TKTGD','TKHDQT'))
760
					)
761
			)
762
		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  
763
				OR	(A.MAKER_ID_KT IS NULL AND @p_IS_UPDATE_KT='N')
764
				OR @p_IS_UPDATE_KT IS NULL 
765
				OR @p_IS_UPDATE_KT=''
766
			)  
767
		 
768
		AND
769
		(
770
			(	@p_IS_TRANSFER='Y' 
771
				 AND(
772
						@p_TYPE_SEARCH ='TKTGD' AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='1')
773
			
774
					 OR (
775
							@p_TYPE_SEARCH ='TKHDQT' AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='2')
776
						)
777
					 OR (
778
							@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')
779
						)
780
					)
781
			) --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat  
782
			OR
783
			(	@p_IS_TRANSFER='N' 
784
				AND (
785
						(@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') 
786
				
787
						OR  (
788
								@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')
789
							)
790
						OR  (
791
								@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' 
792
							)
793
					)
794
			)
795
			OR @p_IS_TRANSFER IS NULL 
796
			OR @p_IS_TRANSFER=''
797
		) 
798

    
799
		AND	(	(	(	@p_PROCESS='PM' 
800
						AND (A.REQ_AMT- ISNULL(A.PAY_AMT,0.00)) >0
801
					)  
802
					AND (	A.REQ_TYPE IN('I','D','P') 
803
							OR	(	@DEP_ID_LG ='DEP000000000014' 
804
									AND A.REQ_TYPE IN ('I','P','D')
805
								)
806
						)	
807
					AND	(	(	A.DEP_ID = @DEP_ID_LG 
808
								OR A.MAKER_ID =@p_USER_LOGIN 
809
								OR A.MAKER_ID IS NULL
810
							) 
811
								OR	(	@BRANCH_TYPE_LG <>'HS' 
812
										AND A.BRANCH_ID =@p_BRANCH_LOGIN
813
									) 
814
										OR (	@p_REQ_PAY_CODE IS NOT NULL 
815
												AND @p_REQ_PAY_CODE <> '' 
816
												AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE
817
											)
818
						)
819
				)  
820
				OR @p_PROCESS IS NULL OR @p_PROCESS =''
821
			)  
822
		AND	(	(	@p_LEVEL='ALL' 
823
					AND A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp)
824
				)  
825
				OR	(	(	@p_LEVEL='UNIT' 
826
							AND A.BRANCH_ID=@p_BRANCH_ID
827
						)
828
						OR	(	@p_BRANCH_ID='' 
829
								OR @p_BRANCH_ID IS NULL
830
							) 
831
						OR	(	@p_REQ_PAY_CODE IS NOT NULL 
832
									AND @p_REQ_PAY_CODE <> '' 
833
									AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE
834
							)
835
					)
836
			)    
837
		AND (	(	@p_FUNCTION ='KT' 
838
					AND (	EXISTS	(	SELECT TOP 1 * FROM PL_REQUEST_PROCESS_CHILD X 
839
										WHERE X.REQ_ID = A.REQ_PAY_ID 
840
										AND (	X.TLNAME= @p_USER_LOGIN 
841
												OR X.TLNAME =@p_EXEC_USER_KT
842
											)
843
									)
844
						) 
845
					OR A.CHECKER_ID_KT ='admin' OR A.AUTH_STATUS_KT ='A'
846
				)  
847
				OR @p_FUNCTION IS NULL 
848
				OR @p_FUNCTION ='' 
849
				OR (@p_FUNCTION ='TF' AND A.AUTH_STATUS='A') 
850
				OR @p_FUNCTION ='SIGN'
851
			)
852
		AND(A.MAKER_ID LIKE '%'+@p_MAKER_ID+'%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID ='')    
853
		AND	(	EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS_CHILD 
854
							WHERE TLNAME =@p_TRASFER_USER_RECIVE 
855
							AND TYPE_JOB IN ('XL','KS','TP') 
856
							AND REQ_ID = A.REQ_PAY_ID
857
						) 
858
				OR @p_TRASFER_USER_RECIVE IS NULL 
859
				OR @p_TRASFER_USER_RECIVE=''
860
			)  
861
		AND	(	A.MAKER_ID =@p_USER_LOGIN 
862
				OR (A.TRASFER_USER_RECIVE = @p_USER_LOGIN AND A.AUTH_STATUS NOT IN ('E','R'))  
863
				OR	(	A.AUTH_STATUS <>'E' AND A.AUTH_STATUS <> 'R'
864
						AND	(	(	@p_TYPE_SEARCH ='HC'	-- NEU LA PHIEU DE NGHI TAM UNG NOI BO
865
									AND @BRANCH_TYPE_LG ='HS' 
866
									AND A.REQ_TYPE ='I'  
867
									AND (	(	EXISTS	(	SELECT * FROM @TABLE_ROLE 
868
															WHERE ROLE_AUTH IN ('GDDV','TP', 'PP', 'KTT','TC')
869
														) 
870
												AND (	A.BRANCH_ID =@p_BRANCH_LOGIN 
871
														OR A.BRANCH_ID IN (SELECT * FROM @BRANCH_AUTH)
872
													)
873
												AND (A.DEP_ID = @DEP_ID_LG OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH))
874
												AND	(	(	@p_AUTH_STATUS ='A' 
875
															AND ISNULL(PROCESS,'') ='0' 
876
															AND	EXISTS	(	SELECT * FROM PL_PROCESS 
877
																			WHERE REQ_ID =A.REQ_PAY_ID 
878
																			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')
879
																		)
880
															OR (@p_AUTH_STATUS ='U' AND ISNULL(PROCESS,'')='') 
881
															OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS =''
882
														)
883
													)
884
											) 
885
											OR	(	@ROLE_ID IN ('NVMS','NVTT','TBP') 
886
													AND	(	A.TRASFER_USER_RECIVE = @p_USER_LOGIN  
887
															OR A.MAKER_ID =@p_MAKER_ID 
888
															OR A.DEP_ID=@p_DEP_ID
889
														)
890
													AND (A.AUTH_STATUS =@p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS,'') ='')
891
												)
892
											OR	(	EXISTS	(	SELECT * FROM @TABLE_ROLE 
893
																WHERE ROLE_AUTH  IN ('GDK')
894
															) 
895
													AND	(	A.DVDM_ID =@DVDM_ID 
896
															OR (	A.DVDM_ID IS NULL 
897
																	OR A.DVDM_ID =''
898
																)
899
														) 
900
													AND EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS 
901
																	WHERE REQ_ID = A.REQ_PAY_ID
902
																	AND ROLE_USER IN (	SELECT * FROM @TABLE_ROLE) 
903
																	-- AND A.BRANCH_CREATE ='DV0001' 
904
																	AND A.PROCESS<>'' 
905
																	AND A.PROCESS IS NOT NULL
906
																	AND	(	(	@p_AUTH_STATUS ='A' 
907
																				AND STATUS IN ('P','A')
908
																			) 
909
																			OR	(	@p_AUTH_STATUS = 'U' AND STATUS ='C') 
910
																			OR	(	ISNULL(@p_AUTH_STATUS,'') ='' 
911
																					AND STATUS IN ('C','P','A')
912
																				)
913
																		)
914
																)
915
												)
916
											OR	(	EXISTS	(	SELECT * FROM @TABLE_ROLE 
917
																WHERE ROLE_AUTH  IN ('PTGD')
918
															) 
919
													AND	(	A.DVDM_ID =@DVDM_ID 
920
															OR (	A.DVDM_ID IS NULL 
921
																	OR A.DVDM_ID =''
922
																)
923
														) 
924
													AND EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS 
925
																	WHERE REQ_ID = A.REQ_PAY_ID
926
																	AND ROLE_USER IN (	SELECT * FROM @TABLE_ROLE) 
927
																	-- AND A.BRANCH_CREATE ='DV0001' 
928
																	AND A.PROCESS<>'' 
929
																	AND A.PROCESS IS NOT NULL
930
																	AND	(	(	@p_AUTH_STATUS ='A' 
931
																				AND STATUS IN ('P','A')
932
																			) 
933
																			OR	(	@p_AUTH_STATUS = 'U' AND STATUS ='C') 
934
																			OR	(	ISNULL(@p_AUTH_STATUS,'') ='' 
935
																					AND STATUS IN ('C','P','A')
936
																				)
937
																		)
938
																)
939
													AND (	@KHOI_ID_LG = (SELECT KHOI_ID FROM CM_DEPARTMENT WHERE DEP_ID	= (SELECT DEP_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = A.REQ_PAY_ID))
940
															OR	(	@p_USER_LOGIN = 'tupa' AND (SELECT DEP_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = A.REQ_PAY_ID) = 'DEP000000000015')
941
															OR EXISTS	(	SELECT TOP 1 DVDM_ID FROM PL_REQUEST_PROCESS 
942
																			WHERE REQ_ID = A.REQ_PAY_ID	AND DVDM_ID = @KHOI_ID_LG
943
																		)
944
														)
945
												)
946
											OR	(	EXISTS	(	SELECT * 
947
																FROM @TABLE_ROLE 
948
																WHERE ROLE_AUTH IN ('TKTGD', 'TKHDQT','TGD','HDQT')) 
949
																AND EXISTS	(	SELECT * 
950
																				FROM PL_REQUEST_PROCESS	
951
																				WHERE REQ_ID = A.REQ_PAY_ID
952
																				AND ROLE_USER IN(SELECT * FROM @TABLE_ROLE) 
953
																				--AND A.BRANCH_CREATE ='DV0001' 
954
																				AND A.PROCESS<>'' 
955
																				AND A.PROCESS IS NOT NULL
956
																				AND (	(	@p_AUTH_STATUS ='A' 
957
																							AND STATUS IN ('P','A')
958
																						) 
959
																						OR (@p_AUTH_STATUS = 'U' AND STATUS ='C') 
960
																						OR(ISNULL(@p_AUTH_STATUS,'') ='' )
961
																					)
962
																			)
963
												)
964

    
965
										)-- NEU ROLE NAM TRONG DS CAC ROLE WORKFLOW 1
966
								)	-- ngoac so 2, line 347
967
-- NGUOC LAI NEU LA TAM UNG KHAC
968
								OR	(	@p_TYPE_SEARCH ='HC' 
969
										AND @BRANCH_TYPE_LG ='HS' 
970
										AND A.REQ_TYPE <> 'I' 
971
										AND	(	A.TRASFER_USER_RECIVE = @p_USER_LOGIN 
972
												OR	(	@ROLE_ID IN ('GDDV','GDK','KTT','TPTC','PP','TBP','TP','TC') 
973
														AND (	A.BRANCH_ID =@p_BRANCH_LOGIN 
974
																OR A.BRANCH_ID IN(SELECT * FROM @BRANCH_AUTH)
975
															)	
976
														AND	(	A.DEP_ID =@DEP_ID_LG 
977
																		OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH)
978
															)  
979
														AND	(	A.TRASFER_USER_RECIVE IS NULL 
980
																OR A.TRASFER_USER_RECIVE ='' 
981
																OR	(	A.TRASFER_USER_RECIVE IS NOT NULL 
982
																		AND A.TRASFER_USER_RECIVE <>'' 
983
																		AND A.PROCESS IS NOT NULL 
984
																		AND A.PROCESS <>''
985
																	)
986
															)
987
													)  
988
												OR	(	@ROLE_ID NOT IN ('GDDV','GDK','KTT','TPTC','PP','TBP','TP','TC') 
989
														AND (A.DEP_ID =@DEP_ID_LG OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH))
990
													)  
991
											)
992
									)
993
									-- HẾT KIỂM TRA LIÊN QUAN ĐẾN LOẠI TẠM ỨNG
994
								OR	(	@p_TYPE_SEARCH ='HC' 
995
										AND @BRANCH_TYPE_LG = 'CN' 
996
										AND (	@ROLE_ID IN ('GDDV','PGD','TPGD','PPGD') 
997
												AND	(	(	A.TRASFER_USER_RECIVE IS NOT NULL 
998
															AND A.TRASFER_USER_RECIVE <>'' 
999
															AND A.PROCESS IS NOT NULL 
1000
															AND A.PROCESS <>''
1001
														)  
1002
														OR A.TRASFER_USER_RECIVE ='' OR A.TRASFER_USER_RECIVE IS NULL
1003
													)  
1004

    
1005
												OR	(	(	A.BRANCH_CREATE <> @p_BRANCH_LOGIN 
1006
															AND A.TRASFER_USER_RECIVE IS NOT NULL 
1007
															AND A.TRASFER_USER_RECIVE <>''
1008
														) 
1009
														OR A.BRANCH_CREATE = @p_BRANCH_LOGIN
1010
													)  
1011
												AND A.BRANCH_ID IN (SELECT * FROM @tmp)
1012
											)
1013
									)  
1014
								OR	(	@p_TYPE_SEARCH ='HC' 
1015
										AND @BRANCH_TYPE_LG = 'CN' 
1016
										AND A.BRANCH_ID IN (SELECT * FROM @tmp)
1017
									)  
1018
								OR	(	@p_TYPE_SEARCH ='HC' 
1019
										AND @BRANCH_TYPE_LG = 'PGD' 
1020
										AND	(	@ROLE_ID IN ('GDDV','TPGD','PPGD','PGD') 
1021
												AND A.BRANCH_ID =@p_BRANCH_LOGIN
1022
											)
1023
									)  
1024
								OR	(	@p_TYPE_SEARCH ='HC' 
1025
										AND	(	A.DVDM_ID IS NOT NULL 
1026
												AND A.DVDM_ID <>'' 
1027
												AND A.DVDM_ID =@DVDM_ID 
1028
												AND A.PROCESS IS NOT NULL 
1029
												AND A.PROCESS <>'' 
1030
												AND	@ROLE_ID IN	(	SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID =A.REQ_PAY_ID)
1031
											) 
1032
										OR	(	A.DEP_ID IN (SELECT * FROM @TMP_DEP) 
1033
												AND A.PROCESS IS NOT NULL 
1034
												AND A.PROCESS <>''  
1035
												AND @ROLE_ID <> 'TKTGD' 
1036
												AND @ROLE_ID IN	(	SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID =A.REQ_PAY_ID)
1037
											)
1038
									)  
1039
								--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')))  
1040
								OR	(	@p_TYPE_SEARCH='KT' 
1041
										AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
1042
									)  
1043
								OR	(	@p_TYPE_SEARCH='HC' 
1044
										AND	(	@ROLE_ID IN ('KSV','GDV')  
1045
												OR @DEP_ID_LG ='DEP000000000022'
1046
											) 
1047
										AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
1048
									)  
1049
								OR	(	@p_TYPE_SEARCH='HC' AND (	EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS_CHILD 
1050
																				WHERE REQ_ID = A.REQ_PAY_ID 
1051
																				AND TLNAME =@p_USER_LOGIN 
1052
																				AND TYPE_JOB ='XL' 
1053
																				AND STATUS_JOB = 'C' 
1054
																				AND ISNULL(A.AUTH_STATUS, '') <> 'A'
1055
																			) 
1056
																	OR EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS_CHILD 
1057
																					WHERE REQ_ID = A.REQ_PAY_ID 
1058
																					AND TLNAME =@p_USER_LOGIN 
1059
																					AND TYPE_JOB ='XL' 
1060
																					AND STATUS_JOB = 'P' 
1061
																					AND	(	ISNULL(A.AUTH_STATUS, '') = 'A'
1062
																																																								OR EXISTS	(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND TYPE_JOB ='KS' AND STATUS_JOB = 'C')
1063
																																																							)
1064
																				)
1065
																)
1066
									) 
1067
								OR	(	@p_TYPE_SEARCH IN ('TK','TKTGD','TKHDQT') 
1068
										AND A.PROCESS<>'' 
1069
										AND A.PROCESS IS NOT NULL
1070
										AND (	(	@p_FUNCTION ='TF' AND  EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS 
1071
																					WHERE REQ_ID = A.REQ_PAY_ID 
1072
																					AND ROLE_USER =@ROLE_ID 
1073
																					AND STATUS ='C'
1074
																				)
1075
												)
1076
												OR	(	ISNULL(@p_FUNCTION,'') <> 'TF' 
1077
														AND EXISTS(	SELECT * 
1078
																	FROM PL_REQUEST_PROCESS 
1079
																	WHERE REQ_ID = A.REQ_PAY_ID 
1080
																	AND ROLE_USER =@ROLE_ID 
1081
																	AND (	(@p_IS_TRANSFER = N'N' AND STATUS ='C') 
1082
																			OR	(	@p_IS_TRANSFER <>'N' 
1083
																					AND STATUS IN ('C','P')
1084
																				)
1085
																		)
1086
																	)
1087
													)
1088
											)
1089
									)
1090
								OR	(	@p_TYPE_SEARCH='PAY' 
1091
										AND (	A.REQ_AMT -ISNULL(A.PAY_AMT,0)) >0 
1092
										AND	(	(	@BRANCH_TYPE_LG ='HS' 
1093
													AND	(	A.DEP_ID =@DEP_ID_LG 
1094
															OR A.MAKER_ID =@p_USER_LOGIN 
1095
															OR A.MAKER_ID IS NULL 
1096
															OR 1=1
1097
														)
1098
												) 
1099
												OR	(	@BRANCH_TYPE_LG <> 'HS' 
1100
														AND A.BRANCH_ID = @p_BRANCH_LOGIN
1101
													)
1102
												OR	(	@p_REQ_PAY_CODE IS NOT NULL 
1103
														AND @p_REQ_PAY_CODE <> '' 
1104
														AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE
1105
													)
1106
											)
1107
									)  
1108
							) -- ngoac so 1, line 347
1109
						OR	(	@p_TYPE_SEARCH='HC' 
1110
								AND	(	@ROLE_ID IN ('KSV','GDV')  
1111
										OR @DEP_ID_LG ='DEP000000000022'
1112
									) AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
1113
							)
1114
					) -- line 346
1115
			) -- line 344
1116
		AND	(	(	A.PAY_AMT = A.REQ_AMT 
1117
					AND (@p_TEMP_PAY_STATUS = 'HT')
1118
				)  
1119
				OR (A.PAY_AMT = 0 AND (@p_TEMP_PAY_STATUS = 'DCHU') )  
1120
				OR (A.PAY_AMT <> 0 and A.PAY_AMT < A.REQ_AMT AND (@p_TEMP_PAY_STATUS = 'DHU'))  
1121
				OR @p_TEMP_PAY_STATUS IS NULL OR @p_TEMP_PAY_STATUS = ''  
1122
			)  
1123
		AND	(	A.RECORD_STATUS ='1' AND A.AUTH_STATUS <>'X')
1124
		ORDER BY A.CREATE_DT DESC  
1125
-- PAGING END
1126
	END;
1127
END -- PAGING