Project

General

Profile

2.0 CONFIG PAYMENT SEARCH.txt

Luc Tran Van, 08/23/2021 05:39 PM

 
1

    
2

    
3
ALTER PROCEDURE [dbo].[TR_REQ_PAYMENT_Search]
4
@p_REQ_PAY_ID	varchar(15)= NULL,
5
@p_REQ_PAY_CODE	varchar(50)	= NULL,
6
@p_REQ_DT VARCHAR(20)= NULL,
7
@p_BRANCH_ID	varchar(15)	= NULL,
8
@p_DEP_ID	varchar(15)	= NULL,
9
@p_REQ_REASON	nvarchar(MAX)	= NULL,
10
@p_REQ_TYPE	varchar(15)	= NULL,
11
@P_REQ_ENTRIES nvarchar(MAX)	= NULL,
12
@p_REQ_DESCRIPTION	nvarchar(MAX)	= NULL,
13
@p_REF_ID	varchar(15)	= NULL,
14
@p_RECEIVER_PO	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_APPROVE_DT_KT  varchar(25)= null,
30
@p_CONFIRM_NOTE	nvarchar(500)	= NULL,
31
@p_BRANCH_CREATE	varchar(15)	= NULL,
32
@p_NOTES	varchar(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_TOP INT = 10,
40
@p_LEVEL varchar(10) = NULL,
41
@p_FRMDATE VARCHAR(20)= NULL,
42
@p_TODATE VARCHAR(20) = NULL,
43
@p_BRANCH_LOGIN VARCHAR(15) = NULL,
44
@p_IS_UPDATE_KT VARCHAR(15) = NULL,
45
@P_IS_TRANSFER VARCHAR(15) = NULL,
46
@p_TERM_ID VARCHAR(15) = NULL,
47
@P_USER_LOGIN VARCHAR(15)= NULL,
48
@p_FUNCTION VARCHAR(15) = NULL,
49
@p_TYPE_SEARCH VARCHAR(15) = NULL
50
AS
51
SET @p_TOP = NULL
52
declare @tmp table(BRANCH_ID varchar(15))
53
insert into @tmp  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)
54
declare @tmp_Login table(BRANCH_ID varchar(15))
55
insert into @tmp_Login  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)
56
DECLARE @ROLE_ID VARCHAR(20) , @DEP_ID_LG VARCHAR(15) = NULL, @COST_LG VARCHAR(15), @DVDM_ID VARCHAR(15)
57
DECLARE @BRANCH_TYPE VARCHAR(15)
58
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))
59
SET @ROLE_ID = (SELECT ROLENAME FROM TL_USER WHERE TLNANME=@p_USER_LOGIN)
60
SET @DEP_ID_LG =(SELECT SECUR_CODE FROM TL_USER WHERE TLNANME=@p_USER_LOGIN)
61
DECLARE @TMP_DEP TABLE(DEP_ID VARCHAR(15))
62
SET @COST_LG =(SELECT TOP 1 COST_ID FROM PL_COSTCENTER_DT WHERE DEP_ID =@DEP_ID_LG)
63
SET @DVDM_ID =(SELECT TOP 1 DVDM_ID FROM PL_COSTCENTER WHERE COST_ID =@COST_LG)
64
INSERT INTO @TMP_DEP SELECT B.DEP_ID FROM PL_COSTCENTER_DT B  WHERE COST_ID =@COST_LG
65
DECLARE @BRANCH_TYPE_LG VARCHAR(15)
66
SET @BRANCH_TYPE_LG = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_LOGIN)
67
-- KHAI BAO NHUNG PHONG BAN MA 1 USER KIEM NHIEM
68
DECLARE @TABLE_ROLE TABLE (ROLE_AUTH VARCHAR(50))  
69
INSERT INTO @TABLE_ROLE VALUES (@ROLE_ID)
70
INSERT INTO @TABLE_ROLE SELECT ROLE_NEW FROM TL_SYS_ROLE_MAPPING WHERE ROLE_OLD =@ROLE_ID AND TLNAME =@P_USER_LOGIN  
71
AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
72
AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='') 
73
DECLARE @DEP_AUTH TABLE (DEP_AUTH VARCHAR(15))
74
INSERT INTO @DEP_AUTH VALUES (@DEP_ID_LG)
75
INSERT INTO @DEP_AUTH SELECT DEP_ID FROM TL_SYS_ROLE_MAPPING WHERE TLNAME =@P_USER_LOGIN AND 
76
CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) AND CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103)
77
-- KHAI BAO PHẦN ỦY QUYỀN ĐƠN VỊ
78
DECLARE @BRANCH_AUTH TABLE (BRN_AUTH VARCHAR(15))
79
INSERT INTO @BRANCH_AUTH VALUES (@p_BRANCH_LOGIN)
80
INSERT INTO @BRANCH_AUTH SELECT BRANCH_ID FROM TL_SYS_ROLE_MAPPING WHERE TLNAME =@P_USER_LOGIN AND 
81
CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) AND CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103)
82
-- HẾT KHAI BÁO
83
SET  @ROLE_ID =(SELECT TOP 1 RoleName FROM TL_USER WHERE TLNANME =@p_USER_LOGIN)
84
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'))
85
BEGIN
86
	PRINT @ROLE_ID
