Project

General

Profile

3.0 TR_REQ_PROCESS_CHILD_APPR.txt

Luc Tran Van, 03/16/2023 11:20 PM

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

    
14
--IF(NOT EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND STATUS='C' AND PROCESS_ID=@p_PROCESS_ID))
15
--BEGIN
16
--	SELECT 1 as Result, '' ErrorDesc
17
--	RETURN 0
18
--END
19
-- BO SUNG NHUNG PHONG BAN DO USER NAY KIEM NHIẸM
20
DECLARE @DEP_AUTH TABLE (DEP_AUTH VARCHAR(15))
21
INSERT INTO @DEP_AUTH SELECT DEP_ID FROM TL_SYS_ROLE_MAPPING WHERE TLNAME =@p_MAKER_ID 
22
AND 1=1
23
AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL)
24
AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL)
25
IF(EXISTS(SELECT REQ_ID FROM dbo.TR_REQUEST_DOC  WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='DMMS'))
26
BEGIN
27
	--IF(EXISTS(
28
	--SELECT PRC.ID FROM dbo.PL_REQUEST_PROCESS PR 
29
	--LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD PRC ON PRC.PROCESS_ID=PR.ID
30
	--WHERE PR.PROCESS_ID='DMMS' AND PR.REQ_ID=@p_REQ_ID AND PRC.TYPE_JOB='XL' AND PRC.STATUS_JOB='C'))
31
	--BEGIN
32
	--	ROLLBACK TRANSACTION  
33
	--	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  
34
	--	RETURN -1
35
	--END
36
	--IF(NOT EXISTS(
37
	--SELECT PRC.ID FROM dbo.PL_REQUEST_PROCESS PR 
38
	--LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD PRC ON PRC.PROCESS_ID=PR.ID
39
	--WHERE PR.PROCESS_ID='DMMS' AND PR.REQ_ID=@p_REQ_ID AND PRC.TYPE_JOB='XL' ))
40
	--BEGIN
41

    
42
	--	ROLLBACK TRANSACTION  
43
	--	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  
44
	--	RETURN -1 
45
	--END
46
	IF(EXISTS(
47
	SELECT PRC.ID FROM dbo.PL_REQUEST_PROCESS PR 
48
	LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD PRC ON PRC.PROCESS_ID=PR.ID
49
	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))
50
	BEGIN
51
		ROLLBACK TRANSACTION  
52
		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  
53
		RETURN -1
54
	END
55
	IF(NOT EXISTS(
56
	SELECT PRC.ID FROM dbo.PL_REQUEST_PROCESS PR 
57
	LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD PRC ON PRC.PROCESS_ID=PR.ID
58
	WHERE PR.PROCESS_ID='DMMS' AND PR.REQ_ID=@p_REQ_ID AND PRC.TYPE_JOB='XL' AND PRC.PROCESS_ID =@p_REF_ID ))
59
	BEGIN
60

    
61
		ROLLBACK TRANSACTION  
62
		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  
63
		RETURN -1 
64
	END
65
END
66
--- 16 04 2021 LUCTV BO SUNG VALIDATE
67
--IF(EXISTS(SELECT REQ_ID FROM dbo.TR_REQUEST_DOC  WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='DMMS'))
68
--BEGIN
69
--	IF(EXISTS(
70
--	SELECT PRC.ID FROM dbo.PL_REQUEST_PROCESS PR 
71
--	LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD PRC ON PRC.PROCESS_ID=PR.ID
72
--	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))
73
--	BEGIN
74
--		ROLLBACK TRANSACTION  
75
--		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  
76
--		RETURN -1
77
--	END
78
--	IF(NOT EXISTS(
79
--	SELECT PRC.ID FROM dbo.PL_REQUEST_PROCESS PR 
80
--	LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD PRC ON PRC.PROCESS_ID=PR.ID
81
--	WHERE PR.PROCESS_ID='DMMS' AND PR.REQ_ID=@p_REQ_ID AND PRC.TYPE_JOB='XL' AND PRC.ID =@p_REF_ID ))
82
--	BEGIN
83

    
84
--		ROLLBACK TRANSACTION  
85
--		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  
86
--		RETURN -1 
87
--	END
88
--END
89
--- NEU BUOC XU LY LA DVCM
90
--- 16 04 2021 LUCTV BO SUNG VALIDATE
91
IF(EXISTS(SELECT REQ_ID FROM dbo.TR_REQUEST_DOC  WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='DVCM'))
92
BEGIN
93
	IF(EXISTS(
94
	SELECT PRC.ID FROM dbo.PL_REQUEST_PROCESS PR 
95
	LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD PRC ON PRC.PROCESS_ID=PR.ID
96
	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))
