Project

General

Profile

PL_PROCESS_CURRENT_NGUOIXULY.txt

Luc Tran Van, 12/24/2020 04:07 PM

 
1

    
2
ALTER FUNCTION [dbo].[PL_PROCESS_CURRENT_NGUOIXULY](
3
	@p_REQ_ID VARCHAR(20)=NULL,
4
	@p_USER_LOGIN VARCHAR(20)=NULL,
5
	@p_TYPE VARCHAR(20)=NULL,
6
	@p_IS_RETURN_NAME BIT = 1)
7
RETURNS NVARCHAR(4000)
8
BEGIN
9

    
10
DECLARE @PROCESS_CURR VARCHAR(20),@IS_HAS_CHILD BIT, @NGUOIXULY NVARCHAR(4000), @NGUOIXULYTLNAME NVARCHAR(4000)
11

    
12
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'
13

    
14
IF(@p_TYPE LIKE 'TTCT%')
15
BEGIN
16
IF(@IS_HAS_CHILD=0 OR @IS_HAS_CHILD IS NULL)
17

    
18
BEGIN
19
	select @NGUOIXULY = STUFF((select ', ' + RE.TLFullName  
20
		FROM(
21
		SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CD.DVDM_NAME,TempU.TLNANME AS TLNAME,TempU.TLFullName,PL.NOTES FROM dbo.PL_REQUEST_PROCESS PL
22
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
23
		LEFT JOIN 
24
		(
25
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID 
26
		FROM 
27
		(
28
		SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
29
		dbo.TL_USER TS 
30
		UNION ALL
31
		SELECT  TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
32
		dbo.TL_SYS_ROLE_MAPPING TM
33
		LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
34
		) TU 
35
		LEFT JOIN(
36
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
37
		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
38
		) 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.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
39
		AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
40
		AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
41
		WHERE REQ_ID =@p_REQ_ID AND STATUS='C' ) RE
42
			FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, ''),
43

    
44
		@NGUOIXULYTLNAME = STUFF((select ', ' + RE.TLNAME  
45
		FROM(
46
		SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CD.DVDM_NAME,TempU.TLNANME AS TLNAME,TempU.TLFullName,PL.NOTES FROM dbo.PL_REQUEST_PROCESS PL
47
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
48
		LEFT JOIN 
49
		(
50
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID 
51
		FROM (
52
		SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
53
		dbo.TL_USER TS 
54
		UNION ALL
55
		SELECT  TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
56
		dbo.TL_SYS_ROLE_MAPPING TM
57
		LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
58
		) TU
59
		LEFT JOIN(
60
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
61
		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
62
		) 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.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
63
		AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
64
		AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
65
		WHERE REQ_ID =@p_REQ_ID AND STATUS='C' ) RE
66
			FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
67

    
68
END
69
ELSE IF(@IS_HAS_CHILD=1)
70
BEGIN
71
	select @NGUOIXULY = STUFF((select ', ' + RE.TLFullName  
72
	FROM(
73
	SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CD.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
74
	LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
75
	LEFT JOIN 
76
	(
77
	SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC 
78
	LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
79
	WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
80
	)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
81
	LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
82
	LEFT JOIN 
83
		(
84
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM 
85
		(
86
		SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
87
		dbo.TL_USER TS 
88
		UNION ALL
89
		SELECT  TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
90
		dbo.TL_SYS_ROLE_MAPPING TM
91
		LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
92
		) TU
93
		LEFT JOIN(
94
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
95
		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
96
		) 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.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
97
		AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
98
		AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
99
	WHERE PL.REQ_ID =@p_REQ_ID AND PL.STATUS='C') RE
100
	FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, ''),
101

    
102
	@NGUOIXULYTLNAME = STUFF((select ', ' + RE.TLNAME  
103
	FROM(
104
	SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CD.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
105
	LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
106
	LEFT JOIN 
107
	(
108
	SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC 
109
	LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
110
	WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
111
	)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
112
	LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
113
	LEFT JOIN 
114
		(
115
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM
116
		(
117
		SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
118
		dbo.TL_USER TS 
119
		UNION ALL
120
		SELECT  TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
121
		dbo.TL_SYS_ROLE_MAPPING TM
122
		LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
123
		) TU
124
		LEFT JOIN(
125
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
126
		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
127
		) 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.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
		AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
130
	WHERE PL.REQ_ID =@p_REQ_ID AND PL.STATUS='C') RE
131
	FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
132

    
133
END
134

    
135

    
136
END
137
ELSE IF(@p_TYPE LIKE 'PYC%')
138
BEGIN
139
IF(@PROCESS_CURR='DMMS')
140
BEGIN
141
	--SELECT @NGUOIXULY = STRING_AGG(RE.TLFullName,', '), @NGUOIXULYTLNAME = STRING_AGG(RE.TLNAME,', ')
142
	select @NGUOIXULY = STUFF((select ', ' + RE.TLFullName  
143
	FROM(
144
		SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CD.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
145
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
146
		LEFT JOIN dbo.TR_REQUEST_DOC TR ON TR.REQ_ID=PL.REQ_ID
147
		LEFT JOIN 
148
		(
149
		SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC 
150
		LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
151
		WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
152
		)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
153
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
154
		LEFT JOIN 
155
		(
156
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DMMS_ID
157
		FROM (
158
		SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
159
		dbo.TL_USER TS 
160
		UNION ALL
161
		SELECT  TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
162
		dbo.TL_SYS_ROLE_MAPPING TM
163
		LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
164
		) TU
165
		LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
166
		LEFT JOIN(
167
		SELECT PC.DMMS_ID,PC.DEP_ID,PC.BRANCH_ID FROM dbo.CM_DMMS PC 
168
		) Temp ON (Temp.DEP_ID=TU.SECUR_CODE OR CB.BRANCH_TYPE<>'HS') AND Temp.BRANCH_ID=TU.TLSUBBRID
169
		) 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
170
		WHERE PL.REQ_ID =@p_REQ_ID AND PL.STATUS='C') RE
171
	FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, ''),
172

    
173
	@NGUOIXULYTLNAME = STUFF((select ', ' + RE.TLNAME  
174
	FROM(
175
		SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CD.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
176
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
177
		LEFT JOIN dbo.TR_REQUEST_DOC TR ON TR.REQ_ID=PL.REQ_ID
178
		LEFT JOIN 
179
		(
180
		SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC 
181
		LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
182
		WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
183
		)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
184
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
185
		LEFT JOIN 
186
		(
187
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DMMS_ID FROM 
188
		(
189
		SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
190
		dbo.TL_USER TS 
191
		UNION ALL
192
		SELECT  TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
193
		dbo.TL_SYS_ROLE_MAPPING TM
194
		LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
195
		) TU
196
		LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
197
		LEFT JOIN(
198
		SELECT PC.DMMS_ID,PC.DEP_ID,PC.BRANCH_ID FROM dbo.CM_DMMS PC 
199
		) Temp ON (Temp.DEP_ID=TU.SECUR_CODE OR CB.BRANCH_TYPE<>'HS') AND Temp.BRANCH_ID=TU.TLSUBBRID
200
		) 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
201
		WHERE PL.REQ_ID =@p_REQ_ID AND PL.STATUS='C') RE
202
	FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
203

    
204

    
205
END
206
ELSE IF(@IS_HAS_CHILD=0 OR @IS_HAS_CHILD IS NULL)
207

    
208
BEGIN
209
	--SELECT @NGUOIXULY = STRING_AGG(RE.TLFullName,', '), @NGUOIXULYTLNAME = STRING_AGG(RE.TLNAME,', ')
210
	select @NGUOIXULY = STUFF((select ', ' + RE.TLFullName
211
	FROM(
212
		SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CD.DVDM_NAME,TempU.TLNANME AS TLNAME,TempU.TLFullName,PL.NOTES FROM dbo.PL_REQUEST_PROCESS PL
213
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
214
		LEFT JOIN 
215
		(
216
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID 
217
		FROM (
218
		SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
219
		dbo.TL_USER TS 
220
		UNION ALL
221
		SELECT  TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
222
		dbo.TL_SYS_ROLE_MAPPING TM
223
		LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
224
		) TU 
225
		LEFT JOIN(
226
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
227
		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
228
		) 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.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
229
		AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
230
		AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
231
		WHERE REQ_ID =@p_REQ_ID AND STATUS='C') RE
232
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, ''),
233

    
234
	@NGUOIXULYTLNAME = STUFF((select ', ' + RE.TLNAME
235
	FROM(
236
		SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CD.DVDM_NAME,TempU.TLNANME AS TLNAME,TempU.TLFullName,PL.NOTES FROM dbo.PL_REQUEST_PROCESS PL
237
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
238
		LEFT JOIN 
239
		(
240
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM (
241
		SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
242
		dbo.TL_USER TS 
243
		UNION ALL
244
		SELECT  TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
245
		dbo.TL_SYS_ROLE_MAPPING TM
246
		LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
247
		) TU 
248
		LEFT JOIN(
249
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
250
		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
251
		) 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.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
252
		AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
253
		AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
254
		WHERE REQ_ID =@p_REQ_ID AND STATUS='C') RE
255
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
256
	 
257
END
258
ELSE IF(@IS_HAS_CHILD=1)
259
BEGIN
260
	--SELECT @NGUOIXULY = STRING_AGG(RE.TLFullName,', '), @NGUOIXULYTLNAME = STRING_AGG(RE.TLNAME,', ')
261
	select @NGUOIXULY = STUFF((select ', ' + RE.TLFullName
262
	FROM(
263
		SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CD.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
264
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
265
		LEFT JOIN 
266
		(
267
		SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC 
268
		LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
269
		WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
270
		)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
271
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
272
		LEFT JOIN 
273
		(
274
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID 
275
		FROM (
276
		SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
277
		dbo.TL_USER TS 
278
		UNION ALL
279
		SELECT  TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
280
		dbo.TL_SYS_ROLE_MAPPING TM
281
		LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
282
		) TU 
283
		LEFT JOIN(
284
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
285
		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
286
		) 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.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
287
		AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
288
		AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
289
		WHERE PL.REQ_ID =@p_REQ_ID AND PL.STATUS='C') RE
290
	FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, ''),
291

    
292
	@NGUOIXULYTLNAME = STUFF((select ', ' + RE.TLNAME
293
	FROM(
294
		SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CD.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
295
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
296
		LEFT JOIN 
297
		(
298
		SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC 
299
		LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
300
		WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
301
		)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
302
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
303
		LEFT JOIN 
304
		(
305
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID 
306
		FROM (
307
		SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
308
		dbo.TL_USER TS 
309
		UNION ALL
310
		SELECT  TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
311
		dbo.TL_SYS_ROLE_MAPPING TM
312
		LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
313
		) TU 
314
		LEFT JOIN(
315
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
316
		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
317
		) 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.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
318
		AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
319
		AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
320
		WHERE PL.REQ_ID =@p_REQ_ID AND PL.STATUS='C') RE
321
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
322

    
323
END
324
END
325
	IF(@p_IS_RETURN_NAME = 1)
326
	RETURN @NGUOIXULYTLNAME
327

    
328
	RETURN @NGUOIXULY
329
END
330
--EXEC CM_GOODS_Search '','','','','',0,'','','','','','','','',100s