Project

General

Profile

UPDATE DATA_1.txt

Truong Nguyen Vu, 11/30/2020 10:48 AM

 
1
INSERT INTO dbo.TL_SYSROLE_LIMIT
2
(
3
    LIMIT_ID,
4
    ROLE_ID,
5
    LIMIT_VALUE,
6
    NOTES,
7
    MAKER_ID,
8
    AUTH_STATUS,
9
    CHECKER_ID,
10
    DATE_APPROVE,
11
    ISAPPROVE,
12
    BRANCH_ID,
13
    LIMIT_TYPE,
14
    LIMIT_PERCENT,
15
    DVDM_ID
16
)
17
VALUES
18
(   'LMI00014',        -- LIMIT_ID - varchar(15)
19
    'GDDV',        -- ROLE_ID - varchar(15)
20
    20000000,      -- LIMIT_VALUE - decimal(18, 0)
21
    N'',       -- NOTES - nvarchar(200)
22
    '',        -- MAKER_ID - varchar(12)
23
    '',        -- AUTH_STATUS - varchar(1)
24
    '',        -- CHECKER_ID - varchar(12)
25
    GETDATE(), -- DATE_APPROVE - datetime
26
    '',        -- ISAPPROVE - varchar(1)
27
    '',        -- BRANCH_ID - varchar(15)
28
    'DCNS',        -- LIMIT_TYPE - varchar(15)
29
    30,      -- LIMIT_PERCENT - decimal(18, 0)
30
    ''         -- DVDM_ID - varchar(15)
31
    )
32

    
33

    
34

    
35

    
36
INSERT dbo.SYS_PREFIX
37
(
38
    ID,
39
    Prefix,
40
    Description
41
)
42
VALUES
43
(   'LIMIT_ACCUMULATE', -- ID - varchar(100)
44
    'LMAC', -- Prefix - varchar(10)
45
    N'' -- Description - nvarchar(1000)
46
    )
47

    
48

    
49
DECLARE @KHOI_ID VARCHAR(20),@AMT_APP DECIMAL(18,2),@LIMIT_PERCENT DECIMAL(18,2),@LIMIT_ID VARCHAR(20),@BRANCH_ID VARCHAR(20)
50

    
51
--SET @LIMIT_PERCENT =(SELECT LIMIT_PERCENT FROM dbo.TL_SYSROLE_LIMIT WHERE TL_SYSROLE_LIMIT.ROLE_ID=LIMIT_ACCUMULATE.ROLE_ID AND LIMIT_TYPE='DCNS')/100
52

    
53
DECLARE lstDATA CURSOR FOR
54
SELECT CDK.KHOI_ID,SUM(PT.AMT_APP) AMT_APP FROM dbo.PL_MASTER PM
55
LEFT JOIN dbo.PL_TRADEDETAIL PT ON PM.PLAN_ID = PT.PLAN_ID
56
LEFT JOIN dbo.CM_GOODS CG ON CG.GD_ID=PT.GOODS_ID
57
LEFT JOIN dbo.CM_DVDM_KHOI CDK ON CDK.DVDM_ID=PM.COST_ID
58
WHERE PM.YEAR=2020 AND PT.RECORD_STATUS=1 AND CG.GD_TYPE_ID='NS'
59
GROUP BY CDK.KHOI_ID
60

    
61
OPEN lstDATA
62
FETCH NEXT FROM lstDATA INTO @KHOI_ID,@AMT_APP
63
WHILE @@FETCH_STATUS=0
64
BEGIN
65
SET @LIMIT_PERCENT =(SELECT LIMIT_PERCENT FROM dbo.TL_SYSROLE_LIMIT WHERE TL_SYSROLE_LIMIT.ROLE_ID='GDK' AND LIMIT_TYPE='DCNS')/100
66
IF(EXISTS(SELECT * FROM dbo.LIMIT_ACCUMULATE WHERE DVDM_ID=@KHOI_ID AND ROLE_ID='GDK'))
67
	UPDATE dbo.LIMIT_ACCUMULATE SET MAX_AMT=@AMT_APP*@LIMIT_PERCENT WHERE ROLE_ID='GDK' AND DVDM_ID=@KHOI_ID
68
ELSE
69
	BEGIN	  
70
	    EXEC dbo.SYS_CodeMasters_Gen @p_Kind = 'LIMIT_ACCUMULATE',                -- varchar(100)
71
	                                 @p_KeyGen = @LIMIT_ID OUTPUT -- varchar(15)
72
		INSERT INTO dbo.LIMIT_ACCUMULATE
73
		(
74
		    LIMIT_ID,
75
		    ROLE_ID,
76
		    TOTAL_APP_AMT,
77
		    MAX_AMT,
78
		    DVDM_ID,
79
		    BRANCH_ID
80
		)
81
		VALUES