97
	BEGIN
98
		ROLLBACK TRANSACTION  
99
		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  
100
		RETURN -1
101
	END
102
	IF(NOT EXISTS(
103
	SELECT PRC.ID FROM dbo.PL_REQUEST_PROCESS PR 
104
	LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD PRC ON PRC.PROCESS_ID=PR.ID
105
	WHERE PR.PROCESS_ID='DVCM' AND PR.REQ_ID=@p_REQ_ID AND PRC.TYPE_JOB='XL' AND PRC.PROCESS_ID =@p_REF_ID ))
106
	BEGIN
107
		ROLLBACK TRANSACTION  
108
		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  
109
		RETURN -1 
110
	END
111
END
112
---
113

    
114
---------------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--------------------------
115
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)))
116
BEGIN
117
	ROLLBACK TRANSACTION  
118
	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) +
119
	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  
120
	RETURN -1 
121
END
122

    
123
DECLARE @IS_KT VARCHAR(15)
124
SET @IS_KT =(SELECT TOP 1 IS_KT FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID)
125
--- END LUCTV 08122020
126
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'))
127
OR(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='R')))
128
	BEGIN
129
		ROLLBACK TRANSACTION
130
		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
131
		RETURN -1
132
END
133
Declare @hdoc INT
134
	EXEC sp_xml_preparedocument @hdoc Output,@p_XMLDATA
135
	DECLARE @lstFILE TABLE(
136
	ATTACH_ID  VARCHAR(20),
137
	IS_READ	BIT 
138
	)
139
	INSERT INTO @lstFILE
140
	SELECT *
141
	FROM OPENXML(@hDoc,'/Root/ATTACH_FILE',2)
142
	WITH 
143
	(
144
		ATTACH_ID  VARCHAR(20),
145
		IS_READ	BIT  
146
	)
147

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

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

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

    
195
				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
196
		
197
				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)
198

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

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

    
269
				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' )))
270
					BEGIN
271
					DECLARE @COST_ID VARCHAR(20)
272
					DECLARE lstCostCenter CURSOR FOR
273
					SELECT COST_ID  FROM dbo.TR_REQUEST_COSTCENTER
274
					WHERE REQ_ID=@p_REQ_ID
275
					 OPEN lstCostCenter
276
		 			FETCH NEXT FROM lstCostCenter INTO @COST_ID
277
					WHILE @@FETCH_STATUS = 0 
278
					BEGIN 
279

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

    
283
					IF(NOT EXISTS(SELECT TOP 1 ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID  AND 
284
					(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
285
					LEFT JOIN dbo.PL_COSTCENTER_DT PCD ON PCD.COST_ID = PC.COST_ID
286
					WHERE PCD.BRANCH_ID=PL_REQUEST_PROCESS.BRANCH_ID AND PCD.DEP_ID=PL_REQUEST_PROCESS.DEP_ID)) ) ))
287
					BEGIN
288

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

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

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

    
413
				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)
414

    
415
				--IF(EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='DVCM'))
416
				--	SET @PROCESS_PARENT='DVCM'
417
				IF(NOT EXISTS(SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = 'GDK_TC')
418
				AND EXISTS(SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = 'DVCM'))
419
				BEGIN
420
					SET @PROCESS_PARENT='DVCM'
421
				END
422
				
423
				SET @IS_NEXT=(SELECT dbo.FN_CHECK_LIMIT_TR_REQ(@p_REQ_ID,'GDDV'))
424
				--SET @IS_NEXT=1
425
				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' ))) 
426
				BEGIN
427
				SET @DVDM_ID=(SELECT DVDM_ID FROM dbo.TL_SYSROLE_LIMIT WHERE LIMIT_TYPE='PDPYC')
