Project

General

Profile

DONGBO_DBHR.txt

Luc Tran Van, 04/06/2023 03:05 PM

 
1
ALTER TRIGGER dbo.TRIG_CM_EMPLOYEE_SYNC_Ins
2
	ON dbo.CM_EMPLOYEE_SYNC
3
	AFTER INSERT
4
AS 
5
BEGIN
6
  --STORE ĐỒNG BỘ NHÂN VIÊN VÀ ĐIỀU CHUYỂN TÀI SẢN NHÂN SỰ
7
  --29/09/22
8
	SET NOCOUNT ON;
9
          IF (EXISTS(SELECT TOP 1 MaNS FROM INSERTED)) 
10
          BEGIN  
11
          
12
              DECLARE @MaDV_Cu_SYNC VARCHAR(500) = (SELECT TOP 1 MaDVCu FROM INSERTED)
13
              DECLARE @MaDV_Moi_SYNC VARCHAR(500) = (SELECT TOP 1 MaDVMoi FROM INSERTED) 
14

    
15
              --UPDATE MÃ MỚI DO KT UPDATE
16
              IF(@MaDV_Cu_SYNC = '0100')
17
              BEGIN
18
                  SET @MaDV_Cu_SYNC = '0600'
19
              END
20

    
21
              IF(@MaDV_Cu_SYNC = '0101')
22
              BEGIN
23
                  SET @MaDV_Cu_SYNC = '0601'
24
              END
25

    
26
              IF(@MaDV_Moi_SYNC = '0100')
27
              BEGIN
28
                  SET @MaDV_Moi_SYNC = '0600'
29
              END
30

    
31
              IF(@MaDV_Moi_SYNC = '0101')
32
              BEGIN
33
                  SET @MaDV_Moi_SYNC = '0601'
34
              END
35
                
36
              --MAP DATA HR VỚI KT
37
              IF(EXISTS(SELECT 1 FROM CM_BRANCH_DEP_MAP WHERE HR_ID = @MaDV_Cu_SYNC))
38
              BEGIN
39
                  SET @MaDV_Cu_SYNC = (SELECT TOP 1 KT_ID FROM CM_BRANCH_DEP_MAP WHERE HR_ID = @MaDV_Cu_SYNC)
40
              END
41
              IF(EXISTS(SELECT 1 FROM CM_BRANCH_DEP_MAP WHERE HR_ID = @MaDV_Moi_SYNC))
42
              BEGIN
43
                  SET @MaDV_Moi_SYNC = (SELECT TOP 1 KT_ID FROM CM_BRANCH_DEP_MAP WHERE HR_ID = @MaDV_Moi_SYNC)
44
              END
45
              DECLARE @MACD_CU_SYNC VARCHAR(500) = (SELECT TOP 1 MaCDCu FROM INSERTED)
46
              DECLARE @MACD_MOI_SYNC VARCHAR(500) = (SELECT TOP 1 MaCDMoi FROM INSERTED)
47
    
48
            --START: PARAM INSERT NHÂN VIÊN MỚI
49
              DECLARE @l_EMP_ID VARCHAR(500)
50
              DECLARE @p_EMP_CODE	varchar(500)  = (SELECT TOP 1 MaNS FROM INSERTED)
51
              DECLARE @p_EMP_NAME	nvarchar(500)  = (SELECT TOP 1 HoTen FROM INSERTED)
52
      
53
              DECLARE @p_BRANCH_ID	varchar(15) = NULL 
54
              DECLARE @p_DEP_ID	varchar(15) = NULL             
55
              
56
              DECLARE @p_POS_CODE VARCHAR(50) = NULL
57
              DECLARE @p_POS_NAME NVARCHAR(MAX) = NULL             
58
      
59
              DECLARE @p_NOTES	nvarchar(1000)  = N'ĐỒNG BỘ'
60
              DECLARE @p_RECORD_STATUS	varchar(1)  = '1'
61
              DECLARE @p_AUTH_STATUS	varchar(1)  = 'A'
62
              DECLARE @p_MAKER_ID	varchar(15)  = 'ADMIN'
