Project

General

Profile

dongbo_nv_1.txt

Luc Tran Van, 04/12/2023 01:37 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 ca.ParaValue FROM SYS_PARAMETERS ca WHERE ca.ParaKey = 'LAST_SYNC_DATE') + ''',103),TGTao) >= 0  ORDER BY TGTao'
82
    
83
          INSERT INTO @TEMP (IS_RUN_TOOL, TOOL_NAME, QUERY_SELECT)
84
          VALUES (1,'CM_EMPLOYEE_SYNC',@QUERY_SELECT);
85
    
86
          IF(@p_LOCATION IS NULL)
87
          BEGIN
88
                IF @@Error <> 0 GOTO ABORT
89

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

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

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

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

    
190
	
191
END
192
GO
193
IF @@ERROR <> 0 SET NOEXEC ON
194
GO
195
PRINT N'Altering [dbo].[GET_LAST_SYNC_DATE]'
196
GO
197
ALTER PROCEDURE [dbo].[GET_LAST_SYNC_DATE]
198
AS
199
BEGIN
200
    SELECT CONVERT(DATETIME,ca.ParaValue,103) AS LAST_SYNC_DATE FROM SYS_PARAMETERS ca WHERE ca.ParaKey = 'LAST_SYNC_DATE' 
201
END
202
GO
203
IF @@ERROR <> 0 SET NOEXEC ON
204
GO
205
PRINT N'Altering [dbo].[CM_EMPLOYEE_SYNC_INS]'
206
GO
207
ALTER PROCEDURE [dbo].[CM_EMPLOYEE_SYNC_INS]
208
@p_JSON_DATA NVARCHAR(MAX) = NULL
209
AS
210
----Phucvh 20/02/23 Store đồng bộ nhân viên từ DB HR
211
IF (@p_JSON_DATA IS NULL OR @p_JSON_DATA = '')
212
BEGIN  
213
SELECT '-1' as Result, '' ID, N'Data NULL Đồng bộ thất bại' ErrorDesc
214
RETURN '-1'
215
END
216

    
217
--LUU DATA DONG BO
218
UPDATE THREAD_TIME_SEND_LOG SET MESSAGE = MESSAGE + @p_JSON_DATA
219
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)
220

    
221
DECLARE @Tbl_Data_From_Json TABLE(
222
Id	UNIQUEIDENTIFIER,
223
Loai	INT,
224
MaNS nvarchar(500),
225
HoTen nvarchar(500),
226
MaDVCu nvarchar(500),
227
DVCu nvarchar(500),
228
MaDVMoi nvarchar(500),
229
DVMoi nvarchar(500),
230
MaCDCu nvarchar(500),
231
CDCu nvarchar(500),
232
MaCDMoi nvarchar(500),
233
CDMoi nvarchar(500),
234
LoaiHDLD nvarchar(500),
235
Email nvarchar(500),
236
Ngay VARCHAR(500),
237
So nvarchar(500),
238
NgayHLuc VARCHAR(500),
239
NgayHetHLuc VARCHAR(500),
240
TGTao VARCHAR(500)
241
)
242

    
243
INSERT INTO @Tbl_Data_From_Json
244
SELECT *
245
FROM OPENJSON(@p_JSON_DATA)
246
WITH 
247
(
248
Id	UNIQUEIDENTIFIER '$.Id',
249
Loai	INT '$.Loai',
250
MaNS nvarchar(500) '$.MaNS',
251
HoTen nvarchar(500) '$.HoTen',
252
MaDVCu nvarchar(500) '$.MaDVCu',
253
DVCu nvarchar(500) '$.DVCu',
254
MaDVMoi nvarchar(500) '$.MaDVMoi',
255
DVMoi nvarchar(500) '$.DVMoi',
256
MaCDCu nvarchar(500) '$.MaCDCu',
257
CDCu nvarchar(500) '$.CDCu',
258
MaCDMoi nvarchar(500) '$.MaCDMoi',
259
CDMoi nvarchar(500) '$.CDMoi',
260
LoaiHDLD nvarchar(500) '$.LoaiHDLD',
261
Email nvarchar(500) '$.Email',
262
Ngay VARCHAR(500) '$.Ngay',
263
So nvarchar(500) '$.So',
264
NgayHLuc VARCHAR(500) '$.NgayHLuc',
265
NgayHetHLuc VARCHAR(500) '$.NgayHetHLuc',
266
TGTao VARCHAR(500) '$.TGTao'
267
)
268

    
269
DECLARE 
270
@Id	UNIQUEIDENTIFIER, @Loai	INT, @MaNS nvarchar(500), @HoTen nvarchar(500), 
271
@MaDVCu nvarchar(500), @DVCu nvarchar(500), @MaDVMoi nvarchar(500), @DVMoi nvarchar(500), 
272
@MaCDCu nvarchar(500), @CDCu nvarchar(500), @MaCDMoi nvarchar(500), @CDMoi nvarchar(500), 
273
@LoaiHDLD nvarchar(500), @Email nvarchar(500), @Ngay VARCHAR(500), @So nvarchar(500), 
274
@NgayHLuc VARCHAR(500), @NgayHetHLuc VARCHAR(500), @TGTao VARCHAR(500)
275
                   
276

    
277
BEGIN TRANSACTION
278
    DECLARE cur CURSOR FAST_FORWARD READ_ONLY LOCAL FOR
279
    SELECT * FROM @Tbl_Data_From_Json
280
   
281
   OPEN cur
282
   
283
   FETCH NEXT FROM cur INTO @Id,@Loai,@MaNS,@HoTen,@MaDVCu,@DVCu,@MaDVMoi,@DVMoi,@MaCDCu,@CDCu,@MaCDMoi,@CDMoi,@LoaiHDLD,@Email,@Ngay,@So,@NgayHLuc,@NgayHetHLuc,@TGTao
284
   
285
   WHILE @@FETCH_STATUS = 0 BEGIN
286
      
287
      IF(NOT EXISTS(SELECT 1 FROM CM_EMPLOYEE_SYNC ces WHERE ces.Id = @Id))
288
      BEGIN
289
           	INSERT INTO CM_EMPLOYEE_SYNC (Id, Loai, MaNS, HoTen, MaDVCu, DVCu, MaDVMoi, DVMoi, MaCDCu, CDCu, MaCDMoi, CDMoi, LoaiHDLD, Email, Ngay, So, NgayHLuc, NgayHetHLuc, TGTao)
290
            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))
291
      END      
292
     
293
     	FETCH NEXT FROM cur INTO @Id,@Loai,@MaNS,@HoTen,@MaDVCu,@DVCu,@MaDVMoi,@DVMoi,@MaCDCu,@CDCu,@MaCDMoi,@CDMoi,@LoaiHDLD,@Email,@Ngay,@So,@NgayHLuc,@NgayHetHLuc,@TGTao
294
   
295
   END
296
   
297
   CLOSE cur
298
   DEALLOCATE cur
299

    
300

    
301
		IF @@Error <> 0 GOTO ABORT
302
COMMIT TRANSACTION
303
SELECT '0' as Result, ''  ID, N'Đồng bộ chi phí sửa chữa tài sản thành công' ErrorDesc
304
RETURN '0'
305
ABORT:
306
BEGIN
307
    CLOSE cur
308
    DEALLOCATE cur
309
		ROLLBACK TRANSACTION
310
		SELECT '-1' as Result, '' ID, N'Đồng bộ chi phí sửa chữa tài sản thất bại' ErrorDesc
311
		RETURN '-1'
312
End