87
END
88
ELSE
89
BEGIN
90
	SET @ROLE_ID =(SELECT TOP 1 RoleName FROM TL_USER_V2 WHERE TLNANME =@p_USER_LOGIN)
91
	IF(@ROLE_ID IS NULL OR @ROLE_ID ='')
92
	BEGIN
93
			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))
94
	END
95
END
96
INSERT INTO @TABLE_ROLE VALUES (@ROLE_ID)--2021823
97
--SET @ROLE_ID =(SELECT TOP 1 RoleName FROM TL_USER_V2 WHERE TLNANME =@p_USER_LOGIN)
98

    
99
IF(@p_TOP=NULL OR @p_TOP='' OR @p_TOP=0)BEGIN
100
		SELECT A.*,B.AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME,
101
		TL1.TLFullName APPROVE_FULLNAME,
102
		TL2.TLFullName CREATE_FULLNAME_KT,
103
		TL3.TLFullName APPROVE_FULLNAME_KT,
104
		BR.BRANCH_NAME BRANCH_NAME_REQ, BR1.BRANCH_NAME BRANCH_NAME_CRE, DP.DEP_NAME, DP.DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ,
105
		--Luanlt--2019/10/15-Sửa AL,AL1
106
		BR1.BRANCH_CODE BRANCH_CODE_CRE,  AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME, ISNULL((A.REQ_AMT -H.SOTIEN_TT),0) AS TOTAL_AMT_TEMP, 
107
		ISNULL(H.SOTIEN_TT,0) TOTAL_AMT_PAY_HIS,
108
		TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME, '' EMP_FULLNAME, PO.PO_CODE, PO.PO_NAME, S.SUP_NAME,S.TAX_NO SUP_TAX_NO,
109
		PC3.LEVEL_JOB, PC3.STATUS_JOB,PC3.TYPE_JOB,PC3.TLNAME AS EXEC_USER,@p_TYPE_SEARCH AS TYPE_SEARCH,SR.ROLE_ID AS ROLE_ID_CRE, '' AS BRANCH_TYPE_CR,
110
		BR_CORE.BRANCH_CODE AS BRANCH_CODE_CORE, BR_CORE.BRANCH_NAME AS BRANCH_NAME_CORE, '' AS BRANCH_CODE_CONTRACT,'' AS BRANCH_NAME_CONTRACT
111
        FROM TR_REQ_PAYMENT A
112
             LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS
113
             LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS
114
             LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME
115
             LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME
116
             LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME
117
             LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME
118
             LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID
119
			 LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID
120
             LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=A.DEP_ID
121
			 --Luanlt--2019/10/15-Sửa AL,AL1
