Project

General

Profile

TL_USER_SYNC.txt

Luc Tran Van, 11/12/2020 03:19 PM

 
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