Project

General

Profile

SHOP_Send.txt

Luc Tran Van, 04/14/2023 08:39 AM

 
1
ALTER PROCEDURE dbo.TR_REQUEST_SHOP_PROCESS_Update
2
@p_REQ_ID varchar(15) = NULL,
3
@p_TYPE_PROCESS varchar(15) = NULL,
4
@p_MAKERID varchar(100)= NULL,
5
@p_AUTH_STATUS VARCHAR(1) = NULL,
6
@p_CHECKER_ID VARCHAR(100)  = NULL,
7
@p_APPROVE_DT VARCHAR(50) = NULL,
8
@p_USERNAME varchar(100)  = NULL,
9
@p_CURRENT_URI NVARCHAR(200) = NULL,
10
@p_NOTES NVARCHAR(500)= NULL,
11
@p_DVKD_USER_APP NVARCHAR(500)= NULL
12

    
13
AS
14
BEGIN
15

    
16
DECLARE 
17
@NOTIFATION NVARCHAR(100) = NULL,
18
@NOTIFY_TO_USER NVARCHAR(100) = NULL,
19
@EMAIL_CONTENT NVARCHAR(500) = NULL,
20
@TYPE VARCHAR(10),
21
@ROLE VARCHAR(20)= NULL,
22
@BRANCHID VARCHAR(20)= NULL,
23
@PROCESS_CURR VARCHAR(20)= NULL,
24
@PROCESS_NEXT VARCHAR(20)= NULL,
25
@BRANCH_NEXT VARCHAR(20)=NULL,
26
@DEP_NEXT VARCHAR(20) = NULL,
27
@DEP_ID VARCHAR(20)
28

    
29

    
30
IF(@p_NOTES = 'QLTSconfirmandSendApprove') SET @p_NOTES = N'Bộ phận QLTS gửi đến Bộ phận ĐVCM tham vấn'
31

    
32
SELECT @BRANCHID=TLSUBBRID ,@DEP_ID=DEP_ID FROM dbo.TL_USER WHERE TLNANME=@p_USERNAME
33

    
34
DECLARE @lstCOST TABLE (
35
	COST_ID VARCHAR(20)
36
)
37

    
38
DECLARE @usersToNotify TABLE (
39
	TLNANME VARCHAR(100)
40
)
41

    
42
INSERT INTO @lstCOST
43
SELECT COST_ID FROM dbo.TR_REQUEST_SHOP_COSTCENTER TRSC WHERE TRSC.REQ_ID = @p_REQ_ID
44
	
45
DECLARE @p_LOG_ID VARCHAR(20),@COMPLETE BIT,@PROCESS_PARENT VARCHAR(20),@PROCESS_DES NVARCHAR(500)
46

    
47
DECLARE  @ROLE_LOGIN TABLE(ROLE_USER VARCHAR(20), BRANCH_ID VARCHAR(20), DEP_ID VARCHAR(20))
48
INSERT INTO @ROLE_LOGIN
49
SELECT tugr.ROLE_ID, tugr.BRANCH_ID, tugr.DEPT_ID FROM dbo.TL_USER_GET_ROLES(@p_USERNAME) tugr
50
SET @PROCESS_CURR=(SELECT TOP 1 PROCESS_ID FROM dbo.PL_REQUEST_PROCESS
51
WHERE REQ_ID=@p_REQ_ID AND STATUS='C'
52
AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS A WHERE A.ID = PL_REQUEST_PROCESS.ID AND A.REQ_ID = @p_REQ_ID AND A.STATUS = 'C'
53
  AND EXISTS(SELECT RL.ROLE_USER FROM @ROLE_LOGIN RL WHERE RL.BRANCH_ID = A.BRANCH_ID
54
    AND (A.BRANCH_ID = 'DV0001' AND A.DEP_ID = RL.DEP_ID OR A.BRANCH_ID <> 'DV0001')
55
    AND RL.ROLE_USER = A.ROLE_USER)))
56
SET @COMPLETE=0
57

    
58
DECLARE @DEP_QLTS VARCHAR(20), @DEP_DVNB VARCHAR(20), @DEP_HTKD VARCHAR(20)
59
SET @DEP_QLTS = (SELECT TOP 1 sp.ParaValue FROM SYS_PARAMETERS sp WHERE sp.ParaKey = 'DEP_QLTS')
60
SET @DEP_DVNB = (SELECT TOP 1 sp.ParaValue FROM SYS_PARAMETERS sp WHERE sp.ParaKey = 'DEP_TTQLTS')
61
SET @DEP_HTKD = (SELECT TOP 1 sp.ParaValue FROM SYS_PARAMETERS sp WHERE sp.ParaKey = 'DEP_KQLTS')
62

    
63
BEGIN TRANSACTION
64

    
65
	-- GỬI DVKD
66
	IF(@p_TYPE_PROCESS='S_TDV')
67
	BEGIN
68
    --check tài sản thay thế ở phiếu đã duyệt
69
    BEGIN
70
    IF(EXISTS(SELECT * FROM TR_REQUEST_SHOP_DOC_DT TRSDD WHERE TRSDD.REQ_DOC_ID = @p_REQ_ID AND REQ_DT_TYPE = 'ASSET_BROKEN' AND TRSDD.ASS_ID IS NOT NULL OR TRSDD.ASS_ID <> ''))
71
          BEGIN
72
              DECLARE @MESSAGE_VALIDATION NVARCHAR(MAX)
73
    
74
              DECLARE @TABLE_ASSCODE_VALIDATION TABLE (ASSET_CODE VARCHAR(100), REQ_CODE VARCHAR(100))
75
              INSERT INTO @TABLE_ASSCODE_VALIDATION
76
              SELECT ISNULL(C.ASSET_CODE,C.ASS_CODE_TMP),B.REQ_CODE
77
              FROM TR_REQUEST_SHOP_DOC_DT A
78
              LEFT JOIN TR_REQUEST_SHOP_DOC B ON A.REQ_DOC_ID = B.REQ_ID
79
              LEFT JOIN ASS_MASTER C ON A.ASS_ID = C.ASSET_ID
80
              WHERE A.ASS_ID IN (SELECT C.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT C WHERE C.REQ_DOC_ID = @p_REQ_ID AND C.REQ_DT_TYPE = 'ASSET_BROKEN')
81
              --AND B.IS_DONE = '0'
82
              AND B.REQ_TYPE = 'CPTS'
83
              AND B.AUTH_STATUS <> 'E'
84
              AND A.REQ_DOC_ID <> @p_REQ_ID
85
             
86
              IF(EXISTS(SELECT 1 FROM @TABLE_ASSCODE_VALIDATION))
87
              BEGIN
