Project

General

Profile

1.2 PL REQUEST PROCESS CHILD APPR.txt

Luc Tran Van, 11/28/2022 10:25 PM

 
1

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

    
162
		IF(NOT EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND STATUS ='C' AND PROCESS_ID ='DVCM')
163
					AND (EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID ='DVCM')))
164
		BEGIN
165
			
166
			UPDATE dbo.PL_REQUEST_PROCESS SET STATUS = 'C', CHECKER_ID ='',APPROVE_DT = NULL WHERE REQ_ID =@p_REQ_ID AND PARENT_PROCESS_ID = 'DVCM'
167
			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
168
			INSERT INTO dbo.PL_PROCESS (REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES) 
169
			VALUES( @p_REQ_ID,@p_PROCESS_ID,@p_MAKER_ID, GETDATE() , @p_PROCESS_DES ,N'Đơn vị chuyên môn đã phê duyệt')
170
			COMMIT TRANSACTION
171
			SELECT 0 as Result, N'Trưởng đơn vị chuyên môn đã phê duyệt thành công KKK' ErrorDesc
172
			RETURN 0
173
		END
174
		ELSE IF(NOT EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND STATUS ='C' AND PROCESS_ID ='DVDM_DC')
175
			AND (EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID ='DVDM_DC')))
176
		BEGIN
177
			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'
178
			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
179
			INSERT INTO dbo.PL_PROCESS (REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES) 
180
			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')
181
			COMMIT TRANSACTION
182
			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
183
			RETURN 0
184
		END
185
	END
186
END
187
ELSE IF((SELECT PROCESS_ID FROM PL_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID) ='TC'
188
  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%'))
189
  BEGIN
190
--    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
191
--    UPDATE dbo.PL_REQUEST_PROCESS SET STATUS = 'C', CHECKER_ID ='',APPROVE_DT = NULL WHERE REQ_ID =@p_REQ_ID AND PARENT_PROCESS_ID = 'TC'
192
--    UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB = 'P' WHERE PROCESS_ID = @p_REF_ID AND REQ_ID = @p_REQ_ID
193
  	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
194
    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%'))
195
    BEGIN
196
      UPDATE PL_REQUEST_COSTCENTER SET NOTES = @p_PROCESS_DES,
197
			AUTH_STATUS='A',
198
			APPROVE_DT=GETDATE(),
199
			CHECKER_ID=@p_MAKER_ID
200
      WHERE REQ_ID = @p_REQ_ID AND COST_ID = 'DM0000000000003' AND AUTH_STATUS <> 'A'
201
    END
202
  	--- INSERT VAO LOG
203
  	INSERT INTO dbo.PL_PROCESS (REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES) 
204
  	VALUES( @p_REQ_ID,@p_PROCESS_ID,@p_MAKER_ID, GETDATE() , @p_PROCESS_DES ,N'Tài Chính đã phê duyệt')
205
  	------
206
--  	COMMIT TRANSACTION
207
--  	SELECT '0' as Result, N'Tài Chính đã phê duyệt thành công' ErrorDesc
208
--  	RETURN '0'
209
  END
210
 --END CODE LUCTV 13 04 2021
211
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')))
212
BEGIN
213
	IF(EXISTS(
214
	SELECT PRC.ID FROM dbo.PL_REQUEST_PROCESS PR 
215
	LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD PRC ON PRC.PROCESS_ID=PR.ID
216
	WHERE  PR.REQ_ID=@p_REQ_ID AND PRC.TYPE_JOB='XL' AND PRC.STATUS_JOB='C' AND PRC.PROCESS_ID =@p_REF_ID))
217
	BEGIN
218
		ROLLBACK TRANSACTION  
219
		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  
220
		RETURN -1
221
	END
222

    
223
	IF(NOT EXISTS(
224
	SELECT PRC.ID FROM dbo.PL_REQUEST_PROCESS PR 
225
	LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD PRC ON PRC.PROCESS_ID=PR.ID
226
	WHERE  (PR.REQ_ID=@p_REQ_ID AND PRC.TYPE_JOB='XL' AND PRC.PROCESS_ID =@p_REF_ID)
227
    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)))
228
	BEGIN
229
		ROLLBACK TRANSACTION  
230
		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  
231
		RETURN -1 
232
	END
233
END
234
DECLARE  @ERROR BIT ,@EROOR_DES NVARCHAR(500)
235
SELECT @ERROR=ERROR,
236
       @EROOR_DES=ERROR_DES FROM dbo.FN_CHECK_VALIDATE_APP(@p_REQ_ID,'PDDC','PL_REQUEST_DOC',@p_MAKER_ID,'DVKD')
237
IF(@ERROR=1)
238
BEGIN
239
	 ROLLBACK TRANSACTION;
240
    SELECT -1  Result,
241
           @EROOR_DES ErrorDesc
242
   
243
    RETURN 0;
