Project

General

Profile

PLREQUESTAPP.txt

Truong Nguyen Vu, 05/12/2020 12:01 PM

 
1
USE [gAMSPro_VietcapitalBank_v2]
2
GO
3
/****** Object:  StoredProcedure [dbo].[PL_REQUEST_DOC_App]    Script Date: 12-May-20 11:57:43 ******/
4
SET ANSI_NULLS ON
5
GO
6
SET QUOTED_IDENTIFIER ON
7
GO
8
ALTER PROCEDURE [dbo].[PL_REQUEST_DOC_App]
9
    @p_REQ_ID VARCHAR(15) = NULL,
10
    @p_AUTH_STATUS VARCHAR(1) = NULL,
11
    @p_CHECKER_ID VARCHAR(15) = NULL,
12
    @p_APPROVE_DT DATETIME = NULL,
13
    @p_ROLE_LOGIN VARCHAR(50) = NULL,
14
    @p_BRANCH_LOGIN VARCHAR(15),
15
    @p_PROCESS_DES NVARCHAR(500)
16
AS
17

    
18
BEGIN TRANSACTION;
19
--SET @p_APPROVE_DT = @p_APPROVE_DT 
20

    
21
--Validation is here
22
DECLARE @ERRORSYS NVARCHAR(15) = '';
23
IF (NOT EXISTS (SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID = @p_REQ_ID))
24
    SET @ERRORSYS = 'REQ-00002';
25
IF @ERRORSYS <> ''
26
BEGIN
27
    ROLLBACK TRANSACTION;
28
    SELECT ErrorCode Result,
29
           ErrorDesc ErrorDesc
30
    FROM SYS_ERROR
31
    WHERE ErrorCode = @ERRORSYS;
32
    RETURN '0';
33
END;
34

    
35
DECLARE  @ERROR BIT ,@EROOR_DES NVARCHAR(500)
36

    
37
SELECT @ERROR=ERROR,
38
       @EROOR_DES=ERROR_DES FROM dbo.FN_CHECK_VALIDATE_APP(@p_REQ_ID,'APPNEW','PL_REQUEST_DOC',@p_CHECKER_ID,'APPNEW')
39
IF(@ERROR=1)
40
BEGIN
41
	 ROLLBACK TRANSACTION;
42
    SELECT '-1'  Result,
43
           @EROOR_DES ErrorDesc
44
   
45
    RETURN '0';
46
END
47

    
48

    
49

    
50

    
51

    
52

    
53

    
54

    
55
--UPDATE dbo.PL_REQUEST_TRANSFER SET AUTH_STATUS = @P_AUTH_STATUS, CHECKER_ID = @P_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@P_APPROVE_DT,103)
56
--WHERE REQ_DOC_ID = @p_REQ_ID AND FR_BRN_ID IN (SELECT BRANCH_ID FROM  CM_BRANCH_GETCHILDID(@p_BRANCH_LOGIN))
57

    
58
DECLARE @Result VARCHAR(5),
59
        @TOTAL_TRANSFER DECIMAL(18, 0),
60
        @TOTAL_AMT DECIMAL(18, 0),
61
        @ROLE_USER_NOTIFI VARCHAR(50),
62
        @ROLE_ID VARCHAR(20),
63
        @ROLE_TF VARCHAR(20),
64
        @LIMIT_VALUE DECIMAL(18, 0),
65
        @STEP_CURR VARCHAR(20),
66
        @STEP_PARENT VARCHAR(20),
67
        @COST_ID VARCHAR(20),
68
        @FR_BRANCH_ID VARCHAR(20),
69
        @FR_DEP_ID VARCHAR(20),
70
        @DVDM_ID VARCHAR(20),
71
        @IS_NEXT BIT = 0,
72
        @TOTAL_AMT_GD DECIMAL(12, 0),
73
        @STOP BIT,
74
        @NOTES NVARCHAR(100);
75
DECLARE @ROLE_CDT VARCHAR(20),
76
        @DVDM_CDT VARCHAR(20),
77
        @LIMIT_VALUE_CDT VARCHAR(20),
78
        @NOTES_CDT VARCHAR(20);
79

    
80

    
81
DECLARE @DATA_DVDM TABLE
82
(
83
    DVDM_ID VARCHAR(20),
84
    TOTAL_AMT DECIMAL(12, 0),
85
	IS_PTGD BIT
86
);
87

    
88

    
89
--UPDATE dbo.PL_REQUEST_COSTCENTER 
90
--SET DVMD_ID=(SELECT DVDM_ID FROM dbo.PL_COSTCENTER WHERE PL_COSTCENTER.COST_ID=PL_REQUEST_COSTCENTER.COST_ID),
91
--TOTAL_AMT_GD=(SELECT SUM(PM.TOTAL_AMT) AS AMT FROM
92
--(SELECT PLAN_ID,GOODS_ID,TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT  WHERE REQDT_TYPE='I' AND REQ_ID=@p_REQ_ID) PR
93
--LEFT JOIN dbo.PL_MASTER PM ON PR.PLAN_ID=PM.PLAN_ID
94
--WHERE PM.COST_ID=PL_REQUEST_COSTCENTER.COST_ID)
95
--WHERE REQ_ID=@p_REQ_ID
96

    
97

    
98
INSERT INTO @DATA_DVDM
99
SELECT KHOI_ID,
100
       SUM(TOTAL_AMT) AS TOTAL_AMT,DM.IS_PTGD
101
FROM dbo.PL_REQUEST_DOC_DT DT
102
LEFT JOIN CM_DVDM DM ON DM.DVDM_ID=DT.KHOI_ID AND DM.IS_KHOI=1
103
WHERE REQ_ID = @p_REQ_ID
104
GROUP BY KHOI_ID,DM.IS_PTGD;
105

    
106

    
107

    
108

    
109

    
110
DELETE FROM dbo.PL_REQUEST_PROCESS
111
WHERE REQ_ID = @p_REQ_ID;
112

    
113

    
114

    
115

    
116
	DECLARE @BRANCH_ID VARCHAR(20), @DEP_ID VARCHAR(20),@BRANCH_CREATE VARCHAR(20) ,@DEP_CREATE VARCHAR(20),@BRANCH_TYPE VARCHAR(10),
117
	@BRANCH_CREATE_TYPE VARCHAR(10)
118

    
119

    
120
	SELECT @BRANCH_ID =BRANCH_ID,@DEP_ID=DEP_ID,@BRANCH_CREATE=BRANCH_CREATE,@DEP_CREATE=DEP_CREATE FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID
121

    
122
	SET @BRANCH_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_ID)
123
	SET @BRANCH_CREATE_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE)
124

    
125

    
126

    
127
IF(@BRANCH_ID <> @BRANCH_CREATE)
128
	BEGIN
129
		IF(@BRANCH_CREATE_TYPE='HS')
130
		BEGIN
131
			IF(@BRANCH_TYPE='PGD')
132
				SET @BRANCH_ID=(SELECT FATHER_ID  FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_ID)
133

    
134
		END
135
		ELSE
136
		IF(@BRANCH_CREATE='CN')
137
			IF(@BRANCH_TYPE='PGD')
138
				SET @BRANCH_ID=(SELECT FATHER_ID  FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_ID)
139
	END
140

    
141

    
142
INSERT INTO dbo.PL_REQUEST_PROCESS
143
(
144
    REQ_ID,
145
    PROCESS_ID,
146
    STATUS,
147
    ROLE_USER,
148
    BRANCH_ID,
149
	DEP_ID,
150
    CHECKER_ID,
151
    APPROVE_DT,
152
    PARENT_PROCESS_ID,
153
    IS_LEAF,
154
    NOTES
155
)
156
VALUES
157
(   @p_REQ_ID,               -- REQ_ID - varchar(15)
158
    'APPNEW',                  -- PROCESS_ID - varchar(10)
159
    'P',                     -- STATUS - varchar(5)
160
    'GDDV',                      -- ROLE_USER - varchar(50)
161
    @BRANCH_ID,
162
	@DEP_ID,                      -- BRANCH_ID - varchar(15)
163
    @p_CHECKER_ID,           -- CHECKER_ID - varchar(15)
164
    GETDATE() , -- APPROVE_DT - datetime
165
    NULL, 'N', N'Trưởng đơn vị phê duyệt');
166
SET @STEP_CURR = 'APPNEW';
167
SET @STEP_PARENT = 'APPNEW';
168

    
169

    
170

    
171

    
172

    
173

    
174
IF (EXISTS
175
(
176
    SELECT REQ_COST_ID
177
    FROM dbo.PL_REQUEST_COSTCENTER
178
    WHERE REQ_ID = @p_REQ_ID
179
)
180
   )
