Project

General

Profile

advance_search_100122.txt

Luc Tran Van, 01/10/2023 04:41 PM

 
1
ALTER   PROCEDURE [dbo].[TR_REQ_ADVANCE_PAYMENT_Search]  
2
@p_REQ_PAY_ID varchar(15)= NULL,  
3
@p_REQ_PAY_CODE varchar(50) = NULL,  
4
@p_REQ_DT VARCHAR(20)= NULL,  
5
@p_BRANCH_ID varchar(15) = NULL,  
6
@p_DEP_ID varchar(15) = NULL,  
7
@p_REQ_REASON nvarchar(MAX) = NULL,  
8
@p_REQ_TYPE varchar(15) = NULL,  
9
@P_REQ_ENTRIES nvarchar(MAX) = NULL,  
10
@p_REQ_DESCRIPTION nvarchar(MAX) = NULL,  
11
@p_REF_ID varchar(15) = NULL,  
12
@p_RECEIVER_PO nvarchar(250) = NULL,  
13
@p_RECEIVER_DEBIT nvarchar(250) = NULL,  
14
@p_REQ_PAY_TYPE varchar(15) = NULL,  
15
@p_REQ_TYPE_CURRENCY nvarchar(50) = NULL,  
16
@p_REQ_AMT decimal(18, 0) = NULL,  
17
@p_REQ_TEMP_AMT decimal(18, 0) = NULL,  
18
@p_MAKER_ID varchar(15) = NULL,  
19
@p_CREATE_DT varchar(25) = NULL,  
20
@p_EDITOR_ID varchar(15) = NULL,  
21
@p_AUTH_STATUS varchar(1) = NULL,  
22
@p_CHECKER_ID varchar(15) = NULL,  
23
@p_APPROVE_DT varchar(25) = NULL,  
24
@p_CREATE_DT_KT varchar(25) = NULL,  
25
@p_MAKER_ID_KT varchar(15) = NULL,  
26
@p_AUTH_STATUS_KT varchar(1) = NULL,  
27
@p_CHECKER_ID_KT varchar(1) = NULL,
28
@p_EXEC_USER_KT	nvarchar(20)	= NULL,
29
@p_APPROVE_DT_KT varchar(25)= null,  
30
@p_CORE_NOTE nvarchar(500) = NULL,  
31
@p_BRANCH_CREATE varchar(15) = NULL,  
32
@p_NOTES NVARCHAR(15) = NULL,  
33
@p_RECORD_STATUS varchar(1) = NULL,  
34
@p_TRANSFER_MAKER nvarchar(50) = NULL,  
35
@p_TRANSFER_DT varchar(25) = NULL,  
36
@p_TRASFER_USER_RECIVE varchar(15) = NULL,  
37
@p_PROCESS varchar(15) = NULL,  
38
@p_PAY_PHASE VARCHAR(15)= NULL,  
39
@p_XMP_TEMP XML = NULL,  
40
@p_TOP INT = 10,  
41
@p_LEVEL varchar(10) = NULL,  
42
@p_FRMDATE VARCHAR(20)= NULL,  
43
@p_TODATE VARCHAR(20) = NULL,  
44
@p_BRANCH_LOGIN VARCHAR(15) = NULL,  
45
@p_IS_UPDATE_KT VARCHAR(15) = NULL,  
46
@p_IS_TRANSFER VARCHAR(15)= NULL,  
47
@p_DVDM_ID VARCHAR(15)= NULL,  
48
@p_USER_LOGIN VARCHAR(15) = NULL,  
49
@p_RATE DECIMAL(18,0) =0,  
50
@p_FUNCTION VARCHAR(15) = NULL,  
51
@p_TYPE_SEARCH VARCHAR(15) = NULL,  
52
@p_TEMP_PAY_STATUS VARCHAR(10) = NULL  
53
--select * from CM_ALLCODE where CDTYPE = 'TEMPPAYSTATUS'  
54
--HT Hoàn tất  
55
--DCHU Đang chờ hoàn ứng  
56
--DHU Đã hoàn ứng  
57
--'' tất cả  
58
AS
59
BEGIN -- PAGING
60
	SET @p_TOP = NULL  