88
                  SET @MESSAGE_VALIDATION = (SELECT REPLACE((SELECT 
89
                                                                    CASE WHEN ROW_NUMBER() OVER (ORDER BY (SELECT 0)) = 1 THEN ''
90
                                                                    ELSE '|' END 
91
                                                                    + N'Tài sản ' + C.ASSET_CODE + N' đã được chọn trong tài sản yêu cầu thay thế ở phiếu số ' + C.REQ_CODE
92
                                                              FROM (SELECT DISTINCT ISNULL(C.ASSET_CODE,C.ASS_CODE_TMP) AS ASSET_CODE,B.REQ_CODE
93
                                                                    FROM TR_REQUEST_SHOP_DOC_DT A
94
                                                                    LEFT JOIN TR_REQUEST_SHOP_DOC B ON A.REQ_DOC_ID = B.REQ_ID
95
                                                                    LEFT JOIN ASS_MASTER C ON A.ASS_ID = C.ASSET_ID
96
                                                                    WHERE A.ASS_ID IN (SELECT C.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT C WHERE C.REQ_DOC_ID = @p_REQ_ID AND C.REQ_DT_TYPE = 'ASSET_BROKEN')
97
                                                                    --AND B.IS_DONE = '0'
98
                                                                    AND B.REQ_TYPE = 'CPTS'
99
                                                                    AND B.AUTH_STATUS <> 'E'
100
                                                                    AND A.REQ_DOC_ID <> @p_REQ_ID) C
101
                                                              FOR XML PATH (''))
102
                                                            , '|', '<br />'))
103
              ROLLBACK TRANSACTION
104
              SELECT '-1' as Result, @MESSAGE_VALIDATION ErrorDesc
105
              RETURN '-1'
106
              END
107
          END
108
        END
109
		-- CẬP NHẬT TRẠNG THÁI CHO REQUEST_PROCESS
110

    
111
		--IF(@PROCESS_CURR IS NULL OR @PROCESS_CURR='')
112
		BEGIN	
113
			UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='C', DVKD_USER_APP = @p_DVKD_USER_APP, RECEPTION_DT = GETDATE() WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='APPNEW'
114
			UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='P',CHECKER_ID=@p_CHECKER_ID,APPROVE_DT=CONVERT(DATETIME, @p_APPROVE_DT, 103), RECEPTION_DT = GETDATE() WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='ADDNEW'
115

    
116
            INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID, DVKD_USER_APP, PROCESS_TYPE)
117
		    VALUES(@p_REQ_ID,'QLTS_N','U','QLTS','DV0001','APPNEW', @DEP_QLTS, @p_DVKD_USER_APP, 'Update')
118
			IF @@Error <> 0 GOTO ABORT
119

    
120
			UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]='APPNEW', AUTH_STATUS = 'U' WHERE REQ_ID=@p_REQ_ID
121
			
122
			INSERT INTO @usersToNotify
123
			SELECT DISTINCT U.TLNANME FROM TL_USER u
124
			where u.TLNANME= @p_DVKD_USER_APP  
125
			SET @p_CURRENT_URI = REPLACE(@p_CURRENT_URI, 'add', 'edit') + ';id=' + @p_REQ_ID
126

    
127
			IF @@Error <> 0 GOTO ABORT
128
			IF(EXISTS(SELECT TLNANME FROM @usersToNotify))
129
				SET @COMPLETE=1
130
			ELSE
131
				SET @COMPLETE=0
132
			SET @PROCESS_CURR = 'APPNEW'
133

    
134
		END
135
		SET @COMPLETE=1
136
		SET @NOTIFATION= N'Gửi trưởng đơn vị thành công'
137
		SET @PROCESS_DES=N'NEW'
138
		SET @NOTIFY_TO_USER = 'DVKD_APP'
139
		SET @EMAIL_CONTENT = 'TYPE_PROCESS_REQ_ADD_NEW';
140
    	SET @PROCESS_DES=N'Nhân viên tạo phiếu và gửi đến Trưởng đơn vị phê duyệt'
141
	END
142

    
143
	-- GỬI HỘI SỞ
144
	ELSE IF(@p_TYPE_PROCESS='S_QLTS')
145
	BEGIN
146
		IF(EXISTS(SELECT * FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @p_REQ_ID AND STATUS = 'CANCEL'))
147
		BEGIN
148
			ROLLBACK TRANSACTION
149
			SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'Phiếu yêu cầu đã bị hủy' ErrorDesc
150
			RETURN '-1'
151
		END
152
		-- CẬP NHẬT TRẠNG THÁI CHO REQUEST_PROCESS
153
		--SET @PROCESS_PARENT=(SELECT PARENT_PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='QLTS_N')
154

    
155
		--IF(@PROCESS_CURR=@PROCESS_PARENT)
156
		BEGIN
157

    
158
			UPDATE PL_REQUEST_PROCESS SET [STATUS]='P',CHECKER_ID=@p_CHECKER_ID,APPROVE_DT=CONVERT(DATETIME, @p_APPROVE_DT, 103) 
159
            WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='APPNEW' 
160
            --AND (ROLE_USER IN (SELECT ROLE_ID FROM dbo.TL_USER_GET_ROLES(@p_USERNAME)))
161

    
162
			IF @@Error <> 0 GOTO ABORT
163

    
164
			UPDATE PL_REQUEST_PROCESS SET [STATUS]='C', RECEPTION_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103), NOTES = @p_NOTES
165
            WHERE PROCESS_ID = 'QLTS_N' AND REQ_ID=@p_REQ_ID
166

    
167
			SELECT @PROCESS_NEXT=PROCESS_ID,@ROLE=ROLE_USER,@BRANCH_NEXT=BRANCH_ID,@DEP_NEXT=DEP_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND STATUS='C'	
168

    
169
			UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]='QLTS_N', CHECKER_ID = @p_CHECKER_ID,APPROVE_DT=CONVERT(DATETIME, @p_APPROVE_DT, 103), SEND_APP_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103)  WHERE REQ_ID=@p_REQ_ID
170
			
171
		
172
			IF @@Error <> 0 GOTO ABORT
173
			
174
			SET @COMPLETE=1
175
		END
176
		SET @NOTIFATION= N'Phiếu đã được chuyển đến bộ phận QLTS - HO'
177
		SET @PROCESS_DES=N'Gửi phòng hành'
178
		SET @NOTIFY_TO_USER = 'UD_REQ_S_HCQT'
179
		SET @EMAIL_CONTENT = 'TYPE_PROCESS_REQ_S_HCQT';
180
    	SET @PROCESS_DES=N'Trưởng đơn vị phê duyệt và gửi đến bộ phận QLTS'
181
	END
182
    
183
	ELSE IF(@p_TYPE_PROCESS='S_DVCM')
184
	BEGIN
185

    
186
		SET @PROCESS_PARENT=(SELECT TOP (1) PARENT_PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='DVCM')
187
		-- CẬP NHẬT TRẠNG THÁI CHO REQUEST_PROCESS
