Project

General

Profile

CM_EMPLOYEE_SYNC 27112020.txt

Luc Tran Van, 11/27/2020 09:13 AM

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

    
182
			---- DONG BO XONG CM_EMPLOYEE THI DONG BO NGUOI DUNG LUON - LUCTV BO SUNG NGAY 08 07 2020
183
			IF(@p_USER_DOMAIN IS NOT NULL AND @p_USER_DOMAIN <> '')
184
			BEGIN
185
				--EXEC [TL_USER_Sync] 'I',@p_USER_DOMAIN,@p_NAME,@p_BRANCH_CODE,@p_DEP_CODE,@EMAIL,@ROLE_ID
186
				EXEC SYS_CodeMasters_Gen 'TL_USER', @l_TLID out
187
			IF @l_TLID='' OR @l_TLID IS NULL GOTO ABORT
188
			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])
189
			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 )
190
			--- INSERT VAO BANG TL_USER_V2
191
			INSERT INTO TL_USER_V2 (TLID,TLNANME,RoleName,TLFullName,TLSUBBRID,SECUR_CODE) VALUES (@l_TLID,@p_USER_DOMAIN,@ROLE_ID,@p_NAME,@p_BRANCH_ID,@p_DEP_ID)
192
			END
193

    
194
		END
195
		ELSE IF(@p_ACTION='U')
196
		BEGIN
197
			IF(NOT EXISTS(SELECT * FROM CM_EMPLOYEE_LOG WHERE USER_DOMAIN =@p_USER_DOMAIN))
198
			BEGIN
199
				INSERT INTO CM_EMPLOYEE_LOG (EMP_CODE,EMP_NAME,BRANCH_CODE,DEP_CODE,USER_DOMAIN,POS_CODE,POS_NAME,CREATE_DT) 
200
				VALUES (@p_CODE,@p_NAME,@p_BRANCH_CODE,@p_DEP_CODE,@p_USER_DOMAIN,@p_MA_CHUC_DANH,@p_TEN_CHUC_DANH,GETDATE())
201
			END
202
			DECLARE @EMP_ID VARCHAR(15)
203
			SET @EMP_ID =(SELECT EMP_ID FROM CM_EMPLOYEE WHERE EMP_CODE=@p_CODE)
204
			--KIEM TRA MA NHAN VIEN CO TON TAI HAY KHONG
205
			IF (NOT EXISTS ( SELECT * FROM CM_EMPLOYEE WHERE EMP_CODE = @p_CODE))	 
206
			BEGIN
207
				ROLLBACK TRANSACTION
208
				SELECT '-1' Result, ''  EMP_ID, N'Mã nhân viên không tồn tại' ErrorDesc 
209
				RETURN '-1'
210
			END
211
			--KIEM TRA XEM CUNG MA CODE DO CO BI TRUNG VOI NHUNG NHAN VIEN KHAC HAY KHONG
212
			IF (EXISTS ( SELECT * FROM CM_EMPLOYEE WHERE EMP_CODE = @p_CODE AND EMP_ID <> @EMP_ID))	 
213
			BEGIN
214
				SET @ERRORSYS = 'EMP-0001'
215
				ROLLBACK TRANSACTION
216
				SELECT ErrorCode Result, ''  EMP_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
217
				RETURN '-1'
218
			END			
219
			---------------------------------------------------------------------------------
220
			--KIEM TRA DON VI NAY CO TON TAI HAY KHONG
221
			IF (NOT EXISTS ( SELECT * FROM CM_BRANCH WHERE BRANCH_ID =@p_BRANCH_ID))
222
			BEGIN
223
				ROLLBACK TRANSACTION
224
				SELECT '-1' Result, ''  EMP_ID, N'Mã đơn vị này không tồn tại' ErrorDesc
225
				RETURN '-1'
226
			END
227
			--KIEM TRA PHONG BAN NAY CO TON TAI HAY KHONG
228
			IF (NOT EXISTS ( SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE =@p_DEP_CODE))
229
			BEGIN
230
				ROLLBACK TRANSACTION
231
				SELECT '-1' Result, ''  EMP_ID, N'Mã phòng ban này không tồn tại' ErrorDesc
232
				RETURN '-1'
233
			END
234
			---------------------------------------------------------------------------------
235
			--KIEM TRA PHONG BAN CO THUOC VE DUNG DON VI CUA NO HAY KHONG
236
			IF (NOT EXISTS ( SELECT * FROM CM_DEPARTMENT WHERE BRANCH_ID =@p_BRANCH_ID AND DEP_ID =@p_DEP_ID))
237
			BEGIN
238
				ROLLBACK TRANSACTION
239
				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
240
				RETURN '-1'
241
			END
242
			---------------------------------------------------------------------------------
243
				UPDATE CM_EMPLOYEE 
244
				SET [EMP_CODE] = @p_CODE,
245
				[EMP_NAME] = @p_NAME,
246
				[BRANCH_ID] = @p_BRANCH_ID,
