Project

General

Profile

DONG_BO_NV.txt

Luc Tran Van, 04/11/2023 01:11 PM

 
1
ALTER PROC dbo.THREAD_GET_CONTENT_SEND_MAIL
2
@p_TIME_RUN_TOOL VARCHAR(50) = NULL,
3
@p_TIME_SEND_ID INT = NULL, 
4
@p_TIME_VALUE VARCHAR(100) = NULL,
5
@p_LOCATION VARCHAR(20) = NULL
6
AS
7
BEGIN 
8

    
9
  IF(@p_TIME_VALUE IS NULL OR @p_TIME_VALUE = '' OR @p_TIME_SEND_ID IS NULL OR @p_TIME_SEND_ID = '')
10
  RETURN '-1'
11

    
12
  DECLARE   @DISTANCE_TIME INT = NULL,
13
            @DISTANCE_TYPE VARCHAR(20) = NULL,
14
            @TOOL_NAME NVARCHAR(1000) = NULL,
15
            @TOOL_VALUE VARCHAR(100) = NULL,
16
            @EXEC_DT DATETIME = NULL,            
17
            @MESSAGE NVARCHAR(1000) = NULL,
18
            @EXEC_TYPE VARCHAR(20) = NULL
19

    
20
  IF(@p_LOCATION = 'EXEC')
21
  BEGIN
22
      SET @EXEC_TYPE = 'EXECUTE'
23
  END
24
  ELSE
25
  BEGIN
26
      SET @EXEC_TYPE = 'AUTO'
27
  END
28

    
29
  SELECT  @DISTANCE_TIME = TIME_SEND        
30
        ,@DISTANCE_TYPE = TIME_SEND_TYPE
31
        ,@TOOL_NAME = TIME_CONTENT
32
        ,@TOOL_VALUE = TIME_VALUE,
33
        @EXEC_DT = SENT_DATE                
34
  FROM THREAD_TIME_SEND 
35
  WHERE TIME_VALUE = @p_TIME_VALUE
36

    
37
	DECLARE	@TEMP TABLE
38
			(
39
				[ID]				VARCHAR(20),
40
				[EMAIL]				VARCHAR(50),
41
				[NF_MESSAGE_TYPE]	VARCHAR(500),
42
				[ROLE_TIFI_TYPE]	VARCHAR(500),
43
        IS_SENDMAIL BIT,
44
        IS_RUN_TOOL BIT,
45
        TOOL_NAME NVARCHAR(100),
46
        QUERY_SELECT NVARCHAR(MAX)
47
        
48
			)
49
	DECLARE	@TIME_SEND			INT = NULL,
50
			@TIME_SEND_TYPE		VARCHAR(20) = NULL,
51
			@TIME_VALUE			VARCHAR(25) = NULL,
52
			@NF_MESSAGE_TYPE	VARCHAR(50) = NULL,
53
			@ROLE_TIFI_TYPE		VARCHAR(50) = NULL,
54
      @SEND_DATE DATETIME = NULL,
55
      @QUERY_SELECT NVARCHAR(MAX) = NULL,
56

    
57
      @EXEC_DATE VARCHAR(50) = NULL
58

    
59
	SELECT @TIME_SEND = A.TIME_SEND,@TIME_SEND_TYPE = A.TIME_SEND_TYPE,
60
  @TIME_VALUE = A.TIME_VALUE,@NF_MESSAGE_TYPE = A.NF_MESSAGE_TYPE, 
61
  @ROLE_TIFI_TYPE = A.ROLE_TIFI_TYPE,@SEND_DATE = A.SENT_DATE
62
	FROM THREAD_TIME_SEND A
63
	WHERE (A.[STATUS] = 1 OR @p_LOCATION = 'EXEC') AND A.TIME_VALUE = @p_TIME_VALUE AND A.TIME_SEND_ID = @p_TIME_SEND_ID
64
	 
65
  
66
  --FIX THREAD NẾU START VÀ STOP TOOL NHIỀU LẦN THÌ BỊ DUP EXEC
67
  IF(@p_LOCATION <> 'EXEC' OR @p_LOCATION IS NULL OR @p_LOCATION = '')
68
  BEGIN
