Project

General

Profile

TR_REQ_PROCESS_CHILD_App.txt

Luc Tran Van, 01/09/2023 04:06 PM

 
1

    
2
ALTER   PROCEDURE [dbo].[TR_REQ_PROCESS_CHILD_App]
3
@p_REQ_ID VARCHAR(20),
4
@p_PROCESS_ID VARCHAR(20),
5
@p_TLNAME VARCHAR(20),
6
@p_MAKER_ID VARCHAR(20),
7
@p_TYPE_JOB VARCHAR(20),
8
@p_PROCESS_DES NVARCHAR(500),
9
@p_REF_ID INT,
10
@p_XMLDATA XML
11
AS
12
BEGIN TRANSACTION
13
-- LUCTV 20052020 BO SUNG CHECK NEU TRA VE THI KHONG DUYET DUOC
14

    
15
--IF(NOT EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND STATUS='C' AND PROCESS_ID=@p_PROCESS_ID))
16
--BEGIN
17
--	SELECT 1 as Result, '' ErrorDesc
18
--	RETURN 0
19
--END
20
-- BO SUNG NHUNG PHONG BAN DO USER NAY KIEM NHIẸM
21
DECLARE @DEP_AUTH TABLE (DEP_AUTH VARCHAR(15))
22
INSERT INTO @DEP_AUTH SELECT DEP_ID FROM TL_SYS_ROLE_MAPPING WHERE TLNAME =@p_MAKER_ID 
23
AND 1=1
24
AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL)
25
AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL)
26
IF(EXISTS(SELECT REQ_ID FROM dbo.TR_REQUEST_DOC  WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='DMMS'))
27
BEGIN
28
	--IF(EXISTS(
29
	--SELECT PRC.ID FROM dbo.PL_REQUEST_PROCESS PR 
30
	--LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD PRC ON PRC.PROCESS_ID=PR.ID
31
	--WHERE PR.PROCESS_ID='DMMS' AND PR.REQ_ID=@p_REQ_ID AND PRC.TYPE_JOB='XL' AND PRC.STATUS_JOB='C'))
32
	--BEGIN
33
	--	ROLLBACK TRANSACTION  
34
	--	SELECT -1 Result, N'Tại đầu mối mua sắm. Phiếu yêu cầu mua sắm số: '+(SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID) +N' chưa được xử lý. Vui lòng đợi nhân viên xử lý phiếu và gửi phê duyệt!' ErrorDesc  
35
	--	RETURN -1
36
	--END
37
	--IF(NOT EXISTS(
38
	--SELECT PRC.ID FROM dbo.PL_REQUEST_PROCESS PR 
39
	--LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD PRC ON PRC.PROCESS_ID=PR.ID
40
	--WHERE PR.PROCESS_ID='DMMS' AND PR.REQ_ID=@p_REQ_ID AND PRC.TYPE_JOB='XL' ))
41
	--BEGIN
42

    
43
	--	ROLLBACK TRANSACTION  
44
	--	SELECT -1 Result, N'Tại đầu mối mua sắm. Phiếu yêu cầu mua sắm số: '+(SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID) +N' chưa điều phối xử lý. Vui lòng điều phối nhân viên xử lý phiếu!' ErrorDesc  
45
	--	RETURN -1 
46
	--END
47
	IF(EXISTS(
48
	SELECT PRC.ID FROM dbo.PL_REQUEST_PROCESS PR 
49
	LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD PRC ON PRC.PROCESS_ID=PR.ID
50
	WHERE PR.PROCESS_ID='DMMS' AND PR.REQ_ID=@p_REQ_ID AND PRC.TYPE_JOB='XL' AND PRC.STATUS_JOB='C' AND PRC.PROCESS_ID =@p_REF_ID))
51
	BEGIN
52
		ROLLBACK TRANSACTION  
53
		SELECT -1 Result, N'Tại đơn vị mua sắm. Phiếu yêu cầu mua sắm số: '+(SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID) +N' chưa được xử lý. Vui lòng đợi nhân viên xử lý phiếu và gửi phê duyệt!' ErrorDesc  
54
		RETURN -1
55
	END
56
	IF(NOT EXISTS(
57
	SELECT PRC.ID FROM dbo.PL_REQUEST_PROCESS PR 
58
	LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD PRC ON PRC.PROCESS_ID=PR.ID
59
	WHERE PR.PROCESS_ID='DMMS' AND PR.REQ_ID=@p_REQ_ID AND PRC.TYPE_JOB='XL' AND PRC.PROCESS_ID =@p_REF_ID ))
60
	BEGIN
61

    
62
		ROLLBACK TRANSACTION  
63
		SELECT -1 Result, N'Tại đơn vị mua sắm. Phiếu yêu cầu mua sắm số: '+(SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID) +N' chưa điều phối xử lý. Vui lòng điều phối nhân viên xử lý phiếu!' ErrorDesc  
64
		RETURN -1 
65
	END
66
END
67
--- 16 04 2021 LUCTV BO SUNG VALIDATE
68
--IF(EXISTS(SELECT REQ_ID FROM dbo.TR_REQUEST_DOC  WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='DMMS'))
69
--BEGIN
70
--	IF(EXISTS(
71
--	SELECT PRC.ID FROM dbo.PL_REQUEST_PROCESS PR 
72
--	LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD PRC ON PRC.PROCESS_ID=PR.ID
73
--	WHERE PR.PROCESS_ID='DMMS' AND PR.REQ_ID=@p_REQ_ID AND PRC.TYPE_JOB='XL' AND PRC.STATUS_JOB='C' AND PRC.ID =@p_REF_ID))
74
--	BEGIN
75
--		ROLLBACK TRANSACTION  
76
--		SELECT -1 Result, N'Tại đầu mối mua sắm. Phiếu yêu cầu mua sắm số: '+(SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID) +N' chưa được xử lý. Vui lòng đợi nhân viên xử lý phiếu và gửi phê duyệt!' ErrorDesc  
77
--		RETURN -1
78
--	END
79
--	IF(NOT EXISTS(
80
--	SELECT PRC.ID FROM dbo.PL_REQUEST_PROCESS PR 
81
--	LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD PRC ON PRC.PROCESS_ID=PR.ID
82
--	WHERE PR.PROCESS_ID='DMMS' AND PR.REQ_ID=@p_REQ_ID AND PRC.TYPE_JOB='XL' AND PRC.ID =@p_REF_ID ))
83
--	BEGIN
84

    
85
--		ROLLBACK TRANSACTION  
86
--		SELECT -1 Result, N'Tại đầu mối mua sắm. Phiếu yêu cầu mua sắm số: '+(SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID) +N' chưa điều phối xử lý. Vui lòng điều phối nhân viên xử lý phiếu!' ErrorDesc  
87
--		RETURN -1 
88
--	END
89
--END
90
--- NEU BUOC XU LY LA DVCM
91
--- 16 04 2021 LUCTV BO SUNG VALIDATE
92
IF(EXISTS(SELECT REQ_ID FROM dbo.TR_REQUEST_DOC  WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='DVCM'))
93
BEGIN
94
	IF(EXISTS(
95
	SELECT PRC.ID FROM dbo.PL_REQUEST_PROCESS PR 
96
	LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD PRC ON PRC.PROCESS_ID=PR.ID
97
	WHERE PR.PROCESS_ID='DVCM' AND PR.REQ_ID=@p_REQ_ID AND PRC.TYPE_JOB='XL' AND PRC.STATUS_JOB='C' AND PRC.PROCESS_ID =@p_REF_ID))
