Project

General

Profile

rpt_TR_REQ_DOC_Inventory.txt

Luc Tran Van, 11/21/2022 05:28 PM

 
1

    
2
ALTER   PROCEDURE [dbo].[rpt_TR_REQ_DOC_Inventory]
3
@p_REQ_PAY_CODE	varchar(50)	= NULL,
4
--@p_REQ_TYPE	varchar(15)	= NULL,
5
@p_FromDate VARCHAR(20) = NULL,
6
@p_ToDate VARCHAR(20) = NULL,
7
@p_REQ_REASON	nvarchar(MAX)	= NULL,
8
----@p_PO_CODE	varchar(15)	= NULL,
9
--@p_BRANCH_ID	varchar(15)	= NULL,
10
--@p_DEP_ID	varchar(15)	= NULL,
11
@p_BRANCH_ID	varchar(15)	= NULL,
12
@p_LEVEL varchar(10) = NULL,
13
@p_BRANCH_CREATE	varchar(15)	= NULL,
14
@p_DEP_CREATE VARCHAR(15) = NULL,
15
@p_REF_ID varchar(15) = NULL,
16
@p_BRANCH_LOGIN VARCHAR(15) = NULL,
17
@p_USER_LOGIN VARCHAR(15)= NULL,
18
@p_SO_TO_TRINH VARCHAR(50) = NULL,
19
@p_PROCESS_ID varchar(50) = NULL,
20
@p_MAKER_ID nvarchar(100) = NULL,
21
@p_USER_XL nvarchar(100) = NULL
22
AS
23

    
24
--declare @tmp table(BRANCH_ID varchar(15))
25
--insert into @tmp  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)
26
--DECLARE @DEP_ID_LOGIN VARCHAR(15), @BRANCH_TYPE_LOGIN VARCHAR(15), @ROLE_USER_LOGIN VARCHAR(15)
27
--SET @DEP_ID_LOGIN=(SELECT SECUR_CODE FROM TL_USER WHERE TLNANME =@p_USER_LOGIN)
28
--SET @BRANCH_TYPE_LOGIN=(SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID =@p_BRANCH_LOGIN)
29
--SET @ROLE_USER_LOGIN =  (SELECT RoleName FROM TL_USER WHERE TLNANME =@p_USER_LOGIN)
30

    
31
--DECLARE @SOTTCT VARCHAR(15)= NULL
32
--SET @SOTTCT =(SELECT TOP 1 REQ_ID FROM PL_REQUEST_DOC WHERE REQ_CODE =@p_SO_TO_TRINH)
33
BEGIN 
34
	--SELECT 
35
	--ROW_NUMBER() OVER (ORDER BY A.REQ_ID ASC) AS STT,
36
	--CASE WHEN U.TLFullName <> '' THEN U.TLFullName ELSE N'Đang chờ điều phối' END AS NV_MS,
37
	--A.REQ_CODE AS SP_MS,	
38
	--FORMAT(A.CREATE_DT,'dd/MM/yyyy') AS NHANPHIEU,
39
	--FORMAT(A.APPROVE_DT,'dd/MM/yyyy') AS DUYETPHIEU,
40
	---------
41
	----CMS.DMMS_NAME AS DV_YC_MS,	
42
	--CASE WHEN A.BRANCH_CREATE ='DV0001' THEN DP.DEP_NAME + ' - '+ N'Hội sở' ELSE BR.BRANCH_NAME END AS DV_YC_MS,
43
	--PLRD.REQ_CODE AS SO_TTCT,
44
	--PLRD.REQ_NAME AS TEN_TTCT,
45
	--PLRD.REQ_CONTENT AS ND_HH,
46
	----------------------
47
	--DT.QUANTITY AS SL,
48
	--UN.UNIT_NAME AS DVT,
49
	--DT.PRICE_ETM AS DG_VAT,	
50
	--DT.TOTAL_AMT_ETM AS THANH_TIEN_VAT,
51
	--DT.TOTAL_AMT AS CP_MSTT,
52
	--ABS(DT.TOTAL_AMT - DT.TOTAL_AMT_ETM) AS CP_MSTK,
