Project

General

Profile

STORE PL_REQUEST_DOC_App.txt

Luc Tran Van, 11/03/2022 03:03 PM

 
1
??CREATE PROCEDURE dbo.PL_REQUEST_DOC_App @p_REQ_ID VARCHAR(15) = NULL, @p_AUTH_STATUS VARCHAR(1) = NULL, @p_CHECKER_ID VARCHAR(15) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @p_ROLE_LOGIN VARCHAR(50) = NULL, @p_BRANCH_LOGIN VARCHAR(1

2
5), @p_PROCESS_DESC NVARCHAR(500) AS BEGIN TRANSACTION; ---LUCTV KIEM TRA NEU TO TRINH DANG BI TRA VE THI KHONG DUOC PHEP DUYET IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE AUTH_STATUS ='R' AND REQ_ID =@p_REQ_ID)) BEGIN ROLLBACK TRANSACTION SELECT

3
'-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 RETURN '-1' END -- IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WH

4
ERE REQ_ID =@p_REQ_ID AND AUTH_STATUS ='A')) BEGIN ROLLBACK TRANSACTION 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'? ??c b?n ph? duy?t tr??c ?. Vui l?ng ?i c?c c?p ph? duy?t ti?

5
p theo!' ErrorDesc RETURN '-1' END --SET @p_APPROVE_DT = @p_APPROVE_DT --Validation is here DECLARE @ERRORSYS NVARCHAR(15) = ''; IF (NOT EXISTS (SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID = @p_REQ_ID)) SET @ERRORSYS = 'REQ-00002'; IF @ERRORSYS <> ''

6
BEGIN ROLLBACK TRANSACTION; SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS; RETURN '0'; END; DECLARE @ERROR BIT ,@EROOR_DES NVARCHAR(500) SELECT @ERROR=ERROR, @EROOR_DES=ERRO

7
R_DES FROM dbo.FN_CHECK_VALIDATE_APP(@p_REQ_ID,'APPNEW','PL_REQUEST_DOC',@p_CHECKER_ID,'APPNEW') IF(@ERROR=1) BEGIN ROLLBACK TRANSACTION; SELECT '-1' Result, @EROOR_DES ErrorDesc RETURN '0'; END --UPDATE dbo.PL_REQUEST_TRANSFER S

8
ET AUTH_STATUS = @P_AUTH_STATUS, CHECKER_ID = @P_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@P_APPROVE_DT,103) --WHERE REQ_DOC_ID = @p_REQ_ID AND FR_BRN_ID IN (SELECT BRANCH_ID FROM CM_BRANCH_GETCHILDID(@p_BRANCH_LOGIN)) DECLARE @BRANCH_TYPE_LOGIN VARCHAR

9
(15) SET @BRANCH_TYPE_LOGIN = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID =@p_BRANCH_LOGIN) DECLARE @Result VARCHAR(5), @TOTAL_TRANSFER DECIMAL(18, 2), @TOTAL_AMT DECIMAL(18, 0), @ROLE_USER_NOTIFI VARCHAR(50), @ROLE_

10
ID VARCHAR(20), @ROLE_TF VARCHAR(20), @LIMIT_VALUE DECIMAL(18, 0), @STEP_CURR VARCHAR(20), @STEP_PARENT VARCHAR(20), @COST_ID VARCHAR(20), @FR_BRANCH_ID VARCHAR(20), @FR_DEP_ID VARCHAR(20), @

11
DVDM_ID VARCHAR(20), @IS_NEXT BIT = 0, @IS_NEXT_CDT BIT = 0, @TOTAL_AMT_GD DECIMAL(12, 0), @STOP BIT, @NOTES NVARCHAR(100); DECLARE @ROLE_CDT VARCHAR(20), @DVDM_CDT VARCHAR(20), @LIMIT_VALUE_CDT VARCHAR(20

12
), @NOTES_CDT VARCHAR(20); DECLARE @PROCESS_ID VARCHAR(5),@DVDM_NAME NVARCHAR(20) DECLARE @BRANCH_PARENT VARCHAR(15) DECLARE @SUB_PROCESS VARCHAR(50) DECLARE @DATA_DVDM TABLE ( DVDM_ID VARCHAR(20), TOTAL_AMT DECIMAL(12, 0), IS_GDK BIT, I

13
S_PTGD BIT ); --UPDATE dbo.PL_REQUEST_COSTCENTER --SET DVMD_ID=(SELECT DVDM_ID FROM dbo.PL_COSTCENTER WHERE PL_COSTCENTER.COST_ID=PL_REQUEST_COSTCENTER.COST_ID), --TOTAL_AMT_GD=(SELECT SUM(PM.TOTAL_AMT) AS AMT FROM --(SELECT PLAN_ID,GOODS_ID,TOTAL_AMT FR

14
OM dbo.PL_REQUEST_DOC_DT WHERE REQDT_TYPE='I' AND REQ_ID=@p_REQ_ID) PR --LEFT JOIN dbo.PL_MASTER PM ON PR.PLAN_ID=PM.PLAN_ID --WHERE PM.COST_ID=PL_REQUEST_COSTCENTER.COST_ID) --WHERE REQ_ID=@p_REQ_ID INSERT INTO @DATA_DVDM SELECT KHOI_ID, SUM(TOTA

15
L_AMT) AS TOTAL_AMT,DM.IS_GDK,DM.IS_PTGD FROM dbo.PL_REQUEST_DOC_DT DT LEFT JOIN CM_DVDM DM ON DM.DVDM_ID=DT.KHOI_ID AND DM.IS_KHOI=1 WHERE REQ_ID = @p_REQ_ID AND DT.KHOI_ID IS NOT NULL AND DT.KHOI_ID <>'' GROUP BY KHOI_ID,DM.IS_GDK,DM.IS_PTGD; SET

16
@DVDM_CDT = (SELECT DVDM_ID FROM dbo.TL_SYSROLE_LIMIT WHERE LIMIT_TYPE='CDT') DECLARE @IS_SPECIAL BIT SET @IS_SPECIAL=0 IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_DOC_DT WHERE DVDM_ID='DM0000000000004' AND REQ_ID = @p_REQ_ID)) SET @IS_SPECIAL=1 DELETE

17
FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID; DECLARE @BRANCH_ID VARCHAR(20), @DEP_ID VARCHAR(20),@BRANCH_CREATE VARCHAR(20) ,@DEP_CREATE VARCHAR(20),@BRANCH_TYPE VARCHAR(10), @BRANCH_CREATE_TYPE VARCHAR(10) SELECT @BRANCH_ID =BRANCH_ID,@DE

18
P_ID=DEP_ID,@BRANCH_CREATE=BRANCH_CREATE,@DEP_CREATE=DEP_CREATE FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID SET @BRANCH_TYPE=(SELECT TOP 1 BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_ID) SET @BRANCH_CREATE_TYPE=(SELECT TOP 1 BRANCH_TYPE

19
FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE) --IF(@BRANCH_TYPE='PGD') -- SET @BRANCH_ID=(SELECT TOP 1 FATHER_ID FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_ID) -- KIEM TRA XEM CO CAP PHE DUYET TRUNG GIAN HAY KHONG 20 05 2020 IF(EXISTS(S

20
ELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND SIGN_USER =@p_CHECKER_ID AND PROCESS_ID ='SIGN')) BEGIN DELETE FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, AP

21
PROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_REQ_ID, -- REQ_ID - varchar(15) 'SIGN', -- PROCESS_ID - varchar(10) @p_CHECKER_ID, -- CHECKER_ID - varchar(15) CONVERT(DATETIME,@p_APPROVE_DT,103) , -- APPROVE_DT - dateti

22
me --N'C?p ph? duy?t trung gian x?c nh?n t? tr?nh ch? tr??ng', @p_PROCESS_DESC,--- LUCTV 2022816: THAY N?I DUNG M?C ?NH B?NG N?I DUNG B?T PH? N'C?p ph? duy?t trung gian' ) --- DUA CAP PHE DUYET TRUONG DON VI INSERT INTO dbo.PL_REQUEST_PR

