Project

General

Profile

CM_REJECT_LOG_ByType_Ins.txt

Luc Tran Van, 11/30/2022 02:19 PM

 
1
/*INSERT INTO SYS_PREFIX(ID,Prefix,[Description]) VALUES('CM_REJECT_LOG','CMJL','')
2
INSERT INTO SYS_CODEMASTERS(Prefix,CurValue,Active) VALUES('CMJL','1','1')*/
3
ALTER PROC dbo.CM_REJECT_LOG_ByType_Ins
4
@p_LOG_ID	varchar(15)	= NULL,
5
@p_STAGE	varchar(5)	 = NULL,
6
@p_TRN_ID	varchar(15)	 = NULL,
7
@p_TRN_TYPE	nvarchar(100)	 = NULL,
8
@p_LOG_DT	VARCHAR	 = NULL,
9
@p_AUTH_STAT	varchar(3)	 = NULL,
10
@p_REASON	nvarchar(500)	 = NULL,
11
@p_IS_LATEST	varchar(1)	 = NULL,
12
@p_REJECTED_BY	varchar(20)	 = NULL,
13
@p_REJECTED_DT	VARCHAR	 = NULL,
14
@p_TYPE VARCHAR(20) =NULL,
15
@p_PROCESS_ID VARCHAR(20),
16
@p_REF_ID INT=NULL
17
AS
18
BEGIN TRANSACTION
19
DECLARE @PARENT_PROCESS_ID VARCHAR(20),@ROLE_ID VARCHAR(20),@ROLE_DES NVARCHAR(200),@ROLE_PARENT_ID VARCHAR(20),@ROLE_DES_PARENT NVARCHAR(200),@COMPLETE BIT
20

    
21
DECLARE @p_CURRENT_PROCESS_ID VARCHAR(20),
22
		@p_PARENT_PROCESS_ID VARCHAR(20), 
23
		@p_PROCESS_NOTES NVARCHAR(MAX)
24

    
25
SET @COMPLETE=0
26
		DECLARE @p_MESSAGE NVARCHAR(1000) = NULL
27
		IF(EXISTS (SELECT * FROM CM_REJECT_LOG WHERE TRN_ID = @p_TRN_ID))
28
		BEGIN
29
			UPDATE CM_REJECT_LOG SET IS_LATEST ='N' WHERE TRN_ID =@p_TRN_ID
30
		END
31
				
32
			-- END PHIEU DE THI THANH TOAN 19-11-2019
33
			--- PHIEU YEU CAU MUA SAM
34
				IF(@p_TRN_TYPE='PL_REQUEST_DOC')
35
				BEGIN	
36
					IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_TRN_ID AND PROCESS_ID='APPROVE'))
37
					BEGIN
38
						SET @p_MESSAGE =N'Trả về thất bại! Tờ trình chủ trương đã được duyệt'
39
						ROLLBACK TRANSACTION
40
						SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
41
						RETURN '0'
42
					END
43
					IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_TRN_ID AND (PROCESS_ID='REJECT' OR AUTH_STATUS ='R')))
44
					BEGIN
45
						SET @p_MESSAGE =N'Trả về thất bại! Tờ trình chủ trương đã được từ chối trước đó. Bạn không được phép thao tác trên tờ trình này nữa'
46
						ROLLBACK TRANSACTION
47
						SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
48
						RETURN '-1'
49
					END
50
					IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_TRN_ID AND PROCESS_ID IN ('TKTGD','TKHDQT')))
51
					BEGIN
52
						IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND TYPE_JOB ='XL' AND TLNAME =@p_REJECTED_BY))
53
						BEGIN
54
							SET @p_MESSAGE =N'Trả về thất bại! Bạn là nhân viên xử lý, bạn không được phép từ chối tờ trình. Vui lòng nhập ý kiến tham vấn và gửi trưởng văn phòng xem xét'
55
							ROLLBACK TRANSACTION
56
							SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
57
							RETURN '-1'	
58
						END
59
					END
60
				--BEGIN
61
				IF(@p_TYPE='CREATE')
62
				BEGIN
63
					UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID='REJECT',AUTH_STATUS='R',
64
          --TC_NOTES = '',KT_NOTES = '', TK_TGD_NOTES = '', TK_HDQT_NOTES = '', TGD_NOTES = '', 
65
          CHECKER_ID = '', APPROVE_DT = NULL, IS_AUTHORITY = 0 WHERE REQ_ID=@p_TRN_ID
66
          DELETE PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID
67
          DELETE PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = @p_TRN_ID
68
          UPDATE PL_REQUEST_COSTCENTER SET NOTES = '' WHERE REQ_ID = @p_TRN_ID
69
--					UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='U',NOTES=N'Tờ trình bị trả về' WHERE PROCESS_ID='APPNEW' AND REQ_ID=@p_TRN_ID
70
--					UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='U' WHERE PROCESS_ID <>'APPNEW' AND REQ_ID=@p_TRN_ID
71
					INSERT INTO dbo.PL_PROCESS
72
					(
73
						REQ_ID,
74
						PROCESS_ID,
75
						CHECKER_ID,
76
						APPROVE_DT,
77
						PROCESS_DESC,
78
						NOTES
79
					)
80
					VALUES
81
					(   @p_TRN_ID,        -- REQ_ID - varchar(15)
82
						'REJECT',        -- PROCESS_ID - varchar(10)
83
						@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
84
						GETDATE(), -- APPROVE_DT - datetime
85
						@p_REASON,
86
						N'Trả về người tạo'
87
							   -- PROCESS_DESC - nvarchar(1000)
88
					)
89
					 SET @p_MESSAGE =N'Phiếu yêu cầu đã được trả về thành công'
90
					 SET @COMPLETE=1
91
					 PRINT @p_MESSAGE
92
				END
93
				ELSE IF(@p_TYPE='NVXL')
94
				BEGIN
95
					IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID =@p_REF_ID AND TYPE_JOB ='XL'))
96
					BEGIN
97
						SET @p_MESSAGE =N'Tờ trình chưa được điều phối cho nhân viên xử lý. Vui lòng trả về người tạo phiếu (nếu cần) hoặc thực hiện điều phối tờ trình'
98
						--SET @COMPLETE=0
99
						ROLLBACK TRANSACTION
100
						SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
101
						RETURN '-1'
102
					END
103
					ELSE IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID =@p_REF_ID AND TYPE_JOB ='XL' AND STATUS_JOB ='C'))
104
					BEGIN
