Project

General

Profile

PL_REQ_PROCESS_CHILD_App.txt

Luc Tran Van, 11/15/2022 08:58 AM

 
1
ALTER PROCEDURE dbo.PL_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_IS_AUTHORITY bit
10
AS
11
BEGIN TRANSACTION
12
DECLARE @IS_AUTH_HDQT_NOTES NVARCHAR(6), @IS_AUTHORITY_HDQT VARCHAR(1),@IS_NEXT_HDQT BIT
13
SET @IS_AUTHORITY_HDQT='N'
14
IF(RIGHT(@p_PROCESS_DES,7)=N'KTMHĐQT')
15
BEGIN
16
	SET @IS_AUTHORITY_HDQT='Y'
17
	SET @IS_AUTH_HDQT_NOTES=N''
18
	SET @p_PROCESS_DES = LEFT(@p_PROCESS_DES, LEN(@p_PROCESS_DES)-7)
19
END
20
IF(RIGHT(@p_PROCESS_DES,6)=N'TMHĐQT')
21
BEGIN
22
	SET @IS_AUTHORITY_HDQT='Y'
23
	SET @IS_AUTH_HDQT_NOTES=N'TMHĐQT'
24
	SET @p_PROCESS_DES = LEFT(@p_PROCESS_DES, LEN(@p_PROCESS_DES)-6)
25
END
26
--- LUCTV 20102022: NEU TO TRINH DIEU CHUYEN <=10 TRIEU THI KHONG DI QUA DVDM_DC NGAN SACH
27
DECLARE @TOTAL_AMT_TRANSFER DECIMAL(18,0)
28
SET @TOTAL_AMT_TRANSFER =(SELECT SUM(TOTAL_AMT) AS TOTAL_AMT FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID = @p_REQ_ID)
29
---END LUCTV
30
---LUCTV KIEM TRA NEU TO TRINH DANG BI TRA VE THI KHONG DUOC PHEP DUYET
31
IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_REQ_ID AND STATUS_JOB ='R') OR (EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND AUTH_STATUS ='R'))
32
OR(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='R')))
33
BEGIN
34
	ROLLBACK TRANSACTION
35
	SELECT -1 as Result, N'Tờ trình chủ trương số: '+(SELECT REQ_CODE FROM PL_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
36
	RETURN -1
37
END
38
--- LUCTV 13042021 KIEM TRA NEU LA CAP TKTGD : CO THE DUYET BAT CU LUC NAO, KO CAN PHAI THONG QUA DIEU PHOI
39
DECLARE @ROLE_USER_VP VARCHAR(15)
40
-- KHAI BAO THEM ROLE NHAN UY QUYEN
41
DECLARE @TABLE_ROLE TABLE (ROLE_AUTH VARCHAR(50))
42
SET @ROLE_USER_VP = (SELECT ROLENAME FROM TL_USER WHERE TLNANME =@p_MAKER_ID)
43
INSERT INTO @TABLE_ROLE SELECT @ROLE_USER_VP
44
INSERT INTO @TABLE_ROLE SELECT ROLE_NEW FROM TL_SYS_ROLE_MAPPING WHERE ROLE_OLD =@ROLE_USER_VP AND 
45
(CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) AND CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR (EFF_DATE IS NULL OR EXP_DATE IS NULL))
46
 --KIEM TRA NEU DANG CHO TKTGD
47
IF((SELECT PROCESS_ID FROM PL_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID) ='TKTGD' AND NOT EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = @p_REQ_ID AND STATUS_JOB = 'C' AND LEVEL_JOB = 1))
48
BEGIN
49
	IF(@ROLE_USER_VP IN (@ROLE_USER_VP))
50
	BEGIN
51
		SET @p_REF_ID =(SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND PROCESS_ID ='TKTGD' AND STATUS ='C')
52
		IF @p_REF_ID IS NULL OR @p_REF_ID =''
53
		BEGIN
54
			ROLLBACK TRANSACTION  
55
			SELECT -1 Result, N'Tờ trình chủ trương số: '+(SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID) +N' chưa tới bước xử lý của Văn Phòng Thư Ký TGĐ. Vui lòng đợi quy trình!' ErrorDesc  
56
			RETURN -1 
57
		END
58
		ELSE
59
		BEGIN
60
			UPDATE PL_REQUEST_PROCESS SET STATUS ='P', CHECKER_ID =@p_MAKER_ID,APPROVE_DT = GETDATE(), NOTES =N'Thư Ký TGĐ đã duyệt' WHERE REQ_ID =@p_REQ_ID AND ID =@p_REF_ID
61
			-- LAY REF ID CUA TGD
62
			SET @p_REF_ID = (SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND PROCESS_ID ='TGD')
63
			UPDATE PL_REQUEST_PROCESS SET STATUS ='C', CHECKER_ID ='',APPROVE_DT = NULL WHERE REQ_ID =@p_REQ_ID AND ID =@p_REF_ID
64
			UPDATE PL_REQUEST_DOC SET PROCESS_ID ='TGD' WHERE REQ_ID =@p_REQ_ID
65
			UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE REQ_ID =@p_REQ_ID
66
			--IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE ISNULL(TK_TGD_NOTES,'') ='' AND REQ_ID =@p_REQ_ID))
67
			--BEGIN
68
			--	UPDATE PL_REQUEST_DOC SET TK_TGD_NOTES =@p_PROCESS_DES WHERE REQ_ID =@p_REQ_ID
69
			--END
70
			UPDATE PL_REQUEST_DOC SET TK_TGD_NOTES =@p_PROCESS_DES WHERE REQ_ID =@p_REQ_ID
71
			--- INSERT VAO LOG
72
			INSERT INTO dbo.PL_PROCESS (REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES) VALUES( @p_REQ_ID,@p_PROCESS_ID,@p_MAKER_ID, GETDATE() , @p_PROCESS_DES ,
73
			N'Thư Ký TGD đã phê duyệt')
74
			------
75
			COMMIT TRANSACTION
76
			SELECT 0 as Result, 
77
				N'Thư ký TGĐ đã phê duyệt thành công' ErrorDesc
78
			RETURN 0
79
		END
80
	END
81
END
82
ELSE IF((SELECT PROCESS_ID FROM PL_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID) ='TKHDQT' AND NOT EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = @p_REQ_ID AND STATUS_JOB = 'C' AND LEVEL_JOB = 1))
83
BEGIN
84
	IF(@ROLE_USER_VP IN (@ROLE_USER_VP))
85
	BEGIN
86
		SET @p_REF_ID =(SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND PROCESS_ID ='TKHDQT' AND STATUS ='C')
87
		IF @p_REF_ID IS NULL OR @p_REF_ID =''
88
		BEGIN
89
			ROLLBACK TRANSACTION  
90
			SELECT -1 Result, N'Tờ trình chủ trương số: '+(SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID) +N' chưa tới bước xử lý của Văn Phòng Thư Ký HĐQT. Vui lòng đợi quy trình!' ErrorDesc  
91
			RETURN -1 
92
		END
93
		ELSE
94
		BEGIN
95
			UPDATE PL_REQUEST_PROCESS SET STATUS ='P', CHECKER_ID =@p_MAKER_ID,APPROVE_DT = GETDATE(), NOTES =N'Văn phòng HĐQT đã duyệt' WHERE REQ_ID =@p_REQ_ID AND ID =@p_REF_ID
96
			-- LAY REF ID CUA TGD
97
			SET @p_REF_ID = (SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND PROCESS_ID ='HDQT')
98
			UPDATE PL_REQUEST_PROCESS SET STATUS ='C', CHECKER_ID ='',APPROVE_DT = NULL WHERE REQ_ID =@p_REQ_ID AND ID =@p_REF_ID
99
			UPDATE PL_REQUEST_DOC SET PROCESS_ID ='HDQT' WHERE REQ_ID =@p_REQ_ID
100
			UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE REQ_ID =@p_REQ_ID
101
			IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE ISNULL(TK_HDQT_NOTES,'') ='' AND REQ_ID =@p_REQ_ID))
