Project

General

Profile

FILE 7.txt

Truong Nguyen Vu, 09/14/2020 09:40 AM

 
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(20),
9
@p_REF_ID INT
10
AS
11
BEGIN TRANSACTION
12
---LUCTV KIEM TRA NEU TO TRINH DANG BI TRA VE THI KHONG DUOC PHEP DUYET
13
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'))
14
OR(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='R')))
15
BEGIN
16
	ROLLBACK TRANSACTION
17
	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
18
	RETURN -1
19
END
20
DECLARE  @ERROR BIT ,@EROOR_DES NVARCHAR(500)
21

    
22
SELECT @ERROR=ERROR,
23
       @EROOR_DES=ERROR_DES FROM dbo.FN_CHECK_VALIDATE_APP(@p_REQ_ID,'PDDC','PL_REQUEST_DOC',@p_MAKER_ID,'DVKD')
24
IF(@ERROR=1)
25
BEGIN
26
	 ROLLBACK TRANSACTION;
27
    SELECT -1  Result,
28
           @EROOR_DES ErrorDesc
29
   
30
    RETURN 0;
31
END
32

    
33

    
34

    
35
DECLARE @LEVEL INT,@DEP_ID VARCHAR(20),@BRANCH_ID VARCHAR(20),@BRANCH_CREATE VARCHAR(20),@DEP_CREATE VARCHAR(20)
36
DECLARE @ROLE_ID VARCHAR(20),@NOTES NVARCHAR(500),
37
				@PROCESS_CURR VARCHAR(10),
38
				@STEP_CURR INT,
39
				@STEP_NEXT INT,
40
				@PROCESS_NEXT VARCHAR(10),
41
				@TYPE_JOB_NAME NVARCHAR(100), @FULLNAME NVARCHAR(100)
42

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

    
45

    
46
SELECT @BRANCH_CREATE=BRANCH_CREATE,@DEP_CREATE=DEP_CREATE FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID
47

    
48

    
49
DECLARE
50
@COST_ID_TABLE TABLE (
51
	COST_ID VARCHAR(15)
52
)
53

    
54
DECLARE @DVDM_ID_TABLE TABLE (
55
	DVDM_ID VARCHAR(15)
56
)
57

    
58
	INSERT INTO @COST_ID_TABLE
59
	SELECT COST_ID FROM dbo.PL_COSTCENTER_DT WHERE DEP_ID=@DEP_ID AND BRANCH_ID=@BRANCH_ID
60

    
61
	INSERT INTO @DVDM_ID_TABLE
62
	SELECT DVDM_ID FROM dbo.PL_COSTCENTER WHERE COST_ID IN (SELECT COST_ID FROM @COST_ID_TABLE) GROUP BY DVDM_ID
63

    
64
	
65
			
66
		UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='P'
67
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND TLNAME=@p_TLNAME AND TYPE_JOB=@p_TYPE_JOB
68

    
69

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

    
90
		
91

    
92

    
93
		SET @LEVEL=ISNULL((SELECT TOP 1 LEVEL_JOB 
94
		FROM dbo.PL_REQUEST_PROCESS_CHILD 
95
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND TLNAME=@p_TLNAME AND TYPE_JOB=@p_TYPE_JOB
96
		ORDER BY LEVEL_JOB DESC),0)                  
97

    
98
		UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='C'
99
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND LEVEL_JOB=(@LEVEL-1)
100
		
101
		IF(NOT EXISTS (SELECT * FROM  dbo.PL_REQUEST_PROCESS_CHILD 
102
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND STATUS_JOB <> 'P'))
103
		BEGIN
104

    
105

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

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

    
139
						SET @NOTES=(SELECT CONTENT FROM dbo.CM_ALLCODE WHERE (@PROCESS_CURR LIKE CDVAL + '%') AND CDNAME='PROCESS_ID' AND CDTYPE='REQ')   
140
						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
141
						UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='C' WHERE REQ_ID=@p_REQ_ID AND PARENT_PROCESS_ID=@PROCESS_CURR
