Project

General

Profile

ALTER_TABLE&&DONGBO_NHANVIEN.txt

Luc Tran Van, 04/04/2023 03:45 PM

 
1

    
2
ALTER TABLE CM_EMPLOYEE_SYNC
3
ALTER COLUMN MaNS NVARCHAR(500)
4

    
5
ALTER TABLE CM_EMPLOYEE_SYNC
6
ALTER COLUMN HoTen NVARCHAR(500)
7

    
8
ALTER TABLE CM_EMPLOYEE_SYNC
9
ALTER COLUMN MaDVCu NVARCHAR(500)
10

    
11
ALTER TABLE CM_EMPLOYEE_SYNC
12
ALTER COLUMN DVCu NVARCHAR(500)
13

    
14
ALTER TABLE CM_EMPLOYEE_SYNC
15
ALTER COLUMN DVMoi NVARCHAR(500)
16

    
17
ALTER TABLE CM_EMPLOYEE_SYNC
18
ALTER COLUMN MaDVMoi NVARCHAR(500)
19

    
20
ALTER TABLE CM_EMPLOYEE_SYNC
21
ALTER COLUMN MaCDCu NVARCHAR(500)
22

    
23
ALTER TABLE CM_EMPLOYEE_SYNC
24
ALTER COLUMN CDCu NVARCHAR(500)
25

    
26
ALTER TABLE CM_EMPLOYEE_SYNC
27
ALTER COLUMN CDMoi NVARCHAR(500)
28

    
29
ALTER TABLE CM_EMPLOYEE_SYNC
30
ALTER COLUMN MaCDMoi NVARCHAR(500)
31

    
32
ALTER TABLE CM_EMPLOYEE_SYNC
33
ALTER COLUMN LoaiHDLD NVARCHAR(500)
34

    
35
ALTER TABLE CM_EMPLOYEE_SYNC
36
ALTER COLUMN Email NVARCHAR(500)
37

    
38
ALTER TABLE CM_EMPLOYEE_SYNC
39
ALTER COLUMN So NVARCHAR(500)
40

    
41
ALTER TABLE CM_EMPLOYEE_LOG
42
ALTER COLUMN POS_CODE NVARCHAR(500)
43

    
44
ALTER TABLE CM_EMPLOYEE_LOG
45
ALTER COLUMN POS_NAME NVARCHAR(500)
46

    
47
ALTER TABLE CM_EMPLOYEE
48
ALTER COLUMN POS_CODE NVARCHAR(500)
49

    
50
ALTER TABLE CM_EMPLOYEE
51
ALTER COLUMN POS_NAME NVARCHAR(500)
52

    
53
ALTER TABLE CM_EMPLOYEE
54
ALTER COLUMN EMP_CODE VARCHAR(500)
55

    
56
ALTER TABLE CM_EMPLOYEE
57
ALTER COLUMN EMP_NAME NVARCHAR(500)
58

    
59
ALTER TRIGGER dbo.TRIG_CM_EMPLOYEE_SYNC_Ins
60
	ON dbo.CM_EMPLOYEE_SYNC
61
	AFTER INSERT
62
AS 
63
BEGIN
64
  --STORE ĐỒNG BỘ NHÂN VIÊN VÀ ĐIỀU CHUYỂN TÀI SẢN NHÂN SỰ
65
  --29/09/22
66
	SET NOCOUNT ON;
67

    
68
          IF (EXISTS(SELECT TOP 1 MaNS FROM INSERTED)) 
69
          BEGIN  
70
          
71
              DECLARE @MaDV_Cu_SYNC VARCHAR(20) = (SELECT TOP 1 MaDVCu FROM INSERTED)
72
              DECLARE @MaDV_Moi_SYNC VARCHAR(20) = (SELECT TOP 1 MaDVMoi FROM INSERTED)
73
                
74
              --MAP DATA HR VỚI KT
