Project

General

Profile

store2.txt

Truong Nguyen Vu, 07/14/2020 09:36 AM

 
1
USE [gAMSPro_VietcapitalBank_v2]
2
GO
3
/****** Object:  StoredProcedure [dbo].[PL_REQ_PROCESS_CHILD_App]    Script Date: 14-Jul-20 9:28:33 AM ******/
4
SET ANSI_NULLS ON
5
GO
6
SET QUOTED_IDENTIFIER ON
7
GO
8
ALTER PROCEDURE [dbo].[PL_REQ_PROCESS_CHILD_App]
9
@p_REQ_ID VARCHAR(20),
10
@p_PROCESS_ID VARCHAR(20),
11
@p_TLNAME VARCHAR(20),
12
@p_MAKER_ID VARCHAR(20),
13
@p_TYPE_JOB VARCHAR(20),
14
@p_PROCESS_DES NVARCHAR(20),
15
@p_REF_ID INT
16
AS
17
BEGIN TRANSACTION
18
---LUCTV KIEM TRA NEU TO TRINH DANG BI TRA VE THI KHONG DUOC PHEP DUYET
19
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'))
20
OR(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='R')))
21
BEGIN
22
	ROLLBACK TRANSACTION
23
	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
24
	RETURN -1
25
END
26
DECLARE  @ERROR BIT ,@EROOR_DES NVARCHAR(500)
27

    
28
SELECT @ERROR=ERROR,
29
       @EROOR_DES=ERROR_DES FROM dbo.FN_CHECK_VALIDATE_APP(@p_REQ_ID,'PDDC','PL_REQUEST_DOC',@p_MAKER_ID,'DVKD')
30
IF(@ERROR=1)
31
BEGIN
32
	 ROLLBACK TRANSACTION;
33
    SELECT -1  Result,
34
           @EROOR_DES ErrorDesc
35
   
36
    RETURN 0;
37
END
38

    
39

    
40

    
41
DECLARE @LEVEL INT,@DEP_ID VARCHAR(20),@BRANCH_ID VARCHAR(20),@BRANCH_CREATE VARCHAR(20),@DEP_CREATE VARCHAR(20)
42
DECLARE @ROLE_ID VARCHAR(20),@NOTES NVARCHAR(500),
43
				@PROCESS_CURR VARCHAR(10),
44
				@STEP_CURR INT,
45
				@STEP_NEXT INT,
46
				@PROCESS_NEXT VARCHAR(10),
47
				@TYPE_JOB_NAME NVARCHAR(100), @FULLNAME NVARCHAR(100)
48

    
49
SELECT @BRANCH_ID=  TLSUBBRID,@DEP_ID=SECUR_CODE ,@ROLE_ID=RoleName FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID
50

    
51

    
52
SELECT @BRANCH_CREATE=BRANCH_CREATE,@DEP_CREATE=DEP_CREATE FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID
53

    
54

    
55
DECLARE
56
@COST_ID_TABLE TABLE (
57
	COST_ID VARCHAR(15)
58
)
59

    
60
DECLARE @DVDM_ID_TABLE TABLE (
61
	DVDM_ID VARCHAR(15)
62
)
63

    
64
	INSERT INTO @COST_ID_TABLE
65
	SELECT COST_ID FROM dbo.PL_COSTCENTER_DT WHERE DEP_ID=@DEP_ID AND BRANCH_ID=@BRANCH_ID
66

    
67
	INSERT INTO @DVDM_ID_TABLE
68
	SELECT DVDM_ID FROM dbo.PL_COSTCENTER WHERE COST_ID IN (SELECT COST_ID FROM @COST_ID_TABLE) GROUP BY DVDM_ID
69

    
70
	
71
			
72
		UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='P'
73
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND TLNAME=@p_TLNAME AND TYPE_JOB=@p_TYPE_JOB
74

    
75

    
76
		SET @TYPE_JOB_NAME =(SELECT CONTENT FROM dbo.CM_ALLCODE WHERE CDNAME = 'JOB_TYPE' AND CDTYPE='REQ' AND CDVAL=@p_TYPE_JOB)
