Project

General

Profile

CM_DEPT_BLOCKMAP_Upd.txt

Luc Tran Van, 08/10/2022 01:54 PM

 
1
ALTER PROC [dbo].[CM_DEPT_BLOCKMAP_Upd]
2
	@p_DVDM_ID VARCHAR(20) = NULL,
3
	@p_DVDM_CODE	varchar(15)  = NULL,
4
	@p_DVDM_NAME	NVARCHAR(300)  = NULL,
5
	@p_NOTES	nvarchar(1000)  = NULL,
6
	@p_RECORD_STATUS	varchar(1)  = NULL,
7
	@p_MAKER_ID	varchar(20)  = NULL,
8
	@p_CREATE_DT	NVARCHAR(25) = NULL,
9
	@p_AUTH_STATUS	varchar(50)  = NULL,
10
	@p_CHECKER_ID	varchar(20)  = NULL,
11
	@p_APPROVE_DT	NVARCHAR(25) = NULL,
12
	@p_EDIT_DT NVARCHAR(25) = NULL,
13
	@p_EDITER_ID VARCHAR(20) = NULL,
14
	@p_IS_PTGD VARCHAR(1) = NULL,
15
	@p_IS_GDK VARCHAR(1) = NULL,
16
	@p_XmlData XML = NULL
17
AS
18
DECLARE @COST_ID VARCHAR(20), @COST_CODE VARCHAR(20), @PLAN_TYPE_ID VARCHAR(20), @COST_NAME NVARCHAR(200), @NOTES NVARCHAR(1000),
19
	@BRANCH_ID VARCHAR(15), @DEP_ID VARCHAR(15), @COSTDT_ID VARCHAR(20)
20

    
21
IF ( EXISTS ( SELECT * FROM dbo.CM_DVDM WHERE DVDM_CODE=@p_DVDM_CODE AND DVDM_ID <> @p_DVDM_ID))
22
	BEGIN
23
		SELECT '-1' Result, ''  DVDM_ID, N'Mã khối đã tồn tại' ErrorDesc
24
		RETURN '-1'
25
	END
26

    
27
DECLARE @hdoc INT;
28
EXEC sp_xml_preparedocument @hdoc OUTPUT, @p_XmlData;
29
DECLARE XmlData CURSOR FOR
30
SELECT *
31
FROM
32
	OPENXML(@hdoc, '/Root/XmlData', 2)
33
	WITH(COST_ID VARCHAR(20), COST_CODE VARCHAR(20), PLAN_TYPE_ID VARCHAR(20), COST_NAME NVARCHAR(200), NOTES NVARCHAR(1000),
34
		BRANCH_ID VARCHAR(15), DEP_ID VARCHAR(15), COSTDT_ID VARCHAR(20))
35
OPEN XmlData;
36

    
37
BEGIN TRANSACTION
38

    
39
	UPDATE dbo.CM_DVDM SET 
40
		DVDM_CODE = @p_DVDM_CODE,
41
		DVDM_NAME = @p_DVDM_NAME,
42
		NOTES = @p_NOTES,
43
		RECORD_STATUS = @p_RECORD_STATUS,
44
		AUTH_STATUS = @p_AUTH_STATUS,
45
		EDITER_ID = @p_EDITER_ID,
46
		EDIT_DT = CONVERT(DATETIME, @p_EDIT_DT, 103),
47
		IS_PTGD = CONVERT(BIT, @p_IS_PTGD),
48
		IS_GDK = CONVERT(BIT, @p_IS_GDK)
49
	WHERE DVDM_ID = @p_DVDM_ID
50
	
51
	
52
	IF @@Error <> 0 GOTO ABORT
53

    
54
	DELETE FROM dbo.PL_COSTCENTER WHERE DVDM_ID = @p_DVDM_ID
55
	DELETE FROM dbo.PL_COSTCENTER_DT WHERE COST_ID = (SELECT COST_ID FROM dbo.PL_COSTCENTER WHERE DVDM_ID = @p_DVDM_ID)
56
	FETCH NEXT FROM XmlData
57
		INTO @COST_ID, @COST_CODE, @PLAN_TYPE_ID, @COST_NAME, @NOTES, @BRANCH_ID, @DEP_ID, @COSTDT_ID
58
	WHILE @@fetch_status=0 
59
	BEGIN
60
		DECLARE @l_COST_ID VARCHAR(20)
61
		DECLARE @l_COSTDT_ID VARCHAR(20)
62

    
63
		DECLARE @l_COST_CODE VARCHAR(20)
64
		DECLARE @l_COST_NAME NVARCHAR(200)
65

    
66
		SELECT @l_COST_CODE = DEP_CODE FROM dbo.CM_DEPARTMENT WHERE DEP_ID = @DEP_ID
67
		SELECT @l_COST_NAME = DEP_NAME FROM dbo.CM_DEPARTMENT WHERE DEP_ID = @DEP_ID