98
	BEGIN
99
		ROLLBACK TRANSACTION  
100
		SELECT -1 Result, N'Tại đơn vị chuyên môn. Phiếu yêu cầu mua sắm số: '+(SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID) +N' chưa được xử lý. Vui lòng đợi nhân viên xử lý phiếu và gửi phê duyệt!' ErrorDesc  
101
		RETURN -1
102
	END
103
	IF(NOT EXISTS(
104
	SELECT PRC.ID FROM dbo.PL_REQUEST_PROCESS PR 
105
	LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD PRC ON PRC.PROCESS_ID=PR.ID
106
	WHERE PR.PROCESS_ID='DVCM' AND PR.REQ_ID=@p_REQ_ID AND PRC.TYPE_JOB='XL' AND PRC.PROCESS_ID =@p_REF_ID ))
107
	BEGIN
108
		ROLLBACK TRANSACTION  
109
		SELECT -1 Result, N'Tại đơn vị chuyên môn. Phiếu yêu cầu mua sắm số: '+(SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID) +N' chưa điều phối xử lý. Vui lòng điều phối nhân viên xử lý phiếu!' ErrorDesc  
110
		RETURN -1 
111
	END
112
END
113
---
114

    
115
---------------BAODNQ 22/12/2022: Nếu PYCMS đã qua bước trưởng đơn vị ĐMMS duyệt thì k cho ấn duyệt lại--------------------------
116
IF(EXISTS(SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = 'DMMS' AND STATUS = 'P' AND (CHECKER_ID IS NOT NULL AND CHECKER_ID <> '' AND CHECKER_ID = @p_MAKER_ID)))
117
BEGIN
118
	ROLLBACK TRANSACTION  
119
	SELECT -1 Result, N'Tại đầu mối mua sắm. Phiếu yêu cầu mua sắm số: '+(SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID) +
120
	N' đã được trưởng đơn vị đầu mối mua sắm phê duyệt. Vui lòng chờ đợi bước xử lý tiếp theo xử lý phiếu' ErrorDesc  
121
	RETURN -1 
122
END
123

    
124
DECLARE @IS_KT VARCHAR(15)
125
SET @IS_KT =(SELECT TOP 1 IS_KT FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID)
126
--- END LUCTV 08122020
127
IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_REQ_ID AND STATUS_JOB ='R') OR (EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND AUTH_STATUS ='R'))
128
OR(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='R')))
129
	BEGIN
130
		ROLLBACK TRANSACTION
131
		SELECT -1 Result, N'Phiếu yêu cầu mua sắm số: '+(SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID) +N' đang bị từ chối. Vui lòng đợi nhân viên xử lý phiếu và gửi phê duyệt lại!' ErrorDesc
132
		RETURN -1
133
END
134
Declare @hdoc INT
135
	EXEC sp_xml_preparedocument @hdoc Output,@p_XMLDATA
136
	DECLARE @lstFILE TABLE(
137
	ATTACH_ID  VARCHAR(20),
138
	IS_READ	BIT 
139
	)
140
	INSERT INTO @lstFILE
141
	SELECT *
142
	FROM OPENXML(@hDoc,'/Root/ATTACH_FILE',2)
143
	WITH 
144
	(
145
		ATTACH_ID  VARCHAR(20),
146
		IS_READ	BIT  
147
	)
148

    
149
IF(EXISTS(SELECT TR_REQUEST_DOC_FILE_ID FROM dbo.TR_REQUEST_DOC_FILE WHERE REQ_ID=@p_REQ_ID AND IS_VIEW=1
150
 AND EXISTS(SELECT ATTACH_ID FROM @lstFILE WHERE [@lstFILE].ATTACH_ID=TR_REQUEST_DOC_FILE.ATTACH_ID AND IS_READ=0)))
151
 BEGIN
152
		ROLLBACK TRANSACTION
153
			SELECT -1 Result, N'File đinh kèm bắt buộc đọc' ErrorDesc 
154
			RETURN 0
155
 END
156
DECLARE @LEVEL INT,	@TYPE_JOB_NAME NVARCHAR(100), @FULLNAME NVARCHAR(100)
157
			
158
		UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='P'
159
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND TLNAME=@p_TLNAME AND TYPE_JOB=@p_TYPE_JOB
160

    
161
		SET @LEVEL=ISNULL((SELECT TOP 1 LEVEL_JOB 
162
		FROM dbo.PL_REQUEST_PROCESS_CHILD 
163
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND TLNAME=@p_TLNAME AND TYPE_JOB=@p_TYPE_JOB
164
		ORDER BY LEVEL_JOB DESC),0)
165

    
166
		UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='C'
167
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND LEVEL_JOB=(@LEVEL-1)
168
		
169
			SET @TYPE_JOB_NAME =(SELECT CONTENT FROM dbo.CM_ALLCODE WHERE CDNAME = 'JOB_TYPE' AND CDTYPE='REQ' AND CDVAL=@p_TYPE_JOB)
170
			SET @FULLNAME =(SELECT TLFullName FROM dbo.TL_USER WHERE TLNANME=@p_TLNAME )
171
			
172
		INSERT INTO dbo.PL_PROCESS
173
				(
174
					REQ_ID,
175
					PROCESS_ID,
176
					CHECKER_ID,
177
					APPROVE_DT,
178
					PROCESS_DESC,NOTES
179
				)
180
				VALUES
181
				(   @p_REQ_ID,        -- REQ_ID - varchar(15)
182
					@p_PROCESS_ID,        -- PROCESS_ID - varchar(10)
183
					@p_MAKER_ID,        -- CHECKER_ID - varchar(15)
184
					GETDATE() , -- APPROVE_DT - datetime
185
					@p_PROCESS_DES ,
186
					@TYPE_JOB_NAME+ N' đã phê duyệt'       -- PROCESS_DESC - nvarchar(1000)
187
				)
188
		IF(NOT EXISTS (SELECT * FROM  dbo.PL_REQUEST_PROCESS_CHILD 
189
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND STATUS_JOB <> 'P'))
190
		BEGIN
191
				IF(@p_PROCESS_ID='DMMS')
192
				BEGIN
193
				DECLARE @PROCESS_PARENT VARCHAR(20)
194
				SET @PROCESS_PARENT='DMMS'
195

    
196
				UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='P',CHECKER_ID=@p_MAKER_ID,APPROVE_DT=GETDATE(),NOTES=N'Đầu mối mua sắm đã phê duyệt' WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_PROCESS_ID