188
  	UPDATE PL_REQUEST_PROCESS SET [STATUS]='P',CHECKER_ID=@p_CHECKER_ID,APPROVE_DT=CONVERT(DATETIME, @p_APPROVE_DT, 103)
189
    WHERE REQ_ID=@p_REQ_ID AND [STATUS]='C' AND PROCESS_ID='QLTS_N' 
190
      IF((SELECT COUNT(*) FROM TR_REQUEST_SHOP_COSTCENTER TRSC WHERE TRSC.REQ_ID = @p_REQ_ID) = 0)
191
      BEGIN
192
      	INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID, PROCESS_TYPE)
193
  		  VALUES(@p_REQ_ID,'QLTS_NL','C','QLTS','DV0001','QLTS_N',@DEP_QLTS, 'Update')
194

    
195
        INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID,PROCESS_TYPE)
196
        VALUES(@p_REQ_ID,'TBP_D','U','TBP_QLTS','DV0001','QLTS_NL',@DEP_QLTS, 'Approve')
197
        -- DUYỆT
198
        INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID,PROCESS_TYPE)
199
        VALUES(@p_REQ_ID,'QLTS_D','U','GDDV_QLTS','DV0001','TBP_D',@DEP_QLTS, 'Approve')
200
        INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],PARENT_PROCESS_ID)
201
        VALUES(@p_REQ_ID,'APPROVE','U','QLTS_D')
202
        -- HOÀN TẤT
203
        INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],PARENT_PROCESS_ID)
204
        VALUES(@p_REQ_ID,'DONE','U','APPROVE')
205

    
206
        UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]='QLTS_NL' , SEND_APP_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103) WHERE REQ_ID=@p_REQ_ID
207
                UPDATE TR_REQUEST_SHOP_DOC SET HO_NOTES = N'- Kế hoạch (Trong/Ngoài NS): ' + CHAR(10) + N'- Nội dung cấp: ' + CHAR(10) +  N'- Ghi chú khác: ' WHERE REQ_ID=@p_REQ_ID
208

    
209
        INSERT INTO @usersToNotify
210
  			SELECT DISTINCT U.TLNANME FROM TL_USER u
211
  			LEFT JOIN AbpUserRoles ur ON ur.UserId = u.ID
212
  			LEFT JOIN AbpRoles r ON ur.RoleId = r.Id
213
  			INNER JOIN
214
  			(
215
  				SELECT CC.COST_ID AS DEP_ID,CD.BRANCH_ID FROM dbo.PL_REQUEST_PROCESS PL 
216
  				LEFT JOIN dbo.TR_REQUEST_SHOP_COSTCENTER CC ON CC.COST_ID=pl.COST_ID
217
  				LEFT JOIN CM_DEPARTMENT CD ON CC.COST_ID = CD.DEP_ID
218
  				WHERE PL.REQ_ID=@p_REQ_ID AND PL.PROCESS_ID='DVCM'
219
  			) T ON T.DEP_ID=u.DEP_ID AND T.BRANCH_ID=u.TLSUBBRID
220
  			where r.DisplayName = @ROLE AND u.TLNANME != @p_USERNAME
221
  
222
  			IF @@Error <> 0 GOTO ABORT
223

    
224
  			SET @COMPLETE=1
225
            SET @p_NOTES = N'Bộ phận QLTS gửi đến Trưởng Bộ phận QLTS phê duyệt'
226
    		SET @NOTIFATION= N'Bộ phận QLTS đã tiếp nhận phiếu'
227
    		SET @NOTIFY_TO_USER = 'UD_REQ_S_APP'
228
    		SET @EMAIL_CONTENT = 'TYPE_PROCESS_REQ_S_APPP';
229
      	SET @PROCESS_DES=N'QLTS tiếp nhận và đang kiểm duyệt'
230
      END
231
      ELSE
232
      BEGIN
233
  	  --UPDATE PL_REQUEST_PROCESS SET [STATUS]='C', RECEPTION_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103) WHERE PROCESS_ID = 'DVCM' AND REQ_ID=@p_REQ_ID
234
  
235
        SELECT TOP 1 @PROCESS_NEXT=PROCESS_ID,@ROLE=ROLE_USER FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND STATUS='C'	
236
        
237
        INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID, PROCESS_TYPE)
238
        SELECT trsc.REQ_ID, 'DVCM', 'C', 'DVCM', 'DV0001', 'QLTS_N', trsc.COST_ID,'Update' FROM TR_REQUEST_SHOP_COSTCENTER trsc 
239
        WHERE trsc.REQ_ID = @p_REQ_ID
240

    
241
        INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID,PROCESS_TYPE)
242
        SELECT trsc.REQ_ID, 'DVCM_D', 'U', 'GDDV', 'DV0001', 'DVCM', trsc.COST_ID, 'Approve' FROM TR_REQUEST_SHOP_COSTCENTER trsc
243
        WHERE trsc.REQ_ID = @p_REQ_ID
244
        --
245
        INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID,PROCESS_TYPE)
246
        VALUES(@p_REQ_ID,'QLTS_NL','U','QLTS','DV0001','DVCM_D',@DEP_QLTS, 'Update')
247
        INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID,PROCESS_TYPE)
248
        VALUES(@p_REQ_ID,'TBP_D','U','TBP_QLTS','DV0001','QLTS_NL',@DEP_QLTS, 'Approve')
249
        INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID,PROCESS_TYPE)
250
        VALUES(@p_REQ_ID,'QLTS_D','U','GDDV_QLTS','DV0001','TBP_D',@DEP_QLTS, 'Approve')
251
        -- DUYỆT
252
        INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],PARENT_PROCESS_ID)
253
        VALUES(@p_REQ_ID,'APPROVE','U','QLTS_D')
254
        -- HOÀN TẤT
255
        INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],PARENT_PROCESS_ID)
256
        VALUES(@p_REQ_ID,'DONE','U','APPROVE')
257
 
258
  	    UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]='DVCM' WHERE REQ_ID=@p_REQ_ID
259
  
260
  			INSERT INTO @usersToNotify
261
  			SELECT DISTINCT U.TLNANME FROM TL_USER u
262
  			LEFT JOIN AbpUserRoles ur ON ur.UserId = u.ID
263
  			LEFT JOIN AbpRoles r ON ur.RoleId = r.Id
264
  			INNER JOIN
265
  			(
266
  				SELECT CC.COST_ID AS DEP_ID,CD.BRANCH_ID FROM dbo.PL_REQUEST_PROCESS PL 
267
  				LEFT JOIN dbo.TR_REQUEST_SHOP_COSTCENTER CC ON CC.COST_ID=pl.COST_ID
268
  				LEFT JOIN CM_DEPARTMENT CD ON CC.COST_ID = CD.DEP_ID
269
  				WHERE PL.REQ_ID=@p_REQ_ID AND PL.PROCESS_ID='DVCM'
270
  			) T ON T.DEP_ID=u.DEP_ID AND T.BRANCH_ID=u.TLSUBBRID
