Project

General

Profile

FILE 5 - PL_TRADE_TRANFER_TO_BRANCH.txt

Truong Nguyen Vu, 10/22/2020 02:30 PM

 
1

    
2
CREATE PROCEDURE [dbo].[PL_TRADE_TRANFER_TO_BRANCH]
3
	@P_REF_CODE VARCHAR(20),
4
    @p_BRANCH_ID VARCHAR(20),
5
	@p_DEP_ID VARCHAR(20),
6
	@p_YEAR INT
7
AS
8

    
9
BEGIN TRY
10
BEGIN TRANSACTION;
11

    
12
DECLARE @IS_UPDATE BIT 
13

    
14

    
15

    
16

    
17

    
18
DECLARE @PLAN_CODE VARCHAR(20),
19
		@PLAN_NAME NVARCHAR(200),
20
		@YEAR INT,
21
        @PLAN_TYPE_ID VARCHAR(15),
22
        @COST_ID VARCHAR(15),
23
        @BRANCH_ID VARCHAR(15),
24
		@BRANCH_CODE VARCHAR(15),
25
        @DEP_ID VARCHAR(15),
26
		@DEP_CODE VARCHAR(15),
27
        @GOOD_ID VARCHAR(15),
28
        @QTY INT,
29
        @TOTAL_AMT DECIMAL(18, 2),
30
		@AMT_ETM DECIMAL(18, 2),
31
		@AMT_EXE DECIMAL(18, 2),  
32
		@AMT_TF DECIMAL(18, 2),
33
		@AMT_RECIVE_TF DECIMAL(18, 2),
34
        @NOTES NVARCHAR(1000),
35
		@IMP_AMT NUMERIC(18, 2),
36
		@IMP_QTY NUMERIC(18, 0),
37
		@MARKER_ID VARCHAR(15),
38
		@EDIT_DT DATETIME,
39
		@PLAN_ID VARCHAR(15),
40
		@TRADE_ID VARCHAR(15),
41
		@REF_CODE VARCHAR(20),
42
		@REF_NAME NVARCHAR(200),
43
		@IMP_DT_ID VARCHAR(20)
44

    
45

    
46

    
47
DECLARE Plan_Master CURSOR FOR
48
SELECT IM.PLAN_CODE,IM.IMP_NAME,IM.IMP_YEAR,SUM(ISNULL(IMDT.QTY,0)) AS QTY,SUM(ISNULL(IMDT.TOTAL_AMT,0)) AS AMT, IMDT.PLAN_TYPE_ID, IMDT.COST_ID,IMDT.BRANCH_ID,IMDT.DEP_ID,
49
IMDT.PLAN_ID,IMDT.BRANCH_CODE,IMDT.DEP_CODE
50
FROM dbo.PL_TRADEDETAIL PT
51
LEFT JOIN dbo.PL_MASTER PM ON PM.PLAN_ID=PT.PLAN_ID
52
LEFT JOIN dbo.CM_PLAN_TYPE CT ON CT.PLAN_TYPE_ID=PM.PLAN_TYPE_ID
53
LEFT JOIN dbo.CM_DVDM CDM ON CDM.DVDM_ID=PM.COST_ID
54
LEFT JOIN dbo.PL_TRADE_REF REF ON REF.TRADE_ID = PT.TRADE_ID
55
LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=PM.BRANCH_ID
56
LEFT JOIN dbo.CM_DEPARTMENT CD ON CD.DEP_ID=PM.DEPT_ID
57
LEFT JOIN dbo.PL_IMPORT_DT IMDT ON IMDT.PLAN_ID=PT.PLAN_ID AND IMDT.TRADE_ID=PT.TRADE_ID
58
LEFT JOIN dbo.PL_IMPORT IM ON IM.IMPORT_ID=IMDT.IMPORT_ID
59
WHERE IM.IMP_YEAR = @p_YEAR AND PT.RECORD_STATUS='1' AND REF.REF_CODE=@P_REF_CODE
60
GROUP BY IM.PLAN_CODE,IM.IMP_NAME,IM.IMP_YEAR,IMDT.PLAN_TYPE_ID,IMDT.COST_ID,IMDT.BRANCH_ID,IMDT.DEP_ID,IMDT.PLAN_ID,IMDT.BRANCH_CODE,IMDT.DEP_CODE
61
OPEN Plan_Master;
62

    
63
	FETCH NEXT FROM Plan_Master INTO @PLAN_CODE,@PLAN_NAME,@YEAR,@IMP_QTY,@IMP_AMT, @PLAN_TYPE_ID,@COST_ID,@BRANCH_ID,@DEP_ID,@PLAN_ID,@BRANCH_CODE,@DEP_CODE
64
	
65
	WHILE @@FETCH_STATUS = 0	
66
	BEGIN	
67

    
68
		SET @PLAN_NAME=N'KẾ HOẠCH NGÂN SÁCH '+ CAST( @YEAR AS VARCHAR(10))
69
		SET @DEP_CODE=(SELECT DEP_CODE FROM dbo.CM_DEPARTMENT WHERE DEP_ID=@p_DEP_ID)
70
		SET @PLAN_CODE= @DEP_CODE+(SELECT RIGHT(CAST( @YEAR AS VARCHAR(10)),2))
71

    
72
		EXEC SYS_CodeMasters_Gen 'PL_MASTER', @PLAN_ID out