181
BEGIN
182

    
183

    
184
    DECLARE lstCostCenter CURSOR FOR
185
    SELECT COST_ID
186
    FROM dbo.PL_REQUEST_COSTCENTER
187
    WHERE REQ_ID = @p_REQ_ID;
188
    OPEN lstCostCenter;
189
    FETCH NEXT FROM lstCostCenter
190
    INTO @COST_ID;
191
    WHILE @@FETCH_STATUS = 0
192
    BEGIN
193

    
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,
208
            IS_HAS_CHILD
209
        )
210
        VALUES
211
        (   @p_REQ_ID,    -- REQ_ID - varchar(15)
212
            'DVCM',       -- PROCESS_ID - varchar(10)
213
            'U',          -- STATUS - varchar(5)
214
            'GDDV',       -- ROLE_USER - varchar(50)
215
            '',           -- BRANCH_ID - varchar(15)
216
            '',           -- CHECKER_ID - varchar(15)
217
            NULL,         -- APPROVE_DT - datetime
218
            @STEP_PARENT, -- PARENT_PROCESS_ID - varchar(10)
219
            'N',          -- IS_LEAF - varchar(1)
220
            '',           -- COST_ID - varchar(15)
221
            @COST_ID, N'Chờ đơn vị chuyên môn xác nhận', 1
222
            -- DVDM_ID - varchar(15)
223
            );
224

    
225

    
226
        FETCH NEXT FROM lstCostCenter
227
        INTO @COST_ID;
228
    END;
229
    CLOSE lstCostCenter;
230
    DEALLOCATE lstCostCenter;
231
    SET @STEP_PARENT = 'DVCM';
232
END;
233

    
234

    
235

    
236

    
237

    
238
SET @TOTAL_AMT =
239
(
240
    SELECT SUM(TOTAL_AMT) AS TOTAL_AMT
241
    FROM dbo.PL_REQUEST_DOC_DT
242
    WHERE REQ_ID = @p_REQ_ID
243
);
244

    
245

    
246
IF (EXISTS
247
(
248
    SELECT REQ_TRANSFER_ID
249
    FROM dbo.PL_REQUEST_TRANSFER
250
    WHERE REQ_DOC_ID = @p_REQ_ID
251
)
252
   )
253
BEGIN
254

    
255

    
256
    IF (EXISTS
257
    (
258
        SELECT FR_BRN_ID
259
        FROM dbo.PL_REQUEST_TRANSFER
260
        WHERE REQ_DOC_ID = @p_REQ_ID
261
              AND
262
              (
263
                  FR_BRN_ID <> @BRANCH_CREATE
264
                  OR FR_DEP_ID <> @DEP_CREATE
265
              )
266
    )
267
       )
268
    BEGIN
269
        DECLARE lstTransfer CURSOR FOR
270
        SELECT FR_BRN_ID,
271
               FR_DEP_ID
272
        FROM dbo.PL_REQUEST_TRANSFER
273
        WHERE REQ_DOC_ID = @p_REQ_ID
274
              AND
275
              (
276
                  FR_BRN_ID <> @BRANCH_CREATE
277
                  OR FR_DEP_ID <> @DEP_CREATE
278
              )
279
        GROUP BY FR_BRN_ID,
280
                 FR_DEP_ID;
281
        OPEN lstTransfer;
282
        FETCH NEXT FROM lstTransfer
283
        INTO @FR_BRANCH_ID,
284
             @FR_DEP_ID;
285
        WHILE @@FETCH_STATUS = 0
286
        BEGIN
287
            INSERT INTO dbo.PL_REQUEST_PROCESS
288
            (
289
                REQ_ID,
290
                PROCESS_ID,
291
                STATUS,
292
                ROLE_USER,
293
                BRANCH_ID,
294
                CHECKER_ID,
295
                APPROVE_DT,
296
                PARENT_PROCESS_ID,
297
                IS_LEAF,
298
                COST_ID,
299
                DVDM_ID,
300
                NOTES,
301
                IS_HAS_CHILD,
302
                DEP_ID
303
            )
304
            VALUES
305
            (   @p_REQ_ID,     -- REQ_ID - varchar(15)
306
                'DVDC',        -- PROCESS_ID - varchar(10)
307
                'U',           -- STATUS - varchar(5)
308
                'GDDV',        -- ROLE_USER - varchar(50)
309
                @FR_BRANCH_ID, -- BRANCH_ID - varchar(15)
310
                '',            -- CHECKER_ID - varchar(15)
311
                NULL,          -- APPROVE_DT - datetime
312
                @STEP_PARENT,  -- PARENT_PROCESS_ID - varchar(10)
313
                'N',           -- IS_LEAF - varchar(1)
314
                '',            -- COST_ID - varchar(15)
315
                '',            -- DVDM_ID - varchar(15)
316
                N'Chờ đơn vị điều chuyển xác nhận', 1, @FR_DEP_ID);
317
            FETCH NEXT FROM lstTransfer
318
            INTO @FR_BRANCH_ID,
319
                 @FR_DEP_ID;
320
        END;
321
        CLOSE lstTransfer;
322
        DEALLOCATE lstTransfer;
323
        SET @STEP_PARENT = 'DVDC';
324
    END;
325

    
326
    -- Đầu mối nhận
327
    DECLARE lstTransfer CURSOR FOR
328
    SELECT TO_DVDM_ID
329
    FROM dbo.PL_REQUEST_TRANSFER
330
    WHERE REQ_DOC_ID = @p_REQ_ID AND TO_DVDM_ID IS NOT NULL AND TO_DVDM_ID <>''
331
    GROUP BY TO_DVDM_ID;
332
    OPEN lstTransfer;
333
    FETCH NEXT FROM lstTransfer
334
    INTO @DVDM_ID;
335
    WHILE @@FETCH_STATUS = 0
336
    BEGIN
337
		IF(NOT EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND DVDM_ID=@DVDM_ID AND ROLE_USER='GDDV'))
338
		BEGIN
339
        INSERT INTO dbo.PL_REQUEST_PROCESS
340
        (
341
            REQ_ID,
342
            PROCESS_ID,
343
            STATUS,
344
            ROLE_USER,
345
            BRANCH_ID,
346
            CHECKER_ID,
347
            APPROVE_DT,
348
            PARENT_PROCESS_ID,
349
            IS_LEAF,
350
            COST_ID,
351
            DVDM_ID,
352
            NOTES,
353
            IS_HAS_CHILD
354
        )
355
        VALUES
356
        (   @p_REQ_ID,    -- REQ_ID - varchar(15)
357
            'DVDM_DC',    -- PROCESS_ID - varchar(10)
358
            'U',          -- STATUS - varchar(5)
359
            'GDDV',       -- ROLE_USER - varchar(50)
360
            '',           -- BRANCH_ID - varchar(15)
361
            '',           -- CHECKER_ID - varchar(15)
362
            NULL,         -- APPROVE_DT - datetime
363
            @STEP_PARENT, -- PARENT_PROCESS_ID - varchar(10)
364
            'N',          -- IS_LEAF - varchar(1)
365
            '',           -- COST_ID - varchar(15)
366
            @DVDM_ID,     -- DVDM_ID - varchar(15)
367
            N'Chờ đơn vị đầu mối xác nhận', 0);
368
		END
369
        FETCH NEXT FROM lstTransfer
370
        INTO @DVDM_ID;
371
    END;
372
    CLOSE lstTransfer;
373
    DEALLOCATE lstTransfer;
374

    
375

    
376
    IF (EXISTS
377
    (
378
        SELECT FR_BRN_ID
379
        FROM dbo.PL_REQUEST_TRANSFER
380
        WHERE REQ_DOC_ID = @p_REQ_ID
381
              AND FR_BRN_ID = @BRANCH_CREATE
382
              AND FR_DEP_ID = @DEP_CREATE
383
    )
384
       )
385
    BEGIN
386
        -- Đầu mối cho
387
        DECLARE lstTransfer CURSOR FOR
388
        SELECT FR_DVDM_ID
389
        FROM dbo.PL_REQUEST_TRANSFER
390
        WHERE REQ_DOC_ID = @p_REQ_ID
391
              AND FR_BRN_ID = @BRANCH_CREATE
392
              AND FR_DEP_ID = @DEP_CREATE
393
			  AND FR_DVDM_ID IS NOT NULL AND FR_DVDM_ID <>''
394
              AND NOT EXISTS