271
  			where r.DisplayName = @ROLE AND u.TLNANME != @p_USERNAME
272
  
273
  			IF @@Error <> 0 GOTO ABORT
274
    			
275
  			SET @COMPLETE=1
276
        SET @NOTIFATION= N'Gửi ĐVCM thành công'
277
        SET @PROCESS_DES=N'Gửi ĐVCM'
278
        SET @NOTIFY_TO_USER = 'UD_REQ_S_DVCM'
279
        SET @EMAIL_CONTENT = 'TYPE_PROCESS_REQ_S_DVCM';
280
  	    SET @PROCESS_DES=N'QLTS tiếp nhận và gửi đến ĐVCM'
281
      END
282
	END
283
    ELSE IF(@p_TYPE_PROCESS='S_TDVCM')
284
	BEGIN
285
    	DECLARE @USERDVCM VARCHAR(15) = ''
286
        SELECT @USERDVCM = TU.SECUR_CODE FROM TL_USER TU WHERE TU.TLNANME = @p_CHECKER_ID
287
        IF(EXISTS(SELECT * FROM dbo.TR_REQUEST_SHOP_COSTCENTER TRSC WHERE REQ_ID = @p_REQ_ID AND TRSC.COST_ID = @USERDVCM AND (TRSC.RE_CONTENT IS NULL OR TRSC.RE_CONTENT = '')))
288
		BEGIN
289
			ROLLBACK TRANSACTION
290
			SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'Chưa nhập ý kiến bộ phận Đơn vị chuyên môn' ErrorDesc
291
			RETURN '-1'
292
		END
293
        UPDATE PL_REQUEST_PROCESS SET STATUS = 'P', APPROVE_DT = GETDATE(), CHECKER_ID = @p_CHECKER_ID, NOTES = N'Đơn vị chuyên môn đã xác nhận'
294
            WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = 'DVCM' AND STATUS = 'C' AND DEP_ID = @USERDVCM
295
        UPDATE TR_REQUEST_SHOP_COSTCENTER SET AUTH_STATUS = 'U' WHERE REQ_ID = @p_REQ_ID AND COST_ID = @USERDVCM
296
        UPDATE PL_REQUEST_PROCESS SET STATUS = 'C' WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = 'DVCM_D' AND DEP_ID = @USERDVCM
297

    
298
--  			INSERT INTO @usersToNotify
299
--  			SELECT DISTINCT U.TLNANME FROM TL_USER u
300
--  			LEFT JOIN AbpUserRoles ur ON ur.UserId = u.ID
301
--  			LEFT JOIN AbpRoles r ON ur.RoleId = r.Id
302
--  			INNER JOIN
303
--  			(
304
--  				SELECT CC.COST_ID AS DEP_ID,CD.BRANCH_ID FROM dbo.PL_REQUEST_PROCESS PL 
305
--  				LEFT JOIN dbo.TR_REQUEST_SHOP_COSTCENTER CC ON CC.COST_ID=pl.COST_ID
306
--  				LEFT JOIN CM_DEPARTMENT CD ON CC.COST_ID = CD.DEP_ID
307
--  				WHERE PL.REQ_ID=@p_REQ_ID AND PL.PROCESS_ID='DVCM'
308
--  			) T ON T.DEP_ID=u.DEP_ID AND T.BRANCH_ID=u.TLSUBBRID
309
--  			where r.DisplayName = @ROLE AND u.TLNANME != @p_USERNAME
310
  
311
  			IF @@Error <> 0 GOTO ABORT
312
    	BEGIN		
313
      		SET @COMPLETE=1
314
            SET @NOTIFATION= N'Gửi Trưởng ĐVCM duyệt thành công'
315
            SET @PROCESS_DES=N'Gửi Trưởng ĐVCM duyệt'
316
            SET @NOTIFY_TO_USER = 'UD_REQ_S_DVCM'
317
            SET @EMAIL_CONTENT = 'TYPE_PROCESS_REQ_S_DVCM';
318
      END
319
	END
320
	ELSE IF(@p_TYPE_PROCESS='DVCM_D')
321
	BEGIN
322
		IF(@PROCESS_CURR='DVCM_D')
323
		BEGIN
324
			UPDATE PL_REQUEST_PROCESS SET [STATUS]='P', CHECKER_ID=@p_USERNAME, APPROVE_DT=CONVERT(DATETIME, @p_APPROVE_DT, 103),
325
                                           NOTES = @p_NOTES
326
      WHERE REQ_ID=@p_REQ_ID AND STATUS='C' AND PROCESS_ID = 'DVCM_D' AND DEP_ID = @DEP_ID
327
      UPDATE TR_REQUEST_SHOP_COSTCENTER SET AUTH_STATUS = 'A', CHECKER_ID = @p_CHECKER_ID WHERE REQ_ID = @p_REQ_ID AND COST_ID = @DEP_ID
328
			IF(NOT EXISTS(SELECT REQ_COST_ID FROM dbo.TR_REQUEST_SHOP_COSTCENTER WHERE REQ_ID=@p_REQ_ID AND AUTH_STATUS <> 'A'))
329
			BEGIN
330
				UPDATE PL_REQUEST_PROCESS SET [STATUS]='C' WHERE REQ_ID=@p_REQ_ID AND PARENT_PROCESS_ID=@PROCESS_CURR
331

    
332
				-- CẬP NHẬT TRẠNG THÁI CHO REQUEST_PROCESS
333
				SELECT @PROCESS_NEXT=PROCESS_ID,@ROLE=ROLE_USER,@BRANCH_NEXT=BRANCH_ID,@DEP_NEXT=DEP_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND STATUS='C'		
334
				UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]= @PROCESS_NEXT WHERE REQ_ID=@p_REQ_ID
335
                UPDATE TR_REQUEST_SHOP_DOC SET HO_NOTES = N'- Kế hoạch (Trong/Ngoài NS): ' + CHAR(10) + N'- Nội dung cấp: ' + CHAR(10) +  N'- Ghi chú khác: ' 
336
                , SEND_APP_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103)
337
                WHERE REQ_ID=@p_REQ_ID
338

    
339
				IF @@Error <> 0 GOTO ABORT
340
			
341
				SET @COMPLETE=1
342
			
343
			END
344
		END
345
		SET @NOTIFATION= N'Duyệt thành công'
346
		SET @NOTIFY_TO_USER = 'UD_REQ_DVCM_XN'
347
		SET @EMAIL_CONTENT = 'TYPE_PROCESS_REQ_DVCM_XN';
348
		SET @PROCESS_DES=N'Trưởng đơn vị chuyển môn duyệt'
349
	END
350
    ELSE IF(@p_TYPE_PROCESS='QLTS_NL')
351
	BEGIN