105
						--SET @p_MESSAGE =N'Phiếu đang chờ nhân viên xử lý. Vui lòng đợi nhân viên xử lý & gửi phê duyệt'
106
						--SET @COMPLETE=0
107
						SET @p_MESSAGE =N'Phiếu đang chờ nhân viên xử lý. Vui lòng đợi nhân viên xử lý & gửi phê duyệt'
108
						ROLLBACK TRANSACTION
109
						SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
110
						RETURN '-1'
111
					END
112
					ELSE
113
					BEGIN
114
					UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='U' WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID=@p_REF_ID 
115
					--UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='R' WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID=@p_REF_ID AND TYPE_JOB='XL'	
116
					--LUCTV 28 09 2020 DIEU CHINH LOI TRA VE NHUNG NHAN VIEN XU LY KHONG DUOC PHEP TRA VE TIEP
117
					UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='C' WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID=@p_REF_ID AND TYPE_JOB='XL'	
118
					IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID=@p_REF_ID AND TYPE_JOB='XL'))
119
					BEGIN
120
						UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='C' WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID=@p_REF_ID AND TYPE_JOB ='KS'
121
					END
122
					INSERT INTO dbo.PL_PROCESS
123
					(
124
					REQ_ID,
125
					PROCESS_ID,
126
					CHECKER_ID,
127
					APPROVE_DT,
128
					PROCESS_DESC,
129
					NOTES
130
					)
131
					VALUES
132
					(   @p_TRN_ID,        -- REQ_ID - varchar(15)
133
						'REJECT',        -- PROCESS_ID - varchar(10)
134
						@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
135
						GETDATE(), -- APPROVE_DT - datetime
136
						@p_REASON,
137
						N'Trả về nhân viên xử lý'
138
							   -- PROCESS_DESC - nvarchar(1000)
139
					)
140
					 SET @p_MESSAGE =N'Phiếu yêu cầu đã được trả về thành công'
141
				 		 SET @COMPLETE=1
142
					END
143
				END
144
				ELSE IF(@p_TYPE='PRE_APP')
145
--				BEGIN
146
--					--SET @PARENT_PROCESS_ID =(SELECT TOP 1 PARENT_PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@p_PROCESS_ID AND REQ_ID=@p_TRN_ID)
147
--					--SET @ROLE_ID=(SELECT TOP 1 ROLE_USER FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@p_PROCESS_ID AND REQ_ID=@p_TRN_ID)
148
--					--SET @ROLE_PARENT_ID=(SELECT TOP 1 ROLE_USER FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@PARENT_PROCESS_ID AND REQ_ID=@p_TRN_ID)
149
--					--SET @ROLE_DES=(SELECT ROLE_DESC FROM dbo.TL_SYSROLE WHERE ROLE_ID=@ROLE_ID)
150
--					--SET @ROLE_DES_PARENT=(SELECT ROLE_DESC FROM dbo.TL_SYSROLE WHERE ROLE_ID=@ROLE_PARENT_ID)
151
--					
152
--					--UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=@ROLE_DES + N' đã trả về, chờ ' + @ROLE_DES_PARENT +N' xử lý' WHERE PROCESS_ID=@PARENT_PROCESS_ID AND REQ_ID=@p_TRN_ID
153
--
154
--					--UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='U' WHERE PROCESS_ID=@p_PROCESS_ID AND REQ_ID=@p_TRN_ID
155
--					--UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID=@PARENT_PROCESS_ID WHERE REQ_ID=@p_TRN_ID
156
--					--IF(@PARENT_PROCESS_ID='APPNEW')
157
--					--	UPDATE dbo.PL_REQUEST_DOC SET AUTH_STATUS='U' WHERE REQ_ID=@p_TRN_ID
158
--					--IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID ='DMMS' AND DMMS_ID ='DMMS00000000001'))
159
--					--BEGIN
160
--					--	INSERT INTO dbo.PL_PROCESS
161
--					--	(
162
--					--	REQ_ID,
163
--					--	PROCESS_ID,
164
--					--	CHECKER_ID,
165
--					--	APPROVE_DT,
166
--					--	PROCESS_DESC,
167
--					--	NOTES
168
--					--	)
169
--					--	VALUES
170
--					--	(   @p_TRN_ID,        -- REQ_ID - varchar(15)
171
--					--		'REJECT',        -- PROCESS_ID - varchar(10)
172
--					--		@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
173
--					--		GETDATE(), -- APPROVE_DT - datetime
174
--					--		@p_REASON,N'Trả về ' + @ROLE_DES_PARENT
175
--					--			   -- PROCESS_DESC - nvarchar(1000)
176
--					--	)
177
--					--	DECLARE @PROCESS_ID VARCHAR(15)
178
--					--	SET @PROCESS_ID =(SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID ='DMMS')
179
--					--	DELETE FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID =@p_REF_ID
180
--					--	SET @p_MESSAGE =N'Phiếu yêu cầu đã được trả về thành công'
181
--				 --		SET @COMPLETE=1
182
--					--END
183
--					--ELSE
184
--					--BEGIN
185
--					--	 SET @p_MESSAGE =N'Tạm thời bạn nên trả phiếu về người tạo'
186
--					--	 SET @COMPLETE=0
187
--					-- END
188
--					SET @p_PARENT_PROCESS_ID = (
189
--						SELECT PARENT_PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID AND STATUS = 'C'
190
--					)
191
--					SET @p_CURRENT_PROCESS_ID  = (
192
--						SELECT PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID AND STATUS = 'C'
193
--					)
194
--					
195
--					
196
--					DECLARE @p_TK_TGD_NOTES NVARCHAR(4000), @p_TK_HDQT_NOTES NVARCHAR(4000)
197
--					SET @p_TK_TGD_NOTES = (SELECT TK_TGD_NOTES FROM PL_REQUEST_DOC WHERE REQ_ID = @p_TRN_ID)
198
--					SET @p_TK_HDQT_NOTES = (SELECT TK_HDQT_NOTES FROM PL_REQUEST_DOC WHERE REQ_ID = @p_TRN_ID)
199
--
200
--					IF(@p_PARENT_PROCESS_ID = 'GDK_TT')
201
--					BEGIN
202
--						SET @p_PROCESS_NOTES = N'giám đốc khối'
203
--					END
204
--					ELSE IF(@p_PARENT_PROCESS_ID = 'PTGDK_TT')
205
--					BEGIN
206
--						SET @p_PROCESS_NOTES = N'phó tổng giám đốc khối'
207
--					END
208
--					ELSE IF (@p_PARENT_PROCESS_ID = 'TKTGD')
209
--					BEGIN
210
--						SET @p_PROCESS_NOTES = N'Thư Ký TGĐ'
211
--						SET @p_TK_TGD_NOTES = NULL
212
--					END
213
--					ELSE IF (@p_PARENT_PROCESS_ID = 'TGD')
214
--					BEGIN
215
--						SET @p_PROCESS_NOTES = N'tổng giám đốc'
216
--					END
217
--					ELSE IF (@p_PARENT_PROCESS_ID = 'TKHDQT')
218
--					BEGIN
219
--						SET @p_PROCESS_NOTES = N'Văn Phòng Thư Ký HĐQT'
220
--						SET @p_TK_HDQT_NOTES = NULL
221
--					END
222
--					------------------Update trạng thái hiện tại là bước xử lý trước đó-------
223
--					UPDATE PL_REQUEST_PROCESS SET STATUS = 'U'
224
--					WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = @p_CURRENT_PROCESS_ID
225
--					
226
--					UPDATE PL_REQUEST_PROCESS SET
227
--						STATUS = 'C',
228
--						CHECKER_ID = '',
229
--						APPROVE_DT = NULL,
230
--						NOTES = N'Chờ ' + @p_PROCESS_NOTES + N' xác nhận'
231
--					WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = @p_PARENT_PROCESS_ID
232
--					
233
--					UPDATE PL_REQUEST_DOC SET 
234
--						PROCESS_ID = @p_PARENT_PROCESS_ID, 
235
--						TK_TGD_NOTES = @p_TK_TGD_NOTES,
236
--						TK_HDQT_NOTES = @p_TK_HDQT_NOTES
237
--					WHERE REQ_ID = @p_TRN_ID
238
--					
239
--					INSERT INTO dbo.PL_PROCESS
240
--						(
241
--						REQ_ID,
242
--						PROCESS_ID,
243
--						CHECKER_ID,
244
--						APPROVE_DT,
245
--						PROCESS_DESC,
246
--						NOTES
247
--						)
248
--						VALUES
249
--						(   @p_TRN_ID,        -- REQ_ID - varchar(15)
250
--							'REJECT',        -- PROCESS_ID - varchar(10)
251
--							@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
252
--							GETDATE(), -- APPROVE_DT - datetime
253
--							@p_REASON,	-- PROCESS_DESC - nvarchar(1000)
254
--							N'Trả về ' + @p_PROCESS_NOTES -- NOTES - nvarchar(1000)
255
--								   
256
--						)
257
--					SET @p_MESSAGE =N'Tờ trình đã được trả về thành công'
258
--					SET @COMPLETE=1
259
--				END
260
        BEGIN