77
		SET @FULLNAME =(SELECT TLFullName FROM dbo.TL_USER WHERE TLNANME=@p_TLNAME )
78
			
79
		INSERT INTO dbo.PL_PROCESS
80
				(
81
					REQ_ID,
82
					PROCESS_ID,
83
					CHECKER_ID,
84
					APPROVE_DT,
85
					PROCESS_DESC,NOTES
86
				)
87
				VALUES
88
				(   @p_REQ_ID,        -- REQ_ID - varchar(15)
89
					@p_PROCESS_ID,        -- PROCESS_ID - varchar(10)
90
					@p_MAKER_ID,        -- CHECKER_ID - varchar(15)
91
					GETDATE() , -- APPROVE_DT - datetime
92
					@p_PROCESS_DES ,
93
					@TYPE_JOB_NAME+ N' đã phê duyệt'       -- PROCESS_DESC - nvarchar(1000)
94
				)
95

    
96
		
97

    
98

    
99
		SET @LEVEL=ISNULL((SELECT TOP 1 LEVEL_JOB 
100
		FROM dbo.PL_REQUEST_PROCESS_CHILD 
101
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND TLNAME=@p_TLNAME AND TYPE_JOB=@p_TYPE_JOB
102
		ORDER BY LEVEL_JOB DESC),0)                  
103

    
104
		UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='C'
105
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND LEVEL_JOB=(@LEVEL-1)
106
		
107
		IF(NOT EXISTS (SELECT * FROM  dbo.PL_REQUEST_PROCESS_CHILD 
108
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND STATUS_JOB <> 'P'))
109
		BEGIN
110

    
111

    
112
				SET @PROCESS_CURR = (SELECT TOP 1 PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND STATUS='C')
113
				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)
114
				IF(@PROCESS_CURR='TC')
115
				BEGIN
116
						SELECT @ERROR=ERROR,
117
						   @EROOR_DES=ERROR_DES FROM dbo.FN_CHECK_VALIDATE_APP(@p_REQ_ID,'PDDC','PL_REQUEST_DOC',@p_MAKER_ID,'TC')
118
					IF(@ERROR=1)
119
					BEGIN
120
						 ROLLBACK TRANSACTION;
121
						SELECT '-1'  Result,
122
							   @EROOR_DES ErrorDesc
123
   
124
						RETURN '0';
125
					END
126

    
127
						SET @NOTES=(SELECT CONTENT FROM dbo.CM_ALLCODE WHERE (@PROCESS_CURR LIKE CDVAL + '%') AND CDNAME='PROCESS_ID' AND CDTYPE='REQ')   
128
						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 AND PROCESS_ID=@PROCESS_CURR
129
						UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='C' WHERE REQ_ID=@p_REQ_ID AND PARENT_PROCESS_ID=@PROCESS_CURR
130
						UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID=@PROCESS_NEXT WHERE REQ_ID=@p_REQ_ID
131
				END
132
				ELSE IF(@PROCESS_CURR='KT')
133
				BEGIN
134
					--	SELECT @ERROR=ERROR,
135
					--	   @EROOR_DES=ERROR_DES FROM dbo.FN_CHECK_VALIDATE_APP(@p_REQ_ID,'PDDC','PL_REQUEST_DOC',@p_MAKER_ID,'TC')
136
					--IF(@ERROR=1)
137
					--BEGIN
138
					--	 ROLLBACK TRANSACTION;
139
					--	SELECT '-1'  Result,
140
					--		   @EROOR_DES ErrorDesc
141
   
142
					--	RETURN '0';
143
					--END
144

    
145
						SET @NOTES=(SELECT CONTENT FROM dbo.CM_ALLCODE WHERE (@PROCESS_CURR LIKE CDVAL + '%') AND CDNAME='PROCESS_ID' AND CDTYPE='REQ')   