428
				SET @ROLE_ID=(SELECT ROLE_ID FROM dbo.TL_SYSROLE_LIMIT WHERE LIMIT_TYPE='PDPYC')
429
				SET @NOTES =(SELECT ROLE_DESC FROM dbo.TL_SYSROLE WHERE ROLE_ID=@ROLE_ID)
430
				SET @DVDM_NAME= (SELECT DVDM_NAME FROM dbo.CM_DVDM WHERE DVDM_ID=@DVDM_ID)
431
				SET @NOTES = @NOTES + ' ' + @DVDM_NAME
432

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

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

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

    
504
						--INSERT INTO dbo.PL_REQUEST_PROCESS
505
						--(
506
						--	REQ_ID,
507
						--	PROCESS_ID,
508
						--	STATUS,
509
						--	ROLE_USER,
510
						--	BRANCH_ID,
511
						--	CHECKER_ID,
512
						--	APPROVE_DT,
513
						--	PARENT_PROCESS_ID,
514
						--	IS_LEAF,
515
						--	COST_ID,
516
						--	DVDM_ID,
517
						--	NOTES,
518
						--	IS_HAS_CHILD
519
						--)
520
						--VALUES
521
						--(  @p_REQ_ID,        -- REQ_ID - varchar(15)
522
						--   'PTGDK_CDT',        -- PROCESS_ID - varchar(10)
523
						--	'U',        -- STATUS - varchar(5)
524
						--	@ROLE_ID,        -- ROLE_USER - varchar(50)
525
						--	'',        -- BRANCH_ID - varchar(15)
526
						--	'',        -- CHECKER_ID - varchar(15)
527
						--	NULL, -- APPROVE_DT - datetime
528
						--	@PROCESS_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
529
						--	'',        -- IS_LEAF - varchar(1)
530
						--	'',        -- COST_ID - varchar(15)
531
						--	@DVDM_ID,        -- DVDM_ID - varchar(15)
532
						--	N'Chờ Phó Tổng Giám đốc khối Hỗ Trợ phê duyệt',   -- NOTES - nvarchar(500)
533
						--	0       -- IS_HAS_CHILD - bit
534
						--)
535
						--SET @PROCESS_PARENT= 'PTGDK_CDT'
536
						IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID ='GDK_PYC' AND DVDM_ID =@DVDM_ID))
537
						BEGIN
538
							SET @DVDM_ID = 'DM0000000000015' ---PHÒNG HỖ TRỢ
539
							SET @ROLE_ID = 'GDK' -- PHÓ TỔNG GIÁM ĐỐC KHỐI
540
							INSERT INTO dbo.PL_REQUEST_PROCESS
541
							(
542
								REQ_ID,
543
								PROCESS_ID,
544
								STATUS,
545
								ROLE_USER,
546
								BRANCH_ID,
547
								CHECKER_ID,
548
								APPROVE_DT,
549
								PARENT_PROCESS_ID,
550
								IS_LEAF,
551
								COST_ID,
552
								DVDM_ID,
553
								NOTES,
554
								IS_HAS_CHILD
555
							)
556
							VALUES
557
							(  @p_REQ_ID,        -- REQ_ID - varchar(15)
558
							   'GDK_PYC',        -- PROCESS_ID - varchar(10)
559
								'U',        -- STATUS - varchar(5)
560
								@ROLE_ID,        -- ROLE_USER - varchar(50)
561
								'',        -- BRANCH_ID - varchar(15)
562
								'',        -- CHECKER_ID - varchar(15)
563
								NULL, -- APPROVE_DT - datetime
564
								@PROCESS_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
565
								'',        -- IS_LEAF - varchar(1)
566
								'',        -- COST_ID - varchar(15)
567
								@DVDM_ID,        -- DVDM_ID - varchar(15)
568
								N'Chờ ' +@NOTES+N' phê duyệt',       -- NOTES - nvarchar(500)
569
								0       -- IS_HAS_CHILD - bit
570
								)
571
								SET @PROCESS_PARENT= 'GDK_PYC'
572
						END
573
					END