261
					--SET @PARENT_PROCESS_ID =(SELECT TOP 1 PARENT_PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@p_PROCESS_ID AND REQ_ID=@p_TRN_ID)
262
					--SET @ROLE_ID=(SELECT TOP 1 ROLE_USER FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@p_PROCESS_ID AND REQ_ID=@p_TRN_ID)
263
					--SET @ROLE_PARENT_ID=(SELECT TOP 1 ROLE_USER FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@PARENT_PROCESS_ID AND REQ_ID=@p_TRN_ID)
264
					--SET @ROLE_DES=(SELECT ROLE_DESC FROM dbo.TL_SYSROLE WHERE ROLE_ID=@ROLE_ID)
265
					--SET @ROLE_DES_PARENT=(SELECT ROLE_DESC FROM dbo.TL_SYSROLE WHERE ROLE_ID=@ROLE_PARENT_ID)
266
					
267
					--UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=@ROLE_DES + N' đã trả về, chờ ' + @ROLE_DES_PARENT +N' xử lý' WHERE PROCESS_ID=@PARENT_PROCESS_ID AND REQ_ID=@p_TRN_ID
268

    
269
					--UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='U' WHERE PROCESS_ID=@p_PROCESS_ID AND REQ_ID=@p_TRN_ID
270
					--UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID=@PARENT_PROCESS_ID WHERE REQ_ID=@p_TRN_ID
271
					--IF(@PARENT_PROCESS_ID='APPNEW')
272
					--	UPDATE dbo.PL_REQUEST_DOC SET AUTH_STATUS='U' WHERE REQ_ID=@p_TRN_ID
273
					IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID ='DMMS' AND DMMS_ID ='DMMS00000000001'))
274
					BEGIN
275
						INSERT INTO dbo.PL_PROCESS
276
						(
277
						REQ_ID,
278
						PROCESS_ID,
279
						CHECKER_ID,
280
						APPROVE_DT,
281
						PROCESS_DESC,
282
						NOTES
283
						)
284
						VALUES
285
						(   @p_TRN_ID,        -- REQ_ID - varchar(15)
286
							'REJECT',        -- PROCESS_ID - varchar(10)
287
							@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
288
							GETDATE(), -- APPROVE_DT - datetime
289
							@p_REASON,
290
              N'Trả về ' + @ROLE_DES_PARENT		   -- PROCESS_DESC - nvarchar(1000)
291
						)
292
						DECLARE @PROCESS_ID VARCHAR(15)
293
						SET @PROCESS_ID =(SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID ='DMMS')
294
						DELETE FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID =@p_REF_ID
295
						SET @p_MESSAGE =N'Phiếu yêu cầu đã được trả về thành công'
296
				 		SET @COMPLETE=1
297
					END
298
					ELSE
299
					BEGIN
300
						 SET @p_MESSAGE =N'Tạm thời bạn nên trả phiếu về người tạo'
301
						 SET @COMPLETE=0
302
					 END
303
				END
304
			END
305
			ELSE IF(@p_TRN_TYPE='TR_REQUEST_DOC')
306
			BEGIN
307
			--IF(@p_STAGE='DVMS')
308
			--BEGIN
309
			--END
310
		
311
				IF(EXISTS(SELECT * FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_TRN_ID AND PROCESS_ID='APPROVE'))
312
				BEGIN
313
					SET @p_MESSAGE =N'Trả về thất bại! Phiếu yêu cầu đã được duyệt'
314
					ROLLBACK TRANSACTION
315
					SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
316
					RETURN '-1'
317
				END
318
				ELSE
319
				BEGIN
320
				DECLARE @p_TR_REQ_CODE VARCHAR(50) = (
321
					SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID = @p_TRN_ID
322
				)
323
				---------------Trả về người tạo-------------
