Project

General

Profile

pay_transfer_search.txt

Luc Tran Van, 04/12/2023 01:34 PM

 
1

    
2
ALTER PROCEDURE [dbo].[TR_REQ_PAYMENT_AUTO_TRANSFER_Search]
3
@p_REQ_PAY_AUTO_ID	VARCHAR(20)= NULL,
4
@p_REQ_PAY_AUTO_CODE	VARCHAR(20)= NULL,
5
@p_REQ_PAY_AUTO_NAME	VARCHAR(20)= NULL,
6
@p_REQ_PAY_AUTO_DT	VARCHAR(20)= NULL,
7
@p_REQ_PAY_AUTO_TYPE	VARCHAR(20)= NULL,
8
@p_REQ_PAY_AUTO_SERVICE_TYPE	VARCHAR(20)= NULL,
9
@p_REQ_PAY_AUTO_STATUS	VARCHAR(20)= NULL,
10
@p_REQ_PAY_AUTO_EFFECTIVE_DT	VARCHAR(20)= NULL,
11
@p_BRANCH_ID	VARCHAR(20)= NULL,
12
@p_BRANCH_CODE	VARCHAR(20)= NULL,
13
@p_BRANCH_NAME	VARCHAR(20)= NULL,
14
@p_DEP_ID	VARCHAR(20)= NULL,
15
@p_DEP_CODE	VARCHAR(20)= NULL,
16
@p_DEP_NAME	VARCHAR(20)= NULL,
17
@p_BRANCH_CREATE	VARCHAR(20)= NULL,
18
@p_BRANCH_CREATE_CODE	VARCHAR(20)= NULL,
19
@p_BRANCH_CREATE_NAME	VARCHAR(20)= NULL,
20
@p_TRANSFER_USER_RECEIVE	VARCHAR(20)= NULL,
21
@p_TRANSFER_USER_RECEIVE_NAME	VARCHAR(20)= NULL,
22
@p_CONFIRM_NOTE	VARCHAR(20)= NULL,
23
@p_CONTRACT_ID	VARCHAR(20)= NULL,
24
@p_CONTRACT_CODE	VARCHAR(20)= NULL,
25
@p_CONTRACT_NAME	VARCHAR(20)= NULL,
26
@p_PROCESS	VARCHAR(20)= NULL,
27
@p_TRANSFER_MAKER	VARCHAR(20)= NULL,
28
@p_TRANSFER_DT	VARCHAR(20)= NULL,
29
@p_MAKER_ID	VARCHAR(20)= NULL,
30
@p_MAKER_NAME	VARCHAR(20)= NULL,
31
@p_CREATE_DT	VARCHAR(20)= NULL,
32
@p_EDITOR_ID	VARCHAR(20)= NULL,
33
@p_EDITOR_NAME	VARCHAR(20)= NULL,
34
@p_EDIT_DT	VARCHAR(20)= NULL,
35
@p_CHECKER_ID	VARCHAR(20)= NULL,
36
@p_CHECKER_NAME	VARCHAR(20)= NULL,
37
@p_APPROVE_DT	VARCHAR(20)= NULL,
38
@p_AUTH_STATUS	VARCHAR(20)= NULL,
39
@p_MAKER_ID_KT	VARCHAR(20)= NULL,
40
@p_MAKER_KT_NAME	VARCHAR(20)= NULL,
41
@p_CREATE_DT_KT	VARCHAR(20)= NULL,
42
@p_CHECKER_ID_KT	VARCHAR(20)= NULL,
43
@p_CHECKER_KT_NAME	VARCHAR(20)= NULL,
44
@p_APPROVE_DT_KT	VARCHAR(20)= NULL,
45
@p_AUTH_STATUS_KT	VARCHAR(20)= NULL,
46
@p_AUTH_STATUS_KT_DESC	VARCHAR(20)= NULL,
47
@p_RECORD_STATUS	VARCHAR(20)= NULL,
48
@p_FRMDATE	VARCHAR(20)= NULL,
49
@p_TODATE	VARCHAR(20)= NULL,
50
@p_LEVEL	VARCHAR(20)= NULL,
51
@p_USER_LOGIN	VARCHAR(20)= NULL,
52
@p_IS_SEND_APPR	VARCHAR(20)= NULL,
53
@p_TYPE_SEARCH	VARCHAR(20)= NULL,
54
@p_BRANCH_LOGIN	VARCHAR(20)= NULL,
55
@p_IS_TRANSFER	VARCHAR(20)= NULL,
56
@p_TOP INT = NULL
57
AS
58
BEGIN -- PAGING
59
-- BEGIN KHAI BÁO
60
-- ĐƠN VỊ YÊU CẦU
61
	DECLARE @tmp_branch TABLE(BRANCH_ID VARCHAR(15))
