1
|
|
2
|
ALTER TRIGGER dbo.TRIG_CM_EMPLOYEE_SYNC_Ins
|
3
|
ON dbo.CM_EMPLOYEE_SYNC
|
4
|
AFTER INSERT
|
5
|
AS
|
6
|
BEGIN
|
7
|
--STORE ĐỒNG BỘ NHÂN VIÊN VÀ ĐIỀU CHUYỂN TÀI SẢN NHÂN SỰ
|
8
|
--29/09/22
|
9
|
SET NOCOUNT ON;
|
10
|
IF (EXISTS(SELECT TOP 1 MaNS FROM INSERTED))
|
11
|
BEGIN
|
12
|
|
13
|
DECLARE @MaDV_Cu_SYNC VARCHAR(500) = (SELECT TOP 1 MaDVCu FROM INSERTED)
|
14
|
DECLARE @MaDV_Moi_SYNC VARCHAR(500) = (SELECT TOP 1 MaDVMoi FROM INSERTED)
|
15
|
|
16
|
--UPDATE MÃ MỚI DO KT UPDATE
|
17
|
IF(@MaDV_Cu_SYNC = '0100')
|
18
|
BEGIN
|
19
|
SET @MaDV_Cu_SYNC = '0600'
|
20
|
END
|
21
|
|
22
|
IF(@MaDV_Cu_SYNC = '0101')
|
23
|
BEGIN
|
24
|
SET @MaDV_Cu_SYNC = '0601'
|
25
|
END
|
26
|
|
27
|
IF(@MaDV_Moi_SYNC = '0100')
|
28
|
BEGIN
|
29
|
SET @MaDV_Moi_SYNC = '0600'
|
30
|
END
|
31
|
|
32
|
IF(@MaDV_Moi_SYNC = '0101')
|
33
|
BEGIN
|
34
|
SET @MaDV_Moi_SYNC = '0601'
|
35
|
END
|
36
|
|
37
|
--MAP DATA HR VỚI KT
|
38
|
IF(EXISTS(SELECT 1 FROM CM_BRANCH_DEP_MAP WHERE HR_ID = @MaDV_Cu_SYNC))
|
39
|
BEGIN
|
40
|
SET @MaDV_Cu_SYNC = (SELECT TOP 1 KT_ID FROM CM_BRANCH_DEP_MAP WHERE HR_ID = @MaDV_Cu_SYNC)
|
41
|
END
|
42
|
IF(EXISTS(SELECT 1 FROM CM_BRANCH_DEP_MAP WHERE HR_ID = @MaDV_Moi_SYNC))
|
43
|
BEGIN
|
44
|
SET @MaDV_Moi_SYNC = (SELECT TOP 1 KT_ID FROM CM_BRANCH_DEP_MAP WHERE HR_ID = @MaDV_Moi_SYNC)
|
45
|
END
|
46
|
DECLARE @MACD_CU_SYNC VARCHAR(500) = (SELECT TOP 1 MaCDCu FROM INSERTED)
|
47
|
DECLARE @MACD_MOI_SYNC VARCHAR(500) = (SELECT TOP 1 MaCDMoi FROM INSERTED)
|
48
|
|
49
|
--START: PARAM INSERT NHÂN VIÊN MỚI
|
50
|
DECLARE @l_EMP_ID VARCHAR(500)
|
51
|
DECLARE @p_EMP_CODE varchar(500) = (SELECT TOP 1 MaNS FROM INSERTED)
|
52
|
DECLARE @p_EMP_NAME nvarchar(500) = (SELECT TOP 1 HoTen FROM INSERTED)
|
53
|
|
54
|
DECLARE @p_BRANCH_ID varchar(15) = NULL
|
55
|
DECLARE @p_DEP_ID varchar(15) = NULL
|
56
|
|
57
|
DECLARE @p_POS_CODE VARCHAR(50) = NULL
|
58
|
DECLARE @p_POS_NAME NVARCHAR(MAX) = NULL
|
59
|
|
60
|
DECLARE @p_NOTES nvarchar(1000) = N'ĐỒNG BỘ'
|
61
|
DECLARE @p_RECORD_STATUS varchar(1) = '1'
|
62
|
DECLARE @p_AUTH_STATUS varchar(1) = 'A'
|
63
|
DECLARE @p_MAKER_ID varchar(15) = 'ADMIN'
|
64
|
DECLARE @p_CREATE_DT VARCHAR(50) = GETDATE()
|
65
|
DECLARE @p_CHECKER_ID varchar(15) = 'ADMIN'
|
66
|
DECLARE @p_APPROVE_DT VARCHAR(50) = GETDATE()
|
67
|
--END: PARAM INSERT NHÂN VIÊN MỚI
|
68
|
|
69
|
--START: PARAM INSERT CM_EMPLOYEE_TRANSFER_LOG
|
70
|
DECLARE @I_EMP_ID VARCHAR(20) = (SELECT TOP 1 ce.EMP_ID FROM CM_EMPLOYEE ce WHERE ce.EMP_CODE = (SELECT MaNS FROM INSERTED))
|
71
|
DECLARE @I_STATUS VARCHAR(5)
|
72
|
|
73
|
DECLARE @C_Ma_DV_Cu VARCHAR(500) = NULL --MÃ ĐV CŨ ĐỂ CHECK IF
|
74
|
DECLARE @C_Ma_DV_Moi VARCHAR(500) = NULL --MÃ DV MỚI ĐỂ CHECK IF
|
75
|
DECLARE @C_Ma_PB_Cu VARCHAR(500) = NULL --MÃ PB CŨ ĐỂ CHECK IF
|
76
|
DECLARE @C_Ma_PB_Moi VARCHAR(500) = NULL --MÃ PB MỚI ĐỂ CHECK IF
|
77
|
--END: PARAM INSERT CM_EMPLOYEE_TRANSFER_LOG
|
78
|
|
79
|
DECLARE @TLNAME VARCHAR(200) = NULL
|
80
|
|
81
|
DECLARE @BLOCK_ID_OLD VARCHAR(15) = NULL --Mã khối cũ check điều chuyển nhân sự
|
82
|
DECLARE @CENTER_ID_OLD VARCHAR(15) = NULL --Mã trung tâm cũ check điều chuyển nhân sự
|
83
|
DECLARE @DEP_ID_OLD VARCHAR(15) = NULL --Mã phòng ban cũ check điều chuyển nhân sự
|
84
|
|
85
|
DECLARE @BLOCK_ID_NEW VARCHAR(15) = NULL --Mã khối mới check điều chuyển nhân sự
|
86
|
DECLARE @CENTER_ID_NEW VARCHAR(15) = NULL --Mã trung tâm mới check điều chuyển nhân sự
|
87
|
DECLARE @DEP_ID_NEW VARCHAR(15) = NULL --Mã phòng ban mới check điều chuyển nhân sự
|
88
|
|
89
|
--START: PARAM INSERT
|
90
|
|
91
|
--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
|
92
|
IF (EXISTS(SELECT TOP 1 MaDVCu FROM INSERTED WHERE MaDVCu IS NOT NULL AND MaDVCu <> ''))
|
93
|
BEGIN
|
94
|
--CHECK XEM MÃ LÀ ĐƠN VỊ HAY PHÒNG BAN
|
95
|
IF(EXISTS(SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = @MaDV_Cu_SYNC))
|
96
|
BEGIN
|
97
|
SET @p_BRANCH_ID = 'DV0001'
|
98
|
SET @C_Ma_DV_Cu = 'DV0001'
|
99
|
SET @p_DEP_ID = (SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = @MaDV_Cu_SYNC)
|
100
|
SET @C_Ma_PB_Cu = (SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = @MaDV_Cu_SYNC)
|
101
|
END
|
102
|
ELSE
|
103
|
BEGIN
|
104
|
SET @p_BRANCH_ID = (SELECT TOP 1 cb.BRANCH_ID FROM CM_BRANCH cb WHERE cb.BRANCH_CODE = @MaDV_Cu_SYNC)
|
105
|
SET @C_Ma_DV_Cu = (SELECT TOP 1 cb.BRANCH_ID FROM CM_BRANCH cb WHERE cb.BRANCH_CODE = @MaDV_Cu_SYNC)
|
106
|
END
|
107
|
END
|
108
|
--ELSE
|
109
|
|
110
|
IF(EXISTS(SELECT TOP 1 MaDVMoi FROM INSERTED WHERE MaDVMoi IS NOT NULL AND MaDVMoi <> ''))
|
111
|
BEGIN
|
112
|
--CHECK XEM MÃ LÀ ĐƠN VỊ HAY PHÒNG BAN
|
113
|
IF(EXISTS(SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = (SELECT MaDVMoi FROM INSERTED)))
|
114
|
BEGIN
|
115
|
SET @p_BRANCH_ID = 'DV0001'
|
116
|
SET @C_Ma_DV_Moi = 'DV0001'
|
117
|
SET @p_DEP_ID = (SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = @MaDV_Moi_SYNC)
|
118
|
SET @C_Ma_PB_Moi = (SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = @MaDV_Moi_SYNC)
|
119
|
END
|
120
|
ELSE
|
121
|
BEGIN
|
122
|
SET @p_BRANCH_ID = (SELECT TOP 1 cb.BRANCH_ID FROM CM_BRANCH cb WHERE cb.BRANCH_CODE = @MaDV_Moi_SYNC)
|
123
|
SET @C_Ma_DV_Moi = (SELECT TOP 1 cb.BRANCH_ID FROM CM_BRANCH cb WHERE cb.BRANCH_CODE = @MaDV_Moi_SYNC)
|
124
|
END
|
125
|
END
|
126
|
|
127
|
--GET KHỐI, TRUNG TÂM, PHÒNG BAN
|
128
|
EXEC CM_DEPARTMENT_GET_BLOCK_CENTER @C_Ma_PB_Cu ,@BLOCK_ID_OLD OUT ,@CENTER_ID_OLD OUT , @DEP_ID_OLD OUT
|
129
|
|
130
|
--GET KHỐI, TRUNG TÂM, PHÒNG BAN
|
131
|
EXEC CM_DEPARTMENT_GET_BLOCK_CENTER @C_Ma_PB_Moi, @BLOCK_ID_NEW OUT ,@CENTER_ID_NEW OUT ,@DEP_ID_NEW OUT
|
132
|
|
133
|
IF(@p_BRANCH_ID <> 'DV0001')
|
134
|
BEGIN
|
135
|
SET @p_DEP_ID = NULL
|
136
|
END
|
137
|
|
138
|
PRINT @C_Ma_DV_Cu
|
139
|
PRINT @C_Ma_DV_Moi
|
140
|
IF((@C_Ma_DV_Cu IS NULL OR @C_Ma_DV_Cu = '') AND (@C_Ma_DV_Moi IS NULL OR @C_Ma_DV_Moi = ''))
|
141
|
BEGIN
|
142
|
--N'Mã DV cũ và Mã DV mới không có giá trị'
|
143
|
PRINT 1
|
144
|
END
|
145
|
ELSE
|
146
|
BEGIN
|
147
|
|
148
|
IF((SELECT COUNT(*) FROM CM_EMPLOYEE_LOG CEL WHERE CEL.EMP_CODE = @p_EMP_CODE) > 1)
|
149
|
BEGIN
|
150
|
SET @TLNAME = (SELECT TOP 1 CEL.USER_DOMAIN FROM CM_EMPLOYEE_LOG CEL WHERE CEL.EMP_CODE = @p_EMP_CODE
|
151
|
AND CEL.BRANCH_CODE = @MaDV_Cu_SYNC
|
152
|
AND (CEL.DEP_CODE = @C_Ma_PB_Cu OR @C_Ma_PB_Cu IS NULL))
|
153
|
END
|
154
|
ELSE
|
155
|
BEGIN
|
156
|
SET @TLNAME = (SELECT TOP 1 CEL.USER_DOMAIN FROM CM_EMPLOYEE_LOG CEL WHERE CEL.EMP_CODE = @p_EMP_CODE)
|
157
|
END
|
158
|
|
159
|
--CHECK DATA CHỨC DANH LƯU CỘT CDMOI HAY CDCU
|
160
|
IF(EXISTS(SELECT 1 FROM INSERTED WHERE MaCDMoi IS NOT NULL AND MaCDMoi <> ''))
|
161
|
BEGIN
|
162
|
--NẾU CHỨC DANH CHƯA CÓ TRONG HỆ THỐNG THÌ THÊM MỚI CHỨC DANH
|
163
|
IF(NOT EXISTS(SELECT 1 FROM CM_MAPPING_CHUCDANH_ROLE WHERE MA_CHUC_DANH = @MACD_MOI_SYNC))
|
164
|
BEGIN
|
165
|
INSERT INTO CM_MAPPING_CHUCDANH_ROLE (MA_CHUC_DANH, TEN_CHUC_DANH, NHOM_CHUC_DANH, ROLE_ID)
|
166
|
VALUES (@MACD_MOI_SYNC, (SELECT TOP 1 CDMoi FROM INSERTED), NULL, NULL);
|
167
|
END
|
168
|
|
169
|
SET @p_POS_CODE = @MACD_MOI_SYNC
|
170
|
SET @p_POS_NAME = (SELECT TOP 1 CDMoi FROM INSERTED)
|
171
|
END
|
172
|
ELSE IF(EXISTS(SELECT 1 FROM INSERTED WHERE MaCDCu IS NOT NULL AND MaCDCu <> ''))
|
173
|
BEGIN
|
174
|
--NẾU CHỨC DANH CHƯA CÓ TRONG HỆ THỐNG THÌ THÊM MỚI CHỨC DANH
|
175
|
IF(NOT EXISTS(SELECT 1 FROM CM_MAPPING_CHUCDANH_ROLE WHERE MA_CHUC_DANH = @MACD_CU_SYNC))
|
176
|
BEGIN
|
177
|
INSERT INTO CM_MAPPING_CHUCDANH_ROLE (MA_CHUC_DANH, TEN_CHUC_DANH, NHOM_CHUC_DANH, ROLE_ID)
|
178
|
VALUES (@MACD_CU_SYNC, (SELECT TOP 1 CDCu FROM INSERTED), NULL, NULL);
|
179
|
END
|
180
|
|
181
|
SET @p_POS_CODE = @MACD_CU_SYNC
|
182
|
SET @p_POS_NAME = (SELECT TOP 1 CDCu FROM INSERTED)
|
183
|
END
|
184
|
|
185
|
|
186
|
--CHECK NHÂN VIÊN XEM CÓ XEM TRONG HỆ THỐNG KHÔNG
|
187
|
IF(EXISTS(SELECT TOP 1 ce.EMP_ID FROM CM_EMPLOYEE ce WHERE ce.EMP_CODE = (SELECT MaNS FROM INSERTED)))
|
188
|
BEGIN
|
189
|
|
190
|
IF(EXISTS(
|
191
|
SELECT atmd.ASSET_ID FROM ASS_TRANSFER_MULTI_DT atmd
|
192
|
WHERE (atmd.EMP_ID = @I_EMP_ID AND atmd.EMP_ID_OLD = @I_EMP_ID
|
193
|
AND (atmd.BRANCH_ID = @C_Ma_DV_Moi AND atmd.BRANCH_ID_OLD = @C_Ma_DV_Cu
|
194
|
AND ISNULL(atmd.KHOI_ID_OLD,'') = ISNULL(@BLOCK_ID_OLD,'') AND ISNULL(atmd.KHOI_ID,'') = ISNULL(@BLOCK_ID_NEW,'')
|
195
|
AND ISNULL(atmd.CENTER_ID_OLD,'') = ISNULL(@CENTER_ID_OLD,'') AND ISNULL(atmd.CENTER_ID,'') = ISNULL(@CENTER_ID_NEW,'')
|
196
|
AND ISNULL(atmd.DEPT_ID_OLD,'') = ISNULL(@DEP_ID_OLD,'') AND ISNULL(atmd.DEPT_ID,'') = ISNULL(@DEP_ID_NEW,''))
|
197
|
AND atmd.AUTH_STATUS_KT <> 'A') --ĐIỀU CHUYỂN TS TỪ ĐV NÀY SANG ĐV KHÁC CHO CÙNG NV
|
198
|
OR (atmd.EMP_ID_OLD = @I_EMP_ID AND atmd.EMP_ID <> @I_EMP_ID
|
199
|
AND atmd.BRANCH_ID_OLD = @C_Ma_DV_Cu
|
200
|
AND ISNULL(atmd.KHOI_ID_OLD,'') = ISNULL(@BLOCK_ID_OLD,'')
|
201
|
AND ISNULL(atmd.CENTER_ID_OLD,'') = ISNULL(@CENTER_ID_OLD,'')
|
202
|
AND ISNULL(atmd.DEPT_ID_OLD,'') = ISNULL(@DEP_ID_OLD,'')
|
203
|
AND atmd.AUTH_STATUS_KT <> 'A') --ĐIỀU CHUYỂN TS TỪ ĐV NÀY SANG ĐV KHÁC NHƯNG KHÁC NV
|
204
|
UNION ALL
|
205
|
SELECT am.ASSET_ID FROM ASS_MASTER am WHERE am.BRANCH_ID = @C_Ma_DV_Cu AND ISNULL(am.DEPT_ID,'') = ISNULL(@C_Ma_PB_Cu,'') AND am.EMP_ID = @I_EMP_ID ))
|
206
|
SET @I_STATUS = '0'
|
207
|
ELSE
|
208
|
SET @I_STATUS = '1'
|
209
|
|
210
|
INSERT INTO CM_EMPLOYEE_TRANSFER_LOG (EMP_ID, TRANSFER_DT, BRANCH_ID_OLD, DEP_ID_OLD, BRANCH_ID_NEW, DEP_ID_NEW, STATUS)
|
211
|
VALUES (@I_EMP_ID, CONVERT(DATETIME,(SELECT TOP 1 TGTao FROM INSERTED),103), @C_Ma_DV_Cu,@C_Ma_PB_Cu, @C_Ma_DV_Moi, @C_Ma_PB_Moi, @I_STATUS);
|
212
|
|
213
|
--CHECK TRƯỜNG HỢP 1 NHÂN VIÊN CÓ QUYỀN 2 CHI NHÁNH TRỞ TRÊN (KHÁC TLNAME)
|
214
|
|
215
|
--PHUCVH 22/12/22 CHECK NẾU MADV,PB MỚI THAY ĐỔI THÌ UPDATE LẠI MADV,PB CHO NHANVIEN
|
216
|
IF(EXISTS(SELECT 1 FROM CM_EMPLOYEE A WHERE A.EMP_CODE = @p_EMP_CODE
|
217
|
AND ISNULL(@p_BRANCH_ID,'') <> ''
|
218
|
AND ((ISNULL(@p_BRANCH_ID,'') = 'DV0001' AND ISNULL(@p_DEP_ID,'') <> '')
|
219
|
OR (ISNULL(@p_BRANCH_ID,'') <> 'DV0001' AND ISNULL(@p_DEP_ID,'') = ''))
|
220
|
AND (ISNULL(A.BRANCH_ID,'') <> ISNULL(@p_BRANCH_ID,'')
|
221
|
OR ISNULL(A.DEP_ID,'') <> ISNULL(@p_DEP_ID,''))))
|
222
|
BEGIN
|
223
|
UPDATE CM_EMPLOYEE SET BRANCH_ID = @p_BRANCH_ID, DEP_ID = @p_DEP_ID
|
224
|
WHERE EMP_CODE = @p_EMP_CODE
|
225
|
|
226
|
--CHECK UPDATE TL_USER VÀ CM_EMPLOYEE_LOG
|
227
|
-- IF(EXISTS(SELECT 1 FROM CM_EMPLOYEE_LOG WHERE EMP_CODE = @p_EMP_CODE))
|
228
|
-- BEGIN
|
229
|
-- UPDATE CM_EMPLOYEE_LOG SET BRANCH_CODE = (SELECT TOP 1 BRANCH_CODE FROM CM_BRANCH WHERE BRANCH_ID = @p_BRANCH_ID),
|
230
|
-- DEP_CODE = (SELECT TOP 1 DEP_CODE FROM CM_DEPARTMENT WHERE DEP_ID = @p_DEP_ID)
|
231
|
-- WHERE EMP_CODE = @p_EMP_CODE AND USER_DOMAIN = @TLNAME
|
232
|
--
|
233
|
-- UPDATE TL_USER SET TLSUBBRID = @p_BRANCH_ID, SECUR_CODE = @p_DEP_ID, DEP_ID = @p_DEP_ID
|
234
|
-- WHERE TLNANME = @TLNAME
|
235
|
-- END
|
236
|
|
237
|
END
|
238
|
|
239
|
--PHUCVH 22/12/22 CHECK NẾU MA CHUC DANH THAY ĐỔI THÌ UPDATE
|
240
|
IF(EXISTS(SELECT 1 FROM CM_EMPLOYEE A WHERE A.EMP_CODE = @p_EMP_CODE
|
241
|
AND ISNULL(A.POS_CODE,'') <> ISNULL(@p_POS_CODE,'')))
|
242
|
BEGIN
|
243
|
UPDATE CM_EMPLOYEE SET POS_CODE = @p_POS_CODE, POS_NAME = @p_POS_NAME
|
244
|
WHERE EMP_CODE = @p_EMP_CODE
|
245
|
|
246
|
UPDATE CM_EMPLOYEE_LOG SET POS_CODE = @p_POS_CODE, POS_NAME = @p_POS_NAME
|
247
|
WHERE EMP_CODE = @p_EMP_CODE AND USER_DOMAIN = @TLNAME
|
248
|
END
|
249
|
|
250
|
--IF @@Error <> 0 GOTO ABORT
|
251
|
--SET @Message = N'Đồng bộ điều chuyển nhân sự thành công'
|
252
|
END
|
253
|
ELSE
|
254
|
BEGIN
|
255
|
--KHÔNG CÓ TRONG HỆ THỐNG
|
256
|
--THÊM THÔNG TIN NHÂN VIÊN
|
257
|
EXEC SYS_CodeMasters_Gen 'CM_EMPLOYEE', @l_EMP_ID out
|
258
|
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])
|
259
|
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 )
|
260
|
--IF @@Error <> 0 GOTO ABORT
|
261
|
--SET @Message = N'Đồng bộ nhân viên mới thành công'
|
262
|
END
|
263
|
END
|
264
|
|
265
|
|
266
|
END
|
267
|
END
|
268
|
|
269
|
GO
|
270
|
ALTER PROCEDURE [dbo].[CM_EMPLOYEE_SYNC_INS]
|
271
|
@p_JSON_DATA NVARCHAR(MAX) = NULL
|
272
|
AS
|
273
|
----Phucvh 20/02/23 Store đồng bộ nhân viên từ DB HR
|
274
|
IF (@p_JSON_DATA IS NULL OR @p_JSON_DATA = '')
|
275
|
BEGIN
|
276
|
SELECT '-1' as Result, '' ID, N'Data NULL Đồng bộ thất bại' ErrorDesc
|
277
|
RETURN '-1'
|
278
|
END
|
279
|
|
280
|
--LUU DATA DONG BO
|
281
|
UPDATE THREAD_TIME_SEND_LOG SET MESSAGE = MESSAGE + @p_JSON_DATA
|
282
|
WHERE TOOL_VALUE = 'SYNC_EMP' AND ID = (SELECT TOP 1 TTSL.ID FROM THREAD_TIME_SEND_LOG TTSL WHERE TTSL.TOOL_VALUE = 'SYNC_EMP' ORDER BY TTSL.ID DESC)
|
283
|
|
284
|
DECLARE @Tbl_Data_From_Json TABLE(
|
285
|
Id UNIQUEIDENTIFIER,
|
286
|
Loai INT,
|
287
|
MaNS nvarchar(500),
|
288
|
HoTen nvarchar(500),
|
289
|
MaDVCu nvarchar(500),
|
290
|
DVCu nvarchar(500),
|
291
|
MaDVMoi nvarchar(500),
|
292
|
DVMoi nvarchar(500),
|
293
|
MaCDCu nvarchar(500),
|
294
|
CDCu nvarchar(500),
|
295
|
MaCDMoi nvarchar(500),
|
296
|
CDMoi nvarchar(500),
|
297
|
LoaiHDLD nvarchar(500),
|
298
|
Email nvarchar(500),
|
299
|
Ngay VARCHAR(500),
|
300
|
So nvarchar(500),
|
301
|
NgayHLuc VARCHAR(500),
|
302
|
NgayHetHLuc VARCHAR(500),
|
303
|
TGTao VARCHAR(500)
|
304
|
)
|
305
|
|
306
|
INSERT INTO @Tbl_Data_From_Json
|
307
|
SELECT *
|
308
|
FROM OPENJSON(@p_JSON_DATA)
|
309
|
WITH
|
310
|
(
|
311
|
Id UNIQUEIDENTIFIER '$.Id',
|
312
|
Loai INT '$.Loai',
|
313
|
MaNS nvarchar(500) '$.MaNS',
|
314
|
HoTen nvarchar(500) '$.HoTen',
|
315
|
MaDVCu nvarchar(500) '$.MaDVCu',
|
316
|
DVCu nvarchar(500) '$.DVCu',
|
317
|
MaDVMoi nvarchar(500) '$.MaDVMoi',
|
318
|
DVMoi nvarchar(500) '$.DVMoi',
|
319
|
MaCDCu nvarchar(500) '$.MaCDCu',
|
320
|
CDCu nvarchar(500) '$.CDCu',
|
321
|
MaCDMoi nvarchar(500) '$.MaCDMoi',
|
322
|
CDMoi nvarchar(500) '$.CDMoi',
|
323
|
LoaiHDLD nvarchar(500) '$.LoaiHDLD',
|
324
|
Email nvarchar(500) '$.Email',
|
325
|
Ngay VARCHAR(500) '$.Ngay',
|
326
|
So nvarchar(500) '$.So',
|
327
|
NgayHLuc VARCHAR(500) '$.NgayHLuc',
|
328
|
NgayHetHLuc VARCHAR(500) '$.NgayHetHLuc',
|
329
|
TGTao VARCHAR(500) '$.TGTao'
|
330
|
)
|
331
|
|
332
|
DECLARE
|
333
|
@Id UNIQUEIDENTIFIER, @Loai INT, @MaNS nvarchar(500), @HoTen nvarchar(500),
|
334
|
@MaDVCu nvarchar(500), @DVCu nvarchar(500), @MaDVMoi nvarchar(500), @DVMoi nvarchar(500),
|
335
|
@MaCDCu nvarchar(500), @CDCu nvarchar(500), @MaCDMoi nvarchar(500), @CDMoi nvarchar(500),
|
336
|
@LoaiHDLD nvarchar(500), @Email nvarchar(500), @Ngay VARCHAR(500), @So nvarchar(500),
|
337
|
@NgayHLuc VARCHAR(500), @NgayHetHLuc VARCHAR(500), @TGTao VARCHAR(500)
|
338
|
|
339
|
|
340
|
BEGIN TRANSACTION
|
341
|
DECLARE cur CURSOR FAST_FORWARD READ_ONLY LOCAL FOR
|
342
|
SELECT * FROM @Tbl_Data_From_Json
|
343
|
|
344
|
OPEN cur
|
345
|
|
346
|
FETCH NEXT FROM cur INTO @Id,@Loai,@MaNS,@HoTen,@MaDVCu,@DVCu,@MaDVMoi,@DVMoi,@MaCDCu,@CDCu,@MaCDMoi,@CDMoi,@LoaiHDLD,@Email,@Ngay,@So,@NgayHLuc,@NgayHetHLuc,@TGTao
|
347
|
|
348
|
WHILE @@FETCH_STATUS = 0 BEGIN
|
349
|
|
350
|
IF(NOT EXISTS(SELECT 1 FROM CM_EMPLOYEE_SYNC ces WHERE ces.Id = @Id))
|
351
|
BEGIN
|
352
|
INSERT INTO CM_EMPLOYEE_SYNC (Id, Loai, MaNS, HoTen, MaDVCu, DVCu, MaDVMoi, DVMoi, MaCDCu, CDCu, MaCDMoi, CDMoi, LoaiHDLD, Email, Ngay, So, NgayHLuc, NgayHetHLuc, TGTao)
|
353
|
VALUES(@Id,@Loai,@MaNS,@HoTen,@MaDVCu,@DVCu,@MaDVMoi,@DVMoi,@MaCDCu,@CDCu,@MaCDMoi,@CDMoi,@LoaiHDLD,@Email,CONVERT(DATETIME,@Ngay),@So,CONVERT(DATETIME,@NgayHLuc),CONVERT(DATETIME,@NgayHetHLuc),CONVERT(DATETIME,@TGTao))
|
354
|
END
|
355
|
|
356
|
FETCH NEXT FROM cur INTO @Id,@Loai,@MaNS,@HoTen,@MaDVCu,@DVCu,@MaDVMoi,@DVMoi,@MaCDCu,@CDCu,@MaCDMoi,@CDMoi,@LoaiHDLD,@Email,@Ngay,@So,@NgayHLuc,@NgayHetHLuc,@TGTao
|
357
|
|
358
|
END
|
359
|
|
360
|
CLOSE cur
|
361
|
DEALLOCATE cur
|
362
|
|
363
|
|
364
|
IF @@Error <> 0 GOTO ABORT
|
365
|
COMMIT TRANSACTION
|
366
|
SELECT '0' as Result, '' ID, N'Đồng bộ chi phí sửa chữa tài sản thành công' ErrorDesc
|
367
|
RETURN '0'
|
368
|
ABORT:
|
369
|
BEGIN
|
370
|
CLOSE cur
|
371
|
DEALLOCATE cur
|
372
|
ROLLBACK TRANSACTION
|
373
|
SELECT '-1' as Result, '' ID, N'Đồng bộ chi phí sửa chữa tài sản thất bại' ErrorDesc
|
374
|
RETURN '-1'
|
375
|
End
|
376
|
GO
|
377
|
IF @@ERROR <> 0 SET NOEXEC ON
|
378
|
GO
|
379
|
PRINT N'Altering [dbo].[THREAD_GET_CONTENT_SEND_MAIL]'
|
380
|
GO
|
381
|
ALTER PROC [dbo].[THREAD_GET_CONTENT_SEND_MAIL]
|
382
|
@p_TIME_RUN_TOOL VARCHAR(50) = NULL,
|
383
|
@p_TIME_SEND_ID INT = NULL,
|
384
|
@p_TIME_VALUE VARCHAR(100) = NULL,
|
385
|
@p_LOCATION VARCHAR(20) = NULL
|
386
|
AS
|
387
|
BEGIN
|
388
|
|
389
|
IF(@p_TIME_VALUE IS NULL OR @p_TIME_VALUE = '' OR @p_TIME_SEND_ID IS NULL OR @p_TIME_SEND_ID = '')
|
390
|
RETURN '-1'
|
391
|
|
392
|
DECLARE @DISTANCE_TIME INT = NULL,
|
393
|
@DISTANCE_TYPE VARCHAR(20) = NULL,
|
394
|
@TOOL_NAME NVARCHAR(1000) = NULL,
|
395
|
@TOOL_VALUE VARCHAR(100) = NULL,
|
396
|
@EXEC_DT DATETIME = NULL,
|
397
|
@MESSAGE NVARCHAR(1000) = NULL,
|
398
|
@EXEC_TYPE VARCHAR(20) = NULL
|
399
|
|
400
|
IF(@p_LOCATION = 'EXEC')
|
401
|
BEGIN
|
402
|
SET @EXEC_TYPE = 'EXECUTE'
|
403
|
END
|
404
|
ELSE
|
405
|
BEGIN
|
406
|
SET @EXEC_TYPE = 'AUTO'
|
407
|
END
|
408
|
|
409
|
SELECT @DISTANCE_TIME = TIME_SEND
|
410
|
,@DISTANCE_TYPE = TIME_SEND_TYPE
|
411
|
,@TOOL_NAME = TIME_CONTENT
|
412
|
,@TOOL_VALUE = TIME_VALUE,
|
413
|
@EXEC_DT = SENT_DATE
|
414
|
FROM THREAD_TIME_SEND
|
415
|
WHERE TIME_VALUE = @p_TIME_VALUE
|
416
|
|
417
|
DECLARE @TEMP TABLE
|
418
|
(
|
419
|
[ID] VARCHAR(20),
|
420
|
[EMAIL] VARCHAR(50),
|
421
|
[NF_MESSAGE_TYPE] VARCHAR(500),
|
422
|
[ROLE_TIFI_TYPE] VARCHAR(500),
|
423
|
IS_SENDMAIL BIT,
|
424
|
IS_RUN_TOOL BIT,
|
425
|
TOOL_NAME NVARCHAR(100),
|
426
|
QUERY_SELECT NVARCHAR(MAX)
|
427
|
|
428
|
)
|
429
|
DECLARE @TIME_SEND INT = NULL,
|
430
|
@TIME_SEND_TYPE VARCHAR(20) = NULL,
|
431
|
@TIME_VALUE VARCHAR(25) = NULL,
|
432
|
@NF_MESSAGE_TYPE VARCHAR(50) = NULL,
|
433
|
@ROLE_TIFI_TYPE VARCHAR(50) = NULL,
|
434
|
@SEND_DATE DATETIME = NULL,
|
435
|
@QUERY_SELECT NVARCHAR(MAX) = NULL,
|
436
|
|
437
|
@EXEC_DATE VARCHAR(50) = NULL
|
438
|
|
439
|
SELECT @TIME_SEND = A.TIME_SEND,@TIME_SEND_TYPE = A.TIME_SEND_TYPE,
|
440
|
@TIME_VALUE = A.TIME_VALUE,@NF_MESSAGE_TYPE = A.NF_MESSAGE_TYPE,
|
441
|
@ROLE_TIFI_TYPE = A.ROLE_TIFI_TYPE,@SEND_DATE = A.SENT_DATE
|
442
|
FROM THREAD_TIME_SEND A
|
443
|
WHERE (A.[STATUS] = 1 OR @p_LOCATION = 'EXEC') AND A.TIME_VALUE = @p_TIME_VALUE AND A.TIME_SEND_ID = @p_TIME_SEND_ID
|
444
|
|
445
|
|
446
|
--FIX THREAD NẾU START VÀ STOP TOOL NHIỀU LẦN THÌ BỊ DUP EXEC
|
447
|
IF(@p_LOCATION <> 'EXEC' OR @p_LOCATION IS NULL OR @p_LOCATION = '')
|
448
|
BEGIN
|
449
|
IF(DATEDIFF(DAYOFYEAR,CONVERT(DATETIME,@p_TIME_RUN_TOOL,103),@SEND_DATE) <> 0)
|
450
|
BEGIN
|
451
|
SET @MESSAGE = N'Ngày không hợp lệ'
|
452
|
GOTO ABORT
|
453
|
END
|
454
|
|
455
|
END
|
456
|
|
457
|
BEGIN --TRANSACTION T1
|
458
|
|
459
|
IF(@p_TIME_VALUE = 'SYNC_EMP')
|
460
|
BEGIN --TOOL ĐỒNG BỘ NGƯỜI DÙNG
|
461
|
--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 ca.ParaValue FROM SYS_PARAMETERS ca WHERE ca.ParaKey = 'LAST_SYNC_DATE') + ''',103),TGTao) >= 0 ORDER BY TGTao'
|
462
|
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'
|
463
|
|
464
|
INSERT INTO @TEMP (IS_RUN_TOOL, TOOL_NAME, QUERY_SELECT)
|
465
|
VALUES (1,'CM_EMPLOYEE_SYNC',@QUERY_SELECT);
|
466
|
|
467
|
IF(@p_LOCATION IS NULL)
|
468
|
BEGIN
|
469
|
IF @@Error <> 0 GOTO ABORT
|
470
|
|
471
|
UPDATE SYS_PARAMETERS SET ParaValue = FORMAT(CONVERT(DATE,GETDATE(),103),'dd/MM/yyyy') WHERE ParaKey = 'LAST_SYNC_DATE'
|
472
|
END
|
473
|
|
474
|
END
|
475
|
ELSE IF(@p_TIME_VALUE = 'CHECK_WARRANTY_DT')
|
476
|
BEGIN --TOOL GỬI MAIL THÔNG BÁO TÀI SẢN SẮP HẾT HẠN BẢO HÀNH
|
477
|
INSERT INTO @TEMP (IS_SENDMAIL, TOOL_NAME,NF_MESSAGE_TYPE,ROLE_TIFI_TYPE)
|
478
|
VALUES (1,N'GỬI MAIL',@NF_MESSAGE_TYPE,@ROLE_TIFI_TYPE);
|
479
|
END
|
480
|
ELSE IF(@p_TIME_VALUE = 'CHECK_TRANS_NOT_APPROVE')
|
481
|
BEGIN --GỬI MAIL NHỮNG GIAO DỊCH CHƯA ĐƯỢC PHÊ DUYỆT
|
482
|
INSERT INTO @TEMP (IS_SENDMAIL, TOOL_NAME,NF_MESSAGE_TYPE,ROLE_TIFI_TYPE)
|
483
|
|
484
|
SELECT 1,N'CHECK GIAO DỊCH CHƯA DUYỆT',@NF_MESSAGE_TYPE + '|' + PP.ID, @ROLE_TIFI_TYPE + '|' + PP.ID
|
485
|
FROM (
|
486
|
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
|
487
|
FROM ASS_USE_MULTI_MASTER A
|
488
|
LEFT JOIN ASS_USE_CONFIRM_MASTER B ON A.USER_MASTER_ID = B.USER_MASTER_ID
|
489
|
WHERE (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'E' AND B.USER_CONFIRM_MASTER_ID IS NOT NULL)
|
490
|
OR (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'U')
|
491
|
UNION
|
492
|
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
|
493
|
FROM ASS_TRANSFER_MULTI_MASTER A
|
494
|
WHERE (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'E')
|
495
|
OR (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'U')
|
496
|
UNION
|
497
|
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
|
498
|
FROM ASS_COLLECT_MULTI_MASTER A
|
499
|
LEFT JOIN ASS_COLLECT_CONFIRM_MASTER B ON A.COL_MULTI_MASTER_ID = B.COL_MULTI_MASTER_ID
|
500
|
WHERE (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'E' AND B.COL_MULTI_MASTER_CONFIRM_ID IS NOT NULL)
|
501
|
OR (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'U')
|
502
|
UNION
|
503
|
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
|
504
|
FROM ASS_LIQUIDATION A
|
505
|
WHERE (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'E')
|
506
|
OR (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'U')
|
507
|
UNION
|
508
|
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
|
509
|
FROM ASS_ADDNEW A
|
510
|
WHERE (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'E')
|
511
|
OR (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'U'))PP
|
512
|
|
513
|
END
|
514
|
ELSE IF(@p_TIME_VALUE = 'KH')
|
515
|
BEGIN --TOOL CHẠY KHẤU HAO
|
516
|
SET @EXEC_DATE = CONVERT(VARCHAR(50),@SEND_DATE)
|
517
|
IF((SELECT (((DATEPART(DW, @SEND_DATE) - 1 ) + @@DATEFIRST ) % 7)) NOT IN ('0','6'))
|
518
|
BEGIN -- NẾU KHÁC NGÀY T7 VÀ CN THÌ CHẠY
|
519
|
EXEC ASS_AMORT_StartDO @p_EXECUTE_DATE = @EXEC_DATE
|
520
|
,@p_MAKER_ID = 'bichnn'
|
521
|
,@p_CHECKER_ID = 'bichnn'
|
522
|
,@p_ASSET_TYPE = NULL
|
523
|
,@p_BRANCH_ID_LST = NULL
|
524
|
,@p_EXEC_TYPE = @EXEC_TYPE
|
525
|
END
|
526
|
END
|
527
|
|
528
|
IF @@Error <> 0 GOTO ABORT
|
529
|
|
530
|
IF(@p_LOCATION IS NULL OR @p_LOCATION = '')
|
531
|
BEGIN -- NẾU CHẠY TOOL THÌ UPDATE NGÀY, EXEC TRỰC TIẾP THÌ KHÔNG UPDATE NGÀY
|
532
|
IF(@TIME_SEND_TYPE = 'NGAY')
|
533
|
BEGIN
|
534
|
UPDATE THREAD_TIME_SEND
|
535
|
SET SENT_DATE = DATEADD(DAY,@TIME_SEND,@SEND_DATE)
|
536
|
WHERE TIME_SEND_ID = @p_TIME_SEND_ID AND TIME_VALUE = @p_TIME_VALUE
|
537
|
END
|
538
|
ELSE IF(@TIME_SEND_TYPE = 'THANG')
|
539
|
BEGIN
|
540
|
UPDATE THREAD_TIME_SEND
|
541
|
SET SENT_DATE = DATEADD(MONTH,@TIME_SEND,@SEND_DATE)
|
542
|
WHERE TIME_SEND_ID = @p_TIME_SEND_ID AND TIME_VALUE = @p_TIME_VALUE
|
543
|
END
|
544
|
END
|
545
|
|
546
|
|
547
|
|
548
|
-- COMMIT TRANSACTION T1
|
549
|
END
|
550
|
SELECT * FROM @TEMP
|
551
|
|
552
|
IF(@p_TIME_VALUE <> 'KH')
|
553
|
BEGIN
|
554
|
INSERT INTO THREAD_TIME_SEND_LOG (DISTANCE_TIME, DISTANCE_TYPE, TOOL_NAME, TOOL_VALUE, EXEC_DT, EXEC_TYPE, MESSAGE, CREATE_DT)
|
555
|
VALUES (@DISTANCE_TIME,@DISTANCE_TYPE, @TOOL_NAME, @TOOL_VALUE, @EXEC_DT,@EXEC_TYPE, N'Thực thi thành công', GETDATE());
|
556
|
END
|
557
|
|
558
|
RETURN '0'
|
559
|
ABORT:
|
560
|
BEGIN
|
561
|
--ROLLBACK TRANSACTION T1
|
562
|
--GHI LOG
|
563
|
IF(@p_TIME_VALUE <> 'KH')
|
564
|
BEGIN
|
565
|
INSERT INTO THREAD_TIME_SEND_LOG (DISTANCE_TIME, DISTANCE_TYPE, TOOL_NAME, TOOL_VALUE, EXEC_DT, EXEC_TYPE, MESSAGE, CREATE_DT)
|
566
|
VALUES (@DISTANCE_TIME,@DISTANCE_TYPE, @TOOL_NAME, @TOOL_VALUE, @EXEC_DT,@EXEC_TYPE, ISNULL(@MESSAGE,ERROR_MESSAGE()), GETDATE());
|
567
|
END
|
568
|
RETURN '-1'
|
569
|
End
|
570
|
|
571
|
|
572
|
END
|