324
				IF(@p_TYPE='CREATE')
325
				BEGIN
326
					---------------Thông báo lỗi nếu PYCMS đã được trả về người tạo-------------------
327
					IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'REJECT' AND AUTH_STATUS = 'R'))
328
					BEGIN
329
						SET @p_MESSAGE =N'Trả về thất bại! Phiếu yêu cầu đã được trả về người tạo trước đó'
330
						ROLLBACK TRANSACTION
331
						SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
332
						RETURN '-1'
333
					END
334
					ELSE
335
					BEGIN
336
					UPDATE dbo.TR_REQUEST_DOC SET 
337
						PROCESS_ID='REJECT',
338
						AUTH_STATUS='R', 
339
						USER_DVMS = NULL,
340
						CHECKER_ID = NULL,
341
						APPROVE_DT = NULL
342
					WHERE REQ_ID=@p_TRN_ID
343
					UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='APPNEW' AND REQ_ID=@p_TRN_ID
344
					UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='U' WHERE PROCESS_ID <>'APPNEW' AND REQ_ID=@p_TRN_ID
345
					INSERT INTO dbo.PL_PROCESS
346
					(
347
					REQ_ID,
348
					PROCESS_ID,
349
					CHECKER_ID,
350
					APPROVE_DT,
351
					PROCESS_DESC,
352
					NOTES
353
					)
354
					VALUES
355
					(   @p_TRN_ID,        -- REQ_ID - varchar(15)
356
						'REJECT',        -- PROCESS_ID - varchar(10)
357
						@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
358
						GETDATE(), -- APPROVE_DT - datetime
359
						@p_REASON,N'Trả về người tạo'
360
							   -- PROCESS_DESC - nvarchar(1000)
361
					)
362
					SET @COMPLETE=1
363
					SET @p_MESSAGE =N'Phiếu yêu cầu đã được trả về thành công'
364
					END
365
				END
366
				---------Trả về nhân viên xử lý--------------------
367
				ELSE IF(@p_TYPE='NVXL')
368
				BEGIN
369
					---------------Thông báo lỗi nếu PYCMS đã được trả về nhân viên xử lý-------------------
370
					IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = @p_REF_ID AND TYPE_JOB = 'XL' AND STATUS_JOB = 'C'))
371
					BEGIN
372
						SET @p_MESSAGE =N'Trả về thất bại! Phiếu yêu cầu đã được trả về nhân viên xử lý trước đó'
373
						ROLLBACK TRANSACTION
374
						SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
375
						RETURN '-1'
376
					END
377
					ELSE
378
					BEGIN
379
					UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='U' WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID=@p_REF_ID 
380
					--UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='R' WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID=@p_REF_ID AND TYPE_JOB='XL'
381
					--LUCTV 28 09 2020 DIEU CHINH LOI TRA VE NHUNG NHAN VIEN XU LY KHONG DUOC PHEP TRA VE TIEP
382
					--KIEM TRA NGUOI DIEU PHOI - NEU LA TP - TRA VE CHO NHAN VIEN XU LY THI SE TRA VE CHO
383
					UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='C' WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID=@p_REF_ID AND TYPE_JOB='XL'
384
					IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID=@p_REF_ID AND TYPE_JOB='XL'))
385
					BEGIN
386
						UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='C' WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID=@p_REF_ID AND TYPE_JOB ='KS'
387
					END
388
					INSERT INTO dbo.PL_PROCESS
389
					(
390
					REQ_ID,
391
					PROCESS_ID,
392
					CHECKER_ID,
393
					APPROVE_DT,
394
					PROCESS_DESC,
395
					NOTES
396
					)
397
					VALUES
398
					(   @p_TRN_ID,        -- REQ_ID - varchar(15)
399
						'REJECT',        -- PROCESS_ID - varchar(10)
400
						@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
401
						GETDATE(), -- APPROVE_DT - datetime
402
						@p_REASON,N'Trả về nhân viên xử lý'
403
							   -- PROCESS_DESC - nvarchar(1000)
404
					)
405
					SET @COMPLETE=1
406
					SET @p_MESSAGE =N'Phiếu yêu cầu đã được trả về thành công'
407
					END
408
				END
409
				ELSE IF(@p_TYPE='PRE_APP')
410
				BEGIN
411
					--SET @PARENT_PROCESS_ID =(SELECT TOP 1 PARENT_PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@p_PROCESS_ID AND REQ_ID=@p_TRN_ID)
412
					--SET @ROLE_ID=(SELECT TOP 1 ROLE_USER FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@p_PROCESS_ID AND REQ_ID=@p_TRN_ID)
413
					--SET @ROLE_PARENT_ID=(SELECT TOP 1 ROLE_USER FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@PARENT_PROCESS_ID AND REQ_ID=@p_TRN_ID)
414
					--SET @ROLE_DES=(SELECT ROLE_DESC FROM dbo.TL_SYSROLE WHERE ROLE_ID=@ROLE_ID)
415
					--SET @ROLE_DES_PARENT=(SELECT ROLE_DESC FROM dbo.TL_SYSROLE WHERE ROLE_ID=@ROLE_PARENT_ID)
416
					
417
					--UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=@ROLE_DES + N' đã trả về, chờ ' + @ROLE_DES_PARENT +N' xử lý' WHERE PROCESS_ID=@PARENT_PROCESS_ID AND REQ_ID=@p_TRN_ID
418
					--IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_TRN_ID AND PROCESS_ID=@PARENT_PROCESS_ID AND IS_HAS_CHILD=1))
419
					--BEGIN
420
					--	UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='R' WHERE REQ_ID=@p_TRN_ID AND PROCESS_ID IN (SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_TRN_ID AND PROCESS_ID=@PARENT_PROCESS_ID AND IS_HAS_CHILD=1) AND LEVEL_JOB=1
421
					--END
422
					
423
					--IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE  REQ_ID =@p_TRN_ID AND PROCESS_ID='DVCM'))
424
					--BEGIN
425
					--		UPDATE dbo.TR_REQUEST_COSTCENTER SET AUTH_STATUS='R' WHERE REQ_ID=@p_TRN_ID
426
					--END
427
					
428
					--UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='U' WHERE PROCESS_ID=@p_PROCESS_ID AND REQ_ID=@p_TRN_ID
429
					--UPDATE dbo.TR_REQUEST_DOC SET PROCESS_ID=@PARENT_PROCESS_ID WHERE REQ_ID=@p_TRN_ID