146
						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 AND PROCESS_ID=@PROCESS_CURR
147
						UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='C' WHERE REQ_ID=@p_REQ_ID AND PARENT_PROCESS_ID=@PROCESS_CURR
148
						UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID=@PROCESS_NEXT WHERE REQ_ID=@p_REQ_ID
149
				END
150
				ELSE
151
				BEGIN
152
				SET @NOTES=(SELECT CONTENT FROM dbo.CM_ALLCODE WHERE (@PROCESS_CURR LIKE CDVAL + '%') AND CDNAME='PROCESS_ID' AND CDTYPE='REQ')   
153

    
154

    
155
				UPDATE dbo.PL_REQUEST_COSTCENTER SET AUTH_STATUS='A',APPROVE_DT=GETDATE(),CHECKER_ID=@p_MAKER_ID WHERE REQ_ID=@p_REQ_ID AND COST_ID IN (SELECT DVDM_ID FROM @DVDM_ID_TABLE)
156
				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 AND DVDM_ID IN (SELECT DVDM_ID FROM @DVDM_ID_TABLE)
157
							
158

    
159

    
160
				IF(NOT EXISTS( SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@PROCESS_CURR AND REQ_ID=@p_REQ_ID AND STATUS='C'))
161
				BEGIN
162
						
163
							UPDATE dbo.PL_REQUEST_PROCESS SET [STATUS]='C' WHERE PROCESS_ID=@PROCESS_NEXT AND REQ_ID=@p_REQ_ID
164
							UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID=@PROCESS_NEXT WHERE REQ_ID=@p_REQ_ID
165
						
166
				END
167

    
168
				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 FR_BRN_ID=@BRANCH_ID AND (FR_DEP_ID=@DEP_ID OR FR_DEP_ID IS NULL OR FR_DEP_ID='')
169
				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 AND BRANCH_ID=@BRANCH_ID AND (DEP_ID=@DEP_ID OR DEP_ID IS NULL OR DEP_ID='')
170

    
171

    
172
		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)))
173
			BEGIN
174
			IF(NOT EXISTS(SELECT REQ_COST_ID FROM dbo.PL_REQUEST_COSTCENTER WHERE REQ_ID=@p_REQ_ID AND AUTH_STATUS<>'A'))
175
			BEGIN
176
				    IF(NOT EXISTS(SELECT * FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID AND AUTH_STATUS <>'A'))
177
					BEGIN
178
							DECLARE 	@LIMIT_VALUE DECIMAL(18,0),@TOTAL_TRANSFER DECIMAL(18,2),
179
							@IS_NEXT BIT=0,@STEP_PARENT VARCHAR(20),@TOTAL_AMT_GD DECIMAL(12,0),@STOP BIT,@ROLE_TF VARCHAR(20),@DVDM_ID VARCHAR(20),@NOTE NVARCHAR(100)
180
							DECLARE @ROLE_CDT VARCHAR(20),@DVDM_CDT VARCHAR(20),@LIMIT_VALUE_CDT VARCHAR(20),@NOTES_CDT VARCHAR(20),@TOTAL_AMT DECIMAL(18,2)	
181
						
182

    
183
							SET @STEP_PARENT=(SELECT PARENT_PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID='TC' AND REQ_ID=@p_REQ_ID)
184
						
185
							SET @NOTE=   (SELECT CONTENT FROM dbo.CM_ALLCODE WHERE CDVAL='DVDM' AND CDNAME='PROCESS_ID' AND CDTYPE='REQ')
186
							
187

    
188
							DECLARE lstTransfer CURSOR FOR
189
							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)
190
							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	)
191
							GROUP BY FR_DVDM_ID
192
							OPEN lstTransfer
193
							FETCH NEXT FROM lstTransfer INTO @DVDM_ID
194
							WHILE @@FETCH_STATUS = 0 
195
							BEGIN 
196
							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