244
END
245

    
246
DECLARE @LEVEL INT,@DEP_ID VARCHAR(20),@BRANCH_ID VARCHAR(20),@BRANCH_CREATE VARCHAR(20),@DEP_CREATE VARCHAR(20),@STEP_PARENT VARCHAR(20)
247
DECLARE @ROLE_ID VARCHAR(20),@NOTES NVARCHAR(500),
248
				@PROCESS_CURR VARCHAR(10),
249
				@STEP_CURR INT,
250
				@STEP_NEXT VARCHAR(20),
251
				@PROCESS_NEXT VARCHAR(10),
252
				@TYPE_JOB_NAME NVARCHAR(100), @FULLNAME NVARCHAR(100)
253

    
254
SELECT @BRANCH_ID=  TLSUBBRID,@DEP_ID=SECUR_CODE ,@ROLE_ID=RoleName FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID
255
SELECT @BRANCH_CREATE=BRANCH_CREATE,@DEP_CREATE=DEP_CREATE FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID
256

    
257

    
258
		DECLARE
259
		@COST_ID_TABLE TABLE (
260
			COST_ID VARCHAR(15)
261
		)
262

    
263
		DECLARE @DVDM_ID_TABLE TABLE (
264
			DVDM_ID VARCHAR(15)
265
		)
266

    
267
		DECLARE @AUTHOR_DVDM TABLE
268
		(
269
		ROLE_ID VARCHAR(100),
270
		BRANCH_ID VARCHAR(20),
271
		DEP_ID VARCHAR(20),
272
		DVDM_ID VARCHAR(20)
273
		)
274

    
275

    
276
	INSERT INTO @AUTHOR_DVDM
277
	(
278
	    ROLE_ID,
279
	    BRANCH_ID,
280
	    DEP_ID,
281
	    DVDM_ID
282
	)
283
	SELECT TU.RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU 
284
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=TU.SECUR_CODE
285
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
286
	WHERE TU.TLNANME=@p_MAKER_ID
287
	UNION ALL
288
	SELECT TM.ROLE_NEW RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU 
289
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=TU.SECUR_CODE
290
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
291
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='')
292
	WHERE TU.TLNANME=@p_MAKER_ID
293
	UNION ALL
294
	SELECT TU.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU 
295
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=TU.DEP_ID
296
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
297
	WHERE TU.TLNAME=@p_MAKER_ID AND CAST(EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
298
	UNION ALL
299
	SELECT TM.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU 
300
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=TU.DEP_ID
301
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
302
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='')
303
	WHERE TU.TLNAME=@p_MAKER_ID AND CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
304
		INSERT INTO @COST_ID_TABLE
305
		SELECT COST_ID FROM dbo.PL_COSTCENTER_DT WHERE DEP_ID=@DEP_ID AND BRANCH_ID=@BRANCH_ID
306

    
307
		INSERT INTO @DVDM_ID_TABLE
308
		SELECT DVDM_ID FROM dbo.PL_COSTCENTER WHERE COST_ID IN (SELECT COST_ID FROM @COST_ID_TABLE) GROUP BY DVDM_ID
309

    
310
		
311
		DECLARE @TYPE_JOB_CR VARCHAR(20)
312

    
313

    
314
		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')
315

    
316
		UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='P'
317
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID 
318
		--AND TLNAME=@p_TLNAME
319
		AND TYPE_JOB=@TYPE_JOB_CR
320
		SET @TYPE_JOB_NAME =(SELECT CONTENT FROM dbo.CM_ALLCODE WHERE CDNAME = 'JOB_TYPE' AND CDTYPE='REQ' AND CDVAL=@TYPE_JOB_CR)
321
		SET @FULLNAME =(SELECT TLFullName FROM dbo.TL_USER WHERE TLNANME=@p_TLNAME )
322
			
323
		INSERT INTO dbo.PL_PROCESS
324
				(
325
					REQ_ID,
326
					PROCESS_ID,
327
					CHECKER_ID,
328
					APPROVE_DT,
329
					PROCESS_DESC,NOTES
330
				)
331
				VALUES
332
				(   @p_REQ_ID,        -- REQ_ID - varchar(15)
333
					@p_PROCESS_ID,        -- PROCESS_ID - varchar(10)
334
					@p_MAKER_ID,        -- CHECKER_ID - varchar(15)
335
					GETDATE() , -- APPROVE_DT - datetime
336
					@p_PROCESS_DES ,
337
					ISNULL(@TYPE_JOB_NAME,N'Trưởng đơn vị chuyên môn')+ N' đã phê duyệt xong'       -- PROCESS_DESC - nvarchar(1000)
338
				)
339
		SET @LEVEL=ISNULL((SELECT TOP 1 LEVEL_JOB 
340
		FROM dbo.PL_REQUEST_PROCESS_CHILD 
341
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID 
342
		--AND TLNAME=@p_TLNAME 
343
		AND TYPE_JOB=@TYPE_JOB_CR
344
		ORDER BY LEVEL_JOB DESC),0)                  
345

    
346
		UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='C'