75
              IF(EXISTS(SELECT 1 FROM CM_BRANCH_DEP_MAP WHERE HR_ID = @MaDV_Cu_SYNC))
76
              BEGIN
77
                  SET @MaDV_Cu_SYNC = (SELECT TOP 1 KT_ID FROM CM_BRANCH_DEP_MAP WHERE HR_ID = @MaDV_Cu_SYNC)
78
              END
79

    
80
              IF(EXISTS(SELECT 1 FROM CM_BRANCH_DEP_MAP WHERE HR_ID = @MaDV_Moi_SYNC))
81
              BEGIN
82
                  SET @MaDV_Moi_SYNC = (SELECT TOP 1 KT_ID FROM CM_BRANCH_DEP_MAP WHERE HR_ID = @MaDV_Moi_SYNC)
83
              END
84

    
85
              DECLARE @MACD_CU_SYNC VARCHAR(50) = (SELECT TOP 1 MaCDCu FROM INSERTED)
86
              DECLARE @MACD_MOI_SYNC VARCHAR(50) = (SELECT TOP 1 MaCDMoi FROM INSERTED)
87
    
88
            --START: PARAM INSERT NHÂN VIÊN MỚI
89
              DECLARE @l_EMP_ID VARCHAR(20)
90
              DECLARE @p_EMP_CODE	varchar(15)  = (SELECT TOP 1 MaNS FROM INSERTED)
91
              DECLARE @p_EMP_NAME	nvarchar(100)  = (SELECT TOP 1 HoTen FROM INSERTED)
92
      
93
              DECLARE @p_BRANCH_ID	varchar(15) = NULL 
94
              DECLARE @p_DEP_ID	varchar(15) = NULL             
95
              
96
              DECLARE @p_POS_CODE VARCHAR(50) = NULL
97
              DECLARE @p_POS_NAME NVARCHAR(MAX) = NULL             
98
      
99
              DECLARE @p_NOTES	nvarchar(1000)  = N'ĐỒNG BỘ'
100
              DECLARE @p_RECORD_STATUS	varchar(1)  = '1'
101
              DECLARE @p_AUTH_STATUS	varchar(1)  = 'A'
102
              DECLARE @p_MAKER_ID	varchar(15)  = 'ADMIN'
103
              DECLARE @p_CREATE_DT	VARCHAR(50) = GETDATE()
104
              DECLARE @p_CHECKER_ID	varchar(15)  = 'ADMIN'
105
              DECLARE @p_APPROVE_DT	VARCHAR(50) = GETDATE()
106
            --END: PARAM INSERT NHÂN VIÊN MỚI
107
    
108
            --START: PARAM INSERT CM_EMPLOYEE_TRANSFER_LOG
109
              DECLARE @I_EMP_ID VARCHAR(20) = (SELECT TOP 1 ce.EMP_ID FROM CM_EMPLOYEE ce WHERE ce.EMP_CODE = (SELECT MaNS FROM INSERTED))
110
              DECLARE @I_STATUS VARCHAR(5) 
111
    
112
              DECLARE @C_Ma_DV_Cu VARCHAR(20) = NULL  --MÃ ĐV CŨ ĐỂ CHECK IF
113
              DECLARE @C_Ma_DV_Moi VARCHAR(20) = NULL --MÃ DV MỚI ĐỂ CHECK IF
114
              DECLARE @C_Ma_PB_Cu VARCHAR(20) = NULL  --MÃ PB CŨ ĐỂ CHECK IF
115
              DECLARE @C_Ma_PB_Moi VARCHAR(20) = NULL --MÃ PB MỚI ĐỂ CHECK IF
116
            --END: PARAM INSERT CM_EMPLOYEE_TRANSFER_LOG
117
    
118
            --START: PARAM INSERT 
119
    
120
            --CHECK XEM ĐƠN VỊ/PHÒNG BAN CỦA NHÂN VIÊN MỚI CỬA KH LƯU TRONG CỘT MaDVCu HAY CỘT MaDVMoi