197
							LEFT JOIN dbo.PL_COSTCENTER_DT PCD ON PCD.COST_ID = PC.COST_ID
198
							WHERE PCD.BRANCH_ID=PL_REQUEST_PROCESS.BRANCH_ID AND PCD.DEP_ID=PL_REQUEST_PROCESS.DEP_ID)) ) ))
199
							BEGIN
200
								INSERT INTO dbo.PL_REQUEST_PROCESS
201
								(
202
									REQ_ID,
203
									PROCESS_ID,
204
									STATUS,
205
									ROLE_USER,
206
									BRANCH_ID,
207
									CHECKER_ID,
208
									APPROVE_DT,
209
									PARENT_PROCESS_ID,
210
									IS_LEAF,
211
									COST_ID,
212
									DVDM_ID,
213
									NOTES,IS_HAS_CHILD
214
								)
215
								VALUES
216
								(   @p_REQ_ID,        -- REQ_ID - varchar(15)
217
									'DVDM_DC',        -- PROCESS_ID - varchar(10)
218
									'U',        -- STATUS - varchar(5)
219
									'GDDV',        -- ROLE_USER - varchar(50)
220
									'',        -- BRANCH_ID - varchar(15)
221
									'',        -- CHECKER_ID - varchar(15)
222
									NULL, -- APPROVE_DT - datetime
223
									@STEP_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
224
									'N',        -- IS_LEAF - varchar(1)
225
									'',        -- COST_ID - varchar(15)
226
									@DVDM_ID ,        -- DVDM_ID - varchar(15)
227
									N'Chờ '+@NOTE+N' xác nhận'
228
									,0)
229
							END
230

    
231
							FETCH NEXT FROM lstTransfer INTO @DVDM_ID
232
							END
233
							CLOSE lstTransfer
234
							DEALLOCATE lstTransfer
235

    
236

    
237
							 IF(EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='DVDM_DC'))
238
								SET @STEP_PARENT='DVDM_DC'
239
							
240

    
241
						UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID=@STEP_PARENT,STATUS='U' WHERE  PROCESS_ID='TC' AND REQ_ID=@p_REQ_ID
242
						SET @STEP_PARENT='TC'
243

    
244
						---Duyệt DC
245

    
246
						IF( (SELECT COUNT(T.FR_KHOI_ID) AS COUNT_ROW FROM (SELECT FR_KHOI_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID AND FR_KHOI_ID IS NOT NULL AND FR_KHOI_ID <>''
247
						GROUP BY FR_KHOI_ID)T
248
						) > 1)
249
						BEGIN
250
							INSERT INTO dbo.PL_REQUEST_PROCESS
251
							(
252
							    REQ_ID,
253
							    PROCESS_ID,
254
							    STATUS,
255
							    ROLE_USER,
256
							    BRANCH_ID,
257
							    CHECKER_ID,
258
							    APPROVE_DT,
259
							    PARENT_PROCESS_ID,
260
							    IS_LEAF,
261
							    COST_ID,
262
							    DVDM_ID,
263
							    NOTES,
264
							    IS_HAS_CHILD
265
							)
266
							VALUES
267
							(   @p_REQ_ID,        -- REQ_ID - varchar(15)
268
							    'TGD_DC',        -- PROCESS_ID - varchar(10)
269
							    'U',        -- STATUS - varchar(5)
270
							    'TGD',        -- ROLE_USER - varchar(50)
271
							    '',        -- BRANCH_ID - varchar(15)
272
							    '',        -- CHECKER_ID - varchar(15)
273
							    NULL, -- APPROVE_DT - datetime
274
							    @STEP_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
275
							    '',        -- IS_LEAF - varchar(1)
276
							    '',        -- COST_ID - varchar(15)
277
							    '',        -- DVDM_ID - varchar(15)
278
							    N'Chờ tổng giám đốc phê duyệt',       -- NOTES - nvarchar(500)
279
							    NULL       -- IS_HAS_CHILD - bit
280
							    )