68
		
69
		--PHONGNT 3/8/22 PHÒNG BAN CHỈ THUỘC 1 KHỐI
70
		DELETE PL_COSTCENTER WHERE COST_ID IN (SELECT COST_ID FROM PL_COSTCENTER_DT WHERE BRANCH_ID=@BRANCH_ID AND DEP_ID=@DEP_ID)
71
		DELETE  PL_COSTCENTER_DT WHERE BRANCH_ID=@BRANCH_ID AND DEP_ID=@DEP_ID
72
		--END 
73

    
74
		EXEC SYS_CodeMasters_Gen 'PL_COSTCENTER', @l_COST_ID out
75
		IF @l_COST_ID='' OR @l_COST_ID IS NULL GOTO ABORT
76

    
77
		INSERT dbo.PL_COSTCENTER
78
		(
79
		    COST_ID,
80
		    COST_CODE,
81
		    PLAN_TYPE_ID,
82
		    COST_NAME,
83
		    NOTES,
84
		    RECORD_STATUS,
85
		    AUTH_STATUS,
86
		    MAKER_ID,
87
		    CREATE_DT,
88
		    EDITER_ID,
89
		    EDIT_DT,
90
		    DVDM_ID
91
		)
92
		VALUES
93
		(   @l_COST_ID,        -- COST_ID - varchar(20)
94
		    @l_COST_CODE,        -- COST_CODE - varchar(20)
95
		    @PLAN_TYPE_ID,        -- PLAN_TYPE_ID - varchar(20)
96
		    @l_COST_NAME,       -- COST_NAME - nvarchar(200)
97
		    @NOTES,       -- NOTES - nvarchar(1000)
98
		    @p_RECORD_STATUS,        -- RECORD_STATUS - varchar(1)
99
		    @p_AUTH_STATUS,        -- AUTH_STATUS - varchar(1)
100
		    @p_EDITER_ID,        -- MAKER_ID - varchar(15)
101
		    CONVERT(DATETIME, @p_EDIT_DT, 103), -- CREATE_DT - datetime
102
		    @p_EDITER_ID,        -- EDITER_ID - varchar(15)
103
		    CONVERT(DATETIME, @p_EDIT_DT, 103), -- EDIT_DT - datetime
104
		    @p_DVDM_ID         -- DVDM_ID - varchar(15)
105
		)
106
		IF @@error<>0 GOTO ABORT
107

    
108
		EXEC SYS_CodeMasters_Gen 'PL_COSTCENTER_DT', @l_COSTDT_ID out
109
		IF @l_COSTDT_ID='' OR @l_COSTDT_ID IS NULL GOTO ABORT
110

    
111
		INSERT dbo.PL_COSTCENTER_DT
112
		(
113
		    COSTDT_ID,
114
		    COST_ID,
115
		    BRANCH_ID,
116
		    DEP_ID,
117
		    NOTES,
118
		    RECORD_STATUS,
119
		    MAKER_ID,
120
		    CREATE_DT
121
		)
122
		VALUES
123
		(   @l_COSTDT_ID,       -- COSTDT_ID - varchar(20)
124
		    @l_COST_ID,       -- COST_ID - varchar(20)
125
		    @BRANCH_ID,       -- BRANCH_ID - varchar(15)
126
		    @DEP_ID,       -- DEP_ID - varchar(15)
127
		    @NOTES,      -- NOTES - nvarchar(1000)
128
		    @p_RECORD_STATUS,       -- RECORD_STATUS - varchar(1)
129
		    @p_MAKER_ID,       -- MAKER_ID - varchar(15)
130
		    CONVERT(DATETIME, @p_CREATE_DT, 103) -- CREATE_DT - datetime
131
		 )
132
		 IF @@error<>0 GOTO ABORT
133

    
134
		 --PHONGNT 3/8/22 MAPPING KHOI-PB
135
		  UPDATE dbo.CM_DEPARTMENT SET KHOI_ID=@p_DVDM_ID WHERE DEP_ID=@DEP_ID
136
		  IF @@error<>0 GOTO ABORT
137
		--END
138
		FETCH NEXT FROM XmlData
139
			INTO @COST_ID, @COST_CODE, @PLAN_TYPE_ID, @COST_NAME, @NOTES, @BRANCH_ID, @DEP_ID, @COSTDT_ID
140
	END
141
	CLOSE XmlData;
142
	DEALLOCATE XmlData;
143
COMMIT TRANSACTION
144
SELECT '0' AS Result, '' DVDM_ID, '' ErrorDesc
145
RETURN '0'
146
ABORT:
147
BEGIN
148
	CLOSE XmlData;
149
	DEALLOCATE XmlData;
150
	ROLLBACK TRANSACTION
151
	SELECT '-1' AS Result, '' ErrorDesc
152
	RETURN '-1'
153
END