61
	IF(ISNULL(@p_BRANCH_ID, '') = '')
62
	BEGIN
63
		SET @p_BRANCH_ID = @p_BRANCH_LOGIN
64
	END
65
	IF(ISNULL(@p_BRANCH_CREATE, '') = '')
66
	BEGIN
67
		SET @p_BRANCH_CREATE = @p_BRANCH_LOGIN
68
	END
69
-- BRANCH TYPE CUA USER LOGIN
70
	DECLARE @TB_TYPE TABLE (BRANCH_TYPE VARCHAR(15))  
71
	IF((SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID= @p_BRANCH_LOGIN)='HS')  
72
	BEGIN  
73
		INSERT INTO @TB_TYPE VALUES('HS')  
74
	END  
75
	ELSE  
76
	BEGIN  
77
		INSERT INTO @TB_TYPE VALUES('PGD')  
78
		INSERT INTO @TB_TYPE VALUES('CN')  
79
	END  
80

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

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

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

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

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

    
129
	--END
130
	--IF(EXISTS(SELECT * FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@ROLE_ID))  
131
	-- SET @ROLE_ID=(SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@ROLE_ID)  
132

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

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

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

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

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

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

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

    
941
												OR	(	(	A.BRANCH_CREATE <> @p_BRANCH_LOGIN 
942
															AND A.TRASFER_USER_RECIVE IS NOT NULL 
943
															AND A.TRASFER_USER_RECIVE <>''
944
														) 
945
														OR A.BRANCH_CREATE = @p_BRANCH_LOGIN
946
													)  
947
												AND A.BRANCH_ID IN (SELECT * FROM @tmp)
948
											)
949
									)  
950
								OR	(	@p_TYPE_SEARCH ='HC' 
951
										AND @BRANCH_TYPE_LG = 'CN' 
952
										AND A.BRANCH_ID IN (SELECT * FROM @tmp)
953
									)  
954
								OR	(	@p_TYPE_SEARCH ='HC' 
955
										AND @BRANCH_TYPE_LG = 'PGD' 
956
										AND	(	@ROLE_ID IN ('GDDV','TPGD','PPGD','PGD') 
957
												AND A.BRANCH_ID =@p_BRANCH_LOGIN
958
											)
959
									)  
960
								OR	(	@p_TYPE_SEARCH ='HC' 
961
										AND	(	A.DVDM_ID IS NOT NULL 
962
												AND A.DVDM_ID <>'' 
963
												AND A.DVDM_ID =@DVDM_ID 
964
												AND A.PROCESS IS NOT NULL 
965
												AND A.PROCESS <>'' 
966
												AND	@ROLE_ID IN	(	SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID =A.REQ_PAY_ID)
967
											) 
968
										OR	(	A.DEP_ID IN (SELECT * FROM @TMP_DEP) 
969
												AND A.PROCESS IS NOT NULL 
970
												AND A.PROCESS <>''  
971
												AND @ROLE_ID <> 'TKTGD' 
972
												AND @ROLE_ID IN	(	SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID =A.REQ_PAY_ID)
973
											)
974
									)  
975
								--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')))  
976
								OR	(	@p_TYPE_SEARCH='KT' 
977
										AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
978
									)  
979
								OR	(	@p_TYPE_SEARCH='HC' 
980
										AND	(	@ROLE_ID IN ('KSV','GDV')  
981
												OR @DEP_ID_LG ='DEP000000000022'
982
											) 
983
										AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
984
									)  