23
OCESS ( REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID, DEP_ID, CHECKER_ID, APPROVE_DT, PARENT_PROCESS_ID, IS_LEAF, COST_ID, DVDM_ID, NOTES, IS_HAS_CHILD ) VALUES (

24
@p_REQ_ID, -- REQ_ID - varchar(15) 'APPNEW', -- PROCESS_ID - varchar(10) 'C', -- STATUS - varchar(5) 'GDDV', -- ROLE_USER - varchar(50) --@BRANCH_CREATE, @BRANCH_ID, @DEP_ID, -- BRANCH_ID

25
- varchar(15) '', -- CHECKER_ID - varchar(15) NULL, -- APPROVE_DT - datetime '', -- PARENT_PROCESS_ID - varchar(10) 'N', -- IS_LEAF - varchar(1) '', -- COST_ID - varchar(15) '', -

26
- DVDM_ID - varchar(15) N'Ch? tr??ng ?n v? ph? duy?t', -- NOTES - nvarchar(500) NULL -- IS_HAS_CHILD - bit ) --- UPDATE PROCESS_ID VE APP_NEW UPDATE PL_REQUEST_DOC SET PROCESS_ID ='APPNEW' WHERE REQ_ID =@p_REQ_ID END ELSE

27
BEGIN -- NGUOC LAI LA GIAM DOC DON VI PHE DUYET IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND SIGN_USER IS NOT NULL AND SIGN_USER <> '')) BEGIN IF(NOT EXISTS (SELECT * FROM PL_PROCESS WHERE PROCESS_ID='SIGN' AND REQ_ID =@p_REQ

28
_ID)) BEGIN ROLLBACK TRANSACTION SELECT '-1' Result, N'T? tr?nh ch? tr??ng s?: '+(SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID) +N' ang ?i c?p ph? duy?t trung gian x?c nh?n. Vui l?ng ?i nh?n vi?n '+(SELECT SIGN_USER FROM PL_REQ

29
UEST_DOC WHERE REQ_ID =@p_REQ_ID)+' x?c nh?n phi?u!' ErrorDesc RETURN '-1' END IF(@p_CHECKER_ID = (SELECT SIGN_USER FROM PL_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID)) BEGIN ROLLBACK TRANSACTION SELECT '-1' Result, N'T? tr?nh ch? tr??ng s?:

30
'+(SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID) +N' ang ?i tr??ng ?n v? ph? duy?t. B?n kh?ng c? th?m quy?n ph? duy?t c?p tr??ng ?n v?! Vui l?ng xem l?ch s? x? l? phi?u' ErrorDesc RETURN '-1' END END INSERT INTO dbo.PL_REQUES

31
T_PROCESS ( REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID, DEP_ID, CHECKER_ID, APPROVE_DT, PARENT_PROCESS_ID, IS_LEAF, NOTES ) VALUES ( @p_REQ_ID, -- REQ_ID - varchar(15) 'APPNEW',

32
-- PROCESS_ID - varchar(10) 'P', -- STATUS - varchar(5) 'GDDV', -- ROLE_USER - varchar(50) @BRANCH_ID , @DEP_ID, -- BRANCH_ID - varchar(15) @p_CHECKER_ID, -- CHE

33
CKER_ID - varchar(15) GETDATE() , -- APPROVE_DT - datetime NULL, 'N', N'Tr??ng ?n v? ph? duy?t'); SET @STEP_PARENT = 'APPNEW'; UPDATE prdd SET prdd.AMT_APP = ISNULL(PL.AMT_APP,0), prdd.AMT_EXE = ISNULL(PL.AMT_EXE,0), prdd.AMT_ETM

34
= ISNULL(PL.AMT_ETM,0), prdd.AMT_TF = ISNULL(PL.AMT_TF,0), prdd.AMT_RECEIVE_TF = ISNULL(PL.AMT_RECEIVE_TF,0), prdd.AMT_ETM_TMP = (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0) FROM dbo.PL_REQUEST_DOC_DT DDT LEFT JOIN dbo.PL_REQUEST_DOC DOC

35
ON DDT.REQ_ID = DOC.REQ_ID WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE','SETTLMENT') AND DDT.TRADE_ID = PL.TRADE_ID AND DOC.REQ_ID <> prdd.REQ_ID) + (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0) FROM dbo.PL

36
_REQUEST_TRANSFER DDT LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_DOC_ID = DOC.REQ_ID WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE','SETTLMENT') AND DDT.FR_TRADE_ID = PL.TRADE_ID AND DOC.REQ_ID <> @p_REQ_ID)

37
FROM PL_TRADEDETAIL PL LEFT JOIN PL_REQUEST_DOC_DT prdd ON PL.TRADE_ID = prdd.TRADE_ID WHERE prdd.REQ_ID=@P_REQ_ID UPDATE prdd SET prdd.FR_AMT_APP = ISNULL(PL.AMT_APP,0), prdd.FR_AMT_EXE = ISNULL(PL.AMT_EXE,0), prdd.FR_AMT_ETM

38
= ISNULL(PL.AMT_ETM,0), prdd.FR_AMT_TF = ISNULL(PL.AMT_TF,0), prdd.FR_AMT_RECEIVE_TF = ISNULL(PL.AMT_RECEIVE_TF,0), prdd.FR_AMT_ETM_TMP = (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0) FROM dbo.PL_REQUEST_DOC_DT DDT LEFT JOIN dbo.PL_REQUEST_

39
DOC DOC ON DDT.REQ_ID = DOC.REQ_ID WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE','SETTLMENT') AND DDT.TRADE_ID = PL.TRADE_ID AND DOC.REQ_ID <> prdd.REQ_DOC_ID) + (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0)

40
FROM dbo.PL_REQUEST_TRANSFER DDT LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_DOC_ID = DOC.REQ_ID WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE','SETTLMENT') AND DDT.FR_TRADE_ID = PL.TRADE_ID AND DOC.REQ_ID <> p

41
rdd.REQ_DOC_ID) FROM PL_TRADEDETAIL PL LEFT JOIN PL_REQUEST_TRANSFER prdd ON PL.TRADE_ID = prdd.FR_TRADE_ID WHERE prdd.REQ_DOC_ID=@P_REQ_ID UPDATE prdd SET prdd.TO_AMT_APP = ISNULL(PL.AMT_APP,0), prdd.TO_AMT_EXE = ISNULL(PL.AMT_E

42
XE,0), prdd.TO_AMT_ETM = ISNULL(PL.AMT_ETM,0), prdd.TO_AMT_TF = ISNULL(PL.AMT_TF,0), prdd.TO_AMT_RECEIVE_TF = ISNULL(PL.AMT_RECEIVE_TF,0), prdd.TO_AMT_ETM_TMP = (SELECT ISNULL(SUM(DDT.TOTAL_AMT),0) FROM dbo.PL_REQUEST_DOC_DT DDT

43
LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_ID = DOC.REQ_ID WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE','SETTLMENT') AND DDT.TRADE_ID = PL.TRADE_ID AND DOC.REQ_ID <> prdd.REQ_DOC_ID) + (SELECT ISNULL(

44
SUM(DDT.TOTAL_AMT),0) FROM dbo.PL_REQUEST_TRANSFER DDT LEFT JOIN dbo.PL_REQUEST_DOC DOC ON DDT.REQ_DOC_ID = DOC.REQ_ID WHERE DOC.PROCESS_ID NOT IN ('','SIGN','APPNEW','REJECT','APPROVE','SETTLMENT') AND DDT.FR_TRADE_ID = PL.TRADE_I

45
D AND DOC.REQ_ID <> prdd.REQ_DOC_ID) FROM PL_TRADEDETAIL PL LEFT JOIN PL_REQUEST_TRANSFER prdd ON PL.TRADE_ID = prdd.TO_TRADE_ID WHERE prdd.REQ_DOC_ID=@P_REQ_ID -- N?u kh?ng ph?i t? tr?nh c? ch?n cn c? IF(NOT EXISTS(SELECT * FRO

46
M dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID AND PL_BASED_ID IS NOT NULL AND PL_BASED_ID <>'')) BEGIN DECLARE @ROLE_KT VARCHAR(20), @DVDM_KT VARCHAR(20),@NOTES_KT NVARCHAR(500),@LIMIT_VALUE_KT DECIMAL(18,2),@TOTAL_AMT_PARENT DECIMAL(18,2) SET @ROLE_