347
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND LEVEL_JOB=(@LEVEL-1)
348
		IF(NOT EXISTS (SELECT * FROM  dbo.PL_REQUEST_PROCESS_CHILD 
349
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND STATUS_JOB <> 'P'))
350
		BEGIN
351
				SET @PROCESS_CURR = (SELECT TOP 1 PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND STATUS='C')
352
				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)
353
				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'))))
354
				BEGIN
355
						SELECT @ERROR=ERROR,
356
						   @EROOR_DES=ERROR_DES FROM dbo.FN_CHECK_VALIDATE_APP(@p_REQ_ID,'PDDC','PL_REQUEST_DOC',@p_MAKER_ID,'TC')
357
					IF(@ERROR=1)
358
					BEGIN
359
						 ROLLBACK TRANSACTION;
360
						SELECT -1  Result,
361
							   @EROOR_DES ErrorDesc
362
   
363
						RETURN -1;
364
					END
365
					---Duyệt TTCT
366

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

    
448
					--	IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='GDK_TT'))  
449
					--	SET @STEP_PARENT='GDK_TT'  
450
					--	IF(EXISTS(SELECT * FROM @DATA_KHOI WHERE IS_NEXT=1)  
451
					--	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))  
452
					--	BEGIN  
453
					--	DECLARE lstDATA CURSOR FOR  
454
					--	SELECT KHOI_ID,TOTAL_AMT,IS_GDK,IS_PTGD FROM @DATA_KHOI WHERE IS_NEXT=1  
455
 
456
					--	OPEN lstDATA  
457
					--	FETCH NEXT FROM lstDATA INTO @KHOI_ID_TF,@TOTAL_TRANSFER,@IS_GDK,@IS_PTGD  
458
					--	WHILE @@FETCH_STATUS=0  
459
					--	BEGIN  
460
					--	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)  
461
 
462
					--	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)  
463
					--	BEGIN  
464
					--	INSERT INTO dbo.PL_REQUEST_PROCESS  
465
					--	(  
466
					--	REQ_ID,  
467
					--	PROCESS_ID,  
468
					--	STATUS,  
469
					--	ROLE_USER,  
470
					--	BRANCH_ID,  
471
					--	CHECKER_ID,  
472
					--	APPROVE_DT,  
473
					--	PARENT_PROCESS_ID,  
474
					--	IS_LEAF,  
475
					--	COST_ID,  
476
					--	DVDM_ID,  
477
					--	NOTES,IS_HAS_CHILD  
478
					--	)  
479
					--	VALUES  
480
					--	( @p_REQ_ID, -- REQ_ID - varchar(15)  
481
					--	'PTGDK_TT', -- PROCESS_ID - varchar(10)  
482
					--	'U', -- STATUS - varchar(5)  
483
					--	'PTGD', -- ROLE_USER - varchar(50)  
484
					--	'', -- BRANCH_ID - varchar(15)  
485
					--	'', -- CHECKER_ID - varchar(15)  
486
					--	NULL, -- APPROVE_DT - datetime  
487
					--	@STEP_PARENT, -- PARENT_PROCESS_ID - varchar(10)  
488
					--	'N', -- IS_LEAF - varchar(1)  
489
					--	'', -- COST_ID - varchar(15)  
490
					--	@KHOI_ID_TF ,  
491
					--	N'Chờ Phó tổng giám đốc khối xác nhận',  
492
					--	0 -- DVDM_ID - varchar(15)  
493
					--	)  
494
					--	END  
495
					--	UPDATE @DATA_KHOI SET IS_NEXT=0 
496
					--	IF(@IS_GDK=0)  
497
					--	UPDATE @DATA_KHOI SET IS_NEXT=1 WHERE KHOI_ID=@KHOI_ID_TF  
498
					--	FETCH NEXT FROM lstDATA INTO @KHOI_ID_TF,@TOTAL_TRANSFER,@IS_GDK,@IS_PTGD  
499
					--	END  
500
					--	CLOSE lstDATA  
501
					--	DEALLOCATE lstDATA  
502
					--	END
503
					------- END LUCTV 20.10.2022
504
					SET @LIMTT_MAX=(SELECT LIMIT_VALUE FROM dbo.TL_SYSROLE_LIMIT WHERE ROLE_ID='GDDV' AND LIMIT_TYPE='LIMIT_DCNS')
505
					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%')
506
					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%')
507
					IF(@TOTAL_TRANSFER_CE > 200000000 OR @TOTAL_TRANSFER_OE > 100000000)
508
					BEGIN
509
					SET @STEP_PARENT='TC'
510
					SET @LIMTT_MAX=(SELECT LIMIT_VALUE FROM dbo.TL_SYSROLE_LIMIT WHERE ROLE_ID='GDK' AND LIMIT_TYPE='LIMIT_DCNS')
511
					SET @KHOI_ID=(SELECT DVDM_ID FROM dbo.TL_SYSROLE_LIMIT WHERE ROLE_ID='GDK' AND LIMIT_TYPE='LIMIT_DCNS')
