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,@ROLE_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
|