122
			 LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='PAY_TYPE'--Loại thanh toán (Nội bộ/Thanh toán/Nợ)
123
			 LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE'--Hình thức thanh toán( Tiền mặt/Chuyển khoản)			 
124
			 LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME
125
			 LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME
126
			 LEFT JOIN 
127
			 (
128
			 SELECT PAY_ADV_ID, SUM(AMT_PAY) SOTIEN_TT FROM TR_REQ_PAYMENT_DT WHERE AUTH_STATUS_KT ='A' GROUP BY PAY_ADV_ID
129
			 ) H ON A.REQ_PAY_ID =H.PAY_ADV_ID
130
			 LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P'
131
			 LEFT JOIN CM_SUPPLIER S ON S.SUP_ID = PO.SUP_ID AND A.REQ_TYPE='P'
132
			 LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C'
133
			 LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C'
134
			 LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID
135
			 LEFT JOIN CM_BRANCH BR_CORE ON TL2.TLSUBBRID = BR_CORE.BRANCH_ID
136
        WHERE 1=1 
137
			  AND(A.AUTH_STATUS=@p_AUTH_STATUS OR @p_AUTH_STATUS='' OR @p_AUTH_STATUS IS NULL)
138
              AND((@p_LEVEL='ALL' AND A.BRANCH_CREATE IN(SELECT BRANCH_ID FROM @tmp))
139
              OR((@p_LEVEL='UNIT' AND A.BRANCH_CREATE=@p_BRANCH_CREATE)OR(@p_BRANCH_CREATE='' OR @p_BRANCH_CREATE IS NULL)))
140
			  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
141
              OR((A.MAKER_ID_KT IS NULL AND @p_IS_UPDATE_KT='N'))OR @p_IS_UPDATE_KT IS NULL OR @p_IS_UPDATE_KT='')
142
			  AND(A.NOTES LIKE N'%'+@p_NOTES+'%' OR @p_NOTES='' OR @p_NOTES IS NULL)
143
			  --Luanlt-2019/10/14-Thêm Filter  REQ_TYPE,FROMDATE TODATE REF_ID
144
			  AND(A.REQ_TYPE LIKE N'%'+@p_REQ_TYPE+'%' OR @p_REQ_TYPE = '' OR @p_REQ_TYPE IS NULL)
145
			  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)
146
              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)
147
			  --Luanlt-2019/10/17-Thêm Filter REQ_PAY_CODE REQ_PAY_NAME  BRANCH_ID DEP_ID KT_AUTH
148
			  AND(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' or @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL)
149
			 -- 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 <>'')
150
			  AND(A.BRANCH_CREATE = @p_BRANCH_CREATE or @p_BRANCH_CREATE='' OR @p_BRANCH_CREATE IS NULL)
151
			  AND(A.DEP_ID = @p_DEP_ID  or @p_DEP_ID='' OR @p_DEP_ID IS NULL)
152
			  AND(A.AUTH_STATUS_KT=@p_AUTH_STATUS_KT OR @p_AUTH_STATUS_KT='' OR @p_AUTH_STATUS_KT IS NULL)
153
			  AND(A.REF_ID =@p_REF_ID OR @p_REF_ID='' OR @p_REF_ID IS NULL)
154
			  -- Neu ben phan he ke toan thi chi lay nhung user co maker_id khac null
155
			  AND ((@p_FUNCTION ='KT' AND A.MAKER_ID_KT IS NOT NULL AND A.MAKER_ID_KT ='') OR @p_FUNCTION IS NULL OR @p_FUNCTION ='' OR @p_FUNCTION ='TF')	
156
			  AND(PC4.TLNAME = @p_TRASFER_USER_RECIVE OR @p_TRASFER_USER_RECIVE IS NULL OR @p_TRASFER_USER_RECIVE ='')
157
			  -- BO SUNG DOAN CODE DO DON VI THI TRUONG PHONG NAO CHI DUOC THAY CAC GIAO DICH CUA PHONG DO THOI