63
              DECLARE @p_CREATE_DT	VARCHAR(50) = GETDATE()
64
              DECLARE @p_CHECKER_ID	varchar(15)  = 'ADMIN'
65
              DECLARE @p_APPROVE_DT	VARCHAR(50) = GETDATE()
66
            --END: PARAM INSERT NHÂN VIÊN MỚI
67
    
68
            --START: PARAM INSERT CM_EMPLOYEE_TRANSFER_LOG
69
              DECLARE @I_EMP_ID VARCHAR(20) = (SELECT TOP 1 ce.EMP_ID FROM CM_EMPLOYEE ce WHERE ce.EMP_CODE = (SELECT MaNS FROM INSERTED))
70
              DECLARE @I_STATUS VARCHAR(5) 
71
    
72
              DECLARE @C_Ma_DV_Cu VARCHAR(500) = NULL  --MÃ ĐV CŨ ĐỂ CHECK IF
73
              DECLARE @C_Ma_DV_Moi VARCHAR(500) = NULL --MÃ DV MỚI ĐỂ CHECK IF
74
              DECLARE @C_Ma_PB_Cu VARCHAR(500) = NULL  --MÃ PB CŨ ĐỂ CHECK IF
75
              DECLARE @C_Ma_PB_Moi VARCHAR(500) = NULL --MÃ PB MỚI ĐỂ CHECK IF
76
            --END: PARAM INSERT CM_EMPLOYEE_TRANSFER_LOG
77
    
78
            --START: PARAM INSERT 
79
    
80
            --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
81
            IF (EXISTS(SELECT TOP 1 MaDVCu FROM INSERTED WHERE MaDVCu IS NOT NULL AND MaDVCu <> ''))
82
            BEGIN 
83
                --CHECK XEM MÃ LÀ ĐƠN VỊ HAY PHÒNG BAN
84
                IF(EXISTS(SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = @MaDV_Cu_SYNC))
85
                BEGIN
86
                    SET @p_BRANCH_ID = 'DV0001'
87
                    SET @C_Ma_DV_Cu = 'DV0001'
88
                    SET @p_DEP_ID = (SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = @MaDV_Cu_SYNC)
89
                    SET @C_Ma_PB_Cu = (SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = @MaDV_Cu_SYNC)
90
                END
91
                ELSE
92
                BEGIN
93
                    SET @p_BRANCH_ID = (SELECT TOP 1 cb.BRANCH_ID FROM CM_BRANCH cb WHERE cb.BRANCH_CODE = @MaDV_Cu_SYNC)
94
                    SET @C_Ma_DV_Cu = (SELECT TOP 1 cb.BRANCH_ID FROM CM_BRANCH cb WHERE cb.BRANCH_CODE = @MaDV_Cu_SYNC)
95
                END         
96
            END
97
            --ELSE
98
    
99
            IF(EXISTS(SELECT TOP 1 MaDVMoi FROM INSERTED WHERE MaDVMoi IS NOT NULL AND MaDVMoi <> ''))
100
            BEGIN
101
                --CHECK XEM MÃ LÀ ĐƠN VỊ HAY PHÒNG BAN
102
                IF(EXISTS(SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = (SELECT MaDVMoi FROM INSERTED)))
103
                BEGIN
104
                    SET @p_BRANCH_ID = 'DV0001'
105
                    SET @C_Ma_DV_Moi = 'DV0001'
106
                    SET @p_DEP_ID = (SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = @MaDV_Moi_SYNC)
107
                    SET @C_Ma_PB_Moi = (SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = @MaDV_Moi_SYNC)
108
                END
109
                ELSE
110
                BEGIN
111
                    SET @p_BRANCH_ID = (SELECT TOP 1 cb.BRANCH_ID FROM CM_BRANCH cb WHERE cb.BRANCH_CODE = @MaDV_Moi_SYNC)
112
                    SET @C_Ma_DV_Moi = (SELECT TOP 1 cb.BRANCH_ID FROM CM_BRANCH cb WHERE cb.BRANCH_CODE = @MaDV_Moi_SYNC)
