Project

General

Profile

PL_REQUEST_PROCESS_App.txt

Luc Tran Van, 02/24/2025 02:13 PM

 
1
ALTER PROCEDURE [dbo].[PL_REQUEST_PROCESS_App] @p_REQ_ID VARCHAR(15) = NULL,
2
@p_AUTH_STATUS VARCHAR(1) = NULL,
3
@p_CHECKER_ID VARCHAR(15) = NULL,
4
@p_APPROVE_DT VARCHAR(20) = NULL,
5
@p_ROLE_LOGIN VARCHAR(50) = NULL,
6
@p_BRANCH_LOGIN VARCHAR(15),
7
@p_PROCESS_DESC NVARCHAR(MAX),
8
@p_IS_AUTHORITY BIT = 0
9
AS
10

    
11
  DECLARE @MENU_PERMISSION NVARCHAR(500) = 'Pages.Administration.PlanProcess'--permission chức năng call store
12
  DECLARE @PROCESS_DESC_TUQ NVARCHAR(500) = ''
13
  --SET @p_APPROVE_DT= CAST(@p_APPROVE_DT AS DATE)
14
  --Validation is here
15
  DECLARE @ERRORSYS NVARCHAR(15) = ''
16
  IF (NOT EXISTS (SELECT
17
        *
18
      FROM PL_REQUEST_DOC
19
      WHERE REQ_ID = @p_REQ_ID)
20
    )
21
    SET @ERRORSYS = 'REQ-00002'
22
  IF @ERRORSYS <> ''
23
  BEGIN
24
    --ROLLBACK TRANSACTION
25
    SELECT
26
      ErrorCode Result
27
     ,ErrorDesc ErrorDesc
28
    FROM SYS_ERROR
29
    WHERE ErrorCode = @ERRORSYS
30
    RETURN '0'
31
  END
32
  -- LUCTV 06 - 05 - 2021 BO SUNG UY QUYEN KIEM NHIEM
33
  DECLARE @TABLE_ROLE TABLE (
34
    ROLE_AUTH VARCHAR(50)
35
  )
36
  INSERT INTO @TABLE_ROLE
37
    SELECT
38
      (SELECT
39
          ROLENAME
40
        FROM TL_USER
41
        WHERE TLNANME = @p_CHECKER_ID)
42
  INSERT INTO @TABLE_ROLE
43
    SELECT TOP 1
44
      A.RoleDisplayName
45
    FROM dbo.SYS_PERMISSIONS_PAGE_FOR_USER A
46
    LEFT JOIN dbo.CM_BRANCH B
47
      ON B.BRANCH_ID = A.BRANCH_ID
48
    WHERE A.TLNAME = @p_CHECKER_ID
49
    AND (DATEDIFF(DAY, CONVERT(DATE, A.EffectiveDate, 103), CONVERT(DATE, GETDATE(), 103)) >= 0
50
    OR A.EffectiveDate IS NULL
51
    OR A.EffectiveDate = '')
52
    AND (DATEDIFF(DAY, CONVERT(DATE, A.ExpirationDate, 103), CONVERT(DATE, GETDATE(), 103)) <= 0
53
    OR A.ExpirationDate IS NULL
54
    OR A.ExpirationDate = '')
55
    AND EXISTS (SELECT
56
        DT.PER_PAGE_FOR_USER_DT_ID
57
      FROM SYS_PERMISSIONS_PAGE_FOR_USER_DT DT
58
      WHERE DT.PER_PAGE_FOR_USER_ID = A.PER_PAGE_FOR_USER_ID
59
      AND DT.MENU_PERMISSION = @MENU_PERMISSION)
60
    AND A.AUTH_STATUS = 'A'
61
    AND A.RECORD_STATUS = '1'
62
  ---- LUCTV 15062023_SECRETKEY BỔ SUNG VÀO BẢNG ROLE LẤY TỪ GỐC ABPUSERROLES
63
  INSERT INTO @TABLE_ROLE
64
    SELECT