197
		
198
				DECLARE @LIMIT_VALUE_KT DECIMAL(18,0),@ROLE_KT VARCHAR(20),@DVDM_KT VARCHAR(20),@NOTES_KT NVARCHAR(200),@TOTAL_AMT_REQ DECIMAL(18,0)
199

    
200
				SET @LIMIT_VALUE_KT = (SELECT LIMIT_VALUE FROM dbo.TL_SYSROLE_LIMIT WHERE LIMIT_TYPE='KT')
201
				SET @ROLE_KT=(SELECT ROLE_ID FROM dbo.TL_SYSROLE_LIMIT WHERE LIMIT_TYPE='KT')
202
				
203
				SET @DVDM_KT=(SELECT DVDM_ID FROM dbo.TL_SYSROLE_LIMIT WHERE LIMIT_TYPE='KT')
204
				
205
				SET @TOTAL_AMT_REQ =(SELECT SUM(((PRICE * QUANTITY) + ISNULL(TAXES,0))* ISNULL(EXCHANGE_RATE,1)) AS TOTAL_AMT FROM dbo.TR_REQUEST_DOC_DT 
206
				--WHERE REQ_DOC_ID=@p_REQ_ID AND TRAN_TYPE_ID NOT IN (SELECT TRN_TYPE FROM dbo.CM_TRAN_TYPE WHERE NOTES='XK' OR NOTES ='CDT'))
207
				WHERE REQ_DOC_ID=@p_REQ_ID)
208
				--IF(@TOTAL_AMT_REQ > @LIMIT_VALUE_KT AND @IS_KT ='1') -- CODE CŨ CHẶN K QUA KẾ TOÁN
209
				----------BAODNQ 6/5/2022: THÊM ĐOẠN CODE ĐI QUA PHÒNG KẾ TOÁN-----------
210
				-------------Nếu PYCMS > 100tr và có BB xét giá 100-500tr hoặc trên 500tr
211
				IF(@TOTAL_AMT_REQ >= 100000000 
212
					AND (
213
						EXISTS(SELECT* FROM TR_REQ_DOC_XETGIA_100M_500M WHERE REQ_DOC_ID = @p_REQ_ID)
214
						OR EXISTS (SELECT * FROM TR_REQ_DOC_XETGIA_TREN_500M WHERE REQ_DOC_ID = @p_REQ_ID)
215
						)
216
					)
217
					--------------Nếu đã tồn tại DVCM kế toán thì k thêm vào-----------------
218
					AND NOT EXISTS(SELECT REQ_COST_ID FROM TR_REQUEST_COSTCENTER WHERE REQ_ID = @p_REQ_ID
219
									AND COST_ID = @DVDM_KT)
220
				BEGIN
221
					SET @IS_KT = '1'
222
				--------------END BAODNQ--------------------------
223
					DECLARE @l_REQ_COST_ID VARCHAR(15)
224
					EXEC SYS_CodeMasters_Gen 'TR_REQUEST_COSTCENTER', @l_REQ_COST_ID out
225
					INSERT dbo.TR_REQUEST_COSTCENTER
226
					(
227
					    REQ_COST_ID,
228
					    COST_ID,
229
					    REQ_ID,
230
					    NOTES,
231
					    AUTH_STATUS,
232
					    MAKER_ID,
233
					    CREATE_DT,
234
					    CHECKER_ID,
235
					    APPROVE_DT
236
					)
237
					VALUES
238
					(   @l_REQ_COST_ID,        -- REQ_COST_ID - varchar(15)
239
						@DVDM_KT,        -- COST_ID - varchar(15)			    
240
						@p_REQ_ID,        -- REQ_ID - varchar(15)
241
					    N'',       -- NOTES - nvarchar(500)
242
					    'U',        -- AUTH_STATUS - varchar(1)
243
					    @p_MAKER_ID,        -- MAKER_ID - varchar(15)
244
					    GETDATE(), -- CREATE_DT - datetime
245
					    '',        -- CHECKER_ID - varchar(15)
246
					   NULL -- APPROVE_DT - datetime
247
					    )
248
				END
249

    
250
				--------------------BAODNQ 18/7/2022: Nếu có DVCM trùng DMMS thì xác nhận luôn--------
251
				DECLARE @p_DVDM_DMMS_ID VARCHAR(15) = (
252
					SELECT CDV.DVDM_ID
253
					FROM CM_DMMS CD
254
					LEFT JOIN PL_COSTCENTER_DT PCD ON CD.BRANCH_ID = PCD.BRANCH_ID AND CD.DEP_ID = PCD.DEP_ID
255
					LEFT JOIN PL_COSTCENTER PC ON PCD.COST_ID = PC.COST_ID
256
					LEFT JOIN CM_DVDM CDV ON PC.DVDM_ID = CDV.DVDM_ID
257
					WHERE CD.DMMS_ID = (SELECT DVDM_ID FROM PL_REQUEST_PROCESS WHERE PROCESS_ID = 'DMMS' AND REQ_ID = @p_REQ_ID)
258
					AND CDV.IS_DVCM = 1
259
				)
260
				IF(EXISTS(SELECT*FROM TR_REQUEST_COSTCENTER WHERE REQ_ID = @p_REQ_ID AND COST_ID = @p_DVDM_DMMS_ID))
261
				BEGIN
262
					UPDATE TR_REQUEST_COSTCENTER SET
263
						AUTH_STATUS='A',
264
						APPROVE_DT=GETDATE(),
265
						CHECKER_ID=@p_MAKER_ID,
266
						NOTES = N'Xác nhận'
267
					WHERE REQ_ID = @p_REQ_ID AND COST_ID = @p_DVDM_DMMS_ID
268
				END
269

    
270
				IF(EXISTS(SELECT * FROM dbo.TR_REQUEST_COSTCENTER WHERE REQ_ID=@p_REQ_ID) AND EXISTS(SELECT REQDT_ID FROM dbo.TR_REQUEST_DOC_DT WHERE TRAN_TYPE_ID NOT IN (SELECT TRN_TYPE FROM dbo.CM_TRAN_TYPE WHERE NOTES='XK' )))
271
					BEGIN
272
					DECLARE @COST_ID VARCHAR(20)
273
					DECLARE lstCostCenter CURSOR FOR
274
					SELECT COST_ID  FROM dbo.TR_REQUEST_COSTCENTER
275
					WHERE REQ_ID=@p_REQ_ID
276
					 OPEN lstCostCenter
277
		 			FETCH NEXT FROM lstCostCenter INTO @COST_ID
278
					WHILE @@FETCH_STATUS = 0 
279
					BEGIN 
280

    
281
					IF(NOT EXISTS(SELECT * FROM TR_REQUEST_COSTCENTER WHERE REQ_ID = @p_REQ_ID AND COST_ID = @COST_ID AND AUTH_STATUS = 'A'))
282
					BEGIN