121
            IF (EXISTS(SELECT TOP 1 MaDVCu FROM INSERTED WHERE MaDVCu IS NOT NULL AND MaDVCu <> ''))
122
            BEGIN 
123
                --CHECK XEM MÃ LÀ ĐƠN VỊ HAY PHÒNG BAN
124
                IF(EXISTS(SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = @MaDV_Cu_SYNC))
125
                BEGIN
126
                    SET @p_BRANCH_ID = 'DV0001'
127
                    SET @C_Ma_DV_Cu = 'DV0001'
128
                    SET @p_DEP_ID = (SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = @MaDV_Cu_SYNC)
129
                    SET @C_Ma_PB_Cu = (SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = @MaDV_Cu_SYNC)
130
                END
131
                ELSE
132
                BEGIN
133
                    SET @p_BRANCH_ID = (SELECT TOP 1 cb.BRANCH_ID FROM CM_BRANCH cb WHERE cb.BRANCH_CODE = @MaDV_Cu_SYNC)
134
                    SET @C_Ma_DV_Cu = (SELECT TOP 1 cb.BRANCH_ID FROM CM_BRANCH cb WHERE cb.BRANCH_CODE = @MaDV_Cu_SYNC)
135
                END         
136
            END
137
            --ELSE
138
    
139
            IF(EXISTS(SELECT TOP 1 MaDVMoi FROM INSERTED WHERE MaDVMoi IS NOT NULL AND MaDVMoi <> ''))
140
            BEGIN
141
                --CHECK XEM MÃ LÀ ĐƠN VỊ HAY PHÒNG BAN
142
                IF(EXISTS(SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = (SELECT MaDVMoi FROM INSERTED)))
143
                BEGIN
144
                    SET @p_BRANCH_ID = 'DV0001'
145
                    SET @C_Ma_DV_Moi = 'DV0001'
146
                    SET @p_DEP_ID = (SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = @MaDV_Moi_SYNC)
147
                    SET @C_Ma_PB_Moi = (SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = @MaDV_Moi_SYNC)
148
                END
149
                ELSE
150
                BEGIN
151
                    SET @p_BRANCH_ID = (SELECT TOP 1 cb.BRANCH_ID FROM CM_BRANCH cb WHERE cb.BRANCH_CODE = @MaDV_Moi_SYNC)
152
                    SET @C_Ma_DV_Moi = (SELECT TOP 1 cb.BRANCH_ID FROM CM_BRANCH cb WHERE cb.BRANCH_CODE = @MaDV_Moi_SYNC)
153
                END
154
            END              
155
                               
156
            PRINT @C_Ma_DV_Cu
157
            PRINT @C_Ma_DV_Moi
158
        		IF((@C_Ma_DV_Cu IS NULL OR @C_Ma_DV_Cu = '') AND (@C_Ma_DV_Moi IS NULL OR @C_Ma_DV_Moi = ''))
159
        		BEGIN
160
          			--N'Mã DV cũ và Mã DV mới không có giá trị'
161
                PRINT 1
162
        		END
163
            ELSE
164
            BEGIN
165
--CHECK DATA CHỨC DANH LƯU CỘT CDMOI HAY CDCU
166
            IF(EXISTS(SELECT 1 FROM INSERTED WHERE MaCDMoi IS NOT NULL AND MaCDMoi <> ''))
167
            BEGIN
168
                  --NẾU CHỨC DANH CHƯA CÓ TRONG HỆ THỐNG THÌ THÊM MỚI CHỨC DANH
169
                  IF(NOT EXISTS(SELECT 1 FROM CM_MAPPING_CHUCDANH_ROLE WHERE MA_CHUC_DANH = @MACD_MOI_SYNC))
170
                  BEGIN
171
                       INSERT INTO CM_MAPPING_CHUCDANH_ROLE (MA_CHUC_DANH, TEN_CHUC_DANH, NHOM_CHUC_DANH, ROLE_ID)