281
							SET	@STEP_PARENT='TGD_DC'
282
						END
283
						ELSE
284
						BEGIN
285
							DECLARE @LIMTT_MAX  DECIMAL(18,2),@LIMIT_APP DECIMAL(18,2) ,@KHOI_ID_TF VARCHAR(20)
286
							SET @KHOI_ID_TF=(SELECT TOP 1 FR_KHOI_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID)
287

    
288

    
289
							IF(@KHOI_ID_TF IS NOT NULL AND @KHOI_ID_TF <>'')
290
							BEGIN
291
							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)
292
							SET @TOTAL_TRANSFER=(SELECT SUM(TOTAL_AMT) AS TOTAL FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID)
293
							SET @LIMTT_MAX=(SELECT LIMIT_VALUE FROM dbo.TL_SYSROLE_LIMIT WHERE ROLE_ID='GDK' AND LIMIT_TYPE='DCNS')
294

    
295
							INSERT INTO dbo.PL_REQUEST_PROCESS
296
							(
297
							    REQ_ID,
298
							    PROCESS_ID,
299
							    STATUS,
300
							    ROLE_USER,
301
							    BRANCH_ID,
302
							    CHECKER_ID,
303
							    APPROVE_DT,
304
							    PARENT_PROCESS_ID,
305
							    IS_LEAF,
306
							    COST_ID,
307
							    DVDM_ID,
308
							    NOTES,
309
							    IS_HAS_CHILD
310
							)
311
							VALUES
312
							(   @p_REQ_ID,        -- REQ_ID - varchar(15)
313
							    'GDK_DC',        -- PROCESS_ID - varchar(10)
314
							    'U',        -- STATUS - varchar(5)
315
							    'GDK',        -- ROLE_USER - varchar(50)
316
							    '',        -- BRANCH_ID - varchar(15)
317
							    '',        -- CHECKER_ID - varchar(15)
318
							    GETDATE(), -- APPROVE_DT - datetime
319
							    @STEP_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
320
							    'N',        -- IS_LEAF - varchar(1)
321
							    '',        -- COST_ID - varchar(15)
322
							    @KHOI_ID_TF,        -- DVDM_ID - varchar(15)
323
							    N'Chờ giám đốc khối xác nhận',       -- NOTES - nvarchar(500)
324
							    NULL       -- IS_HAS_CHILD - bit
325
							 )
326
							 SET @STEP_PARENT='GDK_DC';
327
							 IF(@TOTAL_TRANSFER>@LIMTT_MAX OR @TOTAL_TRANSFER>@LIMIT_APP)
328
							 BEGIN
329
								IF(EXISTS(SELECT DVDM_ID FROM dbo.CM_DVDM WHERE DVDM_ID=@KHOI_ID_TF AND IS_KHOI=1 AND IS_PTGD=1))
330
									BEGIN
331
									INSERT INTO dbo.PL_REQUEST_PROCESS
332
							(
333
							    REQ_ID,
334
							    PROCESS_ID,
335
							    STATUS,
336
							    ROLE_USER,
337
							    BRANCH_ID,
338
							    CHECKER_ID,
339
							    APPROVE_DT,
340
							    PARENT_PROCESS_ID,
341
							    IS_LEAF,
342
							    COST_ID,
343
							    DVDM_ID,
344
							    NOTES,
345
							    IS_HAS_CHILD
346
							)
347
							VALUES
348
							(   @p_REQ_ID,        -- REQ_ID - varchar(15)
349
							    'PTGD_DC',        -- PROCESS_ID - varchar(10)
350
							    'U',        -- STATUS - varchar(5)
351
							    'PTGD',        -- ROLE_USER - varchar(50)
352
							    '',        -- BRANCH_ID - varchar(15)
353
							    '',        -- CHECKER_ID - varchar(15)
354
							    GETDATE(), -- APPROVE_DT - datetime
355
							    @STEP_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
356
							    'N',        -- IS_LEAF - varchar(1)
357
							    '',        -- COST_ID - varchar(15)
358
							    @KHOI_ID_TF,        -- DVDM_ID - varchar(15)
359
							    N'Chờ giám đốc khối xác nhận',       -- NOTES - nvarchar(500)
360
							    NULL       -- IS_HAS_CHILD - bit
361
							 )