73
		IF @PLAN_ID='' OR @PLAN_ID IS NULL GOTO ABORT	
74
	
75
		INSERT INTO dbo.PL_MASTER
76
		(
77
			PLAN_ID, PLAN_CODE,PLAN_NAME,BRANCH_ID,DEPT_ID,EFFECT_DT,PLAN_TYPE,TOTAL_AMT,APPROVE_VALUE, 
78
			VERSON,YEAR,STATUS,NOTES,RECORD_STATUS, MAKER_ID,CREATE_DT,AUTH_STATUS,CHECKER_ID,APPROVE_DT,PLAN_TYPE_ID,COST_ID)
79
		VALUES
80
		(   @PLAN_ID,@PLAN_CODE,@PLAN_NAME,@p_BRANCH_ID,@p_DEP_ID,GETDATE(),'',@IMP_AMT, @IMP_AMT,      
81
			1,@YEAR,'1', N'Mở mới','1', @MARKER_ID,@EDIT_DT,'A', 'admin', GETDATE(), @PLAN_TYPE_ID,@COST_ID  
82
		)
83
		
84
		
85
		
86

    
87

    
88
		DECLARE Plan_Detail CURSOR FOR
89
		SELECT IMP_DT_ID,GOOD_ID,QTY,PT.AMT_APP,PT.NOTES,PT.TRADE_ID,REF.REF_CODE,REF.REF_NAME,PT.AMT_ETM,PT.AMT_EXE,PT.AMT_TF,PT.AMT_RECEIVE_TF 
90
		FROM dbo.PL_TRADEDETAIL PT
91
		LEFT JOIN dbo.PL_MASTER PM ON PM.PLAN_ID=PT.PLAN_ID
92
		LEFT JOIN dbo.CM_PLAN_TYPE CT ON CT.PLAN_TYPE_ID=PM.PLAN_TYPE_ID
93
		LEFT JOIN dbo.CM_DVDM CDM ON CDM.DVDM_ID=PM.COST_ID
94
		LEFT JOIN dbo.PL_TRADE_REF REF ON REF.TRADE_ID = PT.TRADE_ID
95
		LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=PM.BRANCH_ID
96
		LEFT JOIN dbo.CM_DEPARTMENT CD ON CD.DEP_ID=PM.DEPT_ID
97
		LEFT JOIN dbo.PL_IMPORT_DT IMDT ON IMDT.PLAN_ID=PT.PLAN_ID AND IMDT.TRADE_ID=PT.TRADE_ID
98
		LEFT JOIN dbo.PL_IMPORT IM ON IM.IMPORT_ID=IMDT.IMPORT_ID
99
		WHERE IM.IMP_YEAR = @p_YEAR AND PT.RECORD_STATUS='1' AND REF.REF_CODE=@P_REF_CODE AND PM.PLAN_TYPE_ID=@PLAN_TYPE_ID AND ISNULL(PM.COST_ID,'')=ISNULL(@COST_ID,'') AND PM.BRANCH_ID=@BRANCH_ID AND PM.DEPT_ID=@DEP_ID
100
		OPEN Plan_Detail
101
		FETCH NEXT FROM Plan_Detail INTO @IMP_DT_ID,@GOOD_ID,@QTY,@TOTAL_AMT,@NOTES,@TRADE_ID,@REF_CODE,@REF_NAME,@AMT_ETM,@AMT_EXE,@AMT_TF,@AMT_RECIVE_TF
102
		WHILE @@FETCH_STATUS = 0	
103
		BEGIN
104
			
105
			
106
			UPDATE dbo.PL_TRADEDETAIL SET PLAN_ID=@PLAN_ID WHERE TRADE_ID=@TRADE_ID
107
			UPDATE dbo.PL_IMPORT_DT SET PLAN_ID=@PLAN_ID,TRADE_ID=@TRADE_ID WHERE IMP_DT_ID=@IMP_DT_ID
108

    
109
			FETCH NEXT FROM Plan_Detail INTO @IMP_DT_ID,@GOOD_ID,@QTY,@TOTAL_AMT,@NOTES,@TRADE_ID,@REF_CODE,@REF_NAME,@AMT_ETM,@AMT_EXE,@AMT_TF,@AMT_RECIVE_TF
110
			END
111
			CLOSE Plan_Detail
112
			DEALLOCATE Plan_Detail
113
		FETCH NEXT FROM Plan_Master INTO @PLAN_CODE,@PLAN_NAME,@YEAR,@IMP_QTY,@IMP_AMT, @PLAN_TYPE_ID,@COST_ID,@BRANCH_ID,@DEP_ID,@PLAN_ID,@BRANCH_CODE,@DEP_CODE
114
	END
115
	CLOSE Plan_Master
116
	DEALLOCATE Plan_Master
117

    
118

    
119
COMMIT TRANSACTION;
120
SELECT '0' AS Result,
121
       '' ErrorDesc;
122
RETURN '0';
123
END TRY
124
BEGIN CATCH
125
	ROLLBACK TRANSACTION;
126
    SELECT '-1' AS Result,
127
			'' ErrorDesc;
128
    RETURN '-1';		
129
END CATCH
130
ABORT:
131
BEGIN
132
    ROLLBACK TRANSACTION;
133
    SELECT '-1' AS Result,
134
           '' ErrorDesc;
135
    RETURN '-1';
136
END;
137
    
138

    
139

    
140

    
141

    
142

    
143

    
144