430
					--IF(@PARENT_PROCESS_ID='APPNEW')
431
					--	UPDATE dbo.TR_REQUEST_DOC SET AUTH_STATUS='U' WHERE REQ_ID=@p_TRN_ID
432

    
433

    
434
					--INSERT INTO dbo.PL_PROCESS
435
					--(
436
					--REQ_ID,
437
					--PROCESS_ID,
438
					--CHECKER_ID,
439
					--APPROVE_DT,
440
					--PROCESS_DESC,NOTES
441
					--)
442
					--VALUES
443
					--(   @p_TRN_ID,        -- REQ_ID - varchar(15)
444
					--	'REJECT',        -- PROCESS_ID - varchar(10)
445
					--	@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
446
					--	GETDATE(), -- APPROVE_DT - datetime
447
					--	@p_REASON,N'Trả về ' + @ROLE_DES_PARENT
448
					--	       -- PROCESS_DESC - nvarchar(1000)
449
					--)
450
					IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID ='DMMS' AND DMMS_ID ='DMMS00000000001'))
451
					BEGIN
452
						INSERT INTO dbo.PL_PROCESS
453
						(
454
						REQ_ID,
455
						PROCESS_ID,
456
						CHECKER_ID,
457
						APPROVE_DT,
458
						PROCESS_DESC,
459
						NOTES
460
						)
461
						VALUES
462
						(   @p_TRN_ID,        -- REQ_ID - varchar(15)
463
							'REJECT',        -- PROCESS_ID - varchar(10)
464
							@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
465
							GETDATE(), -- APPROVE_DT - datetime
466
							@p_REASON,N'Trả về ' + @ROLE_DES_PARENT
467
								   -- PROCESS_DESC - nvarchar(1000)
468
						)
469
						DECLARE @PROCESS_ID_DMMS INT
470
						SET @PROCESS_ID_DMMS =(SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID ='DMMS')
471
						DELETE FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID =@p_REF_ID
472
						SET @p_MESSAGE =N'Phiếu yêu cầu đã được trả về cấp duyệt trước đó thành công'
473
				 		SET @COMPLETE=1
474
					END
475
					ELSE
476
					BEGIN
477
						SET @p_MESSAGE =N'Tạm thời bạn nên trả phiếu về người tạo'
478
							 SET @COMPLETE=0
479
					END
480
				END
481
				----------------BAODNQ 13/6/2022: THÊM XỬ LÝ TRẢ VỀ ĐMMS-----------
482
				ELSE IF (@p_TYPE = 'RE_DMMS')
483
				BEGIN
484
					--------------Thông báo lỗi nếu PYCMS đã được trả về đầu mối mua sắm-------------------
485
					IF(EXISTS (SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'DMMS' AND STATUS = 'C'))
486
					BEGIN
487
						SET @p_MESSAGE =N'Trả về thất bại! Phiếu yêu cầu đã được trả về đầu mối mua sắm trước đó'
488
						ROLLBACK TRANSACTION
489
						SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
490
						RETURN '-1'
491
					END
492
					ELSE
493
					BEGIN
494
					---------------CẬP NHẬT LẠI BƯỚC XỬ LÝ HIỆN TẠI LÀ ĐMMS--------
495
					UPDATE PL_REQUEST_PROCESS SET STATUS = 'U' 
496
						WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID <> 'APPNEW'
497
					UPDATE PL_REQUEST_PROCESS SET 
498
						STATUS = 'C', 
499
						NOTES = N'Chờ đầu mối mua sắm xử lý',
500
						CHECKER_ID = '', APPROVE_DT = NULL
501
						WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'DMMS'
502
					UPDATE TR_REQUEST_DOC SET  PROCESS_ID = 'DMMS'
503
						WHERE REQ_ID = @p_TRN_ID
504

    
505
					DECLARE @p_DMMS_ID_PROCESS INT = (
506
						SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'DMMS' AND STATUS = 'C'
507
					)
508
					-------------XÓA LỊCH SỬ ĐIỀU PHỐI ĐỂ ĐMMS ĐIỀU PHỐI LẠI----------
509
					DELETE FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = @p_DMMS_ID_PROCESS
510
					-------------XÓA LỊCH SỬ ĐIỀU PHỐI CỦA DVCM--------------
511
					DECLARE @t_DVCM TABLE (PROCESS_ID INT)
512
					INSERT INTO @t_DVCM 
513
						SELECT ID FROM PL_REQUEST_PROCESS 
514
						WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'DVCM'
515
					DELETE FROM PL_REQUEST_PROCESS_CHILD 
516
						WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID IN (SELECT PROCESS_ID FROM @t_DVCM)
517
					------------XÓA LỊCH SỬ XỬ LÝ CÓ STATUS = 'U'---------
518
					DELETE FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID AND STATUS = 'U'
519

    
520
					IF(EXISTS (SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID AND DVDM_ID = 'DM0000000000006' AND ROLE_USER = 'KSV'))
521
					BEGIN
522
						DELETE FROM TR_REQUEST_COSTCENTER WHERE REQ_ID = @p_TRN_ID AND COST_ID = 'DM0000000000006'
523
					END
524

    
525
					-----------CẬP NHẬT LẠI DVCM LÀ CHƯA XÁC NHẬN-------------
526
					UPDATE TR_REQUEST_COSTCENTER SET
527
						AUTH_STATUS = 'U',
528
						APPROVE_DT = NULL,
529
						CHECKER_ID = NULL,
530
						NOTES = NULL
531
					WHERE REQ_ID = @p_TRN_ID
532

    
533
					INSERT INTO dbo.PL_PROCESS
534
					(
535
						REQ_ID,
536
						PROCESS_ID,
537
						CHECKER_ID,
538
						APPROVE_DT,
539
						PROCESS_DESC,
540
						NOTES
541
					)
542
					VALUES
543
					(   @p_TRN_ID,        -- REQ_ID - varchar(15)
544
						'REJECT',        -- PROCESS_ID - varchar(10)
545
						@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
546
						GETDATE(), -- APPROVE_DT - datetime
547
						@p_REASON,	-- PROCESS_DESC - nvarchar(1000)
548
						N'Trả về trưởng đơn vị ở đầu mối mua sắm' --NOTES
549
					)
550

    
551
					SET @COMPLETE=1
552
					SET @p_MESSAGE = N'Phiếu yêu cầu mua sắm số: ' +@p_TR_REQ_CODE+ 
553
						N' đã được trả về đầu mối mua sắm thành công'
554
					END
555
				END