574
					-------------------TỜ TRÌNH CĐT CÓ CHECK GDK TÀI CHÍNH-----------
575
					IF(EXISTS (SELECT * FROM PL_APPOINT_CONTRACTOR WHERE TR_REQUEST_DOC_ID = @p_REQ_ID AND TYPE_PL <> 'TTCP' AND HAS_GDK_TC = 'Y'))
576
					BEGIN
577
						SET @DVDM_ID = 'DM0000000000017' --- PHÒNG TÀI CHÍNH
578
						SET @ROLE_ID = 'GDK'
579

    
580
						INSERT INTO dbo.PL_REQUEST_PROCESS
581
						(
582
							REQ_ID,
583
							PROCESS_ID,
584
							STATUS,
585
							ROLE_USER,
586
							BRANCH_ID,
587
							CHECKER_ID,
588
							APPROVE_DT,
589
							PARENT_PROCESS_ID,
590
							IS_LEAF,
591
							COST_ID,
592
							DVDM_ID,
593
							NOTES,
594
							IS_HAS_CHILD
595
						)
596
						VALUES
597
						(  @p_REQ_ID,        -- REQ_ID - varchar(15)
598
						   'GDK_CDT_TC',        -- PROCESS_ID - varchar(10)
599
							'U',        -- STATUS - varchar(5)
600
							@ROLE_ID,        -- ROLE_USER - varchar(50)
601
							'',        -- BRANCH_ID - varchar(15)
602
							'',        -- CHECKER_ID - varchar(15)
603
							NULL, -- APPROVE_DT - datetime
604
							@PROCESS_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
605
							'',        -- IS_LEAF - varchar(1)
606
							'',        -- COST_ID - varchar(15)
607
							@DVDM_ID,        -- DVDM_ID - varchar(15)
608
							N'Chờ Giám đốc khối Tài Chính phê duyệt',       -- NOTES - nvarchar(500)
609
							0       -- IS_HAS_CHILD - bit
610
						)
611
						SET @PROCESS_PARENT= 'GDK_CDT_TC'
612
					END
613
					---- LUCTV 17-03-2023 NEU TO TRINH ĐÃ LÀ CHỈ ĐỊNH THẦU THÌ TẠI PYCMS DÙ CÓ LÀM TỜ TRÌNH CĐT BAO NHIÊU ĐI CHĂNG NỮA CŨNG CHỈ DỪNG LẠI Ở GĐK HỖ TRỢ
614
					DECLARE @p_PL_REQ_ID VARCHAR(15)
615
					SET @p_PL_REQ_ID =(SELECT PL_REQ_ID FROM TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID)
616
					IF(NOT EXISTS (SELECT * FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID =@p_REQ_ID AND PL_REQDT_ID IN (SELECT REQDT_ID FROM PL_REQUEST_DOC_DT 
617
					WHERE REQ_ID =@p_PL_REQ_ID AND TRADE_TYPE = 'CDT')))
618
					BEGIN
619
					-------------------PCYMS CÓ TỜ TRÌNH CĐT VƯỢT HẠN MỨC TGD-------
620
					IF(@p_TOTAL_AMT_REQ_DOC > @p_LIMIT_TGD)
621
					BEGIN
622
						----------------Qua thư ký TGĐ trc-----------------
623
						--SET @DVDM_ID = 'DM0000000000013'
624
						SET @DVDM_ID = NULL
625
						SET @ROLE_ID = 'TKTGD'
626
						INSERT INTO dbo.PL_REQUEST_PROCESS
627
						(
628
							REQ_ID,
629
							PROCESS_ID,
630
							STATUS,
631
							ROLE_USER,
632
							BRANCH_ID,
633
							CHECKER_ID,
634
							APPROVE_DT,
635
							PARENT_PROCESS_ID,
636
							IS_LEAF,
637
							COST_ID,
638
							DVDM_ID,
639
							NOTES,
640
							IS_HAS_CHILD
641
						)
642
						VALUES