395
        (
396
            SELECT *
397
            FROM dbo.PL_REQUEST_PROCESS
398
            WHERE REQ_ID = @p_REQ_ID
399
                  AND PROCESS_ID = 'DVDM_DC'
400
                  AND DVDM_ID = FR_DVDM_ID
401
        )
402
        GROUP BY FR_DVDM_ID;
403
        OPEN lstTransfer;
404
        FETCH NEXT FROM lstTransfer
405
        INTO @DVDM_ID;
406
        WHILE @@FETCH_STATUS = 0
407
        BEGIN
408
		IF(NOT EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND DVDM_ID=@DVDM_ID AND ROLE_USER='GDDV'))
409
		BEGIN
410
            INSERT INTO dbo.PL_REQUEST_PROCESS
411
            (
412
                REQ_ID,
413
                PROCESS_ID,
414
                STATUS,
415
                ROLE_USER,
416
                BRANCH_ID,
417
                CHECKER_ID,
418
                APPROVE_DT,
419
                PARENT_PROCESS_ID,
420
                IS_LEAF,
421
                COST_ID,
422
                DVDM_ID,
423
                NOTES,
424
                IS_HAS_CHILD
425
            )
426
            VALUES
427
            (   @p_REQ_ID,    -- REQ_ID - varchar(15)
428
                'DVDM_DC',    -- PROCESS_ID - varchar(10)
429
                'U',          -- STATUS - varchar(5)
430
                'GDDV',       -- ROLE_USER - varchar(50)
431
                '',           -- BRANCH_ID - varchar(15)
432
                '',           -- CHECKER_ID - varchar(15)
433
                NULL,         -- APPROVE_DT - datetime
434
                @STEP_PARENT, -- PARENT_PROCESS_ID - varchar(10)
435
                'N',          -- IS_LEAF - varchar(1)
436
                '',           -- COST_ID - varchar(15)
437
                @DVDM_ID,     -- DVDM_ID - varchar(15)
438
                N'Chờ đơn vị đầu mối xác nhận', 0);
439
		END
440
            FETCH NEXT FROM lstTransfer
441
            INTO @DVDM_ID;
442
        END;
443
        CLOSE lstTransfer;
444
        DEALLOCATE lstTransfer;
445

    
446

    
447

    
448

    
449
       IF(EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='DVDM_DC'))
450
			SET @STEP_PARENT='DVDM_DC'
451

    
452

    
453
    END;
454

    
455

    
456

    
457
    INSERT INTO dbo.PL_REQUEST_PROCESS
458
    (
459
        REQ_ID,
460
        PROCESS_ID,
461
        STATUS,
462
        ROLE_USER,
463
        BRANCH_ID,
464
        CHECKER_ID,
465
        APPROVE_DT,
466
        PARENT_PROCESS_ID,
467
        IS_LEAF,
468
        COST_ID,
469
        DVDM_ID,
470
        NOTES,IS_HAS_CHILD
471
    )
472
    VALUES
473
    (   @p_REQ_ID,    -- REQ_ID - varchar(15)
474
        'TC',         -- PROCESS_ID - varchar(10)
475
        'U',          -- STATUS - varchar(5)
476
        'TC',         -- ROLE_USER - varchar(50)
477
        '',           -- BRANCH_ID - varchar(15)
478
        '',           -- CHECKER_ID - varchar(15)
479
        NULL,         -- APPROVE_DT - datetime
480
        @STEP_PARENT, -- PARENT_PROCESS_ID - varchar(10)
481
        'N',          -- IS_LEAF - varchar(1)
482
        '',           -- COST_ID - varchar(15)
483
        '',           -- DVDM_ID - varchar(15)
484
        N'Chờ đơn vị Tài chính xác nhận',1);
485
    SET @STEP_PARENT = 'TC';
486

    
487

    
488
    IF (NOT EXISTS
489
    (
490
        SELECT REQ_TRANSFER_ID
491
        FROM dbo.PL_REQUEST_TRANSFER
492
        WHERE REQ_DOC_ID = @p_REQ_ID
493
              AND
494
              (
495
                  FR_BRN_ID <> @BRANCH_CREATE
496
                  OR FR_DEP_ID <> @DEP_CREATE
497
              )
498
    )
499
       )
500
    BEGIN
501
        ---Duyệt DC
502
        IF (
503
           (
504
               SELECT COUNT(T.FR_KHOI_ID) AS COUNT_ROW
505
               FROM
506
               (
507
                   SELECT FR_KHOI_ID
508
                   FROM dbo.PL_REQUEST_TRANSFER
509
                   WHERE REQ_DOC_ID = @p_REQ_ID
510
                   GROUP BY FR_KHOI_ID
511
               ) T
512
           ) > 1
513
           )
514
        BEGIN
515
            INSERT INTO dbo.PL_REQUEST_PROCESS
516
            (
517
                REQ_ID,
518
                PROCESS_ID,
519
                STATUS,
520
                ROLE_USER,
521
                BRANCH_ID,
522
                CHECKER_ID,
523
                APPROVE_DT,
524
                PARENT_PROCESS_ID,
525
                IS_LEAF,
526
                COST_ID,
527
                DVDM_ID,
528
                NOTES,
529
                IS_HAS_CHILD
530
            )
531
            VALUES
532
            (   @p_REQ_ID,                      -- REQ_ID - varchar(15)
533
                'TGD_DC',                       -- PROCESS_ID - varchar(10)
534
                'U',                            -- STATUS - varchar(5)
535
                'TGD',                          -- 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
                '',                             -- IS_LEAF - varchar(1)
541
                '',                             -- COST_ID - varchar(15)
542
                '',                             -- DVDM_ID - varchar(15)
543
                N'Chờ tổng giám đốc phê duyệt', -- NOTES - nvarchar(500)
544
                NULL                            -- IS_HAS_CHILD - bit
545
                );
546
            SET @STEP_PARENT = 'TGD_DC';
547
        END;
548
        ELSE
549
        BEGIN
550
            DECLARE @LIMTT_MAX DECIMAL(18, 2),
551
                    @LIMIT_APP DECIMAL(18, 2),
552
                    @KHOI_ID_TF VARCHAR(20);
553
            SET @KHOI_ID_TF =
554
            (
555
                SELECT TOP 1
556
                       FR_KHOI_ID
557
                FROM dbo.PL_REQUEST_TRANSFER
558
                WHERE REQ_DOC_ID = @p_REQ_ID
559
            );
560
            SET @LIMIT_APP =
561
            (
562
                SELECT ISNULL(MAX_AMT, 0) - ISNULL(TOTAL_APP_AMT, 0) AS LIMIT_APP
563
                FROM dbo.LIMIT_ACCUMULATE
564
                WHERE ROLE_ID = 'GDK'
565
                      AND DVDM_ID = @KHOI_ID_TF
566
            );
567
            SET @TOTAL_TRANSFER =
568
            (
569
                SELECT SUM(TOTAL_AMT) AS TOTAL
570
                FROM dbo.PL_REQUEST_TRANSFER
571
                WHERE REQ_DOC_ID = @p_REQ_ID
572
            );
573
            SET @LIMTT_MAX =
574
            (
575
                SELECT LIMIT_VALUE
576
                FROM dbo.TL_SYSROLE_LIMIT
577
                WHERE ROLE_ID = 'GDK'
578
                      AND LIMIT_TYPE = 'DCNS'
579
            );
580

    
581
            INSERT INTO dbo.PL_REQUEST_PROCESS
582
            (
583
                REQ_ID,
584
                PROCESS_ID,
585
                STATUS,
586
                ROLE_USER,
587
                BRANCH_ID,
588
                CHECKER_ID,
589
                APPROVE_DT,
590
                PARENT_PROCESS_ID,
591
                IS_LEAF,
592
                COST_ID,
593
                DVDM_ID,
594
                NOTES,
595
                IS_HAS_CHILD
596
            )
597
            VALUES
598
            (   @p_REQ_ID,                     -- REQ_ID - varchar(15)
599
                'GDK_DC',                      -- PROCESS_ID - varchar(10)
600
                'U',                           -- STATUS - varchar(5)
601
                'GDK',                         -- ROLE_USER - varchar(50)
602
                '',                            -- BRANCH_ID - varchar(15)
603
                '',                            -- CHECKER_ID - varchar(15)
604
                GETDATE(),                     -- APPROVE_DT - datetime
605
                @STEP_PARENT,                  -- PARENT_PROCESS_ID - varchar(10)
606
                'N',                           -- IS_LEAF - varchar(1)
607
                '',                            -- COST_ID - varchar(15)
608
                @KHOI_ID_TF,                   -- DVDM_ID - varchar(15)
609
                N'Chờ giám đốc khối xác nhận', -- NOTES - nvarchar(500)
610
                NULL                           -- IS_HAS_CHILD - bit
611
                );
