1
|
ALTER PROCEDURE [dbo].[PL_COSTCENTER_Upd]
|
2
|
@p_COST_ID VARCHAR(15)=NULL,
|
3
|
@p_COST_CODE varchar(15) = NULL,
|
4
|
@p_COST_NAME NVARCHAR(300) = NULL,
|
5
|
@p_PLAN_TYPE_ID varchar(15) = NULL,
|
6
|
@p_NOTES nvarchar(1000) = NULL,
|
7
|
@p_RECORD_STATUS varchar(1) = NULL,
|
8
|
@p_MAKER_ID varchar(20) = NULL,
|
9
|
@p_EDIT_DT varchar(25) = NULL,
|
10
|
@p_AUTH_STATUS varchar(50) = NULL,
|
11
|
@p_CHECKER_ID varchar(20) = NULL,
|
12
|
@p_APPROVE_DT varchar(25) = NULL,
|
13
|
@p_XMLData XML=NULL
|
14
|
AS
|
15
|
BEGIN TRANSACTION
|
16
|
--Validation is here
|
17
|
--DECLARE @ERRORSYS NVARCHAR(15) = ''
|
18
|
-- IF ( EXISTS ( SELECT * FROM dbo.PL_COSTCENTER WHERE COST_CODE =@p_COST_CODE AND COST_ID<>@p_COST_ID))
|
19
|
-- SET @ERRORSYS = 'CODE-0001'
|
20
|
--IF @ERRORSYS <> ''
|
21
|
--BEGIN
|
22
|
-- ROLLBACK TRANSACTION
|
23
|
-- SELECT '-1' as Result, @p_COST_ID COST_ID, N'Mã đơn vị đầu mối :' +@p_COST_ID+ N' đã tồn tại trong hệ thống' ErrorDesc
|
24
|
-- RETURN '-1'
|
25
|
--END
|
26
|
DECLARE @DVDM_ID VARCHAR(20), @KHOI_ID VARCHAR(15),@COST_ID_MAP_KHOI_OLD VARCHAR(15)
|
27
|
SET @COST_ID_MAP_KHOI_OLD =(SELECT TOP 1 COST_CODE FROM PL_COSTCENTER WHERE COST_ID =@p_COST_ID)
|
28
|
SET @DVDM_ID = (SELECT TOP(1) cd.DVDM_ID FROM CM_DVDM cd WHERE cd.DVDM_CODE =@p_COST_CODE AND (cd.IS_DVDM=1 OR cd.IS_DVCM =1))
|
29
|
--SET @KHOI_ID = (SELECT TOP(1) cd.DVDM_ID FROM CM_DVDM cd WHERE LEFT(cd.DVDM_CODE,5) =LEFT(@p_COST_CODE,5) AND cd.IS_KHOI=1)
|
30
|
SET @KHOI_ID = (SELECT TOP(1) cd.KHOI_ID FROM CM_DEPARTMENT cd WHERE DEP_CODE =@p_COST_CODE)
|
31
|
IF(@KHOI_ID IS NULL OR @KHOI_ID ='')
|
32
|
BEGIN
|
33
|
SET @KHOI_ID = (SELECT TOP(1) cd.DVDM_ID FROM CM_DVDM cd WHERE LEFT(cd.DVDM_CODE,5) =LEFT(@p_COST_CODE,5) AND cd.IS_KHOI=1)
|
34
|
END
|
35
|
IF(@DVDM_ID IS NOT NULL AND @DVDM_ID <> '')
|
36
|
BEGIN
|
37
|
UPDATE dbo.PL_COSTCENTER SET
|
38
|
COST_CODE=@p_COST_CODE,
|
39
|
[PLAN_TYPE_ID] = @p_PLAN_TYPE_ID,
|
40
|
[COST_NAME] = @p_COST_NAME,
|
41
|
[NOTES] = @p_NOTES,
|
42
|
[RECORD_STATUS] = @p_RECORD_STATUS,
|
43
|
[EDITER_ID] = @p_MAKER_ID,
|
44
|
[EDIT_DT] = CONVERT(DATETIME, @p_EDIT_DT, 103),
|
45
|
[AUTH_STATUS] = @p_AUTH_STATUS,
|
46
|
[CHECKER_ID] = @p_CHECKER_ID,
|
47
|
[APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103),
|
48
|
DVDM_ID =@DVDM_ID
|
49
|
WHERE COST_ID = @p_COST_ID
|
50
|
END
|
51
|
ELSE
|
52
|
BEGIN
|
53
|
IF (@DVDM_ID IS NULL)
|
54
|
BEGIN
|
55
|
EXEC SYS_CodeMasters_Gen 'CM_DVDM', @DVDM_ID OUT
|
56
|
IF @DVDM_ID='' OR @DVDM_ID IS NULL GOTO ABORT
|
57
|
INSERT INTO CM_DVDM (DVDM_ID, DVDM_CODE, DVDM_NAME, NOTES, RECORD_STATUS, AUTH_STATUS, MAKER_ID, CREATE_DT, EDITER_ID, EDIT_DT, CHECKER_ID, APPROVE_DT, IS_DVDM, IS_KHOI, IS_DVCM, IS_PTGD, IS_GDK)
|
58
|
VALUES (@DVDM_ID, @p_COST_CODE, @p_COST_NAME, NULL, 1, 'A', @p_MAKER_ID, GETDATE(), '', GETDATE(), @p_MAKER_ID, GETDATE(), 1, 0, 0, 0, 0);
|
59
|
--- UPDATE LAI DVCM
|
60
|
UPDATE dbo.PL_COSTCENTER SET
|
61
|
COST_CODE=@p_COST_CODE,
|
62
|
[PLAN_TYPE_ID] = @p_PLAN_TYPE_ID,
|
63
|
[COST_NAME] = @p_COST_NAME,
|
64
|
[NOTES] = @p_NOTES,
|
65
|
[RECORD_STATUS] = @p_RECORD_STATUS,
|
66
|
[EDITER_ID] = @p_MAKER_ID,
|
67
|
[EDIT_DT] = CONVERT(DATETIME, @p_EDIT_DT, 103),
|
68
|
[AUTH_STATUS] = @p_AUTH_STATUS,
|
69
|
[CHECKER_ID] = @p_CHECKER_ID,
|
70
|
[APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103),
|
71
|
DVDM_ID =@DVDM_ID
|
72
|
WHERE COST_ID = @p_COST_ID
|
73
|
--- END
|
74
|
END
|
75
|
END
|
76
|
--- KIEM TRA XEM NEU COSTCENTER ĐÓ CHƯA ĐƯỢC MAPPING VỚI KHỐI THÌ THỰC HIỆN MAPPING
|
77
|
UPDATE PL_COSTCENTER SET DVDM_ID =@KHOI_ID WHERE COST_CODE =@COST_ID_MAP_KHOI_OLD AND COST_ID <> @p_COST_ID
|
78
|
--- LUCTV 11.04.2023 THÊM VÀO BẢNG CM_DVDM_KHOI
|
79
|
--IF(EXISTS(SELECT * FROM CM_DVDM_KHOI WHERE DVDM_ID =@DVDM_ID))
|
80
|
--BEGIN
|
81
|
-- UPDATE CM_DVDM_KHOI SET KHOI_ID =@KHOI_ID WHERE DVDM_ID =@DVDM_ID
|
82
|
--END
|
83
|
--ELSE
|
84
|
--BEGIN
|
85
|
-- INSERT INTO CM_DVDM_KHOI (DVDM_ID, KHOI_ID) VALUES (@DVDM_ID, @KHOI_ID)
|
86
|
--END
|
87
|
--- END LUCTV 11.04.2023
|
88
|
IF @@Error <> 0 GOTO ABORT
|
89
|
|
90
|
Declare @hdoc INT
|
91
|
Exec sp_xml_preparedocument @hdoc Output, @p_XMLData
|
92
|
|
93
|
DECLARE CostDT CURSOR FOR
|
94
|
SELECT *
|
95
|
FROM OPENXML(@hDoc,'/Root/COSTDT',2)
|
96
|
WITH
|
97
|
(
|
98
|
BRANCH_ID VARCHAR(15),
|
99
|
DEP_ID varchar(15),
|
100
|
NOTES NVARCHAR(1000)
|
101
|
)
|
102
|
|
103
|
OPEN CostDT
|
104
|
DECLARE @BRANCH_ID VARCHAR(15),@DEP_ID varchar(15),@NOTES NVARCHAR(1000)
|
105
|
|
106
|
DELETE FROM dbo.PL_COSTCENTER_DT WHERE COST_ID=@p_COST_ID
|
107
|
|
108
|
FETCH NEXT FROM CostDT INTO @BRANCH_ID, @DEP_ID,@NOTES
|
109
|
|
110
|
WHILE @@FETCH_STATUS = 0
|
111
|
BEGIN
|
112
|
DECLARE @l_COSTDT_ID VARCHAR(20)
|
113
|
EXEC SYS_CodeMasters_Gen 'PL_COSTCENTER_DT', @l_COSTDT_ID out
|
114
|
IF @l_COSTDT_ID='' OR @l_COSTDT_ID IS NULL GOTO ABORT
|
115
|
INSERT INTO dbo.PL_COSTCENTER_DT
|
116
|
(
|
117
|
COSTDT_ID,
|
118
|
COST_ID,
|
119
|
BRANCH_ID,
|
120
|
DEP_ID,
|
121
|
NOTES,
|
122
|
RECORD_STATUS,
|
123
|
MAKER_ID,
|
124
|
CREATE_DT
|
125
|
|
126
|
)
|
127
|
VALUES
|
128
|
( @l_COSTDT_ID, -- COSTDT_ID - varchar(20)
|
129
|
@p_COST_ID, -- COST_ID - varchar(20)
|
130
|
@BRANCH_ID, -- BRANCH_ID - varchar(15)
|
131
|
@DEP_ID, -- DEP_ID - varchar(15)
|
132
|
@NOTES, -- NOTES - nvarchar(1000)
|
133
|
'1', -- RECORD_STATUS - varchar(1)
|
134
|
@p_MAKER_ID, -- MAKER_ID - varchar(15)
|
135
|
NULL -- CREATE_DT - datetime --26042023_secretkey
|
136
|
)
|
137
|
|
138
|
IF @@Error <> 0 GOTO ABORT
|
139
|
FETCH NEXT FROM CostDT INTO @BRANCH_ID, @DEP_ID,@NOTES
|
140
|
PRINT @l_COSTDT_ID
|
141
|
END
|
142
|
CLOSE CostDT
|
143
|
DEALLOCATE CostDT
|
144
|
---- 12.04.2023 LUCTV BỔ SUNG MAPPING CM_DVDM_KHỐI
|
145
|
UPDATE CM_DVDM_KHOI SET KHOI_ID =@KHOI_ID WHERE DVDM_ID =@DVDM_ID
|
146
|
---- END LUCTV 12.04.2023
|
147
|
COMMIT TRANSACTION
|
148
|
SELECT '0' as Result, @p_COST_ID COST_ID, '' ErrorDesc
|
149
|
RETURN '0'
|
150
|
ABORT:
|
151
|
BEGIN
|
152
|
ROLLBACK TRANSACTION
|
153
|
SELECT '-1' as Result, '' COST_ID, '' ErrorDesc
|
154
|
RETURN '-1'
|
155
|
End
|