643
						(  @p_REQ_ID,        -- REQ_ID - varchar(15)
644
						   'TKTGD_CDT',        -- PROCESS_ID - varchar(10)
645
							'U',        -- STATUS - varchar(5)
646
							@ROLE_ID,        -- ROLE_USER - varchar(50)
647
							'',        -- BRANCH_ID - varchar(15)
648
							'',        -- CHECKER_ID - varchar(15)
649
							NULL, -- APPROVE_DT - datetime
650
							@PROCESS_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
651
							'',        -- IS_LEAF - varchar(1)
652
							'',        -- COST_ID - varchar(15)
653
							@DVDM_ID,        -- DVDM_ID - varchar(15)
654
							N'Chờ Thư ký Tổng Giám đốc phê duyệt',   -- NOTES - nvarchar(500)
655
							0       -- IS_HAS_CHILD - bit
656
						)
657
						SET @PROCESS_PARENT= 'TKTGD_CDT'
658

    
659
						---------------Qua TGĐ------------------
660
						--SET @DVDM_ID = 'DM0000000000013'
661
						SET @DVDM_ID = NULL
662
						SET @ROLE_ID = 'TGD'
663
						INSERT INTO dbo.PL_REQUEST_PROCESS
664
						(
665
							REQ_ID,
666
							PROCESS_ID,
667
							STATUS,
668
							ROLE_USER,
669
							BRANCH_ID,
670
							CHECKER_ID,
671
							APPROVE_DT,
672
							PARENT_PROCESS_ID,
673
							IS_LEAF,
674
							COST_ID,
675
							DVDM_ID,
676
							NOTES,
677
							IS_HAS_CHILD
678
						)
679
						VALUES
680
						(  @p_REQ_ID,        -- REQ_ID - varchar(15)
681
						   'TGD_CDT',        -- PROCESS_ID - varchar(10)
682
							'U',        -- STATUS - varchar(5)
683
							@ROLE_ID,        -- ROLE_USER - varchar(50)
684
							'',        -- BRANCH_ID - varchar(15)
685
							'',        -- CHECKER_ID - varchar(15)
686
							NULL, -- APPROVE_DT - datetime
687
							@PROCESS_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
688
							'',        -- IS_LEAF - varchar(1)
689
							'',        -- COST_ID - varchar(15)
690
							@DVDM_ID,        -- DVDM_ID - varchar(15)
691
							N'Chờ Tổng Giám đốc phê duyệt',   -- NOTES - nvarchar(500)
692
							0       -- IS_HAS_CHILD - bit
693
						)
694
						SET @PROCESS_PARENT= 'TGD_CDT'
695
					END
696
				END
697
				----------------------------END BAODNQ 11/6/2022------------------
698
				END -- LUCTV 17-03-2023 NEU TO TRINH ĐÃ LÀ CHỈ ĐỊNH THẦU THÌ TẠI PYCMS DÙ CÓ LÀM TỜ TRÌNH CĐT BAO NHIÊU ĐI CHĂNG NỮA CŨNG CHỈ DỪNG LẠI Ở GĐK HỖ TRỢ
699
				INSERT INTO dbo.PL_REQUEST_PROCESS
700
				(
701
				    REQ_ID,
702
				    PROCESS_ID,
703
				    STATUS,
704
				    ROLE_USER,
705
				    BRANCH_ID,
706
				    CHECKER_ID,
707
				    APPROVE_DT,
708
				    PARENT_PROCESS_ID,
709
				    IS_LEAF,
710
				    COST_ID,
711
				    DVDM_ID,
712
				    NOTES,
713
				    IS_HAS_CHILD
714
				)
715
				VALUES
716
				(   @p_REQ_ID,        -- REQ_ID - varchar(15)
717
				    'APPROVE',        -- PROCESS_ID - varchar(10)
718
				    'U',        -- STATUS - varchar(5)
719
				    '',        -- ROLE_USER - varchar(50)
720
				    '',        -- BRANCH_ID - varchar(15)
721
				    '',        -- CHECKER_ID - varchar(15)
722
				    NULL, -- APPROVE_DT - datetime
723
				    @PROCESS_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
724
				    'N',        -- IS_LEAF - varchar(1)
725
				    '',        -- COST_ID - varchar(15)
726
				    '',        -- DVDM_ID - varchar(15)
727
				    N'Hoàn tất',       -- NOTES - nvarchar(500)
728
				    NULL       -- IS_HAS_CHILD - bit
729
				    )