62
	DECLARE @tmp_dep TABLE(DEP_ID VARCHAR(15))
63
	DECLARE @DEP_ID VARCHAR(15) = NULL
64
	INSERT INTO @tmp_branch  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)
65
	DECLARE @BRANCH_TYPE VARCHAR(15)
66
	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_AUTO_ID))
67

    
68
-- ĐƠN VỊ ĐĂNG NHẬP
69
	DECLARE @tmp_branch_login TABLE(BRANCH_ID VARCHAR(15))
70
	DECLARE @tmp_dep_login TABLE(DEP_ID VARCHAR(15))
71
	INSERT INTO @tmp_branch_login  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)
72
	INSERT INTO @tmp_branch_login VALUES (@p_BRANCH_LOGIN)
73
	INSERT INTO @tmp_branch_login	SELECT BRANCH_ID 
74
									FROM TL_SYS_ROLE_MAPPING 
75
									WHERE TLNAME =@P_USER_LOGIN 
76
									AND CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) 
77
									AND CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103)
78
	DECLARE @BRANCH_TYPE_LG VARCHAR(15)
79
	SET @BRANCH_TYPE_LG = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_LOGIN)
80
-- PHÒNG BAN ĐĂNG NHẬP
81
	DECLARE @DEP_ID_LG VARCHAR(15) = NULL
82
	SET @DEP_ID_LG =(SELECT SECUR_CODE FROM TL_USER WHERE TLNANME=@p_USER_LOGIN)
83
	INSERT INTO @tmp_dep_login VALUES (@DEP_ID_LG)
84
	INSERT INTO @tmp_dep_login SELECT DEP_ID FROM CM_DEPARTMENT WHERE FATHER_ID =@DEP_ID_LG
85
	INSERT INTO @tmp_dep_login	SELECT DEP_ID 
86
								FROM TL_SYS_ROLE_MAPPING 
87
								WHERE TLNAME =@P_USER_LOGIN 
88
								AND CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) 
89
								AND CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103)
90

    
91
-- ROLE
92
	DECLARE @ROLE_ID VARCHAR(20)
93
	SET @ROLE_ID = (SELECT TOP 1 RoleName FROM TL_USER WHERE TLNANME=@p_USER_LOGIN)
94
	DECLARE @TABLE_ROLE TABLE (ROLE_AUTH VARCHAR(50))  
95
	INSERT INTO @TABLE_ROLE VALUES (@ROLE_ID)
96
	INSERT INTO @TABLE_ROLE SELECT ROLE_NEW 
97
							FROM TL_SYS_ROLE_MAPPING 
98
							WHERE ROLE_OLD =@ROLE_ID AND TLNAME =@P_USER_LOGIN  
99
							AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
100
							AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='') 
101
	
102
-- NEU USER KHONG CHON TU NGAY THI TU NGAY BANG NGAY 1 1 HANG THANG 20211116
103
	DECLARE @DATE DATE
104
	IF ((@p_FRMDATE IS NULL OR @p_FRMDATE ='') AND ISNULL(@p_REQ_PAY_AUTO_ID,'')='' AND @p_AUTH_STATUS ='') -- MỤC ĐÍCH NẾU NHƯ XEM CHI TIẾT 1 PĐN THANH TOÁN DẠNG POPUP THÌ BỎ QUA ĐIỀU KIỆN NÀY, TỪ NGÀY VẪN LÀ NULL
105
	BEGIN
106
		SET @DATE = CONVERT(DATE,GETDATE(),103)
107
		SET @DATE = DATEADD(MONTH,-2,@DATE)
108
	END
109
	ELSE
110
	BEGIN
111
		SET @DATE = CONVERT(DATE,@p_FRMDATE,103)
112
	END
113
-- END KHAI BÁO
114

    
115
	IF(@p_TOP IS NULL OR @p_TOP=0)
116
	BEGIN
117
-- PAGING BEGIN
118
		SELECT A.*, B.TLNAME AS TRANSFER_USER_RECEIVE,
119
		CASE	WHEN	(	SELECT TOP 1 BRANCH_ID 
120
									FROM TR_CONTRACT 
121
									WHERE CONTRACT_ID = A.CONTRACT_ID
122
								) <> 'DV0001'