65
      RL.DisplayName
66
    FROM TL_USER TL
67
    INNER JOIN AbpUserRoles UR
68
      ON TL.ID = UR.UserId
69
    INNER JOIN AbpRoles RL
70
      ON UR.RoleId = RL.Id
71
    WHERE TL.TLNANME = @p_CHECKER_ID
72
  ---- END LUCTV 16052023
73
  -- KHAI BAO UY QUYEN DON VI DAU MOI
74

    
75
  SELECT
76
    ROLE_DISPLAYNAME ROLE_ID
77
   ,BRANCH_ID
78
   ,DEP_ID
79
   ,DVDM_ID INTO #AUTHOR_DVDM
80
  FROM dbo.FN_GET_ROLE_DVDM_USER_BY_TLNAME(@p_CHECKER_ID, @MENU_PERMISSION)
81

    
82
  BEGIN TRANSACTION
83
  SET NOCOUNT ON;
84
  IF (EXISTS (SELECT
85
        *
86
      FROM PL_REQUEST_PROCESS_CHILD
87
      WHERE REQ_ID = @p_REQ_ID
88
      AND STATUS_JOB = 'R')
89
    OR (EXISTS (SELECT
90
        *
91
      FROM PL_REQUEST_DOC
92
      WHERE REQ_ID = @p_REQ_ID
93
      AND AUTH_STATUS = 'R')
94
    )
95
    OR (EXISTS (SELECT
96
        *
97
      FROM PL_REQUEST_PROCESS
98
      WHERE REQ_ID = @p_REQ_ID
99
      AND STATUS = 'R')
100
    ))
101
  BEGIN
102
    ROLLBACK TRANSACTION
103
    SELECT
104
      '-1' AS Result
105
     ,N'Tờ trình chủ trương số: ' + (SELECT
106
          REQ_CODE
107
        FROM PL_REQUEST_DOC
108
        WHERE REQ_ID = @p_REQ_ID)
109
      + 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
110
    RETURN '-1'
111
  END
112
  IF (EXISTS (SELECT
113
        *
114
      FROM PL_REQUEST_DOC
115
      WHERE REQ_ID = @p_REQ_ID
116
      AND PROCESS_ID IN ('DVCM', 'TC', 'DVDC', 'KT'))
117
    )
118
  BEGIN
119
    ROLLBACK TRANSACTION
120
    SELECT
121
      '-1' AS Result
122
     ,N'Tờ trình chủ trương số: ' + (SELECT
123
          REQ_CODE
124
        FROM PL_REQUEST_DOC
125
        WHERE REQ_ID = @p_REQ_ID)
126
      + N' đang chờ các đơn vị phụ trách chuyên môn xử lý. Anh Chị Banh Lãnh Đạo chỉ phê duyệt khi tờ trình đang chờ Giám đốc khối / Phó tổng giám đốc/ Tổng giám đốc và Chủ Tịch HĐQT!' ErrorDesc
127
    RETURN '-1'
128
  END
129
  --UPDATE dbo.PL_REQUEST_TRANSFER SET AUTH_STATUS = @P_AUTH_STATUS, CHECKER_ID = @P_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@P_APPROVE_DT,103)
130
  --WHERE REQ_DOC_ID = @p_REQ_ID AND FR_BRN_ID IN (SELECT BRANCH_ID FROM  CM_BRANCH_GETCHILDID(@p_BRANCH_LOGIN))
131

    
132
  DECLARE @Result VARCHAR(5)
133
         ,@PROCESS_CURR VARCHAR(10)
134
         ,@STEP_CURR INT
135
         ,@STEP_NEXT INT
136
         ,@PROCESS_NEXT VARCHAR(10)
137
         ,@ROLE_USER_NOTIFI VARCHAR(50)
138
         ,@DEP_ID VARCHAR(15)
139
         ,@IS_LEAF VARCHAR(1)
140
         ,@NOTES NVARCHAR(500)
141
         ,@IS_NEXT BIT
142
         ,@ROLE_USER VARCHAR(20)