556

    
557
				-----------------XỬ LÝ TRẢ VỀ CHO DVCM---------------
558
				ELSE IF (@p_TYPE = 'RE_DVCM')
559
				BEGIN
560
					--------------Thông báo lỗi nếu PYCMS đã được trả về DVCM-------------------
561
					IF(EXISTS (SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'DVCM' AND STATUS = 'C'))
562
					BEGIN
563
						SET @p_MESSAGE =N'Trả về thất bại! Phiếu yêu cầu đã được trả về đơn vị chuyên môn trước đó'
564
						ROLLBACK TRANSACTION
565
						SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
566
						RETURN '-1'
567
					END
568
					----------------CẬP NHẬT LẠI BƯỚC XỬ LÝ HIỆN TẠI LÀ DVCM--------
569
					UPDATE PL_REQUEST_PROCESS SET 
570
						STATUS = 'U', 
571
						CHECKER_ID = '', APPROVE_DT = NULL
572
					WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID <> 'APPNEW' AND PROCESS_ID <> 'DMMS'
573
					UPDATE PL_REQUEST_PROCESS SET 
574
						STATUS = 'C',
575
						NOTES = N'Chờ đơn vị chuyên môn xác nhận',
576
						CHECKER_ID = '', APPROVE_DT = NULL
577
						WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'DVCM'
578
					UPDATE TR_REQUEST_DOC SET PROCESS_ID = 'DVCM'
579
						WHERE REQ_ID = @p_TRN_ID
580
	
581
					DECLARE @t_DVCM_ID_PROCESS TABLE (PROCESS_ID INT)
582
					INSERT INTO @t_DVCM_ID_PROCESS 
583
						SELECT ID FROM PL_REQUEST_PROCESS 
584
						WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'DVCM' AND STATUS = 'C'
585
					----------------XÓA LỊCH SỬ ĐIỀU PHỐI ĐỂ DVCM ĐIỀU PHỐI LẠI-----------
586
					DELETE FROM PL_REQUEST_PROCESS_CHILD 
587
						WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID IN (SELECT PROCESS_ID FROM @t_DVCM_ID_PROCESS)
588
					-----------CẬP NHẬT LẠI DVCM LÀ CHƯA XÁC NHẬN-------------
589
					-----------Nếu DVCM trùng vs DMMS thì giữ nguyên-----------
590
					DECLARE @p_DVDM_DMMS_ID VARCHAR(15) = (
591
						SELECT CDV.DVDM_ID
592
						FROM CM_DMMS CD
593
						LEFT JOIN PL_COSTCENTER_DT PCD ON CD.BRANCH_ID = PCD.BRANCH_ID AND CD.DEP_ID = PCD.DEP_ID
594
						LEFT JOIN PL_COSTCENTER PC ON PCD.COST_ID = PC.COST_ID
595
						LEFT JOIN CM_DVDM CDV ON PC.DVDM_ID = CDV.DVDM_ID
596
						WHERE CD.DMMS_ID = (SELECT DVDM_ID FROM PL_REQUEST_PROCESS WHERE PROCESS_ID = 'DMMS' AND REQ_ID = @p_TRN_ID)
597
						AND CDV.IS_DVCM = 1
598
					)
599

    
600
					UPDATE TR_REQUEST_COSTCENTER SET
601
						AUTH_STATUS = 'U',
602
						APPROVE_DT = NULL,
603
						CHECKER_ID = NULL,
604
						NOTES = NULL
605
					WHERE REQ_ID = @p_TRN_ID AND COST_ID <> @p_DVDM_DMMS_ID
606

    
607
					INSERT INTO dbo.PL_PROCESS
608
					(
609
						REQ_ID,
610
						PROCESS_ID,
611
						CHECKER_ID,
612
						APPROVE_DT,
613
						PROCESS_DESC,
614
						NOTES
615
					)
616
					VALUES
617
					(   @p_TRN_ID,        -- REQ_ID - varchar(15)
618
						'REJECT',        -- PROCESS_ID - varchar(10)
619
						@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
620
						GETDATE(), -- APPROVE_DT - datetime
621
						@p_REASON,	-- PROCESS_DESC - nvarchar(1000)
622
						N'Trả về trưởng đơn vị ở đơn vị chuyên môn' --NOTES
623
					)
624

    
625
					SET @COMPLETE=1
626
					SET @p_MESSAGE =N'Phiếu yêu cầu mua sắm số: ' +@p_TR_REQ_CODE+ 
627
						N' đã được trả về đơn vị chuyên môn thành công'
628
				END
629
				----------BAODNQ 21/10/2022 : Thêm xử lý KSV ĐMMS trả về cho trưởng đơn vị ĐMMS-------
630
				ELSE IF(@p_TYPE = 'RE_GDDV_DMMS')
631
				BEGIN
632
					
633
					DECLARE @p_PROCESS_CHILD_PROCESS_ID VARCHAR(20) =(
634
						SELECT TOP 1 ID FROM PL_REQUEST_PROCESS 
635
						WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'DMMS' AND STATUS = 'C'
636
					)
637

    
638
					IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'DMMS' AND STATUS = 'C'))
639
					BEGIN
640
						SET @p_MESSAGE =N'Thao tác này chỉ được thực hiện ở đầu mối mua sắm'
641
						ROLLBACK TRANSACTION
642
						SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
643
						RETURN '-1'
644
					END
645
					IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = @p_PROCESS_CHILD_PROCESS_ID))
646
					BEGIN
647
						SET @p_MESSAGE =N'Chuyển phiếu thất bại! Phiếu đã ở trưởng đơn vị chờ điều phối'
648
						ROLLBACK TRANSACTION
649
						SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
650
						RETURN '-1'
651
					END
652

    
653
					---------------Xóa điều phối ở ĐMMS--------------
654
					DELETE FROM PL_REQUEST_PROCESS_CHILD 
655
					WHERE REQ_ID = @p_TRN_ID 
656
					AND PROCESS_ID = @p_PROCESS_CHILD_PROCESS_ID
657

    
658
					INSERT INTO dbo.PL_PROCESS
659
					(
660
						REQ_ID,
661
						PROCESS_ID,
662
						CHECKER_ID,
663
						APPROVE_DT,
664
						PROCESS_DESC,
665
						NOTES
666
					)
667
					VALUES