113
                END
114
            END              
115
                               
116
            PRINT @C_Ma_DV_Cu
117
            PRINT @C_Ma_DV_Moi
118
        		IF((@C_Ma_DV_Cu IS NULL OR @C_Ma_DV_Cu = '') AND (@C_Ma_DV_Moi IS NULL OR @C_Ma_DV_Moi = ''))
119
        		BEGIN
120
          			--N'Mã DV cũ và Mã DV mới không có giá trị'
121
                PRINT 1
122
        		END
123
            ELSE
124
            BEGIN
125
--CHECK DATA CHỨC DANH LƯU CỘT CDMOI HAY CDCU
126
            IF(EXISTS(SELECT 1 FROM INSERTED WHERE MaCDMoi IS NOT NULL AND MaCDMoi <> ''))
127
            BEGIN
128
                  --NẾU CHỨC DANH CHƯA CÓ TRONG HỆ THỐNG THÌ THÊM MỚI CHỨC DANH
129
                  IF(NOT EXISTS(SELECT 1 FROM CM_MAPPING_CHUCDANH_ROLE WHERE MA_CHUC_DANH = @MACD_MOI_SYNC))
130
                  BEGIN
131
                       INSERT INTO CM_MAPPING_CHUCDANH_ROLE (MA_CHUC_DANH, TEN_CHUC_DANH, NHOM_CHUC_DANH, ROLE_ID)
132
                       VALUES (@MACD_MOI_SYNC, (SELECT TOP 1 CDMoi FROM INSERTED), NULL, NULL);
133
                  END
134
    
135
                  SET @p_POS_CODE = @MACD_MOI_SYNC
136
                  SET @p_POS_NAME = (SELECT TOP 1 CDMoi FROM INSERTED)
137
            END
138
            ELSE IF(EXISTS(SELECT 1 FROM INSERTED WHERE MaCDCu IS NOT NULL AND MaCDCu <> ''))
139
            BEGIN
140
                  --NẾU CHỨC DANH CHƯA CÓ TRONG HỆ THỐNG THÌ THÊM MỚI CHỨC DANH
141
                  IF(NOT EXISTS(SELECT 1 FROM CM_MAPPING_CHUCDANH_ROLE WHERE MA_CHUC_DANH = @MACD_CU_SYNC))
142
                  BEGIN
143
                       INSERT INTO CM_MAPPING_CHUCDANH_ROLE (MA_CHUC_DANH, TEN_CHUC_DANH, NHOM_CHUC_DANH, ROLE_ID)
144
                       VALUES (@MACD_CU_SYNC, (SELECT TOP 1 CDCu FROM INSERTED), NULL, NULL);
145
                  END
146
    
147
                  SET @p_POS_CODE = @MACD_CU_SYNC
148
                  SET @p_POS_NAME = (SELECT TOP 1 CDCu FROM INSERTED)
149
            END
150
    
151
    
152
             --CHECK NHÂN VIÊN XEM CÓ XEM TRONG HỆ THỐNG KHÔNG
153
             IF(EXISTS(SELECT TOP 1 ce.EMP_ID FROM CM_EMPLOYEE ce WHERE ce.EMP_CODE = (SELECT MaNS FROM INSERTED)))
154
             BEGIN
155
                
156
                IF(EXISTS(
157
                        SELECT atmd.ASSET_ID FROM ASS_TRANSFER_MULTI_DT atmd
158
                        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) 
159
      																				 AND atmd.AUTH_STATUS_KT <> 'A') --ĐIỀU CHUYỂN TS TỪ ĐV NÀY SANG ĐV KHÁC CHO CHÙNG NV
160
                              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
161
                        UNION ALL
162
                        SELECT am.ASSET_ID FROM ASS_MASTER am WHERE am.BRANCH_ID = @C_Ma_DV_Cu AND am.EMP_ID = @I_EMP_ID))
163
                  SET @I_STATUS = '0'
164
                ELSE
165
                  SET @I_STATUS = '1'
166
      