47
KT=(SELECT ROLE_ID FROM dbo.TL_SYSROLE_LIMIT WHERE LIMIT_TYPE='KT') SET @LIMIT_VALUE_KT=(SELECT LIMIT_VALUE FROM dbo.TL_SYSROLE_LIMIT WHERE LIMIT_TYPE = 'KT') SET @DVDM_KT=(SELECT DVDM_ID FROM dbo.TL_SYSROLE_LIMIT WHERE LIMIT_TYPE='KT') SET @NOTES_K

48
T = (SELECT CONTENT FROM dbo.CM_ALLCODE WHERE CDVAL='KT' AND CDNAME='PROCESS_ID' AND CDTYPE='REQ') SET @TOTAL_AMT_PARENT = (SELECT SUM(ISNULL(TOTAL_AMT, 0)) AS TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID = (SELECT REQ_PARENT_ID FROM dbo.PL_R

49
EQUEST_DOC WHERE REQ_ID = @p_REQ_ID)) --SET @TOTAL_AMT_PARENT = (SELECT SUM(ISNULL(CASE WHEN G.MONTHLY_ALLOCATED = '1' THEN (PRDT.PRICE*PRDT.EXCHANGE_RATE)+(PRDT.TAXES*PRDT.EXCHANGE_RATE) ELSE PRDT.TOTAL_AMT END, 0)) AS TOTAL_AMT -- FROM dbo.PL_REQUES

50
T_DOC_DT PRDT -- LEFT JOIN dbo.CM_GOODS G ON G.GD_ID = PRDT.GOODS_ID -- WHERE REQ_ID = (SELECT REQ_PARENT_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID = @p_REQ_ID)) -- K? to?n IF(NOT EXISTS(SELECT TOP 1 ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_RE

51
Q_ID AND ROLE_USER=@ROLE_KT AND ( DVDM_ID=@DVDM_KT OR @DVDM_KT IN ((SELECT PC.DVDM_ID FROM dbo.PL_COSTCENTER PC LEFT JOIN dbo.PL_COSTCENTER_DT PCD ON PCD.COST_ID = PC.COST_ID WHERE PCD.BRANCH_ID=PL_REQUEST_PROCESS.BRANCH_ID AND PCD.DEP_ID=PL_REQU

52
EST_PROCESS.DEP_ID)) ) )) BEGIN -- Ki?m tra n?u h?n m?c >10 tri?u ?ng th? m?i qua ph?ng k? to?n SET @TOTAL_AMT = (SELECT SUM(TOTAL_AMT) AS TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID = @p_REQ_ID) + ISNULL(@TOTAL_AMT_PAREN

53
T,0) --SET @TOTAL_AMT = (SELECT SUM(CASE WHEN G.MONTHLY_ALLOCATED = '1' THEN (PRDT.PRICE*PRDT.EXCHANGE_RATE)+(PRDT.TAXES*PRDT.EXCHANGE_RATE) ELSE PRDT.TOTAL_AMT END) AS TOTAL_AMT -- FROM dbo.PL_REQUEST_DOC_DT PRDT -- LEFT JOIN dbo.CM_GOODS

54
G ON G.GD_ID = PRDT.GOODS_ID -- WHERE REQ_ID = @p_REQ_ID) + ISNULL(@TOTAL_AMT_PARENT,0) IF (ISNULL(@LIMIT_VALUE_KT,10000000)<@TOTAL_AMT OR EXISTS(SELECT * FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID = @p_REQ_ID)) BEGIN SET @SUB

55
_PROCESS = '' IF (EXISTS(SELECT * FROM PL_REQUEST_COSTCENTER prc WHERE prc.REQ_ID = @p_REQ_ID AND prc.COST_ID = 'DM0000000000006') AND EXISTS(SELECT * FROM PL_REQUEST_TRANSFER prt WHERE prt.REQ_DOC_ID = @p_REQ_ID AND prt.FR_BRN_ID = 'D

56
V0001' AND prt.FR_DEP_ID = 'DEP000000000022' AND prt.FR_BRN_ID <> @BRANCH_CREATE)) BEGIN SET @SUB_PROCESS = 'DVCM/DVDC' END ELSE IF (EXISTS(SELECT * FROM PL_REQUEST_COSTCENTER prc WHERE prc.REQ_ID = @p_REQ_ID AND

57
prc.COST_ID = 'DM0000000000006')) BEGIN SET @SUB_PROCESS = 'DVCM' END ELSE IF (EXISTS(SELECT * FROM PL_REQUEST_TRANSFER prt WHERE prt.REQ_DOC_ID = @p_REQ_ID AND prt.FR_BRN_ID = 'DV0001' AND prt.FR_DEP_ID = 'DEP000

58
000000022' AND prt.FR_BRN_ID <> @BRANCH_CREATE)) BEGIN SET @SUB_PROCESS = 'DVDC' END INSERT INTO dbo.PL_REQUEST_PROCESS ( REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID,

59
CHECKER_ID, APPROVE_DT, PARENT_PROCESS_ID, IS_LEAF, COST_ID, DVDM_ID, NOTES, IS_HAS_CHILD, SUB_PROCESS_ID ) VALUES ( @p_REQ_ID, -- REQ_ID - varchar(15) 'KT'

60
, -- PROCESS_ID - varchar(10) 'U', -- STATUS - varchar(5) @ROLE_KT, -- ROLE_USER - varchar(50) '', -- BRANCH_ID - varchar(15) '', -- CHECKER_ID - varchar(15) NULL, -- APPR

61
OVE_DT - datetime @STEP_PARENT, -- PARENT_PROCESS_ID - varchar(10) 'N', -- IS_LEAF - varchar(1) '', -- COST_ID - varchar(15) @DVDM_KT, N'Ch? ph?ng k? to?n x?c nh?n', 1, -- DVDM_ID - varchar(15)

62
@SUB_PROCESS); SET @STEP_PARENT='KT' END END --- LUCTV 2022812: NEU TO TRINH DIEU CHUYEN <=20 TRIEU THI KHONG DI QUA DVDM_DC NGAN SACH DECLARE @TOTAL_AMT_TRANSFER DECIMAL(18,0) SET @TOTAL_AMT_TRANSFER =(SELECT SUM(TOTAL_AMT) AS

63
TOTAL_AMT FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID = @p_REQ_ID) ---END LUCTV -- C? DVCM IF (EXISTS(SELECT REQ_COST_ID FROM dbo.PL_REQUEST_COSTCENTER WHERE REQ_ID = @p_REQ_ID)) BEGIN DECLARE lstCostCenter CURSOR FOR SELECT COST_ID FR

64
OM dbo.PL_REQUEST_COSTCENTER PRC WHERE REQ_ID = @p_REQ_ID AND COST_ID IS NOT NULL AND COST_ID <> '' AND ((@TOTAL_AMT_TRANSFER > 20000000 AND PRC.COST_ID <> 'DM0000000000048') OR @TOTAL_AMT_TRANSFER <= 20000000) AND ((EXISTS(SELECT ID FR

65
OM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = 'KT') AND PRC.COST_ID <> 'DM0000000000006') OR NOT EXISTS(SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = 'KT')) AND NOT EXISTS(SELECT REQ_TRANSF

66
ER_ID FROM dbo.PL_REQUEST_TRANSFER A LEFT JOIN PL_COSTCENTER_DT pcd ON A.FR_BRN_ID = pcd.BRANCH_ID AND A.FR_DEP_ID = pcd.DEP_ID LEFT JOIN PL_COSTCENTER pc ON pcd.COST_ID = pc.COST_ID WHERE REQ_DOC_ID = @p_REQ_ID AND pc.DVDM_ID =

67
PRC.COST_ID AND ((A.FR_BRN_ID <> 'DV0001' AND A.FR_BRN_ID <> @BRANCH_CREATE) OR (A.FR_BRN_ID = 'DV0001' AND A.FR_DEP_ID <> @DEP_CREATE))); OPEN lstCostCenter; FETCH NEXT FROM lstCostCenter INTO @COST_ID; WHILE @@FETCH_STATUS = 0 BEGIN I

68
F(NOT EXISTS(SELECT TOP 1 ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND (ROLE_USER='GDDV' OR ROLE_USER IN (SELECT ROLE_OLD FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_NEW='GDDV') )AND ( DVDM_ID=@COST_ID OR @COST_ID IN ((SELECT PC.DVDM_ID FROM dbo

69
.PL_COSTCENTER PC LEFT JOIN dbo.PL_COSTCENTER_DT PCD ON PCD.COST_ID = PC.COST_ID WHERE PCD.BRANCH_ID=PL_REQUEST_PROCESS.BRANCH_ID AND PCD.DEP_ID=PL_REQUEST_PROCESS.DEP_ID))))) BEGIN INSERT INTO dbo.PL_REQUEST_PROCESS ( REQ_ID,

70
PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID, CHECKER_ID, APPROVE_DT, PARENT_PROCESS_ID, IS_LEAF, COST_ID, DVDM_ID, NOTES, IS_HAS_CHILD ) VALUES ( @p_REQ_ID, -- REQ_ID - varchar(15)

71
'DVCM', -- PROCESS_ID - varchar(10) 'U', -- STATUS - varchar(5) 'GDDV', -- ROLE_USER - varchar(50) '', -- BRANCH_ID - varchar(15) '', -- CHECKER_ID - varchar(15) NULL, -- APPROVE_

72
DT - datetime @STEP_PARENT, -- PARENT_PROCESS_ID - varchar(10) 'N', -- IS_LEAF - varchar(1) '', -- COST_ID - varchar(15) @COST_ID, N'Ch? ?n v? chuy?n m?n x?c nh?n', 1 -- DVDM_ID - varchar(15) ); END

73
ELSE BEGIN UPDATE PL_REQUEST_COSTCENTER SET AUTH_STATUS ='A',NOTES=N'?ng ?' WHERE 1= 1 AND REQ_ID=@p_REQ_ID AND COST_ID=@COST_ID END FETCH NEXT FROM lstCostCenter INTO @COST_ID; END; CLOSE lstCostCenter; DEALLOCAT

74
E lstCostCenter; IF(EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='DVCM')) SET @STEP_PARENT = 'DVCM'; END; SET @TOTAL_AMT =(SELECT SUM(TOTAL_AMT) AS TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID = @p_RE

75
Q_ID); --C? i?u chuy?n NS IF (EXISTS(SELECT REQ_TRANSFER_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID = @p_REQ_ID)) BEGIN IF (EXISTS(SELECT FR_BRN_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID = @p_REQ_ID AND((FR_BRN_ID <> 'DV0001' A

76
ND FR_BRN_ID <> @BRANCH_CREATE) OR (FR_BRN_ID = 'DV0001' AND FR_DEP_ID <> @DEP_CREATE)) --AND NOT EXISTS(SELECT * FROM dbo.PL_ROLE_DATA_CONFIG WHERE ROLE_TYPE='TRADE_USER_ALL' AND BRANCH_ID=FR_BRN_ID AND DEP_ID=FR_DEP_ID) )) BEGIN D