730
				DECLARE @PROCESS_NEXT_ID VARCHAR(10)
731
				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)
732

    
733
				
734
				
735
				UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='C' WHERE REQ_ID=@p_REQ_ID AND PARENT_PROCESS_ID=@p_PROCESS_ID
736
				UPDATE dbo.TR_REQUEST_DOC SET PROCESS_ID=@PROCESS_NEXT_ID WHERE REQ_ID=@p_REQ_ID
737
				
738
				END -- KET THUC DMMS
739
				ELSE IF(@p_PROCESS_ID='DVCM')
740
				BEGIN
741

    
742
						DECLARE @DEP_ID VARCHAR(15),@BRANCH_ID VARCHAR(15),@PROCESS_NEXT VARCHAR(10)
743

    
744
							SET @DEP_ID=(SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID)
745
							SET @BRANCH_ID=(SELECT TLSUBBRID FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID)
746
							SET @ROLE_ID=(SELECT RoleName FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID)
747
							-- LUCTV 07082020 KIEM TRA NEU ROLE KHAC ROLE GDDV THI PHAI CHUYEN ROLE THANH GDDV
748
							--IF(@ROLE_ID ='KTT')
749
							--BEGIN
750
							--	SET @ROLE_ID ='GDDV'
751
							--END
752
							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)
753
						
754

    
755
						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
756
																																	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)))
757
						UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='P',CHECKER_ID=@p_MAKER_ID,
758
						APPROVE_DT=GETDATE() ,NOTES=N'Đơn vị chuyên môn xác nhận' 
759
						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
760
																																	dbo.PL_COSTCENTER_DT PT ON PT.COST_ID=PC.COST_ID
761
																																	WHERE BRANCH_ID=@BRANCH_ID AND (DEP_ID=@DEP_ID OR DEP_ID IN (SELECT * FROM @DEP_AUTH)))
762
						
763
						IF(NOT EXISTS( SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@p_PROCESS_ID AND REQ_ID=@p_REQ_ID AND STATUS='C'))
764
						BEGIN
765
						
766
										UPDATE dbo.PL_REQUEST_PROCESS SET [STATUS]='C' WHERE PROCESS_ID=@PROCESS_NEXT AND REQ_ID=@p_REQ_ID
767
										UPDATE dbo.TR_REQUEST_DOC SET PROCESS_ID=@PROCESS_NEXT WHERE REQ_ID=@p_REQ_ID
768

    
769
										----------------BAODNQ 6/7/2022-----------------
770
										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 = '')))
771
										BEGIN
772
											DECLARE @p_PROCESS_NOTES NVARCHAR(MAX)
773
											IF(@PROCESS_NEXT = 'GDK_TC')
774
											BEGIN
775
												SET @p_PROCESS_NOTES = N'Chờ Giám đốc khối Tài Chính phê duyệt'
776
											END
777
											ELSE IF(@PROCESS_NEXT = 'GDK_PYC')
778
											BEGIN
779
												SET @NOTES =(SELECT ROLE_DESC FROM dbo.TL_SYSROLE WHERE ROLE_ID='GDK')
780
												SET @p_PROCESS_NOTES = N'Chờ ' +@NOTES+N' phê duyệt'
781
											END
782

    
783
											UPDATE PL_REQUEST_PROCESS SET 
784
												NOTES = @p_PROCESS_NOTES
785
											WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = @PROCESS_NEXT
786
										END
787
										
788
										----------------END BAODNQ 6/7/2022-----------------
789
						
790
						END
791
				END
792

    
793
			--IF(@PROCESS_NEXT='APPROVE')
794
			IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE PROCESS_ID ='APPROVE' AND REQ_ID =@p_REQ_ID))
795
			BEGIN
796
				DECLARE @TempTB TABLE
797
				(
798
					TOTAL_AMT DECIMAL(18,2),
799
					TRADE_ID VARCHAR(20),
800
					PLAN_ID VARCHAR(20)
801
				)
802
				INSERT INTO @TempTB			