283

    
284
					IF(NOT EXISTS(SELECT TOP 1 ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID  AND 
285
					(ROLE_USER='GDDV' OR ROLE_USER IN (SELECT ROLE_OLD FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_NEW='GDDV') )AND ( DVDM_ID=@COST_ID OR @COST_ID IN ((SELECT PC.DVDM_ID FROM dbo.PL_COSTCENTER PC
286
					LEFT JOIN dbo.PL_COSTCENTER_DT PCD ON PCD.COST_ID = PC.COST_ID
287
					WHERE PCD.BRANCH_ID=PL_REQUEST_PROCESS.BRANCH_ID AND PCD.DEP_ID=PL_REQUEST_PROCESS.DEP_ID)) ) ))
288
					BEGIN
289

    
290
					IF(@COST_ID=@DVDM_KT AND @IS_KT ='1')
291
					BEGIN
292
						INSERT INTO dbo.PL_REQUEST_PROCESS
293
						(
294
							REQ_ID,
295
							PROCESS_ID,
296
							STATUS,
297
							ROLE_USER,
298
							BRANCH_ID,
299
							CHECKER_ID,
300
							APPROVE_DT,
301
							PARENT_PROCESS_ID,
302
							IS_LEAF,
303
							COST_ID,
304
							DVDM_ID,
305
							NOTES,
306
							IS_HAS_CHILD
307
						)
308
						VALUES
309
						(   @p_REQ_ID,        -- REQ_ID - varchar(15)
310
							'DVCM',        -- PROCESS_ID - varchar(10)
311
							'U',        -- STATUS - varchar(5)
312
							'KSV',        -- ROLE_USER - varchar(50)
313
							'',        -- BRANCH_ID - varchar(15)
314
							'',        -- CHECKER_ID - varchar(15)
315
							NULL, -- APPROVE_DT - datetime
316
						   @PROCESS_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
317
							'N',        -- IS_LEAF - varchar(1)
318
							'',        -- COST_ID - varchar(15)
319
							@COST_ID ,
320
							N'Chờ đơn vị chuyên môn xác nhận' ,
321
							1       -- DVDM_ID - varchar(15)
322
						 )
323
					END
324
					ELSE
325
					BEGIN
326
				    INSERT INTO dbo.PL_REQUEST_PROCESS
327
				    (
328
				        REQ_ID,
329
				        PROCESS_ID,
330
				        STATUS,
331
				        ROLE_USER,
332
				        BRANCH_ID,
333
				        CHECKER_ID,
334
				        APPROVE_DT,
335
				        PARENT_PROCESS_ID,
336
				        IS_LEAF,
337
				        COST_ID,
338
				        DVDM_ID,
339
						NOTES,
340
						IS_HAS_CHILD
341
				    )
342
				    VALUES
343
				    (   @p_REQ_ID,        -- REQ_ID - varchar(15)
344
				        'DVCM',        -- PROCESS_ID - varchar(10)
345
				        'U',        -- STATUS - varchar(5)
346
				        'GDDV',        -- ROLE_USER - varchar(50)
347
				        '',        -- BRANCH_ID - varchar(15)
348
				        '',        -- CHECKER_ID - varchar(15)
349
						NULL, -- APPROVE_DT - datetime
350
				       @PROCESS_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
351
				        'N',        -- IS_LEAF - varchar(1)
352
				        '',        -- COST_ID - varchar(15)
353
				        @COST_ID ,
354
						N'Chờ đơn vị chuyên môn xác nhận' ,
355
						1       -- DVDM_ID - varchar(15)
356
				     )
357
					 END
358
					END
359
					END
360
					FETCH NEXT FROM lstCostCenter INTO @COST_ID
361
					END
362
					CLOSE lstCostCenter
363
					DEALLOCATE lstCostCenter
364
					
365
				END
366

    
367
				----------------BAODNQ 6/7/2022: Nếu có BB xét giá trên 500tr và có check chọn qua GDK TC----------
368
				IF(EXISTS(SELECT * FROM TR_REQ_DOC_XETGIA_TREN_500M WHERE REQ_DOC_ID = @p_REQ_ID AND HAS_GDK_TC = 'Y'))
369
				BEGIN
370
					IF(EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='DVCM'))
371
					BEGIN
372
						SET @PROCESS_PARENT='DVCM'
373
					END
374
					
375
					DECLARE @p_ROLE_ID VARCHAR(20), @p_DVDM_ID VARCHAR(15)
376
					SET @p_ROLE_ID = 'GDK'
377
					SET @p_DVDM_ID = 'DM0000000000017' --- PHÒNG TÀI CHÍNH
378

    
379
					INSERT INTO dbo.PL_REQUEST_PROCESS
380
					(
381
					    REQ_ID,
382
					    PROCESS_ID,
383
					    STATUS,
384
					    ROLE_USER,
385
					    BRANCH_ID,
386
					    CHECKER_ID,
387
					    APPROVE_DT,
388
					    PARENT_PROCESS_ID,
389
					    IS_LEAF,
390
					    COST_ID,
391
					    DVDM_ID,
392
					    NOTES,
393
					    IS_HAS_CHILD
394
					)
395
					VALUES
396
					(  @p_REQ_ID,        -- REQ_ID - varchar(15)
397
					   'GDK_TC',        -- PROCESS_ID - varchar(10)
398
					    'U',        -- STATUS - varchar(5)
399
					    @p_ROLE_ID,        -- ROLE_USER - varchar(50)
400
					    '',        -- BRANCH_ID - varchar(15)
401
					    '',        -- CHECKER_ID - varchar(15)
402
					    NULL, -- APPROVE_DT - datetime
403
					    @PROCESS_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
404
					    '',        -- IS_LEAF - varchar(1)
405
					    '',        -- COST_ID - varchar(15)
406
					    @p_DVDM_ID,        -- DVDM_ID - varchar(15)
407
					    N'Chờ Giám đốc khối Tài Chính phê duyệt',       -- NOTES - nvarchar(500)
408
					    0       -- IS_HAS_CHILD - bit
409
					    )
410
					SET @PROCESS_PARENT= 'GDK_TC'
411
				END
412
				---------------END BAODNQ 6/7/2022--------------------------
413

    
414
				DECLARE @TOTAL_AMT DECIMAL(18,2),@ROLE_PDTH VARCHAR(20)	,@LIMIT_VALUE DECIMAL(18,2)	,@IS_NEXT BIT,@PROCESS_ID  VARCHAR(5),@ROLE_ID VARCHAR(20),@DVDM_ID VARCHAR(20),@NOTES NVARCHAR(50),@DVDM_NAME NVARCHAR(200)
415

    
416
				--IF(EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='DVCM'))
417
				--	SET @PROCESS_PARENT='DVCM'
418
				IF(NOT EXISTS(SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = 'GDK_TC')
419
				AND EXISTS(SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = 'DVCM'))
420
				BEGIN
421
					SET @PROCESS_PARENT='DVCM'
422
				END
423
				
424
				SET @IS_NEXT=(SELECT dbo.FN_CHECK_LIMIT_TR_REQ(@p_REQ_ID,'GDDV'))
425
				--SET @IS_NEXT=1
