Project

General

Profile

CM_EMPLOYEE_SYNC.txt

Luc Tran Van, 07/14/2020 01:32 PM

 
1
ALTER PROCEDURE [dbo].[CM_EMPLOYEE_Sync]
2
@p_ACTION	varchar(15)  = NULL,
3
@p_CODE	varchar(15)  = NULL,
4
@p_NAME	nvarchar(500)  = NULL,
5
@p_BRANCH_CODE	varchar(15)  = NULL,
6
@p_DEP_CODE	varchar(15)  = NULL,
7
--- BO SUNG THEM MA CHUC DANH, TEN  CHUC DANH
8
@p_USER_DOMAIN VARCHAR(15) = NULL,
9
@p_MA_CHUC_DANH NVARCHAR(50) = NULL,
10
@p_TEN_CHUC_DANH NVARCHAR(500) = NULL
11
AS
12
--Validation is here
13
DECLARE @ERRORSYS NVARCHAR(15) = '' 
14
DECLARE @p_BRANCH_NAME NVARCHAR(500) =''
15
DECLARE @p_BRANCH_TYPE NVARCHAR(50) =''
16
DECLARE @p_BRANCH_ID NVARCHAR(50) =''
17
DECLARE @p_DEP_ID NVARCHAR(50) =''
18

    
19
SET @p_BRANCH_NAME = (SELECT TOP 1A.BRANCH_NAME FROM CM_BRANCH A WHERE A.BRANCH_CODE = @p_BRANCH_CODE)
20
SET @p_BRANCH_TYPE = (SELECT TOP 1A.BRANCH_TYPE FROM CM_BRANCH A WHERE A.BRANCH_CODE = @p_BRANCH_CODE)
21
SET @p_BRANCH_ID   = (SELECT TOP 1 A.BRANCH_ID FROM CM_BRANCH A WHERE A.BRANCH_CODE = @p_BRANCH_CODE)
22
SET @p_DEP_ID      = (SELECT TOP 1 A.DEP_ID FROM CM_DEPARTMENT A WHERE A.DEP_CODE = @p_DEP_CODE AND A.BRANCH_ID =@p_BRANCH_ID)
23

    
24
--- LUCTV BO SUNG NGAY 08 07 2020
25
DECLARE @ROLE_ID VARCHAR(20) =''
26
SET @ROLE_ID =(SELECT TOP 1 ROLE_ID FROM CM_MAPPING_CHUCDANH_ROLE WHERE MA_CHUC_DANH = @p_MA_CHUC_DANH AND TEN_CHUC_DANH =@p_TEN_CHUC_DANH)
27
DECLARE @EMAIL VARCHAR(50) =''
28
SET @EMAIL =@p_USER_DOMAIN+'@vietcapitalbank.com.vn'
29
----END LUCTV BO SUNG 
30
BEGIN TRANSACTION
31
		IF(@p_ACTION ='I' OR @p_ACTION ='U')
32
		BEGIN
33
			--KIEM TRA MA NHAN VIEN KHONG DUOC BO TRONG
34
			IF (@p_CODE='' OR @p_CODE IS NULL)
35
			BEGIN
36
				ROLLBACK TRANSACTION
37
				SELECT '-1' Result, ''  EMP_ID, N'Mã nhân viên không được bỏ trống' ErrorDesc
38
				RETURN '-1'
39
			END
40
			--KIEM TRA MA NHAN VIEN KHONG DUOC BO TRONG
41
			IF (@p_NAME='' OR @p_NAME IS NULL)
42
			BEGIN
43
				ROLLBACK TRANSACTION
44
				SELECT '-1' Result, ''  EMP_ID, N'Tên nhân viên không được bỏ trống' ErrorDesc
45
				RETURN '-1'
46
			END
47
			--KIEM TRA DON VI NAY CO TON TAI HAY KHONG
48
			IF (@p_BRANCH_CODE='' OR @p_BRANCH_CODE IS NULL)
49
			BEGIN
50
				ROLLBACK TRANSACTION
51
				SELECT '-1' Result, ''  EMP_ID, N'Mã đơn vị không được bỏ trống' ErrorDesc
52
				RETURN '-1'
53
			END
54
			---------------------------------------------------------------------------------
55
			--KIEM TRA PHONG BAN NAY CO TON TAI HAY KHONG
56
			IF (@p_DEP_CODE='' OR @p_DEP_CODE IS NULL)
57
			BEGIN
58
				ROLLBACK TRANSACTION
59
				SELECT '-1' Result, ''  EMP_ID, N'Mã phòng ban không được bỏ trống' ErrorDesc
60
				RETURN '-1'
61
			END
62
			---------------------------------------------------------------------------------
63
			---LUCTV BO SUNG NGAY 08 07 2020