53
	--S.SUP_NAME AS NCC,
54
	--THH.HH_TYPE_NAME AS LOAI_HH,
55
	--HH.HH_NAME AS TEN_HH,
56
	--CT.CONTRACT_NAME AS LOAI_HD,
57
	--'' AS NGAY_TT_DOT1, 
58
	--'' AS TT_DOT1,	
59
	--'' AS NGAY_TT_DOT2,
60
	--'' AS TT_DOT2,	
61
	--'' AS NGAY_TT_DOT3,
62
	--'' AS TT_DOT3,	
63
	--'' AS TIENDO_TT,	
64
	--'' AS CP_BL_BH,
65
	--'' AS FROMDATE,
66
	--'' AS TODATE,
67
	--A.PROCESS_ID
68
	--FROM TR_REQUEST_DOC  A
69
	--LEFT JOIN PL_REQUEST_DOC PLRD ON A.PL_REQ_ID=PLRD.REQ_ID
70
	--LEFT JOIN 
71
	--(
72
	--	SELECT DMMS_ID,DEP_NAME+'-'+BRANCH_NAME AS DMMS_NAME FROM
73
	--	dbo.CM_DMMS 
74
	--	LEFT JOIN dbo.CM_BRANCH ON CM_BRANCH.BRANCH_ID=CM_DMMS.BRANCH_ID
75
	--	LEFT JOIN dbo.CM_DEPARTMENT ON CM_DEPARTMENT.DEP_ID = CM_DMMS.DEP_ID
76
	--	UNION ALL
77
	--	SELECT DVDM_ID AS DMMS_ID ,DVDM_NAME AS DMMS_NAME
78
	--	FROM dbo.CM_DVDM
79
	--)CMS ON CMS.DMMS_ID=A.DMMS_ID
80
	--LEFT JOIN TR_REQUEST_DOC_DT DT ON A.REQ_ID = DT.REQ_DOC_ID
81
	--LEFT JOIN CM_SUPPLIER S ON S.SUP_ID = DT.SUP_ID
82
	--LEFT JOIN CM_HANGHOA HH ON HH.HH_ID = DT.HANGHOA_ID 
83
	--LEFT JOIN CM_HANGHOA_TYPE THH ON THH.HH_TYPE_ID = HH.HH_TYPE_ID
84
	--LEFT JOIN CM_UNIT UN ON UN.UNIT_ID = HH.UNIT_ID
85
	--LEFT JOIN TR_CONTRACT CT ON CT.REQ_DOC_ID = A.REQ_ID
86
	--LEFT JOIN PL_REQUEST_PROCESS_CHILD CH ON A.REQ_ID = CH.REQ_ID AND  CH.PROCESS_ID IN (SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_ID) AND CH.TYPE_JOB ='XL'
87
	--LEFT JOIN TL_USER U ON U.TLNANME = CH.TLNAME
88
	--LEFT JOIN CM_BRANCH BR ON A.BRANCH_CREATE = BR.BRANCH_ID
89
	--LEFT JOIN CM_DEPARTMENT DP ON A.DEP_CREATE = DP.DEP_ID
90
	----LEFT JOIN TR_CONTRACT_PAYMENT P ON P.CONTRACT_ID = CT.CONTRACT_ID 
91
	--WHERE 1=1
92
	----Thiếu những field không biết lấy như nào nên em để lại 