512
					IF @KHOI_ID IS NULL OR @KHOI_ID =''
513
						SET @KHOI_ID ='DM0000000000017'
514
					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))
515
					BEGIN
516
						INSERT INTO dbo.PL_REQUEST_PROCESS
517
						(
518
							REQ_ID,
519
							PROCESS_ID,
520
							STATUS,
521
							ROLE_USER,
522
							BRANCH_ID,
523
							CHECKER_ID,
524
							APPROVE_DT,
525
							PARENT_PROCESS_ID,
526
							IS_LEAF,
527
							COST_ID,
528
							DVDM_ID,
529
							NOTES,IS_HAS_CHILD
530
						)
531
						VALUES
532
						(   @p_REQ_ID,        -- REQ_ID - varchar(15)
533
							'GDK_TT',        -- PROCESS_ID - varchar(10)
534
							'U',        -- STATUS - varchar(5)
535
							'GDK',        -- ROLE_USER - varchar(50)
536
							'',        -- BRANCH_ID - varchar(15)
537
							'',        -- CHECKER_ID - varchar(15)
538
							NULL, -- APPROVE_DT - datetime
539
							@STEP_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
540
							'N',        -- IS_LEAF - varchar(1)
541
							'',        -- COST_ID - varchar(15)
542
							@KHOI_ID ,
543
							N'Chờ giám đốc khối Tài Chính xác nhận',
544
							0        -- DVDM_ID - varchar(15)
545
							)
546
					--LUCTV 20211028 FIX LOI CAP NHAT NHUNG STEP CU KHAC GDK_TT DANG CO CHA LA TAI CHINH VE GDK_TT
547
					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
548
					--END EDIT
549
					END
550
					IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='GDK_TT'))
551
					SET @STEP_PARENT='GDK_TT'
552

    
553
					IF(@TOTAL_TRANSFER_CE > 500000000 OR @TOTAL_TRANSFER_OE > 300000000)
554
					BEGIN
555
											
556
							IF(NOT EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND ROLE_USER='TGD'))
557
							BEGIN
558
							-- LUCTV : CHEN THEM BUOC THU KI TGD
559
							INSERT INTO dbo.PL_REQUEST_PROCESS
560
							(
561
							REQ_ID,
562
							PROCESS_ID,
563
							STATUS,
564
							ROLE_USER,
565
							BRANCH_ID,
566
							CHECKER_ID,
567
							APPROVE_DT,
568
							PARENT_PROCESS_ID,
569
							IS_LEAF,
570
							COST_ID,
571
							DVDM_ID,
572
							NOTES,
573
							IS_HAS_CHILD
574
							)
575
							VALUES
576
							(   @p_REQ_ID,                           -- REQ_ID - varchar(15)
577
							'TKTGD',                               -- PROCESS_ID - varchar(10)
578
							'U',                                 -- STATUS - varchar(5)
579
							'TKTGD',                               -- ROLE_USER - varchar(50)
580
							'',                                  -- BRANCH_ID - varchar(15)
581
							'',                                  -- CHECKER_ID - varchar(15)
582
							NULL,                                -- APPROVE_DT - datetime
583
							@STEP_PARENT,                        -- PARENT_PROCESS_ID - varchar(10)
584
							'N',                                 -- IS_LEAF - varchar(1)
585
							'',                                  -- COST_ID - varchar(15)
586
							'', N'Chờ Văn Phòng Thư Ký Tổng Giám Đốc xác nhận', 1 -- DVDM_ID - varchar(15)
587
							);
588
							SET @STEP_PARENT ='TKTGD'
589
							--END
590
							---------
591
							INSERT INTO dbo.PL_REQUEST_PROCESS
592
							(
593
							REQ_ID,
594
							PROCESS_ID,
595
							STATUS,
596
							ROLE_USER,
597
							BRANCH_ID,
598
							CHECKER_ID,
599
							APPROVE_DT,
600
							PARENT_PROCESS_ID,
601
							IS_LEAF,
602
							COST_ID,
603
							DVDM_ID,
604
							NOTES,
605
							IS_HAS_CHILD
606
							)
607
							VALUES
608
							(   @p_REQ_ID,                           -- REQ_ID - varchar(15)
609
							'TGD',                               -- PROCESS_ID - varchar(10)
610
							'U',                                 -- STATUS - varchar(5)
611
							'TGD',                               -- ROLE_USER - varchar(50)
612
							'',                                  -- BRANCH_ID - varchar(15)
613
							'',                                  -- CHECKER_ID - varchar(15)
614
							NULL,                                -- APPROVE_DT - datetime
615
							@STEP_PARENT,                        -- PARENT_PROCESS_ID - varchar(10)
616
							--'TKTGD',
617
							'N',                                 -- IS_LEAF - varchar(1)
618
							'',                                  -- COST_ID - varchar(15)
619
							'', N'Chờ tổng giám phê duyệt điều chuyển', 0 -- DVDM_ID - varchar(15)
620
							);