985
								OR	(	@p_TYPE_SEARCH='HC' AND (	EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS_CHILD 
986
																				WHERE REQ_ID = A.REQ_PAY_ID 
987
																				AND TLNAME =@p_USER_LOGIN 
988
																				AND TYPE_JOB ='XL' 
989
																				AND STATUS_JOB = 'C' 
990
																				AND ISNULL(A.AUTH_STATUS, '') <> 'A'
991
																			) 
992
																	OR EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS_CHILD 
993
																					WHERE REQ_ID = A.REQ_PAY_ID 
994
																					AND TLNAME =@p_USER_LOGIN 
995
																					AND TYPE_JOB ='XL' 
996
																					AND STATUS_JOB = 'P' 
997
																					AND	(	ISNULL(A.AUTH_STATUS, '') = 'A'
998
																																																								OR EXISTS	(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND TYPE_JOB ='KS' AND STATUS_JOB = 'C')
999
																																																							)
1000
																				)
1001
																)
1002
									) 
1003
								OR	(	@p_TYPE_SEARCH IN ('TK','TKTGD','TKHDQT') 
1004
										AND A.PROCESS<>'' 
1005
										AND A.PROCESS IS NOT NULL
1006
										AND (	(	@p_FUNCTION ='TF' AND  EXISTS	(	SELECT * FROM PL_REQUEST_PROCESS 
1007
																					WHERE REQ_ID = A.REQ_PAY_ID 
1008
																					AND ROLE_USER =@ROLE_ID 
1009
																					AND STATUS ='C'
1010
																				)
1011
												)
1012
												OR	(	ISNULL(@p_FUNCTION,'') <> 'TF' 
1013
														AND EXISTS(	SELECT * 
1014
																	FROM PL_REQUEST_PROCESS 
1015
																	WHERE REQ_ID = A.REQ_PAY_ID 
1016
																	AND ROLE_USER =@ROLE_ID 
1017
																	AND (	(@p_IS_TRANSFER = N'N' AND STATUS ='C') 
1018
																			OR	(	@p_IS_TRANSFER <>'N' 
1019
																					AND STATUS IN ('C','P')
1020
																				)
1021
																		)
1022
																	)
1023
													)
1024
											)
1025
									)
1026
								OR	(	@p_TYPE_SEARCH='PAY' 
1027
										AND (	A.REQ_AMT -ISNULL(A.PAY_AMT,0)) >0 
1028
										AND	(	(	@BRANCH_TYPE_LG ='HS' 
1029
													AND	(	A.DEP_ID =@DEP_ID_LG 
1030
															OR A.MAKER_ID =@p_USER_LOGIN 
1031
															OR A.MAKER_ID IS NULL 
1032
															OR 1=1
1033
														)
1034
												) 
1035
												OR	(	@BRANCH_TYPE_LG <> 'HS' 
1036
														AND A.BRANCH_ID = @p_BRANCH_LOGIN
1037
													)
1038
												OR	(	@p_REQ_PAY_CODE IS NOT NULL 
1039
														AND @p_REQ_PAY_CODE <> '' 
1040
														AND A.REQ_PAY_CODE =@p_REQ_PAY_CODE
1041
													)
1042
											)
1043
									)  
1044
							) -- ngoac so 1, line 347
1045
						OR	(	@p_TYPE_SEARCH='HC' 
1046
								AND	(	@ROLE_ID IN ('KSV','GDV')  
1047
										OR @DEP_ID_LG ='DEP000000000022'
1048
									) AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
1049
							)
1050
					) -- line 346
1051
			) -- line 344
1052
		AND	(	(	A.PAY_AMT = A.REQ_AMT 
1053
					AND (@p_TEMP_PAY_STATUS = 'HT')
1054
				)  
1055
				OR (A.PAY_AMT = 0 AND (@p_TEMP_PAY_STATUS = 'DCHU') )  
1056
				OR (A.PAY_AMT <> 0 and A.PAY_AMT < A.REQ_AMT AND (@p_TEMP_PAY_STATUS = 'DHU'))  
1057
				OR @p_TEMP_PAY_STATUS IS NULL OR @p_TEMP_PAY_STATUS = ''  
1058
			)  
1059
		AND	(	A.RECORD_STATUS ='1' AND A.AUTH_STATUS <>'X')
1060
		ORDER BY A.CREATE_DT DESC  
1061
-- PAGING END
1062
	END;
1063
END -- PAGING