93
	----AND(A.REQ_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' or @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL)
94
	--AND(A.REQ_TYPE LIKE N'%'+@p_REQ_TYPE+'%' or @p_REQ_TYPE='' OR @p_REQ_TYPE IS NULL)
95
	--AND CONVERT(DATE, A.CREATE_DT, 103) >= CONVERT(DATE, @p_FromDate, 103)
96
	--AND CONVERT(DATE, A.CREATE_DT, 103) <= CONVERT(DATE, @p_ToDate, 103)
97
	--AND((@p_LEVEL='ALL' AND A.BRANCH_CREATE IN(SELECT BRANCH_ID FROM @tmp))
98
	--OR((@p_LEVEL='UNIT' AND A.BRANCH_CREATE=@p_BRANCH_ID)OR(@p_BRANCH_ID='' OR @p_BRANCH_ID IS NULL)))
99
	----AND (A.PROCESS_ID LIKE '%' + @p_PROCESS_ID + '%' OR @p_PROCESS_ID IS NULL OR @p_PROCESS_ID='')
100
	--AND (A.MAKER_ID LIKE '%' + @p_MAKER_NAME + '%' OR @p_MAKER_NAME IS NULL OR @p_MAKER_NAME='')
101
	--AND (U.TLNANME LIKE '%' + @p_USER_XL + '%' OR @p_USER_XL IS NULL OR @p_USER_XL='')
102
	--AND (A.PL_REQ_ID =@SOTTCT OR @SOTTCT IS NULL OR @SOTTCT ='')
103
	--AND ( (@p_PROCESS_ID ='TP' AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_ID AND TYPE_JOB =@p_PROCESS_ID AND STATUS_JOB ='C' AND
104
	
105
	--PROCESS_ID IN (SELECT ID FROM PL_REQUEST_PROCESS WHERE PROCESS_ID ='DMMS'))
106
	--		AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_ID AND TYPE_JOB ='KS' AND STATUS_JOB ='P' AND
107
	
108
	--PROCESS_ID IN (SELECT ID FROM PL_REQUEST_PROCESS WHERE PROCESS_ID ='DMMS'))
109
	--		AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_ID AND TYPE_JOB ='XL' AND STATUS_JOB ='P' AND
110
	
111
	--PROCESS_ID IN (SELECT ID FROM PL_REQUEST_PROCESS WHERE PROCESS_ID ='DMMS')))
112
	--OR (@p_PROCESS_ID ='KS' AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_ID AND TYPE_JOB =@p_PROCESS_ID AND STATUS_JOB ='C' AND
113
	
114
	--PROCESS_ID IN (SELECT ID FROM PL_REQUEST_PROCESS WHERE PROCESS_ID ='DMMS'))
115
	--		AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_ID AND TYPE_JOB ='XL' AND STATUS_JOB ='P' AND
116
	
117
	--PROCESS_ID IN (SELECT ID FROM PL_REQUEST_PROCESS WHERE PROCESS_ID ='DMMS')))
118
	--OR (@p_PROCESS_ID ='XL' AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_ID AND TYPE_JOB =@p_PROCESS_ID AND STATUS_JOB ='C' AND
119
	
120
	--PROCESS_ID IN (SELECT ID FROM PL_REQUEST_PROCESS WHERE PROCESS_ID ='DMMS')))
121
	--OR @p_PROCESS_ID IS NULL OR @p_PROCESS_ID ='')
122
	--AND(EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_ID AND TYPE_JOB ='XL'  AND
123
	--PROCESS_ID IN (SELECT ID FROM PL_REQUEST_PROCESS WHERE PROCESS_ID ='DMMS')))
124
	----AND A.PROCESS_ID IN ('DMMS','DVCM','APPROVE')
125
	--AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =A.REQ_ID AND TLNAME IN (SELECT TLNANME FROM TL_USER WHERE SECUR_CODE =@DEP_ID_LOGIN ))
126
	--ORDER BY A.CREATE_DT ASC, STT ASC
127

    
128
	--------------BAODNQ 15/11/2022 : ĐIỀU CHỈNH------------------
129
	-------------BẢNG TẠM NGƯỜI XỬ LÝ TIẾP THEO------------
130
	DECLARE @lstREQUEST TABLE (
131
			REQ_ID VARCHAR(20),
132
			PROCESS_ID VARCHAR(50),
133
			DVDM_NAME NVARCHAR(200),
134
			TLNAME VARCHAR(200),
135
			TLFullName NVARCHAR(200),
136
			NOTES NVARCHAR(200)
137
		)
138
	INSERT INTO @lstREQUEST
139
	( REQ_ID,PROCESS_ID, DVDM_NAME,TLNAME,TLFullName, NOTES)	
140
	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 	