621
							END
622

    
623
						SET @LIMTT_MAX=(SELECT LIMIT_VALUE FROM dbo.TL_SYSROLE_LIMIT WHERE ROLE_ID='TGD' AND LIMIT_TYPE='LIMIT_DCNS')
624
						--- 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
625
						--IF(ISNULL(@TOTAL_TRANSFER_CE,0) + ISNULL(@TOTAL_TRANSFER_OE,0)>@LIMTT_MAX)
626
						SET @IS_NEXT_HDQT =(SELECT dbo.FN_CHECK_LIMIT_PL_REQ(@p_REQ_ID, 'TGD'))
627
	
628
						IF(@IS_NEXT_HDQT=1)
629
						BEGIN
630
						IF(NOT EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND ROLE_USER='HDQT'))
631
						BEGIN
632
						---- THEM THU KI HDQT
633
						SET @STEP_PARENT ='TGD'
634
						INSERT INTO dbo.PL_REQUEST_PROCESS
635
						(
636
							REQ_ID,
637
							PROCESS_ID,
638
							STATUS,
639
							ROLE_USER,
640
							BRANCH_ID,
641
							CHECKER_ID,
642
							APPROVE_DT,
643
							PARENT_PROCESS_ID,
644
							IS_LEAF,
645
							COST_ID,
646
							DVDM_ID,
647
							NOTES,
648
							IS_HAS_CHILD
649
						)
650
						VALUES
651
						(   @p_REQ_ID,                           -- REQ_ID - varchar(15)
652
							'TKHDQT',                               -- PROCESS_ID - varchar(10)
653
							'U',                                 -- STATUS - varchar(5)
654
							'TKHDQT',                               -- ROLE_USER - varchar(50)
655
							'',                                  -- BRANCH_ID - varchar(15)
656
							'',                                  -- CHECKER_ID - varchar(15)
657
							NULL,                                -- APPROVE_DT - datetime
658
							@STEP_PARENT,                        -- PARENT_PROCESS_ID - varchar(10)
659
							'N',                                 -- IS_LEAF - varchar(1)
660
							'',                                  -- COST_ID - varchar(15)
661
							'', N'Chờ Văn Phòng HĐQT xác nhận', 1 -- DVDM_ID - varchar(15)
662
							);
663
						SET @STEP_PARENT = 'TKHDQT';
664
						---- END THU KY HDQT
665
						INSERT INTO dbo.PL_REQUEST_PROCESS
666
						(
667
							REQ_ID,
668
							PROCESS_ID,
669
							STATUS,
670
							ROLE_USER,
671
							BRANCH_ID,
672
							CHECKER_ID,
673
							APPROVE_DT,
674
							PARENT_PROCESS_ID,
675
							IS_LEAF,
676
							COST_ID,
677
							DVDM_ID,
678
							NOTES,
679
							IS_HAS_CHILD
680
						)
681
						VALUES
682
						(   @p_REQ_ID,                           -- REQ_ID - varchar(15)
683
							'HDQT',                               -- PROCESS_ID - varchar(10)
684
							'U',                                 -- STATUS - varchar(5)
685
							'HDQT',                               -- ROLE_USER - varchar(50)
686
							'',                                  -- BRANCH_ID - varchar(15)
687
							'',                                  -- CHECKER_ID - varchar(15)
688
							NULL,                                -- APPROVE_DT - datetime
689
							@STEP_PARENT,                        -- PARENT_PROCESS_ID - varchar(10)
690
							'N',                                 -- IS_LEAF - varchar(1)
691
							'',                                  -- COST_ID - varchar(15)
692
							'', N'Chờ HDQT phê duyệt điều chuyển', 0 -- DVDM_ID - varchar(15)
693
							);
694
					SET @STEP_PARENT = 'HDQT';
695
					END
696
					-- END LUCTV 15.08.2022
697
					END
698
					END
699
					DECLARE @LAST_PROCESS VARCHAR(20)	
700
					SET @LAST_PROCESS=(
701
					SELECT TOP 1 PL.PROCESS_ID FROM dbo.PL_REQUEST_PROCESS PL 
702
					LEFT JOIN dbo.PL_CONFIG_PROCESS CP ON CP.PROCESS_ID=PL.PROCESS_ID
703
					WHERE REQ_ID=@p_REQ_ID
704
					GROUP BY PL.PROCESS_ID,CP.LEVEL_PROCESS 
705
					ORDER BY CP.LEVEL_PROCESS DESC)
706

    
707
					--UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID=@LAST_PROCESS WHERE PROCESS_ID='APPROVE' AND REQ_ID=@p_REQ_ID
708
					--SET @NOTES=(SELECT CONTENT FROM dbo.CM_ALLCODE WHERE (@PROCESS_CURR LIKE CDVAL + '%') AND CDNAME='PROCESS_ID' AND CDTYPE='REQ')  
709
						--IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE PROCESS_ID ='KT' AND STATUS <> 'P' AND REQ_ID =@p_REQ_ID))