123
								THEN  C.BRANCH_NAME + ISNULL	(	' - ' + (	SELECT TOP 1 BRANCH_NAME 
124
																						FROM CM_BRANCH 
125
																						WHERE BRANCH_ID =	(	SELECT TOP 1 BRANCH_ID 
126
																												FROM TR_CONTRACT 
127
																												WHERE CONTRACT_ID = A.CONTRACT_ID
128
																											)
129
																			),''
130
																)
131
						ELSE C.BRANCH_NAME 
132
		END BRANCH_NAME,
133
		CASE 
134
			WHEN A.REQ_PAY_AUTO_TYPE = 'A' THEN I.CONTENT
135
			ELSE J.CONTENT
136
		END REQ_PAY_AUTO_TYPE_NAME,
137
		D.DEP_NAME, E.TLFullName AS MAKER_NAME, G.CONTENT AS AUTH_STATUS_NAME, H.CONTENT AS AUTH_STATUS_KT_NAME
138
-- SELECT END
139
        FROM TR_REQ_PAYMENT_AUTO A
140
		LEFT JOIN PL_REQUEST_PROCESS_CHILD B ON A.REQ_PAY_AUTO_ID = B.REQ_ID AND B.TYPE_JOB = 'XL'
141
		LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
142
		LEFT JOIN CM_DEPARTMENT D ON A.DEP_ID = D.DEP_ID
143
		LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
144
		LEFT JOIN CM_ALLCODE F ON A.REQ_PAY_AUTO_TYPE = F.CDVAL AND F.CDNAME = 'PAY_TYPE_AUTO' AND F.CDTYPE = 'REQ_AUTO'
145
		LEFT JOIN CM_ALLCODE G ON A.AUTH_STATUS = G.CDVAL AND G.CDNAME = 'AUTH_STATUS' AND G.CDTYPE = 'TR_REQ_PAYMENT'
146
		LEFT JOIN CM_ALLCODE H ON A.AUTH_STATUS_KT = H.CDVAL AND H.CDNAME = 'AUTH_STATUS_KT' AND H.CDTYPE = 'TR_REQ_PAYMENT'
147
		LEFT JOIN CM_ALLCODE I ON A.REQ_PAY_AUTO_SERVICE_TYPE = I.CDVAL AND I.CDNAME = 'PAY_SER_AUTO_TS' AND I.CDTYPE = 'REQ_AUTO'
148
		LEFT JOIN CM_ALLCODE J ON A.REQ_PAY_AUTO_SERVICE_TYPE = J.CDVAL AND J.CDNAME = 'PAY_SER_AUTO' AND J.CDTYPE = 'REQ_AUTO'
149
        WHERE 1=1 
150
		AND	(	A.AUTH_STATUS = 'A' OR A.AUTH_STATUS = 'N')
151
		-- BEGIN FILTER
152
		AND	(	A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '')
153
		AND	(	A.PROCESS = @p_PROCESS OR ISNULL(@p_PROCESS, '') = '')
154
		AND	(	A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '')
155
		AND	(	A.REQ_PAY_AUTO_SERVICE_TYPE = @p_REQ_PAY_AUTO_SERVICE_TYPE OR ISNULL(@p_REQ_PAY_AUTO_SERVICE_TYPE, '') = '')
156
		AND	(	A.REQ_PAY_AUTO_CODE = @p_REQ_PAY_AUTO_CODE OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
157
		AND	(	(	@p_IS_TRANSFER = 'Y' 
158
					AND	EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_AUTO_ID) 
159
						
160
				)
161
				OR	(	@p_IS_TRANSFER='N' 
162
						AND	NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_AUTO_ID )
163
						AND A.PROCESS IN ('2', '11', '17')
164
					)
165
				OR @p_IS_TRANSFER IS NULL 
166
				OR @p_IS_TRANSFER=''
167
			)
168
		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)
169
		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)
170
		--AND	(	A.BRANCH_ID = @p_BRANCH_ID OR ISNULL(@p_BRANCH_ID, '') = '')
171
		AND	(	A.DEP_ID = @p_DEP_ID OR ISNULL(@p_DEP_ID, '') = '')