143
         ,@ROLE_NEXT VARCHAR(20)
144
         ,@LIMTT_MAX DECIMAL(18, 2)
145
         ,@LIMIT_APP DECIMAL(18, 2)
146
         ,@KHOI_ID_TF VARCHAR(20)
147
         ,@TOTAL_TRANSFER DECIMAL(18, 2)
148
         ,@PROCESS_ID_NEXT VARCHAR(20)
149
         ,@IS_NEXT_CDT BIT
150
         ,@TOTAL_AMT DECIMAL(18, 2)
151
         ,@STEP_PARENT VARCHAR(20)
152
         ,@NOTES_CDT VARCHAR(20)
153
         ,@ROLE_CDT VARCHAR(20)
154
         ,@DVDM_CDT VARCHAR(20)
155
         ,@LIMIT_VALUE_CDT DECIMAL(18, 2)
156
         ,@DVDM_ID_TT VARCHAR(20)
157
         ,@TOTAL_AMT_GD DECIMAL(18, 2)
158
         ,@BRANCH_CREATE VARCHAR(15)
159
         ,@BRANCH_CREATE_TYPE VARCHAR(15)
160
         ,@DEP_CREATE VARCHAR(15)
161
         ,@BRANCH_PARENT VARCHAR(15)
162
          -- BIẾN CHECK UỶ QUYỀN
163
         ,@l_IS_TUQ VARCHAR(1) = '0'
164
         ,@BRANCH_ID_CHECK_TUQ VARCHAR(20) = ''
165
         ,@DEP_ID_CHECK_TUQ VARCHAR(20) = ''
166
         ,@DVCM_ID_CHECK_TUQ VARCHAR(20) = ''
167
         ,@ROLE_USER_CHECK VARCHAR(20)
168
  DECLARE @PROCESS_ID VARCHAR(5)
169
         ,@DVDM_NAME NVARCHAR(20)
170
         ,@ROLE_ID VARCHAR(20)
171
         ,@DVDM_ID_CDT VARCHAR(20)
172

    
173
  SET @DEP_ID = (SELECT
174
      SECUR_CODE
175
    FROM dbo.TL_USER
176
    WHERE TLNANME = @p_CHECKER_ID)
177

    
178
  SET @PROCESS_CURR = (SELECT TOP 1
179
      PROCESS_ID
180
    FROM dbo.PL_REQUEST_PROCESS
181
    WHERE REQ_ID = @p_REQ_ID
182
    AND STATUS = 'C')
183
  SET @PROCESS_NEXT = (SELECT TOP 1
184
      PROCESS_ID
185
    FROM dbo.PL_REQUEST_PROCESS
186
    WHERE REQ_ID = @p_REQ_ID
187
    AND PARENT_PROCESS_ID = @PROCESS_CURR)
188

    
189
  DECLARE @DATA_DVDM TABLE (
190
    DVDM_ID VARCHAR(20)
191
   ,TOTAL_AMT DECIMAL(12, 0)
192
   ,IS_PTGD BIT
193
  );
194

    
195
  SET @NOTES = (SELECT
196
      CONTENT
197
    FROM dbo.CM_ALLCODE
198
    WHERE (@PROCESS_CURR LIKE CDVAL + '%')
199
    AND CDNAME = 'PROCESS_ID'
200
    AND CDTYPE = 'REQ')
201
  DECLARE @DVDM_ID TABLE (
202
    DVDM_ID VARCHAR(15)
203
  )
204
  DECLARE @ERROR BIT
205
         ,@EROOR_DES NVARCHAR(500)
206
  IF (@PROCESS_CURR LIKE '%_DC')
207
  BEGIN
208
    SELECT
209
      @ERROR = ERROR
210
     ,@EROOR_DES = ERROR_DES
211
    FROM dbo.FN_CHECK_VALIDATE_APP(@p_REQ_ID, 'PDDC', 'PL_REQUEST_DOC', @p_CHECKER_ID, @PROCESS_CURR)