172
                       VALUES (@MACD_MOI_SYNC, (SELECT TOP 1 CDMoi FROM INSERTED), NULL, NULL);
173
                  END
174
    
175
                  SET @p_POS_CODE = @MACD_MOI_SYNC
176
                  SET @p_POS_NAME = (SELECT TOP 1 CDMoi FROM INSERTED)
177
            END
178
            ELSE IF(EXISTS(SELECT 1 FROM INSERTED WHERE MaCDCu IS NOT NULL AND MaCDCu <> ''))
179
            BEGIN
180
                  --NẾU CHỨC DANH CHƯA CÓ TRONG HỆ THỐNG THÌ THÊM MỚI CHỨC DANH
181
                  IF(NOT EXISTS(SELECT 1 FROM CM_MAPPING_CHUCDANH_ROLE WHERE MA_CHUC_DANH = @MACD_CU_SYNC))
182
                  BEGIN
183
                       INSERT INTO CM_MAPPING_CHUCDANH_ROLE (MA_CHUC_DANH, TEN_CHUC_DANH, NHOM_CHUC_DANH, ROLE_ID)
184
                       VALUES (@MACD_CU_SYNC, (SELECT TOP 1 CDCu FROM INSERTED), NULL, NULL);
185
                  END
186
    
187
                  SET @p_POS_CODE = @MACD_CU_SYNC
188
                  SET @p_POS_NAME = (SELECT TOP 1 CDCu FROM INSERTED)
189
            END
190
    
191
    
192
             --CHECK NHÂN VIÊN XEM CÓ XEM TRONG HỆ THỐNG KHÔNG
193
             IF(EXISTS(SELECT TOP 1 ce.EMP_ID FROM CM_EMPLOYEE ce WHERE ce.EMP_CODE = (SELECT MaNS FROM INSERTED)))
194
             BEGIN
195
                
196
                IF(EXISTS(
197
                        SELECT atmd.ASSET_ID FROM ASS_TRANSFER_MULTI_DT atmd
198
                        WHERE (atmd.EMP_ID = @I_EMP_ID AND atmd.EMP_ID_OLD = @I_EMP_ID AND (atmd.BRANCH_ID = @C_Ma_DV_Moi AND atmd.BRANCH_ID_OLD = @C_Ma_DV_Cu) 
199
      																				 AND atmd.AUTH_STATUS_KT <> 'A') --ĐIỀU CHUYỂN TS TỪ ĐV NÀY SANG ĐV KHÁC CHO CHÙNG NV
200
                              OR (atmd.EMP_ID_OLD = @I_EMP_ID AND atmd.BRANCH_ID_OLD = @C_Ma_DV_Cu AND atmd.EMP_ID <> @I_EMP_ID AND atmd.AUTH_STATUS_KT <> 'A') --ĐIỀU CHUYỂN TS TỪ ĐV NÀY SANG ĐV KHÁC NHƯNG KHÁC NV
201
                        UNION ALL
202
                        SELECT am.ASSET_ID FROM ASS_MASTER am WHERE am.BRANCH_ID = @C_Ma_DV_Cu AND am.EMP_ID = @I_EMP_ID))
203
                  SET @I_STATUS = '0'
204
                ELSE
205
                  SET @I_STATUS = '1'
206
      
207
                INSERT INTO CM_EMPLOYEE_TRANSFER_LOG (EMP_ID, TRANSFER_DT, BRANCH_ID_OLD, BRANCH_ID_NEW, STATUS)
208
                VALUES (@I_EMP_ID, CONVERT(DATETIME,(SELECT TOP 1 TGTao FROM INSERTED),103), @C_Ma_DV_Cu, @C_Ma_DV_Moi, @I_STATUS);  
209
      