803
				SELECT SUM(DT.TOTAL_AMT) TOTAL_AMT,PLDT.TRADE_ID,PLDT.PLAN_ID FROM dbo.TR_REQUEST_DOC_DT DT 
804
				LEFT JOIN dbo.PL_REQUEST_DOC_DT PLDT ON DT.PL_REQDT_ID=PLDT.REQDT_ID
805
				WHERE TRAN_TYPE_ID  IN (SELECT TRN_TYPE FROM dbo.CM_TRAN_TYPE WHERE NOTES='XK') AND DT.REQ_DOC_ID=@p_REQ_ID
806
				GROUP BY	PLDT.TRADE_ID,PLDT.PLAN_ID
807
				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)
808

    
809
				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')))
810
					EXEC dbo.TR_REQ_DOC_Ins_To_PO @p_TR_REQ_ID = @p_REQ_ID -- varchar(15)
811
				
812

    
813
				------------BAODNQ 26/3/2022: Duyệt bb xét giá khi duyệt PYCMS hoàn tất------------
814
				DECLARE @p_TR_REQUEST_DOC_TOTAL_AMT DECIMAL(18,0),
815
						@p_RECORD_ID_100 VARCHAR(15), --bb xét giá dưới 100
816
						@p_RECORD_ID_100_500 VARCHAR(15), -- bb xét giá 100-500
817
						@p_RECORD_ID_500 VARCHAR(15) --bb xét giá trên 500
818
				
819
				SET @p_TR_REQUEST_DOC_TOTAL_AMT = (
820
					SELECT TOTAL_AMT FROM TR_REQUEST_DOC WHERE REQ_ID = @p_REQ_ID
821
				)
822
				
823
				SET @p_RECORD_ID_100 = (SELECT RECORD_ID FROM TR_REQ_DOC_XETGIA_DUOI_100M WHERE REQ_DOC_ID = @p_REQ_ID)
824
				SET @p_RECORD_ID_100_500 = (SELECT RECORD_ID FROM TR_REQ_DOC_XETGIA_100M_500M WHERE REQ_DOC_ID = @p_REQ_ID)
825
				SET @p_RECORD_ID_500 = (SELECT RECORD_ID FROM TR_REQ_DOC_XETGIA_TREN_500M WHERE REQ_DOC_ID = @p_REQ_ID)
826

    
827

    
828
					----------TH BB XÉT GIÁ DƯỚI 100TR------
829
				--IF(@p_TR_REQUEST_DOC_TOTAL_AMT < 100000000)
830
				--BEGIN
831
				--	SET @p_RECORD_ID = (
832
				--		SELECT RECORD_ID FROM TR_REQ_DOC_XETGIA_DUOI_100M WHERE REQ_DOC_ID = @p_REQ_ID
833
				--	)
834

    
835
				--	IF(@p_RECORD_ID IS NULL OR @p_RECORD_ID = '')
836
				--	BEGIN
837
				--		ROLLBACK TRANSACTION
838
				--		SELECT '-1' as Result, N'Biên bản xét giá không tồn tại' ErrorDesc
839
				--		RETURN '-1'
840
				--	END
841
				--		-------DUYỆT BB XÉT GIÁ---------
842
				--	UPDATE TR_REQ_DOC_XETGIA_DUOI_100M SET
843
				--		AUTH_STATUS = 'A',
844
				--		CHECKER_ID = @p_TLNAME,
845
				--		APPROVE_DT = GETDATE()
846
				--	WHERE RECORD_ID = @p_RECORD_ID
847
				--	IF @@ERROR <> 0 GOTO ABORT
848
				--END
849
				IF(@p_RECORD_ID_100 IS NOT NULL AND @p_RECORD_ID_100 <> '')
850
				BEGIN
851
						-------DUYỆT BB XÉT GIÁ---------
852
					UPDATE TR_REQ_DOC_XETGIA_DUOI_100M SET
853
						AUTH_STATUS = 'A',
854
						CHECKER_ID = @p_TLNAME,
855
						APPROVE_DT = GETDATE()
856
					WHERE RECORD_ID = @p_RECORD_ID_100
857
					IF @@ERROR <> 0 GOTO ABORT
858
				END
859

    
860
					----------TH BB XÉT GIÁ TỪ 100TR - 500TR------