247
				[DEP_ID] = @p_DEP_ID
248
				WHERE  EMP_CODE= @p_CODE
249
				IF @@Error <> 0 GOTO ABORT	
250
				---- DONG BO XONG CM_EMPLOYEE THI DONG BO NGUOI DUNG LUON - LUCTV BO SUNG NGAY 08 07 2020
251
				EXEC [TL_USER_Sync] 'U',@p_USER_DOMAIN,@p_NAME,@p_BRANCH_CODE,@p_DEP_CODE,@EMAIL,@ROLE_ID
252
				---  END LUCTV
253
		END
254
		ELSE IF(@p_ACTION='D')
255
		BEGIN
256
			--KIEM TRA XEM MA NHAN VIEN CO TON TAI HAY KHONG
257
			IF (NOT EXISTS ( SELECT * FROM CM_EMPLOYEE WHERE  EMP_CODE= @p_CODE))
258
			BEGIN
259
				ROLLBACK TRANSACTION
260
				SELECT '-1' Result, N'Mã nhân viên không tồn tại' ErrorDesc
261
				RETURN '-1'
262
			END
263
			BEGIN
264
			IF( (SELECT AUTH_STATUS FROM CM_EMPLOYEE WHERE  EMP_CODE= @p_CODE) = 'A')
265
			BEGIN
266
				UPDATE CM_EMPLOYEE SET RECORD_STATUS = '0' WHERE EMP_CODE=@p_CODE
267
				IF @@Error <> 0 GOTO ABORT
268
			END
269
			ELSE
270
			BEGIN
271
				Delete FROM CM_EMPLOYEE WHERE  EMP_ID= @p_CODE
272
				IF @@Error <> 0 GOTO ABORT
273
			END
274
			END
275
		END
276
		--- BẮT ĐẦU CHẠY LỆNH QUÉT CÁC ROLE
277
		UPDATE TL_USER SET ROLENAME ='GDV_DVKD' WHERE TLNANME IN (SELECT USER_DOMAIN FROM CM_EMPLOYEE_LOG WHERE POS_NAME =N'Giao dịch viên' and branch_code <> '069') AND ROLENAME <> 'DISABLE'
278
		UPDATE TL_USER SET ROLENAME ='KSV_DVKD' WHERE TLNANME IN (SELECT USER_DOMAIN FROM CM_EMPLOYEE_LOG WHERE POS_NAME =N'Kiểm soát viên' and branch_code <> '069') AND ROLENAME <> 'DISABLE'
279
		UPDATE TL_USER SET ROLENAME ='GDDV' WHERE TLNANME IN (SELECT USER_DOMAIN FROM CM_EMPLOYEE_LOG WHERE POS_NAME =N'Giám đốc chi nhánh' and branch_code <> '069') AND ROLENAME <> 'DISABLE'
280
		UPDATE TL_USER SET ROLENAME ='PGD' WHERE TLNANME IN (SELECT USER_DOMAIN FROM CM_EMPLOYEE_LOG WHERE POS_NAME =N'Phó giám đốc chi nhánh' and branch_code <> '069') AND ROLENAME <> 'DISABLE'
281
		UPDATE TL_USER SET ROLENAME ='TPGD' WHERE TLNANME IN (SELECT USER_DOMAIN FROM CM_EMPLOYEE_LOG WHERE POS_NAME =N'Trưởng phòng giao dịch' and branch_code <> '069') AND ROLENAME <> 'DISABLE'
282
		UPDATE TL_USER SET ROLENAME ='PPGD' WHERE TLNANME IN (SELECT USER_DOMAIN FROM CM_EMPLOYEE_LOG WHERE POS_NAME =N'Phó phòng giao dịch' and branch_code <> '069') AND ROLENAME <> 'DISABLE'
283
		UPDATE TL_USER SET ROLENAME ='NVMS' WHERE ROLENAME ='GDDV' AND TLSUBBRID <> 'DV0001' AND TLNANME NOT IN (SELECT USER_DOMAIN FROM CM_EMPLOYEE_LOG WHERE POS_NAME =N'Giám đốc Chi Nhánh')
284
		UPDATE TL_USER SET RoleName ='NVMS' WHERE RoleName ='PP' AND TLSUBBRID <>'DV0001'
285
		UPDATE TL_USER SET RoleName ='NVTT' WHERE RoleName ='KSV' AND SECUR_CODE <>'DEP000000000022'
286
		UPDATE TL_USER SET RoleName ='NVTT' WHERE RoleName ='GDV' AND SECUR_CODE <>'DEP000000000022'
287
		IF @@Error <> 0 GOTO ABORT
288
COMMIT TRANSACTION
289
SELECT '0' as Result, @p_CODE  TLID, '' ErrorDesc
290
RETURN '0'
291
ABORT:
292
BEGIN
293
		ROLLBACK TRANSACTION
294
		SELECT '-1' as Result, '' TLID, '' ErrorDesc
295
		RETURN '-1'
296
END