Project

General

Profile

TL_USER_SYNC.txt

Luc Tran Van, 07/14/2020 01:32 PM

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

    
207

    
208

    
209

    
210

    
211