Project

General

Profile

PL_REQ_PROCESS_CHILD_App.txt

Luc Tran Van, 12/01/2022 05:15 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
    IF (EXISTS(SELECT ID FROM PL_REQUEST_PROCESS_CHILD prpc WHERE prpc.REQ_ID = @p_REQ_ID AND prpc.PROCESS_ID = @p_REF_ID
191
      AND prpc.STATUS_JOB = 'C' AND (prpc.TYPE_JOB = 'XL' OR prpc.TYPE_JOB = 'KS')))
192
    BEGIN
193
  		ROLLBACK TRANSACTION  
194
  		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  
195
  		RETURN -1
196
    END
197
--    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
198
--    UPDATE dbo.PL_REQUEST_PROCESS SET STATUS = 'C', CHECKER_ID ='',APPROVE_DT = NULL WHERE REQ_ID =@p_REQ_ID AND PARENT_PROCESS_ID = 'TC'
199
--    UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB = 'P' WHERE PROCESS_ID = @p_REF_ID AND REQ_ID = @p_REQ_ID
200
--  	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
201
--    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%'))
202
--    BEGIN
203
--      UPDATE PL_REQUEST_COSTCENTER SET NOTES = @p_PROCESS_DES,
204
--			AUTH_STATUS='A',
205
--			APPROVE_DT=GETDATE(),
206
--			CHECKER_ID=@p_MAKER_ID
207
--      WHERE REQ_ID = @p_REQ_ID AND COST_ID = 'DM0000000000003' AND AUTH_STATUS <> 'A'
208
--    END
209
--  	--- INSERT VAO LOG
210
--  	INSERT INTO dbo.PL_PROCESS (REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES) 
211
--  	VALUES( @p_REQ_ID,@p_PROCESS_ID,@p_MAKER_ID, GETDATE() , @p_PROCESS_DES ,N'Tài Chính đã phê duyệt')
212
--  	------
213
--  	COMMIT TRANSACTION
214
--  	SELECT '0' as Result, N'Tài Chính đã phê duyệt thành công' ErrorDesc
215
--  	RETURN '0'
216
  END
217
 --END CODE LUCTV 13 04 2021
218
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')))
219
BEGIN
220
	IF(EXISTS(
221
	SELECT PRC.ID FROM dbo.PL_REQUEST_PROCESS PR 
222
	LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD PRC ON PRC.PROCESS_ID=PR.ID
223
	WHERE  PR.REQ_ID=@p_REQ_ID AND PRC.TYPE_JOB='XL' AND PRC.STATUS_JOB='C' AND PRC.PROCESS_ID =@p_REF_ID))
224
	BEGIN
225
		ROLLBACK TRANSACTION  
226
		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  
227
		RETURN -1
228
	END
229

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

    
253
DECLARE @LEVEL INT,@DEP_ID VARCHAR(20),@BRANCH_ID VARCHAR(20),@BRANCH_CREATE VARCHAR(20),@DEP_CREATE VARCHAR(20),@STEP_PARENT VARCHAR(20)
254
DECLARE @ROLE_ID VARCHAR(20),@NOTES NVARCHAR(500),
255
				@PROCESS_CURR VARCHAR(10),
256
				@STEP_CURR INT,
257
				@STEP_NEXT VARCHAR(20),
258
				@PROCESS_NEXT VARCHAR(10),
259
				@TYPE_JOB_NAME NVARCHAR(100), @FULLNAME NVARCHAR(100)
260

    
261
SELECT @BRANCH_ID=  TLSUBBRID,@DEP_ID=SECUR_CODE ,@ROLE_ID=RoleName FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID
262
SELECT @BRANCH_CREATE=BRANCH_CREATE,@DEP_CREATE=DEP_CREATE FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID
263

    
264

    
265
		DECLARE
266
		@COST_ID_TABLE TABLE (
267
			COST_ID VARCHAR(15)
268
		)