710
						--BEGIN
711
						--	UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID='KT' WHERE PROCESS_ID='APPROVE' AND REQ_ID=@p_REQ_ID
712
						--END
713
						--IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE PROCESS_ID ='DVCM' AND STATUS <> 'P' AND REQ_ID =@p_REQ_ID))
714
						--BEGIN
715
						--	UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID='DVCM' WHERE PROCESS_ID='APPROVE' AND REQ_ID=@p_REQ_ID
716
						--END
717
						--IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE PROCESS_ID ='DVDC' AND STATUS <> 'P' AND REQ_ID =@p_REQ_ID))
718
						--BEGIN
719
						--	UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID='DVDC' WHERE PROCESS_ID='APPROVE' AND REQ_ID=@p_REQ_ID
720
						--END
721
						--IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE PROCESS_ID ='DVDM_DC' AND STATUS <> 'P' AND REQ_ID =@p_REQ_ID))
722
						--BEGIN
723
						--	UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID='DVDM_DC' WHERE PROCESS_ID='APPROVE' AND REQ_ID=@p_REQ_ID
724
						--END
725
						--IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE PROCESS_ID ='TC' AND STATUS <> 'P' AND REQ_ID =@p_REQ_ID))
726
						--BEGIN
727
						--	UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID='TC' WHERE PROCESS_ID='APPROVE' AND REQ_ID=@p_REQ_ID
728
						--END
729
						--IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE PROCESS_ID ='GDK_DC' AND STATUS <> 'P' AND REQ_ID =@p_REQ_ID))
730
						--BEGIN
731
						--	UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID='GDK_DC' WHERE PROCESS_ID='APPROVE' AND REQ_ID=@p_REQ_ID
732
						--END
733
						---END LUCTV BO SUNG RULE UPDATE 08.11.2022
734
						IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE PROCESS_ID ='GDK_TT' AND STATUS <> 'P' AND REQ_ID =@p_REQ_ID))
735
						BEGIN
736
							UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID='GDK_TT' WHERE PROCESS_ID='APPROVE' AND REQ_ID=@p_REQ_ID
737
						END
738
						IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE PROCESS_ID ='PTGDK_TT' AND STATUS <> 'P' AND REQ_ID =@p_REQ_ID))
739
						BEGIN
740
							UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID='PTGDK_TT' WHERE PROCESS_ID='APPROVE' AND REQ_ID=@p_REQ_ID
741
						END
742
						IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE PROCESS_ID ='TGD' AND STATUS <> 'P' AND REQ_ID =@p_REQ_ID))
743
						BEGIN
744
							UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID='TGD' WHERE PROCESS_ID='APPROVE' AND REQ_ID=@p_REQ_ID
745
						END
746
						IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE PROCESS_ID ='HDQT' AND STATUS <> 'P' AND REQ_ID =@p_REQ_ID))
747
						BEGIN
748
							UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID='HDQT' WHERE PROCESS_ID='APPROVE' AND REQ_ID=@p_REQ_ID
749
						END
750
					END
751
					SET @NOTES = 'Tài chính'
752
					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 
753
					(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) 
754
					AND PROCESS_ID=@PROCESS_CURR
755
				  IF (EXISTS(SELECT prc.REQ_COST_ID FROM PL_REQUEST_COSTCENTER prc WHERE prc.COST_ID = 'DM0000000000048' AND prc.REQ_ID = @p_REQ_ID))
756
				  BEGIN
757
					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'
758
				  END
759

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

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

    
764
					UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID=@PROCESS_NEXT WHERE REQ_ID=@p_REQ_ID
765

    
766
				END
767
				ELSE IF(@PROCESS_CURR='KT')
768
				BEGIN
769
						SET @NOTES=(SELECT CONTENT FROM dbo.CM_ALLCODE WHERE (@PROCESS_CURR LIKE CDVAL + '%') AND CDNAME='PROCESS_ID' AND CDTYPE='REQ')   
770
						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
771
						UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='C' WHERE REQ_ID=@p_REQ_ID AND PARENT_PROCESS_ID=@PROCESS_CURR
772
						UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID=@PROCESS_NEXT WHERE REQ_ID=@p_REQ_ID
773
				END
774
				ELSE IF(@PROCESS_CURR='DVCM' )
775
				BEGIN
776
					SET @NOTES=(SELECT CONTENT FROM dbo.CM_ALLCODE WHERE (@PROCESS_CURR LIKE CDVAL + '%') AND CDNAME='PROCESS_ID' AND CDTYPE='REQ')   
777
					UPDATE dbo.PL_REQUEST_COSTCENTER SET AUTH_STATUS='A',APPROVE_DT=GETDATE(),CHECKER_ID=@p_MAKER_ID WHERE REQ_ID=@p_REQ_ID 
778
					AND (COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID_TABLE) OR COST_ID IN (SELECT DVDM_ID FROM @AUTHOR_DVDM))