612
            SET @STEP_PARENT = 'GDK_DC';
613
            IF (@TOTAL_TRANSFER > @LIMTT_MAX OR @TOTAL_TRANSFER > @LIMIT_APP)
614
            BEGIN
615
			IF(EXISTS(SELECT DVDM_ID FROM dbo.CM_DVDM WHERE DVDM_ID=@KHOI_ID_TF AND IS_KHOI=1 AND IS_PTGD=1))
616
			BEGIN
617
                INSERT INTO dbo.PL_REQUEST_PROCESS
618
                (
619
                    REQ_ID,
620
                    PROCESS_ID,
621
                    STATUS,
622
                    ROLE_USER,
623
                    BRANCH_ID,
624
                    CHECKER_ID,
625
                    APPROVE_DT,
626
                    PARENT_PROCESS_ID,
627
                    IS_LEAF,
628
                    COST_ID,
629
                    DVDM_ID,
630
                    NOTES,
631
                    IS_HAS_CHILD
632
                )
633
                VALUES
634
                (   @p_REQ_ID,                     -- REQ_ID - varchar(15)
635
                    'PTGD_DC',                     -- PROCESS_ID - varchar(10)
636
                    'U',                           -- STATUS - varchar(5)
637
                    'PTGD',                        -- ROLE_USER - varchar(50)
638
                    '',                            -- BRANCH_ID - varchar(15)
639
                    '',                            -- CHECKER_ID - varchar(15)
640
                    GETDATE(),                     -- APPROVE_DT - datetime
641
                    @STEP_PARENT,                  -- PARENT_PROCESS_ID - varchar(10)
642
                    'N',                           -- IS_LEAF - varchar(1)
643
                    '',                            -- COST_ID - varchar(15)
644
                    @KHOI_ID_TF,                   -- DVDM_ID - varchar(15)
645
                    N'Chờ giám đốc khối xác nhận', -- NOTES - nvarchar(500)
646
                    NULL                           -- IS_HAS_CHILD - bit
647
                    );
648
                SET @STEP_PARENT = 'PTGD_DC';
649
                SET @LIMTT_MAX =
650
                (
651
                    SELECT LIMIT_VALUE
652
                    FROM dbo.TL_SYSROLE_LIMIT
653
                    WHERE ROLE_ID = 'PTGD'
654
                          AND LIMIT_TYPE = 'DCNS'
655
                );
656
                SET @LIMIT_APP =
657
                (
658
                    SELECT ISNULL(MAX_AMT, 0) - ISNULL(TOTAL_APP_AMT, 0) AS LIMIT_APP
659
                    FROM dbo.LIMIT_ACCUMULATE
660
                    WHERE ROLE_ID = 'PTGD'
661
                          AND DVDM_ID = @KHOI_ID_TF
662
                );
663

    
664
			END
665
                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))
666
                BEGIN
667
                    INSERT INTO dbo.PL_REQUEST_PROCESS
668
                    (
669
                        REQ_ID,
670
                        PROCESS_ID,
671
                        STATUS,
672
                        ROLE_USER,
673
                        BRANCH_ID,
674
                        CHECKER_ID,
675
                        APPROVE_DT,
676
                        PARENT_PROCESS_ID,
677
                        IS_LEAF,
678
                        COST_ID,
679
                        DVDM_ID,
680
                        NOTES,
681
                        IS_HAS_CHILD
682
                    )
683
                    VALUES
684
                    (   @p_REQ_ID,                      -- REQ_ID - varchar(15)
685
                        'TGD_DC',                       -- PROCESS_ID - varchar(10)
686
                        'U',                            -- STATUS - varchar(5)
687
                        'TGD',                          -- ROLE_USER - varchar(50)
688
                        '',                             -- BRANCH_ID - varchar(15)
689
                        '',                             -- CHECKER_ID - varchar(15)
690
                        NULL,                           -- APPROVE_DT - datetime
691
                        @STEP_PARENT,                   -- PARENT_PROCESS_ID - varchar(10)
692
                        '',                             -- IS_LEAF - varchar(1)
693
                        '',                             -- COST_ID - varchar(15)
694
                        '',                             -- DVDM_ID - varchar(15)
695
                        N'Chờ tổng giám đốc phê duyệt', -- NOTES - nvarchar(500)
696
                        NULL                            -- IS_HAS_CHILD - bit
697
                        );
698
                    SET @STEP_PARENT = 'TGD_DC';
699
                END;
700

    
701
            END;
702

    
703

    
704

    
705

    
706
        END;
707
       
708
     
709
    END;
710

    
711

    
712

    
713

    
714
END;
715
ELSE
716
BEGIN
717
	
718
IF(@BRANCH_CREATE_TYPE='PGD')
719
BEGIN
720
	DECLARE @BRANCH_PARENT VARCHAR(15)
721
	SET @BRANCH_PARENT=(SELECT FATHER_ID FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE)
722
	IF(NOT EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND BRANCH_ID=@BRANCH_PARENT AND (DEP_ID IS NULL OR DEP_ID='')))
723
	BEGIN
724
		INSERT INTO dbo.PL_REQUEST_PROCESS
725
		(
726
		REQ_ID,
727
		PROCESS_ID,
728
		STATUS,
729
		ROLE_USER,
730
		BRANCH_ID,
731
		DEP_ID,
732
		CHECKER_ID,
733
		APPROVE_DT,
734
		PARENT_PROCESS_ID,
735
		IS_LEAF,
736
		NOTES
737
		)
738
		VALUES
739
		(   
740
		@p_REQ_ID,               -- REQ_ID - varchar(15)
741
		'DVC',                  -- PROCESS_ID - varchar(10)
742
		'U',                     -- STATUS - varchar(5)
743
		'GDDV',                      -- ROLE_USER - varchar(50)
744
		@BRANCH_PARENT,
745
		NULL,                      -- BRANCH_ID - varchar(15)
746
		NULL,           -- CHECKER_ID - varchar(15)
747
		NULL , -- APPROVE_DT - datetime
748
		@STEP_PARENT, 'N', N'Trưởng đơn vị phê duyệt');
749

    
750
		SET @STEP_CURR = 'DVC';
751
		SET @STEP_PARENT = 'DVC';
752
	END
753
	
754
END
755
ELSE 
756
IF(NOT EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND ROLE_USER='GDDV'
757
AND ((
758
	BRANCH_ID=@BRANCH_CREATE 
759
	AND ((DEP_ID =@DEP_CREATE) OR ((@DEP_CREATE IS NULL OR @DEP_CREATE='') 
760
	AND (DEP_ID IS NULL OR DEP_ID='')))
761
	)
762
	OR EXISTS(SELECT PC.COST_ID FROM dbo.PL_COSTCENTER PC 
763
	LEFT JOIN dbo.PL_COSTCENTER_DT PCDT ON PCDT.COST_ID = PC.COST_ID WHERE PL_REQUEST_PROCESS.DVDM_ID=PC.DVDM_ID AND DEP_ID=@DEP_CREATE AND BRANCH_ID=@BRANCH_CREATE)
764
	)
765
))
766
BEGIN
767
INSERT INTO dbo.PL_REQUEST_PROCESS
768
		(
769
		REQ_ID,
770
		PROCESS_ID,
771
		STATUS,
772
		ROLE_USER,
773
		BRANCH_ID,
774
		DEP_ID,
775
		CHECKER_ID,
776
		APPROVE_DT,
777
		PARENT_PROCESS_ID,
778
		IS_LEAF,
779
		NOTES
780
		)
781
		VALUES
782
		(   
783
		@p_REQ_ID,               -- REQ_ID - varchar(15)
784
		'DVC',                  -- PROCESS_ID - varchar(10)
785
		'U',                     -- STATUS - varchar(5)
786
		'GDDV',                      -- ROLE_USER - varchar(50)
787
		@BRANCH_CREATE,
788
		@DEP_CREATE,                      -- BRANCH_ID - varchar(15)
789
		NULL,           -- CHECKER_ID - varchar(15)
790
		NULL , -- APPROVE_DT - datetime
791
		@STEP_PARENT, 'N', N'Trưởng đơn vị phê duyệt');
