Project

General

Profile

CM_REJECT_LOG_ByType_Ins.txt

Luc Tran Van, 04/25/2023 01:37 PM

 
1
ALTER PROC [dbo].[CM_REJECT_LOG_ByType_Ins]
2
@p_LOG_ID	varchar(15)	= NULL,
3
@p_STAGE	varchar(5)	 = NULL,
4
@p_TRN_ID	varchar(15)	 = NULL,
5
@p_TRN_TYPE	nvarchar(100)	 = NULL,
6
@p_LOG_DT	VARCHAR	 = NULL,
7
@p_AUTH_STAT	varchar(3)	 = NULL,
8
@p_REASON	nvarchar(500)	 = NULL,
9
@p_IS_LATEST	varchar(1)	 = NULL,
10
@p_REJECTED_BY	varchar(20)	 = NULL,
11
@p_REJECTED_DT	VARCHAR	 = NULL,
12
@p_TYPE VARCHAR(20) =NULL,
13
@p_PROCESS_ID VARCHAR(20),
14
@p_REF_ID INT=NULL
15
AS
16
BEGIN TRANSACTION
17
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
18

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

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

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

    
431

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

    
503
					DECLARE @p_DMMS_ID_PROCESS INT = (
504
						SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'DMMS' AND STATUS = 'C'
505
					)
506
					-------------XÓA LỊCH SỬ ĐIỀU PHỐI ĐỂ ĐMMS ĐIỀU PHỐI LẠI----------
507
					--DELETE FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = @p_DMMS_ID_PROCESS
508
					--- LUCTV 19.04.2023 FIX LẠI KHI TRẢ VỀ ĐMMS THÌ CHỈ CẬP NHẬT LẠI VỀ NV XỬ LÝ PHIẾU, KHÔNG CẦN PHẢI XÓA LOG ĐIỀU PHỐI LẠI update 19042023_secretkey
509
					UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='U' WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID =@p_DMMS_ID_PROCESS AND TYPE_JOB <>'XL'
510
					UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C' WHERE REQ_ID =@p_TRN_ID AND PROCESS_ID =@p_DMMS_ID_PROCESS AND TYPE_JOB = 'XL'
511
					---- END LUCTV 19.04.2023
512
					-------------XÓA LỊCH SỬ ĐIỀU PHỐI CỦA DVCM--------------
513
					DECLARE @t_DVCM TABLE (PROCESS_ID INT)
514
					INSERT INTO @t_DVCM 
515
						SELECT ID FROM PL_REQUEST_PROCESS 
516
						WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'DVCM'
517
					DELETE FROM PL_REQUEST_PROCESS_CHILD 
518
						WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID IN (SELECT PROCESS_ID FROM @t_DVCM)
519
					------------XÓA LỊCH SỬ XỬ LÝ CÓ STATUS = 'U'---------
520
					DELETE FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID AND STATUS = 'U'
521

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
713
					UPDATE TR_REQUEST_DOC SET
714
						PROCESS_ID = @p_PARENT_PROCESS_ID
715
					WHERE REQ_ID = @p_TRN_ID
716

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

    
740
				END
741
			
742
		END
743

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

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

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

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

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

    
867
				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'))
868
				BEGIN
869
					SET @p_MESSAGE = N'Không thể trả phiếu về nhân viên xử lý vì phiếu đánh giá NCC số: '
870
						+@p_RATE_REQ_NO+ N' không có điều phối cho nhân viên xử lý'
871
					ROLLBACK TRANSACTION
872
					SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
873
					RETURN '-1'
874
				END
875

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

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

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

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

    
917
		--- INSERT VAO BANG CM_REJECT_LOG
918
		IF(@COMPLETE=1)
919
		BEGIN
920
		EXEC SYS_CodeMasters_Gen 'CM_REJECT_LOG', @p_LOG_ID out
921
		IF @p_LOG_ID='' OR @p_LOG_ID IS NULL GOTO ABORT
922
		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))
923
		IF @@Error <> 0 GOTO ABORT
924
		END
925
COMMIT TRANSACTION
926

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

    
932
		ROLLBACK TRANSACTION
933
		SELECT '-1' as Result, '' LOG_ID, '' ErrorDesc
934
		RETURN '-1'
935
END