77
ECLARE lstTransfer CURSOR FOR SELECT FR_BRN_ID,FR_DEP_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) --AND NOT EXISTS(SELECT * FROM dbo.PL_ROLE_DATA_CONFIG WHERE ROLE_

78
TYPE='TRADE_USER_ALL' AND BRANCH_ID=FR_BRN_ID AND DEP_ID=FR_DEP_ID) -- AND NOT EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND (ROLE_USER='GDDV' OR ROLE_USER=@ROLE_KT) AND DVDM_ID IN ((SELECT PC.DVDM_ID FROM dbo.PL_COSTCENTER PC

79
-- LEFT JOIN dbo.PL_COSTCENTER_DT PCD ON PCD.COST_ID = PC.COST_ID -- WHERE PCD.BRANCH_ID=FR_BRN_ID AND PCD.DEP_ID=FR_DEP_ID))) GROUP BY FR_BRN_ID, FR_DEP_ID HAVING ((FR_BRN_ID = 'DV0001' AND ((EXISTS(SELECT ID FROM PL_RE

80
QUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = 'KT') AND FR_DEP_ID <> 'DEP000000000022') OR NOT EXISTS(SELECT ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = 'KT')) AND ((@TOTAL_AMT_TRANSFER > 20000000 AND F

81
R_DEP_ID <> 'DEP000000000023') OR (@TOTAL_AMT_TRANSFER <= 20000000))) OR FR_BRN_ID <> 'DV0001') OPEN lstTransfer; FETCH NEXT FROM lstTransfer INTO @FR_BRANCH_ID, @FR_DEP_ID; WHILE @@FETCH_STATUS = 0 BEGIN IF(NOT EXISTS(SE

82
LECT * FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND (ROLE_USER='GDDV' OR ROLE_USER=@ROLE_KT) AND DVDM_ID IN ((SELECT PC.DVDM_ID FROM dbo.PL_COSTCENTER PC LEFT JOIN dbo.PL_COSTCENTER_DT PCD ON PCD.COST_ID = PC.COST_ID WHERE PCD.BRANCH

83
_ID=@FR_BRANCH_ID AND PCD.DEP_ID=@FR_DEP_ID)))) BEGIN SET @SUB_PROCESS = '' IF (EXISTS(SELECT * FROM PL_REQUEST_COSTCENTER A LEFT JOIN PL_COSTCENTER pc ON A.COST_ID = pc.DVDM_ID LEFT JOIN PL_COSTCENTER_DT pcd1 ON pc

84
.COST_ID = pcd1.COST_ID WHERE A.REQ_ID = @p_REQ_ID AND pcd1.BRANCH_ID = @FR_BRANCH_ID AND pcd1.DEP_ID = @FR_DEP_ID)) BEGIN SET @SUB_PROCESS = 'DVCM' END INSERT INTO dbo.PL_REQUEST_PROCESS ( REQ_ID, PROCE

85
SS_ID, STATUS, ROLE_USER, BRANCH_ID, CHECKER_ID, APPROVE_DT, PARENT_PROCESS_ID, IS_LEAF, COST_ID, DVDM_ID, NOTES, IS_HAS_CHILD, DEP_ID, SUB_PROCESS_ID ) VALUES ( @p_REQ_ID

86
, -- REQ_ID - varchar(15) 'DVDC', -- PROCESS_ID - varchar(10) 'U', -- STATUS - varchar(5) 'GDDV', -- ROLE_USER - varchar(50) @FR_BRANCH_ID, -- BRANCH_ID - varchar(15) '', -- CHECKER_ID - varc

87
har(15) NULL, -- APPROVE_DT - datetime @STEP_PARENT, -- PARENT_PROCESS_ID - varchar(10) 'N', -- IS_LEAF - varchar(1) '', -- COST_ID - varchar(15) '', -- DVDM_ID - varchar(15) N'Ch? ?

88
n v? i?u chuy?n x?c nh?n', 1, @FR_DEP_ID, @SUB_PROCESS); END -- ELSE -- BEGIN -- UPDATE PL_REQUEST_PROCESS SET SUB_PROCESS_ID = 'DVDC' WHERE REQ_ID = @p_REQ_ID AND (ROLE_USER='GDDV' OR ROLE_USER=@ROLE_KT) AND DVDM

89
_ID IN ((SELECT PC.DVDM_ID FROM dbo.PL_COSTCENTER PC -- LEFT JOIN dbo.PL_COSTCENTER_DT PCD ON PCD.COST_ID = PC.COST_ID -- WHERE PCD.BRANCH_ID=@FR_BRANCH_ID AND PCD.DEP_ID=@FR_DEP_ID)) -- END FETCH NEXT FROM lstTransfer INTO @F

90
R_BRANCH_ID, @FR_DEP_ID; END; CLOSE lstTransfer; DEALLOCATE lstTransfer; IF(EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='DVDC')) SET @STEP_PARENT = 'DVDC'; END; -- ?u m?i nh?n DECLARE @

91
TABLE_TRANFER TABLE ( TRADE_ID VARCHAR(20), TOTAL_TRANFER DECIMAL(18,2) ) DECLARE @TABLE_TRANFER_APP TABLE ( TRADE_ID VARCHAR(20), TOTAL_APP DECIMAL(18,2) ) DECLARE @LIMIT_MAX DECIMAL(18,2),@LIMIT_APP DECIMAL(18,2),@IS_NOIBO BIT,@BRAN