102
			BEGIN
103
				UPDATE PL_REQUEST_DOC SET TK_HDQT_NOTES =@p_PROCESS_DES, OTHER_NOTES =@IS_AUTH_HDQT_NOTES WHERE REQ_ID =@p_REQ_ID
104
			END
105
			UPDATE PL_REQUEST_DOC SET  OTHER_NOTES =@IS_AUTH_HDQT_NOTES, IS_AUTHORITY = @p_IS_AUTHORITY WHERE REQ_ID =@p_REQ_ID
106
			--- INSERT VAO LOG
107
			INSERT INTO dbo.PL_PROCESS (REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES) 
108
			VALUES( @p_REQ_ID,@p_PROCESS_ID,@p_MAKER_ID, GETDATE() , @p_PROCESS_DES ,N'Văn phòng HĐQT đã phê duyệt')
109
			------
110
			COMMIT TRANSACTION
111
			SELECT 0 as Result, N'Văn phòng HĐQT đã phê duyệt thành công' ErrorDesc
112
			RETURN 0
113
		END
114
	END
115
END
116
ELSE IF((SELECT PROCESS_ID FROM PL_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID) IN ('DVCM','DVDM_DC') AND NOT EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = @p_REQ_ID AND STATUS_JOB = 'C'))
117
BEGIN
118
	IF (NOT EXISTS(SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND PROCESS_ID IN ('DVCM','DVDM_DC') AND STATUS ='C' AND ID = @p_REF_ID))
119
	BEGIN
120
		ROLLBACK TRANSACTION  
121
		SELECT -1 Result, N'Tờ trình chủ trương số: '+(SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID) +N' chưa tới bước xử lý của đơn vị chuyên môn. Vui lòng đợi quy trình!' ErrorDesc  
122
		RETURN -1 
123
	END
124
	ELSE
125
	BEGIN
126
		---------BAODNQ 23/6/2022 : Update trạng thái duyệt khi trưởng DVCM duyệt-------------
127
		DECLARE @p_BRANCH_LOGIN_ID VARCHAR(15), @p_DEP_LOGIN_ID VARCHAR(15)
128
		SET @p_BRANCH_LOGIN_ID = (SELECT TLSUBBRID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
129
		SET @p_DEP_LOGIN_ID = (SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
130
		
131
		UPDATE dbo.PL_REQUEST_COSTCENTER SET 
132
      NOTES = @p_PROCESS_DES,
133
			AUTH_STATUS='A',
134
			APPROVE_DT=GETDATE(),
135
			CHECKER_ID=@p_MAKER_ID
136
		WHERE REQ_ID=@p_REQ_ID 
137
		AND COST_ID IN(
138
			SELECT PC.DVDM_ID FROM PL_COSTCENTER PC
139
			LEFT JOIN PL_COSTCENTER_DT PCD ON PC.COST_ID = PCD.COST_ID
140
			WHERE PCD.BRANCH_ID = @p_BRANCH_LOGIN_ID 
141
			AND (PCD.DEP_ID = @p_DEP_LOGIN_ID OR PCD.DEP_ID IN (SELECT DEP_ID FROM TL_SYS_ROLE_MAPPING WHERE TLNAME = @p_MAKER_ID))
142
		) 
143
		-----------------------END BAODNQ-------------
144
		UPDATE PL_REQUEST_PROCESS SET STATUS ='P', CHECKER_ID =@p_MAKER_ID,APPROVE_DT = GETDATE(), NOTES =N'Đơn vị chuyên môn đã xác nhận' WHERE REQ_ID =@p_REQ_ID AND ID =@p_REF_ID AND PROCESS_ID ='DVCM'
145
		UPDATE PL_REQUEST_PROCESS SET STATUS ='P', CHECKER_ID =@p_MAKER_ID,APPROVE_DT = GETDATE(), NOTES =N'Đơn vị đầu mối quản lý ngân sách cho - nhận đã xác nhận' WHERE REQ_ID =@p_REQ_ID AND ID =@p_REF_ID AND PROCESS_ID ='DVDM_DC'
146

    
147
		IF(NOT EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND STATUS ='C' AND PROCESS_ID ='DVCM')
148
					AND (EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID ='DVCM')))
149
		BEGIN
150
			
151
			UPDATE dbo.PL_REQUEST_PROCESS SET STATUS = 'C', CHECKER_ID ='',APPROVE_DT = NULL WHERE REQ_ID =@p_REQ_ID AND PARENT_PROCESS_ID = 'DVCM'
152
			UPDATE PL_REQUEST_DOC SET PROCESS_ID = (SELECT TOP 1 PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND PARENT_PROCESS_ID = 'DVCM') WHERE REQ_ID =@p_REQ_ID
153
			INSERT INTO dbo.PL_PROCESS (REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES) 
154
			VALUES( @p_REQ_ID,@p_PROCESS_ID,@p_MAKER_ID, GETDATE() , @p_PROCESS_DES ,N'Đơn vị chuyên môn đã phê duyệt')
155
			COMMIT TRANSACTION
156
			SELECT 0 as Result, N'Trưởng đơn vị chuyên môn đã phê duyệt thành công KKK' ErrorDesc
157
			RETURN 0
158
		END
159
		ELSE IF(NOT EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND STATUS ='C' AND PROCESS_ID ='DVDM_DC')
160
			AND (EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID ='DVDM_DC')))
161
		BEGIN
162
			UPDATE dbo.PL_REQUEST_PROCESS SET STATUS = 'C', CHECKER_ID ='',APPROVE_DT = NULL WHERE REQ_ID =@p_REQ_ID AND PARENT_PROCESS_ID = 'DVDM_DC'
163
			UPDATE PL_REQUEST_DOC SET PROCESS_ID = (SELECT TOP 1 PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND PARENT_PROCESS_ID = 'DVDM_DC') WHERE REQ_ID =@p_REQ_ID
164
			INSERT INTO dbo.PL_PROCESS (REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES) 
165
			VALUES( @p_REQ_ID,@p_PROCESS_ID,@p_MAKER_ID, GETDATE() , @p_PROCESS_DES ,N'Đơn vị đầu mối quản lý ngân sách cho - nhận đã phê duyệt')
166
			COMMIT TRANSACTION
167
			SELECT 0 as Result, N'Trưởng đơn vị đầu mối quản lý ngân sách đã phê duyệt thành công' ErrorDesc
168
			RETURN 0
169
		END
170
	END
171
END
172
ELSE IF((SELECT PROCESS_ID FROM PL_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID) ='TC'
173
  AND NOT EXISTS(SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND STATUS = 'C' AND SUB_PROCESS_ID IS NOT NULL AND SUB_PROCESS_ID LIKE '%DVDC%'))
174
  BEGIN
175
--    UPDATE PL_REQUEST_PROCESS SET STATUS ='P', CHECKER_ID =@p_MAKER_ID,APPROVE_DT = GETDATE(), NOTES =N'Tài Chính đã duyệt' WHERE REQ_ID =@p_REQ_ID AND ID =@p_REF_ID
176
--    UPDATE dbo.PL_REQUEST_PROCESS SET STATUS = 'C', CHECKER_ID ='',APPROVE_DT = NULL WHERE REQ_ID =@p_REQ_ID AND PARENT_PROCESS_ID = 'TC'
177
--    UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB = 'P' WHERE PROCESS_ID = @p_REF_ID AND REQ_ID = @p_REQ_ID
178
  	UPDATE PL_REQUEST_DOC SET TC_NOTES =@p_PROCESS_DES, PROCESS_ID = (SELECT TOP 1 PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND PARENT_PROCESS_ID = 'TC') WHERE REQ_ID =@p_REQ_ID
179
    IF(EXISTS(SELECT prp.ID FROM PL_REQUEST_PROCESS prp WHERE prp.REQ_ID = @p_REQ_ID AND prp.ID = @p_REF_ID AND prp.SUB_PROCESS_ID LIKE '%DVCM%'))
180
    BEGIN
181
      UPDATE PL_REQUEST_COSTCENTER SET NOTES = @p_PROCESS_DES,
