Project

General

Profile

PL_REQUEST_DOC_MOBILE_Search.txt

Luc Tran Van, 02/02/2023 01:58 PM

 
1
CREATE PROCEDURE dbo.PL_REQUEST_DOC_MOBILE_Search
2
@p_REQ_ID	varchar(15)  = NULL,
3
@p_REQ_CODE	nvarchar(100)  = NULL,
4
@p_REQ_NAME	nvarchar(200)  = NULL,
5
@p_REQ_DT	varchar(20) = NULL,
6
@p_REQ_TYPE	int = NULL,
7
@p_REQ_CONTENT NVARCHAR(1000)=NULL,
8
@p_REQ_REASON NVARCHAR(500)=NULL,
9
@p_TOTAL_AMT	decimal = NULL,
10
@p_NOTES	nvarchar(1000)  = NULL,
11
@p_RECORD_STATUS	varchar(1)  = NULL,
12
@p_MAKER_ID	varchar(12)  = NULL,
13
@p_CREATE_DT	varchar(20) = NULL,
14
@p_AUTH_STATUS	varchar(50)  = NULL,
15
@p_CHECKER_ID	varchar(12)  = NULL,
16
@p_APPROVE_DT	varchar(20) = NULL,
17
@p_PROCESS_ID varchar(15) = NULL,
18
@p_BRANCH_ID VARCHAR(15)=NULL,
19
@p_DEP_ID VARCHAR(15) = NULL,
20
@p_BRANCH_LOGIN VARCHAR(15),
21
@p_ROLE_USER VARCHAR(20),
22
@p_TLNAME_USER VARCHAR(15),
23
@p_FR_DATE varchar(20) = NULL,
24
@p_TO_DATE varchar(20) = NULL,
25
@p_TYPE_TRANFER VARCHAR(15)= NULL,
26
@p_TYPE VARCHAR(15) = NULL,
27
@p_YEAR INT = NULL,
28
@p_TOP	INT = 10 ,
29
@p_IS_TRANSFER VARCHAR(10) = NULL,
30
@p_NGUOIXULY NVARCHAR(15) = NULL
31
AS
32
BEGIN -- PAGING
33

    
34
	DECLARE @TABLE_ROLE TABLE 
35
	( ROLE_ID VARCHAR(20))
36
	INSERT INTO @TABLE_ROLE VALUES(@p_ROLE_USER)
37

    
38
	
39
	INSERT INTO @TABLE_ROLE
40
	SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@p_ROLE_USER
41
	
42

    
43

    
44
	DECLARE @DEP_ID VARCHAR(15),@BRANCH_TYPE VARCHAR(15)
45
	
46
	DECLARE
47
	@COST_ID TABLE (
48
		COST_ID VARCHAR(15)
49
	)
50

    
51
	DECLARE @DVDM_ID TABLE (
52
		DVDM_ID VARCHAR(15)
53
	)
54
	SET @DEP_ID =(SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@p_TLNAME_USER)
55
	SET @BRANCH_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_LOGIN)
56

    
57

    
58
	IF(EXISTS(SELECT DEP_CODE FROM dbo.CM_DEPARTMENT WHERE DEP_ID=@DEP_ID AND DEP_CODE LIKE '069%'))
59
	BEGIN
60
		SET @BRANCH_TYPE='HS'
61
	END
62

    
63

    
64

    
65
	DECLARE @AUTHOR TABLE
66
	(
67
		ROLE_ID VARCHAR(100),
68
		BRANCH_ID VARCHAR(20),
69
		DEP_ID VARCHAR(20)
70
	)
71
	DECLARE @AUTHOR_DVDM TABLE
72
	(
73
		ROLE_ID VARCHAR(100),
74
		BRANCH_ID VARCHAR(20),
75
		DEP_ID VARCHAR(20),
76
		DVDM_ID VARCHAR(20)
77
	)
78
	INSERT INTO @AUTHOR
79
	(
80
	    ROLE_ID,
81
	    BRANCH_ID,
82
	    DEP_ID
83
	)