212
    IF (@ERROR = 1)
213
    BEGIN
214
      ROLLBACK TRANSACTION;
215
      SELECT
216
        '-1' Result
217
       ,@EROOR_DES ErrorDesc
218
      RETURN '0';
219
    END
220
  END
221
  SELECT
222
    @ERROR = ERROR
223
   ,@EROOR_DES = ERROR_DES
224
  FROM dbo.FN_CHECK_VALIDATE_APP(@p_REQ_ID, 'PDTT', 'PL_REQUEST_DOC', @p_CHECKER_ID, @PROCESS_CURR)
225
  IF (@ERROR = 1)
226
  BEGIN
227
    ROLLBACK TRANSACTION;
228
    SELECT
229
      '-1' Result
230
     ,@EROOR_DES ErrorDesc
231
    RETURN '0';
232
  END
233
  INSERT INTO @DATA_DVDM
234
    SELECT
235
      KHOI_ID
236
     ,SUM(TOTAL_AMT) AS TOTAL_AMT
237
     ,DM.IS_PTGD
238
    FROM dbo.PL_REQUEST_DOC_DT DT
239
    LEFT JOIN CM_DVDM DM
240
      ON DM.DVDM_ID = DT.KHOI_ID
241
        AND DM.IS_KHOI = 1
242
    WHERE REQ_ID = @p_REQ_ID
243
    AND DT.KHOI_ID IS NOT NULL
244
    AND DT.KHOI_ID <> ''
245
    GROUP BY KHOI_ID
246
            ,DM.IS_PTGD;
247
  SET @DVDM_CDT = (SELECT
248
      DVDM_ID
249
    FROM dbo.TL_SYSROLE_LIMIT
250
    WHERE LIMIT_TYPE = 'CDT')
251
  INSERT INTO @DVDM_ID
252
    SELECT
253
      DVDM_ID
254
    FROM dbo.PL_COSTCENTER
255
    WHERE COST_ID IN (SELECT
256
        COST_ID
257
      FROM dbo.PL_COSTCENTER_DT
258
      WHERE DEP_ID = @DEP_ID
259
      AND BRANCH_ID = @p_BRANCH_LOGIN)
260
    GROUP BY DVDM_ID
261

    
262

    
263

    
264
  IF (NOT EXISTS (SELECT
265
        REQ_ID
266
      FROM dbo.PL_REQUEST_PROCESS
267
      WHERE STATUS = 'C'
268
      AND PROCESS_ID = @PROCESS_CURR
269
      AND REQ_ID = @p_REQ_ID
270
      AND (EXISTS (SELECT
271
          ROLE_ID
272
        FROM #AUTHOR_DVDM AUTH
273
        WHERE AUTH.ROLE_ID = ROLE_USER
274
        AND (AUTH.DVDM_ID = PL_REQUEST_PROCESS.DVDM_ID
275
        OR PL_REQUEST_PROCESS.DVDM_ID = ''
276
        OR PL_REQUEST_PROCESS.DVDM_ID IS NULL))
277
      ))
278
    )
279
  BEGIN
280
    ROLLBACK TRANSACTION
281
    SELECT
282
      '-1' AS Result
283
     ,N'Bạn không nằm trong nhóm quyền được phê duyệt tờ trình này' AS ROLE_NOTIFI
284
     ,N'Bạn không nằm trong nhóm quyền được phê duyệt tờ trình này' ErrorDesc
285
    RETURN '-1'
286
  END
287

    
288
  UPDATE dbo.PL_REQUEST_PROCESS
289
  SET [STATUS] = 'P'
290
     ,NOTES = @NOTES + N' đã phê duyệt'
291
     ,CHECKER_ID = @p_CHECKER_ID
292
     ,APPROVE_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103)
293
  WHERE PROCESS_ID = @PROCESS_CURR
294
  AND REQ_ID = @p_REQ_ID