158
			   -- NEU LA PHIEU DE NGHI TAM UNG NOI BO DO HOI SO TAO THI TRUONG PHONG CHI DUOC PHEP THAY CAC GIAO DICH DO NHAN VIEN CUA MINH TAO
159
			--AND ( 
160
			--  (@p_FUNCTION <>'TF' AND A.REQ_TYPE IN ('I','P','D') AND EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_TYPE ='HS' AND BRANCH_ID = A.BRANCH_ID) AND A.DEP_ID = @DEP_ID_LG)
161
			--  OR (@p_FUNCTION <>'TF' AND EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_TYPE IN ('CN', 'PGD') AND BRANCH_ID = A.BRANCH_ID))
162
			--  OR (@p_FUNCTION ='TF' AND A.BRANCH_CREATE IN(SELECT BRANCH_ID FROM @tmp_Login))
163
			--  )
164
			--- CHECK NEU TIM KIEM O HCQT THI PHONG BAN NAO THAY GIAO DICH CUA PHONG BAN DO
165
			AND (@p_TYPE_SEARCH='HC' AND EXISTS(SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_ID AND BRANCH_TYPE ='HS') 
166
									  AND ( ((A.PROCESS IS NOT NULL AND A.PROCESS <> '' OR A.TRASFER_USER_RECIVE IS NULL OR A.TRASFER_USER_RECIVE ='') AND (SELECT SECUR_CODE FROM TL_USER WHERE TLNANME =A.MAKER_ID) = (SELECT SECUR_CODE FROM TL_USER WHERE TLNANME =@p_USER_LOGIN))
167
										   OR(A.MAKER_ID =@P_USER_LOGIN OR A.TRASFER_USER_RECIVE =@p_USER_LOGIN))
168
			OR (@p_TYPE_SEARCH='HC' AND NOT EXISTS(SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_ID AND BRANCH_TYPE ='HS')
169
									  AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login))
170
			-- HOAC NGUOC LAI NEU HC NHUNG PHIEU DUOC TAO O PGD, CN
171
			OR (@p_TYPE_SEARCH='KT' AND  A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login))
172
			OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH ='')
173
		ORDER BY A.CREATE_DT DESC;
174
    END;
175
    ELSE BEGIN
176
        SELECT A.*,B.AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME,
177
		TL1.TLFullName APPROVE_FULLNAME,
178
		CASE WHEN ISNULL(TL2.TLFullName,'') <>'' THEN TL2.TLFullName ELSE TL8.TLFullName END AS CREATE_FULLNAME_KT,
179
		TL3.TLFullName APPROVE_FULLNAME_KT,
180
		CASE WHEN NOT EXISTS(SELECT TOP 1 * FROM TR_REQ_ADVANCE_DT 
181
										WHERE REQ_PAY_ID = A.REQ_PAY_ID AND REF_ID IN (SELECT TOP 1 CONTRACT_ID FROM TR_CONTRACT WHERE BRANCH_ID =@p_BRANCH_LOGIN AND BRANCH_ID IS NOT NULL AND BRANCH_ID <> '')) THEN 
182
										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 
183
										WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
184
										ELSE BR.BRANCH_NAME END BRANCH_NAME_REQ,
185
		--BR.BRANCH_NAME AS BRANCH_NAME_REQ,
186
		BR1.BRANCH_NAME BRANCH_NAME_CRE, DP.DEP_NAME, DP.DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ,
187
		--Luanlt--2019/10/15-Sửa AL,AL1
188
		BR1.BRANCH_CODE BRANCH_CODE_CRE, AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME, ISNULL((A.REQ_AMT -H.SOTIEN_TT),0) AS TOTAL_AMT_TEMP, 
189
		ISNULL(H.SOTIEN_TT,0) TOTAL_AMT_PAY_HIS,
190
		TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME,'' EMP_FULLNAME,PO.PO_CODE, PO.PO_NAME, S.SUP_NAME,S.TAX_NO SUP_TAX_NO,