182
			AUTH_STATUS='A',
183
			APPROVE_DT=GETDATE(),
184
			CHECKER_ID=@p_MAKER_ID
185
      WHERE REQ_ID = @p_REQ_ID AND COST_ID = 'DM0000000000003' AND AUTH_STATUS <> 'A'
186
    END
187
  	--- INSERT VAO LOG
188
  	INSERT INTO dbo.PL_PROCESS (REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES) 
189
  	VALUES( @p_REQ_ID,@p_PROCESS_ID,@p_MAKER_ID, GETDATE() , @p_PROCESS_DES ,N'Tài Chính đã phê duyệt')
190
  	------
191
--  	COMMIT TRANSACTION
192
--  	SELECT '0' as Result, N'Tài Chính đã phê duyệt thành công' ErrorDesc
193
--  	RETURN '0'
194
  END
195
 --END CODE LUCTV 13 04 2021
196
IF(EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_PROCESS  WHERE REQ_ID=@p_REQ_ID AND IS_HAS_CHILD=1 AND STATUS='C' AND PROCESS_ID NOT IN ('TKTGD','TKHDQT','DVCM','DVDM_DC','TC')))
197
BEGIN
198
	IF(EXISTS(
199
	SELECT PRC.ID FROM dbo.PL_REQUEST_PROCESS PR 
200
	LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD PRC ON PRC.PROCESS_ID=PR.ID
201
	WHERE  PR.REQ_ID=@p_REQ_ID AND PRC.TYPE_JOB='XL' AND PRC.STATUS_JOB='C' AND PRC.PROCESS_ID =@p_REF_ID))
202
	BEGIN
203
		ROLLBACK TRANSACTION  
204
		SELECT -1 Result, N'Tờ trình chủ trương số: '+(SELECT REQ_CODE FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID) +N' chưa được xử lý. Vui lòng thực hiện điều phối hoặc đợi nhân viên xử lý phiếu và gửi phê duyệt!' ErrorDesc  
205
		RETURN -1
206
	END
207

    
208
	IF(NOT EXISTS(
209
	SELECT PRC.ID FROM dbo.PL_REQUEST_PROCESS PR 
210
	LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD PRC ON PRC.PROCESS_ID=PR.ID
211
	WHERE  (PR.REQ_ID=@p_REQ_ID AND PRC.TYPE_JOB='XL' AND PRC.PROCESS_ID =@p_REF_ID)
212
    OR (PR.REQ_ID=@p_REQ_ID AND PR.PROCESS_ID='TC' AND (PR.SUB_PROCESS_ID IS NULL OR PR.SUB_PROCESS_ID NOT LIKE '%DVDC%') AND PRC.PROCESS_ID =@p_REF_ID)))
213
	BEGIN
214
		ROLLBACK TRANSACTION  
215
		SELECT -1 Result, N'Tờ trình chủ trương số: '+(SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID) +N' chưa điều phối xử lý. Vui lòng thực hiện điều phối hoặc đợi viên xử lý phiếu và gửi phê duyệt!' ErrorDesc  
216
		RETURN -1 
217
	END
218
END
219
DECLARE  @ERROR BIT ,@EROOR_DES NVARCHAR(500)
220
SELECT @ERROR=ERROR,
221
       @EROOR_DES=ERROR_DES FROM dbo.FN_CHECK_VALIDATE_APP(@p_REQ_ID,'PDDC','PL_REQUEST_DOC',@p_MAKER_ID,'DVKD')
222
IF(@ERROR=1)
223
BEGIN
224
	 ROLLBACK TRANSACTION;
225
    SELECT -1  Result,
226
           @EROOR_DES ErrorDesc
227
   
228
    RETURN 0;
229
END
230

    
231
DECLARE @LEVEL INT,@DEP_ID VARCHAR(20),@BRANCH_ID VARCHAR(20),@BRANCH_CREATE VARCHAR(20),@DEP_CREATE VARCHAR(20),@STEP_PARENT VARCHAR(20)
232
DECLARE @ROLE_ID VARCHAR(20),@NOTES NVARCHAR(500),
233
				@PROCESS_CURR VARCHAR(10),
234
				@STEP_CURR INT,
235
				@STEP_NEXT VARCHAR(20),
236
				@PROCESS_NEXT VARCHAR(10),
237
				@TYPE_JOB_NAME NVARCHAR(100), @FULLNAME NVARCHAR(100)
238

    
239
SELECT @BRANCH_ID=  TLSUBBRID,@DEP_ID=SECUR_CODE ,@ROLE_ID=RoleName FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID
240
SELECT @BRANCH_CREATE=BRANCH_CREATE,@DEP_CREATE=DEP_CREATE FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID
241

    
242

    
243
		DECLARE
244
		@COST_ID_TABLE TABLE (
245
			COST_ID VARCHAR(15)
246
		)
247

    
248
		DECLARE @DVDM_ID_TABLE TABLE (
249
			DVDM_ID VARCHAR(15)
250
		)
251

    
252
		DECLARE @AUTHOR_DVDM TABLE
253
		(
254
		ROLE_ID VARCHAR(100),
255
		BRANCH_ID VARCHAR(20),
256
		DEP_ID VARCHAR(20),
257
		DVDM_ID VARCHAR(20)
258
		)
259

    
260

    
261
	INSERT INTO @AUTHOR_DVDM
262
	(
263
	    ROLE_ID,
264
	    BRANCH_ID,
265
	    DEP_ID,
266
	    DVDM_ID
267
	)
268
	SELECT TU.RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU 
269
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=TU.SECUR_CODE
270
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
271
	WHERE TU.TLNANME=@p_MAKER_ID
272
	UNION ALL
273
	SELECT TM.ROLE_NEW RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU 
274
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=TU.SECUR_CODE
275
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
276
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='')
277
	WHERE TU.TLNANME=@p_MAKER_ID
278
	UNION ALL
279
	SELECT TU.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU 
280
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=TU.DEP_ID
281
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
282
	WHERE TU.TLNAME=@p_MAKER_ID AND CAST(EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
283
	UNION ALL
284
	SELECT TM.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU 
285
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=TU.DEP_ID
286
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
287
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='')
288
	WHERE TU.TLNAME=@p_MAKER_ID AND CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
289
		INSERT INTO @COST_ID_TABLE
290
		SELECT COST_ID FROM dbo.PL_COSTCENTER_DT WHERE DEP_ID=@DEP_ID AND BRANCH_ID=@BRANCH_ID
291

    
292
		INSERT INTO @DVDM_ID_TABLE
293
		SELECT DVDM_ID FROM dbo.PL_COSTCENTER WHERE COST_ID IN (SELECT COST_ID FROM @COST_ID_TABLE) GROUP BY DVDM_ID
294

    
295
		
296
		DECLARE @TYPE_JOB_CR VARCHAR(20)
297

    
298

    
299
		SET @TYPE_JOB_CR= (SELECT TOP 1 TYPE_JOB  FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND STATUS_JOB='C')
300

    
301
		UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='P'
302
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID 
303
		--AND TLNAME=@p_TLNAME
304
		AND TYPE_JOB=@TYPE_JOB_CR
305
		SET @TYPE_JOB_NAME =(SELECT CONTENT FROM dbo.CM_ALLCODE WHERE CDNAME = 'JOB_TYPE' AND CDTYPE='REQ' AND CDVAL=@TYPE_JOB_CR)
306
		SET @FULLNAME =(SELECT TLFullName FROM dbo.TL_USER WHERE TLNANME=@p_TLNAME )
307
			
308
		INSERT INTO dbo.PL_PROCESS
309
				(
310
					REQ_ID,
311
					PROCESS_ID,
312
					CHECKER_ID,
313
					APPROVE_DT,
314
					PROCESS_DESC,NOTES
315
				)
316
				VALUES