142
						UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID=@PROCESS_NEXT WHERE REQ_ID=@p_REQ_ID
143
				END
144
				ELSE
145
				BEGIN
146
				SET @NOTES=(SELECT CONTENT FROM dbo.CM_ALLCODE WHERE (@PROCESS_CURR LIKE CDVAL + '%') AND CDNAME='PROCESS_ID' AND CDTYPE='REQ')   
147

    
148

    
149
				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)
150
				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 DVDM_ID IN (SELECT DVDM_ID FROM @DVDM_ID_TABLE)
151
							
152

    
153

    
154
				IF(NOT EXISTS( SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@PROCESS_CURR AND REQ_ID=@p_REQ_ID AND STATUS='C'))
155
				BEGIN
156
						
157
							UPDATE dbo.PL_REQUEST_PROCESS SET [STATUS]='C' WHERE PROCESS_ID=@PROCESS_NEXT AND REQ_ID=@p_REQ_ID
158
							UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID=@PROCESS_NEXT WHERE REQ_ID=@p_REQ_ID
159
						
160
				END
161

    
162
				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='')
163
				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 BRANCH_ID=@BRANCH_ID AND (DEP_ID=@DEP_ID OR DEP_ID IS NULL OR DEP_ID='')
164

    
165

    
166
				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)))
167
					BEGIN
168
					IF(NOT EXISTS(SELECT REQ_COST_ID FROM dbo.PL_REQUEST_COSTCENTER WHERE REQ_ID=@p_REQ_ID AND AUTH_STATUS<>'A'))
169
					BEGIN
170
							IF(NOT EXISTS(SELECT * FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID AND AUTH_STATUS <>'A'))
171
							BEGIN
172
									DECLARE 	@LIMIT_VALUE DECIMAL(18,0),@TOTAL_TRANSFER DECIMAL(18,2),
173
									@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)
174
									DECLARE @ROLE_CDT VARCHAR(20),@DVDM_CDT VARCHAR(20),@LIMIT_VALUE_CDT VARCHAR(20),@NOTES_CDT VARCHAR(20),@TOTAL_AMT DECIMAL(18,2)	
175
						
176

    
177
									SET @STEP_PARENT=(SELECT PARENT_PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID='TC' AND REQ_ID=@p_REQ_ID)
178
						
179
									SET @NOTE=   (SELECT CONTENT FROM dbo.CM_ALLCODE WHERE CDVAL='DVDM' AND CDNAME='PROCESS_ID' AND CDTYPE='REQ')
180
							
181

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

    
225
									FETCH NEXT FROM lstTransfer INTO @DVDM_ID
226
									END
227
									CLOSE lstTransfer
228
									DEALLOCATE lstTransfer
229

    
230

    
231
									 IF(EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='DVDM_DC'))
232
										SET @STEP_PARENT='DVDM_DC'
233
							
234

    
235
								UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID=@STEP_PARENT,STATUS='U' WHERE  PROCESS_ID='TC' AND REQ_ID=@p_REQ_ID
236
								SET @STEP_PARENT='TC'
237

    
238
								---Duyệt DC
239

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

    
282

    
283
									IF(@KHOI_ID_TF IS NOT NULL AND @KHOI_ID_TF <>'')
284
									BEGIN
285
									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)
286
									SET @TOTAL_TRANSFER=(SELECT SUM(TOTAL_AMT) AS TOTAL FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID)
287
									SET @LIMTT_MAX=(SELECT LIMIT_VALUE FROM dbo.TL_SYSROLE_LIMIT WHERE ROLE_ID='GDK' AND LIMIT_TYPE='DCNS')
288

    
289
									INSERT INTO dbo.PL_REQUEST_PROCESS
290
									(
291
										REQ_ID,
292
										PROCESS_ID,
293
										STATUS,
294
										ROLE_USER,
295
										BRANCH_ID,
296
										CHECKER_ID,
297
										APPROVE_DT,
298
										PARENT_PROCESS_ID,
299
										IS_LEAF,
300
										COST_ID,
301
										DVDM_ID,
302
										NOTES,
303
										IS_HAS_CHILD
304
									)
