Project

General

Profile

advance_serach_120123.txt

Luc Tran Van, 01/12/2023 10:12 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
														)
459
												)
460
											OR	(	EXISTS	(	SELECT * 
461
																FROM @TABLE_ROLE 
462
																WHERE ROLE_AUTH IN ('TKTGD', 'TKHDQT','TGD','HDQT')) 
463
																AND EXISTS	(	SELECT * 
464
																				FROM PL_REQUEST_PROCESS	
465
																				WHERE REQ_ID = A.REQ_PAY_ID
466
																				AND ROLE_USER IN(SELECT * FROM @TABLE_ROLE) 
467
																				--AND A.BRANCH_CREATE ='DV0001' 
468
																				AND A.PROCESS<>'' 
469
																				AND A.PROCESS IS NOT NULL
470
																				AND (	(	@p_AUTH_STATUS ='A' 
471
																							AND STATUS IN ('P','A')
472
																						) 
473
																						OR (@p_AUTH_STATUS = 'U' AND STATUS ='C') 
474
																						OR(ISNULL(@p_AUTH_STATUS,'') ='' )
475
																					)
476
																			)
477
												)
478

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

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

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

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

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