64
			--KIEM TRA USER DOMAIN KHONG DUOC RONG
65
			IF (@p_USER_DOMAIN='' OR @p_USER_DOMAIN IS NULL)
66
			BEGIN
67
				ROLLBACK TRANSACTION
68
				SELECT '-1' Result, ''  EMP_ID, N'User domain không được để trống'  ErrorDesc
69
				RETURN '-1'
70
			END
71
			--KIEM TRA MA CHUC DANH KHAC RONG
72
			IF (@p_MA_CHUC_DANH='' OR @p_MA_CHUC_DANH IS NULL)
73
			BEGIN
74
				ROLLBACK TRANSACTION
75
				SELECT '-1' Result, ''  EMP_ID, N'Mã chức danh không được để trống'  ErrorDesc
76
				RETURN '-1'
77
			END
78
			--KIEM TRA TEN CHUC DANH KHAC RONG
79
			IF (@p_TEN_CHUC_DANH='' OR @p_TEN_CHUC_DANH IS NULL)
80
			BEGIN
81
				ROLLBACK TRANSACTION
82
				SELECT '-1' Result, ''  EMP_ID, N'Mã chức danh không được để trống'  ErrorDesc
83
				RETURN '-1'
84
			END
85
			----KIEM TRA TEN CHUC DANH CO TON TAI TRONG DANH SACH CHUC DANH VCCB CAP HAY KHONG
86
			--IF (NOT EXISTS(SELECT * FROM CM_MAPPING_CHUCDANH_ROLE WHERE MA_CHUC_DANH =@p_MA_CHUC_DANH))
87
			--BEGIN
88
			--	ROLLBACK TRANSACTION
89
			--	SELECT '-1' Result, ''  EMP_ID, N'Mã chức danh này chưa tồn tại trong hệ thống'  ErrorDesc
90
			--	RETURN '-1'
91
			--END
92
			----KIEM TRA TEN CHUC DANH CO TON TAI TRONG DANH SACH CHUC DANH VCCB CAP HAY KHONG
93
			--IF (NOT EXISTS(SELECT * FROM CM_MAPPING_CHUCDANH_ROLE WHERE TEN_CHUC_DANH =@p_TEN_CHUC_DANH))
94
			--BEGIN
95
			--	ROLLBACK TRANSACTION
96
			--	SELECT '-1' Result, ''  EMP_ID, N'Tên chức danh này chưa tồn tại trong hệ thống'  ErrorDesc
97
			--	RETURN '-1'
98
			--END
99
			-----------------------------------------------------------------------------------
100
			--KIEM TRA ROLE NAY CO TON TAI HAY KHONG
101
			IF (@ROLE_ID='' OR @ROLE_ID IS NULL)
102
			BEGIN
103
				SET @ROLE_ID ='NVTT'
104
				--ROLLBACK TRANSACTION
105
				--SELECT '-1' Result, ''  EMP_ID, N'Chưa có ROLE tương ứng cho chức danh có mã ' +@p_MA_CHUC_DANH  ErrorDesc
106
				--RETURN '-1'
107
			END
108
			---------------------------------------------------------------------------------
109
		END
110
		IF(@p_ACTION='I')
111
		BEGIN
112
		    -- INSERT NHAN VIEN NAY VAO BANG TAMP
113
			INSERT INTO CM_EMPLOYEE_LOG (EMP_CODE,EMP_NAME,BRANCH_CODE,DEP_CODE,USER_DOMAIN,POS_CODE,POS_NAME,CREATE_DT) 
114
			VALUES (@p_CODE,@p_NAME,@p_BRANCH_CODE,@p_DEP_CODE,@p_USER_DOMAIN,@p_MA_CHUC_DANH,@p_TEN_CHUC_DANH,GETDATE())
115
			--KIEM TRA NHAN VIEN NAY CO TON TAI HAY KHONG
116
			IF (EXISTS ( SELECT * FROM CM_EMPLOYEE WHERE EMP_CODE=@p_CODE))
117
			BEGIN
118
				SET @ERRORSYS = 'EMP-0001'
119
				ROLLBACK TRANSACTION
120
				SELECT '-1' Result, ''  EMP_ID, N'Mã nhân viên này đã tồn tại' ErrorDesc
121
				RETURN '-1'
122
			END
123
			--KIEM TRA DON VI NAY CO TON TAI HAY KHONG
124
			IF (NOT EXISTS ( SELECT * FROM CM_BRANCH WHERE BRANCH_ID =@p_BRANCH_ID))
125
			BEGIN
126
				ROLLBACK TRANSACTION
127
				SELECT '-1' Result, ''  EMP_ID, N'Mã đơn vị này không tồn tại' ErrorDesc
128
				RETURN '-1'
