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
|