426
				IF(@IS_NEXT =1 AND EXISTS(SELECT REQDT_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID AND TRAN_TYPE_ID NOT IN (SELECT TRN_TYPE FROM dbo.CM_TRAN_TYPE WHERE NOTES='XK' ))) 
427
				BEGIN
428
				SET @DVDM_ID=(SELECT DVDM_ID FROM dbo.TL_SYSROLE_LIMIT WHERE LIMIT_TYPE='PDPYC')
429
				SET @ROLE_ID=(SELECT ROLE_ID FROM dbo.TL_SYSROLE_LIMIT WHERE LIMIT_TYPE='PDPYC')
430
				SET @NOTES =(SELECT ROLE_DESC FROM dbo.TL_SYSROLE WHERE ROLE_ID=@ROLE_ID)
431
				SET @DVDM_NAME= (SELECT DVDM_NAME FROM dbo.CM_DVDM WHERE DVDM_ID=@DVDM_ID)
432
				SET @NOTES = @NOTES + ' ' + @DVDM_NAME
433

    
434
				INSERT INTO dbo.PL_REQUEST_PROCESS
435
					(
436
					    REQ_ID,
437
					    PROCESS_ID,
438
					    STATUS,
439
					    ROLE_USER,
440
					    BRANCH_ID,
441
					    CHECKER_ID,
442
					    APPROVE_DT,
443
					    PARENT_PROCESS_ID,
444
					    IS_LEAF,
445
					    COST_ID,
446
					    DVDM_ID,
447
					    NOTES,
448
					    IS_HAS_CHILD
449
					)
450
					VALUES
451
					(  @p_REQ_ID,        -- REQ_ID - varchar(15)
452
					   'GDK_PYC',        -- PROCESS_ID - varchar(10)
453
					    'U',        -- STATUS - varchar(5)
454
					    @ROLE_ID,        -- ROLE_USER - varchar(50)
455
					    '',        -- BRANCH_ID - varchar(15)
456
					    '',        -- CHECKER_ID - varchar(15)
457
					    NULL, -- APPROVE_DT - datetime
458
					    @PROCESS_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
459
					    '',        -- IS_LEAF - varchar(1)
460
					    '',        -- COST_ID - varchar(15)
461
					    @DVDM_ID,        -- DVDM_ID - varchar(15)
462
					    N'Chờ ' +@NOTES+N' phê duyệt',       -- NOTES - nvarchar(500)
463
					    0       -- IS_HAS_CHILD - bit
464
					    )
465
					SET @PROCESS_PARENT= 'GDK_PYC'
466
                END
467
			----------------BAODNQ 11/6/2022 PYCMS CÓ TỜ TRÌNH CĐT------------------------
468
				IF(EXISTS (SELECT * FROM PL_APPOINT_CONTRACTOR WHERE TR_REQUEST_DOC_ID = @p_REQ_ID AND TYPE_PL <> 'TTCP'))
469
				BEGIN
470
					DECLARE @p_LIMIT_PTGDK_HT DECIMAL(18,0),
471
							@p_LIMIT_TGD DECIMAL(18,0),
472
							@p_TOTAL_AMT_REQ_DOC DECIMAL(18,0) = (
473
								SELECT TOTAL_AMT FROM TR_REQUEST_DOC WHERE REQ_ID = @p_REQ_ID
474
							)
475

    
476
					----------------Set hạng mức------------------
477
					DECLARE @t_HANGHOA_TABLE TABLE(HH_ID VARCHAR(15), HH_CODE VARCHAR(100))
478
					INSERT INTO @t_HANGHOA_TABLE
479
						SELECT TRDT.HANGHOA_ID, CH.HH_CODE 
480
						FROM TR_REQUEST_DOC_DT TRDT
481
						LEFT JOIN CM_HANGHOA CH ON TRDT.HANGHOA_ID = CH.HH_ID
482
						WHERE TRDT.REQ_DOC_ID = @p_REQ_ID
483

    
484
					IF(EXISTS(SELECT * FROM @t_HANGHOA_TABLE WHERE HH_CODE IN ('HCQT-003-000007', 'SPMKT-001-000007')))
485
					BEGIN
486
						SET @p_LIMIT_PTGDK_HT = 300000000
487
						SET @p_LIMIT_TGD = 500000000
488
					END
489
					ELSE IF(EXISTS(SELECT * FROM @t_HANGHOA_TABLE WHERE HH_CODE IN ('THQHCC-001-000003')))
490
					BEGIN
491
						SET @p_LIMIT_PTGDK_HT = 50000000
492
						SET @p_LIMIT_TGD = 300000000
493
					END
494
					ELSE
495
					BEGIN
496
						SET @p_LIMIT_PTGDK_HT = 100000000
497
						SET @p_LIMIT_TGD = 300000000
498
					END
499
					------------ PCYMS CÓ TỜ TRÌNH CĐT VƯỢT HẠN MỨC PTGDK HỖ TRỢ-------
500
					IF(@p_TOTAL_AMT_REQ_DOC > @p_LIMIT_PTGDK_HT)
501
					BEGIN
502
						SET @DVDM_ID = 'DM0000000000015' ---PHÒNG HỖ TRỢ
503
						SET @ROLE_ID = 'PTGD' -- PHÓ TỔNG GIÁM ĐỐC KHỐI
504

    
505
						INSERT INTO dbo.PL_REQUEST_PROCESS
506
						(
507
							REQ_ID,
508
							PROCESS_ID,
509
							STATUS,
510
							ROLE_USER,
511
							BRANCH_ID,
512
							CHECKER_ID,
513
							APPROVE_DT,
514
							PARENT_PROCESS_ID,
515
							IS_LEAF,
516
							COST_ID,
517
							DVDM_ID,
518
							NOTES,
519
							IS_HAS_CHILD
520
						)
521
						VALUES
522
						(  @p_REQ_ID,        -- REQ_ID - varchar(15)
523
						   'PTGDK_CDT',        -- PROCESS_ID - varchar(10)
524
							'U',        -- STATUS - varchar(5)
525
							@ROLE_ID,        -- ROLE_USER - varchar(50)
526
							'',        -- BRANCH_ID - varchar(15)
527
							'',        -- CHECKER_ID - varchar(15)
528
							NULL, -- APPROVE_DT - datetime
529
							@PROCESS_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
530
							'',        -- IS_LEAF - varchar(1)
531
							'',        -- COST_ID - varchar(15)
532
							@DVDM_ID,        -- DVDM_ID - varchar(15)
533
							N'Chờ Phó Tổng Giám đốc khối Hỗ Trợ phê duyệt',   -- NOTES - nvarchar(500)
534
							0       -- IS_HAS_CHILD - bit
535
						)
536
						SET @PROCESS_PARENT= 'PTGDK_CDT'
537
					END
538
					-------------------TỜ TRÌNH CĐT CÓ CHECK GDK TÀI CHÍNH-----------