668
					(   @p_TRN_ID,        -- REQ_ID - varchar(15)
669
						'REJECT',        -- PROCESS_ID - varchar(10)
670
						@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
671
						GETDATE(), -- APPROVE_DT - datetime
672
						@p_REASON,	-- PROCESS_DESC - nvarchar(1000)
673
						N'Chuyển phiếu cho trưởng đơn vị ở đầu mối mua sắm' --NOTES
674
					)
675

    
676
					SET @COMPLETE=1
677
					SET @p_MESSAGE =N'Phiếu yêu cầu mua sắm số: ' +@p_TR_REQ_CODE+ 
678
						N' đã được chuyển cho trưởng đơn vị đầu mối mua sắm thành công'
679
				END
680
				---------------------------END BAODNQ 21/10/2022--------------------
681
				-------------------------BAODNQ 19/8/2022 : Thêm xử lý trả về TKTGD--------
682
				ELSE IF(@p_TYPE = 'RE_TKTGD')
683
				BEGIN
684
					--------------Thông báo lỗi nếu PYCMS đã được trả về TKTGD-------------------
685
					IF(EXISTS (SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'TKTGD_CDT' AND STATUS = 'C'))
686
					BEGIN
687
						SET @p_MESSAGE =N'Trả về thất bại! Phiếu yêu cầu đã được trả về thư ký tổng giám đốc trước đó'
688
						ROLLBACK TRANSACTION
689
						SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
690
						RETURN '-1'
691
					END
692
					------------------Update bước hiện tại thành TKTGD--------------
693
					SET @p_CURRENT_PROCESS_ID = (
694
						SELECT PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID AND STATUS = 'C'
695
					)
696
					SET @p_PARENT_PROCESS_ID = (
697
						SELECT PARENT_PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID AND STATUS = 'C'
698
					)
699

    
700
					UPDATE PL_REQUEST_PROCESS SET 
701
						STATUS = 'U'
702
					WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = @p_CURRENT_PROCESS_ID
703

    
704
					UPDATE PL_REQUEST_PROCESS SET
705
						STATUS = 'C', 
706
						CHECKER_ID = NULL, 
707
						APPROVE_DT = NULL,
708
						NOTES = N'Chờ Thư ký Tổng Giám đốc phê duyệt'
709
					WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = @p_PARENT_PROCESS_ID
710

    
711
					UPDATE TR_REQUEST_DOC SET
712
						PROCESS_ID = @p_PARENT_PROCESS_ID
713
					WHERE REQ_ID = @p_TRN_ID
714

    
715
					INSERT INTO dbo.PL_PROCESS
716
						(
717
						REQ_ID,
718
						PROCESS_ID,
719
						CHECKER_ID,
720
						APPROVE_DT,
721
						PROCESS_DESC,
722
						NOTES
723
						)
724
						VALUES
725
						(   @p_TRN_ID,        -- REQ_ID - varchar(15)
726
							'REJECT',        -- PROCESS_ID - varchar(10)
727
							@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
728
							GETDATE(), -- APPROVE_DT - datetime
729
							@p_REASON,	-- PROCESS_DESC - nvarchar(1000)
730
							N'Trả về Thư ký Tổng giám đốc' -- NOTES - nvarchar(1000)
731
								   
732
						)
733
					SET @p_MESSAGE =N'Phiếu yêu cầu mua sắm số: ' +@p_TR_REQ_CODE+ 
734
						N' đã được trả về thư ký Tổng giám đốc thành công'
735
					SET @COMPLETE=1
736
				END
737

    
738
				END
739
			
740
		END
741

    
742
		---------------BAODNQ 6/6/2022 THÊM TRẢ VỀ CHO TỜ TRÌNH CHỈ ĐỊNH THẦU--------
743
		ELSE IF (@p_TRN_TYPE = 'PL_APPOINT_CONTRACTOR')
744
		BEGIN
745
			IF(EXISTS (SELECT * FROM PL_APPOINT_CONTRACTOR WHERE REQ_ID = @p_TRN_ID AND AUTH_STATUS = 'A' AND PROCESS_ID = 'APPROVE'))
746
			BEGIN
747
				SET @p_MESSAGE = N'Trả về thất bại. Tờ trình chỉ định thầu đã được duyệt'
748
				ROLLBACK TRANSACTION
749
				SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
750
				RETURN '-1'
751
			END
752
			IF (EXISTS (SELECT * FROM PL_APPOINT_CONTRACTOR WHERE REQ_ID = @p_TRN_ID AND AUTH_STATUS = 'R' AND PROCESS_ID = 'REJECT'))
753
			BEGIN
754
				SET @p_MESSAGE = N'Trả về thất bại. Tờ trình chỉ định thầu đã được trả về trước đó'
755
				ROLLBACK TRANSACTION
756
				SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
757
				RETURN '-1'
758
			END
759
			
760
			IF(@p_TYPE = 'CREATE')
761
			BEGIN
762
				UPDATE PL_APPOINT_CONTRACTOR SET 
763
					AUTH_STATUS = 'R', 
764
					PROCESS_ID = 'REJECT',
765
					CHECKER_ID = NULL,
766
					APPROVE_DT = NULL
767
				WHERE REQ_ID = @p_TRN_ID
768
				UPDATE PL_REQUEST_PROCESS SET 
769
					STATUS = 'R',
770
					NOTES = N'Phiếu bị trả về'
771
				WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'APPNEW'
772
				UPDATE PL_REQUEST_PROCESS SET
773
					STATUS = 'U'
774
				WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID <> 'APPNEW'
775

    
776
				INSERT INTO dbo.PL_PROCESS
777
				(
778
					REQ_ID,
779
					PROCESS_ID,
780
					CHECKER_ID,
781
					APPROVE_DT,
782
					PROCESS_DESC,
783
					NOTES
784
				)
785
				VALUES
786
				(   @p_TRN_ID,        -- REQ_ID - varchar(15)
787
					'REJECT',        -- PROCESS_ID - varchar(10)
788
					@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
789
					GETDATE(), -- APPROVE_DT - datetime
790
					@p_REASON,  -- PROCESS_DESC - nvarchar(1000)
791
					N'Trả về người tạo'   --NOTES     
792
				)
793
				SET @COMPLETE = 1
794
				SET @p_MESSAGE =N'Tờ trình chỉ định thầu đã được trả về thành công'
795
			END
796
		END
797
		------------------END BAODNQ 6/6/2022-------------------
798
		
799
		------------------------Đánh giá NCC--------------------
800
		ELSE IF(@p_TRN_TYPE = 'TR_RATE_SUPPLIER')
801
		BEGIN