779
					UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='P',NOTES=@NOTES+ N' đã phê duyệt', CHECKER_ID=@p_MAKER_ID,APPROVE_DT=GETDATE() 
780
					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))
781
					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)
782

    
783
					IF(NOT EXISTS( SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@PROCESS_CURR AND REQ_ID=@p_REQ_ID AND STATUS='C'))
784
					BEGIN
785
						
786
								UPDATE dbo.PL_REQUEST_PROCESS SET [STATUS]='C' WHERE PROCESS_ID=@PROCESS_NEXT AND REQ_ID=@p_REQ_ID
787
								UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID=@PROCESS_NEXT WHERE REQ_ID=@p_REQ_ID
788
						
789
					END
790
		END
791
        ELSE
792
		BEGIN
793
        IF(@PROCESS_CURR = 'TKHDQT')
794
        BEGIN
795
          UPDATE PL_REQUEST_DOC SET IS_AUTHORITY = @p_IS_AUTHORITY WHERE REQ_ID = @p_REQ_ID
796
        END
797
				SET @NOTES=(SELECT CONTENT FROM dbo.CM_ALLCODE WHERE (@PROCESS_CURR LIKE CDVAL + '%') AND CDNAME='PROCESS_ID' AND CDTYPE='REQ')   
798
				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 
799
				FR_BRN_ID=@BRANCH_ID AND (FR_DEP_ID=@DEP_ID OR FR_DEP_ID IS NULL OR FR_DEP_ID='')
800
				-- LUCTV: 2204 BO SUNG THEM DIEU KIEN SO SANH PROCESS_ID VOI REF ID
801
				UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='P',NOTES=@NOTES+ N' đã phê duyệt', CHECKER_ID=@p_MAKER_ID,APPROVE_DT=GETDATE() 
802
				WHERE REQ_ID=@p_REQ_ID AND ID =@p_REF_ID
803
				IF(NOT EXISTS( SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@PROCESS_CURR AND REQ_ID=@p_REQ_ID AND STATUS='C'))
804
				BEGIN
805
							UPDATE dbo.PL_REQUEST_PROCESS SET [STATUS]='C' WHERE PROCESS_ID=@PROCESS_NEXT AND REQ_ID=@p_REQ_ID
806
							UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID=@PROCESS_NEXT WHERE REQ_ID=@p_REQ_ID
807
						
808
				END
809
				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)))
810
					BEGIN
811
					IF(NOT EXISTS(SELECT REQ_COST_ID FROM dbo.PL_REQUEST_COSTCENTER WHERE REQ_ID=@p_REQ_ID AND AUTH_STATUS<>'A'))
812
					BEGIN
813
							IF(NOT EXISTS(SELECT * FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID AND AUTH_STATUS <>'A'))
814
							BEGIN
815

    
816
							
817
									DECLARE 	@LIMIT_VALUE DECIMAL(18,0),
818
									@IS_NEXT BIT=0,@TOTAL_AMT_GD DECIMAL(12,0),@STOP BIT,@ROLE_TF VARCHAR(20),@DVDM_ID VARCHAR(20),@NOTE NVARCHAR(100)
819
									DECLARE @ROLE_CDT VARCHAR(20),@DVDM_CDT VARCHAR(20),@LIMIT_VALUE_CDT VARCHAR(20),@NOTES_CDT VARCHAR(20),@TOTAL_AMT DECIMAL(18,2)	
820
						
821

    
822
									SET @STEP_PARENT=(SELECT PARENT_PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID='TC' AND REQ_ID=@p_REQ_ID)
823
						
824
									SET @NOTE=   (SELECT CONTENT FROM dbo.CM_ALLCODE WHERE CDVAL='DVDM' AND CDNAME='PROCESS_ID' AND CDTYPE='REQ')
825
									IF(EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='TC'))
826
									BEGIN
827
									DECLARE lstTransfer CURSOR FOR
828
									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)
829
									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	)
830
									AND FR_DVDM_ID <>'DM0000000000048'  AND ( (FR_DVDM_ID  ='DM0000000000003' AND ISNULL(@TOTAL_AMT_TRANSFER,0) >=10000000) OR FR_DVDM_ID <> 'DM0000000000003')
831
									GROUP BY FR_DVDM_ID
832
									OPEN lstTransfer
833
									FETCH NEXT FROM lstTransfer INTO @DVDM_ID
834
									WHILE @@FETCH_STATUS = 0 
835
									BEGIN 
836
									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
837
									LEFT JOIN dbo.PL_COSTCENTER_DT PCD ON PCD.COST_ID = PC.COST_ID
838
									WHERE PCD.BRANCH_ID=PL_REQUEST_PROCESS.BRANCH_ID AND PCD.DEP_ID=PL_REQUEST_PROCESS.DEP_ID)) ) ))
839
									BEGIN
840
										INSERT INTO dbo.PL_REQUEST_PROCESS