792

    
793
SET @STEP_CURR = 'DVC';
794
SET @STEP_PARENT = 'DVC';
795
END
796

    
797

    
798

    
799

    
800

    
801
SET @IS_NEXT =
802
(
803
    SELECT dbo.FN_CHECK_LIMIT_PL_REQ(@p_REQ_ID, 'GDDV')
804
);
805

    
806

    
807

    
808

    
809
IF (@IS_NEXT = 1)
810
BEGIN
811

    
812
    DECLARE lstCostCenter CURSOR FOR
813
    SELECT DVDM_ID,
814
           TOTAL_AMT
815
    FROM @DATA_DVDM;
816
    OPEN lstCostCenter;
817
    FETCH NEXT FROM lstCostCenter
818
    INTO @DVDM_ID,
819
         @TOTAL_AMT_GD;
820
    WHILE @@FETCH_STATUS = 0
821
    BEGIN
822
        INSERT INTO dbo.PL_REQUEST_PROCESS
823
        (
824
            REQ_ID,
825
            PROCESS_ID,
826
            STATUS,
827
            ROLE_USER,
828
            BRANCH_ID,
829
            CHECKER_ID,
830
            APPROVE_DT,
831
            PARENT_PROCESS_ID,
832
            IS_LEAF,
833
            COST_ID,
834
            DVDM_ID,
835
            NOTES,
836
            IS_HAS_CHILD
837
        )
838
        VALUES
839
        (   @p_REQ_ID,                                 -- REQ_ID - varchar(15)
840
            'GDK_TT',                                  -- PROCESS_ID - varchar(10)
841
            'U',                                       -- STATUS - varchar(5)
842
            'GDK',                                     -- ROLE_USER - varchar(50)
843
            '',                                        -- BRANCH_ID - varchar(15)
844
            '',                                        -- CHECKER_ID - varchar(15)
845
            NULL,                                      -- APPROVE_DT - datetime
846
            @STEP_PARENT,                              -- PARENT_PROCESS_ID - varchar(10)
847
            'N',                                       -- IS_LEAF - varchar(1)
848
            '',                                        -- COST_ID - varchar(15)
849
            @DVDM_ID, N'Chờ giám đốc khối xác nhận', 0 -- DVDM_ID - varchar(15)
850
            );
851
        FETCH NEXT FROM lstCostCenter
852
        INTO @DVDM_ID,
853
             @TOTAL_AMT_GD;
854
    END;
855
    CLOSE lstCostCenter;
856
    DEALLOCATE lstCostCenter;
857

    
858
    SET @IS_NEXT =
859
    (
860
        SELECT dbo.FN_CHECK_LIMIT_PL_REQ(@p_REQ_ID, 'GDK')
861
    );
862

    
863
    SET @STEP_PARENT = 'GDK_TT';
864
    IF (@IS_NEXT = 1)
865
    BEGIN
866

    
867
		IF( EXISTS (SELECT DVDM_ID FROM @DATA_DVDM WHERE IS_PTGD=1) )
868
		BEGIN
869
        DECLARE lstCostCenter CURSOR FOR
870
        SELECT DVDM_ID,
871
               TOTAL_AMT
872
        FROM @DATA_DVDM WHERE IS_PTGD=1;
873
        OPEN lstCostCenter;
874
        FETCH NEXT FROM lstCostCenter
875
        INTO @DVDM_ID,
876
             @TOTAL_AMT_GD;
877
        WHILE @@FETCH_STATUS = 0
878
        BEGIN
879
            INSERT INTO dbo.PL_REQUEST_PROCESS
880
            (
881
                REQ_ID,
882
                PROCESS_ID,
883
                STATUS,
884
                ROLE_USER,
885
                BRANCH_ID,
886
                CHECKER_ID,
887
                APPROVE_DT,
888
                PARENT_PROCESS_ID,
889
                IS_LEAF,
890
                COST_ID,
891
                DVDM_ID,
892
                NOTES,
893
                IS_HAS_CHILD
894
            )
895
            VALUES
896
            (   @p_REQ_ID,                                          -- REQ_ID - varchar(15)
897
                'PTGDK_TT',                                         -- PROCESS_ID - varchar(10)
898
                'U',                                                -- STATUS - varchar(5)
899
                'PTGD',                                             -- ROLE_USER - varchar(50)
900
                '',                                                 -- BRANCH_ID - varchar(15)
901
                '',                                                 -- CHECKER_ID - varchar(15)
902
                NULL,                                               -- APPROVE_DT - datetime
903
                @STEP_PARENT,                                       -- PARENT_PROCESS_ID - varchar(10)
904
                'N',                                                -- IS_LEAF - varchar(1)
905
                '',                                                 -- COST_ID - varchar(15)
906
                @DVDM_ID, N'Chờ phó tổng giám đốc khối xác nhận', 0 -- DVDM_ID - varchar(15)
907
                );
908
            FETCH NEXT FROM lstCostCenter
909
            INTO @DVDM_ID,
910
                 @TOTAL_AMT_GD;
911
        END;
912
        CLOSE lstCostCenter;
913
        DEALLOCATE lstCostCenter;
914

    
915
        SET @IS_NEXT =
916
        (
917
            SELECT dbo.FN_CHECK_LIMIT_PL_REQ(@p_REQ_ID, 'PTGD')
918
        );
919

    
920
        SET @STEP_PARENT = 'PTGDK_TT';
921
		END
922
		IF(EXISTS (SELECT DVDM_ID FROM @DATA_DVDM WHERE IS_PTGD=0))
923
		BEGIN
924
		SET @IS_NEXT=1
925
		END
926
        IF (@IS_NEXT = 1)
927
        BEGIN
928
            INSERT INTO dbo.PL_REQUEST_PROCESS
929
            (
930
                REQ_ID,
931
                PROCESS_ID,
932
                STATUS,
933
                ROLE_USER,
934
                BRANCH_ID,
935
                CHECKER_ID,
936
                APPROVE_DT,
937
                PARENT_PROCESS_ID,
938
                IS_LEAF,
939
                COST_ID,
940
                DVDM_ID,
941
                NOTES,
942
                IS_HAS_CHILD
943
            )
944
            VALUES
945
            (   @p_REQ_ID,                           -- REQ_ID - varchar(15)
946
                'TGD',                               -- PROCESS_ID - varchar(10)
947
                'U',                                 -- STATUS - varchar(5)
948
                'TGD',                               -- ROLE_USER - varchar(50)
949
                '',                                  -- BRANCH_ID - varchar(15)
950
                '',                                  -- CHECKER_ID - varchar(15)
951
                NULL,                                -- APPROVE_DT - datetime
952
                @STEP_PARENT,                        -- PARENT_PROCESS_ID - varchar(10)
953
                'N',                                 -- IS_LEAF - varchar(1)
954
                '',                                  -- COST_ID - varchar(15)
955
                '', N'Chờ tổng giám đốc xác nhận', 0 -- DVDM_ID - varchar(15)
956
                );
957
            SET @STEP_PARENT = 'TGD';
958

    
959
			IF((SELECT SUM(TOTAL_AMT) FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID) > (SELECT LIMIT_VALUE FROM dbo.TL_SYSROLE_LIMIT WHERE LIMIT_TYPE='TCTT-HDQT'))
960
			BEGIN
961
				
962

    
963
				INSERT INTO dbo.PL_REQUEST_PROCESS
964
            (
965
                REQ_ID,
966
                PROCESS_ID,
967
                STATUS,
968
                ROLE_USER,
969
                BRANCH_ID,
970
                CHECKER_ID,
971
                APPROVE_DT,
972
                PARENT_PROCESS_ID,
973
                IS_LEAF,
974
                COST_ID,
975
                DVDM_ID,
976
                NOTES,
977
                IS_HAS_CHILD
978
            )
979
            VALUES
980
            (   @p_REQ_ID,                           -- REQ_ID - varchar(15)
981
                'HDQT',                               -- PROCESS_ID - varchar(10)
982
                'U',                                 -- STATUS - varchar(5)
983
                'HDQT',                               -- ROLE_USER - varchar(50)
984
                '',                                  -- BRANCH_ID - varchar(15)
985
                '',                                  -- CHECKER_ID - varchar(15)
986
                NULL,                                -- APPROVE_DT - datetime
987
                @STEP_PARENT,                        -- PARENT_PROCESS_ID - varchar(10)
988
                'N',                                 -- IS_LEAF - varchar(1)
989
                '',                                  -- COST_ID - varchar(15)
990
                '', N'Chờ HDQT xác nhận', 0 -- DVDM_ID - varchar(15)
991
                );
992
            SET @STEP_PARENT = 'HDQT';
993
			END
994
        END;
995

    
996

    
997

    
998
	