539
					IF(EXISTS (SELECT * FROM PL_APPOINT_CONTRACTOR WHERE TR_REQUEST_DOC_ID = @p_REQ_ID AND TYPE_PL <> 'TTCP' AND HAS_GDK_TC = 'Y'))
540
					BEGIN
541
						SET @DVDM_ID = 'DM0000000000017' --- PHÒNG TÀI CHÍNH
542
						SET @ROLE_ID = 'GDK'
543

    
544
						INSERT INTO dbo.PL_REQUEST_PROCESS
545
						(
546
							REQ_ID,
547
							PROCESS_ID,
548
							STATUS,
549
							ROLE_USER,
550
							BRANCH_ID,
551
							CHECKER_ID,
552
							APPROVE_DT,
553
							PARENT_PROCESS_ID,
554
							IS_LEAF,
555
							COST_ID,
556
							DVDM_ID,
557
							NOTES,
558
							IS_HAS_CHILD
559
						)
560
						VALUES
561
						(  @p_REQ_ID,        -- REQ_ID - varchar(15)
562
						   'GDK_CDT_TC',        -- PROCESS_ID - varchar(10)
563
							'U',        -- STATUS - varchar(5)
564
							@ROLE_ID,        -- ROLE_USER - varchar(50)
565
							'',        -- BRANCH_ID - varchar(15)
566
							'',        -- CHECKER_ID - varchar(15)
567
							NULL, -- APPROVE_DT - datetime
568
							@PROCESS_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
569
							'',        -- IS_LEAF - varchar(1)
570
							'',        -- COST_ID - varchar(15)
571
							@DVDM_ID,        -- DVDM_ID - varchar(15)
572
							N'Chờ Giám đốc khối Tài Chính phê duyệt',       -- NOTES - nvarchar(500)
573
							0       -- IS_HAS_CHILD - bit
574
						)
575
						SET @PROCESS_PARENT= 'GDK_CDT_TC'
576
					END
577
					-------------------PCYMS CÓ TỜ TRÌNH CĐT VƯỢT HẠN MỨC TGD-------
578
					IF(@p_TOTAL_AMT_REQ_DOC > @p_LIMIT_TGD)
579
					BEGIN
580
						----------------Qua thư ký TGĐ trc-----------------
581
						--SET @DVDM_ID = 'DM0000000000013'
582
						SET @DVDM_ID = NULL
583
						SET @ROLE_ID = 'TKTGD'
584
						INSERT INTO dbo.PL_REQUEST_PROCESS
585
						(
586
							REQ_ID,
587
							PROCESS_ID,
588
							STATUS,
589
							ROLE_USER,
590
							BRANCH_ID,
591
							CHECKER_ID,
592
							APPROVE_DT,
593
							PARENT_PROCESS_ID,
594
							IS_LEAF,
595
							COST_ID,
596
							DVDM_ID,
597
							NOTES,
598
							IS_HAS_CHILD
599
						)
600
						VALUES
601
						(  @p_REQ_ID,        -- REQ_ID - varchar(15)
602
						   'TKTGD_CDT',        -- PROCESS_ID - varchar(10)
603
							'U',        -- STATUS - varchar(5)
604
							@ROLE_ID,        -- ROLE_USER - varchar(50)
605
							'',        -- BRANCH_ID - varchar(15)
606
							'',        -- CHECKER_ID - varchar(15)
607
							NULL, -- APPROVE_DT - datetime
608
							@PROCESS_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
609
							'',        -- IS_LEAF - varchar(1)
610
							'',        -- COST_ID - varchar(15)
611
							@DVDM_ID,        -- DVDM_ID - varchar(15)
612
							N'Chờ Thư ký Tổng Giám đốc phê duyệt',   -- NOTES - nvarchar(500)
613
							0       -- IS_HAS_CHILD - bit
614
						)
615
						SET @PROCESS_PARENT= 'TKTGD_CDT'
616

    
617
						---------------Qua TGĐ------------------
618
						--SET @DVDM_ID = 'DM0000000000013'
619
						SET @DVDM_ID = NULL
620
						SET @ROLE_ID = 'TGD'
621
						INSERT INTO dbo.PL_REQUEST_PROCESS
622
						(
623
							REQ_ID,
624
							PROCESS_ID,
625
							STATUS,
626
							ROLE_USER,
627
							BRANCH_ID,
628
							CHECKER_ID,
629
							APPROVE_DT,
630
							PARENT_PROCESS_ID,
631
							IS_LEAF,
632
							COST_ID,
633
							DVDM_ID,
634
							NOTES,
635
							IS_HAS_CHILD
636
						)
637
						VALUES
638
						(  @p_REQ_ID,        -- REQ_ID - varchar(15)
639
						   'TGD_CDT',        -- PROCESS_ID - varchar(10)
640
							'U',        -- STATUS - varchar(5)
641
							@ROLE_ID,        -- ROLE_USER - varchar(50)
642
							'',        -- BRANCH_ID - varchar(15)
643
							'',        -- CHECKER_ID - varchar(15)
644
							NULL, -- APPROVE_DT - datetime
645
							@PROCESS_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
646
							'',        -- IS_LEAF - varchar(1)
647
							'',        -- COST_ID - varchar(15)
648
							@DVDM_ID,        -- DVDM_ID - varchar(15)
649
							N'Chờ Tổng Giám đốc phê duyệt',   -- NOTES - nvarchar(500)
650
							0       -- IS_HAS_CHILD - bit
651
						)
652
						SET @PROCESS_PARENT= 'TGD_CDT'
653
					END
654
				END
655
				----------------------------END BAODNQ 11/6/2022------------------
656

    
657
				INSERT INTO dbo.PL_REQUEST_PROCESS
658
				(
659
				    REQ_ID,
660
				    PROCESS_ID,
661
				    STATUS,
662
				    ROLE_USER,
663
				    BRANCH_ID,
664
				    CHECKER_ID,
665
				    APPROVE_DT,
666
				    PARENT_PROCESS_ID,
667
				    IS_LEAF,
668
				    COST_ID,
669
				    DVDM_ID,
670
				    NOTES,
671
				    IS_HAS_CHILD
672
				)
673
				VALUES
674
				(   @p_REQ_ID,        -- REQ_ID - varchar(15)
675
				    'APPROVE',        -- PROCESS_ID - varchar(10)
676
				    'U',        -- STATUS - varchar(5)
677
				    '',        -- ROLE_USER - varchar(50)
678
				    '',        -- BRANCH_ID - varchar(15)
679
				    '',        -- CHECKER_ID - varchar(15)
680
				    NULL, -- APPROVE_DT - datetime
681
				    @PROCESS_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
682
				    'N',        -- IS_LEAF - varchar(1)
683
				    '',        -- COST_ID - varchar(15)
684
				    '',        -- DVDM_ID - varchar(15)
685
				    N'Hoàn tất',       -- NOTES - nvarchar(500)
686
				    NULL       -- IS_HAS_CHILD - bit
687
				    )
688
				DECLARE @PROCESS_NEXT_ID VARCHAR(10)
