1
|
BEGIN TRANSACTION
|
2
|
|
3
|
|
4
|
DECLARE @FULLNAME NVARCHAR(MAX) = N'Nguyễn Thị Củng Lợi,Lê Thị Ngọc'
|
5
|
DECLARE @EMP_CODE VARCHAR(MAX) = N'2022-03047,2022-11015'
|
6
|
DECLARE @EMAIL NVARCHAR(MAX) = N'nguyenthicungloi@vietbank.com.vn,lethingoc@vietbank.com.vn'
|
7
|
DECLARE @BRANCH_CODE VARCHAR(MAX) = N'0500,0500'
|
8
|
DECLARE @DEP_ID_IMP VARCHAR(MAX) = N'05P24,05L02'
|
9
|
DECLARE @ROLE VARCHAR(MAX) = N'DVDM,GDV'
|
10
|
DECLARE @USER_NAME VARCHAR(MAX) = 'lointc0500,ngoclt0500'
|
11
|
DELETE AbpUserRoles WHERE UserId IN (SELECT TU.ID FROM TL_USER TU WHERE TU.TLNANME IN (SELECT * FROM STRING_SPLIT(@USER_NAME,',')))
|
12
|
DELETE CM_EMPLOYEE_LOG WHERE USER_DOMAIN IN (SELECT * FROM STRING_SPLIT(@USER_NAME,','))
|
13
|
DELETE TL_USER WHERE TLNANME IN (SELECT * FROM STRING_SPLIT(@USER_NAME,','))
|
14
|
--DELETE IMPORT_USER_QLTS
|
15
|
--INSERT INTO IMPORT_USER_QLTS (TLNAME, FULLNAME, EMAIL, EMP_CODE, BRANCH_CODE, DEP_CODE, ROLE_NAME)
|
16
|
--SELECT * FROM TL_USER CE WHERE CE.TLNANME IN (SELECT * FROM STRING_SPLIT(@USER_NAME,','))
|
17
|
DECLARE @TBL_IMPORT TABLE(TLNAME VARCHAR(MAX),FULLNAME NVARCHAR(MAX),EMAIL NVARCHAR(MAX),EMP_CODE NVARCHAR(MAX),BRANCH_CODE NVARCHAR(MAX),DEP_CODE NVARCHAR(MAX),ROLE_NAME NVARCHAR(MAX))
|
18
|
INSERT INTO @TBL_IMPORT
|
19
|
SELECT C.TLNAME,A.FULLNAME,D.EMAIL,B.EMP_CODE,E.BRANCH_CODE,F.DEP_CODE,G.ROLE_NAME
|
20
|
FROM (
|
21
|
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS ID, VALUE AS FULLNAME
|
22
|
FROM STRING_SPLIT(@FULLNAME,','))A
|
23
|
LEFT JOIN (
|
24
|
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS ID, VALUE AS EMP_CODE
|
25
|
FROM STRING_SPLIT(@EMP_CODE,','))B ON A.ID = B.ID
|
26
|
LEFT JOIN (
|
27
|
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS ID, VALUE AS TLNAME
|
28
|
FROM STRING_SPLIT(@USER_NAME,',')) C ON A.ID = C.ID
|
29
|
LEFT JOIN (
|
30
|
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS ID, VALUE AS EMAIL
|
31
|
FROM STRING_SPLIT(@EMAIL,','))D ON A.ID = D.ID
|
32
|
LEFT JOIN (
|
33
|
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS ID, VALUE AS BRANCH_CODE
|
34
|
FROM STRING_SPLIT(@BRANCH_CODE,','))E ON A.ID = E.ID
|
35
|
LEFT JOIN (
|
36
|
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS ID, VALUE AS DEP_CODE
|
37
|
FROM STRING_SPLIT(@DEP_ID_IMP,','))F ON A.ID = F.ID
|
38
|
LEFT JOIN (
|
39
|
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS ID, VALUE AS ROLE_NAME
|
40
|
FROM STRING_SPLIT(@ROLE,','))G ON A.ID = G.ID
|
41
|
SELECT LTRIM(RTRIM(A.TLNAME)) AS TLNAME
|
42
|
,LTRIM(RTRIM(A.FULLNAME)) AS FULLNAME
|
43
|
,LTRIM(RTRIM(A.EMAIL)) AS EMAIL
|
44
|
,LTRIM(RTRIM(A.EMP_CODE)) AS EMP_CODE
|
45
|
,LTRIM(RTRIM(B.BRANCH_ID)) AS BRANCH_ID
|
46
|
,LTRIM(RTRIM(C.DEP_ID)) AS DEP_ID
|
47
|
,LTRIM(RTRIM(A.ROLE_NAME)) AS ROLE_NAME
|
48
|
,LTRIM(RTRIM(D.POS_NAME)) AS POS_NAME
|
49
|
,LTRIM(RTRIM(D.POS_CODE)) AS POS_CODE
|
50
|
FROM @TBL_IMPORT A
|
51
|
LEFT JOIN CM_BRANCH B ON A.BRANCH_CODE = B.BRANCH_CODE
|
52
|
LEFT JOIN CM_DEPARTMENT C ON A.DEP_CODE = C.DEP_CODE
|
53
|
LEFT JOIN CM_EMPLOYEE D ON A.EMP_CODE = D.EMP_CODE
|
54
|
--LEFT JOIN CM_BRANCH C ON A.BRANCH_CODE = C.BRANCH_CODE
|
55
|
--LEFT JOIN TL_USER B ON A.TLNAME = B.TLNANME
|
56
|
--LEFT JOIN CM_BRANCH D ON B.TLSUBBRID = D.BRANCH_ID
|
57
|
--WHERE A.ROLE_NAME <> B.RoleName OR A.BRANCH_CODE <> D.BRANCH_CODE
|
58
|
DECLARE @INS_MESSAGE NVARCHAR(1000)
|
59
|
DECLARE @INS_FULLNAME NVARCHAR(1000)
|
60
|
DECLARE @INS_EMP_CODE VARCHAR(1000)
|
61
|
DECLARE @INS_USER_NAME VARCHAR(1000)
|
62
|
DECLARE @INS_EMAIL NVARCHAR(1000)
|
63
|
DECLARE @INS_BRANCH_CODE VARCHAR(1000)
|
64
|
DECLARE @INS_DEP_CODE VARCHAR(1000)
|
65
|
DECLARE @INS_ROLE VARCHAR(1000)
|
66
|
DECLARE @INS_POSNAME NVARCHAR(200)
|
67
|
DECLARE @INS_POSCODE NVARCHAR(200)
|
68
|
DECLARE cur CURSOR FAST_FORWARD READ_ONLY LOCAL FOR
|
69
|
SELECT A.*,D.POS_NAME,D.POS_CODE
|
70
|
FROM @TBL_IMPORT A
|
71
|
LEFT JOIN CM_EMPLOYEE D ON A.EMP_CODE = D.EMP_CODE
|
72
|
OPEN cur
|
73
|
FETCH NEXT FROM cur INTO @INS_USER_NAME,@INS_FULLNAME,@INS_EMAIL,@INS_EMP_CODE,@INS_BRANCH_CODE,@INS_DEP_CODE,@INS_ROLE,@INS_POSNAME,@INS_POSCODE
|
74
|
WHILE @@FETCH_STATUS = 0 BEGIN
|
75
|
|
76
|
IF(NOT EXISTS(SELECT 1 FROM TL_USER WHERE TLNANME = @INS_USER_NAME))
|
77
|
BEGIN
|
78
|
DECLARE @BRANCH_ID VARCHAR(15), @DEP_ID VARCHAR(15), @DEP_CODE VARCHAR(100)
|
79
|
|
80
|
SELECT @BRANCH_ID = cb.BRANCH_ID FROM CM_BRANCH cb WHERE cb.BRANCH_CODE = @INS_BRANCH_CODE
|
81
|
SELECT @DEP_ID = cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = @INS_DEP_CODE
|
82
|
SET @DEP_CODE = @INS_DEP_CODE
|
83
|
-- if(@INS_ROLE = 'DVCM')
|
84
|
-- BEGIN
|
85
|
-- SET @BRANCH_ID = 'DV0001'
|
86
|
-- SET @DEP_ID = 'DEP000000000027'
|
87
|
-- SET @DEP_CODE = '05J03'
|
88
|
-- END
|
89
|
|
90
|
INSERT INTO TL_USER ( TLID, TLNANME, Password, TLFullName, TLSUBBRID, BRANCH_TYPE, EMAIL, ADDRESS, PHONE, AUTH_STATUS, MARKER_ID, AUTH_ID, APPROVE_DT, ISAPPROVE, Birthday, ISFIRSTTIME, SECUR_CODE, AccessFailedCount, AuthenticationSource, ConcurrencyStamp, CreatorUserId, DeleterUserId, EmailAddress, EmailConfirmationCode, IsActive, IsDeleted, IsEmailConfirmed, IsLockoutEnabled, IsPhoneNumberConfirmed, IsTwoFactorEnabled, LastModifierUserId, LockoutEndDateUtc, Name, NormalizedEmailAddress, NormalizedUserName, PasswordResetCode, PhoneNumber, ProfilePictureId, SecurityStamp, ShouldChangePasswordOnNextLogin, Surname, TenantId, SignInToken, SignInTokenExpireTimeUtc, GoogleAuthenticatorKey, SendActivationEmail, DEP_ID, CreationTime, UamFullName, UamEmployeeId, UamCompanyCode, UamWfDataId, UamCompanyName, UamJobTitle, UserCurrentLanguage, EMAILTEMP) VALUES
|
91
|
(NULL, @INS_USER_NAME, N'AQAAAAEAACcQAAAAEMF7sJx/2L/X7bkO6YmSRfr8d7Na/RURfT4tDZYFIDMaik/cy+y7PSfq48Btaka28A==', @INS_FULLNAME, @BRANCH_ID, '', @INS_EMAIL, N'', '', 'A', 'bichnn', NULL, GETDATE(), '1', GETDATE(), '1', @DEP_ID, 0, NULL, N'fd2b0a93-3081-460d-b969-b5a75f96c0de', NULL, NULL, @INS_EMAIL, NULL, CONVERT(bit, 'True'), CONVERT(bit, 'False'), CONVERT(bit, 'True'), CONVERT(bit, 'False'), CONVERT(bit, 'True'), CONVERT(bit, 'False'), 259, NULL, NULL, @INS_EMAIL, @INS_USER_NAME, NULL, NULL, NULL, N'QSTE4B7VTYWRQON4JZTJST6QN4PEVVLB', CONVERT(bit, 'False'), NULL, 1, NULL, NULL, NULL, CONVERT(bit, 'False'), @DEP_ID, GETDATE(), NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)
|
92
|
|
93
|
INSERT INTO CM_EMPLOYEE_LOG (EMP_CODE, EMP_NAME, BRANCH_CODE, DEP_CODE, USER_DOMAIN, POS_CODE, POS_NAME, CREATE_DT)
|
94
|
VALUES (@INS_EMP_CODE, @INS_FULLNAME, @INS_BRANCH_CODE, @INS_DEP_CODE, @INS_USER_NAME, @INS_POSCODE, @INS_POSNAME, GETDATE());
|
95
|
|
96
|
INSERT INTO AbpUserRoles (CreationTime, CreatorUserId, RoleId, TenantId, UserId)
|
97
|
VALUES (SYSDATETIME(), 0, (SELECT TOP 1 ar.Id FROM AbpRoles ar WHERE ar.DisplayName = @INS_ROLE), 1, (SELECT MAX(ID) FROM TL_USER tu WHERE tu.TLNANME = @INS_USER_NAME));
|
98
|
END
|
99
|
-- IF(NOT EXISTS(SELECT 1 FROM AbpUserRoles AUR WHERE AUR.RoleId = (SELECT TOP 1 ar.Id FROM AbpRoles ar WHERE ar.DisplayName = @INS_ROLE) AND AUR.UserId = (SELECT MAX(ID) FROM TL_USER tu WHERE tu.TLNANME = @INS_USER_NAME)))
|
100
|
-- BEGIN
|
101
|
-- INSERT INTO AbpUserRoles (CreationTime, CreatorUserId, RoleId, TenantId, UserId)
|
102
|
-- VALUES (SYSDATETIME(), 0, (SELECT TOP 1 ar.Id FROM AbpRoles ar WHERE ar.DisplayName = @INS_ROLE), 1, (SELECT MAX(ID) FROM TL_USER tu WHERE tu.TLNANME = @INS_USER_NAME));
|
103
|
-- END
|
104
|
|
105
|
SET @BRANCH_ID = NULL
|
106
|
SET @DEP_ID = NULL
|
107
|
SET @DEP_CODE = NULL
|
108
|
SET @INS_POSNAME = NULL
|
109
|
SET @INS_POSCODE = NULL
|
110
|
FETCH NEXT FROM cur INTO @INS_USER_NAME,@INS_FULLNAME,@INS_EMAIL,@INS_EMP_CODE,@INS_BRANCH_CODE,@INS_DEP_CODE,@INS_ROLE,@INS_POSNAME,@INS_POSCODE
|
111
|
END
|
112
|
CLOSE cur
|
113
|
DEALLOCATE cur
|
114
|
|
115
|
INSERT INTO AbpUserRoles (CreationTime, CreatorUserId, RoleId, TenantId, UserId)
|
116
|
VALUES (SYSDATETIME(), 0, (SELECT TOP 1 ar.Id FROM AbpRoles ar WHERE ar.DisplayName = 'NVTT'), 1, (SELECT MAX(ID) FROM TL_USER tu WHERE tu.TLNANME = 'lointc0500'));
|
117
|
INSERT INTO AbpUserRoles (CreationTime, CreatorUserId, RoleId, TenantId, UserId)
|
118
|
VALUES (SYSDATETIME(), 0, (SELECT TOP 1 ar.Id FROM AbpRoles ar WHERE ar.DisplayName = 'DVDM'), 1, (SELECT MAX(ID) FROM TL_USER tu WHERE tu.TLNANME = 'ngoclt0500'));
|
119
|
INSERT INTO AbpUserRoles (CreationTime, CreatorUserId, RoleId, TenantId, UserId)
|
120
|
VALUES (SYSDATETIME(), 0, (SELECT TOP 1 ar.Id FROM AbpRoles ar WHERE ar.DisplayName = 'CV_KHO'), 1, (SELECT MAX(ID) FROM TL_USER tu WHERE tu.TLNANME = 'ngoclt0500'));
|
121
|
|
122
|
|
123
|
COMMIT TRANSACTION
|