Project

General

Profile

advance_payment_search.txt

Luc Tran Van, 05/12/2023 02:28 PM

 
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
		OUTER APPLY ( SELECT TOP 1 P.REQ_ID, P.PROCESS_DESC, P.APPROVE_DT AS APP_DT FROM PL_PROCESS P WHERE P.REQ_ID = A.REQ_PAY_ID ORDER BY ID DESC ) AS PR 
230
		LEFT JOIN PL_REQUEST_PROCESS PC ON PC.REQ_ID= A.REQ_PAY_ID AND 
231
		(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))
232
		AND PC.STATUS='C' 
233
		--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'  
234
		LEFT JOIN PL_REQUEST_PROCESS PC1 ON PC1.REQ_ID= A.REQ_PAY_ID AND PC1.STATUS='C'  
235
		LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C'  
236
		LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C'  
237
		LEFT JOIN TL_USER TL8 ON A.RECIVER_MONEY = TL8.TLNANME  
238
		LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID  
239
		LEFT JOIN CM_BRANCH BR_CORE ON TL2.TLSUBBRID = BR_CORE.BRANCH_ID  
240
		WHERE 1=1  
241
		AND (A.REQ_PAY_ID =@p_REQ_PAY_ID OR @p_REQ_PAY_ID IS NULL OR @p_REQ_PAY_ID ='') 
242
		AND(A.MAKER_ID = @p_MAKER_ID OR @p_MAKER_ID = '' OR @p_MAKER_ID IS NULL) 
243
		AND(A.MAKER_ID_KT = @p_MAKER_ID_KT OR @p_MAKER_ID_KT = '' OR @p_MAKER_ID_KT IS NULL)
244
		AND(PC3.TLNAME = @p_EXEC_USER_KT OR @p_EXEC_USER_KT = '' OR @p_EXEC_USER_KT IS NULL)
245
		AND(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' OR @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL)  
246
		AND(A.REQ_REASON LIKE N'%'+@p_REQ_REASON+'%' OR @p_REQ_REASON='' OR @p_REQ_REASON IS NULL)    
247
		AND(A.NOTES LIKE N'%'+@p_NOTES+'%' OR @p_NOTES='' OR @p_NOTES IS NULL)  
248
		--Luanlt-2019/10/14-Thêm Filter REQ_TYPE,FROMDATE TODATE REF_ID  
249
		AND(A.REQ_TYPE LIKE N'%'+@p_REQ_TYPE+'%' OR @p_REQ_TYPE = '' OR @p_REQ_TYPE IS NULL)
250
		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)  
251
		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  
252
		AND(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' or @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL)  
253
		--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 <>'')  
254
		AND(A.DEP_ID = @p_DEP_ID or @p_DEP_ID='' OR @p_DEP_ID IS NULL)  
255
		AND	(	(A.AUTH_STATUS_KT=@p_AUTH_STATUS_KT OR @p_AUTH_STATUS_KT='' 
256
				OR @p_AUTH_STATUS_KT IS NULL) OR (@p_AUTH_STATUS_KT ='P' AND A.AUTH_STATUS_KT IN ('P','S'))	
257
			)  
258
		AND(A.REF_ID =@p_REF_ID OR @p_REF_ID='' OR @p_REF_ID IS NULL) 
259
		AND	(	A.AUTH_STATUS=@p_AUTH_STATUS 
260
				OR @p_AUTH_STATUS='' 
261
				OR @p_AUTH_STATUS IS NULL 
262
				OR (@p_AUTH_STATUS = 'W' AND ISNULL(A.AUTH_STATUS, '') = 'U' AND A.PROCESS IS NULL)
263
				OR (@p_AUTH_STATUS = 'G' AND ISNULL(A.AUTH_STATUS, '') = 'U' AND A.PROCESS = '')
264
				OR (	A.REQ_TYPE ='I' 
265
						AND A.AUTH_STATUS <>'A' 
266
						AND EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH IN ('GDDV','PP','GDK','KTT','PTGD','TGD','HDQT','TKTGD','TKHDQT'))
267
					)
268
			)
269
		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  
270
				OR	(A.MAKER_ID_KT IS NULL AND @p_IS_UPDATE_KT='N')
271
				OR @p_IS_UPDATE_KT IS NULL 
272
				OR @p_IS_UPDATE_KT=''
273
			)  
274
		 
275
		AND
276
		(
277
			(	@p_IS_TRANSFER='Y' 
278
				 AND(
279
						@p_TYPE_SEARCH ='TKTGD' AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='1')
280
			
281
					 OR (
282
							@p_TYPE_SEARCH ='TKHDQT' AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND PROCESS_ID ='2')
283
						)
284
					 OR (
285
							@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')
286
						)
287
					)
288
			) --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat  
289
			OR
290
			(	@p_IS_TRANSFER='N' 
291
				AND (
292
						(@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') 
293
				
294
						OR  (
295
								@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')
296
							)
297
						OR  (
298
								@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' 
299
							)
300
					)
301
			)
302
			OR @p_IS_TRANSFER IS NULL 
303
			OR @p_IS_TRANSFER=''
304
		) 
305

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

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

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

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

    
941
										)-- NEU ROLE NAM TRONG DS CAC ROLE WORKFLOW 1
942
								)	-- ngoac so 2, line 347
943
-- NGUOC LAI NEU LA TAM UNG KHAC
944
								OR	(	@p_TYPE_SEARCH ='HC' 
945
										AND @BRANCH_TYPE_LG ='HS' 
946
										AND A.REQ_TYPE <> 'I' 
947
										AND	(	A.TRASFER_USER_RECIVE = @p_USER_LOGIN 
948
												OR	(	@ROLE_ID IN ('GDDV','GDK','KTT','TPTC','PP','TBP','TP','TC') 
949
														AND (	A.BRANCH_ID =@p_BRANCH_LOGIN 
950
																OR A.BRANCH_ID IN(SELECT * FROM @BRANCH_AUTH)
951
															)	
952
														AND	(	A.DEP_ID =@DEP_ID_LG 
953
																		OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH)
954
															)  
955
														AND	(	A.TRASFER_USER_RECIVE IS NULL 
956
																OR A.TRASFER_USER_RECIVE ='' 
957
																OR	(	A.TRASFER_USER_RECIVE IS NOT NULL 
958
																		AND A.TRASFER_USER_RECIVE <>'' 
959
																		AND A.PROCESS IS NOT NULL 
960
																		AND A.PROCESS <>''
961
																	)
962
															)
963
													)  
964
												OR	(	@ROLE_ID NOT IN ('GDDV','GDK','KTT','TPTC','PP','TBP','TP','TC') 
965
														AND (A.DEP_ID =@DEP_ID_LG OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH))
966
													)  
967
											)
968
									)
969
									-- HẾT KIỂM TRA LIÊN QUAN ĐẾN LOẠI TẠM ỨNG
970
								OR	(	@p_TYPE_SEARCH ='HC' 
971
										AND @BRANCH_TYPE_LG = 'CN' 
972
										AND (	@ROLE_ID IN ('GDDV','PGD','TPGD','PPGD') 
973
												AND	(	(	A.TRASFER_USER_RECIVE IS NOT NULL 
974
															AND A.TRASFER_USER_RECIVE <>'' 
975
															AND A.PROCESS IS NOT NULL 
976
															AND A.PROCESS <>''
977
														)  
978
														OR A.TRASFER_USER_RECIVE ='' OR A.TRASFER_USER_RECIVE IS NULL
979
													)  
980

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