Project

General

Profile

pl_request_cur_search.txt

Luc Tran Van, 07/22/2022 12:26 PM

 
1
ALTER PROCEDURE [dbo].[PL_PROCESS_CURRENT_SEARCH]
2
	@p_REQ_ID VARCHAR(20)=NULL,
3
	@p_USER_LOGIN VARCHAR(20)=NULL,
4
	@p_TYPE VARCHAR(20)=NULL
5
AS
6
BEGIN
7

    
8
DECLARE @PROCESS_CURR VARCHAR(20),@IS_HAS_CHILD BIT
9

    
10
SELECT TOP 1 @PROCESS_CURR = PROCESS_ID,@IS_HAS_CHILD=IS_HAS_CHILD FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND STATUS='C'
11

    
12
IF(@p_TYPE LIKE 'TTCT%')
13
BEGIN
14
IF(@IS_HAS_CHILD=0 OR @IS_HAS_CHILD IS NULL)
15
BEGIN
16
	
17
	DECLARE @SIGN_USER VARCHAR(15), @CURENT_PROCESS VARCHAR(50)
18
	SET @SIGN_USER = (SELECT SIGN_USER FROM dbo.PL_REQUEST_DOC WHERE REQ_ID = @p_REQ_ID)
19
	SET @CURENT_PROCESS = (SELECT TOP 1 PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND STATUS='C')
20

    
21
	-- Nếu có cấp phê duyệt trung gian
22
	IF(@SIGN_USER IS NOT NULL AND @SIGN_USER <> '' AND @CURENT_PROCESS = 'SIGN')
23
	BEGIN
24
	    SELECT distinct PL.REQ_ID,PL.PROCESS_ID, CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,TempU.TLNANME AS TLNAME,TempU.TLFullName,PL.NOTES FROM dbo.PL_REQUEST_PROCESS PL
25
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
26
		LEFT JOIN 
27
		(
28
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU 
29
		LEFT JOIN(
30
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
31
		LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
32
		) TempU ON (TempU.RoleName=PL.ROLE_USER  OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE TM.ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME='')))  
33
		AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
34
		AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
35
		AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
36
		LEFT JOIN dbo.PL_REQUEST_DOC RD ON RD.REQ_ID = PL.REQ_ID
37
		LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
38
		WHERE PL.REQ_ID = @p_REQ_ID AND STATUS='C' AND (PL.PROCESS_ID = 'SIGN' AND TempU.TLNANME = RD.SIGN_USER)
39

    
40
	END
41
	ELSE
42
	BEGIN
43
		SELECT distinct PL.REQ_ID,PL.PROCESS_ID,
44
			CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,
45
			TempU.TLNANME AS TLNAME,
46
			TempU.TLFullName,
47
			PL.NOTES
48
		FROM dbo.PL_REQUEST_PROCESS PL
49
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
50
		LEFT JOIN 
