Project

General

Profile

PL_COSTCENTER_Ins.txt

Luc Tran Van, 10/27/2022 05:32 PM

 
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