Project

General

Profile

UPDATE DATA_4.txt

Truong Nguyen Vu, 11/30/2020 03:40 PM

 
1

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

    
4
--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
5

    
6
DECLARE lstDATA CURSOR FOR
7
SELECT CDK.KHOI_ID,SUM(PT.AMT_APP) AMT_APP FROM dbo.PL_MASTER PM
8
LEFT JOIN dbo.PL_TRADEDETAIL PT ON PM.PLAN_ID = PT.PLAN_ID
9
LEFT JOIN dbo.CM_GOODS CG ON CG.GD_ID=PT.GOODS_ID
10
LEFT JOIN dbo.CM_DVDM_KHOI CDK ON CDK.DVDM_ID=PM.COST_ID
11
WHERE PM.YEAR=2020 AND PT.RECORD_STATUS=1 AND CG.GD_TYPE_ID='NS'
12
GROUP BY CDK.KHOI_ID
13

    
14
OPEN lstDATA
15
FETCH NEXT FROM lstDATA INTO @KHOI_ID,@AMT_APP
16
WHILE @@FETCH_STATUS=0
17
BEGIN
18
SET @LIMIT_PERCENT =(SELECT LIMIT_PERCENT FROM dbo.TL_SYSROLE_LIMIT WHERE TL_SYSROLE_LIMIT.ROLE_ID='GDK' AND LIMIT_TYPE='DCNS')/100
19
IF(EXISTS(SELECT * FROM dbo.LIMIT_ACCUMULATE WHERE DVDM_ID=@KHOI_ID AND ROLE_ID='GDK'))
20
	UPDATE dbo.LIMIT_ACCUMULATE SET MAX_AMT=@AMT_APP*@LIMIT_PERCENT WHERE ROLE_ID='GDK' AND DVDM_ID=@KHOI_ID
21
ELSE
22
	BEGIN	  
23
	    EXEC dbo.SYS_CodeMasters_Gen @p_Kind = 'LIMIT_ACCUMULATE',                -- varchar(100)
24
	                                 @p_KeyGen = @LIMIT_ID OUTPUT -- varchar(15)
25
		INSERT INTO dbo.LIMIT_ACCUMULATE
26
		(
27
		    LIMIT_ID,
28
		    ROLE_ID,
29
		    TOTAL_APP_AMT,
30
		    MAX_AMT,
31
		    DVDM_ID,
32
		    BRANCH_ID
33
		)
34
		VALUES
35
		(   @LIMIT_ID,   -- LIMIT_ID - varchar(20)
36
		    'GDK',   -- ROLE_ID - varchar(20)
37
		    NULL, -- TOTAL_APP_AMT - decimal(18, 2)
38
		    (@AMT_APP*@LIMIT_PERCENT), -- MAX_AMT - decimal(18, 2)
39
		    @KHOI_ID,   -- DVDM_ID - varchar(20)
40
		    ''    -- BRANCH_ID - varchar(20)
41
		    )
42
	    
43
	END
44
IF(EXISTS(SELECT * FROM dbo.LIMIT_ACCUMULATE WHERE DVDM_ID=@KHOI_ID AND ROLE_ID='PTGD'))
45
	UPDATE dbo.LIMIT_ACCUMULATE SET MAX_AMT=@AMT_APP*@LIMIT_PERCENT WHERE ROLE_ID='PTGD' AND DVDM_ID=@KHOI_ID
46
ELSE
47
	BEGIN	  
48
	    EXEC dbo.SYS_CodeMasters_Gen @p_Kind = 'LIMIT_ACCUMULATE',                -- varchar(100)
49
	                                 @p_KeyGen = @LIMIT_ID OUTPUT -- varchar(15)
50
		INSERT INTO dbo.LIMIT_ACCUMULATE
51
		(
52
		    LIMIT_ID,
53
		    ROLE_ID,
54
		    TOTAL_APP_AMT,
55
		    MAX_AMT,
56
		    DVDM_ID,
57
		    BRANCH_ID
58
		)
59
		VALUES
60
		(   @LIMIT_ID,   -- LIMIT_ID - varchar(20)
61
		    'PTGD',   -- ROLE_ID - varchar(20)
62
		    NULL, -- TOTAL_APP_AMT - decimal(18, 2)
63
		    (@AMT_APP*@LIMIT_PERCENT), -- MAX_AMT - decimal(18, 2)
64
		    @KHOI_ID,   -- DVDM_ID - varchar(20)
65
		    ''    -- BRANCH_ID - varchar(20)
66
		    )
67
	    
68
	END
69

    
70

    
71
FETCH NEXT FROM lstDATA INTO @KHOI_ID,@AMT_APP
72
END
73
CLOSE lstDATA
74
DEALLOCATE lstDATA
75

    
76

    
77

    
78
DECLARE lstDATA CURSOR FOR
79
SELECT PM.BRANCH_ID,SUM(PT.AMT_APP) AMT_APP FROM dbo.PL_MASTER PM
80
LEFT JOIN dbo.PL_TRADEDETAIL PT ON PM.PLAN_ID = PT.PLAN_ID
81
LEFT JOIN dbo.CM_GOODS CG ON CG.GD_ID=PT.GOODS_ID
82
WHERE PM.YEAR=2020 AND PT.RECORD_STATUS=1 AND CG.GD_TYPE_ID='NS'
83
GROUP BY PM.BRANCH_ID
84

    
85
OPEN lstDATA
86
FETCH NEXT FROM lstDATA INTO @BRANCH_ID,@AMT_APP
87
WHILE @@FETCH_STATUS=0
88
BEGIN
89
SET @LIMIT_PERCENT =(SELECT LIMIT_PERCENT FROM dbo.TL_SYSROLE_LIMIT WHERE TL_SYSROLE_LIMIT.ROLE_ID='GDDV' AND LIMIT_TYPE='DCNS')/100
90
IF(EXISTS(SELECT * FROM dbo.LIMIT_ACCUMULATE WHERE BRANCH_ID=@BRANCH_ID AND ROLE_ID='GDDV'))
91
	UPDATE dbo.LIMIT_ACCUMULATE SET MAX_AMT=@AMT_APP*@LIMIT_PERCENT WHERE ROLE_ID='GDDV' AND BRANCH_ID=@BRANCH_ID
92
ELSE
93
	BEGIN	  
94
	    EXEC dbo.SYS_CodeMasters_Gen @p_Kind = 'LIMIT_ACCUMULATE',                -- varchar(100)
95
	                                 @p_KeyGen = @LIMIT_ID OUTPUT -- varchar(15)
96
		INSERT INTO dbo.LIMIT_ACCUMULATE
97
		(
98
		    LIMIT_ID,
99
		    ROLE_ID,
100
		    TOTAL_APP_AMT,
101
		    MAX_AMT,
102
		    DVDM_ID,
103
		    BRANCH_ID
104
		)
105
		VALUES
106
		(   @LIMIT_ID,   -- LIMIT_ID - varchar(20)
107
		    'GDDV',   -- ROLE_ID - varchar(20)
108
		    NULL, -- TOTAL_APP_AMT - decimal(18, 2)
109
		    (@AMT_APP*@LIMIT_PERCENT), -- MAX_AMT - decimal(18, 2)
110
		    '',   -- DVDM_ID - varchar(20)
111
		    @BRANCH_ID    -- BRANCH_ID - varchar(20)
112
		    )
113
	    
114
	END
115

    
116
FETCH NEXT FROM lstDATA INTO @BRANCH_ID,@AMT_APP
117
END
118
CLOSE lstDATA
119
DEALLOCATE lstDATA