69
      IF(DATEDIFF(DAYOFYEAR,CONVERT(DATETIME,@p_TIME_RUN_TOOL,103),@SEND_DATE) <> 0)
70
      BEGIN  
71
      	  SET @MESSAGE = N'Ngày không hợp lệ'
72
          GOTO ABORT
73
      END
74
      
75
  END
76

    
77
  BEGIN --TRANSACTION T1
78

    
79
      IF(@p_TIME_VALUE = 'SYNC_EMP')
80
      BEGIN --TOOL ĐỒNG BỘ NGƯỜI DÙNG
81
          --SET @QUERY_SELECT = N'SELECT Id,Loai,MaNS,HoTen,MaDVCu,DVCu,MaDVMoi,DVMoi,MaCDCu,CDCu,MaCDMoi,CDMoi,LoaiHDLD,Email,Ngay,So,NgayHLuc,NgayHetHLuc,TGTao FROM CM_EMPLOYEE_SYNC WHERE DATEDIFF(DAYOFYEAR,CONVERT(DATETIME,''' + (SELECT TOP 1 CDVAL FROM CM_ALLCODE WHERE CDNAME = 'LAST_SYNC_DATE' AND CDTYPE = 'LAST_SYNC_DATE') + '''),TGTao) >= 0  ORDER BY TGTao'
82
          SET @QUERY_SELECT = N'SELECT Id,Loai,MaNS,HoTen,MaDVCu,DVCu,MaDVMoi,DVMoi,MaCDCu,CDCu,MaCDMoi,CDMoi,LoaiHDLD,Email,Ngay,So,NgayHLuc,NgayHetHLuc,TGTao FROM CM_EMPLOYEE_SYNC ORDER BY TGTao'
83

    
84
          INSERT INTO @TEMP (IS_RUN_TOOL, TOOL_NAME, QUERY_SELECT)
85
          VALUES (1,'CM_EMPLOYEE_SYNC',@QUERY_SELECT);
86
    
87
          IF(@p_LOCATION IS NULL)
88
          BEGIN
89
                IF @@Error <> 0 GOTO ABORT
90

    
91
                UPDATE SYS_PARAMETERS SET ParaValue = CONVERT(DATE,GETDATE()) WHERE ParaKey = 'LAST_SYNC_DATE' 
92
          END
93
    
94
      END  
95
      ELSE IF(@p_TIME_VALUE = 'CHECK_WARRANTY_DT')
96
      BEGIN --TOOL GỬI MAIL THÔNG BÁO TÀI SẢN SẮP HẾT HẠN BẢO HÀNH
97
          INSERT INTO @TEMP (IS_SENDMAIL, TOOL_NAME,NF_MESSAGE_TYPE,ROLE_TIFI_TYPE)
98
          VALUES (1,N'GỬI MAIL',@NF_MESSAGE_TYPE,@ROLE_TIFI_TYPE);
99
      END
100
      ELSE IF(@p_TIME_VALUE = 'CHECK_TRANS_NOT_APPROVE')
101
      BEGIN --GỬI MAIL NHỮNG GIAO DỊCH CHƯA ĐƯỢC PHÊ DUYỆT
102
          INSERT INTO @TEMP (IS_SENDMAIL, TOOL_NAME,NF_MESSAGE_TYPE,ROLE_TIFI_TYPE)
103
          
104
          SELECT 1,N'CHECK GIAO DỊCH CHƯA DUYỆT',@NF_MESSAGE_TYPE + '|' + PP.ID, @ROLE_TIFI_TYPE + '|' + PP.ID
105
          FROM (
106
              SELECT A.USER_MASTER_ID + '|ASS_USE|' + CASE WHEN A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'U' THEN 'KSV'	ELSE 'GDV' END AS ID
107
              FROM ASS_USE_MULTI_MASTER A
108
              LEFT JOIN ASS_USE_CONFIRM_MASTER B ON A.USER_MASTER_ID = B.USER_MASTER_ID
109
              WHERE (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'E' AND B.USER_CONFIRM_MASTER_ID IS NOT NULL) 
110
                    OR (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'U')
111
              UNION
112
              SELECT A.TRANS_MULTI_MASTER_ID + '|ASS_TRANSFER|' + CASE WHEN A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'U' THEN 'KSV'	ELSE 'GDV' END AS ID
113
              FROM ASS_TRANSFER_MULTI_MASTER A                  
114
              WHERE (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'E')
115
                    OR (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'U')
116
              UNION
117
              SELECT A.COL_MULTI_MASTER_ID + '|ASS_COLLECT|' + CASE WHEN A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'U' THEN 'KSV'	ELSE 'GDV' END AS ID
118
              FROM ASS_COLLECT_MULTI_MASTER A
119
              LEFT JOIN ASS_COLLECT_CONFIRM_MASTER B ON A.COL_MULTI_MASTER_ID = B.COL_MULTI_MASTER_ID
120
              WHERE (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'E' AND B.COL_MULTI_MASTER_CONFIRM_ID IS NOT NULL)
121
                    OR (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'U')
122
              UNION
123
              SELECT A.LIQ_ID + '|ASS_LIQ|' + CASE WHEN A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'U' THEN 'KSV'	ELSE 'GDV' END AS ID
124
              FROM ASS_LIQUIDATION A
125
              WHERE (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'E')
126
                    OR (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'U')
127
              UNION
128
              SELECT A.ADDNEW_ID + '|ASS_ADDNEW|' + CASE WHEN A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'U' THEN 'KSV'	ELSE 'GDV' END AS ID
129
              FROM ASS_ADDNEW A
130
              WHERE (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'E')
131
                    OR (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'U'))PP              
132
    
133
      END
134
      ELSE IF(@p_TIME_VALUE = 'KH')
135
      BEGIN --TOOL CHẠY KHẤU HAO             
136
          SET @EXEC_DATE = CONVERT(VARCHAR(50),@SEND_DATE)
137
          IF((SELECT (((DATEPART(DW, @SEND_DATE) - 1 ) + @@DATEFIRST ) % 7)) NOT IN ('0','6'))
138
          BEGIN -- NẾU KHÁC NGÀY T7 VÀ CN THÌ CHẠY
139
              EXEC ASS_AMORT_StartDO @p_EXECUTE_DATE =  @EXEC_DATE
140
                                    ,@p_MAKER_ID = 'bichnn'
141
                                    ,@p_CHECKER_ID = 'bichnn'
142
                                    ,@p_ASSET_TYPE = NULL
143
                                    ,@p_BRANCH_ID_LST = NULL   
144
                                    ,@p_EXEC_TYPE = @EXEC_TYPE
145
         END                                     
146
      END
147

    
148
      IF @@Error <> 0 GOTO ABORT
149
    
150
      IF(@p_LOCATION IS NULL OR @p_LOCATION = '')
151
      BEGIN -- NẾU CHẠY TOOL THÌ UPDATE NGÀY, EXEC TRỰC TIẾP THÌ KHÔNG UPDATE NGÀY
152
          IF(@TIME_SEND_TYPE = 'NGAY')
153
    			BEGIN
154
                UPDATE THREAD_TIME_SEND 
155
                SET SENT_DATE = DATEADD(DAY,@TIME_SEND,@SEND_DATE)
156
                WHERE TIME_SEND_ID = @p_TIME_SEND_ID AND TIME_VALUE = @p_TIME_VALUE
157
          END
158
    			ELSE IF(@TIME_SEND_TYPE = 'THANG')
159
    			BEGIN
160
                UPDATE THREAD_TIME_SEND 
161
                SET SENT_DATE = DATEADD(MONTH,@TIME_SEND,@SEND_DATE)
162
                WHERE TIME_SEND_ID = @p_TIME_SEND_ID AND TIME_VALUE = @p_TIME_VALUE
163
    			END
164
      END
165

    
166
      
167
  
168
--  COMMIT TRANSACTION T1
169
  END
170
  SELECT * FROM @TEMP  
171
  
172
  IF(@p_TIME_VALUE <> 'KH')
173
  BEGIN
174
      INSERT INTO THREAD_TIME_SEND_LOG (DISTANCE_TIME, DISTANCE_TYPE, TOOL_NAME, TOOL_VALUE, EXEC_DT, EXEC_TYPE, MESSAGE, CREATE_DT)
175
      VALUES (@DISTANCE_TIME,@DISTANCE_TYPE, @TOOL_NAME, @TOOL_VALUE, @EXEC_DT,@EXEC_TYPE, N'Thực thi thành công', GETDATE()); 
176
  END
177

    
178
  RETURN '0'
179
  ABORT:
180
  BEGIN
181
  		--ROLLBACK TRANSACTION T1
182
      --GHI LOG
183
        IF(@p_TIME_VALUE <> 'KH')
184
        BEGIN
185
            INSERT INTO THREAD_TIME_SEND_LOG (DISTANCE_TIME, DISTANCE_TYPE, TOOL_NAME, TOOL_VALUE, EXEC_DT, EXEC_TYPE, MESSAGE, CREATE_DT)
186
            VALUES (@DISTANCE_TIME,@DISTANCE_TYPE, @TOOL_NAME, @TOOL_VALUE, @EXEC_DT,@EXEC_TYPE, ISNULL(@MESSAGE,ERROR_MESSAGE()), GETDATE()); 
187
        END
188
      RETURN '-1'
189
  End
190

    
191
	
192
END
193

    
194
GO
195

    
196
ALTER TRIGGER dbo.TRIG_CM_EMPLOYEE_SYNC_Ins
197
	ON dbo.CM_EMPLOYEE_SYNC
198
	AFTER INSERT
199
AS 
200
BEGIN
201
  --STORE ĐỒNG BỘ NHÂN VIÊN VÀ ĐIỀU CHUYỂN TÀI SẢN NHÂN SỰ
202
  --29/09/22
203
	SET NOCOUNT ON;
204
          IF (EXISTS(SELECT TOP 1 MaNS FROM INSERTED)) 
205
          BEGIN  
206
          
207
              DECLARE @MaDV_Cu_SYNC VARCHAR(500) = (SELECT TOP 1 MaDVCu FROM INSERTED)
208
              DECLARE @MaDV_Moi_SYNC VARCHAR(500) = (SELECT TOP 1 MaDVMoi FROM INSERTED) 
209

    
210
              --UPDATE MÃ MỚI DO KT UPDATE
211
              IF(@MaDV_Cu_SYNC = '0100')
212
              BEGIN
213
                  SET @MaDV_Cu_SYNC = '0600'
214
              END
215

    
216
              IF(@MaDV_Cu_SYNC = '0101')
217
              BEGIN
218
                  SET @MaDV_Cu_SYNC = '0601'
219
              END
220

    
221
              IF(@MaDV_Moi_SYNC = '0100')
222
              BEGIN
223
                  SET @MaDV_Moi_SYNC = '0600'
224
              END
225

    
226
              IF(@MaDV_Moi_SYNC = '0101')
227
              BEGIN
228
                  SET @MaDV_Moi_SYNC = '0601'
229
              END
230
                
231
              --MAP DATA HR VỚI KT
232
              IF(EXISTS(SELECT 1 FROM CM_BRANCH_DEP_MAP WHERE HR_ID = @MaDV_Cu_SYNC))
233
              BEGIN
234
                  SET @MaDV_Cu_SYNC = (SELECT TOP 1 KT_ID FROM CM_BRANCH_DEP_MAP WHERE HR_ID = @MaDV_Cu_SYNC)
235
              END
236
              IF(EXISTS(SELECT 1 FROM CM_BRANCH_DEP_MAP WHERE HR_ID = @MaDV_Moi_SYNC))
237
              BEGIN
238
                  SET @MaDV_Moi_SYNC = (SELECT TOP 1 KT_ID FROM CM_BRANCH_DEP_MAP WHERE HR_ID = @MaDV_Moi_SYNC)
239
              END
240
              DECLARE @MACD_CU_SYNC VARCHAR(500) = (SELECT TOP 1 MaCDCu FROM INSERTED)
241
              DECLARE @MACD_MOI_SYNC VARCHAR(500) = (SELECT TOP 1 MaCDMoi FROM INSERTED)
242
    
243
            --START: PARAM INSERT NHÂN VIÊN MỚI
244
              DECLARE @l_EMP_ID VARCHAR(500)
245
              DECLARE @p_EMP_CODE	varchar(500)  = (SELECT TOP 1 MaNS FROM INSERTED)
246
              DECLARE @p_EMP_NAME	nvarchar(500)  = (SELECT TOP 1 HoTen FROM INSERTED)
247
      
248
              DECLARE @p_BRANCH_ID	varchar(15) = NULL 
249
              DECLARE @p_DEP_ID	varchar(15) = NULL             
250
              
251
              DECLARE @p_POS_CODE VARCHAR(50) = NULL
252
              DECLARE @p_POS_NAME NVARCHAR(MAX) = NULL             
253
      
254
              DECLARE @p_NOTES	nvarchar(1000)  = N'ĐỒNG BỘ'
255
              DECLARE @p_RECORD_STATUS	varchar(1)  = '1'
256
              DECLARE @p_AUTH_STATUS	varchar(1)  = 'A'
257
              DECLARE @p_MAKER_ID	varchar(15)  = 'ADMIN'
258
              DECLARE @p_CREATE_DT	VARCHAR(50) = GETDATE()
259
              DECLARE @p_CHECKER_ID	varchar(15)  = 'ADMIN'
260
              DECLARE @p_APPROVE_DT	VARCHAR(50) = GETDATE()
261
            --END: PARAM INSERT NHÂN VIÊN MỚI
262
    
263
            --START: PARAM INSERT CM_EMPLOYEE_TRANSFER_LOG
264
              DECLARE @I_EMP_ID VARCHAR(20) = (SELECT TOP 1 ce.EMP_ID FROM CM_EMPLOYEE ce WHERE ce.EMP_CODE = (SELECT MaNS FROM INSERTED))
265
              DECLARE @I_STATUS VARCHAR(5) 
266
    
267
              DECLARE @C_Ma_DV_Cu VARCHAR(500) = NULL  --MÃ ĐV CŨ ĐỂ CHECK IF
268
              DECLARE @C_Ma_DV_Moi VARCHAR(500) = NULL --MÃ DV MỚI ĐỂ CHECK IF
269
              DECLARE @C_Ma_PB_Cu VARCHAR(500) = NULL  --MÃ PB CŨ ĐỂ CHECK IF
270
              DECLARE @C_Ma_PB_Moi VARCHAR(500) = NULL --MÃ PB MỚI ĐỂ CHECK IF
271
            --END: PARAM INSERT CM_EMPLOYEE_TRANSFER_LOG
272
    
273
            --START: PARAM INSERT 
274
    
275
            --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
276
            IF (EXISTS(SELECT TOP 1 MaDVCu FROM INSERTED WHERE MaDVCu IS NOT NULL AND MaDVCu <> ''))
277
            BEGIN 
278
                --CHECK XEM MÃ LÀ ĐƠN VỊ HAY PHÒNG BAN
279
                IF(EXISTS(SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = @MaDV_Cu_SYNC))
280
                BEGIN
281
                    SET @p_BRANCH_ID = 'DV0001'
282
                    SET @C_Ma_DV_Cu = 'DV0001'
283
                    SET @p_DEP_ID = (SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = @MaDV_Cu_SYNC)
284
                    SET @C_Ma_PB_Cu = (SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = @MaDV_Cu_SYNC)
285
                END
286
                ELSE
287
                BEGIN
288
                    SET @p_BRANCH_ID = (SELECT TOP 1 cb.BRANCH_ID FROM CM_BRANCH cb WHERE cb.BRANCH_CODE = @MaDV_Cu_SYNC)
289
                    SET @C_Ma_DV_Cu = (SELECT TOP 1 cb.BRANCH_ID FROM CM_BRANCH cb WHERE cb.BRANCH_CODE = @MaDV_Cu_SYNC)
290
                END         
291
            END
292
            --ELSE
293
    
294
            IF(EXISTS(SELECT TOP 1 MaDVMoi FROM INSERTED WHERE MaDVMoi IS NOT NULL AND MaDVMoi <> ''))
295
            BEGIN
296
                --CHECK XEM MÃ LÀ ĐƠN VỊ HAY PHÒNG BAN
297
                IF(EXISTS(SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = (SELECT MaDVMoi FROM INSERTED)))
298
                BEGIN
299
                    SET @p_BRANCH_ID = 'DV0001'
300
                    SET @C_Ma_DV_Moi = 'DV0001'
301
                    SET @p_DEP_ID = (SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = @MaDV_Moi_SYNC)
302
                    SET @C_Ma_PB_Moi = (SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = @MaDV_Moi_SYNC)
303
                END
304
                ELSE
305
                BEGIN
306
                    SET @p_BRANCH_ID = (SELECT TOP 1 cb.BRANCH_ID FROM CM_BRANCH cb WHERE cb.BRANCH_CODE = @MaDV_Moi_SYNC)
307
                    SET @C_Ma_DV_Moi = (SELECT TOP 1 cb.BRANCH_ID FROM CM_BRANCH cb WHERE cb.BRANCH_CODE = @MaDV_Moi_SYNC)
308
                END
309
            END              
310
                               
311
            PRINT @C_Ma_DV_Cu
312
            PRINT @C_Ma_DV_Moi
313
        		IF((@C_Ma_DV_Cu IS NULL OR @C_Ma_DV_Cu = '') AND (@C_Ma_DV_Moi IS NULL OR @C_Ma_DV_Moi = ''))
314
        		BEGIN
315
          			--N'Mã DV cũ và Mã DV mới không có giá trị'
316
                PRINT 1
317
        		END
318
            ELSE
319
            BEGIN
320
--CHECK DATA CHỨC DANH LƯU CỘT CDMOI HAY CDCU
321
            IF(EXISTS(SELECT 1 FROM INSERTED WHERE MaCDMoi IS NOT NULL AND MaCDMoi <> ''))
322
            BEGIN
323
                  --NẾU CHỨC DANH CHƯA CÓ TRONG HỆ THỐNG THÌ THÊM MỚI CHỨC DANH
324
                  IF(NOT EXISTS(SELECT 1 FROM CM_MAPPING_CHUCDANH_ROLE WHERE MA_CHUC_DANH = @MACD_MOI_SYNC))
325
                  BEGIN
326
                       INSERT INTO CM_MAPPING_CHUCDANH_ROLE (MA_CHUC_DANH, TEN_CHUC_DANH, NHOM_CHUC_DANH, ROLE_ID)
327
                       VALUES (@MACD_MOI_SYNC, (SELECT TOP 1 CDMoi FROM INSERTED), NULL, NULL);
328
                  END
329
    
330
                  SET @p_POS_CODE = @MACD_MOI_SYNC
331
                  SET @p_POS_NAME = (SELECT TOP 1 CDMoi FROM INSERTED)
332
            END
333
            ELSE IF(EXISTS(SELECT 1 FROM INSERTED WHERE MaCDCu IS NOT NULL AND MaCDCu <> ''))
334
            BEGIN
335
                  --NẾU CHỨC DANH CHƯA CÓ TRONG HỆ THỐNG THÌ THÊM MỚI CHỨC DANH
336
                  IF(NOT EXISTS(SELECT 1 FROM CM_MAPPING_CHUCDANH_ROLE WHERE MA_CHUC_DANH = @MACD_CU_SYNC))
337
                  BEGIN
338
                       INSERT INTO CM_MAPPING_CHUCDANH_ROLE (MA_CHUC_DANH, TEN_CHUC_DANH, NHOM_CHUC_DANH, ROLE_ID)
339
                       VALUES (@MACD_CU_SYNC, (SELECT TOP 1 CDCu FROM INSERTED), NULL, NULL);
340
                  END
341
    
342
                  SET @p_POS_CODE = @MACD_CU_SYNC
343
                  SET @p_POS_NAME = (SELECT TOP 1 CDCu FROM INSERTED)
344
            END
345
    
346
    
347
             --CHECK NHÂN VIÊN XEM CÓ XEM TRONG HỆ THỐNG KHÔNG
348
             IF(EXISTS(SELECT TOP 1 ce.EMP_ID FROM CM_EMPLOYEE ce WHERE ce.EMP_CODE = (SELECT MaNS FROM INSERTED)))
349
             BEGIN
350
                
351
                IF(EXISTS(
352
                        SELECT atmd.ASSET_ID FROM ASS_TRANSFER_MULTI_DT atmd
353
                        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) 
354
      																				 AND atmd.AUTH_STATUS_KT <> 'A') --ĐIỀU CHUYỂN TS TỪ ĐV NÀY SANG ĐV KHÁC CHO CHÙNG NV
355
                              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
356
                        UNION ALL
357
                        SELECT am.ASSET_ID FROM ASS_MASTER am WHERE am.BRANCH_ID = @C_Ma_DV_Cu AND am.EMP_ID = @I_EMP_ID))
358
                  SET @I_STATUS = '0'
359
                ELSE
360
                  SET @I_STATUS = '1'
361
      
362
                INSERT INTO CM_EMPLOYEE_TRANSFER_LOG (EMP_ID, TRANSFER_DT, BRANCH_ID_OLD, BRANCH_ID_NEW, STATUS)
363
                VALUES (@I_EMP_ID, CONVERT(DATETIME,(SELECT TOP 1 TGTao FROM INSERTED),103), @C_Ma_DV_Cu, @C_Ma_DV_Moi, @I_STATUS);  
364
      
365
                --PHUCVH 22/12/22 CHECK NẾU MADV,PB MỚI THAY ĐỔI THÌ UPDATE LẠI MADV,PB CHO NHANVIEN
366
                IF(EXISTS(SELECT 1 FROM CM_EMPLOYEE A WHERE A.EMP_CODE = @p_EMP_CODE 
367
                              AND (ISNULL(A.BRANCH_ID,'') <> ISNULL(@p_BRANCH_ID,'')
368
                                  OR ISNULL(A.DEP_ID,'') <> ISNULL(@p_DEP_ID,''))))
369
                BEGIN
370
                      UPDATE CM_EMPLOYEE SET BRANCH_ID = @p_BRANCH_ID, DEP_ID = @p_DEP_ID 
371
                      WHERE EMP_CODE = @p_EMP_CODE
372
    
373
                      --CHECK UPDATE TL_USER VÀ CM_EMPLOYEE_LOG
374
--                      IF(EXISTS(SELECT 1 FROM CM_EMPLOYEE_LOG WHERE EMP_CODE = @p_EMP_CODE))
375
--                      BEGIN
376
--                          UPDATE CM_EMPLOYEE_LOG SET BRANCH_CODE = (SELECT TOP 1 BRANCH_CODE FROM CM_BRANCH WHERE BRANCH_ID = @p_BRANCH_ID),
377
--                                                     DEP_CODE = (SELECT TOP 1 DEP_CODE FROM CM_DEPARTMENT WHERE DEP_ID = @p_DEP_ID)
378
--                          WHERE EMP_CODE = @p_EMP_CODE
379
--    
380
--                          UPDATE TL_USER SET TLSUBBRID = @p_BRANCH_ID, SECUR_CODE = @p_DEP_ID, DEP_ID = @p_DEP_ID
381
--                          WHERE TLNANME IN (SELECT USER_DOMAIN FROM CM_EMPLOYEE_LOG WHERE EMP_CODE = @p_EMP_CODE)
382
--                      END
383
    
384
                END  
385
                
386
                --PHUCVH 22/12/22 CHECK NẾU MA CHUC DANH THAY ĐỔI THÌ UPDATE
387
                IF(EXISTS(SELECT 1 FROM CM_EMPLOYEE A WHERE A.EMP_CODE = @p_EMP_CODE
388
                                AND ISNULL(A.POS_CODE,'') <> ISNULL(@p_POS_CODE,'')))
389
                BEGIN
390
                     UPDATE CM_EMPLOYEE SET POS_CODE = @p_POS_CODE, POS_NAME = @p_POS_NAME
391
                     WHERE EMP_CODE = @p_EMP_CODE
392
    
393
                     UPDATE CM_EMPLOYEE_LOG SET POS_CODE = @p_POS_CODE, POS_NAME = @p_POS_NAME
394
                     WHERE EMP_CODE = @p_EMP_CODE
395
                END                     
396
    
397
                --IF @@Error <> 0 GOTO ABORT
398
          		  --SET @Message = N'Đồng bộ điều chuyển nhân sự thành công'
399
             END
400
             ELSE
401
             BEGIN
402
                --KHÔNG CÓ TRONG HỆ THỐNG
403
                --THÊM THÔNG TIN NHÂN VIÊN
404
                		EXEC SYS_CodeMasters_Gen 'CM_EMPLOYEE', @l_EMP_ID out		       
405
                		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])
406
                		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 )
407
                    --IF @@Error <> 0 GOTO ABORT
408
            				--SET @Message = N'Đồng bộ nhân viên mới thành công'
409
             END
410
            END
411
    
412
            
413
          END
414
END