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
|