191
		PC3.LEVEL_JOB, PC3.STATUS_JOB,PC3.TYPE_JOB,CASE WHEN PC3.TLNAME IS NOT NULL AND PC3.TLNAME <>'' THEN @P_USER_LOGIN ELSE PC3.TLNAME END AS EXEC_USER,@p_TYPE_SEARCH AS TYPE_SEARCH,SR.ROLE_ID AS ROLE_ID_CRE,CASE WHEN BR1.BRANCH_TYPE <> 'PGD'THEN BR1.BRANCH_TYPE ELSE 'CN' END AS BRANCH_TYPE_CR,
192
		BR_CORE.BRANCH_CODE AS BRANCH_CODE_CORE, BR_CORE.BRANCH_NAME AS BRANCH_NAME_CORE,'' AS BRANCH_CODE_CONTRACT,
193
		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 WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
194
		AS BRANCH_NAME_CONTRACT
195
        FROM TR_REQ_PAYMENT A
196
             LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS
197
             LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS
198
             LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME
199
             LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME
200
             LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME
201
             LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME
202
             LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID
203
			 LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID
204
             LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=A.DEP_ID
205
			 --Luanlt--2019/10/15-Sửa AL,AL1
206
			 LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='PAY_TYPE'
207
			 LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE'
208
			 LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME
209
			 LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME
210
			 LEFT JOIN 
211
			 (
212
			 SELECT PAY_ADV_ID, SUM(AMT_PAY) SOTIEN_TT FROM TR_REQ_PAYMENT_DT WHERE AUTH_STATUS_KT ='A' GROUP BY PAY_ADV_ID
213
			 ) H ON A.REQ_PAY_ID =H.PAY_ADV_ID
214
			 LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P'
215
			 LEFT JOIN CM_SUPPLIER S ON S.SUP_ID = PO.SUP_ID AND A.REQ_TYPE='P'
216
			 LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C' 
217
			 LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C'
218
			 LEFT JOIN PL_REQUEST_PROCESS_CHILD PC5 ON PC5.REQ_ID = A.REQ_PAY_ID AND PC5.TYPE_JOB ='XL'
219
			 LEFT JOIN TL_USER TL8 ON PC5.TLNAME = TL8.TLNANME
220
			 LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID
221
			 LEFT JOIN CM_BRANCH BR_CORE ON TL2.TLSUBBRID = BR_CORE.BRANCH_ID
222
        WHERE 1=1 
223
			  AND(A.REQ_PAY_ID =@p_REQ_PAY_ID or @p_REQ_PAY_ID='' OR @p_REQ_PAY_ID IS NULL)
224
			  AND(A.AUTH_STATUS=@p_AUTH_STATUS OR @p_AUTH_STATUS='' OR @p_AUTH_STATUS IS NULL)
225
			  AND(A.MAKER_ID =@p_MAKER_ID OR @p_MAKER_ID='' OR @p_MAKER_ID IS NULL)
226
			  AND(A.DEP_ID=@p_DEP_ID OR @p_DEP_ID='' OR @p_DEP_ID IS NULL)
227
			  AND((@p_LEVEL='ALL' AND A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp_Login))
228
              OR((@p_LEVEL='UNIT' AND A.BRANCH_ID=@p_BRANCH_ID)OR(@p_BRANCH_ID='' OR @p_BRANCH_ID IS NULL) 
229
															   OR (@BRANCH_TYPE_LG <> 'HS' AND
230
																	EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT 
231
																	WHERE REQ_PAY_ID = A.REQ_PAY_ID AND REF_ID IN (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE BRANCH_ID =@p_BRANCH_LOGIN) AND AUTH_STATUS_KT ='A'))))
232
			   AND((@p_LEVEL='ALL' AND A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp))