305
									VALUES
306
									(   @p_REQ_ID,        -- REQ_ID - varchar(15)
307
										'GDK_DC',        -- PROCESS_ID - varchar(10)
308
										'U',        -- STATUS - varchar(5)
309
										'GDK',        -- ROLE_USER - varchar(50)
310
										'',        -- BRANCH_ID - varchar(15)
311
										'',        -- CHECKER_ID - varchar(15)
312
										GETDATE(), -- APPROVE_DT - datetime
313
										@STEP_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
314
										'N',        -- IS_LEAF - varchar(1)
315
										'',        -- COST_ID - varchar(15)
316
										@KHOI_ID_TF,        -- DVDM_ID - varchar(15)
317
										N'Chờ giám đốc khối xác nhận',       -- NOTES - nvarchar(500)
318
										NULL       -- IS_HAS_CHILD - bit
319
									 )
320
									 SET @STEP_PARENT='GDK_DC';
321

    
322
									UPDATE dbo.PL_REQUEST_PROCESS SET ROLE_USER='PTGD' WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='GDK_DC' AND NOT EXISTS(SELECT DVDM_ID FROM dbo.CM_DVDM WHERE CM_DVDM.DVDM_ID=dbo.PL_REQUEST_PROCESS.DVDM_ID AND IS_GDK=1)
323

    
324
									 IF(@TOTAL_TRANSFER>@LIMTT_MAX OR @TOTAL_TRANSFER>@LIMIT_APP)
325
									 BEGIN
326
										IF(EXISTS(SELECT DVDM_ID FROM dbo.CM_DVDM WHERE DVDM_ID=@KHOI_ID_TF AND IS_KHOI=1 AND IS_PTGD=1) )
327
										BEGIN
328
											IF(NOT EXISTS (SELECT DVDM_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND ROLE_USER='PTGD' AND DVDM_ID=@KHOI_ID_TF))
329
											BEGIN	
330
												INSERT INTO dbo.PL_REQUEST_PROCESS
331
												(
332
												REQ_ID,
333
												PROCESS_ID,
334
												STATUS,
335
												ROLE_USER,
336
												BRANCH_ID,
337
												CHECKER_ID,
338
												APPROVE_DT,
339
												PARENT_PROCESS_ID,
340
												IS_LEAF,
341
												COST_ID,
342
												DVDM_ID,
343
												NOTES,
344
												IS_HAS_CHILD
345
											)
346
											VALUES
347
											(   @p_REQ_ID,        -- REQ_ID - varchar(15)
348
												'PTGD_DC',        -- PROCESS_ID - varchar(10)
349
												'U',        -- STATUS - varchar(5)
350
												'PTGD',        -- ROLE_USER - varchar(50)
351
												'',        -- BRANCH_ID - varchar(15)
352
												'',        -- CHECKER_ID - varchar(15)
353
												GETDATE(), -- APPROVE_DT - datetime
354
												@STEP_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
355
												'N',        -- IS_LEAF - varchar(1)
356
												'',        -- COST_ID - varchar(15)
357
												@KHOI_ID_TF,        -- DVDM_ID - varchar(15)
358
												N'Chờ giám đốc khối xác nhận',       -- NOTES - nvarchar(500)
359
												NULL       -- IS_HAS_CHILD - bit
360
											 )
361
											SET @STEP_PARENT='PTGD_DC'
362
											END
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
			
417
	
418
				END
419

    
420
			IF(EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='APPROVE'))
421
			BEGIN
422
				
423
					
424
					EXEC dbo.PL_REQ_DOC_UPDATE_AFTER_APPROVE @p_REQ_ID = @p_REQ_ID 
425
					EXEC dbo.PL_REQ_DOC_Ins_To_TR_REQ_DOC @p_PL_REQ_ID = @p_REQ_ID
426
			END
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