92
CH_TRANFER VARCHAR(15),@DEP_TRANFER VARCHAR(15),@OVER_LIMT BIT IF(EXISTS(SELECT REQ_TRANSFER_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID AND TO_BRN_ID <> FR_BRN_ID OR ISNULL(TO_DEP_ID,'') <> ISNULL(FR_DEP_ID,'')) ) BEGIN SET @IS_NO

93
IBO=0 END ELSE SET @IS_NOIBO=1 IF(@IS_NOIBO=1) BEGIN SET @BRANCH_TRANFER=(SELECT TOP 1 FR_BRN_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID) SET @DEP_TRANFER =(SELECT TOP 1 FR_BRN_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_

94
DOC_ID=@p_REQ_ID) INSERT INTO @TABLE_TRANFER ( TRADE_ID, TOTAL_TRANFER ) SELECT FR_TRADE_ID,SUM(TOTAL_AMT) FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID GROUP BY FR_BRN_ID,FR_DEP_ID,FR_TRADE_ID --- H?n m?c ph? duy?

95
t SET @LIMIT_MAX=(SELECT LIMIT_VALUE FROM dbo.TL_SYSROLE_LIMIT WHERE ROLE_ID='GDDV' AND LIMIT_TYPE='LIMIT_DCNS') ---- T?nh liy k? ph? duy?t INSERT INTO @TABLE_TRANFER_APP ( TRADE_ID, TOTAL_APP ) SELECT FR_TRADE_ID,SUM(TOTAL_AMT) AS

96
TOTAL_APP FROM dbo.PL_REQUEST_TRANSFER WHERE TOTAL_AMT <= @LIMIT_MAX AND FR_BRN_ID=TO_BRN_ID AND ISNULL(TO_DEP_ID,'') = ISNULL(FR_DEP_ID,'') AND REQ_DOC_ID IN ( SELECT REQ_ID FROM dbo.PL_REQUEST_PROCESS WHERE BRANCH_ID=@BRANCH_TRANFER AND DEP_ID=@DE

97
P_TRANFER AND PROCESS_ID='APPNEW' AND STATUS='P' ) GROUP BY FR_TRADE_ID IF(EXISTS( SELECT BT.TRADE_ID FROM @TABLE_TRANFER BT LEFT JOIN @TABLE_TRANFER_APP BTA ON BTA.TRADE_ID = BT.TRADE_ID WHERE ISNULL(BT.TOTAL_TRANFER,0) + ISNULL(BTA.TOTAL

98
_APP,0) > @LIMIT_MAX )) BEGIN SET @OVER_LIMT=1 END ELSE SET @OVER_LIMT =0 END IF(@IS_NOIBO =0 OR @OVER_LIMT=1) BEGIN DECLARE lstTransfer CURSOR FOR SELECT TO_DVDM_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID = @p_REQ_

99
ID AND TO_DVDM_ID IS NOT NULL AND TO_DVDM_ID <>'' AND TO_DVDM_ID <>'DM0000000000048' AND ( (TO_DVDM_ID ='DM0000000000003' AND ISNULL(@TOTAL_AMT_TRANSFER,0) >=10000000) OR TO_DVDM_ID <> 'DM0000000000003')--- LUCTV 2022812: NEU TO TRINH DIEU CHUYEN

100
<=20 TRIEU THI KHONG DI QUA DVDM_DC NGAN SACH GROUP BY TO_DVDM_ID; OPEN lstTransfer; FETCH NEXT FROM lstTransfer INTO @DVDM_ID; WHILE @@FETCH_STATUS = 0 BEGIN IF(NOT EXISTS(SELECT TOP 1 ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_

101
ID AND (ROLE_USER='GDDV' OR ROLE_USER IN (SELECT ROLE_OLD FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_NEW='GDDV') ) AND ( DVDM_ID=@DVDM_ID OR @DVDM_ID IN ((SELECT PC.DVDM_ID FROM dbo.PL_COSTCENTER PC LEFT JOIN dbo.PL_COSTCENTER_DT PCD ON PCD.COST_ID =

102
PC.COST_ID WHERE PCD.BRANCH_ID=PL_REQUEST_PROCESS.BRANCH_ID AND PCD.DEP_ID=PL_REQUEST_PROCESS.DEP_ID)) ) )) BEGIN INSERT INTO dbo.PL_REQUEST_PROCESS ( REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID, CHECKER_ID,

103
APPROVE_DT, PARENT_PROCESS_ID, IS_LEAF, COST_ID, DVDM_ID, NOTES, IS_HAS_CHILD ) VALUES ( @p_REQ_ID, -- REQ_ID - varchar(15) 'DVDM_DC', -- PROCESS_ID - varchar(10) 'U', -- STATUS - varchar(5) '

104
GDDV', -- ROLE_USER - varchar(50) '', -- BRANCH_ID - varchar(15) '', -- CHECKER_ID - varchar(15) NULL, -- APPROVE_DT - datetime @STEP_PARENT, -- PARENT_PROCESS_ID - varchar(10) 'N', -- IS_LEAF

105
- varchar(1) '', -- COST_ID - varchar(15) @DVDM_ID, -- DVDM_ID - varchar(15) N'Ch? ?n v? ?u m?i qu?n l? NS nh?n x?c nh?n', 1); END FETCH NEXT FROM lstTransfer INTO @DVDM_ID; END; CLOSE lstTransfer; DEALLOCATE ls

106
tTransfer; IF (EXISTS( SELECT FR_BRN_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID = @p_REQ_ID AND FR_BRN_ID <> @BRANCH_CREATE AND FR_DEP_ID <> @DEP_CREATE )) BEGIN -- ?u m?i cho DECLARE lstTransfer CURSOR

107
FOR SELECT FR_DVDM_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID = @p_REQ_ID AND FR_BRN_ID <> @BRANCH_CREATE AND FR_DEP_ID <> @DEP_CREATE AND FR_DVDM_ID IS NOT NULL AND FR_DVDM_ID <>'' AND NOT EXISTS ( SELECT * F

108
ROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = 'DVDM_DC' AND DVDM_ID = FR_DVDM_ID ) --- LUCTV 2022816 AND (FR_DVDM_ID <>'DM0000000000048' OR (FR_DVDM_ID ='DM0000000000003' AND ISNULL(@TOTAL_AMT_TRANS

109
FER,0) >=10000000))--- LUCTV 2022816: NEU TO TRINH DIEU CHUYEN <=20 TRIEU THI KHONG DI QUA DVDM_DC NGAN SACH GROUP BY FR_DVDM_ID; OPEN lstTransfer; FETCH NEXT FROM lstTransfer INTO @DVDM_ID; WHILE @@FETCH_STATUS = 0 BEGIN IF(NOT EXI

110
STS(SELECT TOP 1 ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND (ROLE_USER='GDDV' OR ROLE_USER IN (SELECT ROLE_OLD FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_NEW='GDDV') ) AND ( DVDM_ID=@DVDM_ID OR @DVDM_ID IN ((SELECT PC.DVDM_ID FROM dbo

111
.PL_COSTCENTER PC LEFT JOIN dbo.PL_COSTCENTER_DT PCD ON PCD.COST_ID = PC.COST_ID WHERE PCD.BRANCH_ID=PL_REQUEST_PROCESS.BRANCH_ID AND PCD.DEP_ID=PL_REQUEST_PROCESS.DEP_ID)) ) )) BEGIN INSERT INTO dbo.PL_REQUEST_PROCESS ( REQ_ID,

112
PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID, CHECKER_ID, APPROVE_DT, PARENT_PROCESS_ID, IS_LEAF, COST_ID, DVDM_ID, NOTES, IS_HAS_CHILD ) VALUES ( @p_REQ_ID, -- REQ_ID - varchar(15)

113
'DVDM_DC', -- PROCESS_ID - varchar(10) 'U', -- STATUS - varchar(5) 'GDDV', -- ROLE_USER - varchar(50) '', -- BRANCH_ID - varchar(15) '', -- CHECKER_ID - varchar(15) NULL, -- APPROVE_D

114
T - datetime @STEP_PARENT, -- PARENT_PROCESS_ID - varchar(10) 'N', -- IS_LEAF - varchar(1) '', -- COST_ID - varchar(15) @DVDM_ID, -- DVDM_ID - varchar(15) N'Ch? ?n v? ?u m?i x?c nh?n', 0); END FETCH