295
  AND (EXISTS (SELECT
296
      ROLE_ID
297
    FROM #AUTHOR_DVDM AUTH
298
    WHERE AUTH.ROLE_ID = ROLE_USER
299
    AND (AUTH.DVDM_ID = PL_REQUEST_PROCESS.DVDM_ID
300
    OR PL_REQUEST_PROCESS.DVDM_ID = ''
301
    OR PL_REQUEST_PROCESS.DVDM_ID IS NULL))
302
  )
303
  IF (@PROCESS_CURR <> 'DVCM'
304
    AND @PROCESS_CURR <> 'DVDM'
305
    AND @PROCESS_CURR <> 'TC')
306
  BEGIN
307
    UPDATE dbo.PL_REQUEST_DOC_DT
308
    SET CHECKER_ID = @p_CHECKER_ID
309
       ,APPROVE_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103)
310
    WHERE REQ_ID = @p_REQ_ID
311
    AND (KHOI_ID IN (SELECT
312
        DVDM_ID
313
      FROM @DVDM_ID)
314
    OR @p_ROLE_LOGIN = 'TGD'
315
    OR @p_ROLE_LOGIN = 'HDQT'
316
    OR @p_ROLE_LOGIN = 'GDDV'
317
    OR @p_ROLE_LOGIN IN (SELECT
318
        ROLE_OLD
319
      FROM dbo.TL_SYS_ROLE_MAPPING
320
      WHERE ROLE_NEW = 'GDDV')
321
    )
322
  END
323
  IF (@PROCESS_CURR LIKE '%_DC')
324
  BEGIN
325
    UPDATE dbo.PL_REQUEST_TRANSFER
326
    SET CHECKER_ID = @p_CHECKER_ID
327
       ,APPROVE_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103)
328
    WHERE REQ_DOC_ID = @p_REQ_ID
329
    AND (FR_KHOI_ID IN (SELECT
330
        DVDM_ID
331
      FROM @DVDM_ID)
332
    OR @p_ROLE_LOGIN = 'TGD'
333
    OR @p_ROLE_LOGIN = 'HDQT'
334
    OR @p_ROLE_LOGIN IN (SELECT
335
        ROLE_OLD
336
      FROM dbo.TL_SYS_ROLE_MAPPING
337
      WHERE ROLE_NEW = 'GDDV')
338
    )
339
  END
340
  DECLARE @PROCESS_DVDM VARCHAR(20)
341
  SELECT TOP 1
342
    @PROCESS_DVDM = DVDM_ID
343
  FROM PL_REQUEST_PROCESS
344
  WHERE REQ_ID = @p_REQ_ID
345
  AND STATUS = 'C'
346
  SET @DVCM_ID_CHECK_TUQ = @PROCESS_DVDM -- LẤY ID DVCM ĐỂ CHECK XEM USER CÓ ỦY QUYỀN HAY KHÔNG
347
  --XỬ LÝ VIỆC THỪA ỦY QUYỀN KIÊM NHIỆM 
348
  EXEC SYS_CHECK_USER_APPROVE_TUQ @TLNAME = @p_CHECKER_ID
349
                                 , --USER DOMAIN NGƯỜI CẦN CHECK
350
                                  @BRANCH_ID = @BRANCH_ID_CHECK_TUQ
351
                                 , --BRANCH CẦN CHECK
352
                                  @DEP_ID = @DEP_ID_CHECK_TUQ
353
                                 , --DEP CẦN CHECK
354
                                  @DVCM_ID = @DVCM_ID_CHECK_TUQ
355
                                 , -- DVCM CẦN CHECK
356
                                  @MENU_PERMISSION = @MENU_PERMISSION
357
                                 , --PERMISSION ĐỂ ĐƯỢC TÍNH USER LOGIN LÀ ĐƯỢC ỦY QUYỀN
358
                                  @ROLE_USER_CHECK = @ROLE_USER_CHECK
359
                                 , --ROLE USER CẦN CHECK KHI ĐÓ LÀ BƯỚC DUYỆT CỦA TKTGD, TGD, TKHDQT, HDQT