84
	SELECT RoleName,TLSUBBRID,SECUR_CODE FROM dbo.TL_USER TU
85
	WHERE TLNANME=@p_TLNAME_USER
86
	UNION ALL
87
	SELECT TM.ROLE_NEW RoleName,TLSUBBRID,SECUR_CODE FROM dbo.TL_USER TU
88
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='')
89
	WHERE TLNANME=@p_TLNAME_USER AND TM.ROLE_NEW IS NOT NULL
90
	UNION ALL
91
	SELECT TM1.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE FROM dbo.TL_SYS_ROLE_MAPPING TM1
92
	WHERE TM1.TLNAME=@p_TLNAME_USER AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
93
	UNION ALL
94
	SELECT TM.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE FROM dbo.TL_SYS_ROLE_MAPPING TM1
95
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TM1.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='')
96
	WHERE TM1.TLNAME=@p_TLNAME_USER AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
97

    
98
	INSERT INTO @AUTHOR_DVDM
99
	(
100
	    ROLE_ID,
101
	    BRANCH_ID,
102
	    DEP_ID,
103
	    DVDM_ID
104
	)
105
	SELECT TU.RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU 
106
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=TU.SECUR_CODE
107
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
108
	WHERE TU.TLNANME=@p_TLNAME_USER
109
	UNION ALL
110
	SELECT TM.ROLE_NEW RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU 
111
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=TU.SECUR_CODE
112
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
113
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='')
114
	WHERE TU.TLNANME=@p_TLNAME_USER AND TM.ROLE_NEW IS NOT NULL
115
	UNION ALL
116
	SELECT TU.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU 
117
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=TU.DEP_ID
118
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
119
	WHERE TU.TLNAME=@p_TLNAME_USER AND CAST(EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
120
	UNION ALL
121
	SELECT TM.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU 
122
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=TU.DEP_ID
123
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
124
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='')
125
	WHERE TU.TLNAME=@p_TLNAME_USER AND CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)	
126
	---- 16.11.22 LUCTV BO SUNG UNION NHUNG PHONG BAN CON CUA PHONG BAN DUOC KIEM NHIEM
127
	UNION ALL
128
	SELECT TU.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU 
129
	LEFT JOIN CM_DEPARTMENT DP ON DP.FATHER_ID = TU.DEP_ID