115
NEXT FROM lstTransfer INTO @DVDM_ID; END; CLOSE lstTransfer; DEALLOCATE lstTransfer; IF(EXISTS(SELECT TOP 1 ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='DVDM_DC')) SET @STEP_PARENT='DVDM_DC' END;

116
IF (@TOTAL_AMT_TRANSFER > 20000000) BEGIN SET @SUB_PROCESS = '' IF (EXISTS(SELECT * FROM PL_REQUEST_COSTCENTER prc WHERE prc.REQ_ID = @p_REQ_ID AND prc.COST_ID = 'DM0000000000048') AND EXISTS(SELECT * FROM PL_REQUEST_TRANSFER prt WHERE pr

117
t.REQ_DOC_ID = @p_REQ_ID AND prt.FR_BRN_ID = 'DV0001' AND prt.FR_DEP_ID = 'DEP000000000023' AND prt.FR_BRN_ID <> @BRANCH_CREATE)) BEGIN SET @SUB_PROCESS = 'DVCM/DVDC' END ELSE IF (EXISTS(SELECT * FROM PL_REQUEST_COSTCENTER prc WHERE prc.

118
REQ_ID = @p_REQ_ID AND prc.COST_ID = 'DM0000000000048')) BEGIN SET @SUB_PROCESS = 'DVCM' END ELSE IF (EXISTS(SELECT * FROM PL_REQUEST_TRANSFER prt WHERE prt.REQ_DOC_ID = @p_REQ_ID AND prt.FR_BRN_ID = 'DV0001' AND prt.FR_DEP_ID = 'DEP0000

119
00000023' AND prt.FR_BRN_ID <> @BRANCH_CREATE)) BEGIN SET @SUB_PROCESS = 'DVDC' END INSERT INTO dbo.PL_REQUEST_PROCESS ( REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID, CHECKER_ID, APPROVE_DT, PARENT_PROCESS_ID,

120
IS_LEAF, COST_ID, DVDM_ID, NOTES,IS_HAS_CHILD, SUB_PROCESS_ID ) VALUES ( @p_REQ_ID, -- REQ_ID - varchar(15) 'TC', -- PROCESS_ID - varchar(10) 'U', -- STATUS - varchar(5) 'TC', -- ROLE_USER -

121
varchar(50) '', -- BRANCH_ID - varchar(15) '', -- CHECKER_ID - varchar(15) NULL, -- APPROVE_DT - datetime @STEP_PARENT, -- PARENT_PROCESS_ID - varchar(10) 'N', -- IS_LEAF - varchar(1) '', --

122
COST_ID - varchar(15) '', -- DVDM_ID - varchar(15) N'Ch? ?n v? T?i ch?nh x?c nh?n',1, @SUB_PROCESS); SET @STEP_PARENT = 'TC'; END END END; --IF(NOT EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_RE

123
Q_ID AND ROLE_USER='GDDV' --AND (( -- BRANCH_ID=@BRANCH_CREATE -- AND ((DEP_ID =@DEP_CREATE) OR ((@DEP_CREATE IS NULL OR @DEP_CREATE='') -- AND (DEP_ID IS NULL OR DEP_ID=''))) -- ) -- OR EXISTS(SELECT PC.COST_ID FROM dbo.PL_COSTCENTER PC

124
-- 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) -- ) --)) --BEGIN --INSERT INTO dbo.PL_REQUEST_PROCESS -- ( -- REQ_ID, --

125
PROCESS_ID, -- STATUS, -- ROLE_USER, -- BRANCH_ID, -- DEP_ID, -- CHECKER_ID, -- APPROVE_DT, -- PARENT_PROCESS_ID, -- IS_LEAF, -- NOTES -- ) -- VALUES -- ( -- @p_REQ_ID, -- REQ_ID - varchar(15) --

126
'DVC', -- PROCESS_ID - varchar(10) -- 'U', -- STATUS - varchar(5) -- 'GDDV', -- ROLE_USER - varchar(50) -- @BRANCH_CREATE, -- @DEP_CREATE, -- BRANCH_ID - varchar(15)

127
-- NULL, -- CHECKER_ID - varchar(15) -- NULL , -- APPROVE_DT - datetime -- @STEP_PARENT, 'N', N'Ch? gi?m ?c Chi Nh?nh ph? duy?t'); --SET @STEP_CURR = 'DVC'; --SET @STEP_PARENT = 'DVC'; --END SET @IS_NEXT_CDT=(SELECT dbo.FN_CHE

128
CK_LIMIT_PL_REQ_CDT(@p_REQ_ID,'GDDV')) IF(EXISTS( SELECT * FROM PL_REQUEST_DOC_DT WHERE REQ_ID =@p_REQ_ID) OR @IS_NEXT_CDT=1) BEGIN SET @IS_NEXT = ( SELECT dbo.FN_CHECK_LIMIT_PL_REQ(@p_REQ_ID, 'GDDV') ); IF (@IS_NEXT = 1 OR @IS_NEXT_CDT=

129
1) BEGIN DECLARE lstCostCenter CURSOR FOR SELECT DVDM_ID, TOTAL_AMT FROM @DATA_DVDM WHERE IS_GDK=1; OPEN lstCostCenter; FETCH NEXT FROM lstCostCenter INTO @DVDM_ID, @TOTAL_AMT_GD; WHILE @@FETCH_STATUS = 0 BEGIN

130
INSERT INTO dbo.PL_REQUEST_PROCESS ( REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID, CHECKER_ID, APPROVE_DT, PARENT_PROCESS_ID, IS_LEAF, COST_ID, DVDM_ID, NOTES, IS_HAS_CHILD )

131
VALUES ( @p_REQ_ID, -- REQ_ID - varchar(15) 'GDK_TT', -- PROCESS_ID - varchar(10) 'U', -- STATUS - varchar(5) 'GDK',

132
-- ROLE_USER - varchar(50) '', -- BRANCH_ID - varchar(15) '', -- CHECKER_ID - varchar(15) NULL, -- A

133
PPROVE_DT - datetime @STEP_PARENT, -- PARENT_PROCESS_ID - varchar(10) 'N', -- IS_LEAF - varchar(1) '', -- COST_ID - varchar(15) @

134
DVDM_ID, N'Ch? Gi?m ?c kh?i ph? duy?t', 0 -- DVDM_ID - varchar(15) ); FETCH NEXT FROM lstCostCenter INTO @DVDM_ID, @TOTAL_AMT_GD; END; CLOSE lstCostCenter; DEALLOCATE lstCostCenter; IF(@IS_NEXT_CDT=1 AND NOT EXISTS(SELECT

135
ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND ROLE_USER='GDK' AND DVDM_ID=@DVDM_CDT)) BEGIN INSERT INTO dbo.PL_REQUEST_PROCESS ( REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID, CHECKER_ID, APPROV

136
E_DT, PARENT_PROCESS_ID, IS_LEAF, COST_ID, DVDM_ID, NOTES,IS_HAS_CHILD ) VALUES ( @p_REQ_ID, -- REQ_ID - varchar(15) 'GDK_TT', -- PROCESS_ID - varchar(10) 'U', -- STATUS - varchar(5)

137
'GDK', -- ROLE_USER - varchar(50) '', -- BRANCH_ID - varchar(15) '', -- CHECKER_ID - varchar(15) NULL, -- APPROVE_DT - datetime @STEP_PARENT, -- PARENT_PROCESS_ID - varchar(10) 'N', -- IS_LEAF

138
- varchar(1) '', -- COST_ID - varchar(15) @DVDM_CDT , N'Ch? Gi?m ?c kh?i ph? duy?t ch? ?nh th?u', 0 -- DVDM_ID - varchar(15) ) END SET @IS_NEXT = ( SELECT dbo.FN_CHECK_LIMIT_PL_REQ(@p_REQ_I

139
D, 'GDK') ); IF(EXISTS (SELECT DVDM_ID FROM @DATA_DVDM WHERE IS_GDK=0) AND (SELECT dbo.FN_CHECK_LIMIT_PL_REQ(@p_REQ_ID,'GDDV'))=1) BEGIN SET @IS_NEXT=1 END SET @IS_NEXT_CDT=(SELECT dbo.FN_CHECK_LIMIT_PL_REQ_CDT(@p_REQ_ID,'GDK'))