317
				(   @p_REQ_ID,        -- REQ_ID - varchar(15)
318
					@p_PROCESS_ID,        -- PROCESS_ID - varchar(10)
319
					@p_MAKER_ID,        -- CHECKER_ID - varchar(15)
320
					GETDATE() , -- APPROVE_DT - datetime
321
					@p_PROCESS_DES ,
322
					ISNULL(@TYPE_JOB_NAME,N'Trưởng đơn vị chuyên môn')+ N' đã phê duyệt xong'       -- PROCESS_DESC - nvarchar(1000)
323
				)
324
		SET @LEVEL=ISNULL((SELECT TOP 1 LEVEL_JOB 
325
		FROM dbo.PL_REQUEST_PROCESS_CHILD 
326
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID 
327
		--AND TLNAME=@p_TLNAME 
328
		AND TYPE_JOB=@TYPE_JOB_CR
329
		ORDER BY LEVEL_JOB DESC),0)                  
330

    
331
		UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='C'
332
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND LEVEL_JOB=(@LEVEL-1)
333
		IF(NOT EXISTS (SELECT * FROM  dbo.PL_REQUEST_PROCESS_CHILD 
334
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND STATUS_JOB <> 'P'))
335
		BEGIN
336
				SET @PROCESS_CURR = (SELECT TOP 1 PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND STATUS='C')
337
				SET @PROCESS_NEXT = (SELECT TOP 1 PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PARENT_PROCESS_ID=@PROCESS_CURR)
338
				IF(@PROCESS_CURR='TC' OR (@PROCESS_CURR ='DVDC' AND @p_TLNAME IN (SELECT TLNANME FROM TL_USER WHERE (DEP_ID ='DEP000000000023' OR SECUR_CODE ='DEP000000000023'))))
339
				BEGIN
340
						SELECT @ERROR=ERROR,
341
						   @EROOR_DES=ERROR_DES FROM dbo.FN_CHECK_VALIDATE_APP(@p_REQ_ID,'PDDC','PL_REQUEST_DOC',@p_MAKER_ID,'TC')
342
					IF(@ERROR=1)
343
					BEGIN
344
						 ROLLBACK TRANSACTION;
345
						SELECT -1  Result,
346
							   @EROOR_DES ErrorDesc
347
   
348
						RETURN -1;
349
					END
350
					---Duyệt TTCT
351

    
352
					DECLARE @LIMTT_MAX DECIMAL(18,2),@LIMIT_APP DECIMAL(18,2) ,@KHOI_ID VARCHAR(20),@TOTAL_TRANSFER_CE DECIMAL(18,2),@TOTAL_TRANSFER_OE DECIMAL(18,2)
353
					-- BO SUNG QUAN LY GIAM DOC KHOI /PTGD KHOI QUAN LY NGAN SACH CHO - NHAN LUCTV 20.10.2022
354
					--	DECLARE @KHOI_ID_TF VARCHAR(20), @KHOI_ID_TO VARCHAR(20),@TOTAL_TRANSFER DECIMAL(18,2),@IS_GDK BIT,@IS_PTGD BIT
355
					--	DECLARE @DATA_KHOI TABLE (  
356
					--	KHOI_ID VARCHAR(20),  
357
					--	TOTAL_AMT DECIMAL(18,2),  
358
					--	IS_NEXT BIT,  
359
					--	IS_GDK BIT,  
360
					--	IS_PTGD BIT  
361
					--	)  
362
					--	INSERT INTO @DATA_KHOI  
363
					--	(  
364
					--	KHOI_ID,  
365
					--	TOTAL_AMT,  
366
					--	IS_NEXT,  
367
					--	IS_GDK,  
368
					--	IS_PTGD  
369
					--	)  
370
					--	SELECT FR_KHOI_ID,SUM(TOTAL_AMT),0,CD.IS_GDK,CD.IS_PTGD FROM dbo.PL_REQUEST_TRANSFER PT  
371
					--	LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PT.FR_KHOI_ID  
372
 
373
					--	WHERE REQ_DOC_ID=@p_REQ_ID AND FR_KHOI_ID <>'' AND FR_KHOI_ID IS NOT NULL GROUP BY FR_KHOI_ID,CD.IS_GDK,CD.IS_PTGD  
374
					--	SET @STEP_PARENT='TC'  
375
 
376
					--	SET @LIMTT_MAX=(SELECT LIMIT_VALUE FROM dbo.TL_SYSROLE_LIMIT WHERE ROLE_ID='GDK' AND LIMIT_TYPE='DCNS')  
377
 
378
					--	DECLARE lstDATA CURSOR FOR  
379
					--	SELECT KHOI_ID,TOTAL_AMT,IS_GDK,IS_PTGD FROM @DATA_KHOI  
380
 
381
					--	OPEN lstDATA  
382
					--	FETCH NEXT FROM lstDATA INTO @KHOI_ID_TF,@TOTAL_TRANSFER,@IS_GDK,@IS_PTGD  
383
					--	WHILE @@FETCH_STATUS=0  
384
					--	BEGIN  
385
					--	SET @LIMIT_APP=(SELECT ISNULL(MAX_AMT,0)- ISNULL(TOTAL_APP_AMT,0) AS LIMIT_APP FROM dbo.LIMIT_ACCUMULATE WHERE ROLE_ID='GDK' AND DVDM_ID=@KHOI_ID_TF)  
386
 
387
					--	IF(NOT EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND ROLE_USER='GDK' AND DVDM_ID=@KHOI_ID_TF) AND @IS_GDK=1)  
388
					--	BEGIN  
389
					--	IF((@KHOI_ID_TF ='DM0000000000015' AND @TOTAL_AMT_TRANSFER  >10000000) OR @KHOI_ID_TF <> 'DM0000000000015')
390
					--	BEGIN
391
					--	INSERT INTO dbo.PL_REQUEST_PROCESS  
392
					--	(  
393
					--	REQ_ID,  
394
					--	PROCESS_ID,  
395
					--	STATUS,  
396
					--	ROLE_USER,  
397
					--	BRANCH_ID,  
398
					--	CHECKER_ID,  
399
					--	APPROVE_DT,  
400
					--	PARENT_PROCESS_ID,  
401
					--	IS_LEAF,  
402
					--	COST_ID,  
403
					--	DVDM_ID,  
404
					--	NOTES,IS_HAS_CHILD  
405
					--	)  
406
					--	VALUES  
407
					--	( @p_REQ_ID, -- REQ_ID - varchar(15)  
408
					--	'GDK_TT', -- PROCESS_ID - varchar(10)  
409
					--	'U', -- STATUS - varchar(5)  
410
					--	'GDK', -- ROLE_USER - varchar(50)  
411
					--	'', -- BRANCH_ID - varchar(15)  
412
					--	'', -- CHECKER_ID - varchar(15)  
413
					--	NULL, -- APPROVE_DT - datetime  
414
					--	@STEP_PARENT, -- PARENT_PROCESS_ID - varchar(10)  
415
					--	'N', -- IS_LEAF - varchar(1)  
416
					--	'', -- COST_ID - varchar(15)  
417
					--	@KHOI_ID_TF ,  
418
					--	N'Chờ giám đốc khối quản lý ngân sách điều chuyển xác nhận',  
419
					--	0 -- DVDM_ID - varchar(15)  
420
					--	)  
421
					--	END
422
					--	END  
423
					--	--IF(@TOTAL_TRANSFER > @LIMTT_MAX OR @TOTAL_TRANSFER > @LIMIT_APP)  
424
					--	IF(@TOTAL_TRANSFER > @LIMTT_MAX )  
425
					--	UPDATE @DATA_KHOI SET IS_NEXT=1 WHERE KHOI_ID=@KHOI_ID_TF  
426
					--	IF(@IS_GDK=0)  
427
					--	UPDATE @DATA_KHOI SET IS_NEXT=1 WHERE KHOI_ID=@KHOI_ID_TF  
428
					--	FETCH NEXT FROM lstDATA INTO @KHOI_ID_TF,@TOTAL_TRANSFER,@IS_GDK,@IS_PTGD  
429
					--	END  
430
					--	CLOSE lstDATA  
431
					--	DEALLOCATE lstDATA  
432

    
433
					--	IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='GDK_TT'))  
434
					--	SET @STEP_PARENT='GDK_TT'  