689
				SET @PROCESS_NEXT_ID = (SELECT TOP 1 PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PARENT_PROCESS_ID=@p_PROCESS_ID)
690

    
691
				
692
				
693
				UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='C' WHERE REQ_ID=@p_REQ_ID AND PARENT_PROCESS_ID=@p_PROCESS_ID
694
				UPDATE dbo.TR_REQUEST_DOC SET PROCESS_ID=@PROCESS_NEXT_ID WHERE REQ_ID=@p_REQ_ID
695
				
696
				END -- KET THUC DMMS
697
				ELSE IF(@p_PROCESS_ID='DVCM')
698
				BEGIN
699

    
700
						DECLARE @DEP_ID VARCHAR(15),@BRANCH_ID VARCHAR(15),@PROCESS_NEXT VARCHAR(10)
701

    
702
							SET @DEP_ID=(SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID)
703
							SET @BRANCH_ID=(SELECT TLSUBBRID FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID)
704
							SET @ROLE_ID=(SELECT RoleName FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID)
705
							-- LUCTV 07082020 KIEM TRA NEU ROLE KHAC ROLE GDDV THI PHAI CHUYEN ROLE THANH GDDV
706
							--IF(@ROLE_ID ='KTT')
707
							--BEGIN
708
							--	SET @ROLE_ID ='GDDV'
709
							--END
710
							SET @PROCESS_NEXT = (SELECT TOP 1 PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PARENT_PROCESS_ID=@p_PROCESS_ID)
711
						
712

    
713
						UPDATE dbo.TR_REQUEST_COSTCENTER SET AUTH_STATUS='A',APPROVE_DT=GETDATE(),CHECKER_ID=@p_MAKER_ID WHERE REQ_ID=@p_REQ_ID AND COST_ID IN (SELECT PC.DVDM_ID FROM dbo.PL_COSTCENTER PC LEFT JOIN
714
																																	dbo.PL_COSTCENTER_DT PT ON PT.COST_ID=PC.COST_ID WHERE BRANCH_ID=@BRANCH_ID AND (DEP_ID=@DEP_ID OR DEP_ID IN (SELECT * FROM @DEP_AUTH)))
715
						UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='P',CHECKER_ID=@p_MAKER_ID,
716
						APPROVE_DT=GETDATE() ,NOTES=N'Đơn vị chuyên môn xác nhận' 
717
						WHERE REQ_ID=@p_REQ_ID AND( ROLE_USER=@ROLE_ID OR ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@ROLE_ID))AND DVDM_ID IN (SELECT PC.DVDM_ID FROM dbo.PL_COSTCENTER PC LEFT JOIN
718
																																	dbo.PL_COSTCENTER_DT PT ON PT.COST_ID=PC.COST_ID
719
																																	WHERE BRANCH_ID=@BRANCH_ID AND (DEP_ID=@DEP_ID OR DEP_ID IN (SELECT * FROM @DEP_AUTH)))
720
						
721
						IF(NOT EXISTS( SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@p_PROCESS_ID AND REQ_ID=@p_REQ_ID AND STATUS='C'))
722
						BEGIN
723
						
724
										UPDATE dbo.PL_REQUEST_PROCESS SET [STATUS]='C' WHERE PROCESS_ID=@PROCESS_NEXT AND REQ_ID=@p_REQ_ID
725
										UPDATE dbo.TR_REQUEST_DOC SET PROCESS_ID=@PROCESS_NEXT WHERE REQ_ID=@p_REQ_ID
726

    
727
										----------------BAODNQ 6/7/2022-----------------
728
										IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = @PROCESS_NEXT AND STATUS = 'C' AND (NOTES IS NULL OR NOTES = '')))
729
										BEGIN
730
											DECLARE @p_PROCESS_NOTES NVARCHAR(MAX)
731
											IF(@PROCESS_NEXT = 'GDK_TC')
732
											BEGIN
733
												SET @p_PROCESS_NOTES = N'Chờ Giám đốc khối Tài Chính phê duyệt'
734
											END
735
											ELSE IF(@PROCESS_NEXT = 'GDK_PYC')
736
											BEGIN
737
												SET @NOTES =(SELECT ROLE_DESC FROM dbo.TL_SYSROLE WHERE ROLE_ID='GDK')
738
												SET @p_PROCESS_NOTES = N'Chờ ' +@NOTES+N' phê duyệt'
739
											END
740

    
741
											UPDATE PL_REQUEST_PROCESS SET 
742
												NOTES = @p_PROCESS_NOTES
743
											WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = @PROCESS_NEXT
744
										END
745
										
746
										----------------END BAODNQ 6/7/2022-----------------
747
						
748
						END
749
				END
750

    
751
			--IF(@PROCESS_NEXT='APPROVE')
752
			IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE PROCESS_ID ='APPROVE' AND REQ_ID =@p_REQ_ID))
753
			BEGIN
754
				DECLARE @TempTB TABLE
755
				(
756
					TOTAL_AMT DECIMAL(18,2),
757
					TRADE_ID VARCHAR(20),
758
					PLAN_ID VARCHAR(20)
759
				)
760
				INSERT INTO @TempTB			
761
				SELECT SUM(DT.TOTAL_AMT) TOTAL_AMT,PLDT.TRADE_ID,PLDT.PLAN_ID FROM dbo.TR_REQUEST_DOC_DT DT 
762
				LEFT JOIN dbo.PL_REQUEST_DOC_DT PLDT ON DT.PL_REQDT_ID=PLDT.REQDT_ID
763
				WHERE TRAN_TYPE_ID  IN (SELECT TRN_TYPE FROM dbo.CM_TRAN_TYPE WHERE NOTES='XK') AND DT.REQ_DOC_ID=@p_REQ_ID
764
				GROUP BY	PLDT.TRADE_ID,PLDT.PLAN_ID
765
				UPDATE dbo.PL_TRADEDETAIL SET AMT_EXE =AMT_EXE + (SELECT TOTAL_AMT FROM @TempTB WHERE [@TempTB].TRADE_ID=PL_TRADEDETAIL.TRADE_ID AND PL_TRADEDETAIL.PLAN_ID=[@TempTB].PLAN_ID) WHERE PL_TRADEDETAIL.TRADE_ID IN (SELECT TRADE_ID FROM @TempTB)
766

    
767
				IF(EXISTS(SELECT * FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID AND  TRAN_TYPE_ID NOT IN (SELECT TRN_TYPE FROM dbo.CM_TRAN_TYPE WHERE NOTES='XK')))
768
					EXEC dbo.TR_REQ_DOC_Ins_To_PO @p_TR_REQ_ID = @p_REQ_ID -- varchar(15)
769
				
770

    
771
				------------BAODNQ 26/3/2022: Duyệt bb xét giá khi duyệt PYCMS hoàn tất------------
772
				DECLARE @p_TR_REQUEST_DOC_TOTAL_AMT DECIMAL(18,0),
773
						@p_RECORD_ID_100 VARCHAR(15), --bb xét giá dưới 100
774
						@p_RECORD_ID_100_500 VARCHAR(15), -- bb xét giá 100-500