362
									SET @STEP_PARENT='PTGD_DC'
363
									SET @LIMTT_MAX=(SELECT LIMIT_VALUE FROM dbo.TL_SYSROLE_LIMIT WHERE ROLE_ID='GDK' AND LIMIT_TYPE='DCNS')
364
									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)
365
									
366
									END
367
									IF(@TOTAL_TRANSFER>@LIMTT_MAX OR @TOTAL_TRANSFER>@LIMIT_APP OR EXISTS(SELECT DVDM_ID FROM dbo.CM_DVDM WHERE DVDM_ID=@KHOI_ID_TF AND IS_KHOI=1 AND IS_PTGD=0))
368
									BEGIN
369
									INSERT INTO dbo.PL_REQUEST_PROCESS
370
									(
371
										REQ_ID,
372
										PROCESS_ID,
373
										STATUS,
374
										ROLE_USER,
375
										BRANCH_ID,
376
										CHECKER_ID,
377
										APPROVE_DT,
378
										PARENT_PROCESS_ID,
379
										IS_LEAF,
380
										COST_ID,
381
										DVDM_ID,
382
										NOTES,
383
										IS_HAS_CHILD
384
									)
385
									VALUES
386
									(   @p_REQ_ID,        -- REQ_ID - varchar(15)
387
										'TGD_DC',        -- PROCESS_ID - varchar(10)
388
										'U',        -- STATUS - varchar(5)
389
										'TGD',        -- ROLE_USER - varchar(50)
390
										'',        -- BRANCH_ID - varchar(15)
391
										'',        -- CHECKER_ID - varchar(15)
392
										NULL, -- APPROVE_DT - datetime
393
										@STEP_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
394
										'',        -- IS_LEAF - varchar(1)
395
										'',        -- COST_ID - varchar(15)
396
										'',        -- DVDM_ID - varchar(15)
397
										N'Chờ tổng giám đốc phê duyệt',       -- NOTES - nvarchar(500)
398
										NULL       -- IS_HAS_CHILD - bit
399
									)
400
									SET	@STEP_PARENT='TGD_DC'
401
								 END
402
							
403
							 END
404
							 END
405
						END
406
						--- Duyệt TT
407
						
408
						UPDATE dbo.PL_REQUEST_PROCESS SET [STATUS]='C' WHERE PROCESS_ID='DVDM_DC' AND REQ_ID=@p_REQ_ID
409
						UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID=@STEP_PARENT,STATUS='U' WHERE  PROCESS_ID='APPROVE' AND REQ_ID=@p_REQ_ID
410
						UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID='DVDM_DC' WHERE REQ_ID=@p_REQ_ID
411

    
412
				END	
413
			END
414
		END
415

    
416
			IF(EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='APPROVE'))
417
			BEGIN
418
				
419
					
420
					EXEC dbo.PL_REQ_DOC_UPDATE_AFTER_APPROVE @p_REQ_ID = @p_REQ_ID 
421
					EXEC dbo.PL_REQ_DOC_Ins_To_TR_REQ_DOC @p_PL_REQ_ID = @p_REQ_ID
422
			END
423
	
424
				END
425

    
426

    
427
		END
428
				
429
		IF @@Error <> 0 GOTO ABORT
430
COMMIT TRANSACTION
431
SELECT 0 as Result, '' ErrorDesc
432
RETURN 0
433
ABORT:
434
BEGIN
435
		ROLLBACK TRANSACTION
436
		SELECT -1 as Result, '' ErrorDesc
437
		RETURN -1
438
End
439

    
440

    
441

    
442

    
443

    
444