435
					--	IF(EXISTS(SELECT * FROM @DATA_KHOI WHERE IS_NEXT=1)  
436
					--	OR EXISTS(SELECT REQ_TRANSFER_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID AND FR_KHOI_ID<>TO_KHOI_ID))  
437
					--	BEGIN  
438
					--	DECLARE lstDATA CURSOR FOR  
439
					--	SELECT KHOI_ID,TOTAL_AMT,IS_GDK,IS_PTGD FROM @DATA_KHOI WHERE IS_NEXT=1  
440
 
441
					--	OPEN lstDATA  
442
					--	FETCH NEXT FROM lstDATA INTO @KHOI_ID_TF,@TOTAL_TRANSFER,@IS_GDK,@IS_PTGD  
443
					--	WHILE @@FETCH_STATUS=0  
444
					--	BEGIN  
445
					--	SET @LIMIT_APP=(SELECT ISNULL(MAX_AMT,0)- ISNULL(TOTAL_APP_AMT,0) AS LIMIT_APP FROM dbo.LIMIT_ACCUMULATE WHERE ROLE_ID='PTGD' AND DVDM_ID=@KHOI_ID_TF)  
446
 
447
					--	IF(NOT EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND ROLE_USER='PTGD' AND DVDM_ID=@KHOI_ID_TF) AND @IS_PTGD=1)  
448
					--	BEGIN  
449
					--	INSERT INTO dbo.PL_REQUEST_PROCESS  
450
					--	(  
451
					--	REQ_ID,  
452
					--	PROCESS_ID,  
453
					--	STATUS,  
454
					--	ROLE_USER,  
455
					--	BRANCH_ID,  
456
					--	CHECKER_ID,  
457
					--	APPROVE_DT,  
458
					--	PARENT_PROCESS_ID,  
459
					--	IS_LEAF,  
460
					--	COST_ID,  
461
					--	DVDM_ID,  
462
					--	NOTES,IS_HAS_CHILD  
463
					--	)  
464
					--	VALUES  
465
					--	( @p_REQ_ID, -- REQ_ID - varchar(15)  
466
					--	'PTGDK_TT', -- PROCESS_ID - varchar(10)  
467
					--	'U', -- STATUS - varchar(5)  
468
					--	'PTGD', -- ROLE_USER - varchar(50)  
469
					--	'', -- BRANCH_ID - varchar(15)  
470
					--	'', -- CHECKER_ID - varchar(15)  
471
					--	NULL, -- APPROVE_DT - datetime  
472
					--	@STEP_PARENT, -- PARENT_PROCESS_ID - varchar(10)  
473
					--	'N', -- IS_LEAF - varchar(1)  
474
					--	'', -- COST_ID - varchar(15)  
475
					--	@KHOI_ID_TF ,  
476
					--	N'Chờ Phó tổng giám đốc khối xác nhận',  
477
					--	0 -- DVDM_ID - varchar(15)  
478
					--	)  
479
					--	END  
480
					--	UPDATE @DATA_KHOI SET IS_NEXT=0 
481
					--	IF(@IS_GDK=0)  
482
					--	UPDATE @DATA_KHOI SET IS_NEXT=1 WHERE KHOI_ID=@KHOI_ID_TF  
483
					--	FETCH NEXT FROM lstDATA INTO @KHOI_ID_TF,@TOTAL_TRANSFER,@IS_GDK,@IS_PTGD  
484
					--	END  
485
					--	CLOSE lstDATA  
486
					--	DEALLOCATE lstDATA  
487
					--	END
488
					------- END LUCTV 20.10.2022
489
					SET @LIMTT_MAX=(SELECT LIMIT_VALUE FROM dbo.TL_SYSROLE_LIMIT WHERE ROLE_ID='GDDV' AND LIMIT_TYPE='LIMIT_DCNS')
490
					SET @TOTAL_TRANSFER_CE=(SELECT SUM(TOTAL_AMT) FROM PL_REQUEST_TRANSFER A LEFT JOIN CM_GOODS B ON A.FR_GOOD_ID = B.GD_ID WHERE A.REQ_DOC_ID=@p_REQ_ID AND B.GD_CODE LIKE '%CE%')
491
					SET @TOTAL_TRANSFER_OE=(SELECT SUM(TOTAL_AMT) FROM PL_REQUEST_TRANSFER A LEFT JOIN CM_GOODS B ON A.FR_GOOD_ID = B.GD_ID WHERE A.REQ_DOC_ID=@p_REQ_ID AND B.GD_CODE LIKE '%OE%')
492
					IF(@TOTAL_TRANSFER_CE > 200000000 OR @TOTAL_TRANSFER_OE > 100000000)
493
					BEGIN
494
					SET @STEP_PARENT='TC'
495
					SET @LIMTT_MAX=(SELECT LIMIT_VALUE FROM dbo.TL_SYSROLE_LIMIT WHERE ROLE_ID='GDK' AND LIMIT_TYPE='LIMIT_DCNS')
496
					SET @KHOI_ID=(SELECT DVDM_ID FROM dbo.TL_SYSROLE_LIMIT WHERE ROLE_ID='GDK' AND LIMIT_TYPE='LIMIT_DCNS')
497
					IF @KHOI_ID IS NULL OR @KHOI_ID =''
498
						SET @KHOI_ID ='DM0000000000017'
499
					IF(NOT EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND ROLE_USER='GDK' AND DVDM_ID=@KHOI_ID))
500
					BEGIN
501
						INSERT INTO dbo.PL_REQUEST_PROCESS
502
						(
503
							REQ_ID,
504
							PROCESS_ID,
505
							STATUS,
506
							ROLE_USER,
507
							BRANCH_ID,
508
							CHECKER_ID,
509
							APPROVE_DT,
510
							PARENT_PROCESS_ID,
511
							IS_LEAF,
512
							COST_ID,
513
							DVDM_ID,
514
							NOTES,IS_HAS_CHILD
515
						)
516
						VALUES
517
						(   @p_REQ_ID,        -- REQ_ID - varchar(15)
518
							'GDK_TT',        -- PROCESS_ID - varchar(10)
519
							'U',        -- STATUS - varchar(5)
520
							'GDK',        -- ROLE_USER - varchar(50)
521
							'',        -- BRANCH_ID - varchar(15)
522
							'',        -- CHECKER_ID - varchar(15)
523
							NULL, -- APPROVE_DT - datetime
524
							@STEP_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
525
							'N',        -- IS_LEAF - varchar(1)
526
							'',        -- COST_ID - varchar(15)
527
							@KHOI_ID ,
528
							N'Chờ giám đốc khối Tài Chính xác nhận',
529
							0        -- DVDM_ID - varchar(15)
530
							)
531
					--LUCTV 20211028 FIX LOI CAP NHAT NHUNG STEP CU KHAC GDK_TT DANG CO CHA LA TAI CHINH VE GDK_TT
532
					UPDATE PL_REQUEST_PROCESS SET PARENT_PROCESS_ID ='GDK_TT' WHERE PROCESS_ID <> 'GDK_TT' AND PARENT_PROCESS_ID ='TC' AND REQ_ID =@p_REQ_ID
533
					--END EDIT
534
					END
535
					IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='GDK_TT'))
536
					SET @STEP_PARENT='GDK_TT'
537

    
538
					IF(@TOTAL_TRANSFER_CE > 500000000 OR @TOTAL_TRANSFER_OE > 300000000)
539
					BEGIN
540
											
541
							IF(NOT EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND ROLE_USER='TGD'))
542
							BEGIN
543
							-- LUCTV : CHEN THEM BUOC THU KI TGD
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
							'TKTGD',                               -- PROCESS_ID - varchar(10)
563
							'U',                                 -- STATUS - varchar(5)
564
							'TKTGD',                               -- ROLE_USER - varchar(50)
565
							'',                                  -- BRANCH_ID - varchar(15)
566
							'',                                  -- CHECKER_ID - varchar(15)
567
							NULL,                                -- APPROVE_DT - datetime
568
							@STEP_PARENT,                        -- PARENT_PROCESS_ID - varchar(10)
