Project

General

Profile

GET_SELECT_EMPSYNC.txt

Luc Tran Van, 04/20/2023 01:57 PM

 
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