Project

General

Profile

CM_EMPLOYEE_SYNC.txt

Luc Tran Van, 10/28/2020 03:33 PM

 
1

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

    
20
SET @p_BRANCH_NAME = (SELECT TOP 1A.BRANCH_NAME FROM CM_BRANCH A WHERE A.BRANCH_CODE = @p_BRANCH_CODE)
21
SET @p_BRANCH_TYPE = (SELECT TOP 1A.BRANCH_TYPE FROM CM_BRANCH A WHERE A.BRANCH_CODE = @p_BRANCH_CODE)
22
SET @p_BRANCH_ID   = (SELECT TOP 1 A.BRANCH_ID FROM CM_BRANCH A WHERE A.BRANCH_CODE = @p_BRANCH_CODE)
23
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)
24

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

    
177
			---- DONG BO XONG CM_EMPLOYEE THI DONG BO NGUOI DUNG LUON - LUCTV BO SUNG NGAY 08 07 2020
178
			IF(@p_USER_DOMAIN IS NOT NULL AND @p_USER_DOMAIN <> '')
179
			BEGIN
180
				--EXEC [TL_USER_Sync] 'I',@p_USER_DOMAIN,@p_NAME,@p_BRANCH_CODE,@p_DEP_CODE,@EMAIL,@ROLE_ID
181
				EXEC SYS_CodeMasters_Gen 'TL_USER', @l_TLID out
182
			IF @l_TLID='' OR @l_TLID IS NULL GOTO ABORT
183
			INSERT INTO TL_USER([TLID],[TLNANME],[Password],[TLFullName],[TLSUBBRID],[BRANCH_NAME],[BRANCH_TYPE],[RoleName],[EMAIL],[ADDRESS],[PHONE],[AUTH_STATUS],[MARKER_ID],[AUTH_ID],[APPROVE_DT],[ISAPPROVE],[Birthday],[ISFIRSTTIME],[SECUR_CODE])
184
			VALUES(@L_TLID ,@p_USER_DOMAIN ,'d41d8cd98f00b204e9800998ecf8427e' ,@p_NAME ,@p_BRANCH_ID ,@p_BRANCH_NAME ,@p_BRANCH_TYPE ,@ROLE_ID ,@EMAIL ,NULL ,NULL ,'A' ,NULL ,NULL ,CONVERT(DATETIME, GETDATE(), 103) ,NULL ,NULL ,NULL ,@p_DEP_ID )
185
			--- INSERT VAO BANG TL_USER_V2
186
			INSERT INTO TL_USER_V2 (TLID,TLNANME,RoleName,TLFullName,TLSUBBRID,SECUR_CODE) VALUES (@l_TLID,@p_USER_DOMAIN,@p_BRANCH_ID,@p_NAME,@p_BRANCH_ID,@p_DEP_ID)
187
			END
188

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