360
                                  @CONTENT_RESULT = @PROCESS_DESC_TUQ OUT
361

    
362
  IF @PROCESS_DESC_TUQ = ''
363
  BEGIN
364
    SET @PROCESS_DESC_TUQ = @p_PROCESS_DESC
365
  END
366
  ELSE
367
  BEGIN
368
    SET @l_IS_TUQ = '1'
369
  END
370
  --XỬ LÝ VIỆC THỪA ỦY QUYỀN KIÊM NHIỆM 
371

    
372
  INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES, IS_TUQ)
373
    VALUES (@p_REQ_ID, @PROCESS_CURR, @p_CHECKER_ID, GETDATE(), @PROCESS_DESC_TUQ, @NOTES + N' đã phê duyệt', @l_IS_TUQ)
374

    
375
  SELECT
376
    @BRANCH_CREATE = BRANCH_CREATE
377
   ,@DEP_CREATE = DEP_CREATE
378
  FROM dbo.PL_REQUEST_DOC
379
  WHERE REQ_ID = @p_REQ_ID
380

    
381
  SET @BRANCH_CREATE_TYPE = (SELECT
382
      BRANCH_TYPE
383
    FROM dbo.CM_BRANCH
384
    WHERE BRANCH_ID = @BRANCH_CREATE)
385

    
386

    
387
  SET @Result = '1'
388
  IF (NOT EXISTS (SELECT
389
        PROCESS_ID
390
      FROM dbo.PL_REQUEST_PROCESS
391
      WHERE REQ_ID = @p_REQ_ID
392
      AND PROCESS_ID = @PROCESS_CURR
393
      AND [STATUS] <> 'P')
394
    )
395
  BEGIN
396
    --- LUCTV 18.10.22 KIEM TRA NEU WORKFLOW CO PTGD KHOI HO TRO THI REMOVE KHOI QUY TRINH
397
    IF ((SELECT
398
          COUNT(*)
399
        FROM PL_REQUEST_PROCESS
400
        WHERE REQ_ID = @p_REQ_ID
401
        AND PROCESS_ID = 'PTGDK_TT')
402
      = 1)
403
    BEGIN
404
      IF (EXISTS (SELECT
405
            *
406
          FROM PL_REQUEST_PROCESS
407
          WHERE REQ_ID = @p_REQ_ID
408
          AND PROCESS_ID = 'PTGDK_TT'
409
          AND DVDM_ID = 'DM0000000000015x')
410
        ) --- 15062023_SECRETKEY
411
      BEGIN
412
        DELETE FROM PL_REQUEST_PROCESS
413
        WHERE REQ_ID = @p_REQ_ID
414
          AND PROCESS_ID = 'PTGDK_TT'
415
          AND DVDM_ID = 'DM0000000000015x'
416
        UPDATE PL_REQUEST_PROCESS
417
        SET PARENT_PROCESS_ID = @PROCESS_CURR
418
        WHERE REQ_ID = @p_REQ_ID
419
        AND PARENT_PROCESS_ID = 'PTGDK_TT'
420
        SET @PROCESS_NEXT = (SELECT TOP 1
421
            PROCESS_ID
422
          FROM dbo.PL_REQUEST_PROCESS
423
          WHERE REQ_ID = @p_REQ_ID
424
          AND PARENT_PROCESS_ID = @PROCESS_CURR)
425
      END
426
    END
427
    ELSE
428
    BEGIN
429
      IF ((SELECT
430
            COUNT(*)
431
          FROM PL_REQUEST_PROCESS
432
          WHERE REQ_ID = @p_REQ_ID
433
          AND PROCESS_ID = 'PTGDK_TT')
434
        = 1)
435
      BEGIN
436
        IF (EXISTS (SELECT
437
              *
438
            FROM PL_REQUEST_PROCESS
439
            WHERE REQ_ID = @p_REQ_ID
440
            AND PROCESS_ID = 'PTGDK_TT'
441
            AND DVDM_ID = 'DM0000000000015x')
442
          )
443
        BEGIN