999
    --ELSE
1000
    --BEGIN
1001

    
1002
    --END
1003
		
1004
    END;
1005

    
1006
END;
1007
END
1008
INSERT INTO dbo.PL_REQUEST_PROCESS
1009
(
1010
    REQ_ID,
1011
    PROCESS_ID,
1012
    STATUS,
1013
    ROLE_USER,
1014
    BRANCH_ID,
1015
    CHECKER_ID,
1016
    APPROVE_DT,
1017
    PARENT_PROCESS_ID,
1018
    IS_LEAF,
1019
    NOTES
1020
)
1021
VALUES
1022
(   @p_REQ_ID, -- REQ_ID - varchar(15)
1023
    'APPROVE', -- PROCESS_ID - varchar(10)
1024
    'U',       -- STATUS - varchar(5)
1025
    '',        -- ROLE_USER - varchar(50)
1026
    '',        -- BRANCH_ID - varchar(15)
1027
    '',        -- CHECKER_ID - varchar(15)
1028
    NULL,      -- APPROVE_DT - datetime
1029
    @STEP_PARENT, 'Y', N'Hoàn tất');
1030

    
1031

    
1032

    
1033
IF @@Error <> 0
1034
    GOTO ABORT;
1035

    
1036

    
1037

    
1038
DECLARE @PROCESS_ID_CURR VARCHAR(10);
1039
SET @PROCESS_ID_CURR =
1040
(
1041
    SELECT TOP 1
1042
           PROCESS_ID
1043
    FROM dbo.PL_REQUEST_PROCESS
1044
    WHERE REQ_ID = @p_REQ_ID
1045
          AND PARENT_PROCESS_ID = 'APPNEW'
1046
);
1047

    
1048
UPDATE dbo.PL_REQUEST_PROCESS
1049
SET STATUS = 'C'
1050
WHERE PARENT_PROCESS_ID = 'APPNEW'
1051
      AND REQ_ID = @p_REQ_ID;
1052
UPDATE dbo.PL_REQUEST_DOC
1053
SET AUTH_STATUS = @p_AUTH_STATUS,
1054
    APPROVE_DT = @p_APPROVE_DT,
1055
    CHECKER_ID = @p_CHECKER_ID,
1056
    PROCESS_ID = @PROCESS_ID_CURR
1057
WHERE REQ_ID = @p_REQ_ID;
1058

    
1059
UPDATE dbo.PL_REQUEST_DOC_DT
1060
SET CHECKER_ID=@p_CHECKER_ID,
1061
APPROVE_DT=@p_APPROVE_DT
1062
WHERE REQ_ID = @p_REQ_ID;
1063

    
1064
INSERT INTO dbo.PL_PROCESS
1065
(
1066
    REQ_ID,
1067
    PROCESS_ID,
1068
    CHECKER_ID,
1069
    APPROVE_DT,
1070
    PROCESS_DESC,
1071
    NOTES
1072
)
1073
VALUES
1074
(   @p_REQ_ID,                                            -- REQ_ID - varchar(15)
1075
    'APPNEW',                                               -- PROCESS_ID - varchar(10)
1076
    @p_CHECKER_ID,                                        -- CHECKER_ID - varchar(15)
1077
    @p_APPROVE_DT,                                        -- APPROVE_DT - datetime
1078
    @p_PROCESS_DES, N'Trưởng đơn vị phê duyệt' -- PROCESS_DESC - nvarchar(1000)
1079
    );
1080

    
1081

    
1082

    
1083

    
1084
IF (EXISTS
1085
(
1086
    SELECT REQ_ID
1087
    FROM dbo.PL_REQUEST_DOC
1088
    WHERE REQ_ID = @p_REQ_ID
1089
          AND PROCESS_ID = 'APPROVE'
1090
)
1091
   )
1092
BEGIN
1093
    EXEC dbo.PL_REQ_DOC_UPDATE_AFTER_APPROVE @p_REQ_ID = @p_REQ_ID;
1094
    EXEC dbo.PL_REQ_DOC_Ins_To_TR_REQ_DOC @p_PL_REQ_ID = @p_REQ_ID;
1095
    SET @Result = '0';
1096
END;
1097

    
1098

    
1099
SET @Result = '1';
1100

    
1101

    
1102
COMMIT TRANSACTION;
1103
SELECT @Result AS Result,
1104
       @ROLE_USER_NOTIFI AS ROLE_NOTIFI,
1105
       '' ErrorDesc;
1106
RETURN '0';
1107
ABORT:
1108
BEGIN
1109

    
1110
    ROLLBACK TRANSACTION;
1111
    SELECT '-1' AS Result,
1112
           '' ROLE_NOTIFI,
1113
           '' ErrorDesc;
1114
    RETURN '-1';
1115
END;
1116

    
1117

    
1118

    
1119

    
1120

    
1121
USE [gAMSPro_VietcapitalBank_v2]
1122
GO
1123
/****** Object:  StoredProcedure [dbo].[PL_REQ_PROCESS_CHILD_App]    Script Date: 12-May-20 12:00:30 ******/
1124
SET ANSI_NULLS ON
1125
GO
1126
SET QUOTED_IDENTIFIER ON
1127
GO
1128
ALTER PROCEDURE [dbo].[PL_REQ_PROCESS_CHILD_App]
1129
@p_REQ_ID VARCHAR(20),
1130
@p_PROCESS_ID VARCHAR(20),
1131
@p_TLNAME VARCHAR(20),
1132
@p_MAKER_ID VARCHAR(20),
1133
@p_TYPE_JOB VARCHAR(20),
1134
@p_PROCESS_DES NVARCHAR(20),
1135
@p_REF_ID INT
1136
AS
1137
BEGIN TRANSACTION
1138

    
1139

    
1140

    
1141
DECLARE  @ERROR BIT ,@EROOR_DES NVARCHAR(500)
1142

    
1143
SELECT @ERROR=ERROR,
1144
       @EROOR_DES=ERROR_DES FROM dbo.FN_CHECK_VALIDATE_APP(@p_REQ_ID,'PDDC','PL_REQUEST_DOC',@p_MAKER_ID,'DVKD')
1145
IF(@ERROR=1)
1146
BEGIN
1147
	 ROLLBACK TRANSACTION;
1148
    SELECT -1  Result,
1149
           @EROOR_DES ErrorDesc
1150
   
1151
    RETURN 0;
1152
END
1153

    
1154

    
1155

    
1156
DECLARE @LEVEL INT,@DEP_ID VARCHAR(20),@BRANCH_ID VARCHAR(20),@BRANCH_CREATE VARCHAR(20),@DEP_CREATE VARCHAR(20)
1157
DECLARE @ROLE_ID VARCHAR(20),@NOTES NVARCHAR(500),
1158
				@PROCESS_CURR VARCHAR(10),
1159
				@STEP_CURR INT,
1160
				@STEP_NEXT INT,
1161
				@PROCESS_NEXT VARCHAR(10),
1162
				@TYPE_JOB_NAME NVARCHAR(100), @FULLNAME NVARCHAR(100)
1163

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

    
1166

    
1167
SELECT @BRANCH_CREATE=BRANCH_CREATE,@DEP_CREATE=DEP_CREATE FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID
1168

    
1169

    
1170
DECLARE
1171
@COST_ID_TABLE TABLE (
1172
	COST_ID VARCHAR(15)
1173
)
1174

    
1175
DECLARE @DVDM_ID_TABLE TABLE (
1176
	DVDM_ID VARCHAR(15)
1177
)
1178

    
1179
	INSERT INTO @COST_ID_TABLE
1180
	SELECT COST_ID FROM dbo.PL_COSTCENTER_DT WHERE DEP_ID=@DEP_ID AND BRANCH_ID=@BRANCH_ID
1181

    
1182
	INSERT INTO @DVDM_ID_TABLE
1183
	SELECT DVDM_ID FROM dbo.PL_COSTCENTER WHERE COST_ID IN (SELECT COST_ID FROM @COST_ID_TABLE) GROUP BY DVDM_ID
1184

    
1185
	
1186
			
1187
		UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='P'
1188
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND TLNAME=@p_TLNAME AND TYPE_JOB=@p_TYPE_JOB
1189

    
1190

    
1191
		SET @TYPE_JOB_NAME =(SELECT CONTENT FROM dbo.CM_ALLCODE WHERE CDNAME = 'JOB_TYPE' AND CDTYPE='REQ' AND CDVAL=@p_TYPE_JOB)
1192
		SET @FULLNAME =(SELECT TLFullName FROM dbo.TL_USER WHERE TLNANME=@p_TLNAME )