841
										(
842
											REQ_ID,
843
											PROCESS_ID,
844
											STATUS,
845
											ROLE_USER,
846
											BRANCH_ID,
847
											CHECKER_ID,
848
											APPROVE_DT,
849
											PARENT_PROCESS_ID,
850
											IS_LEAF,
851
											COST_ID,
852
											DVDM_ID,
853
											NOTES,IS_HAS_CHILD
854
										)
855
										VALUES
856
										(   @p_REQ_ID,        -- REQ_ID - varchar(15)
857
											'DVDM_DC',        -- PROCESS_ID - varchar(10)
858
											'U',        -- STATUS - varchar(5)
859
											'GDDV',        -- ROLE_USER - varchar(50)
860
											'',        -- BRANCH_ID - varchar(15)
861
											'',        -- CHECKER_ID - varchar(15)
862
											NULL, -- APPROVE_DT - datetime
863
											@STEP_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
864
											'N',        -- IS_LEAF - varchar(1)
865
											'',        -- COST_ID - varchar(15)
866
											@DVDM_ID ,        -- DVDM_ID - varchar(15)
867
											--N'Chờ '+@NOTE+N' xác nhận ngân sách cho'
868
											N'Chờ đơn vị đầu mối quản lý ngân sách cho xác nhận'
869
											,1) -- LUCTV 20.10.22 DVDM_DC CHO CÓ TÍNH NĂNG ĐIỀU PHỐI
870
									END
871

    
872
									FETCH NEXT FROM lstTransfer INTO @DVDM_ID
873
									END
874
									CLOSE lstTransfer
875
									DEALLOCATE lstTransfer
876

    
877

    
878

    
879
								SET @STEP_NEXT='TC'
880
								IF(EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='DVDM_DC'))
881
								BEGIN
882
										SET @STEP_PARENT='DVDM_DC'
883
										SET @STEP_NEXT	='DVDM_DC'
884
								END
885

    
886
								UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID=@STEP_PARENT,STATUS='U' WHERE  PROCESS_ID='TC' AND REQ_ID=@p_REQ_ID
887
								SET @STEP_PARENT='TC'
888
	
889
								UPDATE dbo.PL_REQUEST_PROCESS SET [STATUS]='C' WHERE PROCESS_ID=@STEP_NEXT AND REQ_ID=@p_REQ_ID
890
								UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID=@STEP_PARENT,STATUS='U' WHERE  PROCESS_ID='APPROVE' AND REQ_ID=@p_REQ_ID
891
								UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID=@STEP_NEXT WHERE REQ_ID=@p_REQ_ID
892

    
893
								IF(@PROCESS_CURR='DVDM_DC' )
894
								BEGIN
895
										SET @NOTES=(SELECT CONTENT FROM dbo.CM_ALLCODE WHERE (@PROCESS_CURR LIKE CDVAL + '%') AND CDNAME='PROCESS_ID' AND CDTYPE='REQ')   
896
										UPDATE dbo.PL_REQUEST_COSTCENTER SET AUTH_STATUS='A',APPROVE_DT=GETDATE(),CHECKER_ID=@p_MAKER_ID WHERE REQ_ID=@p_REQ_ID 
897
										AND (COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID_TABLE) OR COST_ID IN (SELECT DVDM_ID FROM @AUTHOR_DVDM))
898
										UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='P',NOTES=@NOTES+ N' đã phê duyệt', CHECKER_ID=@p_MAKER_ID,APPROVE_DT=GETDATE() 
899
										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))
900
										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)
901

    
902
										IF(NOT EXISTS( SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@PROCESS_CURR AND REQ_ID=@p_REQ_ID AND STATUS='C'))
903
										BEGIN
904
						
905
													UPDATE dbo.PL_REQUEST_PROCESS SET [STATUS]='C' WHERE PROCESS_ID=@PROCESS_NEXT AND REQ_ID=@p_REQ_ID
906
													UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID=@PROCESS_NEXT WHERE REQ_ID=@p_REQ_ID
907
						
908
										END
909
									END
910
								END
911
						END	
912
					END
913
				END		
914
			END
915
			-- NEU CAP DUYET CUA DVDM_DC
916
			IF(EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='APPROVE'))
917
			BEGIN
918
					EXEC dbo.PL_REQ_DOC_UPDATE_AFTER_APPROVE @p_REQ_ID = @p_REQ_ID 
919
					--- LUCTV 8.11.2022 KIEM TRA NEU TO TRINH LA TO TRINH MUA SAM MOI PHAT SINH PYCMS
920
					EXEC dbo.PL_REQ_DOC_Ins_To_TR_REQ_DOC @p_PL_REQ_ID = @p_REQ_ID
921
			END
922
		END	
923
		IF @@Error <> 0 GOTO ABORT
924
COMMIT TRANSACTION
925
SELECT 0 as Result, N'Phê duyệt thành công' ErrorDesc
926
RETURN 0
927
ABORT:
928
BEGIN
929
		ROLLBACK TRANSACTION
930
		SELECT -1 as Result, '' ErrorDesc
931
		RETURN -1
932
End
933