1
|
|
2
|
ALTER PROCEDURE dbo.PL_COSTCENTER_Ins
|
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_CREATE_DT varchar(30) = NULL,
|
10
|
@p_AUTH_STATUS varchar(50) = NULL,
|
11
|
@p_CHECKER_ID varchar(20) = NULL,
|
12
|
@p_APPROVE_DT varchar(30) = 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))
|
19
|
-- SET @ERRORSYS = 'COST-0001'
|
20
|
IF ( EXISTS ( SELECT * FROM dbo.PL_COSTCENTER WHERE COST_CODE=@p_COST_CODE))
|
21
|
BEGIN
|
22
|
ROLLBACK TRANSACTION
|
23
|
SELECT '-1' Result, '' COST_ID, N'Mã đơn vị chuyên môn đã tồn tại' ErrorDesc
|
24
|
RETURN '-1'
|
25
|
END
|
26
|
DECLARE @DVDM_ID VARCHAR(20)
|
27
|
SET @DVDM_ID = (SELECT TOP(1) cd.DVDM_ID FROM CM_DVDM cd WHERE cd.DVDM_CODE ='0690802' AND cd.IS_DVDM=1)
|
28
|
|
29
|
IF (@DVDM_ID IS NULL)
|
30
|
BEGIN
|
31
|
EXEC SYS_CodeMasters_Gen 'CM_DVDM', @DVDM_ID OUT
|
32
|
IF @DVDM_ID='' OR @DVDM_ID IS NULL GOTO ABORT
|
33
|
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)
|
34
|
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);
|
35
|
END
|
36
|
|
37
|
|
38
|
DECLARE @l_COST_ID VARCHAR(15)
|
39
|
EXEC SYS_CodeMasters_Gen 'PL_COSTCENTER', @l_COST_ID out
|
40
|
IF @l_COST_ID='' OR @l_COST_ID IS NULL GOTO ABORT
|
41
|
|
42
|
INSERT INTO dbo.PL_COSTCENTER
|
43
|
(
|
44
|
COST_ID,
|
45
|
COST_CODE,
|
46
|
PLAN_TYPE_ID,
|
47
|
COST_NAME,
|
48
|
NOTES,
|
49
|
RECORD_STATUS,
|
50
|
AUTH_STATUS,
|
51
|
MAKER_ID,
|
52
|
CREATE_DT,
|
53
|
EDITER_ID,
|
54
|
EDIT_DT,
|
55
|
CHECKER_ID,
|
56
|
APPROVE_DT,
|
57
|
DVDM_ID
|
58
|
)
|
59
|
VALUES
|
60
|
( @l_COST_ID,
|
61
|
@p_COST_CODE, -- COST_CODE - varchar(20)
|
62
|
@p_PLAN_TYPE_ID, -- PLAN_TYPE_CODE - varchar(20)
|
63
|
@p_COST_NAME, -- COST_NAME - varchar(200)
|
64
|
@p_NOTES, -- NOTES - nvarchar(1000)
|
65
|
@p_RECORD_STATUS, -- RECORD_STATUS - varchar(1)
|
66
|
@p_AUTH_STATUS, -- AUTH_STATUS - varchar(1)
|
67
|
@p_MAKER_ID, -- MAKER_ID - varchar(15)
|
68
|
Convert(Datetime,@p_CREATE_DT,103), -- CREATE_DT - datetime
|
69
|
'', -- EDITER_ID - varchar(15)
|
70
|
NULL, -- EDIT_DT - datetime
|
71
|
@p_CHECKER_ID, -- CHECKER_ID - varchar(15)
|
72
|
Convert(Datetime,@p_APPROVE_DT,103), -- APPROVE_DT - datetime
|
73
|
(SELECT TOP(1) cd.DVDM_ID FROM CM_DVDM cd WHERE cd.DVDM_CODE =@p_COST_CODE AND cd.IS_DVDM=1)
|
74
|
)
|
75
|
|
76
|
Declare @hdoc INT
|
77
|
Exec sp_xml_preparedocument @hdoc Output, @p_XMLData
|
78
|
|
79
|
DECLARE CostDT CURSOR FOR
|
80
|
SELECT *
|
81
|
FROM OPENXML(@hDoc,'/Root/COSTDT',2)
|
82
|
WITH
|
83
|
(
|
84
|
BRANCH_ID VARCHAR(15),
|
85
|
DEP_ID varchar(15),
|
86
|
NOTES NVARCHAR(1000)
|
87
|
)
|
88
|
|
89
|
OPEN CostDT
|
90
|
|
91
|
|
92
|
DECLARE @BRANCH_ID VARCHAR(15),@DEP_ID varchar(15),@NOTES NVARCHAR(1000)
|
93
|
|
94
|
|
95
|
FETCH NEXT FROM CostDT INTO @BRANCH_ID, @DEP_ID,@NOTES
|
96
|
|
97
|
WHILE @@FETCH_STATUS = 0
|
98
|
BEGIN
|
99
|
|
100
|
DECLARE @l_COSTDT_ID VARCHAR(20)
|
101
|
EXEC SYS_CodeMasters_Gen 'PL_COSTCENTER_DT', @l_COSTDT_ID out
|
102
|
IF @l_COSTDT_ID='' OR @l_COSTDT_ID IS NULL GOTO ABORT
|
103
|
|
104
|
INSERT INTO dbo.PL_COSTCENTER_DT
|
105
|
(
|
106
|
COSTDT_ID,
|
107
|
COST_ID,
|
108
|
BRANCH_ID,
|
109
|
DEP_ID,
|
110
|
NOTES,
|
111
|
RECORD_STATUS,
|
112
|
MAKER_ID,
|
113
|
CREATE_DT
|
114
|
|
115
|
)
|
116
|
VALUES
|
117
|
( @l_COSTDT_ID, -- COSTDT_ID - varchar(20)
|
118
|
@l_COST_ID, -- COST_ID - varchar(20)
|
119
|
@BRANCH_ID, -- BRANCH_ID - varchar(15)
|
120
|
@DEP_ID, -- DEP_ID - varchar(15)
|
121
|
@NOTES, -- NOTES - nvarchar(1000)
|
122
|
'1', -- RECORD_STATUS - varchar(1)
|
123
|
@p_MAKER_ID, -- MAKER_ID - varchar(15)
|
124
|
Convert(Datetime,@p_CREATE_DT,103) -- CREATE_DT - datetime
|
125
|
|
126
|
)
|
127
|
|
128
|
IF @@Error <> 0 GOTO ABORT
|
129
|
|
130
|
FETCH NEXT FROM CostDT INTO @BRANCH_ID, @DEP_ID,@NOTES
|
131
|
PRINT @l_COSTDT_ID
|
132
|
END
|
133
|
CLOSE CostDT
|
134
|
DEALLOCATE CostDT
|
135
|
IF @@Error <> 0 GOTO ABORT
|
136
|
COMMIT TRANSACTION
|
137
|
SELECT '0' as Result, @l_COST_ID COST_ID, '' ErrorDesc
|
138
|
RETURN '0'
|
139
|
ABORT:
|
140
|
BEGIN
|
141
|
ROLLBACK TRANSACTION
|
142
|
SELECT '-1' as Result, '' COST_ID, '' ErrorDesc
|
143
|
RETURN '-1'
|
144
|
End
|
145
|
|