210
                --PHUCVH 22/12/22 CHECK NẾU MADV,PB MỚI THAY ĐỔI THÌ UPDATE LẠI MADV,PB CHO NHANVIEN
211
                IF(EXISTS(SELECT 1 FROM CM_EMPLOYEE A WHERE A.EMP_CODE = @p_EMP_CODE 
212
                              AND (ISNULL(A.BRANCH_ID,'') <> ISNULL(@p_BRANCH_ID,'')
213
                                  OR ISNULL(A.DEP_ID,'') <> ISNULL(@p_DEP_ID,''))))
214
                BEGIN
215
                      UPDATE CM_EMPLOYEE SET BRANCH_ID = @p_BRANCH_ID, DEP_ID = @p_DEP_ID 
216
                      WHERE EMP_CODE = @p_EMP_CODE
217
    
218
--                      --CHECK UPDATE TL_USER VÀ CM_EMPLOYEE_LOG
219
--                      IF(EXISTS(SELECT 1 FROM CM_EMPLOYEE_LOG WHERE EMP_CODE = @p_EMP_CODE))
220
--                      BEGIN
221
--                          UPDATE CM_EMPLOYEE_LOG SET BRANCH_CODE = (SELECT TOP 1 BRANCH_CODE FROM CM_BRANCH WHERE BRANCH_ID = @p_BRANCH_ID),
222
--                                                     DEP_CODE = (SELECT TOP 1 DEP_CODE FROM CM_DEPARTMENT WHERE DEP_ID = @p_DEP_ID)
223
--                          WHERE EMP_CODE = @p_EMP_CODE
224
--    
225
--                          UPDATE TL_USER SET TLSUBBRID = @p_BRANCH_ID, SECUR_CODE = @p_DEP_ID, DEP_ID = @p_DEP_ID
226
--                          WHERE TLNANME IN (SELECT USER_DOMAIN FROM CM_EMPLOYEE_LOG WHERE EMP_CODE = @p_EMP_CODE)
227
--                      END
228
    
229
                END  
230
                
231
                --PHUCVH 22/12/22 CHECK NẾU MA CHUC DANH THAY ĐỔI THÌ UPDATE
232
                IF(EXISTS(SELECT 1 FROM CM_EMPLOYEE A WHERE A.EMP_CODE = @p_EMP_CODE
233
                                AND ISNULL(A.POS_CODE,'') <> ISNULL(@p_POS_CODE,'')))
234
                BEGIN
235
                     UPDATE CM_EMPLOYEE SET POS_CODE = @p_POS_CODE, POS_NAME = @p_POS_NAME
236
                     WHERE EMP_CODE = @p_EMP_CODE
237
    
238
                     UPDATE CM_EMPLOYEE_LOG SET POS_CODE = @p_POS_CODE, POS_NAME = @p_POS_NAME
239
                     WHERE EMP_CODE = @p_EMP_CODE
240
                END                     
241
    
242
                --IF @@Error <> 0 GOTO ABORT
243
          		  --SET @Message = N'Đồng bộ điều chuyển nhân sự thành công'
244
             END
245
             ELSE
246
             BEGIN
247
                --KHÔNG CÓ TRONG HỆ THỐNG
248
                --THÊM THÔNG TIN NHÂN VIÊN
249
                		EXEC SYS_CodeMasters_Gen 'CM_EMPLOYEE', @l_EMP_ID out		       
250

    
251
                		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],[POS_CODE],[POS_NAME])
252
                		VALUES(@l_EMP_ID ,@p_EMP_CODE ,@p_EMP_NAME ,@p_BRANCH_ID ,@p_DEP_ID ,@p_NOTES ,@p_RECORD_STATUS ,@p_AUTH_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103), @p_POS_CODE, @p_POS_NAME )
253

    
254
                    --IF @@Error <> 0 GOTO ABORT
255
            				--SET @Message = N'Đồng bộ nhân viên mới thành công'
256
             END
257
            END
258
    
259
            
260
          END
261
END