82
		(   @LIMIT_ID,   -- LIMIT_ID - varchar(20)
83
		    'GDK',   -- ROLE_ID - varchar(20)
84
		    NULL, -- TOTAL_APP_AMT - decimal(18, 2)
85
		    (@AMT_APP*@LIMIT_PERCENT), -- MAX_AMT - decimal(18, 2)
86
		    @KHOI_ID,   -- DVDM_ID - varchar(20)
87
		    ''    -- BRANCH_ID - varchar(20)
88
		    )
89
	    
90
	END
91
IF(EXISTS(SELECT * FROM dbo.LIMIT_ACCUMULATE WHERE DVDM_ID=@KHOI_ID AND ROLE_ID='PTGD'))
92
	UPDATE dbo.LIMIT_ACCUMULATE SET MAX_AMT=@AMT_APP*@LIMIT_PERCENT WHERE ROLE_ID='PTGD' AND DVDM_ID=@KHOI_ID
93
ELSE
94
	BEGIN	  
95
	    EXEC dbo.SYS_CodeMasters_Gen @p_Kind = 'LIMIT_ACCUMULATE',                -- varchar(100)
96
	                                 @p_KeyGen = @LIMIT_ID OUTPUT -- varchar(15)
97
		INSERT INTO dbo.LIMIT_ACCUMULATE
98
		(
99
		    LIMIT_ID,
100
		    ROLE_ID,
101
		    TOTAL_APP_AMT,
102
		    MAX_AMT,
103
		    DVDM_ID,
104
		    BRANCH_ID
105
		)
106
		VALUES
107
		(   @LIMIT_ID,   -- LIMIT_ID - varchar(20)
108
		    'PTGD',   -- ROLE_ID - varchar(20)
109
		    NULL, -- TOTAL_APP_AMT - decimal(18, 2)
110
		    (@AMT_APP*@LIMIT_PERCENT), -- MAX_AMT - decimal(18, 2)
111
		    @KHOI_ID,   -- DVDM_ID - varchar(20)
112
		    ''    -- BRANCH_ID - varchar(20)
113
		    )
114
	    
115
	END
116

    
117

    
118
FETCH NEXT FROM lstDATA INTO @KHOI_ID,@AMT_APP
119
END
120
CLOSE lstDATA
121
DEALLOCATE lstDATA
122

    
123

    
124

    
125
DECLARE lstDATA CURSOR FOR
126
SELECT PM.BRANCH_ID,SUM(PT.AMT_APP) AMT_APP FROM dbo.PL_MASTER PM
127
LEFT JOIN dbo.PL_TRADEDETAIL PT ON PM.PLAN_ID = PT.PLAN_ID
128
LEFT JOIN dbo.CM_GOODS CG ON CG.GD_ID=PT.GOODS_ID
129
WHERE PM.YEAR=2020 AND PT.RECORD_STATUS=1 AND CG.GD_TYPE_ID='NS'
130
GROUP BY PM.BRANCH_ID
131

    
132
OPEN lstDATA
133
FETCH NEXT FROM lstDATA INTO @BRANCH_ID,@AMT_APP
134
WHILE @@FETCH_STATUS=0
135
BEGIN
136
SET @LIMIT_PERCENT =(SELECT LIMIT_PERCENT FROM dbo.TL_SYSROLE_LIMIT WHERE TL_SYSROLE_LIMIT.ROLE_ID='GDDV' AND LIMIT_TYPE='DCNS')/100
137
IF(EXISTS(SELECT * FROM dbo.LIMIT_ACCUMULATE WHERE BRANCH_ID=@BRANCH_ID AND ROLE_ID='GDDV'))
138
	UPDATE dbo.LIMIT_ACCUMULATE SET MAX_AMT=@AMT_APP*@LIMIT_PERCENT WHERE ROLE_ID='GDDV' AND BRANCH_ID=@BRANCH_ID
139
ELSE
140
	BEGIN	  
141
	    EXEC dbo.SYS_CodeMasters_Gen @p_Kind = 'LIMIT_ACCUMULATE',                -- varchar(100)
142
	                                 @p_KeyGen = @LIMIT_ID OUTPUT -- varchar(15)
143
		INSERT INTO dbo.LIMIT_ACCUMULATE
144
		(
145
		    LIMIT_ID,
146
		    ROLE_ID,
147
		    TOTAL_APP_AMT,
148
		    MAX_AMT,
149
		    DVDM_ID,
150
		    BRANCH_ID
151
		)
152
		VALUES
153
		(   @LIMIT_ID,   -- LIMIT_ID - varchar(20)
154
		    'GDDV',   -- ROLE_ID - varchar(20)
155
		    NULL, -- TOTAL_APP_AMT - decimal(18, 2)
156
		    (@AMT_APP*@LIMIT_PERCENT), -- MAX_AMT - decimal(18, 2)
157
		    '',   -- DVDM_ID - varchar(20)
158
		    @BRANCH_ID    -- BRANCH_ID - varchar(20)
159
		    )
160
	    
161
	END
162

    
163
FETCH NEXT FROM lstDATA INTO @BRANCH_ID,@AMT_APP
164
END
165
CLOSE lstDATA
166
DEALLOCATE lstDATA