51
		(
52
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU 
53
		LEFT JOIN(
54
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
55
		LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
56
		UNION ALL
57
		SELECT TU.TLNAME,US.TLFullName,TU.ROLE_NEW RoleName,Temp.DVDM_ID,TU.DEP_ID SECUR_CODE,TU.BRANCH_ID TLSUBBRID
58
		FROM dbo.TL_SYS_ROLE_MAPPING TU
59
		LEFT JOIN dbo.TL_USER US ON US.TLNANME=TU.TLNAME
60
		LEFT JOIN(
61
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
62
		LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.DEP_ID AND Temp.BRANCH_ID=TU.BRANCH_ID
63
		WHERE  CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
64
		) TempU ON (TempU.RoleName=PL.ROLE_USER)
65
		AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
66
		AND (((SELECT TOP 1 BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID = PL.BRANCH_ID) = 'HS' AND TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='')
67
		OR (SELECT TOP 1 BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID = PL.BRANCH_ID) <> 'HS') 
68
		AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
69
		LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
70
		WHERE PL.REQ_ID = @p_REQ_ID AND STATUS='C'
71
	END
72

    
73
END
74

    
75
ELSE IF(@IS_HAS_CHILD=1)
76
BEGIN
77
	SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLNANME ELSE TU.TLNANME END AS TLNAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLFullName ELSE TU.TLFullName END AS TLFullName,CASE WHEN TempC.ID IS NULL THEN PL.NOTES ELSE TempC.CONTENT END AS NOTES FROM dbo.PL_REQUEST_PROCESS PL
78
LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
79
LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
80
LEFT JOIN 
81
(
82
SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC 
83
LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
84
WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
85
)TempC ON TempC.PROCESS_ID =PL.ID AND TempC.REQ_ID = PL.REQ_ID AND PL.IS_HAS_CHILD=1
86
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
87
LEFT JOIN 
88
	(
89
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU 
90
		LEFT JOIN(
91
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
92
		LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
93
		UNION ALL
94
		SELECT TU.TLNAME,US.TLFullName,TU.ROLE_NEW RoleName,Temp.DVDM_ID,TU.DEP_ID SECUR_CODE,TU.BRANCH_ID TLSUBBRID FROM dbo.TL_SYS_ROLE_MAPPING TU
95
		LEFT JOIN dbo.TL_USER US ON US.TLNANME=TU.TLNAME
96
		LEFT JOIN(
97
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
98
		LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.DEP_ID AND Temp.BRANCH_ID=TU.BRANCH_ID
99
		WHERE  CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE) 
100
	) TempU ON (TempU.RoleName=PL.ROLE_USER  OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
101
	AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
102
	AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
103
WHERE PL.REQ_ID =@p_REQ_ID AND PL.STATUS='C'
104
END
105
END
106
ELSE IF(@p_TYPE LIKE 'PYC-XE')
107
BEGIN
108
IF(@IS_HAS_CHILD=0 OR @IS_HAS_CHILD IS NULL)
109

    
110
BEGIN
111
		
112
	SELECT distinct PL.REQ_ID,PL.PROCESS_ID, BR.BRANCH_NAME  AS DVDM_NAME,TempU.TLNANME AS TLNAME,TempU.TLFullName,PL.NOTES 
113
	FROM dbo.PL_REQUEST_PROCESS PL
114
	LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
115
	LEFT JOIN 
116
	(
117
	SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,TU.SECUR_CODE,TU.TLSUBBRID 
118
	FROM (
119
		SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
120
		dbo.TL_USER TS 
121
		UNION ALL
122
		SELECT  TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
123
		dbo.TL_SYS_ROLE_MAPPING TM
124
		LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
125
		WHERE  CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
126
		) TU
127
	) TempU ON (TempU.RoleName =PL.ROLE_USER  OR PL.ROLE_USER=(SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
128
	AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
129
	WHERE REQ_ID =@p_REQ_ID AND STATUS='C'
130
	 
131
END
132
ELSE IF(@IS_HAS_CHILD=1)
133
BEGIN
134
	SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLNANME ELSE TU.TLNANME END AS TLNAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLFullName ELSE TU.TLFullName END AS TLFullName,CASE WHEN TempC.ID IS NULL THEN PL.NOTES ELSE TempC.CONTENT END AS NOTES FROM dbo.PL_REQUEST_PROCESS PL
135
	LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
136
	LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
137
	LEFT JOIN 
138
	(
139
	SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC 
140
	LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
141
	WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
142
	)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
143
	LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
144
	LEFT JOIN 
145
	(
146
	SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID 
147
	FROM       (
148
		SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
149
		dbo.TL_USER TS 
150
		UNION ALL
151
		SELECT  TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
152
		dbo.TL_SYS_ROLE_MAPPING TM
153
		LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
154
		WHERE  CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
155
		)  TU 
156
	LEFT JOIN(
157
	SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
158
	LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
159
	) TempU ON (TempU.RoleName IN (SELECT VALUE FROM WSISPLIT(PL.ROLE_USER,'-'))  OR EXISTS (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE ROLE_NEW IN (SELECT VALUE FROM WSISPLIT(PL.ROLE_USER,'-')) AND ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
160
	AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='')
161

    
162
	WHERE PL.REQ_ID =@p_REQ_ID AND PL.STATUS='C'
163
END
164
END
165

    
166
ELSE IF(@p_TYPE LIKE 'PYC%')
167
BEGIN
168
IF(@PROCESS_CURR='DMMS')
169
BEGIN
170
	SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLNANME ELSE TU.TLNANME END AS TLNAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLFullName ELSE TU.TLFullName END AS TLFullName,CASE WHEN TempC.ID IS NULL THEN PL.NOTES ELSE TempC.CONTENT END AS NOTES FROM dbo.PL_REQUEST_PROCESS PL
171
	LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
172
	LEFT JOIN dbo.TR_REQUEST_DOC TR ON TR.REQ_ID=PL.REQ_ID
173
	LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
174
	LEFT JOIN 
175
	(
176
	SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC 
177
	LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
178
	WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
179
	)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
180
	LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
181
	LEFT JOIN 
182
	(
183
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DMMS_ID 
184
		FROM
185
		(
186
		SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
187
		dbo.TL_USER TS 
188
		UNION ALL
189
		SELECT  TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
190
		dbo.TL_SYS_ROLE_MAPPING TM
191
		LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
192
		WHERE  CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
193
		) TU
194
		LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
195
		LEFT JOIN(
196
		SELECT PC.DMMS_ID,PC.DEP_ID,PC.BRANCH_ID FROM dbo.CM_DMMS PC
197
		UNION ALL
198
		SELECT DVDM.DVDM_ID AS DMMS_ID,DVDM.DEP_ID,DVDM.BRANCH_ID  FROM 
199
		(
200
			SELECT CD.DVDM_ID,PCDT.BRANCH_ID,PCDT.DEP_ID FROM dbo.CM_DVDM CD
201
			LEFT JOIN dbo.PL_COSTCENTER PC ON PC.DVDM_ID=CD.DVDM_ID
202
			LEFT JOIN dbo.PL_COSTCENTER_DT PCDT ON PCDT.COST_ID = PC.COST_ID
203
			WHERE CD.IS_KHOI <>1
204
			GROUP BY CD.DVDM_ID,PCDT.BRANCH_ID,PCDT.DEP_ID
205
		) DVDM
206
		) Temp ON (Temp.DEP_ID=TU.SECUR_CODE OR CB.BRANCH_TYPE<>'HS') AND Temp.BRANCH_ID=TU.TLSUBBRID
207

    
208
	) TempU ON (TempU.RoleName=PL.ROLE_USER  OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE TM.ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.DMMS_ID=TR.DMMS_ID) AND TempC.ID IS NULL
209
	
210
	WHERE PL.REQ_ID =@p_REQ_ID AND PL.STATUS='C'	
211
END
212
ELSE IF(@IS_HAS_CHILD=0 OR @IS_HAS_CHILD IS NULL)
213

    
214
BEGIN
215
	SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,TempU.TLNANME AS TLNAME,TempU.TLFullName,PL.NOTES FROM dbo.PL_REQUEST_PROCESS PL
216
	LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
217
	LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
218
	LEFT JOIN 
219
	(
220
	SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID 
221
	FROM (
222
		SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
223
		dbo.TL_USER TS 
224
		UNION ALL
225
		SELECT  TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
226
		dbo.TL_SYS_ROLE_MAPPING TM
227
		LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
228
		WHERE  CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
229
		) TU
230
	LEFT JOIN
231
		(
232
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
233
		LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID
234
		) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
235
	) TempU ON (TempU.RoleName=PL.ROLE_USER  OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
236
	AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
237
	AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
238
	WHERE REQ_ID =@p_REQ_ID AND STATUS='C'
239
	 
240
END
241
ELSE IF(@IS_HAS_CHILD=1)
242
BEGIN
243
	SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLNANME ELSE TU.TLNANME END AS TLNAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLFullName ELSE TU.TLFullName END AS TLFullName,CASE WHEN TempC.ID IS NULL THEN PL.NOTES ELSE TempC.CONTENT END AS NOTES FROM dbo.PL_REQUEST_PROCESS PL
244
	LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
245
	LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
246
	LEFT JOIN 
247
	(
248
	SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC 
249
	LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
250
	WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
251
	)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
252
	LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
253
	LEFT JOIN 
254
	(
255
	SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID 
256
	FROM       (
257
		SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
258
		dbo.TL_USER TS 
259
		UNION ALL
260
		SELECT  TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
261
		dbo.TL_SYS_ROLE_MAPPING TM
262
		LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
263
		WHERE  CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
264
		)  TU 
265
	LEFT JOIN(
266
	SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
267
	LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
268
	) TempU ON  (TempU.RoleName=PL.ROLE_USER  OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
269
	AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
270
	AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
271
	WHERE PL.REQ_ID =@p_REQ_ID AND PL.STATUS='C'		
272
END
273
END
274

    
275
ELSE IF(@p_TYPE = 'INVENT')
276
BEGIN
277
	SET @SIGN_USER = (SELECT SIGN_USER FROM dbo.ASS_INVENTORY_MASTER WHERE INVENT_ID = @p_REQ_ID)
278
	SET @CURENT_PROCESS = (SELECT TOP 1 PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND STATUS='C')
279

    
280
	-- Nếu có cấp phê duyệt trung gian
281
	IF(@SIGN_USER IS NOT NULL AND @SIGN_USER <> '' AND @CURENT_PROCESS = 'SIGN')
282
	BEGIN
283
	    SELECT distinct PL.REQ_ID,PL.PROCESS_ID, BR.BRANCH_NAME AS DVDM_NAME,TU.TLNANME AS TLNAME,TU.TLFullName,PL.NOTES
284
		FROM dbo.PL_REQUEST_PROCESS PL
285
		LEFT JOIN dbo.ASS_INVENTORY_MASTER AI ON AI.INVENT_ID = PL.REQ_ID
286
		LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
287
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME = AI.SIGN_USER
288
		WHERE PL.REQ_ID = @p_REQ_ID AND STATUS='C' AND PL.PROCESS_ID = 'SIGN'
289
	END
290
	ELSE IF(@CURENT_PROCESS = 'APPNEW')
291
	BEGIN
292
		SELECT PL.REQ_ID, Pl.PROCESS_ID,BR.BRANCH_NAME AS DVDM_NAME, TmpU.TLNANME, TmpU.TLFullName, PL.NOTES
293
		FROM dbo.PL_REQUEST_PROCESS PL
294
		LEFT JOIN (
295
			SELECT * FROM [dbo].[FN_GET_USER_BY_ROLE] ('', '', '')
296
		) TmpU ON 1=1
297
		LEFT JOIN dbo.CM_BRANCH BR ON BR.BRANCH_ID = PL.BRANCH_ID
298
		WHERE PL.REQ_ID = @p_REQ_ID AND PL.STATUS = 'C'
299
		AND ((TmpU.ROLE_OLD = PL.ROLE_USER OR TmpU.ROLE_NEW = PL.ROLE_USER) OR PL.ROLE_USER IS NULL OR PL.ROLE_USER = '')
300
		AND ((BR.BRANCH_TYPE = 'HS' AND TmpU.BRANCH_ID = PL.BRANCH_ID AND TmpU.DEP_ID = PL.DEP_ID)
301
			OR (BR.BRANCH_TYPE <> 'HS' AND TmpU.BRANCH_ID = PL.BRANCH_ID)
302
			OR (PL.BRANCH_ID IS NULL OR PL.BRANCH_ID = '')
303
		)
304
	END
305
	ELSE IF(@CURENT_PROCESS <> 'APPNEW')
306
	BEGIN
307
		 SELECT PL.REQ_ID, Pl.PROCESS_ID,BR.BRANCH_NAME AS DVDM_NAME, TU.TLNANME, TU.TLFullName, PL.NOTES
308
		 FROM dbo.PL_REQUEST_PROCESS PL
309
		 LEFT JOIN dbo.TL_USER TU ON TU.TLNANME = PL.ROLE_USER
310
		 LEFT JOIN dbo.CM_BRANCH BR ON BR.BRANCH_ID = TU.TLSUBBRID
311
		 WHERE PL.REQ_ID = @p_REQ_ID AND PL.STATUS = 'C'
312
	END
313
END
314

    
315
----------------BAODNQ 6/6/2022 TỜ TRÌNH CHỈ ĐỊNH THẦU--------------
316
ELSE IF (@p_TYPE = 'TT_CDT')
317
BEGIN
318
	SET @SIGN_USER = (SELECT SIGN_USER FROM PL_APPOINT_CONTRACTOR WHERE REQ_ID = @p_REQ_ID)
319
	SET @CURENT_PROCESS = (
320
		SELECT TOP 1 PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND STATUS = 'C'
321
	)
322
	-------------CÓ CẤP DUYỆT TRUNG GIAN-----------
323
	IF(@SIGN_USER IS NOT NULL AND @SIGN_USER <> '' AND @CURENT_PROCESS = 'SIGN')
324
	BEGIN
325
		SELECT DISTINCT
326
		PRP.REQ_ID,
327
		PRP.PROCESS_ID,
328
		CASE
329
			WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME
330
			ELSE CB.BRANCH_NAME
331
		END AS DVDM_NAME,
332
		TLUSER.TLNANME AS TLNAME, TLUSER.TLFullName, PRP.NOTES
333
		FROM PL_REQUEST_PROCESS PRP
334
		LEFT JOIN CM_DVDM CD ON PRP.DVDM_ID = CD.DVDM_ID
335
		LEFT JOIN(
336
			SELECT
337
			TU.TLNANME, TU.TLFullName, TU.RoleName, PCOST.DVDM_ID, TU.SECUR_CODE,
338
			TU.DEP_ID, TU.TLSUBBRID
339
			FROM TL_USER TU
340
			LEFT JOIN (
341
				SELECT PC.DVDM_ID, PD.BRANCH_ID, PD.DEP_ID
342
				FROM PL_COSTCENTER PC
343
				LEFT JOIN PL_COSTCENTER_DT PD ON PD.COST_ID = PC.COST_ID
344
			) PCOST ON TU.TLSUBBRID = PCOST.BRANCH_ID AND TU.DEP_ID = PCOST.DEP_ID
345
		
346
		) TLUSER ON (
347
				TLUSER.RoleName = PRP.ROLE_USER 
348
				OR PRP.ROLE_USER IN ( 
349
					SELECT ROLE_NEW 
350
					FROM TL_SYS_ROLE_MAPPING TM 
351
					WHERE TM.ROLE_OLD = TLUSER.RoleName 
352
					AND TM.TLNAME IS NULL OR TM.TLNAME = ''
353
				)
354
			)
355
		AND (TLUSER.TLSUBBRID = PRP.BRANCH_ID OR PRP.BRANCH_ID IS NULL OR PRP.BRANCH_ID = '')
356
		AND (TLUSER.DEP_ID = PRP.DEP_ID OR PRP.DEP_ID IS NULL OR PRP.DEP_ID = '')
357
		AND (TLUSER.DVDM_ID = PRP.DVDM_ID OR PRP.DVDM_ID IS NULL OR PRP.DVDM_ID = '')
358
		LEFT JOIN PL_APPOINT_CONTRACTOR PAC ON PRP.REQ_ID = PAC.REQ_ID
359
		LEFT JOIN CM_BRANCH CB ON PRP.BRANCH_ID = CB.BRANCH_ID
360
		WHERE PRP.REQ_ID = @p_REQ_ID
361
		AND STATUS = 'C'
362
		AND (PRP.PROCESS_ID = 'SIGN' AND TLUSER.TLNANME = PAC.SIGN_USER)
363
	END
364
	ELSE
365
	----------KO CÓ CẤP DUYỆT TRUNG GIAN-------------
366
	BEGIN
367
		SELECT DISTINCT
368
		PRP.REQ_ID,
369
		PRP.PROCESS_ID,
370
		CASE
371
			WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME
372
			ELSE CB.BRANCH_NAME
373
		END AS DVDM_NAME,
374
		TLUSER.TLNANME AS TLNAME, TLUSER.TLFullName, PRP.NOTES
375
		FROM PL_REQUEST_PROCESS PRP
376
		LEFT JOIN CM_DVDM CD ON CD.DVDM_ID = PRP.DVDM_ID
377
		LEFT JOIN 
378
		(
379
			SELECT TU.TLNANME, TU.TLFullName, TU.RoleName, PCOST.DVDM_ID, TU.SECUR_CODE,
380
			TU.DEP_ID, TU.TLSUBBRID
381
			FROM TL_USER TU
382
			LEFT JOIN (
383
				SELECT PC.DVDM_ID, PD.BRANCH_ID, PD.DEP_ID
384
				FROM PL_COSTCENTER PC
385
				LEFT JOIN PL_COSTCENTER_DT PD ON PD.COST_ID = PC.COST_ID
386
			) PCOST ON TU.TLSUBBRID = PCOST.BRANCH_ID AND TU.DEP_ID = PCOST.DEP_ID
387
			UNION ALL
388
			SELECT TM.TLNAME, TLU.TLFullName, TM.ROLE_NEW AS RoleName, PCOST.DVDM_ID, 
389
			TM.DEP_ID AS SECUR_CODE, TM.DEP_ID AS DEP_ID, TM.BRANCH_ID AS TLSUBBRID
390
			FROM TL_SYS_ROLE_MAPPING TM
391
			LEFT JOIN TL_USER TLU ON TM.TLNAME = TLU.TLNANME
392
			LEFT JOIN (
393
				SELECT PC.DVDM_ID, PD.BRANCH_ID, PD.DEP_ID
394
				FROM PL_COSTCENTER PC
395
				LEFT JOIN PL_COSTCENTER_DT PD ON PD.COST_ID = PC.COST_ID
396
			) PCOST ON TM.BRANCH_ID = PCOST.BRANCH_ID AND TM.DEP_ID = PCOST.DEP_ID
397
			WHERE  CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
398
		) TLUSER ON (TLUSER.RoleName = PRP.ROLE_USER)
399
		AND (TLUSER.TLSUBBRID = PRP.BRANCH_ID OR PRP.BRANCH_ID IS NULL OR PRP.BRANCH_ID = '')
400
		AND (
401
			((SELECT TOP 1 BRANCH_TYPE FROM CM_BRANCH WHERE PRP.BRANCH_ID = BRANCH_ID) = 'HS'
402
			AND TLUSER.SECUR_CODE = PRP.DEP_ID OR PRP.DEP_ID IS NULL OR PRP.DEP_ID = '')
403
			OR (SELECT TOP 1 BRANCH_TYPE FROM CM_BRANCH WHERE PRP.BRANCH_ID = BRANCH_ID) <> 'HS'
404
		)
405
		AND (TLUSER.DVDM_ID = PRP.DVDM_ID OR PRP.DVDM_ID IS NULL OR PRP.DVDM_ID = '')
406
		LEFT JOIN CM_BRANCH CB ON PRP.BRANCH_ID = CB.BRANCH_ID
407
		WHERE PRP.REQ_ID = @p_REQ_ID
408
		AND STATUS = 'C'
409
	END
410
END
411

    
412
-----------------------BAODNQ 13/7/2022 ĐÁNH GIÁ NCC---------------------------
413
ELSE IF (@p_TYPE = 'RATE_SUP')
414
BEGIN
415
IF(@PROCESS_CURR='DMMS')
416
BEGIN
417
	SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLNANME ELSE TU.TLNANME END AS TLNAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLFullName ELSE TU.TLFullName END AS TLFullName,CASE WHEN TempC.ID IS NULL THEN PL.NOTES ELSE TempC.CONTENT END AS NOTES FROM dbo.PL_REQUEST_PROCESS PL
418
	LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
419
	LEFT JOIN TR_RATE_SUPPLIER_MASTER TR ON TR.RATE_ID=PL.REQ_ID
420
	LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
421
	LEFT JOIN 
422
	(
423
	SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC 
424
	LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
425
	WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
426
	)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
427
	LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
428
	LEFT JOIN 
429
	(
430
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DMMS_ID 
431
		FROM
432
		(
433
		SELECT TS.TLNANME,TS.TLFullName,
434
		--TS.RoleName,
435
		AR.DisplayName AS RoleName,
436
		TS.TLSUBBRID,TS.SECUR_CODE FROM
437
		dbo.TL_USER TS
438
		JOIN AbpUserRoles AU ON TS.ID = AU.UserId
439
		JOIN AbpRoles AR ON AU.RoleId = AR.Id 
440
		UNION ALL
441
		SELECT  TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
442
		dbo.TL_SYS_ROLE_MAPPING TM
443
		LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
444
		WHERE  CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
445
		) TU
446
		LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
447
		LEFT JOIN(
448
		SELECT PC.DMMS_ID,PC.DEP_ID,PC.BRANCH_ID FROM dbo.CM_DMMS PC
449
		UNION ALL
450
		SELECT DVDM.DVDM_ID AS DMMS_ID,DVDM.DEP_ID,DVDM.BRANCH_ID  FROM 
451
		(
452
			SELECT CD.DVDM_ID,PCDT.BRANCH_ID,PCDT.DEP_ID FROM dbo.CM_DVDM CD
453
			LEFT JOIN dbo.PL_COSTCENTER PC ON PC.DVDM_ID=CD.DVDM_ID
454
			LEFT JOIN dbo.PL_COSTCENTER_DT PCDT ON PCDT.COST_ID = PC.COST_ID
455
			WHERE CD.IS_KHOI <>1
456
			GROUP BY CD.DVDM_ID,PCDT.BRANCH_ID,PCDT.DEP_ID
457
		) DVDM
458
		) Temp ON (Temp.DEP_ID=TU.SECUR_CODE OR CB.BRANCH_TYPE<>'HS') AND Temp.BRANCH_ID=TU.TLSUBBRID
459

    
460
	) TempU ON (
461
		(TempU.RoleName=PL.ROLE_USER 
462
			OR (TempU.RoleName='KSV' 
463
				AND NOT EXISTS(SELECT TOP 1 PP.CHECKER_ID FROM PL_PROCESS PP WHERE PP.REQ_ID = @p_REQ_ID AND PP.PROCESS_ID = 'DMMS' AND PP.CHECKER_ID = TempU.TLNANME ORDER BY PP.APPROVE_DT DESC)
464
			)
465
		)
466
		OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE TM.ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.DMMS_ID=TR.DMMS_ID) AND TempC.ID IS NULL
467
	
468
	WHERE PL.REQ_ID =@p_REQ_ID AND PL.STATUS='C'	
469
END
470
	IF(@IS_HAS_CHILD=0 OR @IS_HAS_CHILD IS NULL)
471
	BEGIN
472
		SET @SIGN_USER = (SELECT SIGN_USER FROM TR_RATE_SUPPLIER_MASTER WHERE RATE_ID = @p_REQ_ID)
473
		SET @CURENT_PROCESS = (SELECT TOP 1 PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND STATUS='C')
474

    
475
		-- Nếu có cấp phê duyệt trung gian
476
		IF(@SIGN_USER IS NOT NULL AND @SIGN_USER <> '' AND @CURENT_PROCESS = 'SIGN')
477
		BEGIN
478
			SELECT distinct PL.REQ_ID,PL.PROCESS_ID, CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,TempU.TLNANME AS TLNAME,TempU.TLFullName,PL.NOTES FROM dbo.PL_REQUEST_PROCESS PL
479
			LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
480
			LEFT JOIN 
481
			(
482
			SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU 
483
			LEFT JOIN(
484
			SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
485
			LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
486
			) TempU ON (TempU.RoleName=PL.ROLE_USER  OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE TM.ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME='')))  
487
			AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
488
			AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
489
			AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
490
			LEFT JOIN dbo.TR_RATE_SUPPLIER_MASTER TRS ON TRS.RATE_ID = PL.REQ_ID
491
			LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
492
			WHERE PL.REQ_ID = @p_REQ_ID AND STATUS='C' AND (PL.PROCESS_ID = 'SIGN' AND TempU.TLNANME = TRS.SIGN_USER)
493

    
494
		END
495
		ELSE
496
		BEGIN
497
			SELECT distinct PL.REQ_ID,PL.PROCESS_ID,
498
				CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,
499
				TempU.TLNANME AS TLNAME,
500
				TempU.TLFullName,
501
				PL.NOTES
502
			FROM dbo.PL_REQUEST_PROCESS PL
503
			LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
504
			LEFT JOIN 
505
			(
506
			SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU 
507
			LEFT JOIN(
508
			SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
509
			LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
510
			UNION ALL
511
			SELECT TU.TLNAME,US.TLFullName,TU.ROLE_NEW RoleName,Temp.DVDM_ID,TU.DEP_ID SECUR_CODE,TU.BRANCH_ID TLSUBBRID
512
			FROM dbo.TL_SYS_ROLE_MAPPING TU
513
			LEFT JOIN dbo.TL_USER US ON US.TLNANME=TU.TLNAME
514
			LEFT JOIN(
515
			SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
516
			LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.DEP_ID AND Temp.BRANCH_ID=TU.BRANCH_ID
517
			WHERE  CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
518
			) TempU ON (TempU.RoleName=PL.ROLE_USER)
519
			AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
520
			AND (((SELECT TOP 1 BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID = PL.BRANCH_ID) = 'HS' AND TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='')
521
			OR (SELECT TOP 1 BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID = PL.BRANCH_ID) <> 'HS') 
522
			AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
523
			LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
524
			WHERE PL.REQ_ID = @p_REQ_ID AND STATUS='C'
525
		END
526
	END
527
	ELSE IF(@IS_HAS_CHILD=1)
528
	BEGIN
529
		SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLNANME ELSE TU.TLNANME END AS TLNAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLFullName ELSE TU.TLFullName END AS TLFullName,CASE WHEN TempC.ID IS NULL THEN PL.NOTES ELSE TempC.CONTENT END AS NOTES FROM dbo.PL_REQUEST_PROCESS PL
530
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
531
		LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
532
		LEFT JOIN 
533
		(
534
		SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC 
535
		LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
536
		WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
537
		)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
538
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
539
		LEFT JOIN 
540
		(
541
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID 
542
		FROM       (
543
			SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
544
			dbo.TL_USER TS 
545
			UNION ALL
546
			SELECT  TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
547
			dbo.TL_SYS_ROLE_MAPPING TM
548
			LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
549
			WHERE  CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
550
			)  TU 
551
		LEFT JOIN(
552
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
553
		LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
554
		) TempU ON  (TempU.RoleName=PL.ROLE_USER  OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
555
		AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
556
		AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
557
		WHERE PL.REQ_ID =@p_REQ_ID AND PL.STATUS='C'		
558
	END
559
END
560

    
561
END
562
--EXEC CM_GOODS_Search '','','','','',0,'','','','','','','','',100