141
	FROM
142
	(SELECT * FROM dbo.PL_REQUEST_PROCESS PRC
143
	WHERE EXISTS(SELECT TRD.REQ_ID FROM dbo.TR_REQUEST_DOC TRD WHERE TRD.REQ_ID=PRC.REQ_ID) 
144
	AND PRC.PROCESS_ID ='DMMS' AND PRC.STATUS='C'
145
	) PL
146
	LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
147
	LEFT JOIN dbo.TR_REQUEST_DOC TR ON TR.REQ_ID=PL.REQ_ID
148
	LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
149
	LEFT JOIN 
150
	(
151
	SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC 
152
	LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
153
	WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
154
	)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
155
	LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
156
	LEFT JOIN 
157
	(
158
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DMMS_ID 
159
		FROM
160
		(
161
		SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
162
		dbo.TL_USER TS 
163
		UNION ALL
164
		SELECT  TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
165
		dbo.TL_SYS_ROLE_MAPPING TM
166
		LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
167
		WHERE  CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
168
		) TU
169
		LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
170
		LEFT JOIN(
171
		SELECT PC.DMMS_ID,PC.DEP_ID,PC.BRANCH_ID FROM dbo.CM_DMMS PC
172
		UNION ALL
173
		SELECT DVDM.DVDM_ID AS DMMS_ID,DVDM.DEP_ID,DVDM.BRANCH_ID  FROM 
174
		(
175
			SELECT CD.DVDM_ID,PCDT.BRANCH_ID,PCDT.DEP_ID FROM dbo.CM_DVDM CD
176
			LEFT JOIN dbo.PL_COSTCENTER PC ON PC.DVDM_ID=CD.DVDM_ID
177
			LEFT JOIN dbo.PL_COSTCENTER_DT PCDT ON PCDT.COST_ID = PC.COST_ID
178
			WHERE CD.IS_KHOI <>1
179
			GROUP BY CD.DVDM_ID,PCDT.BRANCH_ID,PCDT.DEP_ID
180
		) DVDM
181
		) Temp ON (Temp.DEP_ID=TU.SECUR_CODE OR CB.BRANCH_TYPE<>'HS') AND Temp.BRANCH_ID=TU.TLSUBBRID
182
	) 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	
183
	WHERE PL.STATUS='C'	
184
	UNION ALL
185
	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 
186
	FROM
187
	(SELECT * FROM dbo.PL_REQUEST_PROCESS PRC
188
	WHERE EXISTS(SELECT TRD.REQ_ID FROM dbo.TR_REQUEST_DOC TRD WHERE TRD.REQ_ID=PRC.REQ_ID) 
189
	AND PRC.PROCESS_ID <>'DMMS' AND PRC.PROCESS_ID <> 'NEW' AND PRC.PROCESS_ID <>'APPROVE' 
190
	AND PRC.STATUS='C' AND (PRC.IS_HAS_CHILD=0 OR PRC.IS_HAS_CHILD IS NULL)
191
	) PL
192
	LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
193
	LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
194
	LEFT JOIN 
195
	(
196
	SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID 
197
	FROM (
198
		SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
199
		dbo.TL_USER TS 
200
		UNION ALL
201
		SELECT  TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
202
		dbo.TL_SYS_ROLE_MAPPING TM
203
		LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
204
		WHERE  CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
205
		) TU
206
	LEFT JOIN
207
		(
208
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
209
		LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID
210
		) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
211
	) 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='') 
212
	AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
213
	AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
214
	WHERE  STATUS='C'
215
	UNION ALL
216
		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 
217
		FROM 
218
	(SELECT * FROM dbo.PL_REQUEST_PROCESS PRC
219
	WHERE EXISTS(SELECT TRD.REQ_ID FROM dbo.TR_REQUEST_DOC TRD WHERE TRD.REQ_ID=PRC.REQ_ID) 
220
	AND PRC.PROCESS_ID <>'DMMS' AND PRC.PROCESS_ID <> 'NEW' AND PRC.PROCESS_ID <>'APPROVE' 
221
	AND PRC.STATUS='C' AND PRC.IS_HAS_CHILD=1 
222
	) PL