444
          DELETE FROM PL_REQUEST_PROCESS
445
          WHERE REQ_ID = @p_REQ_ID
446
            AND PROCESS_ID = 'PTGDK_TT'
447
            AND DVDM_ID = 'DM0000000000015'
448
          SET @PROCESS_NEXT = (SELECT TOP 1
449
              PROCESS_ID
450
            FROM dbo.PL_REQUEST_PROCESS
451
            WHERE REQ_ID = @p_REQ_ID
452
            AND PARENT_PROCESS_ID = @PROCESS_CURR)
453
        END
454
      END
455
    END
456
    --- END LUCTV 18.10.22
457
    UPDATE dbo.PL_REQUEST_PROCESS
458
    SET [STATUS] = 'C'
459
    WHERE PARENT_PROCESS_ID = @PROCESS_CURR
460
    AND REQ_ID = @p_REQ_ID
461
    UPDATE dbo.PL_REQUEST_DOC
462
    SET PROCESS_ID = @PROCESS_NEXT
463
    WHERE REQ_ID = @p_REQ_ID
464
    SET @IS_LEAF = (SELECT TOP 1
465
        IS_LEAF
466
      FROM dbo.PL_REQUEST_PROCESS
467
      WHERE REQ_ID = @p_REQ_ID
468
      AND PARENT_PROCESS_ID = @PROCESS_CURR)
469

    
470
    IF (@p_ROLE_LOGIN = 'HDQT')
471
      UPDATE dbo.PL_REQUEST_DOC
472
      SET IS_AUTHORITY = @p_IS_AUTHORITY
473
      WHERE REQ_ID = @p_REQ_ID
474
    IF (@p_ROLE_LOGIN = 'TGD')
475
      UPDATE dbo.PL_REQUEST_DOC
476
      SET TGD_NOTES = @p_PROCESS_DESC
477
      WHERE REQ_ID = @p_REQ_ID
478

    
479
    IF (@IS_LEAF = 'Y'
480
      OR EXISTS (SELECT
481
          *
482
        FROM PL_REQUEST_PROCESS
483
        WHERE REQ_ID = @p_REQ_ID
484
        AND PROCESS_ID = 'APPROVE'
485
        AND STATUS = 'C')
486
      ) --- 20.04.23 LUCTV FIX LOI DUYET HOAN TAT NHUNG KHONG PHAT SINH NGAN SACH
487
    BEGIN
488
      --print 'haha'
489
      UPDATE PL_REQUEST_DOC
490
      SET PROCESS_ID = 'APPROVE'
491
      WHERE REQ_ID = @p_REQ_ID
492
      EXEC dbo.PL_REQ_DOC_UPDATE_AFTER_APPROVE @p_REQ_ID = @p_REQ_ID
493
      EXEC dbo.PL_REQ_DOC_Ins_To_TR_REQ_DOC @p_PL_REQ_ID = @p_REQ_ID
494
      SET @Result = '0'
495
    END
496
  END
497
  IF @@Error <> 0
498
    GOTO ABORT
499

    
500
  COMMIT TRANSACTION
501
  -- BAY GIỜ KHÔNG CẦN PHÂN CHIA XÁC NHẬN - DUYỆT NỮA. KHI CẤP LÃNH ĐẠO (GĐK, PTGĐ, TGĐ) BẤM VÀO NÚT DUYỆT THÌ THÔNG BÁO DUYỆT THÀNH CÔNG. KHÔNG CẦN QUAN TÂM CẤP CUỐI CÙNG
502
  SELECT
503
    '0' AS Result
504
   ,@ROLE_USER AS ROLE_NOTIFI
505
   ,'' ErrorDesc
506
  RETURN '0'
507
ABORT:
508
  BEGIN
509

    
510
    ROLLBACK TRANSACTION
511
    SELECT
512
      '-1' AS Result
513
     ,'' ROLE_NOTIFI
514
     ,ERROR_MESSAGE() ErrorDesc
515
    RETURN '-1'
516
  END