167
                INSERT INTO CM_EMPLOYEE_TRANSFER_LOG (EMP_ID, TRANSFER_DT, BRANCH_ID_OLD, BRANCH_ID_NEW, STATUS)
168
                VALUES (@I_EMP_ID, CONVERT(DATETIME,(SELECT TOP 1 TGTao FROM INSERTED),103), @C_Ma_DV_Cu, @C_Ma_DV_Moi, @I_STATUS);  
169
      
170
                --PHUCVH 22/12/22 CHECK NẾU MADV,PB MỚI THAY ĐỔI THÌ UPDATE LẠI MADV,PB CHO NHANVIEN
171
                IF(EXISTS(SELECT 1 FROM CM_EMPLOYEE A WHERE A.EMP_CODE = @p_EMP_CODE 
172
                              AND (ISNULL(A.BRANCH_ID,'') <> ISNULL(@p_BRANCH_ID,'')
173
                                  OR ISNULL(A.DEP_ID,'') <> ISNULL(@p_DEP_ID,''))))
174
                BEGIN
175
                      UPDATE CM_EMPLOYEE SET BRANCH_ID = @p_BRANCH_ID, DEP_ID = @p_DEP_ID 
176
                      WHERE EMP_CODE = @p_EMP_CODE
177
    
178
--                      --CHECK UPDATE TL_USER VÀ CM_EMPLOYEE_LOG
179
--                      IF(EXISTS(SELECT 1 FROM CM_EMPLOYEE_LOG WHERE EMP_CODE = @p_EMP_CODE))
180
--                      BEGIN
181
--                          UPDATE CM_EMPLOYEE_LOG SET BRANCH_CODE = (SELECT TOP 1 BRANCH_CODE FROM CM_BRANCH WHERE BRANCH_ID = @p_BRANCH_ID),
182
--                                                     DEP_CODE = (SELECT TOP 1 DEP_CODE FROM CM_DEPARTMENT WHERE DEP_ID = @p_DEP_ID)
183
--                          WHERE EMP_CODE = @p_EMP_CODE
184
--    
185
--                          UPDATE TL_USER SET TLSUBBRID = @p_BRANCH_ID, SECUR_CODE = @p_DEP_ID, DEP_ID = @p_DEP_ID
186
--                          WHERE TLNANME IN (SELECT USER_DOMAIN FROM CM_EMPLOYEE_LOG WHERE EMP_CODE = @p_EMP_CODE)
187
--                      END
188
    
189
                END  
190
                
191
                --PHUCVH 22/12/22 CHECK NẾU MA CHUC DANH THAY ĐỔI THÌ UPDATE
192
                IF(EXISTS(SELECT 1 FROM CM_EMPLOYEE A WHERE A.EMP_CODE = @p_EMP_CODE
193
                                AND ISNULL(A.POS_CODE,'') <> ISNULL(@p_POS_CODE,'')))
194
                BEGIN
195
                     UPDATE CM_EMPLOYEE SET POS_CODE = @p_POS_CODE, POS_NAME = @p_POS_NAME
196
                     WHERE EMP_CODE = @p_EMP_CODE
197
    
198
                     UPDATE CM_EMPLOYEE_LOG SET POS_CODE = @p_POS_CODE, POS_NAME = @p_POS_NAME
199
                     WHERE EMP_CODE = @p_EMP_CODE
200
                END                     
201
    
202
                --IF @@Error <> 0 GOTO ABORT
203
          		  --SET @Message = N'Đồng bộ điều chuyển nhân sự thành công'
204
             END
205
             ELSE
206
             BEGIN
207
                --KHÔNG CÓ TRONG HỆ THỐNG
208
                --THÊM THÔNG TIN NHÂN VIÊN
209
                		EXEC SYS_CodeMasters_Gen 'CM_EMPLOYEE', @l_EMP_ID out		       
210
                		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])
211
                		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 )
212
                    --IF @@Error <> 0 GOTO ABORT
213
            				--SET @Message = N'Đồng bộ nhân viên mới thành công'
214
             END
215
            END
216
    
217
            
218
          END
219
END