233
              OR((@p_LEVEL='UNIT' AND A.BRANCH_ID=@p_BRANCH_ID)OR(@p_BRANCH_ID='' OR @p_BRANCH_ID IS NULL)
234
																 OR (@BRANCH_TYPE_LG <> 'HS' AND
235
																	EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT 
236
																	WHERE REQ_PAY_ID = A.REQ_PAY_ID AND REF_ID IN (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE BRANCH_ID =@p_BRANCH_LOGIN) AND AUTH_STATUS_KT ='A'))))
237
			  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
238
              OR((A.MAKER_ID_KT IS NULL AND @p_IS_UPDATE_KT='N'))OR @p_IS_UPDATE_KT IS NULL OR @p_IS_UPDATE_KT='')
239
			  AND(A.NOTES LIKE N'%'+@p_NOTES+'%' OR @p_NOTES='' OR @p_NOTES IS NULL)
240
			  --Luanlt-2019/10/14-Thêm Filter  REQ_TYPE,FROMDATE TODATE REF_ID
241
			  AND(A.REQ_TYPE LIKE N'%'+@p_REQ_TYPE+'%' OR @p_REQ_TYPE = '' OR @p_REQ_TYPE IS NULL)
242
			  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)
243
              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)
244
			  --Luanlt-2019/10/17-Thêm Filter REQ_PAY_CODE REQ_PAY_NAME  BRANCH_ID DEP_ID KT_AUTH
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.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 <>'')
248
			-- AND(A.BRANCH_ID = @p_BRANCH_ID or @p_BRANCH_ID='' OR @p_BRANCH_ID IS NULL)
249
			  AND(A.DEP_ID = @p_DEP_ID  or @p_DEP_ID='' OR @p_DEP_ID IS NULL)
250
			  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')))
251
			  AND(A.REF_ID =@p_REF_ID OR @p_REF_ID='' OR @p_REF_ID IS NULL)
252
			  --AND((A.TRANSFER_MAKER IS NOT NULL AND @p_IS_TRANSFER='Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat
253
              --OR((A.TRANSFER_MAKER IS NULL AND @p_IS_TRANSFER='N'))OR @p_IS_TRANSFER IS NULL OR @p_IS_TRANSFER='')
254
			  -- Neu ben phan he ke toan thi chi lay nhung user co maker_id khac null
255
			    AND ((@p_FUNCTION ='KT' AND (EXISTS(SELECT TOP 1 * FROM PL_REQUEST_PROCESS_CHILD X WHERE REQ_ID = A.REQ_PAY_ID AND (X.TLNAME= @p_USER_LOGIN OR X.TLNAME =@p_TRASFER_USER_RECIVE))) OR A.CHECKER_ID_KT ='admin' OR A.AUTH_STATUS_KT='A' )
256
				OR @p_FUNCTION ='' OR @p_FUNCTION IS NULL OR @p_FUNCTION ='TF' )	  
257
				AND(PC4.TLNAME = @p_TRASFER_USER_RECIVE OR @p_TRASFER_USER_RECIVE IS NULL OR @p_TRASFER_USER_RECIVE ='' OR A.MAKER_ID_KT =@p_TRASFER_USER_RECIVE)
258
			 -- AND ((@p_FUNCTION ='KT' AND A.MAKER_ID_KT IS NOT NULL AND A.MAKER_ID_KT ='') OR @p_FUNCTION IS NULL OR @p_FUNCTION ='')
259
			  AND(( @p_IS_TRANSFER='Y' AND (EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID) OR A.AUTH_STATUS_KT ='A')) --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat
260
              OR((@p_IS_TRANSFER='N' AND (NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID )) AND A.AUTH_STATUS_KT <>'A'))OR @p_IS_TRANSFER IS NULL OR @p_IS_TRANSFER='')	
261
			AND