352
		-- Bắt buộc nhập ý kiến phòng hành chính
353
		IF( NOT EXISTS (SELECT HO_NOTES FROM dbo.TR_REQUEST_SHOP_DOC WHERE REQ_ID = @p_REQ_ID AND HO_NOTES IS NOT NULL AND HO_NOTES <> ''))
354
		BEGIN
355
			ROLLBACK TRANSACTION
356
			SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'Chưa nhập ý kiến bộ phận Quản lý tài sản' ErrorDesc
357
			RETURN '-1'
358
		END
359
        -- Check có chọn loại ts ở lưới QLTS chưa, ko thì ko cho gửi
360
		IF( NOT EXISTS (SELECT * FROM dbo.TR_REQUEST_SHOP_DOC_DT WHERE REQ_DOC_ID = @p_REQ_ID AND REQ_DT_TYPE IN ('BUYNEW','XKSD')))
361
		BEGIN
362
			ROLLBACK TRANSACTION
363
			SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'Thông tin ở lưới CHI TIẾT LOẠI TÀI SẢN CẤP PHÁT - QLTS đang trống' ErrorDesc
364
			RETURN '-1'
365
		END
366

    
367
        UPDATE PL_REQUEST_PROCESS SET [STATUS]='P', CHECKER_ID=@p_USERNAME, APPROVE_DT=CONVERT(DATETIME, @p_APPROVE_DT, 103)
368
        WHERE REQ_ID=@p_REQ_ID AND STATUS='C' AND PROCESS_ID = 'QLTS_NL'
369
		UPDATE PL_REQUEST_PROCESS SET [STATUS]='C' WHERE REQ_ID=@p_REQ_ID AND PARENT_PROCESS_ID=@PROCESS_CURR
370
        UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]= 'TBP_D' WHERE REQ_ID=@p_REQ_ID
371

    
372
        SET @COMPLETE=1
373
            SET @p_NOTES = N'Bộ phận QLTS gửi đến Trưởng Bộ phận QLTS phê duyệt'
374
    		SET @NOTIFATION= N'Trưởng bộ phận QLTS đã tiếp nhận phiếu'
375
    		SET @NOTIFY_TO_USER = 'UD_REQ_S_APP'
376
    		SET @EMAIL_CONTENT = 'TYPE_PROCESS_REQ_S_APPP';
377
      	SET @PROCESS_DES=N'Trưởng Bộ phận QLTS tiếp nhận và đang kiểm duyệt'
378
    END
379
	ELSE IF(@p_TYPE_PROCESS='QLTS_D')
380
	BEGIN
381
--        IF(@p_DVKD_USER_APP IS NULL OR @p_DVKD_USER_APP = '')
382
--        BEGIN
383
--            ROLLBACK TRANSACTION
384
--            SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'Chưa chọn TT. QLTS để gửi duyệt' ErrorDesc
385
--            RETURN '-1'
386
--        END
387
--        IF(@p_DVKD_USER_APP IS NOT NULL OR @p_DVKD_USER_APP <> '')
388
        BEGIN
389
          INSERT INTO PL_REQUEST_PROCESS (REQ_ID, [PROCESS_ID], [STATUS], ROLE_USER, BRANCH_ID, PARENT_PROCESS_ID, DEP_ID, DVKD_USER_APP,PROCESS_TYPE)
390
          VALUES (@p_REQ_ID, 'TTQLTS_D', 'C', 'GDDV_QLTS', 'DV0001', 'QLTS_D', @DEP_DVNB, @p_DVKD_USER_APP, 'Approve') --DVKD USER APP TẠI BƯƠC NÀY LÀ TT QLTS USER
391

    
392
          UPDATE PL_REQUEST_PROCESS SET [STATUS]='P',CHECKER_ID=@p_USERNAME,APPROVE_DT=CONVERT(DATETIME, @p_APPROVE_DT, 103)
393
          WHERE REQ_ID=@p_REQ_ID  AND  STATUS='C' AND PROCESS_ID = 'QLTS_D'
394
          UPDATE PL_REQUEST_PROCESS SET PARENT_PROCESS_ID = 'TTQLTS_D' WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = 'APPROVE'
395
          UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]= 'TTQLTS_D' WHERE REQ_ID=@p_REQ_ID
396
          IF @@Error <> 0 GOTO ABORT
397
	
398
				SET @COMPLETE=1
399
            SET @NOTIFATION= N'QLTS gửi đến Trung Tâm QLTS duyệt'
400
    		SET @NOTIFY_TO_USER = 'QLTS_S_TTQLTS'
401
    		SET @EMAIL_CONTENT = 'TYPE_PROCESS_REQ_QLTS_S_TTQLTS';
402
    		SET @PROCESS_DES=N'QLTS gửi đến Trung Tâm QLTS duyệt'
403
        END
404
	END
405
    ELSE IF(@p_TYPE_PROCESS='TBP_D')
406
	BEGIN
407

    
408
          UPDATE PL_REQUEST_PROCESS SET [STATUS]='P',CHECKER_ID=@p_USERNAME,APPROVE_DT=CONVERT(DATETIME, @p_APPROVE_DT, 103), NOTES = @p_NOTES
409
          WHERE REQ_ID=@p_REQ_ID AND STATUS='C' AND PROCESS_ID = @PROCESS_CURR
410

    
411
		    UPDATE PL_REQUEST_PROCESS SET [STATUS]='C' WHERE REQ_ID=@p_REQ_ID AND PARENT_PROCESS_ID=@PROCESS_CURR
412
          UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]= 'QLTS_D' WHERE REQ_ID=@p_REQ_ID
413
          IF @@Error <> 0 GOTO ABORT
414
	
415
				SET @COMPLETE=1
416
            SET @NOTIFATION= N'Trưởng Bộ Phận QLTS phê duyệt và gửi đến Trưởng đơn vị QLTS duyệt'
417
    		SET @NOTIFY_TO_USER = 'QLTS_S_TTQLTS'
418
    		SET @EMAIL_CONTENT = 'TYPE_PROCESS_REQ_QLTS_S_TTQLTS';
419
    		SET @PROCESS_DES=N'Trưởng Bộ Phận QLTS phê duyệt và gửi đến Trưởng đơn vị QLTS duyệt'
420
	END
421
    ELSE IF(@p_TYPE_PROCESS='QLTS_A')
422
	BEGIN
423
		IF(EXISTS(SELECT * FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @p_REQ_ID AND STATUS = 'CANCEL'))
424
		BEGIN
425
			ROLLBACK TRANSACTION
426
			SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'Phiếu yêu cầu đã bị hủy' ErrorDesc
427
			RETURN '-1'
428
		END
429

    
430
		BEGIN
431

    
432
			UPDATE PL_REQUEST_PROCESS SET [STATUS]='P',CHECKER_ID=@p_USERNAME,APPROVE_DT=CONVERT(DATETIME, @p_APPROVE_DT, 103), NOTES = @p_NOTES