775
						@p_RECORD_ID_500 VARCHAR(15) --bb xét giá trên 500
776
				
777
				SET @p_TR_REQUEST_DOC_TOTAL_AMT = (
778
					SELECT TOTAL_AMT FROM TR_REQUEST_DOC WHERE REQ_ID = @p_REQ_ID
779
				)
780
				
781
				SET @p_RECORD_ID_100 = (SELECT RECORD_ID FROM TR_REQ_DOC_XETGIA_DUOI_100M WHERE REQ_DOC_ID = @p_REQ_ID)
782
				SET @p_RECORD_ID_100_500 = (SELECT RECORD_ID FROM TR_REQ_DOC_XETGIA_100M_500M WHERE REQ_DOC_ID = @p_REQ_ID)
783
				SET @p_RECORD_ID_500 = (SELECT RECORD_ID FROM TR_REQ_DOC_XETGIA_TREN_500M WHERE REQ_DOC_ID = @p_REQ_ID)
784

    
785

    
786
					----------TH BB XÉT GIÁ DƯỚI 100TR------
787
				--IF(@p_TR_REQUEST_DOC_TOTAL_AMT < 100000000)
788
				--BEGIN
789
				--	SET @p_RECORD_ID = (
790
				--		SELECT RECORD_ID FROM TR_REQ_DOC_XETGIA_DUOI_100M WHERE REQ_DOC_ID = @p_REQ_ID
791
				--	)
792

    
793
				--	IF(@p_RECORD_ID IS NULL OR @p_RECORD_ID = '')
794
				--	BEGIN
795
				--		ROLLBACK TRANSACTION
796
				--		SELECT '-1' as Result, N'Biên bản xét giá không tồn tại' ErrorDesc
797
				--		RETURN '-1'
798
				--	END
799
				--		-------DUYỆT BB XÉT GIÁ---------
800
				--	UPDATE TR_REQ_DOC_XETGIA_DUOI_100M SET
801
				--		AUTH_STATUS = 'A',
802
				--		CHECKER_ID = @p_TLNAME,
803
				--		APPROVE_DT = GETDATE()
804
				--	WHERE RECORD_ID = @p_RECORD_ID
805
				--	IF @@ERROR <> 0 GOTO ABORT
806
				--END
807
				IF(@p_RECORD_ID_100 IS NOT NULL AND @p_RECORD_ID_100 <> '')
808
				BEGIN
809
						-------DUYỆT BB XÉT GIÁ---------
810
					UPDATE TR_REQ_DOC_XETGIA_DUOI_100M SET
811
						AUTH_STATUS = 'A',
812
						CHECKER_ID = @p_TLNAME,
813
						APPROVE_DT = GETDATE()
814
					WHERE RECORD_ID = @p_RECORD_ID_100
815
					IF @@ERROR <> 0 GOTO ABORT
816
				END
817

    
818
					----------TH BB XÉT GIÁ TỪ 100TR - 500TR------
819
				--ELSE IF (@p_TR_REQUEST_DOC_TOTAL_AMT >= 100000000 AND @p_TR_REQUEST_DOC_TOTAL_AMT < 500000000)
820
				--BEGIN
821
				--	SET @p_RECORD_ID = (
822
				--		SELECT RECORD_ID FROM TR_REQ_DOC_XETGIA_100M_500M WHERE REQ_DOC_ID = @p_REQ_ID
823
				--	)
824

    
825
				--	IF(@p_RECORD_ID IS NULL OR @p_RECORD_ID = '')
826
				--	BEGIN
827
				--		ROLLBACK TRANSACTION
828
				--		SELECT '-1' as Result, N'Biên bản xét giá không tồn tại' ErrorDesc
829
				--		RETURN '-1'
830
				--	END
831
				--		-------DUYỆT BB XÉT GIÁ---------
832
				--	UPDATE TR_REQ_DOC_XETGIA_100M_500M SET
833
				--		AUTH_STATUS = 'A',
834
				--		CHECKER_ID = @p_TLNAME,
835
				--		APPROVE_DT = GETDATE()
836
				--	WHERE RECORD_ID = @p_RECORD_ID
837
				--	IF @@ERROR <> 0 GOTO ABORT
838
				--END
839
				ELSE IF (@p_RECORD_ID_100_500 IS NOT NULL AND @p_RECORD_ID_100_500 <> '')
840
				BEGIN
841
					-----DUYỆT BB XÉT GIÁ---------
842
					UPDATE TR_REQ_DOC_XETGIA_100M_500M SET
843
						AUTH_STATUS = 'A',
844
						CHECKER_ID = @p_TLNAME,
845
						APPROVE_DT = GETDATE()
846
					WHERE RECORD_ID = @p_RECORD_ID_100_500
847
					IF @@ERROR <> 0 GOTO ABORT
848
				END
849

    
850
					----------TH BB XÉT GIÁ TRÊN 500TR------
851
				--ELSE
852
				--BEGIN
853
				--	SET @p_RECORD_ID = (
854
				--		SELECT RECORD_ID FROM TR_REQ_DOC_XETGIA_TREN_500M WHERE REQ_DOC_ID = @p_REQ_ID
855
				--	)
856

    
857
				--	IF(@p_RECORD_ID IS NULL OR @p_RECORD_ID = '')
858
				--	BEGIN
859
				--		ROLLBACK TRANSACTION
860
				--		SELECT '-1' as Result, N'Biên bản xét giá không tồn tại' ErrorDesc
861
				--		RETURN '-1'
862
				--	END
863
				--		-------DUYỆT BB XÉT GIÁ---------
864
				--	UPDATE TR_REQ_DOC_XETGIA_TREN_500M SET
865
				--		AUTH_STATUS = 'A',
866
				--		CHECKER_ID = @p_TLNAME,
867
				--		APPROVE_DT = GETDATE()
868
				--	WHERE RECORD_ID = @p_RECORD_ID
869
				--	IF @@ERROR <> 0 GOTO ABORT
870
				--END
871
				ELSE IF (@p_RECORD_ID_500 IS NOT NULL AND @p_RECORD_ID_500 <> '')
872
				BEGIN
873
					-------DUYỆT BB XÉT GIÁ---------
874
					UPDATE TR_REQ_DOC_XETGIA_TREN_500M SET
875
						AUTH_STATUS = 'A',
876
						CHECKER_ID = @p_TLNAME,
877
						APPROVE_DT = GETDATE()
878
					WHERE RECORD_ID = @p_RECORD_ID_500
879
					IF @@ERROR <> 0 GOTO ABORT
880
				END
881
				--------------END BAODNQ 26/3/2022----------------
882
			END
883
		END
884
				
885
		IF @@Error <> 0 GOTO ABORT
886
COMMIT TRANSACTION
887
SELECT 0 as Result, '' ErrorDesc
888
RETURN 0
889
ABORT:
890
BEGIN
891
		ROLLBACK TRANSACTION
892
		SELECT -1 as Result, '' ErrorDesc
893
		RETURN -1
894
End