172
		AND	(	A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
173
		AND	(	B.TLNAME = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
174
		-- END FILTER
175
		ORDER BY A.CREATE_DT DESC
176
-- PAGING END
177
    END;
178
    ELSE 
179
	BEGIN
180
-- PAGING BEGIN
181
		SELECT A.*, B.TLNAME AS TRANSFER_USER_RECEIVE,
182
		CASE	WHEN	(	SELECT TOP 1 BRANCH_ID 
183
									FROM TR_CONTRACT 
184
									WHERE CONTRACT_ID = A.CONTRACT_ID
185
								) <> 'DV0001'
186
								THEN  C.BRANCH_NAME + ISNULL	(	' - ' + (	SELECT TOP 1 BRANCH_NAME 
187
																						FROM CM_BRANCH 
188
																						WHERE BRANCH_ID =	(	SELECT TOP 1 BRANCH_ID 
189
																												FROM TR_CONTRACT 
190
																												WHERE CONTRACT_ID = A.CONTRACT_ID
191
																											)
192
																			),''
193
																)
194
						ELSE C.BRANCH_NAME 
195
		END BRANCH_NAME,
196
		CASE 
197
			WHEN A.REQ_PAY_AUTO_TYPE = 'A' THEN I.CONTENT
198
			ELSE J.CONTENT
199
		END REQ_PAY_AUTO_TYPE_NAME,
200
		D.DEP_NAME, E.TLFullName AS MAKER_NAME, G.CONTENT AS AUTH_STATUS_NAME, H.CONTENT AS AUTH_STATUS_KT_NAME
201
-- SELECT END
202
        FROM TR_REQ_PAYMENT_AUTO A
203
		LEFT JOIN PL_REQUEST_PROCESS_CHILD B ON A.REQ_PAY_AUTO_ID = B.REQ_ID AND B.TYPE_JOB = 'XL'
204
		LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
205
		LEFT JOIN CM_DEPARTMENT D ON A.DEP_ID = D.DEP_ID
206
		LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
207
		LEFT JOIN CM_ALLCODE F ON A.REQ_PAY_AUTO_TYPE = F.CDVAL AND F.CDNAME = 'PAY_TYPE_AUTO' AND F.CDTYPE = 'REQ_AUTO'
208
		LEFT JOIN CM_ALLCODE G ON A.AUTH_STATUS = G.CDVAL AND G.CDNAME = 'AUTH_STATUS' AND G.CDTYPE = 'TR_REQ_PAYMENT'
209
		LEFT JOIN CM_ALLCODE H ON A.AUTH_STATUS_KT = H.CDVAL AND H.CDNAME = 'AUTH_STATUS_KT' AND H.CDTYPE = 'TR_REQ_PAYMENT'
210
		LEFT JOIN CM_ALLCODE I ON A.REQ_PAY_AUTO_SERVICE_TYPE = I.CDVAL AND I.CDNAME = 'PAY_SER_AUTO_TS' AND I.CDTYPE = 'REQ_AUTO'
211
		LEFT JOIN CM_ALLCODE J ON A.REQ_PAY_AUTO_SERVICE_TYPE = J.CDVAL AND J.CDNAME = 'PAY_SER_AUTO' AND J.CDTYPE = 'REQ_AUTO'
212
        WHERE 1=1 
213
		AND	(	A.AUTH_STATUS = 'A' OR A.AUTH_STATUS = 'N')
214
		-- BEGIN FILTER
215
		AND	(	A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '')
216
		AND	(	A.PROCESS = @p_PROCESS OR ISNULL(@p_PROCESS, '') = '')
217
		AND	(	A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '')
218
		AND	(	A.REQ_PAY_AUTO_SERVICE_TYPE = @p_REQ_PAY_AUTO_SERVICE_TYPE OR ISNULL(@p_REQ_PAY_AUTO_SERVICE_TYPE, '') = '')
219
		AND	(	A.REQ_PAY_AUTO_CODE = @p_REQ_PAY_AUTO_CODE OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
220
		AND	(	(	@p_IS_TRANSFER = 'Y' 
221
					AND	(	EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_AUTO_ID) 
222
						)
223
				)
224
				OR	(	@p_IS_TRANSFER='N' 
225
						AND	NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_AUTO_ID )
226
						AND A.PROCESS IN ('2', '11', '17')
227
					)
228
				OR @p_IS_TRANSFER IS NULL 
229
				OR @p_IS_TRANSFER=''
230
			)
231
		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)
232
		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)
233
		--AND	(	A.BRANCH_ID = @p_BRANCH_ID OR ISNULL(@p_BRANCH_ID, '') = '')
234
		AND	(	A.DEP_ID = @p_DEP_ID OR ISNULL(@p_DEP_ID, '') = '')
235
		AND	(	A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
236
		AND	(	B.TLNAME = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
237
		-- END FILTER
238
		ORDER BY A.CREATE_DT DESC
239
-- PAGING END
240
   END;
241
END -- PAGING