433
            WHERE REQ_ID=@p_REQ_ID AND [STATUS]='C' 
434
            AND PROCESS_ID='QLTS_D' 
435
            AND (ROLE_USER IN (SELECT ROLE_ID FROM dbo.TL_USER_GET_ROLES(@p_USERNAME)))
436

    
437
			IF @@Error <> 0 GOTO ABORT
438

    
439
			UPDATE PL_REQUEST_PROCESS SET [STATUS]='C', RECEPTION_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103), CHECKER_ID=@p_USERNAME,APPROVE_DT=CONVERT(DATETIME, @p_APPROVE_DT, 103)  
440
            , NOTES = @p_NOTES
441
            WHERE PROCESS_ID = 'APPROVE' AND REQ_ID=@p_REQ_ID
442

    
443
			SELECT @PROCESS_NEXT=PROCESS_ID,@ROLE=ROLE_USER,@BRANCH_NEXT=BRANCH_ID,@DEP_NEXT=DEP_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND STATUS='C'	
444

    
445
			UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]='APPROVE', AUTH_STATUS = 'A' WHERE REQ_ID=@p_REQ_ID
446
			
447
		
448
			IF @@Error <> 0 GOTO ABORT
449
			
450
			SET @COMPLETE=1
451
		END
452
		SET @NOTIFATION= N'Duyệt thành công phiếu yêu cầu'
453
		SET @PROCESS_DES=N'QLTS duyệt'
454
		SET @NOTIFY_TO_USER = 'UD_REQ_S_HCQT'
455
		SET @EMAIL_CONTENT = 'TYPE_PROCESS_REQ_QLTS_APP';
456
    	SET @PROCESS_DES=N'Bộ phận QLTS đã phê duyệt'
457
	END
458
    ELSE IF(@p_TYPE_PROCESS='CANCEL')
459
	BEGIN
460
		IF(EXISTS(SELECT * FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @p_REQ_ID AND STATUS = 'CANCEL'))
461
		BEGIN
462
			ROLLBACK TRANSACTION
463
			SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'Phiếu yêu cầu đã bị hủy' ErrorDesc
464
			RETURN '-1'
465
		END
466

    
467
        UPDATE TR_REQUEST_SHOP_DOC SET STATUS = 'CANCEL', AUTH_STATUS = 'D' WHERE REQ_ID = @p_REQ_ID
468

    
469
--        INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
470
--        VALUES (@p_REQ_ID, 'CANCEL', @p_CHECKER_ID, GETDATE(), N'Chuyên viên QLTS huỷ phiếu.', @p_NOTES);
471

    
472
--      DELETE PL_REQUEST_PROCESS 
473
--      WHERE REQ_ID = @p_REQ_ID AND STATUS = 'C' AND PROCESS_ID IN ('QLTS_N','QLTS_NL')
474

    
475
        DELETE PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND ((STATUS = 'C' AND PROCESS_ID IN ('QLTS_N','QLTS_NL'))
476
                                                                OR STATUS = 'U')
477

    
478
        INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,CHECKER_ID,APPROVE_DT,PARENT_PROCESS_ID,IS_LEAF,NOTES,BRANCH_ID,DEP_ID)
479
        VALUES(@p_REQ_ID,'CANCEL','C','QLTS',@p_CHECKER_ID,GETDATE(),@PROCESS_CURR,'Y',N'Chuyên viên QLTS huỷ phiếu',@BRANCHID,@DEP_ID)
480
      
481
        --SET @p_NOTES = N'Huỷ phiếu thành công'
482
        SET @NOTIFATION= N'Huỷ phiếu thành công'
483
	    SET @COMPLETE=1
484

    
485
	END
486

    
487
	-- NOTIFATIONS
488
	IF(@COMPLETE=1)
489
	BEGIN
490
    DECLARE @BXL NVARCHAR(MAX) = ''
491
    IF(@p_TYPE_PROCESS = 'S_TDV') SET @BXL = N'Gửi Trưởng đơn vị phê duyệt'
492
    IF(@p_TYPE_PROCESS = 'S_QLTS') SET @BXL = N'Trưởng đơn vị phê duyệt'
493
    IF(@p_TYPE_PROCESS = 'S_DVCM') SET @BXL = N'Bộ phận QLTS nhận phiếu'
494
    IF(@p_TYPE_PROCESS = 'S_TDVCM') SET @BXL = N'Bộ phận ĐVCM xử lý phiếu'
495
    IF(@p_TYPE_PROCESS = 'DVCM_D') SET @BXL = N'Trưởng đơn vị chuyên môn duyệt'
496
    IF(@p_TYPE_PROCESS = 'QLTS_NL') SET @BXL = N'Bộ phận QLTS xác nhận'
497
    IF(@p_TYPE_PROCESS = 'TBP_D') SET @BXL = N'Trưởng Bộ phận QLTS phê duyệt'
498
    IF(@p_TYPE_PROCESS = 'QLTS_A') SET @BXL = N'Bộ phận QLTS phê duyệt'
499
    IF(@p_TYPE_PROCESS = 'QLTS_D') SET @BXL = N'Gửi Trung Tâm QLTS phê duyệt'
500

    
501
    IF(@p_TYPE_PROCESS = 'CANCEL') SET @BXL = N'Chuyên viên QLTS huỷ phiếu'
502
    IF(@p_TYPE_PROCESS = 'CANCEL') SET @PROCESS_CURR = 'CANCEL'
503
    
504
IF(@p_TYPE_PROCESS = 'S_TDV' AND @p_NOTES IS NULL) SET @p_NOTES = N'Nhân viên tạo phiếu và gửi đến Trưởng đơn vị phê duyệt'
505
IF(@p_TYPE_PROCESS = 'S_TDVCM' AND @p_NOTES IS NULL) SET @p_NOTES = N'Nhân viên ĐVCM gửi Trưởng ĐCVM vị phê duyệt'
506
IF(@p_TYPE_PROCESS = 'QLTS_NL' AND @p_NOTES IS NULL) SET @p_NOTES = N'QLTS gửi đến Trưởng bộ phận QLTS duyệt'
507
IF(@p_TYPE_PROCESS = 'QLTS_D' AND @p_NOTES IS NULL) SET @p_NOTES = N'QLTS gửi đến Trung Tâm QLTS duyệt'
508
IF(@p_TYPE_PROCESS = 'QLTS_A' AND @p_NOTES IS NULL) SET @p_NOTES = N'Trung Tâm Dịch Vụ Nội Bộ phê duyệt phiếu thành công'
509
							-- insert log
510
							INSERT INTO dbo.PL_PROCESS
511
							(
512
								REQ_ID,
513
								PROCESS_ID,
514
								CHECKER_ID,
515
								APPROVE_DT,
516
								PROCESS_DESC,
517
								NOTES
518
							)