140
IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='GDK_TT')) BEGIN SET @STEP_PARENT='GDK_TT' END --UPDATE dbo.PL_REQUEST_PROCESS SET ROLE_USER='PTGD' WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='GDK_TT'

141
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) IF (@IS_NEXT = 1 OR @IS_NEXT_CDT =1) BEGIN IF( EXISTS (SELECT DVDM_ID FROM @DATA_DVDM WHERE IS_PTGD=1) ) BEGIN DECLARE

142
lstCostCenter CURSOR FOR SELECT DVDM_ID, TOTAL_AMT FROM @DATA_DVDM WHERE IS_PTGD=1 AND NOT EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND ROLE_USER='PTGD' AND PL_REQUEST_PROCESS.DVDM_ID=[@DATA_DVDM].DVDM_I

143
D) ; OPEN lstCostCenter; FETCH NEXT FROM lstCostCenter INTO @DVDM_ID, @TOTAL_AMT_GD; WHILE @@FETCH_STATUS = 0 BEGIN INSERT INTO dbo.PL_REQUEST_PROCESS ( REQ_ID, PROCESS_ID, STATUS, RO

144
LE_USER, BRANCH_ID, CHECKER_ID, APPROVE_DT, PARENT_PROCESS_ID, IS_LEAF, COST_ID, DVDM_ID, NOTES, IS_HAS_CHILD ) VALUES ( @p_REQ_ID,

145
-- REQ_ID - varchar(15) 'PTGDK_TT', -- PROCESS_ID - varchar(10) 'U', -- STATUS - varchar(5) 'PTGD', --

146
ROLE_USER - varchar(50) '', -- BRANCH_ID - varchar(15) '', -- CHECKER_ID - varchar(15) NULL,

147
-- APPROVE_DT - datetime @STEP_PARENT, -- PARENT_PROCESS_ID - varchar(10) 'N', -- IS_LEAF - varchar(1) '',

148
-- COST_ID - varchar(15) @DVDM_ID, N'Ch? ph? t?ng gi?m ?c kh?i ph? duy?t', 0 -- DVDM_ID - varchar(15) ); FETCH NEXT FROM lstCostCenter INTO @DVDM_ID, @TOTAL_AMT_GD; END; CLOSE lstCostCenter; DEA

149
LLOCATE lstCostCenter; SET @IS_NEXT = ( SELECT dbo.FN_CHECK_LIMIT_PL_REQ(@p_REQ_ID, 'PTGD') ); END IF(@IS_SPECIAL=1 AND NOT EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='PTGDK_TT' AND

150
DVDM_ID='DM0000000000014')) BEGIN INSERT INTO dbo.PL_REQUEST_PROCESS ( REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID, CHECKER_ID, APPROVE_DT, PARENT_PROCESS_ID, IS_LEAF, COST_ID,

151
DVDM_ID, NOTES, IS_HAS_CHILD ) VALUES ( @p_REQ_ID, -- REQ_ID - varchar(15) 'PTGDK_TT', -- PROCESS_ID - varchar(10) 'U',

152
-- STATUS - varchar(5) 'PTGD', -- ROLE_USER - varchar(50) '', -- BRANCH_ID - varchar(15) '',

153
-- CHECKER_ID - varchar(15) NULL, -- APPROVE_DT - datetime @STEP_PARENT, -- PARENT_PROCESS_ID - varchar(10) 'N',

154
-- IS_LEAF - varchar(1) '', -- COST_ID - varchar(15) 'DM0000000000014', N'Ch? Ph? t?ng gi?m ?c kh?i ph? duy?t', 0 -- DVDM_ID - varchar(15) );

155
END IF(@IS_NEXT_CDT=1 AND NOT EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND ROLE_USER='PTGD' AND DVDM_ID=@DVDM_CDT) AND EXISTS(SELECT DVDM_ID FROM CM_DVDM WHERE DVDM_ID =@DVDM_CDT AND IS_PTGD =1) ) -- 19.10.2022 LUCTV

156
FIX BO SUNG THEM DIEU KIEN NEU KHOI DO CO PTGD THI MOI ADD PTGD VAO TO TRINH BEGIN INSERT INTO dbo.PL_REQUEST_PROCESS ( REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID,

157
CHECKER_ID, APPROVE_DT, PARENT_PROCESS_ID, IS_LEAF, COST_ID, DVDM_ID, NOTES,IS_HAS_CHILD ) VALUES ( @p_REQ_ID, -- REQ_ID - varchar(15) 'PTGDK_TT',

158
-- PROCESS_ID - varchar(10) 'U', -- STATUS - varchar(5) 'PTGD', -- ROLE_USER - varchar(50) '', -- BRANCH_ID - varchar(15) '', -- CHECKER_ID - varchar(15) NULL, -- APPROVE

159
_DT - datetime @STEP_PARENT, -- PARENT_PROCESS_ID - varchar(10) 'N', -- IS_LEAF - varchar(1) '', -- COST_ID - varchar(15) @DVDM_CDT , N'Ch? Ph? T?ng gi?m ?c kh?i ph? duy?t',

160
0 -- DVDM_ID - varchar(15) ) END SET @IS_NEXT_CDT=(SELECT dbo.FN_CHECK_LIMIT_PL_REQ_CDT(@p_REQ_ID,'PTGD')) IF(EXISTS (SELECT DVDM_ID FROM @DATA_DVDM WHERE IS_PTGD=0 ) AND @IS_SPECIAL <> 1 AND (SELECT dbo.FN_CHECK_LIMIT_PL_REQ

161
(@p_REQ_ID,'GDK'))=1) BEGIN SET @IS_NEXT=1 END IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='PTGDK_TT')) BEGIN SET @STEP_PARENT='PTGDK_TT' END IF (@IS_NEXT = 1 OR @IS_NEXT_CDT=1)

162
BEGIN ---- THEM THU KI TGD INSERT INTO dbo.PL_REQUEST_PROCESS ( REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID, CHECKER_ID, APPROVE_DT, PARENT_PROCESS_ID, IS_LEAF, COST_ID,

163
DVDM_ID, NOTES, IS_HAS_CHILD ) VALUES ( @p_REQ_ID, -- REQ_ID - varchar(15) 'TKTGD', -- PROCESS_ID - varchar(10) 'U', -- S

164
TATUS - varchar(5) 'TKTGD', -- ROLE_USER - varchar(50) '', -- BRANCH_ID - varchar(15) '', -- CHECKER_ID - varchar(15) NULL,

165
-- APPROVE_DT - datetime @STEP_PARENT, -- PARENT_PROCESS_ID - varchar(10) 'N', -- IS_LEAF - varchar(1) '', -- COST_ID - varchar(1

166
5) '', N'Ch? Th? K? TG x?c nh?n', 1 -- DVDM_ID - varchar(15) ); SET @STEP_PARENT = 'TKTGD'; ---- END THU KY TGD INSERT INTO dbo.PL_REQUEST_PROCESS ( REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRAN

167
CH_ID, CHECKER_ID, APPROVE_DT, PARENT_PROCESS_ID, IS_LEAF, COST_ID, DVDM_ID, NOTES, IS_HAS_CHILD ) VALUES ( @p_REQ_ID, -- REQ_ID - varchar(15) 'TGD',

168
-- PROCESS_ID - varchar(10) 'U', -- STATUS - varchar(5) 'TGD', -- ROLE_USER - varchar(50) '', -- BRANCH_ID - varchar(15)

169
'', -- CHECKER_ID - varchar(15) NULL, -- APPROVE_DT - datetime @STEP_PARENT, -- PARENT_PROCESS_ID - varchar(10) 'N',

170
-- IS_LEAF - varchar(1) '', -- COST_ID - varchar(15) '', N'Ch? T?ng gi?m ?c ph? duy?t', 0 -- DVDM_ID - varchar(15) ); SET @STEP_PARENT = 'TGD'; SET @IS_NEXT = ( SELECT dbo.FN_CHE

171
CK_LIMIT_PL_REQ(@p_REQ_ID, 'TGD') ); IF(@IS_NEXT=1) BEGIN ---- THEM THU KI HDQT INSERT INTO dbo.PL_REQUEST_PROCESS ( REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID, CHECKER_ID, APPRO

172
VE_DT, PARENT_PROCESS_ID, IS_LEAF, COST_ID, DVDM_ID, NOTES, IS_HAS_CHILD ) VALUES ( @p_REQ_ID, -- REQ_ID - varchar(15) 'TKHDQT', -- PROCESS_

173
ID - varchar(10) 'U', -- STATUS - varchar(5) 'TKHDQT', -- ROLE_USER - varchar(50) '', -- BRANCH_ID - varchar(15) '',

174
-- CHECKER_ID - varchar(15) NULL, -- APPROVE_DT - datetime @STEP_PARENT, -- PARENT_PROCESS_ID - varchar(10) 'N', -- IS_LEAF - varchar(1)

175
'', -- COST_ID - varchar(15) '', N'Ch? Vn Ph?ng Th? K? HQT x?c nh?n', 1 -- DVDM_ID - varchar(15) ); SET @STEP_PARENT = 'TKHDQT'; ---- END THU KY HDQT INSERT INTO dbo.PL_REQUEST_PROCESS