569
							'N',                                 -- IS_LEAF - varchar(1)
570
							'',                                  -- COST_ID - varchar(15)
571
							'', N'Chờ Văn Phòng Thư Ký Tổng Giám Đốc xác nhận', 1 -- DVDM_ID - varchar(15)
572
							);
573
							SET @STEP_PARENT ='TKTGD'
574
							--END
575
							---------
576
							INSERT INTO dbo.PL_REQUEST_PROCESS
577
							(
578
							REQ_ID,
579
							PROCESS_ID,
580
							STATUS,
581
							ROLE_USER,
582
							BRANCH_ID,
583
							CHECKER_ID,
584
							APPROVE_DT,
585
							PARENT_PROCESS_ID,
586
							IS_LEAF,
587
							COST_ID,
588
							DVDM_ID,
589
							NOTES,
590
							IS_HAS_CHILD
591
							)
592
							VALUES
593
							(   @p_REQ_ID,                           -- REQ_ID - varchar(15)
594
							'TGD',                               -- PROCESS_ID - varchar(10)
595
							'U',                                 -- STATUS - varchar(5)
596
							'TGD',                               -- ROLE_USER - varchar(50)
597
							'',                                  -- BRANCH_ID - varchar(15)
598
							'',                                  -- CHECKER_ID - varchar(15)
599
							NULL,                                -- APPROVE_DT - datetime
600
							@STEP_PARENT,                        -- PARENT_PROCESS_ID - varchar(10)
601
							--'TKTGD',
602
							'N',                                 -- IS_LEAF - varchar(1)
603
							'',                                  -- COST_ID - varchar(15)
604
							'', N'Chờ tổng giám phê duyệt điều chuyển', 0 -- DVDM_ID - varchar(15)
605
							);
606
							END
607

    
608
						SET @LIMTT_MAX=(SELECT LIMIT_VALUE FROM dbo.TL_SYSROLE_LIMIT WHERE ROLE_ID='TGD' AND LIMIT_TYPE='LIMIT_DCNS')
609
						--- LUCTV 15.08.2022 KIEM TRA NEU TONG CHI PHI TO TRINH VƯƠT HAN MUC CUA TGD THI LÊN CHỦ TỊCH HĐQT
610
						--IF(ISNULL(@TOTAL_TRANSFER_CE,0) + ISNULL(@TOTAL_TRANSFER_OE,0)>@LIMTT_MAX)
611
						SET @IS_NEXT_HDQT =(SELECT dbo.FN_CHECK_LIMIT_PL_REQ(@p_REQ_ID, 'TGD'))
612
	
613
						IF(@IS_NEXT_HDQT=1)
614
						BEGIN
615
						IF(NOT EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND ROLE_USER='HDQT'))
616
						BEGIN
617
						---- THEM THU KI HDQT
618
						SET @STEP_PARENT ='TGD'
619
						INSERT INTO dbo.PL_REQUEST_PROCESS
620
						(
621
							REQ_ID,
622
							PROCESS_ID,
623
							STATUS,
624
							ROLE_USER,
625
							BRANCH_ID,
626
							CHECKER_ID,
627
							APPROVE_DT,
628
							PARENT_PROCESS_ID,
629
							IS_LEAF,
630
							COST_ID,
631
							DVDM_ID,
632
							NOTES,
633
							IS_HAS_CHILD
634
						)
635
						VALUES
636
						(   @p_REQ_ID,                           -- REQ_ID - varchar(15)
637
							'TKHDQT',                               -- PROCESS_ID - varchar(10)
638
							'U',                                 -- STATUS - varchar(5)
639
							'TKHDQT',                               -- ROLE_USER - varchar(50)
640
							'',                                  -- BRANCH_ID - varchar(15)
641
							'',                                  -- CHECKER_ID - varchar(15)
642
							NULL,                                -- APPROVE_DT - datetime
643
							@STEP_PARENT,                        -- PARENT_PROCESS_ID - varchar(10)
644
							'N',                                 -- IS_LEAF - varchar(1)
645
							'',                                  -- COST_ID - varchar(15)
646
							'', N'Chờ Văn Phòng HĐQT xác nhận', 1 -- DVDM_ID - varchar(15)
647
							);
648
						SET @STEP_PARENT = 'TKHDQT';
649
						---- END THU KY HDQT
650
						INSERT INTO dbo.PL_REQUEST_PROCESS
651
						(
652
							REQ_ID,
653
							PROCESS_ID,
654
							STATUS,
655
							ROLE_USER,
656
							BRANCH_ID,
657
							CHECKER_ID,
658
							APPROVE_DT,
659
							PARENT_PROCESS_ID,
660
							IS_LEAF,
661
							COST_ID,
662
							DVDM_ID,
663
							NOTES,
664
							IS_HAS_CHILD
665
						)
666
						VALUES
667
						(   @p_REQ_ID,                           -- REQ_ID - varchar(15)
668
							'HDQT',                               -- PROCESS_ID - varchar(10)
669
							'U',                                 -- STATUS - varchar(5)
670
							'HDQT',                               -- ROLE_USER - varchar(50)
671
							'',                                  -- BRANCH_ID - varchar(15)
672
							'',                                  -- CHECKER_ID - varchar(15)
673
							NULL,                                -- APPROVE_DT - datetime
674
							@STEP_PARENT,                        -- PARENT_PROCESS_ID - varchar(10)
675
							'N',                                 -- IS_LEAF - varchar(1)
676
							'',                                  -- COST_ID - varchar(15)
677
							'', N'Chờ HDQT phê duyệt điều chuyển', 0 -- DVDM_ID - varchar(15)
678
							);
679
					SET @STEP_PARENT = 'HDQT';
680
					END
681
					-- END LUCTV 15.08.2022
682
					END
683
					END
684
					DECLARE @LAST_PROCESS VARCHAR(20)	
685
					SET @LAST_PROCESS=(
686
					SELECT TOP 1 PL.PROCESS_ID FROM dbo.PL_REQUEST_PROCESS PL 
687
					LEFT JOIN dbo.PL_CONFIG_PROCESS CP ON CP.PROCESS_ID=PL.PROCESS_ID
688
					WHERE REQ_ID=@p_REQ_ID
689
					GROUP BY PL.PROCESS_ID,CP.LEVEL_PROCESS 
690
					ORDER BY CP.LEVEL_PROCESS DESC)
691

    
692
					--UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID=@LAST_PROCESS WHERE PROCESS_ID='APPROVE' AND REQ_ID=@p_REQ_ID
693
					--SET @NOTES=(SELECT CONTENT FROM dbo.CM_ALLCODE WHERE (@PROCESS_CURR LIKE CDVAL + '%') AND CDNAME='PROCESS_ID' AND CDTYPE='REQ')  
694
						--IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE PROCESS_ID ='KT' AND STATUS <> 'P' AND REQ_ID =@p_REQ_ID))
695
						--BEGIN
696
						--	UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID='KT' WHERE PROCESS_ID='APPROVE' AND REQ_ID=@p_REQ_ID
697
						--END
698
						--IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE PROCESS_ID ='DVCM' AND STATUS <> 'P' AND REQ_ID =@p_REQ_ID))
699
						--BEGIN
700
						--	UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID='DVCM' WHERE PROCESS_ID='APPROVE' AND REQ_ID=@p_REQ_ID
701
						--END
702
						--IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE PROCESS_ID ='DVDC' AND STATUS <> 'P' AND REQ_ID =@p_REQ_ID))
703
						--BEGIN
704
						--	UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID='DVDC' WHERE PROCESS_ID='APPROVE' AND REQ_ID=@p_REQ_ID
705
						--END
706
						--IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE PROCESS_ID ='DVDM_DC' AND STATUS <> 'P' AND REQ_ID =@p_REQ_ID))
707
						--BEGIN
708
						--	UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID='DVDM_DC' WHERE PROCESS_ID='APPROVE' AND REQ_ID=@p_REQ_ID
709
						--END
710
						--IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE PROCESS_ID ='TC' AND STATUS <> 'P' AND REQ_ID =@p_REQ_ID))