129
			END
130
			---------------------------------------------------------------------------------
131
			--KIEM TRA PHONG BAN NAY CO TON TAI HAY KHONG
132
			IF (NOT EXISTS ( SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE =@p_DEP_CODE))
133
			BEGIN
134
				ROLLBACK TRANSACTION
135
				SELECT '-1' Result, ''  EMP_ID, N'Mã phòng ban: '+@p_DEP_CODE+ N' không tồn tại' ErrorDesc
136
				RETURN '-1'
137
			END
138
			---------------------------------------------------------------------------------
139
			--KIEM TRA PHONG BAN CO THUOC VE DUNG DON VI CUA NO HAY KHONG
140
			IF (NOT EXISTS ( SELECT * FROM CM_DEPARTMENT WHERE BRANCH_ID =@p_BRANCH_ID AND DEP_ID=@p_DEP_ID))
141
			BEGIN
142
				ROLLBACK TRANSACTION
143
				SELECT '-1' Result, ''  EMP_ID, N'Phòng ban có mã '+@p_DEP_CODE+ N' không thuộc về đơn vị '+@p_BRANCH_CODE ErrorDesc
144
				RETURN '-1'
145
			END
146
			---------------------------------------------------------------------------------
147
			--LUCTV 09072020 BO SUNG KIEM TRA USER DOMAIN DA TON TAI
148
			IF (EXISTS ( SELECT * FROM TL_USER WHERE TLNANME =@p_USER_DOMAIN))
149
			BEGIN
150
				ROLLBACK TRANSACTION
151
				SELECT '-1' Result, ''  EMP_ID, N'Mã user domain: '+@p_USER_DOMAIN +N' đã tồn tại trong hệ thống'  ErrorDesc
152
				RETURN '-1'
153
			END
154
			--LUCTV 09072020 BO SUNG KIEM TRA HO VA TEN DA TON TAI
155
			--IF (EXISTS ( SELECT * FROM CM_EMPLOYEE WHERE EMP_NAME =@p_NAME))
156
			--BEGIN
157
			--	ROLLBACK TRANSACTION
158
			--	SELECT '-1' Result, ''  EMP_ID, N'Tên nhân viên '+@p_NAME +N' đã tồn tại trong hệ thống'  ErrorDesc
159
			--	RETURN '-1'
160
			--END
161
			--KIEM TRA ROLE CO HOP LE HAY KHONG
162
			IF (NOT EXISTS ( SELECT * FROM TL_SYSROLE WHERE ROLE_ID =@ROLE_ID))
163
			BEGIN
164
				ROLLBACK TRANSACTION
165
				SELECT '-1' Result, ''  EMP_ID, N'Role không tồn tại'+@ROLE_ID ErrorDesc
166
				RETURN '-1'
167
			END
168
			DECLARE @l_EMP_ID VARCHAR(15)
169
			EXEC SYS_CodeMasters_Gen 'CM_EMPLOYEE', @l_EMP_ID out		
170
			IF @l_EMP_ID='' OR @l_EMP_ID IS NULL GOTO ABORT
171
			print @l_EMP_ID
172
			INSERT INTO CM_EMPLOYEE([EMP_ID],[EMP_CODE],[EMP_NAME],[BRANCH_ID],[DEP_ID],[NOTES],[RECORD_STATUS],[AUTH_STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID],[APPROVE_DT])
173
			VALUES(@l_EMP_ID ,@p_CODE ,@p_NAME ,@p_BRANCH_ID ,@p_DEP_ID ,NULL ,'1' ,'A' ,NULL ,CONVERT(DATETIME, GETDATE(), 103) ,NULL ,CONVERT(DATETIME, GETDATE(), 103) )
174

    
175
			---- DONG BO XONG CM_EMPLOYEE THI DONG BO NGUOI DUNG LUON - LUCTV BO SUNG NGAY 08 07 2020
176
			EXEC [TL_USER_Sync] 'I',@p_USER_DOMAIN,@p_NAME,@p_BRANCH_CODE,@p_DEP_CODE,@EMAIL,@ROLE_ID
177

    
178
		END
179
		ELSE IF(@p_ACTION='U')
180
		BEGIN
181
			DECLARE @EMP_ID VARCHAR(15)
182
			SET @EMP_ID =(SELECT EMP_ID FROM CM_EMPLOYEE WHERE EMP_CODE=@p_CODE)
183
			--KIEM TRA MA NHAN VIEN CO TON TAI HAY KHONG
184
			IF (NOT EXISTS ( SELECT * FROM CM_EMPLOYEE WHERE EMP_CODE = @p_CODE))	 
185
			BEGIN
186
				ROLLBACK TRANSACTION