130
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=DP.DEP_ID
131
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
132
	WHERE TU.TLNAME=@p_TLNAME_USER AND CAST(EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
133
	UNION ALL
134
	SELECT TU.RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU
135
	LEFT JOIN CM_DEPARTMENT DP ON DP.FATHER_ID = TU.SECUR_CODE
136
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=DP.DEP_ID
137
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
138
	WHERE TU.TLNANME=@p_TLNAME_USER
139
	--- END LUCTV 16.11.2022
140
	INSERT INTO @COST_ID
141
	SELECT COST_ID FROM dbo.PL_COSTCENTER_DT WHERE DEP_ID=@DEP_ID AND BRANCH_ID=@p_BRANCH_LOGIN
142
	INSERT INTO @DVDM_ID
143
	SELECT DVDM_ID FROM dbo.PL_COSTCENTER WHERE COST_ID IN (SELECT COST_ID FROM @COST_ID) GROUP BY DVDM_ID
144

    
145
		----- GIANT 23/12/2021
146
		IF(@p_FR_DATE IS NULL)
147
		BEGIN
148
			SET @p_FR_DATE = GETDATE()
149
			SET @p_FR_DATE = DATEADD(YEAR,-1,@p_FR_DATE)
150
		END
151
		-----
152
	-- PAGING BEGIN
153
		SELECT A.REQ_CODE, A.REQ_CONTENT, A.TOTAL_AMT,
154
      CASE WHEN G.BRANCH_TYPE = 'HS' THEN ISNULL(G.BRANCH_NAME,'') + ' - ' + ISNULL(DEP.DEP_NAME,'') ELSE ISNULL(G.BRANCH_NAME,'') END AS BRANCH_NAME,
155
      N'Chờ duyệt' AS AUTH_STATUS_NAME
156
			-- SELECT END
157
		FROM PL_REQUEST_DOC A 	
158
		LEFT JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS = 'C'
159
		--LEFT JOIN dbo.PL_REQUEST_PROCESS RPN ON RPN.REQ_ID=A.REQ_ID AND RPN.STATUS = 'C'
160
		--LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID=(SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID AND PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID ORDER BY APPROVE_DT DESC)	
161
		--LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
162
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
163

    
164
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
165
		--LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD RPC ON RPC.REQ_ID=A.REQ_ID AND RPC.PROCESS_ID=PLRP.ID AND (RPC.STATUS_JOB='C' OR RPC.STATUS_JOB='R')
166
--		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
167
--		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
168
--		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
169
--		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
170
--		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
171
--		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
172
--		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
173
--		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
174
--		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
175
--		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
176
--		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
177
--		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
178

    
179
		WHERE 1 = 1
180
	  AND (@p_REQ_CODE IS NULL OR @p_REQ_CODE = '' OR A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%')
181
--		AND (@p_REQ_ID IS NULL OR @p_REQ_ID = '' OR A.REQ_ID LIKE '%' + @p_REQ_ID + '%')
182
		AND (@p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '' OR A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%')
183
		AND (@p_REQ_REASON IS NULL OR @p_REQ_REASON = '' OR A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%')
184
--		AND (@p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0 OR A.TOTAL_AMT=@p_TOTAL_AMT)
185
--		AND (@p_REQ_NAME IS NULL OR @p_REQ_NAME = '' OR A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%')	
186
		AND (@p_MAKER_ID IS NULL OR @p_MAKER_ID = '' OR A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%')
187
--		AND (@p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '' OR A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%')
188
--		AND	(@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) 
189
--		AND	(@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) 
190
--		AND	(@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) 
191
--		AND (@p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1 OR A.REQ_TYPE = @p_REQ_TYPE)
192
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
193
		AND A.RECORD_STATUS = '1'
194

    
195
--		AND(@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
196
--			OR(@p_REQ_TYPE=1 AND EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID))
197
--			OR(@p_REQ_TYPE=0 AND NOT EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID))
198
--    )
199

    
200
		AND EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND (
201
			PLRP.DVDM_ID=AUTH.DVDM_ID
202
			OR ((PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))
203
		))
204
		--AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) 
205
		--AND (
206
		--  (PLRP.PROCESS_ID='DVDC' AND PLRP.BRANCH_ID=@p_BRANCH_LOGIN AND (PLRP.DEP_ID=@DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID='')) 
207
		--OR ( PLRP.DVDM_ID IN (SELECT DVDM_ID FROM @DVDM_ID))
208
		--OR
209
		--( (PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))	
210
		--)
211
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
212
		AND (PLRP.IS_HAS_CHILD=0 OR PLRP.IS_HAS_CHILD IS NULL)
213
		--AND (( @p_AUTH_STATUS='A' AND  PLRP.STATUS='P') OR( @p_AUTH_STATUS='U' AND (PLRP.STATUS='C')) OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
214
		AND(@p_FR_DATE IS NULL OR @p_REQ_CODE IS NOT NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
215
		AND(@p_TO_DATE IS NULL OR @p_REQ_CODE IS NOT NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
216
--		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
217
--			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
218
		--AND(
219
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
220
		--	OR
221
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
222
		--)
223

    
224
		AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
225
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
226
		
227
		-- GIANT 26/10/2021
228
		AND (EXISTS (SELECT PL_REQUEST_DOC_DT.REQ_ID FROM PL_REQUEST_DOC_DT WHERE PL_REQUEST_DOC_DT.REQ_ID = A.REQ_ID))
229
		AND (A.PROCESS_ID IN ('GDK_TT','PTGDK_TT','TGD','HDQT','GDK_DC','GDK_TC')) -- LUCTV 24.11.2022 BO SUNG DIEU KIEN DE CHAN KHONG CHO LANH DAO TIM KIEM NEU PHIEU CHUA TOI
230
		ORDER BY A.CREATE_DT DESC
231
	-- PAGING END
232
   END -- PAGING