1
|
|
2
|
ALTER PROC dbo.THREAD_GET_CONTENT_SEND_MAIL
|
3
|
@p_TIME_RUN_TOOL VARCHAR(50) = NULL,
|
4
|
@p_TIME_SEND_ID INT = NULL,
|
5
|
@p_TIME_VALUE VARCHAR(100) = NULL,
|
6
|
@p_LOCATION VARCHAR(20) = NULL
|
7
|
AS
|
8
|
BEGIN
|
9
|
|
10
|
IF(@p_TIME_VALUE IS NULL OR @p_TIME_VALUE = '' OR @p_TIME_SEND_ID IS NULL OR @p_TIME_SEND_ID = '')
|
11
|
RETURN '-1'
|
12
|
|
13
|
DECLARE @DISTANCE_TIME INT = NULL,
|
14
|
@DISTANCE_TYPE VARCHAR(20) = NULL,
|
15
|
@TOOL_NAME NVARCHAR(1000) = NULL,
|
16
|
@TOOL_VALUE VARCHAR(100) = NULL,
|
17
|
@EXEC_DT DATETIME = NULL,
|
18
|
@MESSAGE NVARCHAR(1000) = NULL,
|
19
|
@EXEC_TYPE VARCHAR(20) = NULL
|
20
|
|
21
|
IF(@p_LOCATION = 'EXEC')
|
22
|
BEGIN
|
23
|
SET @EXEC_TYPE = 'EXECUTE'
|
24
|
END
|
25
|
ELSE
|
26
|
BEGIN
|
27
|
SET @EXEC_TYPE = 'AUTO'
|
28
|
END
|
29
|
|
30
|
SELECT @DISTANCE_TIME = TIME_SEND
|
31
|
,@DISTANCE_TYPE = TIME_SEND_TYPE
|
32
|
,@TOOL_NAME = TIME_CONTENT
|
33
|
,@TOOL_VALUE = TIME_VALUE,
|
34
|
@EXEC_DT = SENT_DATE
|
35
|
FROM THREAD_TIME_SEND
|
36
|
WHERE TIME_VALUE = @p_TIME_VALUE
|
37
|
|
38
|
DECLARE @TEMP TABLE
|
39
|
(
|
40
|
[ID] VARCHAR(20),
|
41
|
[EMAIL] VARCHAR(50),
|
42
|
[NF_MESSAGE_TYPE] VARCHAR(500),
|
43
|
[ROLE_TIFI_TYPE] VARCHAR(500),
|
44
|
IS_SENDMAIL BIT,
|
45
|
IS_RUN_TOOL BIT,
|
46
|
TOOL_NAME NVARCHAR(100),
|
47
|
QUERY_SELECT NVARCHAR(MAX)
|
48
|
|
49
|
)
|
50
|
DECLARE @TIME_SEND INT = NULL,
|
51
|
@TIME_SEND_TYPE VARCHAR(20) = NULL,
|
52
|
@TIME_VALUE VARCHAR(25) = NULL,
|
53
|
@NF_MESSAGE_TYPE VARCHAR(50) = NULL,
|
54
|
@ROLE_TIFI_TYPE VARCHAR(50) = NULL,
|
55
|
@SEND_DATE DATETIME = NULL,
|
56
|
@QUERY_SELECT NVARCHAR(MAX) = NULL,
|
57
|
|
58
|
@EXEC_DATE VARCHAR(50) = NULL
|
59
|
|
60
|
SELECT @TIME_SEND = A.TIME_SEND,@TIME_SEND_TYPE = A.TIME_SEND_TYPE,
|
61
|
@TIME_VALUE = A.TIME_VALUE,@NF_MESSAGE_TYPE = A.NF_MESSAGE_TYPE,
|
62
|
@ROLE_TIFI_TYPE = A.ROLE_TIFI_TYPE,@SEND_DATE = A.SENT_DATE
|
63
|
FROM THREAD_TIME_SEND A
|
64
|
WHERE (A.[STATUS] = 1 OR @p_LOCATION = 'EXEC') AND A.TIME_VALUE = @p_TIME_VALUE AND A.TIME_SEND_ID = @p_TIME_SEND_ID
|
65
|
|
66
|
|
67
|
--FIX THREAD NẾU START VÀ STOP TOOL NHIỀU LẦN THÌ BỊ DUP EXEC
|
68
|
IF(@p_LOCATION <> 'EXEC' OR @p_LOCATION IS NULL OR @p_LOCATION = '')
|
69
|
BEGIN
|
70
|
IF(DATEDIFF(DAYOFYEAR,CONVERT(DATETIME,@p_TIME_RUN_TOOL,103),@SEND_DATE) <> 0)
|
71
|
BEGIN
|
72
|
SET @MESSAGE = N'Ngày không hợp lệ'
|
73
|
GOTO ABORT
|
74
|
END
|
75
|
|
76
|
END
|
77
|
|
78
|
BEGIN --TRANSACTION T1
|
79
|
|
80
|
IF(@p_TIME_VALUE = 'SYNC_EMP')
|
81
|
BEGIN --TOOL ĐỒNG BỘ NGƯỜI DÙNG
|
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 WHERE (EXISTS(SELECT 1 FROM SYS_PARAMETERS WHERE ParaKey = ''GETALL_RECORD_EMPSYNC'' AND ParaValue = ''1'') OR (DATEDIFF(DAYOFYEAR,CONVERT(DATETIME,''' + (ISNULL((SELECT ca.ParaValue FROM SYS_PARAMETERS ca WHERE ca.ParaKey = 'LAST_SYNC_DATE'),GETDATE())) + ''',103),TGTao) >= 0)) 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 = FORMAT(CONVERT(DATE,GETDATE(),103),'dd/MM/yyyy') 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
|
|