1
|
|
2
|
ALTER PROCEDURE [dbo].[TL_USER_Sync]
|
3
|
@p_ACTION varchar(15) = NULL,
|
4
|
@p_USERNAME varchar(50) = NULL,
|
5
|
@p_FULLNAME nvarchar(500) = NULL,
|
6
|
@p_BRANCH_CODE varchar(15) = NULL,
|
7
|
@p_DEP_CODE varchar(15) = NULL,
|
8
|
@p_EMAIL varchar(150) = NULL,
|
9
|
@p_ROLE varchar(50) = NULL
|
10
|
AS
|
11
|
--Validation is here
|
12
|
DECLARE @ERRORSYS NVARCHAR(15) = ''
|
13
|
DECLARE @p_BRANCH_NAME NVARCHAR(500) =''
|
14
|
DECLARE @p_BRANCH_TYPE NVARCHAR(50) =''
|
15
|
DECLARE @p_BRANCH_ID NVARCHAR(50) =''
|
16
|
DECLARE @p_DEP_ID NVARCHAR(50) =''
|
17
|
DECLARE @L_TLID VARCHAR(15)
|
18
|
SET @p_BRANCH_NAME = (SELECT TOP 1 A.BRANCH_NAME FROM CM_BRANCH A WHERE A.BRANCH_CODE = @p_BRANCH_CODE)
|
19
|
SET @p_BRANCH_TYPE = (SELECT TOP 1 A.BRANCH_TYPE FROM CM_BRANCH A WHERE A.BRANCH_CODE = @p_BRANCH_CODE)
|
20
|
SET @p_BRANCH_ID = (SELECT TOP 1 A.BRANCH_ID FROM CM_BRANCH A WHERE A.BRANCH_CODE = @p_BRANCH_CODE)
|
21
|
SET @p_DEP_ID = (SELECT TOP 1 A.DEP_ID FROM CM_DEPARTMENT A WHERE A.DEP_CODE = @p_DEP_CODE AND BRANCH_ID =@p_BRANCH_ID)
|
22
|
BEGIN TRANSACTION
|
23
|
IF(@p_ACTION ='I' OR @p_ACTION ='U')
|
24
|
BEGIN
|
25
|
--KIEM TRA MA NHAN VIEN KHONG DUOC BO TRONG
|
26
|
IF (@p_USERNAME='' OR @p_USERNAME IS NULL)
|
27
|
BEGIN
|
28
|
ROLLBACK TRANSACTION
|
29
|
SELECT '-1' Result, '' EMP_ID, N'User Name không được bỏ trống' ErrorDesc
|
30
|
RETURN '-1'
|
31
|
END
|
32
|
--KIEM TRA MA NHAN VIEN KHONG DUOC BO TRONG
|
33
|
IF (@p_FULLNAME='' OR @p_FULLNAME IS NULL)
|
34
|
BEGIN
|
35
|
ROLLBACK TRANSACTION
|
36
|
SELECT '-1' Result, '' EMP_ID, N'Tên nhân viên không được bỏ trống' ErrorDesc
|
37
|
RETURN '-1'
|
38
|
END
|
39
|
--KIEM TRA DON VI NAY CO TON TAI HAY KHONG
|
40
|
IF (@p_BRANCH_CODE='' OR @p_BRANCH_CODE IS NULL)
|
41
|
BEGIN
|
42
|
ROLLBACK TRANSACTION
|
43
|
SELECT '-1' Result, '' EMP_ID, N'Mã đơn vị không được bỏ trống' ErrorDesc
|
44
|
RETURN '-1'
|
45
|
END
|
46
|
---------------------------------------------------------------------------------
|
47
|
--KIEM TRA PHONG BAN NAY CO TON TAI HAY KHONG
|
48
|
IF (@p_EMAIL='' OR @p_EMAIL IS NULL)
|
49
|
BEGIN
|
50
|
ROLLBACK TRANSACTION
|
51
|
SELECT '-1' Result, '' EMP_ID, N'Email 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_ROLE='' OR @p_ROLE IS NULL)
|
56
|
BEGIN
|
57
|
ROLLBACK TRANSACTION
|
58
|
SELECT '-1' Result, '' EMP_ID, N'Role 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
|
END
|
71
|
IF(@p_ACTION='I')
|
72
|
BEGIN
|
73
|
--KIEM TRA XEM USER CO BI TRUNG HAY CHUA
|
74
|
IF ( EXISTS ( SELECT * FROM TL_USER WHERE [TLNANME] = @p_USERNAME))
|
75
|
BEGIN
|
76
|
SET @ERRORSYS = 'USER-0001'
|
77
|
ROLLBACK TRANSACTION
|
78
|
SELECT ErrorCode Result, '' TLID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
|
79
|
RETURN '-1'
|
80
|
END
|
81
|
--KIEM TRA DON VI NAY CO TON TAI HAY KHONG
|
82
|
IF (NOT EXISTS ( SELECT * FROM CM_BRANCH WHERE BRANCH_CODE =@p_BRANCH_CODE))
|
83
|
BEGIN
|
84
|
ROLLBACK TRANSACTION
|
85
|
SELECT '-1' Result, '' EMP_ID, N'Mã đơn vị này không tồn tại' ErrorDesc
|
86
|
RETURN '-1'
|
87
|
END
|
88
|
--KIEM TRA PHONG BAN NAY CO TON TAI HAY KHONG
|
89
|
IF (NOT EXISTS ( SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE =@p_DEP_CODE))
|
90
|
BEGIN
|
91
|
ROLLBACK TRANSACTION
|
92
|
SELECT '-1' Result, '' EMP_ID, N'Mã phòng ban này không tồn tại' ErrorDesc
|
93
|
RETURN '-1'
|
94
|
END
|
95
|
--KIEM TRA PHONG BAN CO THUOC VE DUNG DON VI CUA NO HAY KHONG
|
96
|
IF (NOT EXISTS ( SELECT * FROM CM_DEPARTMENT WHERE BRANCH_ID =@p_BRANCH_ID AND DEP_CODE=@p_DEP_CODE))
|
97
|
BEGIN
|
98
|
ROLLBACK TRANSACTION
|
99
|
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
|
100
|
RETURN '-1'
|
101
|
END
|
102
|
--KIEM TRA ROLE CO HOP LE HAY KHONG
|
103
|
IF (NOT EXISTS ( SELECT * FROM TL_SYSROLE WHERE ROLE_ID =@p_ROLE))
|
104
|
BEGIN
|
105
|
ROLLBACK TRANSACTION
|
106
|
SELECT '-1' Result, '' EMP_ID, N'Role không tồn tại'+@p_ROLE ErrorDesc
|
107
|
RETURN '-1'
|
108
|
END
|
109
|
---------------------------------------------------------------------------------
|
110
|
EXEC SYS_CodeMasters_Gen 'TL_USER', @l_TLID out
|
111
|
IF @l_TLID='' OR @l_TLID IS NULL GOTO ABORT
|
112
|
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])
|
113
|
VALUES(@L_TLID ,@p_USERNAME ,'d41d8cd98f00b204e9800998ecf8427e' ,@p_FULLNAME ,@p_BRANCH_ID ,@p_BRANCH_NAME ,@p_BRANCH_TYPE ,@p_ROLE ,@p_EMAIL ,NULL ,NULL ,'A' ,NULL ,NULL ,CONVERT(DATETIME, GETDATE(), 103) ,NULL ,NULL ,NULL ,@p_DEP_ID )
|
114
|
END
|
115
|
ELSE IF(@p_ACTION='U')
|
116
|
BEGIN
|
117
|
SET @L_TLID = (SELECT TLID FROM TL_USER WHERE TLNANME=@p_USERNAME)
|
118
|
--KIEM TRA USER NAY CO TON TAI HAY CHUA
|
119
|
IF (NOT EXISTS ( SELECT * FROM TL_USER WHERE TLID = @L_TLID))
|
120
|
SET @ERRORSYS = 'USER-0002'
|
121
|
--KIEM TRA XEM CO TON TAI VIEC CUNG USER_NAME NHUNG LAI CO 2 USER_ID KHAC NHAU
|
122
|
IF ( EXISTS ( SELECT * FROM TL_USER WHERE [TLNANME] = @p_USERNAME AND TLID <> @L_TLID))
|
123
|
BEGIN
|
124
|
SET @ERRORSYS = 'USER-0001'
|
125
|
SELECT ErrorCode Result, '' TLID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
|
126
|
RETURN '-1'
|
127
|
END
|
128
|
IF @ERRORSYS <> ''
|
129
|
BEGIN
|
130
|
ROLLBACK TRANSACTION
|
131
|
SELECT ErrorCode Result, '' TLID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
|
132
|
RETURN '-1'
|
133
|
END
|
134
|
--KIEM TRA DON VI NAY CO TON TAI HAY KHONG
|
135
|
IF (NOT EXISTS ( SELECT * FROM CM_BRANCH WHERE BRANCH_CODE =@p_BRANCH_CODE))
|
136
|
BEGIN
|
137
|
ROLLBACK TRANSACTION
|
138
|
SELECT '-1' Result, '' EMP_ID, N'Mã đơn vị này không tồn tại' ErrorDesc
|
139
|
RETURN '-1'
|
140
|
END
|
141
|
--KIEM TRA PHONG BAN NAY CO TON TAI HAY KHONG
|
142
|
IF (NOT EXISTS ( SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE =@p_DEP_CODE))
|
143
|
BEGIN
|
144
|
ROLLBACK TRANSACTION
|
145
|
SELECT '-1' Result, '' EMP_ID, N'Mã phòng ban này không tồn tại' ErrorDesc
|
146
|
RETURN '-1'
|
147
|
END
|
148
|
--KIEM TRA PHONG BAN CO THUOC VE DUNG DON VI CUA NO HAY KHONG
|
149
|
IF (NOT EXISTS ( SELECT * FROM CM_DEPARTMENT WHERE BRANCH_ID =@p_BRANCH_ID AND DEP_CODE=@p_DEP_CODE))
|
150
|
BEGIN
|
151
|
ROLLBACK TRANSACTION
|
152
|
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
|
153
|
RETURN '-1'
|
154
|
END
|
155
|
--KIEM TRA ROLE CO HOP LE HAY KHONG
|
156
|
IF (NOT EXISTS ( SELECT * FROM TL_SYSROLE WHERE ROLE_ID =@p_ROLE))
|
157
|
BEGIN
|
158
|
ROLLBACK TRANSACTION
|
159
|
SELECT '-1' Result, '' EMP_ID, N'Role không tồn tại'+@p_BRANCH_CODE ErrorDesc
|
160
|
RETURN '-1'
|
161
|
END
|
162
|
---------------------------------------------------------------------------------
|
163
|
SET @p_BRANCH_NAME = (SELECT BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_CODE = @p_BRANCH_CODE)
|
164
|
UPDATE TL_USER SET
|
165
|
[TLSUBBRID] = @p_BRANCH_ID,
|
166
|
[BRANCH_NAME] = @p_BRANCH_NAME,
|
167
|
[BRANCH_TYPE] = @p_BRANCH_TYPE,
|
168
|
--TLNANME = @p_USERNAME,
|
169
|
--RoleName=@p_ROLE,
|
170
|
EMAIL=@p_EMAIL,
|
171
|
--TLFullName =@p_FULLNAME,
|
172
|
SECUR_CODE=@p_DEP_ID
|
173
|
WHERE TLID= @L_TLID AND TLSUBBRID <> 'DV0001'
|
174
|
END
|
175
|
ELSE IF(@p_ACTION='D')
|
176
|
BEGIN
|
177
|
IF ( NOT EXISTS ( SELECT * FROM TL_USER WHERE TLNANME= @p_USERNAME))
|
178
|
SET @ERRORSYS = 'USER-0002'
|
179
|
IF @ERRORSYS <> ''
|
180
|
BEGIN
|
181
|
ROLLBACK TRANSACTION
|
182
|
SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
|
183
|
RETURN '-1'
|
184
|
END
|
185
|
IF( (SELECT AUTH_STATUS FROM TL_USER WHERE TLNANME= @p_USERNAME) = 'A')
|
186
|
BEGIN
|
187
|
--ROLLBACK TRANSACTION
|
188
|
--SET @ERRORSYS = 'USER-0003'
|
189
|
--SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
|
190
|
--RETURN '-1'
|
191
|
UPDATE TL_USER SET RoleName ='DISABLE' WHERE TLID= @L_TLID
|
192
|
END
|
193
|
ELSE
|
194
|
BEGIN
|
195
|
Delete FROM TL_USER WHERE TLNANME= @p_USERNAME
|
196
|
END
|
197
|
END
|
198
|
IF @@Error <> 0 GOTO ABORT
|
199
|
COMMIT TRANSACTION
|
200
|
SELECT '0' as Result, @L_TLID TLID, '' ErrorDesc
|
201
|
RETURN '0'
|
202
|
ABORT:
|
203
|
BEGIN
|
204
|
ROLLBACK TRANSACTION
|
205
|
SELECT '-1' as Result, '' TLID, '' ErrorDesc
|
206
|
RETURN '-1'
|
207
|
End
|
208
|
|
209
|
|
210
|
|
211
|
|
212
|
|
213
|
|
214
|
|