176
( REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID, CHECKER_ID, APPROVE_DT, PARENT_PROCESS_ID, IS_LEAF, COST_ID, DVDM_ID, NOTES, IS_HAS_CHILD ) VALUES ( @p_

177
REQ_ID, -- REQ_ID - varchar(15) 'HDQT', -- PROCESS_ID - varchar(10) 'U', -- STATUS - varchar(5) 'HDQT', -- ROLE_USER -

178
varchar(50) '', -- BRANCH_ID - varchar(15) '', -- CHECKER_ID - varchar(15) NULL, -- APPROVE_DT - datetime @STEP_PARENT,

179
-- PARENT_PROCESS_ID - varchar(10) 'N', -- IS_LEAF - varchar(1) '', -- COST_ID - varchar(15) '', N'Ch? Ch? T?ch H?i ?ng Qu?n Tr? ph? duy?t', 0 -- DVDM_ID - varcha

180
r(15) ); SET @STEP_PARENT = 'HDQT'; END END; --ELSE --BEGIN --END END; END; END END -- N?u l? t? tr?nh cn c? v? t?n t?i h?nh th?c ch? ?nh th?u ELSE IF (EXISTS(SELECT * FROM dbo.PL_REQUEST_DOC_DT WHERE

181
REQ_ID = @p_REQ_ID AND TRADE_TYPE = 'CDT') AND NOT EXISTS(SELECT * FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID = (SELECT PL_BASED_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID = @p_REQ_ID) AND TRADE_TYPE = 'CDT')) BEGIN INSERT INTO dbo.PL_REQUEST_PROCESS

182
( REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID, CHECKER_ID, APPROVE_DT, PARENT_PROCESS_ID, IS_LEAF, COST_ID, DVDM_ID, NOTES,IS_HAS_CHILD ) VALUES ( @p_REQ_ID, 'GDK_TT', 'U', '

183
GDK', '', '', NULL, @STEP_PARENT, 'N', '', @DVDM_CDT, N'Ch? gi?m ?c kh?i x?c nh?n', 0 ) SET @STEP_PARENT = 'GDK_TT' -- N?u t?ng gi? tr? ch? ?nh th?u l?n h?n h?n m?c ph? duy?t c?a GDK IF ((SELECT dbo.FN

184
_CHECK_LIMIT_PL_REQ_CDT(@p_REQ_ID,'GDK')) = 1) BEGIN INSERT INTO dbo.PL_REQUEST_PROCESS ( REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID, CHECKER_ID, APPROVE_DT, PARENT_PROCESS_ID, IS_LEAF, CO

185
ST_ID, DVDM_ID, NOTES, IS_HAS_CHILD ) VALUES ( @p_REQ_ID, 'PTGDK_TT', 'U', 'PTGD', '', '', NULL, @STEP_PARENT, 'N', '', @DVDM_CDT, N'Ch? ph? t?ng gi?m ?c kh?i x?c n

186
h?n', 0 ) SET @STEP_PARENT = 'PTGDK_TT' END END INSERT INTO dbo.PL_REQUEST_PROCESS ( REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID, CHECKER_ID, APPROVE_DT, PARENT_PROCESS_ID, IS_LEAF, NOTES ) V

187
ALUES ( @p_REQ_ID, -- REQ_ID - varchar(15) 'APPROVE', -- PROCESS_ID - varchar(10) 'U', -- STATUS - varchar(5) '', -- ROLE_USER - varchar(50) '', -- BRANCH_ID - varchar(15) '', -- CHECKER_ID - varchar(15) NU

188
LL, -- APPROVE_DT - datetime @STEP_PARENT, 'Y', N'Ho?n t?t'); IF @@Error <> 0 GOTO ABORT; DECLARE @PROCESS_ID_CURR VARCHAR(10); SET @PROCESS_ID_CURR = ( SELECT TOP 1 PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ

189
_ID = @p_REQ_ID AND PARENT_PROCESS_ID = 'APPNEW' ); UPDATE dbo.PL_REQUEST_PROCESS SET STATUS = 'C' WHERE PARENT_PROCESS_ID = 'APPNEW' AND REQ_ID = @p_REQ_ID; UPDATE dbo.PL_REQUEST_DOC SET AUTH_STATUS = @p_AUTH_STATUS, APPROVE_DT

190
= CONVERT(DATETIME, @p_APPROVE_DT,103), CHECKER_ID = @p_CHECKER_ID, PROCESS_ID = @PROCESS_ID_CURR WHERE REQ_ID = @p_REQ_ID; UPDATE dbo.PL_REQUEST_DOC_DT SET CHECKER_ID=@p_CHECKER_ID, APPROVE_DT=CONVERT(DATETIME, @p_APPROVE_DT,103) WHERE

191
REQ_ID = @p_REQ_ID; INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_REQ_ID, -- REQ_ID - varchar(15) 'APPNEW',

192
-- PROCESS_ID - varchar(10) @p_CHECKER_ID, -- CHECKER_ID - varchar(15) CONVERT(DATETIME, @p_APPROVE_DT,103), -- APPROVE_DT - datetime

193
@p_PROCESS_DESC, CASE WHEN @BRANCH_TYPE_LOGIN ='PGD' THEN N'Tr??ng ph?ng giao d?ch x?c nh?n phi?u' ELSE N'Tr??ng ?n v? ph? duy?t' END -- PROCESS_DESC - nvarchar(1000) ); IF (EXISTS ( SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_

194
ID = @p_REQ_ID AND PROCESS_ID = 'APPROVE' ) ) BEGIN EXEC dbo.PL_REQ_DOC_UPDATE_AFTER_APPROVE @p_REQ_ID = @p_REQ_ID; EXEC dbo.PL_REQ_DOC_Ins_To_TR_REQ_DOC @p_PL_REQ_ID = @p_REQ_ID; SET @Result = '0'; END; SET @Result = '1'; END

195
COMMIT TRANSACTION; IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE AUTH_STATUS ='A' AND REQ_ID =@p_REQ_ID)) BEGIN SELECT '0' AS Result, N'T? tr?nh ch? tr??ng s?: '+(SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID) +N' ? ??c tr??ng ?n v? ph? d

196
uy?t th?nh c?ng.' ErrorDesc; RETURN '0'; END ELSE BEGIN SELECT '4' as Result, N'T? tr?nh ch? tr??ng s?: '+(SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID) +N' ? ??c c?p ph? duy?t trung gian x?c nh?n th?nh c?ng. Vui l?ng ?i tr??ng ?n v? p

197
h? duy?t' ErrorDesc RETURN '4' END ABORT: BEGIN ROLLBACK TRANSACTION; SELECT '-1' AS Result, '' ROLE_NOTIFI, '' ErrorDesc; RETURN '-1'; END;