187
				SELECT '-1' Result, ''  EMP_ID, N'Mã nhân viên không tồn tại' ErrorDesc 
188
				RETURN '-1'
189
			END
190
			--KIEM TRA XEM CUNG MA CODE DO CO BI TRUNG VOI NHUNG NHAN VIEN KHAC HAY KHONG
191
			IF (EXISTS ( SELECT * FROM CM_EMPLOYEE WHERE EMP_CODE = @p_CODE AND EMP_ID <> @EMP_ID))	 
192
			BEGIN
193
				SET @ERRORSYS = 'EMP-0001'
194
				ROLLBACK TRANSACTION
195
				SELECT ErrorCode Result, ''  EMP_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
196
				RETURN '-1'
197
			END			
198
			---------------------------------------------------------------------------------
199
			--KIEM TRA DON VI NAY CO TON TAI HAY KHONG
200
			IF (NOT EXISTS ( SELECT * FROM CM_BRANCH WHERE BRANCH_ID =@p_BRANCH_ID))
201
			BEGIN
202
				ROLLBACK TRANSACTION
203
				SELECT '-1' Result, ''  EMP_ID, N'Mã đơn vị này không tồn tại' ErrorDesc
204
				RETURN '-1'
205
			END
206
			--KIEM TRA PHONG BAN NAY CO TON TAI HAY KHONG
207
			IF (NOT EXISTS ( SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE =@p_DEP_CODE))
208
			BEGIN
209
				ROLLBACK TRANSACTION
210
				SELECT '-1' Result, ''  EMP_ID, N'Mã phòng ban này không tồn tại' ErrorDesc
211
				RETURN '-1'
212
			END
213
			---------------------------------------------------------------------------------
214
			--KIEM TRA PHONG BAN CO THUOC VE DUNG DON VI CUA NO HAY KHONG
215
			IF (NOT EXISTS ( SELECT * FROM CM_DEPARTMENT WHERE BRANCH_ID =@p_BRANCH_ID AND DEP_ID =@p_DEP_ID))
216
			BEGIN
217
				ROLLBACK TRANSACTION
218
				SELECT '-1' Result, ''  EMP_ID, N'Phòng ban có mã '+@p_DEP_CODE+ N' không thuộc về đơn vị '+@p_BRANCH_CODE ErrorDesc
219
				RETURN '-1'
220
			END
221
			---------------------------------------------------------------------------------
222
				UPDATE CM_EMPLOYEE 
223
				SET [EMP_CODE] = @p_CODE,
224
				[EMP_NAME] = @p_NAME,
225
				[BRANCH_ID] = @p_BRANCH_ID,
226
				[DEP_ID] = @p_DEP_ID
227
				WHERE  EMP_CODE= @p_CODE
228
				IF @@Error <> 0 GOTO ABORT	
229
				---- DONG BO XONG CM_EMPLOYEE THI DONG BO NGUOI DUNG LUON - LUCTV BO SUNG NGAY 08 07 2020
230
				EXEC [TL_USER_Sync] 'U',@p_USER_DOMAIN,@p_NAME,@p_BRANCH_CODE,@p_DEP_CODE,@EMAIL,@ROLE_ID
231
				---  END LUCTV
232
		END
233
		ELSE IF(@p_ACTION='D')
234
		BEGIN
235
			--KIEM TRA XEM MA NHAN VIEN CO TON TAI HAY KHONG
236
			IF (NOT EXISTS ( SELECT * FROM CM_EMPLOYEE WHERE  EMP_CODE= @p_CODE))
237
			BEGIN
238
				ROLLBACK TRANSACTION
239
				SELECT '-1' Result, N'Mã nhân viên không tồn tại' ErrorDesc
240
				RETURN '-1'
241
			END
242
			BEGIN
243
			IF( (SELECT AUTH_STATUS FROM CM_EMPLOYEE WHERE  EMP_CODE= @p_CODE) = 'A')
244
			BEGIN
245
				UPDATE CM_EMPLOYEE SET RECORD_STATUS = '0' WHERE EMP_CODE=@p_CODE
246
				IF @@Error <> 0 GOTO ABORT
247
			END
248
			ELSE
249
			BEGIN
250
				Delete FROM CM_EMPLOYEE WHERE  EMP_ID= @p_CODE
251
				IF @@Error <> 0 GOTO ABORT
252
			END
253
			END
254
		END
255
		IF @@Error <> 0 GOTO ABORT
256
COMMIT TRANSACTION
257
SELECT '0' as Result, @p_CODE  TLID, '' ErrorDesc
258
RETURN '0'
259
ABORT:
260
BEGIN
261
		ROLLBACK TRANSACTION
262
		SELECT '-1' as Result, '' TLID, '' ErrorDesc
263
		RETURN '-1'
264
END