1193
			
1194
		INSERT INTO dbo.PL_PROCESS
1195
				(
1196
					REQ_ID,
1197
					PROCESS_ID,
1198
					CHECKER_ID,
1199
					APPROVE_DT,
1200
					PROCESS_DESC,NOTES
1201
				)
1202
				VALUES
1203
				(   @p_REQ_ID,        -- REQ_ID - varchar(15)
1204
					@p_PROCESS_ID,        -- PROCESS_ID - varchar(10)
1205
					@p_MAKER_ID,        -- CHECKER_ID - varchar(15)
1206
					GETDATE() , -- APPROVE_DT - datetime
1207
					@p_PROCESS_DES ,
1208
					@TYPE_JOB_NAME+ N' đã phê duyệt'       -- PROCESS_DESC - nvarchar(1000)
1209
				)
1210

    
1211
		
1212

    
1213

    
1214
		SET @LEVEL=ISNULL((SELECT TOP 1 LEVEL_JOB 
1215
		FROM dbo.PL_REQUEST_PROCESS_CHILD 
1216
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND TLNAME=@p_TLNAME AND TYPE_JOB=@p_TYPE_JOB
1217
		ORDER BY LEVEL_JOB DESC),0)                  
1218

    
1219
		UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='C'
1220
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND LEVEL_JOB=(@LEVEL-1)
1221
		
1222
		IF(NOT EXISTS (SELECT * FROM  dbo.PL_REQUEST_PROCESS_CHILD 
1223
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND STATUS_JOB <> 'P'))
1224
		BEGIN
1225

    
1226

    
1227
				SET @PROCESS_CURR = (SELECT TOP 1 PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND STATUS='C')
1228
				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)
1229
				IF(@PROCESS_CURR='TC')
1230
				BEGIN
1231
						SELECT @ERROR=ERROR,
1232
						   @EROOR_DES=ERROR_DES FROM dbo.FN_CHECK_VALIDATE_APP(@p_REQ_ID,'PDDC','PL_REQUEST_DOC',@p_MAKER_ID,'TC')
1233
					IF(@ERROR=1)
1234
					BEGIN
1235
						 ROLLBACK TRANSACTION;
1236
						SELECT '-1'  Result,
1237
							   @EROOR_DES ErrorDesc
1238
   
1239
						RETURN '0';
1240
					END
1241

    
1242

    
1243
						SET @NOTES=(SELECT CONTENT FROM dbo.CM_ALLCODE WHERE (@PROCESS_CURR LIKE CDVAL + '%') AND CDNAME='PROCESS_ID' AND CDTYPE='REQ')   
1244
						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
1245
						UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='C' WHERE REQ_ID=@p_REQ_ID AND PARENT_PROCESS_ID=@PROCESS_CURR
1246
						UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID=@PROCESS_NEXT WHERE REQ_ID=@p_REQ_ID
1247
				END
1248
				ELSE
1249
				BEGIN
1250
					
1251
				
1252

    
1253
			
1254
			
1255

    
1256
				SET @NOTES=(SELECT CONTENT FROM dbo.CM_ALLCODE WHERE (@PROCESS_CURR LIKE CDVAL + '%') AND CDNAME='PROCESS_ID' AND CDTYPE='REQ')   
1257

    
1258

    
1259
				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)
1260
				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)
1261
							
1262

    
1263

    
1264
				IF(NOT EXISTS( SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@PROCESS_CURR AND REQ_ID=@p_REQ_ID AND STATUS='C'))
1265
				BEGIN
1266
						
1267
							UPDATE dbo.PL_REQUEST_PROCESS SET [STATUS]='C' WHERE PROCESS_ID=@PROCESS_NEXT AND REQ_ID=@p_REQ_ID
1268
							UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID=@PROCESS_NEXT WHERE REQ_ID=@p_REQ_ID
1269
						
1270
				END
1271

    
1272
				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='')
1273
				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='')
1274

    
1275

    
1276
		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)))
1277
			BEGIN
1278
			IF(NOT EXISTS(SELECT REQ_COST_ID FROM dbo.PL_REQUEST_COSTCENTER WHERE REQ_ID=@p_REQ_ID AND AUTH_STATUS<>'A'))
1279
			BEGIN
1280
				    IF(NOT EXISTS(SELECT * FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID AND AUTH_STATUS <>'A'))
1281
					BEGIN
1282
							DECLARE 	@LIMIT_VALUE DECIMAL(18,0),@TOTAL_TRANSFER DECIMAL(18,2),
1283
							@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)
1284
							DECLARE @ROLE_CDT VARCHAR(20),@DVDM_CDT VARCHAR(20),@LIMIT_VALUE_CDT VARCHAR(20),@NOTES_CDT VARCHAR(20),@TOTAL_AMT DECIMAL(18,2)	
1285
						
1286

    
1287
							SET @STEP_PARENT=(SELECT PARENT_PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID='TC' AND REQ_ID=@p_REQ_ID)
1288
						
1289
							SET @NOTE=   (SELECT CONTENT FROM dbo.CM_ALLCODE WHERE CDVAL='DVDM' AND CDNAME='PROCESS_ID' AND CDTYPE='REQ')
1290
							
1291

    
1292
							DECLARE lstTransfer CURSOR FOR
1293
							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)
1294
							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	)
1295
							GROUP BY FR_DVDM_ID
1296
							OPEN lstTransfer
1297
							FETCH NEXT FROM lstTransfer INTO @DVDM_ID
1298
							WHILE @@FETCH_STATUS = 0 
1299
							BEGIN 
1300
							
1301
								INSERT INTO dbo.PL_REQUEST_PROCESS
1302
								(
1303
									REQ_ID,
1304
									PROCESS_ID,
1305
									STATUS,
1306
									ROLE_USER,
1307
									BRANCH_ID,
1308
									CHECKER_ID,
1309
									APPROVE_DT,
1310
									PARENT_PROCESS_ID,
1311
									IS_LEAF,
1312
									COST_ID,
1313
									DVDM_ID,
1314
									NOTES,IS_HAS_CHILD
1315
								)
1316
								VALUES
1317
								(   @p_REQ_ID,        -- REQ_ID - varchar(15)
1318
									'DVDM_DC',        -- PROCESS_ID - varchar(10)
1319
									'U',        -- STATUS - varchar(5)
1320
									'GDDV',        -- ROLE_USER - varchar(50)
1321
									'',        -- BRANCH_ID - varchar(15)
1322
									'',        -- CHECKER_ID - varchar(15)
1323
									NULL, -- APPROVE_DT - datetime
1324
									@STEP_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
1325
									'N',        -- IS_LEAF - varchar(1)
1326
									'',        -- COST_ID - varchar(15)
1327
									@DVDM_ID ,        -- DVDM_ID - varchar(15)
1328
									N'Chờ '+@NOTE+N' xác nhận'
1329
									,0)
1330

    
1331
							FETCH NEXT FROM lstTransfer INTO @DVDM_ID
1332
							END
1333
							CLOSE lstTransfer
1334
							DEALLOCATE lstTransfer
1335

    
1336

    
1337
							 IF(EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='DVDM_DC'))
1338
								SET @STEP_PARENT='DVDM_DC'
1339
							
1340

    
1341
						UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID=@STEP_PARENT,STATUS='U' WHERE  PROCESS_ID='TC' AND REQ_ID=@p_REQ_ID
1342
						SET @STEP_PARENT='TC'
1343

    
1344
						---Duyệt DC
1345

    
1346
						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 
1347
						GROUP BY FR_KHOI_ID)T
1348
						) > 1)
1349
						BEGIN
1350
							INSERT INTO dbo.PL_REQUEST_PROCESS
1351
							(
1352
							    REQ_ID,
1353
							    PROCESS_ID,
1354
							    STATUS,
1355
							    ROLE_USER,
1356
							    BRANCH_ID,
1357
							    CHECKER_ID,
1358
							    APPROVE_DT,
1359
							    PARENT_PROCESS_ID,
1360
							    IS_LEAF,
1361
							    COST_ID,
1362
							    DVDM_ID,
1363
							    NOTES,
1364
							    IS_HAS_CHILD
1365
							)
1366
							VALUES