262
			  ( 
263
			  A.MAKER_ID =@p_USER_LOGIN  OR ( A.TRASFER_USER_RECIVE = @P_USER_LOGIN AND A.AUTH_STATUS NOT IN ('E','R'))
264
			  OR(A.AUTH_STATUS <>'E' AND
265
			  (
266
			  (@p_TYPE_SEARCH ='HC' AND @BRANCH_TYPE_LG ='HS'  AND (A.TRASFER_USER_RECIVE = @p_USER_LOGIN OR (EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH IN ('GDDV','GDK','KTT','TPTC','TP','PP','TBP','TC'))
267
									AND ((A.BRANCH_ID =@p_BRANCH_LOGIN OR A.BRANCH_ID IN (SELECT * FROM @BRANCH_AUTH)) AND (A.DEP_ID =@DEP_ID_LG 
268
									OR (A.DEP_ID  IN ('DEP000000000051','DEP000000000733') AND @p_USER_LOGIN ='cuongpv2') OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH)))
269
									AND( A.TRASFER_USER_RECIVE IS NULL OR A.TRASFER_USER_RECIVE ='' OR (A.TRASFER_USER_RECIVE IS NOT NULL AND A.TRASFER_USER_RECIVE <>'' AND A.PROCESS IS NOT NULL AND A.PROCESS <>'')))))
270
			  OR(@p_TYPE_SEARCH ='HC' AND @BRANCH_TYPE_LG = 'CN' AND (@ROLE_ID IN ('GDDV','PGD','TPGD','PPGD') AND A.BRANCH_ID =@p_BRANCH_LOGIN AND
271
			  ((A.TRASFER_USER_RECIVE IS NOT NULL AND A.TRASFER_USER_RECIVE <>'' AND A.PROCESS IS NOT NULL AND A.PROCESS <>'') OR A.TRASFER_USER_RECIVE ='' OR A.TRASFER_USER_RECIVE IS NULL)
272
			  OR ((A.BRANCH_CREATE <> @p_BRANCH_LOGIN AND A.TRASFER_USER_RECIVE IS NOT NULL AND A.TRASFER_USER_RECIVE <>'') OR A.BRANCH_CREATE = @p_BRANCH_LOGIN)
273
			  --AND A.BRANCH_ID IN (SELECT * FROM @tmp)))
274
			   AND A.BRANCH_ID =@p_BRANCH_ID))
275
			  OR(@p_TYPE_SEARCH ='HC' AND @BRANCH_TYPE_LG = 'PGD' AND (@ROLE_ID IN ('GDDV','TPGD','PPGD','PGD') AND A.BRANCH_ID =@p_BRANCH_LOGIN))
276
			  OR(@p_TYPE_SEARCH ='HC' AND(@ROLE_ID IN ('KSV','GDV') OR @DEP_ID_LG ='DEP000000000022') AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login))
277
			  OR(@p_TYPE_SEARCH='KT' AND @p_BRANCH_LOGIN ='DV0001' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login))
278
			  OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH =''
279
			  ))
280
			  OR(@ROLE_ID IN ('KSV','GDV')  AND @p_BRANCH_LOGIN ='DV0001' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login))
281
			  -- NEU DUOC UY QUYEN DUYỆT CHO 1 ĐƠN VỊ KHÁC HỘI SỞ THÌ CHỈ SETUP ĐƠN VỊ, KHÔNG CẦN SETUP PHÒNG BAN
282
			  OR(@p_TYPE_SEARCH ='HC' AND A.BRANCH_CREATE <> 'DV0001' AND A.BRANCH_ID IN (SELECT * FROM @BRANCH_AUTH))
283
			  -- LUCTV 25 05 BO SUNG CAU HINH CHO PHEP DVKD DUOC THAY NHUNG PDN THANH TOAN DO HO TẠO
284
			  OR (@p_TYPE_SEARCH ='HC' AND @BRANCH_TYPE_LG <> 'HS' AND
285
								EXISTS(SELECT * FROM TR_REQ_ADVANCE_DT 
286
										WHERE REQ_PAY_ID = A.REQ_PAY_ID AND REF_ID IN (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE BRANCH_ID =@p_BRANCH_LOGIN) AND AUTH_STATUS_KT ='A'))
287
			  )
288
		ORDER BY A.CREATE_DT DESC;
289
    END;