269

    
270
		DECLARE @DVDM_ID_TABLE TABLE (
271
			DVDM_ID VARCHAR(15)
272
		)
273

    
274
		DECLARE @AUTHOR_DVDM TABLE
275
		(
276
		ROLE_ID VARCHAR(100),
277
		BRANCH_ID VARCHAR(20),
278
		DEP_ID VARCHAR(20),
279
		DVDM_ID VARCHAR(20)
280
		)
281

    
282

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

    
314
		INSERT INTO @DVDM_ID_TABLE
315
		SELECT DVDM_ID FROM dbo.PL_COSTCENTER WHERE COST_ID IN (SELECT COST_ID FROM @COST_ID_TABLE) GROUP BY DVDM_ID
316

    
317
		
318
		DECLARE @TYPE_JOB_CR VARCHAR(20)
319

    
320

    
321
		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')
322

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

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

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

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

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

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

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

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

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

    
771
					UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID=@PROCESS_NEXT WHERE REQ_ID=@p_REQ_ID
772

    
773
				END
774
				ELSE IF(@PROCESS_CURR='KT')
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_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
778
						UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='C' WHERE REQ_ID=@p_REQ_ID AND PARENT_PROCESS_ID=@PROCESS_CURR
779
						UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID=@PROCESS_NEXT WHERE REQ_ID=@p_REQ_ID
780
				END
781
				ELSE IF(@PROCESS_CURR='DVCM' )
782
				BEGIN
783
					SET @NOTES=(SELECT CONTENT FROM dbo.CM_ALLCODE WHERE (@PROCESS_CURR LIKE CDVAL + '%') AND CDNAME='PROCESS_ID' AND CDTYPE='REQ')   
784
					UPDATE dbo.PL_REQUEST_COSTCENTER SET AUTH_STATUS='A',APPROVE_DT=GETDATE(),CHECKER_ID=@p_MAKER_ID WHERE REQ_ID=@p_REQ_ID 
785
					AND (COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID_TABLE) OR COST_ID IN (SELECT DVDM_ID FROM @AUTHOR_DVDM))
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 (ROLE_USER=@ROLE_ID OR ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@ROLE_ID))
788
					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)
789

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

    
823
							
824
									DECLARE 	@LIMIT_VALUE DECIMAL(18,0),
825
									@IS_NEXT BIT=0,@TOTAL_AMT_GD DECIMAL(12,0),@STOP BIT,@ROLE_TF VARCHAR(20),@DVDM_ID VARCHAR(20),@NOTE NVARCHAR(100)
826
									DECLARE @ROLE_CDT VARCHAR(20),@DVDM_CDT VARCHAR(20),@LIMIT_VALUE_CDT VARCHAR(20),@NOTES_CDT VARCHAR(20),@TOTAL_AMT DECIMAL(18,2)	
827
						
828

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

    
879
									FETCH NEXT FROM lstTransfer INTO @DVDM_ID
880
									END
881
									CLOSE lstTransfer
882
									DEALLOCATE lstTransfer
883

    
884

    
885

    
886
								SET @STEP_NEXT='TC'
887
								IF(EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='DVDM_DC'))
888
								BEGIN
889
										SET @STEP_PARENT='DVDM_DC'
890
										SET @STEP_NEXT	='DVDM_DC'
891
								END
892

    
893
								UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID=@STEP_PARENT,STATUS='U' WHERE  PROCESS_ID='TC' AND REQ_ID=@p_REQ_ID
894
								SET @STEP_PARENT='TC'
895
	
896
								UPDATE dbo.PL_REQUEST_PROCESS SET [STATUS]='C' WHERE PROCESS_ID=@STEP_NEXT AND REQ_ID=@p_REQ_ID
897
								UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID=@STEP_PARENT,STATUS='U' WHERE  PROCESS_ID='APPROVE' AND REQ_ID=@p_REQ_ID
898
								UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID=@STEP_NEXT WHERE REQ_ID=@p_REQ_ID
899

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

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