1367
							(   @p_REQ_ID,        -- REQ_ID - varchar(15)
1368
							    'TGD_DC',        -- PROCESS_ID - varchar(10)
1369
							    'U',        -- STATUS - varchar(5)
1370
							    'TGD',        -- ROLE_USER - varchar(50)
1371
							    '',        -- BRANCH_ID - varchar(15)
1372
							    '',        -- CHECKER_ID - varchar(15)
1373
							    NULL, -- APPROVE_DT - datetime
1374
							    @STEP_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
1375
							    '',        -- IS_LEAF - varchar(1)
1376
							    '',        -- COST_ID - varchar(15)
1377
							    '',        -- DVDM_ID - varchar(15)
1378
							    N'Chờ tổng giám đốc phê duyệt',       -- NOTES - nvarchar(500)
1379
							    NULL       -- IS_HAS_CHILD - bit
1380
							    )
1381
							SET	@STEP_PARENT='TGD_DC'
1382
						END
1383
						ELSE
1384
						BEGIN
1385
							DECLARE @LIMTT_MAX  DECIMAL(18,2),@LIMIT_APP DECIMAL(18,2) ,@KHOI_ID_TF VARCHAR(20)
1386
							SET @KHOI_ID_TF=(SELECT TOP 1 FR_KHOI_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID)
1387
							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)
1388
							SET @TOTAL_TRANSFER=(SELECT SUM(TOTAL_AMT) AS TOTAL FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID)
1389
							SET @LIMTT_MAX=(SELECT LIMIT_VALUE FROM dbo.TL_SYSROLE_LIMIT WHERE ROLE_ID='GDK' AND LIMIT_TYPE='DCNS')
1390

    
1391
							INSERT INTO dbo.PL_REQUEST_PROCESS
1392
							(
1393
							    REQ_ID,
1394
							    PROCESS_ID,
1395
							    STATUS,
1396
							    ROLE_USER,
1397
							    BRANCH_ID,
1398
							    CHECKER_ID,
1399
							    APPROVE_DT,
1400
							    PARENT_PROCESS_ID,
1401
							    IS_LEAF,
1402
							    COST_ID,
1403
							    DVDM_ID,
1404
							    NOTES,
1405
							    IS_HAS_CHILD
1406
							)
1407
							VALUES
1408
							(   @p_REQ_ID,        -- REQ_ID - varchar(15)
1409
							    'GDK_DC',        -- PROCESS_ID - varchar(10)
1410
							    'U',        -- STATUS - varchar(5)
1411
							    'GDK',        -- ROLE_USER - varchar(50)
1412
							    '',        -- BRANCH_ID - varchar(15)
1413
							    '',        -- CHECKER_ID - varchar(15)
1414
							    GETDATE(), -- APPROVE_DT - datetime
1415
							    @STEP_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
1416
							    'N',        -- IS_LEAF - varchar(1)
1417
							    '',        -- COST_ID - varchar(15)
1418
							    @KHOI_ID_TF,        -- DVDM_ID - varchar(15)
1419
							    N'Chờ giám đốc khối xác nhận',       -- NOTES - nvarchar(500)
1420
							    NULL       -- IS_HAS_CHILD - bit
1421
							 )
1422
							 SET @STEP_PARENT='GDK_DC';
1423
							 IF(@TOTAL_TRANSFER>@LIMTT_MAX OR @TOTAL_TRANSFER>@LIMIT_APP)
1424
							 BEGIN
1425
								IF(EXISTS(SELECT DVDM_ID FROM dbo.CM_DVDM WHERE DVDM_ID=@KHOI_ID_TF AND IS_KHOI=1 AND IS_PTGD=1))
1426
									BEGIN
1427
									INSERT INTO dbo.PL_REQUEST_PROCESS
1428
							(
1429
							    REQ_ID,
1430
							    PROCESS_ID,
1431
							    STATUS,
1432
							    ROLE_USER,
1433
							    BRANCH_ID,
1434
							    CHECKER_ID,
1435
							    APPROVE_DT,
1436
							    PARENT_PROCESS_ID,
1437
							    IS_LEAF,
1438
							    COST_ID,
1439
							    DVDM_ID,
1440
							    NOTES,
1441
							    IS_HAS_CHILD
1442
							)
1443
							VALUES
1444
							(   @p_REQ_ID,        -- REQ_ID - varchar(15)
1445
							    'PTGD_DC',        -- PROCESS_ID - varchar(10)
1446
							    'U',        -- STATUS - varchar(5)
1447
							    'PTGD',        -- ROLE_USER - varchar(50)
1448
							    '',        -- BRANCH_ID - varchar(15)
1449
							    '',        -- CHECKER_ID - varchar(15)
1450
							    GETDATE(), -- APPROVE_DT - datetime
1451
							    @STEP_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
1452
							    'N',        -- IS_LEAF - varchar(1)
1453
							    '',        -- COST_ID - varchar(15)
1454
							    @KHOI_ID_TF,        -- DVDM_ID - varchar(15)
1455
							    N'Chờ giám đốc khối xác nhận',       -- NOTES - nvarchar(500)
1456
							    NULL       -- IS_HAS_CHILD - bit
1457
							 )
1458
									SET @STEP_PARENT='PTGD_DC'
1459
									SET @LIMTT_MAX=(SELECT LIMIT_VALUE FROM dbo.TL_SYSROLE_LIMIT WHERE ROLE_ID='GDK' AND LIMIT_TYPE='DCNS')
1460
									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)
1461
									
1462
									END
1463
									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))
1464
									BEGIN
1465
									INSERT INTO dbo.PL_REQUEST_PROCESS
1466
									(
1467
										REQ_ID,
1468
										PROCESS_ID,
1469
										STATUS,
1470
										ROLE_USER,
1471
										BRANCH_ID,
1472
										CHECKER_ID,
1473
										APPROVE_DT,
1474
										PARENT_PROCESS_ID,
1475
										IS_LEAF,
1476
										COST_ID,
1477
										DVDM_ID,
1478
										NOTES,
1479
										IS_HAS_CHILD
1480
									)
1481
									VALUES
1482
									(   @p_REQ_ID,        -- REQ_ID - varchar(15)
1483
										'TGD_DC',        -- PROCESS_ID - varchar(10)
1484
										'U',        -- STATUS - varchar(5)
1485
										'TGD',        -- ROLE_USER - varchar(50)
1486
										'',        -- BRANCH_ID - varchar(15)
1487
										'',        -- CHECKER_ID - varchar(15)
1488
										NULL, -- APPROVE_DT - datetime
1489
										@STEP_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
1490
										'',        -- IS_LEAF - varchar(1)
1491
										'',        -- COST_ID - varchar(15)
1492
										'',        -- DVDM_ID - varchar(15)
1493
										N'Chờ tổng giám đốc phê duyệt',       -- NOTES - nvarchar(500)
1494
										NULL       -- IS_HAS_CHILD - bit
1495
									)
1496
									SET	@STEP_PARENT='TGD_DC'
1497
								 END
1498
							
1499
							 END
1500

    
1501

    
1502

    
1503

    
1504
						END
1505
						--- Duyệt TT
1506

    
1507
					
1508
						
1509
						UPDATE dbo.PL_REQUEST_PROCESS SET [STATUS]='C' WHERE PROCESS_ID='DVDM_DC' AND REQ_ID=@p_REQ_ID
1510
						UPDATE dbo.PL_REQUEST_PROCESS SET PARENT_PROCESS_ID=@STEP_PARENT,STATUS='U' WHERE  PROCESS_ID='APPROVE' AND REQ_ID=@p_REQ_ID
1511
						UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID='DVDM_DC' WHERE REQ_ID=@p_REQ_ID
1512

    
1513
				END	
1514
			END
1515
		END
1516

    
1517

    
1518
	
1519
		
1520
		
1521
			
1522

    
1523
				IF(EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='APPROVE'))
1524
			BEGIN
1525
				
1526
					
1527
					EXEC dbo.PL_REQ_DOC_UPDATE_AFTER_APPROVE @p_REQ_ID = @p_REQ_ID 
1528
					EXEC dbo.PL_REQ_DOC_Ins_To_TR_REQ_DOC @p_PL_REQ_ID = @p_REQ_ID
1529

    
1530

    
1531

    
1532
				
1533
			END
1534
	
1535

    
1536
				END
1537

    
1538

    
1539
		END
1540

    
1541

    
1542
				
1543
		IF @@Error <> 0 GOTO ABORT
1544
COMMIT TRANSACTION
1545
SELECT 0 as Result, '' ErrorDesc
1546
RETURN 0
1547
ABORT:
1548
BEGIN
1549
		ROLLBACK TRANSACTION
1550
		SELECT -1 as Result, '' ErrorDesc
1551
		RETURN -1
1552
End
1553

    
1554

    
1555

    
1556

    
1557

    
1558

    
1559