519
							VALUES
520
							(   @p_REQ_ID,        -- REQ_ID - varchar(15)
521
								@PROCESS_CURR,        -- PROCESS_ID - varchar(10)
522
								@p_USERNAME,        -- CHECKER_ID - varchar(100)
523
								CONVERT(DATETIME, @p_APPROVE_DT, 103), -- APPROVE_DT - datetime
524
								@BXL,       -- PROCESS_DESC - nvarchar(1000)
525
								@p_NOTES        -- NOTES - nvarchar(1000)
526
							)
527

    
528
							DECLARE @ID_PROCESS INT
529
							IF(@p_TYPE_PROCESS='REJECT' OR @p_TYPE_PROCESS='REJECT_DVCM' OR @p_TYPE_PROCESS='REJECT_CVMS' OR @p_TYPE_PROCESS='REJECT_QLTS' )
530
							BEGIN
531
							SET @ID_PROCESS=(SELECT  TOP 1 ID FROM dbo.PL_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_DESC=@p_TYPE_PROCESS ORDER BY ID DESC)
532
							END
533

    
534

    
535
							IF NOT EXISTS (SELECT 1 FROM @usersToNotify)
536
							BEGIN
537
								--INSERT INTO @usersToNotify
538
								--SELECT U.TLNANME FROM TL_USER u
539
								--		LEFT JOIN AbpUserRoles ur ON ur.UserId = u.ID
540
								--		LEFT JOIN AbpRoles r ON ur.RoleId = r.Id
541
								--		where r.DisplayName = @ROLE and u.TLNANME != @p_USERNAME
542
								INSERT INTO @usersToNotify
543
								SELECT U.TLNANME FROM TL_USER u
544
										WHERE u.TLNANME != @p_USERNAME
545
										and U.ID IN (SELECT ur.UserId FROM AbpUserRoles ur
546
										LEFT JOIN AbpRoles r ON ur.RoleId = r.Id
547
										where r.DisplayName = @ROLE)
548

    
549

    
550
							END
551

    
552

    
553
							Declare @C_TLNAME VARCHAR(100)
554
							-- declare a cursor
555
							DECLARE insert_cursor CURSOR FOR SELECT TLNANME FROM @usersToNotify WHERE TLNANME IS NOT NULL AND TLNANME <>''
556

    
557
							-- open cursor and fetch first row into variables
558
							OPEN insert_cursor
559
							
560
							UPDATE dbo.TL_ROLE_NOTIFICATION SET RECORD_STATUS = '0' WHERE PO_ID = @p_REQ_ID AND RECORD_STATUS = '1'
561

    
562
							FETCH NEXT FROM insert_cursor into @C_TLNAME
563
							WHILE @@FETCH_STATUS=0
564
							BEGIN
565
									DECLARE @NOTIFI_ID VARCHAR(15)
566
									EXEC SYS_CodeMasters_Gen 'TL_ROLE_NOTIFICATION', @NOTIFI_ID OUT
567
                                    
568
									INSERT INTO [dbo].[TL_ROLE_NOTIFICATION]
569
								   ([NOTIFI_ID]
570
								   ,[NOTIFI_CODE]
571
								   ,[NOTIFI_NAME]
572
								   ,[TYPE]
573
								   ,[PO_ID]
574
								   ,[TL_NAME]
575
								   ,[BRANCH_ID]
576
								   ,[RECORD_STATUS]
577
								   ,[AUTH_STATUS]
578
								   ,[EDITOR_ID]
579
								   ,[EDIT_DT]
580
								   ,[NOTES]
581
								  ,[MAKER_ID]
582
								  ,[CREATE_DT])
583
									 VALUES
584
									 (@NOTIFI_ID
585
								   ,NULL
586
								   ,NULL
587
								   ,'UD_REQ'
588
								   ,@p_REQ_ID
589
								   ,@C_TLNAME
590
								   ,@BRANCHID
591
								   ,'1'
592
								   ,'U'
593
								   ,@C_TLNAME
594
								   ,CONVERT(DATETIME,GETDATE(),103)
595
								   ,NULL
596
								   ,@C_TLNAME
597
								   ,CONVERT(DATETIME,GETDATE(),103))
598

    
599
								   -- Thông báo email
600
								   DECLARE @NFM_ID VARCHAR(15)
601
								   EXEC SYS_CodeMasters_Gen 'NF_MESSAGE', @NFM_ID OUT
602
								   INSERT INTO dbo.NF_MESSAGE
603
								   (
604
								       MESSAGE_ID,
605
								       SENDER_ID,
606
								       RECIPIENT_ID,
607
									   TARGET_ID,
608
								       MESSAGE_CONTENT,
609
									   CREATE_DATE,
610
								       SEND_DATE,
611
								       MESSAGE_STATUS,
612
								       READ_STATUS,
613
								       PAGE_OCCUR,
614
								       RECORD_ID,
615
								       DATATYPE_NAME
616
								   )
617
								   VALUES
618
								   (   @NOTIFI_ID,        -- MESSAGE_ID - varchar(15)
619
								       NULL,        -- SENDER_ID - varchar(100)
620
								       'UD_REQ',        -- RECIPIENT_ID - varchar(100)
621
									   @p_REQ_ID, -- TARGET_ID -- 
622
								       @EMAIL_CONTENT, -- MESSAGE_CONTENT - nvarchar(1000)
623
									   GETDATE(), -- CREATE_DATE - datetime
624
								       NULL, -- SEND_DATE - datetime
625
								       'NS',        -- MESSAGE_STATUS - varchar(100)
626
								       NULL,        -- READ_STATUS - varchar(100)
627
									   @p_CURRENT_URI, --'http://localhost:4200/app/admin/trade-request-doc-edit;id=' + @p_REQ_ID, -- PAGE_OCCUR - varchar(100)
628
								       @NFM_ID,        -- RECORD_ID - varchar(100)
629
								       @ID_PROCESS         -- DATATYPE_NAME - varchar(100)
630
								       )
631

    
632
								   print @C_TLNAME
633
							IF @@ERROR <> 0 GOTO ABORT
634
							-- check for a new row
635
							
636
							-- do complex operation here
637
							
638
							FETCH NEXT FROM insert_cursor into @C_TLNAME 
639
							END
640
							close insert_cursor
641
							Deallocate insert_cursor
642
							DECLARE @NOTIFI_ID_MAKER VARCHAR(15)
643
							 DECLARE @NFM_ID_MAKER VARCHAR(15)
644
							IF(@p_TYPE_PROCESS <> 'S_DVKD' AND (NOT EXISTS (SELECT * FROM @usersToNotify N WHERE N.TLNANME = @p_MAKERID)))
645
							BEGIN
646
								
647
									EXEC SYS_CodeMasters_Gen 'TL_ROLE_NOTIFICATION', @NOTIFI_ID_MAKER OUT