802
			IF(EXISTS (SELECT * FROM TR_RATE_SUPPLIER_MASTER WHERE RATE_ID = @p_TRN_ID AND AUTH_STATUS = 'A' AND PROCESS_STATUS = 'APPROVE'))
803
			BEGIN
804
				SET @p_MESSAGE = N'Trả về thất bại. Phiếu đánh giá NCC đã được duyệt'
805
				ROLLBACK TRANSACTION
806
				SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
807
				RETURN '-1'
808
			END
809
			IF (EXISTS (SELECT * FROM TR_RATE_SUPPLIER_MASTER WHERE RATE_ID = @p_TRN_ID AND AUTH_STATUS = 'R' AND PROCESS_STATUS = 'REJECT'))
810
			BEGIN
811
				SET @p_MESSAGE = N'Trả về thất bại. Phiếu đánh giá NCC đã được trả về trước đó'
812
				ROLLBACK TRANSACTION
813
				SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
814
				RETURN '-1'
815
			END
816

    
817
			DECLARE @p_RATE_REQ_NO VARCHAR(100) = (
818
				SELECT RATE_REQ_NO FROM TR_RATE_SUPPLIER_MASTER WHERE RATE_ID = @p_TRN_ID
819
			)
820

    
821
			--------------------TRẢ VỀ NG TẠO--------------
822
			IF(@p_TYPE = 'CREATE')
823
			BEGIN
824
				UPDATE TR_RATE_SUPPLIER_MASTER SET 
825
					AUTH_STATUS = 'R', 
826
					PROCESS_STATUS = 'REJECT',
827
					CHECKER_ID = NULL,
828
					APPROVE_DT = NULL,
829
					IS_SEND_APPR = 'N',
830
					DMMS_NOTES = NULL
831
				WHERE RATE_ID = @p_TRN_ID
832
				UPDATE PL_REQUEST_PROCESS SET 
833
					STATUS = 'R',
834
					NOTES = N'Phiếu bị trả về'
835
				WHERE REQ_ID = @p_TRN_ID AND (PROCESS_ID = 'APPNEW' OR PROCESS_ID = 'SIGN')
836
				UPDATE PL_REQUEST_PROCESS SET
837
					STATUS = 'U'
838
				WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID NOT IN ('APPNEW', 'SIGN')
839

    
840
				INSERT INTO dbo.PL_PROCESS
841
				(
842
					REQ_ID,
843
					PROCESS_ID,
844
					CHECKER_ID,
845
					APPROVE_DT,
846
					PROCESS_DESC,
847
					NOTES
848
				)
849
				VALUES
850
				(   @p_TRN_ID,        -- REQ_ID - varchar(15)
851
					'REJECT',        -- PROCESS_ID - varchar(10)
852
					@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
853
					GETDATE(), -- APPROVE_DT - datetime
854
					@p_REASON,  -- PROCESS_DESC - nvarchar(1000)
855
					N'Trả về người tạo'   --NOTES     
856
				)
857
				SET @COMPLETE = 1
858
				SET @p_MESSAGE =N'Phiếu đánh giá NCC số: ' +@p_RATE_REQ_NO+ 
859
					N' đã được trả về người tạo thành công'
860
			END
861
			-------------TRẢ VỀ NVXL-------------------
862
			ELSE IF(@p_TYPE='NVXL')
863
			BEGIN
864

    
865
				IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = @p_REF_ID AND TYPE_JOB = 'XL'))
866
				BEGIN
867
					SET @p_MESSAGE = N'Không thể trả phiếu về nhân viên xử lý vì phiếu đánh giá NCC số: '
868
						+@p_RATE_REQ_NO+ N' không có điều phối cho nhân viên xử lý'
869
					ROLLBACK TRANSACTION
870
					SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
871
					RETURN '-1'
872
				END
873

    
874
				UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='U' 
875
					WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID=@p_REF_ID
876

    
877
				UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='C' 
878
					WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID=@p_REF_ID AND TYPE_JOB='XL'
879
				IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID=@p_REF_ID AND TYPE_JOB='XL'))
880
				BEGIN
881
					UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='C' 
882
						WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID=@p_REF_ID AND TYPE_JOB ='KS'
883
				END
884
				UPDATE TR_RATE_SUPPLIER_MASTER SET DMMS_NOTES = NULL WHERE RATE_ID = @p_TRN_ID
885
				INSERT INTO dbo.PL_PROCESS
886
				(
887
					REQ_ID,
888
					PROCESS_ID,
889
					CHECKER_ID,
890
					APPROVE_DT,
891
					PROCESS_DESC,
892
					NOTES
893
				)
894
				VALUES
895
				(   @p_TRN_ID,        -- REQ_ID - varchar(15)
896
					'REJECT',        -- PROCESS_ID - varchar(10)
897
					@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
898
					GETDATE(), -- APPROVE_DT - datetime
899
					@p_REASON,
900
					N'Trả về nhân viên xử lý' -- PROCESS_DESC - nvarchar(1000)      
901
				)
902

    
903
				SET @COMPLETE=1
904
				SET @p_MESSAGE =N'Phiếu đánh giá NCC số: ' +@p_RATE_REQ_NO+ 
905
					N' đã được trả về nhân viên xử lý thành công'
906
			END
907
		END
908

    
909
		-- END IF
910
		ELSE
911
		BEGIN
912
			SET @p_MESSAGE =N'Trả về giao dịch thành công'
913
		END
914

    
915
		--- INSERT VAO BANG CM_REJECT_LOG
916
		IF(@COMPLETE=1)
917
		BEGIN
918
		EXEC SYS_CodeMasters_Gen 'CM_REJECT_LOG', @p_LOG_ID out
919
		IF @p_LOG_ID='' OR @p_LOG_ID IS NULL GOTO ABORT
920
		INSERT INTO [dbo].[CM_REJECT_LOG] VALUES (@p_LOG_ID,@p_STAGE,@p_TRN_ID,@p_TRN_TYPE,CONVERT(DATETIME,GETDATE(),103),'R',@p_REASON,@p_IS_LATEST,@p_REJECTED_BY,CONVERT(DATETIME,GETDATE(),103))
921
		IF @@Error <> 0 GOTO ABORT
922
		END
923
COMMIT TRANSACTION
924

    
925
SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
926
RETURN '0'
927
ABORT:
928
BEGIN
929

    
930
		ROLLBACK TRANSACTION
931
		SELECT '-1' as Result, '' LOG_ID, '' ErrorDesc
932
		RETURN '-1'
933
END