223
	LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
224
	LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
225
	LEFT JOIN 
226
	(
227
	SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC 
228
	LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
229
	WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
230
	)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
231
	LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
232
	LEFT JOIN 
233
	(
234
	SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID 
235
	FROM       (
236
		SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
237
		dbo.TL_USER TS 
238
		UNION ALL
239
		SELECT  TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
240
		dbo.TL_SYS_ROLE_MAPPING TM
241
		LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
242
		WHERE  CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
243
		)  TU 
244
	LEFT JOIN(
245
	SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
246
	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
247
	) 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='') 
248
	AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
249
	AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
250
	WHERE  PL.STATUS='C'
251

    
252
	--SELECT
253
	--ROW_NUMBER() OVER (ORDER BY A.REQ_ID ASC) AS STT,
254
	--A.REQ_CODE AS SP_MS,
255
	--(
256
	--	STUFF((
257
	--		SELECT DISTINCT ', ' + CH.HH_NAME  
258
	--		FROM TR_REQUEST_DOC_DT TRDD
259
	--		LEFT JOIN CM_HANGHOA CH ON TRDD.HANGHOA_ID = CH.HH_ID
260
	--		WHERE TRDD.REQ_DOC_ID = A.REQ_ID
261
	--		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
262
	--) AS TEN_HH,
263
	----CH.HH_NAME AS TEN_HH,
264
	--CASE 
265
	--	WHEN (A.USER_DVMS IS NULL OR A.USER_DVMS = '') AND RPN.PROCESS_ID = 'DMMS'
266
	--		THEN N'Đang chờ điều phối' 
267
	--	ELSE TUMS.TLFullName
268
	--END AS NV_MS,
269
	--A.REQ_REASON AS NOI_DUNG,
270
	--PLRD.TOTAL_AMT AS SO_TIEN_CHU_TRUONG,
271
	--A.TOTAL_AMT AS SO_TIEN_THUC_TE,
272
	--CASE 
273
	--	WHEN CBC.BRANCH_TYPE = 'HS' THEN CDC.DEP_NAME + ' - '+ CBC.BRANCH_NAME
274
	--	ELSE CBC.BRANCH_NAME
275
	--END AS DV_YC_MS,
276
	--RPN.NOTES AS TINH_TRANG_THUC_HIEN
277

    
278
	--FROM TR_REQUEST_DOC A
279
	--LEFT JOIN PL_REQUEST_DOC PLRD ON A.PL_REQ_ID = PLRD.REQ_ID
280
	--LEFT JOIN CM_BRANCH CBC ON A.BRANCH_CREATE = CBC.BRANCH_ID
281
	--LEFT JOIN CM_DEPARTMENT CDC ON A.DEP_CREATE = CDC.DEP_ID
282
	--LEFT JOIN TL_USER TUMS ON A.USER_DVMS = TUMS.TLNANME
283
	----LEFT JOIN PL_REQUEST_PROCESS RPN ON A.REQ_ID = RPN.REQ_ID AND (RPN.STATUS = 'C' OR RPN.STATUS = 'R')
284
	--LEFT JOIN(
285
	--	SELECT TMP.REQ_ID, TMP.PROCESS_ID, TMP.STATUS, TMP.NOTES
286
	--	FROM PL_REQUEST_PROCESS TMP
287
	--	WHERE TMP.STATUS = 'C' OR TMP.STATUS = 'R'
288
	--	GROUP BY TMP.REQ_ID, TMP.PROCESS_ID, TMP.STATUS, TMP.NOTES
289
	--) RPN ON A.REQ_ID = RPN.REQ_ID
290
	----LEFT JOIN PL_REQUEST_PROCESS PRP ON PRP.REQ_ID = A.REQ_ID AND PRP.STATUS <> 'U'
291
	--LEFT JOIN PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID = A.REQ_ID AND PLRP.STATUS <> 'U' AND PLRP.PROCESS_ID IN ('DMMS', 'DVCM')
292
	--LEFT JOIN PL_REQUEST_PROCESS_CHILD RPC ON PLRP.ID = RPC.PROCESS_ID AND (RPC.STATUS_JOB = 'C' OR RPC.STATUS_JOB = 'R')
293
	--WHERE 1=1
294
	--AND(A.REQ_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' or @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL)
295
	--AND(PLRD.REQ_CODE LIKE N'%'+@p_SO_TO_TRINH+'%' or @p_SO_TO_TRINH='' OR @p_SO_TO_TRINH IS NULL)
296
	--AND CONVERT(DATE, A.CREATE_DT, 103) >= CONVERT(DATE, @p_FromDate, 103)
297
	--AND CONVERT(DATE, A.CREATE_DT, 103) <= CONVERT(DATE, @p_ToDate, 103)
298
	--AND(A.REQ_REASON LIKE N'%'+@p_REQ_REASON+'%' or @p_REQ_REASON='' OR @p_REQ_REASON IS NULL)
299
	--AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
300
	--AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
301
	--AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
302
	--AND (
303
	--	@p_USER_XL IN (SELECT NXL.TLNAME FROM @lstREQUEST NXL WHERE NXL.REQ_ID = A.REQ_ID)
304
	--	OR @p_USER_XL IS NULL OR @p_USER_XL = ''
305
	--)
306
	----AND(
307
	----	@p_PROCESS_ID IN (
308
	----		SELECT TYPE_JOB FROM PL_REQUEST_PROCESS_CHILD 
309
	----		WHERE REQ_ID = A.REQ_ID AND STATUS_JOB = 'C'
310
	----		AND PROCESS_ID = (SELECT TOP 1 TMP.ID FROM PL_REQUEST_PROCESS TMP WHERE TMP.REQ_ID = A.REQ_ID AND(TMP.STATUS = 'C' OR TMP.STATUS = 'R')))
311
	----	OR @p_PROCESS_ID IS NULL OR @p_PROCESS_ID = ''
312
	----)
313
	--AND(
314
	--	RPN.PROCESS_ID = 'DMMS'
315
	--	AND (@p_PROCESS_ID = 'XL' AND RPC.TYPE_JOB = @p_PROCESS_ID)
316
	--	OR (@p_PROCESS_ID = 'KS' AND RPC.TYPE_JOB = @p_PROCESS_ID 
317
	--		AND EXISTS (SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD Temp WHERE Temp.REQ_ID=A.REQ_ID AND Temp.STATUS_JOB='P' AND Temp.TYPE_JOB='XL')
318
	--	)
319
	--	OR(
320
	--		@p_PROCESS_ID = 'TP' AND RPC.TYPE_JOB = @p_PROCESS_ID
321
	--		AND EXISTS (SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD Temp WHERE Temp.REQ_ID=A.REQ_ID AND Temp.STATUS_JOB='P' AND Temp.TYPE_JOB='XL')
322
	--		AND (
323
	--			EXISTS (SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD Temp WHERE Temp.REQ_ID=A.REQ_ID AND Temp.STATUS_JOB='P' AND Temp.TYPE_JOB='KS')
324
	--			OR NOT EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD Temp WHERE Temp.REQ_ID=A.REQ_ID AND Temp.TYPE_JOB = 'KS')
325
	--		)
326
	--	)
327
	--	OR @p_PROCESS_ID IS NULL OR @p_PROCESS_ID = ''
328
		
329
	--)
330

    
331
	SELECT
332
	ROW_NUMBER() OVER (ORDER BY A.REQ_ID ASC) AS STT,
333
	A.REQ_CODE AS SP_MS,
334
	CONVERT(DATE, A.REQ_DT,103) AS NGAY_YEU_CAU,
335
	--CONVERT(DATE, P.TRANFER_DT,103) AS NGAY_KIEM_SOAT ,
336
	(
337
		STUFF((
338
			SELECT DISTINCT ', ' + CH.HH_NAME  
339
			FROM TR_REQUEST_DOC_DT TRDD
340
			LEFT JOIN CM_HANGHOA CH ON TRDD.HANGHOA_ID = CH.HH_ID
341
			WHERE TRDD.REQ_DOC_ID = A.REQ_ID
342
			FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
343
	) AS TEN_HH,
344
	(
345
		SELECT TLNAME FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =A.REQ_ID AND TYPE_JOB ='XL' 
346
		AND PROCESS_ID IN (SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =A.REQ_ID AND PROCESS_ID ='DMMS') 
347
	) 
348
	AS NV_MS, 
349
	A.REQ_REASON AS NOI_DUNG,
350
	X.SUM_MS_TOTRINH AS SO_TIEN_CHU_TRUONG, 
351
	X.SUM_MS_THUCTE AS SO_TIEN_THUC_TE,
352
	CASE 
353
		WHEN BR.BRANCH_TYPE = 'HS' THEN DP.DEP_NAME + ' - '+ BR.BRANCH_NAME
354
		ELSE BR.BRANCH_NAME
355
	END AS DV_YC_MS,
356
	CASE 
357
		 WHEN A.PROCESS_ID ='APPROVE' THEN N'Hoàn tất' 
358
		 WHEN A.PROCESS_ID ='DMMS' AND EXISTS(SELECT TOP 1 REQ_ID FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_ID AND TYPE_JOB ='XL' AND STATUS_JOB ='C' AND PROCESS_ID = PLRP.ID) 
359
			THEN N'Đang xử lý' 
360
		 WHEN A.PROCESS_ID ='DMMS' AND EXISTS(SELECT TOP 1 REQ_ID FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_ID AND TYPE_JOB ='XL' AND STATUS_JOB ='P' AND PROCESS_ID = PLRP.ID)
361
									AND EXISTS(SELECT TOP 1 REQ_ID FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_ID AND TYPE_JOB ='KS' AND STATUS_JOB ='C' AND PROCESS_ID = PLRP.ID)
362
			THEN N'Đang chờ KSV phê duyệt'
363
		 WHEN A.PROCESS_ID ='DMMS' AND NOT EXISTS(SELECT TOP 1 REQ_ID FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_ID AND TYPE_JOB ='XL' AND PROCESS_ID = PLRP.ID)
364
									AND EXISTS(SELECT TOP 1 REQ_ID FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_ID AND TYPE_JOB ='KS' AND STATUS_JOB ='C' AND PROCESS_ID = PLRP.ID)
365
			THEN N'Đang chờ KSV điều phối'
366
		WHEN A.PROCESS_ID ='DMMS' AND NOT EXISTS(SELECT TOP 1 REQ_ID FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_ID AND PROCESS_ID = PLRP.ID)
367
			THEN N'Đang chờ trưởng ĐMMS điều phối'
368
		 WHEN A.PROCESS_ID ='DMMS'	AND EXISTS(SELECT TOP 1 REQ_ID FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_ID AND TYPE_JOB ='XL' AND STATUS_JOB ='P' AND PROCESS_ID = PLRP.ID)
369
									AND(
370
										EXISTS(SELECT TOP 1 REQ_ID FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_ID AND TYPE_JOB ='KS' AND STATUS_JOB ='P' AND PROCESS_ID = PLRP.ID)
371
										OR NOT EXISTS(SELECT TOP 1 REQ_ID FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_ID AND TYPE_JOB ='KS' AND PROCESS_ID = PLRP.ID)
372
									)
373
									AND EXISTS(SELECT TOP 1 REQ_ID FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_ID AND TYPE_JOB ='TP' AND STATUS_JOB ='C' AND PROCESS_ID = PLRP.ID)
374
			THEN N'Đang chờ trưởng ĐMMS phê duyệt'
375
	END
376
	AS TINH_TRANG_THUC_HIEN
377

    
378
	FROM  TR_REQUEST_DOC A
379
	INNER JOIN
380
	(
381
		SELECT  REQ_DOC_ID,SUM(TOTAL_AMT) AS SUM_MS_THUCTE, SUM(TOTAL_AMT_ETM) AS SUM_MS_TOTRINH FROM TR_REQUEST_DOC_DT 
382
		GROUP BY REQ_DOC_ID
383
	) X ON A.REQ_ID = X.REQ_DOC_ID
384
	INNER JOIN CM_BRANCH BR ON A.BRANCH_CREATE = BR.BRANCH_ID
385
	LEFT JOIN CM_DEPARTMENT DP ON A.DEP_CREATE = DP.DEP_ID
386
	--INNER JOIN PL_REQUEST_PROCESS_CHILD P ON A.REQ_ID =P.REQ_ID
387
	LEFT JOIN PL_REQUEST_DOC PLRD ON A.PL_REQ_ID = PLRD.REQ_ID
388
	LEFT JOIN(
389
		SELECT TMP.REQ_ID, TMP.PROCESS_ID, TMP.STATUS, TMP.NOTES
390
		FROM PL_REQUEST_PROCESS TMP
391
		WHERE TMP.STATUS = 'C' OR TMP.STATUS = 'R'
392
		GROUP BY TMP.REQ_ID, TMP.PROCESS_ID, TMP.STATUS, TMP.NOTES
393
	) RPN ON A.REQ_ID = RPN.REQ_ID
394
	LEFT JOIN PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID = A.REQ_ID AND PLRP.PROCESS_ID = 'DMMS'
395
	LEFT JOIN PL_REQUEST_PROCESS_CHILD RPC ON PLRP.ID = RPC.PROCESS_ID AND (RPC.STATUS_JOB = 'C' OR RPC.STATUS_JOB = 'R')
396
	WHERE 1=1
397
	AND(A.REQ_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' or @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL)
398
	AND(PLRD.REQ_CODE LIKE N'%'+@p_SO_TO_TRINH+'%' or @p_SO_TO_TRINH='' OR @p_SO_TO_TRINH IS NULL)
399
	AND CONVERT(DATE, A.CREATE_DT, 103) >= CONVERT(DATE, @p_FromDate, 103)
400
	AND CONVERT(DATE, A.CREATE_DT, 103) <= CONVERT(DATE, @p_ToDate, 103)
401
	AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
402
	AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
403
	AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
404
	AND (
405
		@p_USER_XL IN (SELECT NXL.TLNAME FROM @lstREQUEST NXL WHERE NXL.REQ_ID = A.REQ_ID)
406
		OR @p_USER_XL IS NULL OR @p_USER_XL = ''
407
	)
408
	AND(
409
		RPN.PROCESS_ID = 'DMMS'
410
		AND (@p_PROCESS_ID = 'XL' AND RPC.TYPE_JOB = @p_PROCESS_ID)
411
		OR (@p_PROCESS_ID = 'KS' AND RPC.TYPE_JOB = @p_PROCESS_ID 
412
			AND EXISTS (SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD Temp WHERE Temp.REQ_ID=A.REQ_ID AND Temp.STATUS_JOB='P' AND Temp.TYPE_JOB='XL')
413
		)
414
		OR(
415
			@p_PROCESS_ID = 'TP' AND RPC.TYPE_JOB = @p_PROCESS_ID
416
			AND EXISTS (SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD Temp WHERE Temp.REQ_ID=A.REQ_ID AND Temp.STATUS_JOB='P' AND Temp.TYPE_JOB='XL')
417
			AND (
418
				EXISTS (SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD Temp WHERE Temp.REQ_ID=A.REQ_ID AND Temp.STATUS_JOB='P' AND Temp.TYPE_JOB='KS')
419
				OR NOT EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD Temp WHERE Temp.REQ_ID=A.REQ_ID AND Temp.TYPE_JOB = 'KS')
420
			)
421
		)
422
		OR @p_PROCESS_ID IS NULL OR @p_PROCESS_ID = ''
423
		
424
	)
425
	--CONVERT(DATE, P.TRANFER_DT, 103) >='2021-01-01' AND CONVERT(DATE, P.TRANFER_DT, 103) <='2021-06-30'
426
	--AND P.TLNAME IN ('vanpt2','tanvt') AND TYPE_JOB IN ('KS','XL')
427
	--ORDER BY BR.BRANCH_NAME
428

    
429
END	
430