Project

General

Profile

EMP_SYNC_2.txt

Luc Tran Van, 04/20/2023 05:10 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
          IF(EXISTS(SELECT 1 FROM SYS_PARAMETERS WHERE ParaKey = 'GETALL_RECORD_EMPSYNC' AND ParaValue = '1'))
82
          BEGIN
83
              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'
84
          END
85
          ELSE
86
          BEGIN
87
              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,''' + (ISNULL((SELECT ca.ParaValue FROM SYS_PARAMETERS ca WHERE ca.ParaKey = 'LAST_SYNC_DATE'),GETDATE())) + ''',103),TGTao) >= 0  ORDER BY TGTao'
88
          END
89

    
90
          INSERT INTO @TEMP (IS_RUN_TOOL, TOOL_NAME, QUERY_SELECT)
91
          VALUES (1,'CM_EMPLOYEE_SYNC',@QUERY_SELECT);
92
    
93
          IF(@p_LOCATION IS NULL)
94
          BEGIN
95
                IF @@Error <> 0 GOTO ABORT
96

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

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

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

    
184
  RETURN '0'
185
  ABORT:
186
  BEGIN
187
  		--ROLLBACK TRANSACTION T1
188
      --GHI LOG
189
        IF(@p_TIME_VALUE <> 'KH')
190
        BEGIN
191
            INSERT INTO THREAD_TIME_SEND_LOG (DISTANCE_TIME, DISTANCE_TYPE, TOOL_NAME, TOOL_VALUE, EXEC_DT, EXEC_TYPE, MESSAGE, CREATE_DT)
192
            VALUES (@DISTANCE_TIME,@DISTANCE_TYPE, @TOOL_NAME, @TOOL_VALUE, @EXEC_DT,@EXEC_TYPE, ISNULL(@MESSAGE,ERROR_MESSAGE()), GETDATE()); 
193
        END
194
      RETURN '-1'
195
  End
196

    
197
	
198
END