711
						--BEGIN
712
						--	UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID='TC' WHERE PROCESS_ID='APPROVE' AND REQ_ID=@p_REQ_ID
713
						--END
714
						--IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE PROCESS_ID ='GDK_DC' AND STATUS <> 'P' AND REQ_ID =@p_REQ_ID))
715
						--BEGIN
716
						--	UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID='GDK_DC' WHERE PROCESS_ID='APPROVE' AND REQ_ID=@p_REQ_ID
717
						--END
718
						---END LUCTV BO SUNG RULE UPDATE 08.11.2022
719
						IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE PROCESS_ID ='GDK_TT' AND STATUS <> 'P' AND REQ_ID =@p_REQ_ID))
720
						BEGIN
721
							UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID='GDK_TT' WHERE PROCESS_ID='APPROVE' AND REQ_ID=@p_REQ_ID
722
						END
723
						IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE PROCESS_ID ='PTGDK_TT' AND STATUS <> 'P' AND REQ_ID =@p_REQ_ID))
724
						BEGIN
725
							UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID='PTGDK_TT' WHERE PROCESS_ID='APPROVE' AND REQ_ID=@p_REQ_ID
726
						END
727
						IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE PROCESS_ID ='TGD' AND STATUS <> 'P' AND REQ_ID =@p_REQ_ID))
728
						BEGIN
729
							UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID='TGD' WHERE PROCESS_ID='APPROVE' AND REQ_ID=@p_REQ_ID
730
						END
731
						IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE PROCESS_ID ='HDQT' AND STATUS <> 'P' AND REQ_ID =@p_REQ_ID))
732
						BEGIN
733
							UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID='HDQT' WHERE PROCESS_ID='APPROVE' AND REQ_ID=@p_REQ_ID
734
						END
735
					END
736
					SET @NOTES = 'Tài chính'
737
					UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='P',NOTES=@NOTES+ N' đã phê duyệt', CHECKER_ID=@p_MAKER_ID,APPROVE_DT=GETDATE()  WHERE REQ_ID=@p_REQ_ID AND 
738
					(ROLE_USER=@ROLE_ID OR ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@ROLE_ID) OR ID =@p_REF_ID) 
739
					AND PROCESS_ID=@PROCESS_CURR
740
				  IF (EXISTS(SELECT prc.REQ_COST_ID FROM PL_REQUEST_COSTCENTER prc WHERE prc.COST_ID = 'DM0000000000048' AND prc.REQ_ID = @p_REQ_ID))
741
				  BEGIN
742
					UPDATE PL_REQUEST_COSTCENTER SET AUTH_STATUS = 'A', NOTES = @p_PROCESS_DES, APPROVE_DT = GETDATE(), CHECKER_ID = @p_MAKER_ID WHERE REQ_ID = @p_REQ_ID AND COST_ID = 'DM0000000000048'
743
				  END
744

    
745
					UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='C' WHERE REQ_ID=@p_REQ_ID AND PARENT_PROCESS_ID=@PROCESS_CURR
746

    
747
					SET @PROCESS_NEXT=(SELECT TOP 1 PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND STATUS='C')
748

    
749
					UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID=@PROCESS_NEXT WHERE REQ_ID=@p_REQ_ID
750

    
751
				END
752
				ELSE IF(@PROCESS_CURR='KT')
753
				BEGIN
754
						SET @NOTES=(SELECT CONTENT FROM dbo.CM_ALLCODE WHERE (@PROCESS_CURR LIKE CDVAL + '%') AND CDNAME='PROCESS_ID' AND CDTYPE='REQ')   
755
						UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='P',NOTES=@NOTES+ N' đã phê duyệt', CHECKER_ID=@p_MAKER_ID,APPROVE_DT=GETDATE()  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 PROCESS_ID=@PROCESS_CURR
756
						UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='C' WHERE REQ_ID=@p_REQ_ID AND PARENT_PROCESS_ID=@PROCESS_CURR
757
						UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID=@PROCESS_NEXT WHERE REQ_ID=@p_REQ_ID
758
				END
759
				ELSE IF(@PROCESS_CURR='DVCM' )
760
				BEGIN
761
					SET @NOTES=(SELECT CONTENT FROM dbo.CM_ALLCODE WHERE (@PROCESS_CURR LIKE CDVAL + '%') AND CDNAME='PROCESS_ID' AND CDTYPE='REQ')   
762
					UPDATE dbo.PL_REQUEST_COSTCENTER SET AUTH_STATUS='A',APPROVE_DT=GETDATE(),CHECKER_ID=@p_MAKER_ID WHERE REQ_ID=@p_REQ_ID 
763
					AND (COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID_TABLE) OR COST_ID IN (SELECT DVDM_ID FROM @AUTHOR_DVDM))
764
					UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='P',NOTES=@NOTES+ N' đã phê duyệt', CHECKER_ID=@p_MAKER_ID,APPROVE_DT=GETDATE() 
765
					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))
766
					AND (DVDM_ID IN (SELECT DVDM_ID FROM @DVDM_ID_TABLE) OR  COST_ID IN (SELECT DVDM_ID FROM @AUTHOR_DVDM) OR ID =@p_REF_ID)
767

    
768
					IF(NOT EXISTS( SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@PROCESS_CURR AND REQ_ID=@p_REQ_ID AND STATUS='C'))
769
					BEGIN
770
						
771
								UPDATE dbo.PL_REQUEST_PROCESS SET [STATUS]='C' WHERE PROCESS_ID=@PROCESS_NEXT AND REQ_ID=@p_REQ_ID
772
								UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID=@PROCESS_NEXT WHERE REQ_ID=@p_REQ_ID
773
						
774
					END
775
		END
776
        ELSE
777
		BEGIN
778
        IF(@PROCESS_CURR = 'TKHDQT')
779
        BEGIN
780
          UPDATE PL_REQUEST_DOC SET IS_AUTHORITY = @p_IS_AUTHORITY WHERE REQ_ID = @p_REQ_ID
781
        END
782
				SET @NOTES=(SELECT CONTENT FROM dbo.CM_ALLCODE WHERE (@PROCESS_CURR LIKE CDVAL + '%') AND CDNAME='PROCESS_ID' AND CDTYPE='REQ')   
783
				UPDATE dbo.PL_REQUEST_TRANSFER SET AUTH_STATUS='A',CHECKER_ID=@p_MAKER_ID,APPROVE_DT=GETDATE()  WHERE REQ_DOC_ID=@p_REQ_ID AND 
784
				FR_BRN_ID=@BRANCH_ID AND (FR_DEP_ID=@DEP_ID OR FR_DEP_ID IS NULL OR FR_DEP_ID='')
785
				-- LUCTV: 2204 BO SUNG THEM DIEU KIEN SO SANH PROCESS_ID VOI REF ID
786
				UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='P',NOTES=@NOTES+ N' đã phê duyệt', CHECKER_ID=@p_MAKER_ID,APPROVE_DT=GETDATE() 
787
				WHERE REQ_ID=@p_REQ_ID AND ID =@p_REF_ID
788
				IF(NOT EXISTS( SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@PROCESS_CURR AND REQ_ID=@p_REQ_ID AND STATUS='C'))
789
				BEGIN
790
							UPDATE dbo.PL_REQUEST_PROCESS SET [STATUS]='C' WHERE PROCESS_ID=@PROCESS_NEXT AND REQ_ID=@p_REQ_ID
791
							UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID=@PROCESS_NEXT WHERE REQ_ID=@p_REQ_ID
792
						
793
				END
794
				IF(EXISTS(SELECT REQ_TRANSFER_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID AND (FR_BRN_ID <> @BRANCH_CREATE OR FR_DEP_ID<> @DEP_CREATE)))
795
					BEGIN
796
					IF(NOT EXISTS(SELECT REQ_COST_ID FROM dbo.PL_REQUEST_COSTCENTER WHERE REQ_ID=@p_REQ_ID AND AUTH_STATUS<>'A'))
797
					BEGIN
