1
|
|
2
|
ALTER PROC [dbo].[TL_SYSROLE_LIMIT_Auto]
|
3
|
@p_BRANCH_ID VARCHAR(15) = NULL,
|
4
|
@p_LIMIT_TYPE VARCHAR(15) = NULL
|
5
|
AS
|
6
|
BEGIN TRANSACTION
|
7
|
IF(@p_LIMIT_TYPE='DVKD')
|
8
|
BEGIN
|
9
|
DECLARE @BRANCH_ID VARCHAR(15), @BRANCH_NAMME NVARCHAR(200), @BRANCH_TYPE VARCHAR(15),@p_LIMIT_ID VARCHAR(15), @TOTAL_PGD DECIMAL(18,0), @DMMS_ID VARCHAR(15), @LIMIT_PGD DECIMAL(18,0),
|
10
|
@LIMIT_CN DECIMAL(18,0)
|
11
|
SET @LIMIT_PGD =10000000
|
12
|
SET @LIMIT_CN =40000000
|
13
|
DECLARE CUR_DV CURSOR
|
14
|
FOR SELECT A.BRANCH_ID, A.BRANCH_NAME, A.BRANCH_TYPE FROM CM_BRANCH A WHERE A.BRANCH_TYPE IN ('CN','PGD') AND (A.BRANCH_ID =@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='')
|
15
|
OPEN CUR_DV
|
16
|
FETCH NEXT FROM CUR_DV INTO @BRANCH_ID,@BRANCH_NAMME,@BRANCH_TYPE
|
17
|
WHILE @@FETCH_STATUS = 0
|
18
|
BEGIN
|
19
|
--SET @TOTAL_PGD =(SELECT COUNT(*) FROM CM_BRANCH WHERE FATHER_ID =@BRANCH_ID)*10000000
|
20
|
SET @TOTAL_PGD =0
|
21
|
EXEC SYS_CodeMasters_Gen 'TL_SYSROLE_LIMIT', @p_LIMIT_ID out
|
22
|
IF(@BRANCH_TYPE ='CN' AND NOT EXISTS(SELECT * FROM TL_SYSROLE_LIMIT WHERE BRANCH_ID =@BRANCH_ID AND LIMIT_TYPE='ADV_PAY' AND ROLE_ID ='GDDV'))
|
23
|
BEGIN
|
24
|
INSERT INTO TL_SYSROLE_LIMIT VALUES (@p_LIMIT_ID,'GDDV',@LIMIT_CN+@TOTAL_PGD,@BRANCH_NAMME,'admin','A','tscd_hoiso',GETDATE(),'1',@BRANCH_ID,'ADV_PAY', @LIMIT_CN, NULL,GETDATE())
|
25
|
END
|
26
|
ELSE IF(@BRANCH_TYPE ='CN' AND NOT EXISTS(SELECT * FROM TL_SYSROLE_LIMIT WHERE BRANCH_ID =@BRANCH_ID AND LIMIT_TYPE='ADV_PAY' AND ROLE_ID ='PGD'))
|
27
|
BEGIN
|
28
|
INSERT INTO TL_SYSROLE_LIMIT VALUES (@p_LIMIT_ID,'PGD',@LIMIT_CN+@TOTAL_PGD,@BRANCH_NAMME,'admin','A','tscd_hoiso',GETDATE(),'1',@BRANCH_ID,'ADV_PAY', @LIMIT_CN, NULL,GETDATE())
|
29
|
END
|
30
|
ELSE IF(@BRANCH_TYPE ='PGD' AND NOT EXISTS(SELECT * FROM TL_SYSROLE_LIMIT WHERE BRANCH_ID =@BRANCH_ID AND LIMIT_TYPE='ADV_PAY' AND ROLE_ID ='TPGD' AND @BRANCH_TYPE ='PGD'))
|
31
|
BEGIN
|
32
|
INSERT INTO TL_SYSROLE_LIMIT VALUES (@p_LIMIT_ID,'TPGD',@LIMIT_PGD,@BRANCH_NAMME,'admin','A','tscd_hoiso',GETDATE(),'1',@BRANCH_ID,'ADV_PAY', @LIMIT_PGD, NULL,GETDATE())
|
33
|
END
|
34
|
ELSE IF(@BRANCH_TYPE ='PGD' AND NOT EXISTS(SELECT * FROM TL_SYSROLE_LIMIT WHERE BRANCH_ID =@BRANCH_ID AND LIMIT_TYPE='ADV_PAY' AND ROLE_ID ='PPGD' AND @BRANCH_TYPE ='PGD'))
|
35
|
BEGIN
|
36
|
INSERT INTO TL_SYSROLE_LIMIT VALUES (@p_LIMIT_ID,'PPGD',@LIMIT_PGD,@BRANCH_NAMME,'admin','A','tscd_hoiso',GETDATE(),'1',@BRANCH_ID,'ADV_PAY', @LIMIT_PGD, NULL,GETDATE())
|
37
|
END
|
38
|
ELSE IF (@BRANCH_TYPE ='CN' AND EXISTS(SELECT * FROM TL_SYSROLE_LIMIT WHERE BRANCH_ID =@BRANCH_ID AND LIMIT_TYPE='ADV_PAY' AND ROLE_ID ='GDDV'))
|
39
|
BEGIN
|
40
|
UPDATE TL_SYSROLE_LIMIT SET LIMIT_VALUE =@LIMIT_CN +@TOTAL_PGD, LIMIT_PERCENT= @LIMIT_CN WHERE BRANCH_ID =@BRANCH_ID AND LIMIT_TYPE ='ADV_PAY' AND ROLE_ID ='GDDV'
|
41
|
END
|
42
|
-- KIỂM TRA XEM ĐÃ KHAI BÁO ĐƠN VỊ / CHI NHÁNH NÀY TRONG CM_DMMS HAY CHƯA
|
43
|
IF(NOT EXISTS (SELECT * FROM CM_DMMS WHERE BRANCH_ID =@BRANCH_ID))
|
44
|
BEGIN
|
45
|
EXEC SYS_CodeMasters_Gen 'CM_DMMS', @DMMS_ID out
|
46
|
INSERT INTO CM_DMMS (DMMS_ID,BRANCH_ID, DEP_ID,DVDM_ID) VALUES (@DMMS_ID,@BRANCH_ID,(SELECT TOP 1 DEP_ID FROM CM_DEPARTMENT WHERE BRANCH_ID =@BRANCH_ID),'')
|
47
|
END
|
48
|
FETCH NEXT FROM CUR_DV INTO @BRANCH_ID,@BRANCH_NAMME,@BRANCH_TYPE
|
49
|
END
|
50
|
CLOSE CUR_DV
|
51
|
DEALLOCATE CUR_DV
|
52
|
END
|
53
|
ELSE
|
54
|
BEGIN
|
55
|
-- INSERT HAN MUC CHO HOI SO
|
56
|
-- GIAM DOC KHOI
|
57
|
IF(NOT EXISTS(SELECT * FROM TL_SYSROLE_LIMIT WHERE BRANCH_ID ='DV0001' AND LIMIT_TYPE='ADV_PAY' AND ROLE_ID ='GDK'))
|
58
|
BEGIN
|
59
|
EXEC SYS_CodeMasters_Gen 'TL_SYSROLE_LIMIT', @p_LIMIT_ID out
|
60
|
INSERT INTO TL_SYSROLE_LIMIT VALUES (@p_LIMIT_ID,'GDK',100000000,N'HAN MUC GIAM DOC KHOI','admin','A','tscd_hoiso',GETDATE(),'1','DV0001','ADV_PAY',100000000,NULL,GETDATE())
|
61
|
END
|
62
|
BEGIN
|
63
|
UPDATE TL_SYSROLE_LIMIT SET LIMIT_VALUE =100000000, LIMIT_PERCENT= 100000000 WHERE BRANCH_ID ='DV0001' AND LIMIT_TYPE ='ADV_PAY' AND ROLE_ID ='GDK'
|
64
|
END
|
65
|
---- PHO TONG GIAM DOC
|
66
|
--IF(NOT EXISTS(SELECT * FROM TL_SYSROLE_LIMIT WHERE BRANCH_ID ='DV0001' AND LIMIT_TYPE='ADV_PAY' AND ROLE_ID ='PTGD'))
|
67
|
--BEGIN
|
68
|
-- EXEC SYS_CodeMasters_Gen 'TL_SYSROLE_LIMIT', @p_LIMIT_ID out
|
69
|
-- INSERT INTO TL_SYSROLE_LIMIT VALUES (@p_LIMIT_ID,'PTGD',200000000,N'HAN MUC PHE DUYET PHO TONG GIAM DOC','admin','A','tscd_hoiso',GETDATE(),'1','DV0001','ADV_PAY',200000000,NULL,GETDATE())
|
70
|
--END
|
71
|
--BEGIN
|
72
|
-- UPDATE TL_SYSROLE_LIMIT SET LIMIT_VALUE =200000000, LIMIT_PERCENT= 200000000 WHERE BRANCH_ID ='DV0001' AND LIMIT_TYPE ='ADV_PAY' AND ROLE_ID ='PTGD'
|
73
|
--END
|
74
|
--IF(NOT EXISTS(SELECT * FROM TL_SYSROLE_LIMIT WHERE BRANCH_ID ='DV0001' AND LIMIT_TYPE='ADV_PAY' AND ROLE_ID ='TGD'))
|
75
|
--BEGIN
|
76
|
-- EXEC SYS_CodeMasters_Gen 'TL_SYSROLE_LIMIT', @p_LIMIT_ID out
|
77
|
-- INSERT INTO TL_SYSROLE_LIMIT VALUES (@p_LIMIT_ID,'TGD',2000000000,N'HAN MUC PHE DUYET TONG GIAM DOC','admin','A','tscd_hoiso',GETDATE(),'1','DV0001','ADV_PAY',500000000,NULL,GETDATE())
|
78
|
--END
|
79
|
--BEGIN
|
80
|
-- UPDATE TL_SYSROLE_LIMIT SET LIMIT_VALUE =2000000000, LIMIT_PERCENT= 500000000 WHERE BRANCH_ID ='DV0001' AND LIMIT_TYPE ='ADV_PAY' AND ROLE_ID ='TGD'
|
81
|
--END
|
82
|
END
|
83
|
COMMIT TRANSACTION
|
84
|
SELECT '0' as Result, '' LIMIT_ID, (SELECT TOP 1 LIMIT_VALUE FROM TL_SYSROLE_LIMIT WHERE BRANCH_ID =@p_BRANCH_ID AND LIMIT_TYPE ='ADV_PAY') AS LIMIT_VALUE,'' ErrorDesc
|
85
|
RETURN '0'
|
86
|
ABORT:
|
87
|
BEGIN
|
88
|
ROLLBACK TRANSACTION
|
89
|
SELECT '-1' as Result, '' LIMIT_ID, 0.0 AS LIMIT_VALUE, '' ErrorDesc
|
90
|
RETURN '-1'
|
91
|
END
|