648
                                    
649
									INSERT INTO [dbo].[TL_ROLE_NOTIFICATION]
650
								   ([NOTIFI_ID]
651
								   ,[NOTIFI_CODE]
652
								   ,[NOTIFI_NAME]
653
								   ,[TYPE]
654
								   ,[PO_ID]
655
								   ,[TL_NAME]
656
								   ,[BRANCH_ID]
657
								   ,[RECORD_STATUS]
658
								   ,[AUTH_STATUS]
659
								   ,[EDITOR_ID]
660
								   ,[EDIT_DT]
661
								   ,[NOTES]
662
								  ,[MAKER_ID]
663
								  ,[CREATE_DT])
664
									 VALUES
665
									 (@NOTIFI_ID_MAKER
666
								   ,NULL
667
								   ,NULL
668
								   ,'UD_REQ_MAKER'
669
								   ,@p_REQ_ID
670
								   ,@p_MAKERID --@C_TLNAME
671
								   ,@BRANCHID
672
								   ,'1'
673
								   ,'U'
674
								   ,@p_MAKERID
675
								   ,CONVERT(DATETIME,GETDATE(),103)
676
								   ,NULL
677
								   ,@p_MAKERID
678
								   ,CONVERT(DATETIME,GETDATE(),103))
679

    
680
								   -- Thông báo email
681
								
682
								   EXEC SYS_CodeMasters_Gen 'NF_MESSAGE', @NFM_ID_MAKER OUT
683
								   INSERT INTO dbo.NF_MESSAGE
684
								   (
685
								       MESSAGE_ID,
686
								       SENDER_ID,
687
								       RECIPIENT_ID,
688
									   TARGET_ID,
689
								       MESSAGE_CONTENT,
690
									   CREATE_DATE,
691
								       SEND_DATE,
692
								       MESSAGE_STATUS,
693
								       READ_STATUS,
694
								       PAGE_OCCUR,
695
								       RECORD_ID,
696
								       DATATYPE_NAME
697
								   )
698
								   VALUES
699
								   (   @NOTIFI_ID_MAKER,        -- MESSAGE_ID - varchar(15)
700
								       NULL,        -- SENDER_ID - varchar(100)
701
								       'UD_REQ_MAKER',        -- RECIPIENT_ID - varchar(100)
702
									   @p_REQ_ID, -- TARGET_ID -- 
703
								       @EMAIL_CONTENT, -- MESSAGE_CONTENT - nvarchar(1000)
704
									   GETDATE(), -- CREATE_DATE - datetime
705
								       NULL, -- SEND_DATE - datetime
706
								       'NS',        -- MESSAGE_STATUS - varchar(100)
707
								       NULL,        -- READ_STATUS - varchar(100)
708
									   @p_CURRENT_URI, --'http://localhost:4200/app/admin/trade-request-doc-edit;id=' + @p_REQ_ID, -- PAGE_OCCUR - varchar(100)
709
								       @NFM_ID_MAKER,        -- RECORD_ID - varchar(100)
710
								       @ID_PROCESS         -- DATATYPE_NAME - varchar(100)
711
								    )
712
								 
713
							END
714
							ELSE
715
							BEGIN
716

    
717
								
718
									EXEC SYS_CodeMasters_Gen 'TL_ROLE_NOTIFICATION', @NOTIFI_ID_MAKER OUT
719
                                    
720
									INSERT INTO [dbo].[TL_ROLE_NOTIFICATION]
721
								   ([NOTIFI_ID]
722
								   ,[NOTIFI_CODE]
723
								   ,[NOTIFI_NAME]
724
								   ,[TYPE]
725
								   ,[PO_ID]
726
								   ,[TL_NAME]
727
								   ,[BRANCH_ID]
728
								   ,[RECORD_STATUS]
729
								   ,[AUTH_STATUS]
730
								   ,[EDITOR_ID]
731
								   ,[EDIT_DT]
732
								   ,[NOTES]
733
								  ,[MAKER_ID]
734
								  ,[CREATE_DT])
735
									 VALUES
736
									 (@NOTIFI_ID_MAKER
737
								   ,NULL
738
								   ,NULL
739
								   ,'UD_REQ_MAKER'
740
								   ,@p_REQ_ID
741
								   ,'app.qlts' --@C_TLNAME
742
								   ,@BRANCHID
743
								   ,'1'
744
								   ,'U'
745
								   ,'app.qlts'
746
								   ,CONVERT(DATETIME,GETDATE(),103)
747
								   ,NULL
748
								   ,'app.qlts'
749
								   ,CONVERT(DATETIME,GETDATE(),103))
750

    
751
								   -- Thông báo email
752
								 
753
								   EXEC SYS_CodeMasters_Gen 'NF_MESSAGE', @NFM_ID_MAKER OUT
754
								   INSERT INTO dbo.NF_MESSAGE
755
								   (
756
								       MESSAGE_ID,
757
								       SENDER_ID,
758
								       RECIPIENT_ID,
759
									   TARGET_ID,
760
								       MESSAGE_CONTENT,
761
									   CREATE_DATE,
762
								       SEND_DATE,
763
								       MESSAGE_STATUS,
764
								       READ_STATUS,
765
								       PAGE_OCCUR,
766
								       RECORD_ID,
767
								       DATATYPE_NAME
768
								   )
769
								   VALUES
770
								   (   @NOTIFI_ID_MAKER,        -- MESSAGE_ID - varchar(15)
771
								       NULL,        -- SENDER_ID - varchar(100)
772
								       'UD_REQ_MAKER',        -- RECIPIENT_ID - varchar(100)
773
									   @p_REQ_ID, -- TARGET_ID -- 
774
								       @EMAIL_CONTENT, -- MESSAGE_CONTENT - nvarchar(1000)
775
									   GETDATE(), -- CREATE_DATE - datetime
776
								       NULL, -- SEND_DATE - datetime
777
								       'NS',        -- MESSAGE_STATUS - varchar(100)
778
								       NULL,        -- READ_STATUS - varchar(100)
779
									   @p_CURRENT_URI, --'http://localhost:4200/app/admin/trade-request-doc-edit;id=' + @p_REQ_ID, -- PAGE_OCCUR - varchar(100)
780
								       @NFM_ID_MAKER,        -- RECORD_ID - varchar(100)
781
								       @ID_PROCESS         -- DATATYPE_NAME - varchar(100)
782
								    )
783
							END
784
							
785
END
786
COMMIT TRANSACTION
787
SELECT '0' as Result, @NOTIFATION AS NOTIFATION, '' ErrorDesc, @NOTIFY_TO_USER AS NEXT_USER_NOTIFI, @COMPLETE COMPLETE
788
RETURN '0'
789
ABORT:
790
BEGIN
791
		ROLLBACK TRANSACTION
792
		SELECT '-1' AS RESULT
793
		RETURN '-1'
794
End
795
END