798
							IF(NOT EXISTS(SELECT * FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID AND AUTH_STATUS <>'A'))
799
							BEGIN
800

    
801
							
802
									DECLARE 	@LIMIT_VALUE DECIMAL(18,0),
803
									@IS_NEXT BIT=0,@TOTAL_AMT_GD DECIMAL(12,0),@STOP BIT,@ROLE_TF VARCHAR(20),@DVDM_ID VARCHAR(20),@NOTE NVARCHAR(100)
804
									DECLARE @ROLE_CDT VARCHAR(20),@DVDM_CDT VARCHAR(20),@LIMIT_VALUE_CDT VARCHAR(20),@NOTES_CDT VARCHAR(20),@TOTAL_AMT DECIMAL(18,2)	
805
						
806

    
807
									SET @STEP_PARENT=(SELECT PARENT_PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID='TC' AND REQ_ID=@p_REQ_ID)
808
						
809
									SET @NOTE=   (SELECT CONTENT FROM dbo.CM_ALLCODE WHERE CDVAL='DVDM' AND CDNAME='PROCESS_ID' AND CDTYPE='REQ')
810
									IF(EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='TC'))
811
									BEGIN
812
									DECLARE lstTransfer CURSOR FOR
813
									SELECT FR_DVDM_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID AND   FR_DVDM_ID IS NOT NULL AND FR_DVDM_ID <>'' AND (FR_BRN_ID <> @BRANCH_CREATE OR FR_DEP_ID<> @DEP_CREATE)
814
									AND NOT EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND ROLE_USER='GDDV' AND DVDM_ID=FR_DVDM_ID	)
815
									AND FR_DVDM_ID <>'DM0000000000048'  AND ( (FR_DVDM_ID  ='DM0000000000003' AND ISNULL(@TOTAL_AMT_TRANSFER,0) >=10000000) OR FR_DVDM_ID <> 'DM0000000000003')
816
									GROUP BY FR_DVDM_ID
817
									OPEN lstTransfer
818
									FETCH NEXT FROM lstTransfer INTO @DVDM_ID
819
									WHILE @@FETCH_STATUS = 0 
820
									BEGIN 
821
									IF(NOT EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID  AND ROLE_USER='GDDV' AND ( DVDM_ID=@DVDM_ID OR @DVDM_ID IN ((SELECT PC.DVDM_ID FROM dbo.PL_COSTCENTER PC
822
									LEFT JOIN dbo.PL_COSTCENTER_DT PCD ON PCD.COST_ID = PC.COST_ID
823
									WHERE PCD.BRANCH_ID=PL_REQUEST_PROCESS.BRANCH_ID AND PCD.DEP_ID=PL_REQUEST_PROCESS.DEP_ID)) ) ))
824
									BEGIN
825
										INSERT INTO dbo.PL_REQUEST_PROCESS
826
										(
827
											REQ_ID,
828
											PROCESS_ID,
829
											STATUS,
830
											ROLE_USER,
831
											BRANCH_ID,
832
											CHECKER_ID,
833
											APPROVE_DT,
834
											PARENT_PROCESS_ID,
835
											IS_LEAF,
836
											COST_ID,
837
											DVDM_ID,
838
											NOTES,IS_HAS_CHILD
839
										)
840
										VALUES
841
										(   @p_REQ_ID,        -- REQ_ID - varchar(15)
842
											'DVDM_DC',        -- PROCESS_ID - varchar(10)
843
											'U',        -- STATUS - varchar(5)
844
											'GDDV',        -- ROLE_USER - varchar(50)
845
											'',        -- BRANCH_ID - varchar(15)
846
											'',        -- CHECKER_ID - varchar(15)
847
											NULL, -- APPROVE_DT - datetime
848
											@STEP_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
849
											'N',        -- IS_LEAF - varchar(1)
850
											'',        -- COST_ID - varchar(15)
851
											@DVDM_ID ,        -- DVDM_ID - varchar(15)
852
											--N'Chờ '+@NOTE+N' xác nhận ngân sách cho'
853
											N'Chờ đơn vị đầu mối quản lý ngân sách cho xác nhận'
854
											,1) -- LUCTV 20.10.22 DVDM_DC CHO CÓ TÍNH NĂNG ĐIỀU PHỐI
855
									END
856

    
857
									FETCH NEXT FROM lstTransfer INTO @DVDM_ID
858
									END
859
									CLOSE lstTransfer
860
									DEALLOCATE lstTransfer
861

    
862

    
863

    
864
								SET @STEP_NEXT='TC'
865
								IF(EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='DVDM_DC'))
866
								BEGIN
867
										SET @STEP_PARENT='DVDM_DC'
868
										SET @STEP_NEXT	='DVDM_DC'
869
								END
870

    
871
								UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID=@STEP_PARENT,STATUS='U' WHERE  PROCESS_ID='TC' AND REQ_ID=@p_REQ_ID
872
								SET @STEP_PARENT='TC'
873
	
874
								UPDATE dbo.PL_REQUEST_PROCESS SET [STATUS]='C' WHERE PROCESS_ID=@STEP_NEXT AND REQ_ID=@p_REQ_ID
875
								UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID=@STEP_PARENT,STATUS='U' WHERE  PROCESS_ID='APPROVE' AND REQ_ID=@p_REQ_ID
876
								UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID=@STEP_NEXT WHERE REQ_ID=@p_REQ_ID
877

    
878
								IF(@PROCESS_CURR='DVDM_DC' )
879
								BEGIN
880
										SET @NOTES=(SELECT CONTENT FROM dbo.CM_ALLCODE WHERE (@PROCESS_CURR LIKE CDVAL + '%') AND CDNAME='PROCESS_ID' AND CDTYPE='REQ')   
881
										UPDATE dbo.PL_REQUEST_COSTCENTER SET AUTH_STATUS='A',APPROVE_DT=GETDATE(),CHECKER_ID=@p_MAKER_ID WHERE REQ_ID=@p_REQ_ID 
882
										AND (COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID_TABLE) OR COST_ID IN (SELECT DVDM_ID FROM @AUTHOR_DVDM))
883
										UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='P',NOTES=@NOTES+ N' đã phê duyệt', CHECKER_ID=@p_MAKER_ID,APPROVE_DT=GETDATE() 
884
										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))
885
										AND (DVDM_ID IN (SELECT DVDM_ID FROM @DVDM_ID_TABLE) OR  COST_ID IN (SELECT DVDM_ID FROM @AUTHOR_DVDM) OR ID =@p_REF_ID)
886

    
887
										IF(NOT EXISTS( SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@PROCESS_CURR AND REQ_ID=@p_REQ_ID AND STATUS='C'))
888
										BEGIN
889
						
890
													UPDATE dbo.PL_REQUEST_PROCESS SET [STATUS]='C' WHERE PROCESS_ID=@PROCESS_NEXT AND REQ_ID=@p_REQ_ID
891
													UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID=@PROCESS_NEXT WHERE REQ_ID=@p_REQ_ID
892
						
893
										END
894
									END
895
								END
896
						END	
897
					END
898
				END		
899
			END
900
			-- NEU CAP DUYET CUA DVDM_DC
901
			IF(EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='APPROVE'))
902
			BEGIN
903
					EXEC dbo.PL_REQ_DOC_UPDATE_AFTER_APPROVE @p_REQ_ID = @p_REQ_ID 
904
					--- LUCTV 8.11.2022 KIEM TRA NEU TO TRINH LA TO TRINH MUA SAM MOI PHAT SINH PYCMS
905
					EXEC dbo.PL_REQ_DOC_Ins_To_TR_REQ_DOC @p_PL_REQ_ID = @p_REQ_ID
906
			END
907
		END	
908
		IF @@Error <> 0 GOTO ABORT
909
COMMIT TRANSACTION
910
SELECT 0 as Result, N'Phê duyệt thành công' ErrorDesc
911
RETURN 0
912
ABORT:
913
BEGIN
914
		ROLLBACK TRANSACTION
915
		SELECT -1 as Result, '' ErrorDesc
916
		RETURN -1
917
End