861
				--ELSE IF (@p_TR_REQUEST_DOC_TOTAL_AMT >= 100000000 AND @p_TR_REQUEST_DOC_TOTAL_AMT < 500000000)
862
				--BEGIN
863
				--	SET @p_RECORD_ID = (
864
				--		SELECT RECORD_ID FROM TR_REQ_DOC_XETGIA_100M_500M WHERE REQ_DOC_ID = @p_REQ_ID
865
				--	)
866

    
867
				--	IF(@p_RECORD_ID IS NULL OR @p_RECORD_ID = '')
868
				--	BEGIN
869
				--		ROLLBACK TRANSACTION
870
				--		SELECT '-1' as Result, N'Biên bản xét giá không tồn tại' ErrorDesc
871
				--		RETURN '-1'
872
				--	END
873
				--		-------DUYỆT BB XÉT GIÁ---------
874
				--	UPDATE TR_REQ_DOC_XETGIA_100M_500M SET
875
				--		AUTH_STATUS = 'A',
876
				--		CHECKER_ID = @p_TLNAME,
877
				--		APPROVE_DT = GETDATE()
878
				--	WHERE RECORD_ID = @p_RECORD_ID
879
				--	IF @@ERROR <> 0 GOTO ABORT
880
				--END
881
				ELSE IF (@p_RECORD_ID_100_500 IS NOT NULL AND @p_RECORD_ID_100_500 <> '')
882
				BEGIN
883
					-----DUYỆT BB XÉT GIÁ---------
884
					UPDATE TR_REQ_DOC_XETGIA_100M_500M SET
885
						AUTH_STATUS = 'A',
886
						CHECKER_ID = @p_TLNAME,
887
						APPROVE_DT = GETDATE()
888
					WHERE RECORD_ID = @p_RECORD_ID_100_500
889
					IF @@ERROR <> 0 GOTO ABORT
890
				END
891

    
892
					----------TH BB XÉT GIÁ TRÊN 500TR------
893
				--ELSE
894
				--BEGIN
895
				--	SET @p_RECORD_ID = (
896
				--		SELECT RECORD_ID FROM TR_REQ_DOC_XETGIA_TREN_500M WHERE REQ_DOC_ID = @p_REQ_ID
897
				--	)
898

    
899
				--	IF(@p_RECORD_ID IS NULL OR @p_RECORD_ID = '')
900
				--	BEGIN
901
				--		ROLLBACK TRANSACTION
902
				--		SELECT '-1' as Result, N'Biên bản xét giá không tồn tại' ErrorDesc
903
				--		RETURN '-1'
904
				--	END
905
				--		-------DUYỆT BB XÉT GIÁ---------
906
				--	UPDATE TR_REQ_DOC_XETGIA_TREN_500M SET
907
				--		AUTH_STATUS = 'A',
908
				--		CHECKER_ID = @p_TLNAME,
909
				--		APPROVE_DT = GETDATE()
910
				--	WHERE RECORD_ID = @p_RECORD_ID
911
				--	IF @@ERROR <> 0 GOTO ABORT
912
				--END
913
				ELSE IF (@p_RECORD_ID_500 IS NOT NULL AND @p_RECORD_ID_500 <> '')
914
				BEGIN
915
					-------DUYỆT BB XÉT GIÁ---------
916
					UPDATE TR_REQ_DOC_XETGIA_TREN_500M SET
917
						AUTH_STATUS = 'A',
918
						CHECKER_ID = @p_TLNAME,
919
						APPROVE_DT = GETDATE()
920
					WHERE RECORD_ID = @p_RECORD_ID_500
921
					IF @@ERROR <> 0 GOTO ABORT
922
				END
923
				--------------END BAODNQ 26/3/2022----------------
924
			END
925
		END
926
				
927
		IF @@Error <> 0 GOTO ABORT
928
COMMIT TRANSACTION
929
SELECT 0 as Result, '' ErrorDesc
930
RETURN 0
931
ABORT:
932
BEGIN
933
		ROLLBACK TRANSACTION
934
		SELECT -1 as Result, '' ErrorDesc
935
		RETURN -1
936
End