Project

General

Profile

UPDATE_PYC.txt

Luc Tran Van, 05/04/2023 10:38 AM

 
1

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

    
13
AS
14
BEGIN
15

    
16
DECLARE 
17
@NOTIFATION NVARCHAR(100) = NULL,
18
@BRANCHID VARCHAR(20)= NULL,
19
@DEP_ID VARCHAR(20),
20
@NOTIFY_TO_USER VARCHAR(MAX) = '',
21
@COMPLETE BIT = 0,
22
@REQ_TYPE VARCHAR(20) = (SELECT TOP 1 trsd.REQ_TYPE FROM TR_REQUEST_SHOP_DOC trsd WHERE trsd.REQ_ID = @p_REQ_ID),
23
@CURR_PROCESS VARCHAR(50) = (SELECT TOP 1 A.PROCESS_ID FROM PL_REQUEST_PROCESS A WHERE A.REQ_ID = @p_REQ_ID AND A.STATUS = 'C')
24

    
25

    
26
SELECT @BRANCHID = tu.TLSUBBRID, @DEP_ID = tu.DEP_ID FROM TL_USER tu WHERE tu.TLNANME = @p_CHECKER_ID
27

    
28
DECLARE @ASSET_ID_LST VARCHAR(MAX), @CURRENT_TRANS_ERROR NVARCHAR(MAX)
29

    
30

    
31
BEGIN TRANSACTION
32

    
33
 	IF(EXISTS(SELECT REQ_ID FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @p_REQ_ID AND STATUS = 'REJECT'))
34
		BEGIN
35
			ROLLBACK TRANSACTION
36
			SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'Phiếu yêu cầu đang bị trả về' ErrorDesc
37
			RETURN '-1'
38
		END
39

    
40
	-- GỬI TRƯỞNG ĐƠN VỊ
41
	IF(@p_TYPE_PROCESS='S_DVKD')
42
	BEGIN  
43
        
44
      --PHUCVH 26/12/22 RÀNG BUỘC KHÔNG CHO TẠO 2 PYC CÙNG 1 TÀI SẢN CHƯA HOÀN THÀNH SỬA CHỮA 
45
      --&&  TS ĐÃ ĐƯỢC THÊM Ở LƯỚI TS CẦN THAY THẾ TRÊN  PYC CẤP PHÁT KHÔNG ĐƯỢC YÊU CẦU SỬA CHỮA
46
      IF(@REQ_TYPE = 'SC')
47
      BEGIN
48
          DECLARE @MESSAGE_VALIDATION NVARCHAR(MAX)
49

    
50
          DECLARE @TABLE_ASSCODE_VALIDATION TABLE (ASSET_CODE VARCHAR(100), REQ_CODE VARCHAR(100))
51

    
52
          --RÀNG BUỘC TS ĐÃ ĐƯỢC THÊM Ở LƯỚI TS CẦN THAY THẾ TRÊN  PYC CẤP PHÁT KHÔNG ĐƯỢC YÊU CẦU SỬA CHỮA
53
          INSERT INTO @TABLE_ASSCODE_VALIDATION
54
          SELECT ISNULL(G.ASSET_CODE,G.ASS_CODE_TMP) ASSET_CODE, F.REQ_CODE
55
          FROM (
56
              SELECT B.ASS_ID, C.REQ_CODE
57
              FROM TR_REQUEST_SHOP_DOC_DT B
58
              LEFT JOIN TR_REQUEST_SHOP_DOC C ON B.REQ_DOC_ID = C.REQ_ID
59
              WHERE C.AUTH_STATUS NOT IN ('E','R','D') AND B.REQ_DT_TYPE = 'ASSET_BROKEN'
60
              AND B.ASS_ID IN (SELECT D.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT D WHERE D.REQ_DOC_ID = @p_REQ_ID)
61
              GROUP BY B.ASS_ID, C.REQ_CODE
62
          ) F
63
          LEFT JOIN ASS_MASTER G ON F.ASS_ID = G.ASSET_ID
64

    
65
          IF(EXISTS(SELECT 1 FROM @TABLE_ASSCODE_VALIDATION))
66
          BEGIN
67
              SET @MESSAGE_VALIDATION = (SELECT REPLACE((SELECT 
68
                                        CASE WHEN ROW_NUMBER() OVER (ORDER BY (SELECT 0)) = 1 THEN ''
69
                                        ELSE '|' END 
70
                                        + N'Tài sản ' + C.ASSET_CODE + N' đã được yêu cầu thay thế trong phiếu số' + C.REQ_CODE
71
                                  FROM ( SELECT ASSET_CODE,REQ_CODE FROM @TABLE_ASSCODE_VALIDATION) C
72
                                  FOR XML PATH (''))
73
                                , '|', '<br />'))
74
          ROLLBACK TRANSACTION
75
          SELECT '-1' as Result, @MESSAGE_VALIDATION ErrorDesc
76
          RETURN '-1'
77
          END
78

    
79
          --RÀNG BUỘC KHÔNG CHO TẠO 2 PYC CÙNG 1 TÀI SẢN CHƯA HOÀN THÀNH SỬA CHỮA 
80
          INSERT INTO @TABLE_ASSCODE_VALIDATION
81
          SELECT ISNULL(C.ASSET_CODE,C.ASS_CODE_TMP),B.REQ_CODE
82
          FROM TR_REQUEST_SHOP_DOC_DT A
83
          LEFT JOIN TR_REQUEST_SHOP_DOC B ON A.REQ_DOC_ID = B.REQ_ID
84
          LEFT JOIN ASS_MASTER C ON A.ASS_ID = C.ASSET_ID
85
          WHERE A.ASS_ID IN (SELECT C.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT C WHERE C.REQ_DOC_ID = @p_REQ_ID)
86
          AND B.IS_DONE = '0'
87
          AND B.REQ_TYPE = 'SC'
88
          AND B.AUTH_STATUS NOT IN ('E','D','R')
89
          AND A.REQ_DOC_ID <> @p_REQ_ID
90
         
91
          IF(EXISTS(SELECT 1 FROM @TABLE_ASSCODE_VALIDATION))
92
          BEGIN
93
              SET @MESSAGE_VALIDATION = (SELECT REPLACE((SELECT 
94
                                                CASE WHEN ROW_NUMBER() OVER (ORDER BY (SELECT 0)) = 1 THEN ''
95
                                                ELSE '|' END 
96
                                                + N'Tài sản ' + C.ASSET_CODE + N' trong ' + C.REQ_CODE + N' chưa được hoàn thành sửa chữa'
97
                                          FROM (SELECT ASSET_CODE,REQ_CODE FROM @TABLE_ASSCODE_VALIDATION) C
98
                                          FOR XML PATH (''))
99
                                        , '|', '<br />'))
100
          ROLLBACK TRANSACTION
101
          SELECT '-1' as Result, @MESSAGE_VALIDATION ErrorDesc
102
          RETURN '-1'
103
          END
104

    
105
      END
106
  
107
      
108
      IF(@REQ_TYPE = 'TH')
109
      BEGIN
110
          -- KIỂM TRA TÀI SẢN ĐANG TREO TRONG GIAO DỊCH KHÁC
111
          SET @ASSET_ID_LST = (SELECT B.ASSET_ID + '|' FROM (SELECT A.ASSET_ID
112
              FROM TR_REQUEST_DOC_ASSET_DT A 
113
              where A.REQ_DOC_ID = @p_REQ_ID) B
114
          FOR XML PATH (''))
115
          SELECT @CURRENT_TRANS_ERROR = dbo.ASSET_CHECK_CURRENT_TRANS(@ASSET_ID_LST)
116
          IF(@CURRENT_TRANS_ERROR IS NOT NULL AND @CURRENT_TRANS_ERROR <> '')
117
          BEGIN
118
          ROLLBACK TRANSACTION
119
          SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, @CURRENT_TRANS_ERROR ErrorDesc
120
          RETURN '-1'
121
          END
122
      END
123
      ELSE
124
      BEGIN
125
          -- KIỂM TRA TÀI SẢN ĐANG TREO TRONG GIAO DỊCH KHÁC
126
          SET @ASSET_ID_LST = (SELECT B.ASS_ID + '|' FROM (SELECT A.ASS_ID
127
              FROM TR_REQUEST_SHOP_DOC_DT A 
128
              where A.REQ_DOC_ID = @p_REQ_ID) B
129
          FOR XML PATH (''))
130
          SELECT @CURRENT_TRANS_ERROR = dbo.ASSET_CHECK_CURRENT_TRANS(@ASSET_ID_LST)
131
          IF(@CURRENT_TRANS_ERROR IS NOT NULL AND @CURRENT_TRANS_ERROR <> '')
132
          BEGIN
133
          ROLLBACK TRANSACTION
134
          SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, @CURRENT_TRANS_ERROR ErrorDesc
135
          RETURN '-1'
136
          END
137
      END
138

    
139

    
140
      --PHUCVH 09/11/22 UPDATE TÀI SẢN TREO GIAO DỊCH
141
      IF(@REQ_TYPE = 'TH')
142
      BEGIN
143
            UPDATE ASS_MASTER SET CURRENT_TRANS = @p_REQ_ID, CURRENT_TRANS_TYPE = (SELECT A.REQ_TYPE FROM TR_REQUEST_SHOP_DOC A WHERE A.REQ_ID = @p_REQ_ID)
144
            WHERE ASSET_ID IN (SELECT B.ASSET_ID FROM TR_REQUEST_DOC_ASSET_DT B WHERE B.REQ_DOC_ID = @p_REQ_ID)
145
      END
146
      ELSE
147
      BEGIN
148
            UPDATE ASS_MASTER SET CURRENT_TRANS = @p_REQ_ID, CURRENT_TRANS_TYPE = (SELECT A.REQ_TYPE FROM TR_REQUEST_SHOP_DOC A WHERE A.REQ_ID = @p_REQ_ID)
149
            WHERE ASSET_ID IN (SELECT B.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT B WHERE B.REQ_DOC_ID = @p_REQ_ID)
150
      END
151

    
152
      INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,DEP_ID,PARENT_PROCESS_ID,IS_LEAF,NOTES,PROCESS_TYPE)
153
		  VALUES(@p_REQ_ID,'APPNEW','C','GDDV',@BRANCHID,@DEP_ID,'','N',NULL,'Approve')
154

    
155
      INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
156
      VALUES (@p_REQ_ID, 'S_DVKD', @p_CHECKER_ID, GETDATE(), N'Gửi trưởng đơn vị', N'Gửi trưởng đơn vị thành công');
157

    
158
			UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]='APPNEW', AUTH_STATUS = 'U' WHERE REQ_ID=@p_REQ_ID
159
      UPDATE TR_REQUEST_SHOP_DOC_DT SET AUTH_STATUS = 'U' WHERE REQ_DOC_ID = @p_REQ_ID
160

    
161
		  SET @NOTIFATION= N'Gửi trưởng đơn vị thành công'
162

    
163
      --UPDATE NGÀY GỬI DUYỆT
164
      UPDATE TR_REQUEST_SHOP_DOC SET SEND_APP_DT = GETDATE()
165
      WHERE REQ_ID = @p_REQ_ID
166

    
167
			IF @@Error <> 0 GOTO ABORT
168
	END
169
--  --QLTS gửi DVCM
170
  ELSE IF(@p_TYPE_PROCESS='S_DVCM')
171
	BEGIN
172
		IF(EXISTS(SELECT REQ_ID FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @p_REQ_ID AND STATUS = 'REJECT'))
173
		BEGIN
174
			ROLLBACK TRANSACTION
175
			SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'Phiếu yêu cầu đã bị trả về. Gửi duyệt thất bại.' ErrorDesc
176
			RETURN '-1'
177
		END
178

    
179
    IF(EXISTS(SELECT REQ_ID FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @p_REQ_ID AND (HO_NOTES IS NULL OR HO_NOTES = '')))
180
    BEGIN
181
			ROLLBACK TRANSACTION
182
			SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'Vui lòng nhập ý kiến của bộ phận QLTS trước khi gửi duyệt.' ErrorDesc
183
			RETURN '-1'
184
    END
185
		
186
    INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
187
    VALUES (@p_REQ_ID, 'S_DVCM', @p_CHECKER_ID, GETDATE(), N'Gửi DVCM', N'QLTS gửi DVCM thành công');
188

    
189
    UPDATE TR_REQUEST_SHOP_DOC SET STATUS = 'DVCM' WHERE REQ_ID = @p_REQ_ID
190
    
191
    UPDATE PL_REQUEST_PROCESS SET STATUS = 'P', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103) WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = 'QLTS_N'
192

    
193
    UPDATE PL_REQUEST_PROCESS SET STATUS = 'C' WHERE PROCESS_ID = 'DVCM' AND REQ_ID = @p_REQ_ID 
194
    
195
    SET @p_NOTES = N'Gửi DVCM thành công'
196
		
197
			IF @@Error <> 0 GOTO ABORT
198
			
199
		--END
200
		SET @NOTIFATION= N'Gửi DVCM thành công'
201

    
202
    --UPDATE NGÀY GỬI DUYỆT
203
    UPDATE TR_REQUEST_SHOP_DOC SET SEND_APP_DT = GETDATE()
204
    WHERE REQ_ID = @p_REQ_ID
205

    
206
	END	
207
  -- QLTS DUYỆT
208
	ELSE IF(@p_TYPE_PROCESS='QLTS_D')
209
	BEGIN
210

    
211
      IF(EXISTS(SELECT TOP 1 A.HO_NOTES FROM TR_REQUEST_SHOP_DOC A WHERE A.REQ_ID = @p_REQ_ID AND (A.HO_NOTES IS NULL OR A.HO_NOTES = '')))
212
      BEGIN
213
    			ROLLBACK TRANSACTION
214
    			SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'QLTS chưa nhập ý kiến. Duyệt thất bại' ErrorDesc
215
    			RETURN '-1'
216
      END
217

    
218
      IF(EXISTS(SELECT trsd.REQ_ID FROM TR_REQUEST_SHOP_DOC trsd WHERE trsd.REQ_ID = @p_REQ_ID AND trsd.MAKER_ID = @p_CHECKER_ID))
219
      BEGIN
220
            ROLLBACK TRANSACTION
221
      			SELECT '-1' as Result, @p_REQ_ID AS ID, N'Bạn không có quyền duyệt phiếu này' ErrorDesc
222
      			RETURN '-1'
223
      END
224

    
225
      IF((SELECT TOP 1 STATUS FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @p_REQ_ID) = 'TBP_D')
226
      BEGIN --TRƯỞNG BỘ PHẬN QLTS DUYỆT
227

    
228
    			UPDATE PL_REQUEST_PROCESS SET [STATUS]='P',NOTES = @p_NOTES ,CHECKER_ID=@p_CHECKER_ID,APPROVE_DT=CONVERT(DATETIME, @p_APPROVE_DT, 103) WHERE REQ_ID=@p_REQ_ID AND [STATUS]='C' AND PROCESS_ID = 'TBP_D'
229
    		
230
          INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
231
          VALUES (@p_REQ_ID, 'TBP_D', @p_CHECKER_ID, GETDATE(), N'Trưởng bộ phận QLTS duyệt', @p_NOTES);
232
    
233
    			UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]='QLTS_D' WHERE REQ_ID=@p_REQ_ID
234
          
235
          INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID,IS_LEAF,NOTES,PROCESS_TYPE)
236
          VALUES(@p_REQ_ID,'QLTS_D','C','GDDV_QLTS','DV0001','TBP_D','DEP000000000048','N',NULL,'Approve')
237
    
238
    		  SET @NOTIFATION= N'Trưởng bộ phận QLTS duyệt thành công'
239
      END
240
      ELSE IF((SELECT TOP 1 STATUS FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @p_REQ_ID) = 'QLTS_D')
241
      BEGIN --TRƯỞNG ĐƠN VỊ QLTS DUYỆT
242

    
243
    			UPDATE PL_REQUEST_PROCESS SET [STATUS]='P', NOTES = @p_NOTES , CHECKER_ID=@p_CHECKER_ID,APPROVE_DT=CONVERT(DATETIME, @p_APPROVE_DT, 103) WHERE REQ_ID=@p_REQ_ID AND [STATUS]='C' 
244
    			IF @@Error <> 0 GOTO ABORT     
245
    		
246
          INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
247
          VALUES (@p_REQ_ID, 'QLTS_D', @p_CHECKER_ID, GETDATE(), N'Trưởng đơn vị QLTS duyệt', @p_NOTES);
248

    
249
          IF(@REQ_TYPE <> 'DCTS')
250
          BEGIN --PHIẾU SỬA CHỮA TÀI SẢN, THU HỒI TÀI SẢN
251
        		  INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],IS_LEAF)
252
        			VALUES(@p_REQ_ID,'APPROVE','C','N')
253
        
254
        			UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]='APPROVE',AUTH_STATUS = 'A', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,GETDATE(),103) WHERE REQ_ID=@p_REQ_ID
255
              
256
              IF(@REQ_TYPE = 'TH')
257
              BEGIN
258
                  --UPDATE ASS_MASTER XONG GIAO DỊCH
259
                  UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL WHERE ASSET_ID IN (SELECT A.ASSET_ID FROM TR_REQUEST_DOC_ASSET_DT A WHERE A.REQ_DOC_ID = @p_REQ_ID)
260
              END
261
              ELSE
262
              BEGIN
263
                  --UPDATE ASS_MASTER XONG GIAO DỊCH
264
                  UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL WHERE ASSET_ID IN (SELECT A.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT A WHERE A.REQ_DOC_ID = @p_REQ_ID)
265
              END
266
              SET @NOTIFATION= N'Phê duyệt thành công'
267
          END
268
          ELSE 
269
          BEGIN
270
                DECLARE @PRICE_OF_ASSET DECIMAL = (SELECT MAX(b.BUY_PRICE) 
271
                                                  FROM TR_REQUEST_SHOP_DOC_DT A 
272
                                                  LEFT JOIN ASS_MASTER B ON A.ASS_ID = B.ASSET_ID 
273
                                                  WHERE A.REQ_DOC_ID = @p_REQ_ID)
274

    
275
                IF(@PRICE_OF_ASSET > 30000000)
276
                BEGIN --LÊN TTDVNB
277
                    INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID,IS_LEAF,NOTES,PROCESS_TYPE)
278
          		      VALUES(@p_REQ_ID,'TTQLTS_D','C','GDDV','DV0001','QLTS_D',(SELECT TOP 1 DEP_ID FROM CM_DEPARTMENT WHERE DEP_CODE = '05N20'),'N',NULL,'Approve')
279

    
280
                    UPDATE TR_REQUEST_SHOP_DOC SET STATUS = 'TTQLTS_D' WHERE REQ_ID = @p_REQ_ID   
281
                    SET @NOTIFATION= N'Trưởng đơn vị phê duyệt thành công. Phiếu đã gừi lên Trung tâm dịch vụ nội bộ.'  
282
                END               
283
                ELSE 
284
                BEGIN
285
              		  INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],IS_LEAF)
286
              			VALUES(@p_REQ_ID,'APPROVE','C','N')
287
              
288
              			UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]='APPROVE',AUTH_STATUS = 'A', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,GETDATE(),103) WHERE REQ_ID=@p_REQ_ID
289
                    
290
                    --UPDATE ASS_MASTER XONG GIAO DỊCH
291
                    UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL WHERE ASSET_ID IN (SELECT A.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT A WHERE A.REQ_DOC_ID = @p_REQ_ID)
292

    
293
                    SET @NOTIFATION= N'Phê duyệt thành công.'
294
                END
295
          END
296
    
297
    		  
298
      END
299
      ELSE IF((SELECT TOP 1 STATUS FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @p_REQ_ID) = 'TTQLTS_D')
300
      BEGIN --TRUNG TÂM DỊCH VỤ NỘI BỘ DUYỆT
301
          UPDATE PL_REQUEST_PROCESS SET [STATUS]='P', NOTES = @p_NOTES , CHECKER_ID=@p_CHECKER_ID,APPROVE_DT=CONVERT(DATETIME, @p_APPROVE_DT, 103) WHERE REQ_ID=@p_REQ_ID AND [STATUS]='C' 
302
    			IF @@Error <> 0 GOTO ABORT
303
      
304
    		  INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],IS_LEAF)
305
    			 VALUES(@p_REQ_ID,'APPROVE','C','N')
306
    		
307
          INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
308
          VALUES (@p_REQ_ID, 'TTQLTS_D', @p_CHECKER_ID, GETDATE(), N'Trung tâm dịch vụ nội bộ phê duyệt', @p_NOTES);
309
    
310
    			UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]='APPROVE',AUTH_STATUS = 'A', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,GETDATE(),103) WHERE REQ_ID=@p_REQ_ID
311
          
312
          --UPDATE ASS_MASTER XONG GIAO DỊCH
313
          UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL WHERE ASSET_ID IN (SELECT A.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT A WHERE A.REQ_DOC_ID = @p_REQ_ID)
314
    
315
    		  SET @NOTIFATION= N'Phê duyệt thành công'
316
      END
317

    
318
      --UPDATE NGÀY GỬI DUYỆT
319
      UPDATE TR_REQUEST_SHOP_DOC SET SEND_APP_DT = GETDATE()
320
      WHERE REQ_ID = @p_REQ_ID
321

    
322
    	IF @@Error <> 0 GOTO ABORT
323
	END
324
  ELSE IF(@p_TYPE_PROCESS = 'DVCM_D')
325
  BEGIN
326
  		UPDATE TR_REQUEST_SHOP_COSTCENTER SET AUTH_STATUS = 'A', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103)
327
      WHERE REQ_ID = @p_REQ_ID AND COST_ID = @DEP_ID
328

    
329
      UPDATE PL_REQUEST_PROCESS SET STATUS = 'P', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103), NOTES = @p_NOTES
330
      WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = 'DVCM_D' AND PARENT_PROCESS_ID = 'DVCM' AND DEP_ID = @DEP_ID
331
		
332
      INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
333
      VALUES (@p_REQ_ID, 'DVCM_D', @p_CHECKER_ID, GETDATE(), N'Trưởng bộ phận DVCM duyệt', @p_NOTES);
334

    
335
       -- CHECK DVCM ĐÃ NHẬP ĐỦ HẾT CHƯA
336
      IF(NOT EXISTS(SELECT TOP 1 trsc.REQ_COST_ID FROM TR_REQUEST_SHOP_COSTCENTER trsc 
337
                        WHERE trsc.REQ_ID = @p_REQ_ID AND (trsc.AUTH_STATUS = 'U' OR trsc.AUTH_STATUS = 'E')))
338
      BEGIN
339

    
340
          IF(@REQ_TYPE = 'SC')
341
          BEGIN
342
              UPDATE TR_REQUEST_SHOP_DOC SET STATUS = 'QLTS_NL',HO_NOTES = N'- Kế hoạch (Trong/Ngoài NS):' + CHAR(10) + N'- Nội dung đề xuất:' + CHAR(10) + N'- Ghi chú khác:'  WHERE REQ_ID = @p_REQ_ID
343

    
344
              INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID,IS_LEAF,NOTES,PROCESS_TYPE)
345
          		VALUES(@p_REQ_ID,'QLTS_NL','C','QLTS','DV0001','DVCM_D','DEP000000000048','N',NULL,'Update')
346
          END
347
          ELSE
348
          BEGIN
349
              UPDATE TR_REQUEST_SHOP_DOC SET STATUS = 'TBP_D' WHERE REQ_ID = @p_REQ_ID
350
                        
351
              INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID,IS_LEAF,NOTES,PROCESS_TYPE)
352
          		VALUES(@p_REQ_ID,'TBP_D','C','TBP_QLTS','DV0001','DVCM_D','DEP000000000048','N',NULL,'Approve')
353
          END
354

    
355
           --UPDATE NGÀY GỬI DUYỆT
356
          UPDATE TR_REQUEST_SHOP_DOC SET SEND_APP_DT = GETDATE()
357
          WHERE REQ_ID = @p_REQ_ID
358
      END
359

    
360

    
361
		  SET @NOTIFATION= N'Trưởng phòng DVCM duyệt thành công'
362
    	IF @@Error <> 0 GOTO ABORT
363
  END
364
  ELSE IF(@p_TYPE_PROCESS = 'S_GDDV_QLTS')
365
  BEGIN -- GỬI TRƯỞNG BỘ PHẬN QLTS DUYỆT
366
      IF(EXISTS(SELECT TOP 1 A.HO_NOTES FROM TR_REQUEST_SHOP_DOC A WHERE A.REQ_ID = @p_REQ_ID AND (A.HO_NOTES IS NULL OR A.HO_NOTES = '')))
367
      BEGIN
368
    			ROLLBACK TRANSACTION
369
    			SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'Vui lòng nhập ý kiến của bộ phận QLTS trước khi gửi duyệt.' ErrorDesc
370
    			RETURN '-1'
371
      END
372

    
373
      INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
374
      VALUES (@p_REQ_ID, 'S_TBP_QLTS', @p_CHECKER_ID, CONVERT(DATETIME,@p_APPROVE_DT,103), N'QLTS gửi phê duyệt', N'QLTS gửi trưởng bộ phận QLTS phê duyệt thành công');  
375
           
376
      UPDATE PL_REQUEST_PROCESS SET STATUS = 'P', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103) 
377
      WHERE REQ_ID = @p_REQ_ID AND (PROCESS_ID = 'QLTS_N' 
378
                                    OR PROCESS_ID = 'QLTS_NL')--PYC_SC                                                                
379

    
380
      INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID,IS_LEAF,NOTES,PROCESS_TYPE)
381
      VALUES(@p_REQ_ID,'TBP_D','C','TBP_QLTS','DV0001','QLTS_N','DEP000000000048','N',NULL,'Approve')
382

    
383
      UPDATE TR_REQUEST_SHOP_DOC SET STATUS = 'TBP_D' WHERE REQ_ID = @p_REQ_ID
384

    
385
			IF @@Error <> 0 GOTO ABORT
386

    
387
		  SET @NOTIFATION= N'Gửi trưởng bộ phận QLTS phê duyệt thành công'
388

    
389
       --UPDATE NGÀY GỬI DUYỆT
390
      UPDATE TR_REQUEST_SHOP_DOC SET SEND_APP_DT = GETDATE()
391
      WHERE REQ_ID = @p_REQ_ID
392
  END
393
  ELSE IF(@p_TYPE_PROCESS = 'S_GDDV_DVCM')
394
  BEGIN
395
        IF(EXISTS(SELECT 1 FROM TR_REQUEST_SHOP_COSTCENTER trsc WHERE trsc.REQ_ID = @p_REQ_ID 
396
                            AND trsc.COST_ID = @DEP_ID 
397
                            AND trsc.AUTH_STATUS = 'E' 
398
                            AND (trsc.RE_CONTENT IS NULL OR trsc.RE_CONTENT = '')))
399
        BEGIN
400
      			ROLLBACK TRANSACTION
401
      			SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'Vui lòng nhập Nội Dung Đề Xuất của bạn trước khi gửi Trưởng bộ phận DVCM phê duyệt' ErrorDesc
402
      			RETURN '-1'
403
        END
404

    
405
        INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
406
        VALUES (@p_REQ_ID, 'S_GDDVDVCM', @p_CHECKER_ID, CONVERT(DATETIME,@p_APPROVE_DT,103), N'DVCM gửi Trưởng bộ phận DVCM', N'DVCM gửi Trưởng bộ phận DVCM phê duyệt thành công');  
407

    
408
       UPDATE TR_REQUEST_SHOP_COSTCENTER SET AUTH_STATUS = 'U' WHERE REQ_ID = @p_REQ_ID AND COST_ID = @DEP_ID
409
       UPDATE PL_REQUEST_PROCESS SET STATUS = 'P', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103)  WHERE REQ_ID = @p_REQ_ID AND DEP_ID = @DEP_ID AND PROCESS_ID = 'DVCM' AND PARENT_PROCESS_ID = 'QLTS_N'
410
			 UPDATE PL_REQUEST_PROCESS SET STATUS = 'C' WHERE REQ_ID = @p_REQ_ID AND DEP_ID = @DEP_ID AND PROCESS_ID = 'DVCM_D' AND PARENT_PROCESS_ID = 'DVCM'
411

    
412
      IF @@Error <> 0 GOTO ABORT
413

    
414
		  SET @NOTIFATION= N'Gửi trưởng bộ phận DVCM phê duyệt thành công'
415
  END
416
  ELSE IF(@p_TYPE_PROCESS = 'S_DVCM_OR_QLTSNL')
417
  BEGIN --PYC SỬA CHỮA: NẾU CÓ DVCM THÌ GỬI DVCM. NẾU KO CÓ THÌ QUAY LẠI QLTS_NL
418
      IF(EXISTS(SELECT REQ_ID FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @p_REQ_ID AND STATUS = 'REJECT'))
419
    		BEGIN
420
    			ROLLBACK TRANSACTION
421
    			SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'Phiếu yêu cầu đã bị trả về. Gửi duyệt thất bại.' ErrorDesc
422
    			RETURN '-1'
423
    		END
424

    
425
        IF(EXISTS(SELECT 1 FROM TR_REQUEST_SHOP_COSTCENTER WHERE REQ_ID = @p_REQ_ID))
426
        BEGIN --GỬI DVCM
427
            INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
428
            VALUES (@p_REQ_ID, 'S_DVCM', @p_CHECKER_ID, GETDATE(), N'Gửi DVCM', N'QLTS gửi DVCM thành công');
429
        
430
            UPDATE TR_REQUEST_SHOP_DOC SET STATUS = 'DVCM' WHERE REQ_ID = @p_REQ_ID
431
            
432
            UPDATE PL_REQUEST_PROCESS SET STATUS = 'P', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103) WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = 'QLTS_N'
433
        
434
            UPDATE PL_REQUEST_PROCESS SET STATUS = 'C' WHERE PROCESS_ID = 'DVCM' AND REQ_ID = @p_REQ_ID 
435
            
436
            SET @p_NOTES = N'Gửi DVCM thành công'
437
            SET @NOTIFATION= N'Gửi DVCM thành công'
438
        END
439
        ELSE --QUAY LẠI QLTS
440
        BEGIN
441
            INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
442
            VALUES (@p_REQ_ID, 'S_QLTS_NL', @p_CHECKER_ID, GETDATE(), N'Gửi bộ phận QLTS xử lý', N'Gửi bộ phận QLTS xử lý thành công');
443
        
444
            UPDATE TR_REQUEST_SHOP_DOC SET STATUS = 'QLTS_NL', 
445
            HO_NOTES = N'- Kế hoạch (Trong/Ngoài NS):' + CHAR(10) + N'- Nội dung đề xuất: ' + CHAR(10) + N'- Ghi chú khác:' 
446
            WHERE REQ_ID = @p_REQ_ID
447
            
448
            UPDATE PL_REQUEST_PROCESS SET STATUS = 'P', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103) WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = 'QLTS_N'
449
        
450
            INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID,IS_LEAF,NOTES,PROCESS_TYPE)
451
          	VALUES(@p_REQ_ID,'QLTS_NL','C','QLTS','DV0001','QLTS_N','DEP000000000048','N',NULL,'Update')
452
            
453
            SET @p_NOTES = N'Gửi bộ phận QLTS xử lý thành công'
454
            SET @NOTIFATION= N'Gửi bộ phận QLTS xử lý thành công'
455
        END    	
456

    
457
    		--UPDATE NGÀY GỬI DUYỆT
458
        UPDATE TR_REQUEST_SHOP_DOC SET SEND_APP_DT = GETDATE()
459
        WHERE REQ_ID = @p_REQ_ID
460
    		IF @@Error <> 0 GOTO ABORT
461
  END
462
  ELSE IF(@p_TYPE_PROCESS = 'CANCEL')
463
  BEGIN --QLTS HUỶ PHIẾU
464
      IF(NOT EXISTS(SELECT 1 FROM TR_REQUEST_SHOP_DOC A 
465
                    WHERE A.REQ_ID = @p_REQ_ID AND ((A.REQ_TYPE IN ('DCTS','TH') AND A.STATUS = 'QLTS_N')
466
                                                     OR(A.REQ_TYPE = 'SC' AND A.STATUS IN ('QLTS_N','QLTS_NL')))))
467
      BEGIN
468
          ROLLBACK TRANSACTION
469
    			SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'Huỷ thất phải. Vui lòng kiểm tra lại trạng thái phiếu' ErrorDesc
470
    			RETURN '-1'
471
      END
472

    
473
      IF(@REQ_TYPE = 'TH')
474
      BEGIN
475
          UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL 
476
          WHERE ASSET_ID IN (SELECT A.ASSET_ID FROM TR_REQUEST_DOC_ASSET_DT A WHERE A.REQ_DOC_ID = @p_REQ_ID)
477
      END
478
      ELSE IF(@REQ_TYPE IN ('DCTS','SC'))
479
      BEGIN
480
          UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL 
481
          WHERE ASSET_ID IN (SELECT A.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT A WHERE A.REQ_DOC_ID = @p_REQ_ID)
482
      END
483
        
484
      UPDATE TR_REQUEST_SHOP_DOC SET STATUS = 'CANCEL', AUTH_STATUS = 'D' WHERE REQ_ID = @p_REQ_ID
485

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

    
489
--      DELETE PL_REQUEST_PROCESS 
490
--      WHERE REQ_ID = @p_REQ_ID AND STATUS = 'C' AND PROCESS_ID IN ('QLTS_N','QLTS_NL')
491

    
492
      DELETE PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND ((STATUS = 'C' AND PROCESS_ID IN ('QLTS_N','QLTS_NL'))
493
                                                                OR STATUS = 'U')
494

    
495
      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)
496
      VALUES(@p_REQ_ID,'CANCEL','C','QLTS',@p_CHECKER_ID,GETDATE(),@CURR_PROCESS,'Y',N'Chuyên viên QLTS huỷ phiếu',@BRANCHID,@DEP_ID)
497
      
498
      SET @p_NOTES = N'Huỷ phiếu thành công'
499
      SET @NOTIFATION= N'Huỷ phiếu thành công'
500
  END
501
COMMIT TRANSACTION
502
SELECT '0' as Result, @NOTIFATION AS NOTIFATION, '' ErrorDesc, @NOTIFY_TO_USER AS NEXT_USER_NOTIFI, @COMPLETE AS COMPLETE
503
RETURN '0'
504
ABORT:
505
BEGIN
506
		ROLLBACK TRANSACTION
507
		SELECT '-1' AS RESULT, '' ErrorDesc
508
		RETURN '-1'
509
End
510
END
511
GO
512
IF @@ERROR <> 0 SET NOEXEC ON
513
GO
514
PRINT N'Altering [dbo].[TR_REQUEST_REPAIR_ASS_Upd_QLTS]'
515
GO
516
ALTER PROCEDURE [dbo].[TR_REQUEST_REPAIR_ASS_Upd_QLTS]
517
@p_REQ_ID	varchar(15) = null ,
518
@p_REQ_TYPE VARCHAR(10) = NULL,
519
@p_CHECKER_ID VARCHAR(100) = NULL,
520
@p_APPROVE_DT VARCHAR(100) = NULL,
521
@p_HO_NOTES NVARCHAR(1000) = NULL,
522
@p_NOTES NVARCHAR(MAX) = NULL,
523
@p_ListCostCenter XML
524
AS
525

    
526
BEGIN TRANSACTION    		
527
    
528
    DECLARE @TYPE_PYC VARCHAR(10) = (SELECT TOP 1 trsd.REQ_TYPE FROM TR_REQUEST_SHOP_DOC trsd WHERE trsd.REQ_ID = @p_REQ_ID)
529

    
530
    IF(@TYPE_PYC <> 'SC')
531
    BEGIN --PYC ĐIỀU CHUYỂN && THU HỒI
532

    
533
        IF(@p_HO_NOTES IS NULL OR @p_HO_NOTES = '')
534
        BEGIN
535
            ROLLBACK TRANSACTION
536
            SELECT '-1' as Result, @p_REQ_ID  REQ_ID, N'Vui lòng nhập ý kiến của bộ phận QLTS' ErrorDesc
537
            RETURN '-1'
538
        END
539
    
540
        IF(ISNULL(@p_NOTES,'') <> 'SKIP_PL_PROCESS')
541
        BEGIN
542
            INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
543
            VALUES (@p_REQ_ID, 'QLTS_N', @p_CHECKER_ID, CONVERT(DATETIME,@p_APPROVE_DT,103), N'QLTS nhập ý kiến', N'QLTS nhập ý kiến thành công');       
544
    		END
545

    
546
        UPDATE TR_REQUEST_SHOP_DOC SET HO_NOTES = @p_HO_NOTES WHERE REQ_ID = @p_REQ_ID
547
    
548
        DELETE TR_REQUEST_SHOP_COSTCENTER WHERE REQ_ID = @p_REQ_ID
549
    
550
        DELETE PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND (PROCESS_ID = 'DVCM' OR PROCESS_ID = 'DVCM_D')
551
    
552
            --START THÊM DVCM
553
            DECLARE @hdoc2 INT
554
        		
555
        		Declare 
556
        		@l_NOTES NVARCHAR(MAX),
557
        		@l_AUTH_STATUS VARCHAR(5),
558
        		@COST_ID	varchar(15),
559
        		@REQ_COST_ID	varchar(15),
560
            @MAKER_ID VARCHAR(100),
561
            @CREATE_DT VARCHAR(50),
562
            @CHECKER_ID VARCHAR(100),
563
            @APPROVE_DT VARCHAR(50),
564
            @l_ASS_STATUS NVARCHAR(MAX),
565
            @l_RE_CONTENT NVARCHAR(MAX),
566
            @l_QUANTITY INT
567
      
568
            Exec sp_xml_preparedocument @hdoc2 Output,@p_ListCostCenter
569
      			DECLARE ListCostCenters  CURSOR FOR
570
      			SELECT *
571
      			FROM OPENXML(@hdoc2,'/Root/ListCostCenter',2)
572
      			WITH 
573
      			(
574
      				REQ_COST_ID VARCHAR(15),
575
      				COST_ID	varchar(15),	
576
      				AUTH_STATUS VARCHAR(5),
577
      				NOTES	nvarchar(MAX),
578
              MAKER_ID VARCHAR(100),
579
              CREATE_DT VARCHAR(50),
580
              CHECKER_ID VARCHAR(100),
581
              APPROVE_DT VARCHAR(50),
582
              ASS_STATUS NVARCHAR(MAX),
583
              RE_CONTENT NVARCHAR(MAX),
584
              QUANTITY INT 
585
      				
586
      			)
587
      			OPEN ListCostCenters                         
588
      
589
      			FETCH NEXT FROM ListCostCenters INTO @REQ_COST_ID,@COST_ID,@l_AUTH_STATUS, @l_NOTES, @MAKER_ID, @CREATE_DT, @CHECKER_ID, @APPROVE_DT, @l_ASS_STATUS, @l_RE_CONTENT, @l_QUANTITY
590
      			WHILE @@FETCH_STATUS = 0	
591
      			BEGIN
592
      				IF( NOT EXISTS(SELECT 1 FROM dbo.TR_REQUEST_SHOP_COSTCENTER WHERE COST_ID=@COST_ID AND REQ_ID=@p_REQ_ID))
593
      				BEGIN
594
          				EXEC SYS_CodeMasters_Gen 'TR_REQUEST_SHOP_COSTCENTER', @REQ_COST_ID out
595
          				IF @REQ_COST_ID='' OR @REQ_COST_ID IS NULL GOTO ABORT
596
          				INSERT INTO dbo.TR_REQUEST_SHOP_COSTCENTER
597
          				(
598
          				    REQ_COST_ID,
599
          				    COST_ID,
600
          				    REQ_ID,
601
          				    NOTES,
602
          				    AUTH_STATUS,
603
          				    MAKER_ID,
604
          				    CREATE_DT,
605
          				    CHECKER_ID,
606
          				    APPROVE_DT,
607
                      ASS_STATUS,
608
                      RE_CONTENT,
609
                      QUANTITY
610
          				)
611
          				VALUES
612
          				(   @REQ_COST_ID,        -- REQ_COST_ID - varchar(15)
613
          				    @COST_ID,        -- COST_ID - varchar(15)
614
          					  @p_REQ_ID,        -- REQ_ID - varchar(15)
615
          				    @l_NOTES,       -- NOTES - nvarchar(500)
616
          					  @l_AUTH_STATUS,        -- AUTH_STATUS - varchar(1)
617
          				    @MAKER_ID,        -- MAKER_ID - varchar(15)
618
          				    CONVERT(DATETIME,@CREATE_DT,103), -- CREATE_DT - datetime
619
          				    @CHECKER_ID,        -- CHECKER_ID - varchar(15)
620
          				    CONVERT(DATETIME,@APPROVE_DT,103)  -- APPROVE_DT - datetime
621
                      , @l_ASS_STATUS
622
                      , @l_RE_CONTENT
623
                      , @l_QUANTITY
624
          				    )
625
          				END						
626
          				IF @@ERROR <> 0 GOTO ABORT2
627
          			
628
          				FETCH NEXT FROM ListCostCenters INTO @REQ_COST_ID,@COST_ID,@l_AUTH_STATUS, @l_NOTES, @MAKER_ID, @CREATE_DT, @CHECKER_ID, @APPROVE_DT, @l_ASS_STATUS, @l_RE_CONTENT, @l_QUANTITY
629
      			  END
630
      			CLOSE ListCostCenters
631
      			DEALLOCATE ListCostCenters
632
      		--END DVCM          
633
          
634
    
635
          INSERT INTO PL_REQUEST_PROCESS (REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID,DEP_ID, PARENT_PROCESS_ID, IS_LEAF, NOTES, PROCESS_TYPE)
636
          SELECT 
637
          @p_REQ_ID,
638
          'DVCM',
639
          'U',
640
          'DVCM',
641
          (CASE WHEN 1=1 THEN (SELECT B.BRANCH_ID FROM CM_DEPARTMENT B WHERE B.DEP_ID = A.COST_ID)END) AS BRANCH_ID,       
642
          A.COST_ID, --DEP_ID
643
          'QLTS_N',
644
          'N',
645
          NULL,
646
          'Update'
647
          FROM TR_REQUEST_SHOP_COSTCENTER A WHERE REQ_ID = @p_REQ_ID
648
    
649
          --TRƯỞNG DVCM CẬP DUYỆT
650
          INSERT INTO PL_REQUEST_PROCESS (REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID,DEP_ID, PARENT_PROCESS_ID, IS_LEAF, NOTES, PROCESS_TYPE)
651
          SELECT 
652
          @p_REQ_ID,
653
          'DVCM_D',
654
          'U',
655
          'GDDV',
656
          (CASE WHEN 1=1 THEN (SELECT B.BRANCH_ID FROM CM_DEPARTMENT B WHERE B.DEP_ID = A.COST_ID)END) AS BRANCH_ID,       
657
          A.COST_ID, --DEP_ID
658
          'DVCM',
659
          'N',
660
          NULL,
661
          'Approve'
662
          FROM TR_REQUEST_SHOP_COSTCENTER A WHERE REQ_ID = @p_REQ_ID
663
      END
664
    ELSE 
665
    BEGIN --PYC SỬA CHỮA
666

    
667
        IF(ISNULL(@p_NOTES,'') <> 'SKIP_PL_PROCESS')
668
        BEGIN
669
            INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
670
            VALUES (@p_REQ_ID, 'QLTS_N', @p_CHECKER_ID, CONVERT(DATETIME,@p_APPROVE_DT,103), N'QLTS xử lý', N'QLTS xử lý thành công');
671
        END
672

    
673
        IF(EXISTS(SELECT 1 FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @p_REQ_ID AND STATUS = 'QLTS_N'))
674
        BEGIN --ĐANG Ở BƯỚC QLTS CHỌN DVCM
675
            DELETE TR_REQUEST_SHOP_COSTCENTER WHERE REQ_ID = @p_REQ_ID
676
        
677
            DELETE PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND (PROCESS_ID = 'DVCM' OR PROCESS_ID = 'DVCM_D')
678
        
679
                --START THÊM DVCM
680
                DECLARE @hdoc3 INT
681
            		
682
            		Declare 
683
            		@l_NOTES_1 NVARCHAR(MAX),
684
            		@l_AUTH_STATUS_1 VARCHAR(5),
685
            		@COST_ID_1	varchar(15),
686
            		@REQ_COST_ID_1	varchar(15),
687
                @MAKER_ID_1 VARCHAR(100),
688
                @CREATE_DT_1 VARCHAR(50),
689
                @CHECKER_ID_1 VARCHAR(100),
690
                @APPROVE_DT_1 VARCHAR(50),
691
                @l_ASS_STATUS_1 NVARCHAR(MAX),
692
                @l_RE_CONTENT_1 NVARCHAR(MAX),
693
                @l_QUANTITY_1 INT
694
          
695
                Exec sp_xml_preparedocument @hdoc3 Output,@p_ListCostCenter
696
          			DECLARE ListCostCenters  CURSOR FOR
697
          			SELECT *
698
          			FROM OPENXML(@hdoc3,'/Root/ListCostCenter',2)
699
          			WITH 
700
          			(
701
          				REQ_COST_ID VARCHAR(15),
702
          				COST_ID	varchar(15),	
703
          				AUTH_STATUS VARCHAR(5),
704
          				NOTES	nvarchar(MAX),
705
                  MAKER_ID VARCHAR(100),
706
                  CREATE_DT VARCHAR(50),
707
                  CHECKER_ID VARCHAR(100),
708
                  APPROVE_DT VARCHAR(50),
709
                  ASS_STATUS NVARCHAR(MAX),
710
                  RE_CONTENT NVARCHAR(MAX),
711
                  QUANTITY INT 
712
          				
713
          			)
714
          			OPEN ListCostCenters                         
715
          
716
          			FETCH NEXT FROM ListCostCenters INTO @REQ_COST_ID_1,@COST_ID_1,@l_AUTH_STATUS_1, @l_NOTES_1, @MAKER_ID_1, @CREATE_DT_1, @CHECKER_ID_1, @APPROVE_DT_1, @l_ASS_STATUS_1, @l_RE_CONTENT_1, @l_QUANTITY_1
717
          			WHILE @@FETCH_STATUS = 0	
718
          			BEGIN
719
          				IF( NOT EXISTS(SELECT 1 FROM dbo.TR_REQUEST_SHOP_COSTCENTER WHERE COST_ID=@COST_ID_1 AND REQ_ID=@p_REQ_ID))
720
          				BEGIN
721
              				EXEC SYS_CodeMasters_Gen 'TR_REQUEST_SHOP_COSTCENTER', @REQ_COST_ID_1 out
722
              				IF @REQ_COST_ID_1='' OR @REQ_COST_ID_1 IS NULL GOTO ABORT
723
              				INSERT INTO dbo.TR_REQUEST_SHOP_COSTCENTER
724
              				(
725
              				    REQ_COST_ID,
726
              				    COST_ID,
727
              				    REQ_ID,
728
              				    NOTES,
729
              				    AUTH_STATUS,
730
              				    MAKER_ID,
731
              				    CREATE_DT,
732
              				    CHECKER_ID,
733
              				    APPROVE_DT,
734
                          ASS_STATUS,
735
                          RE_CONTENT,
736
                          QUANTITY
737
              				)
738
              				VALUES
739
              				(   @REQ_COST_ID_1,        -- REQ_COST_ID - varchar(15)
740
              				    @COST_ID_1,        -- COST_ID - varchar(15)
741
              					  @p_REQ_ID,        -- REQ_ID - varchar(15)
742
              				    @l_NOTES_1,       -- NOTES - nvarchar(500)
743
              					  @l_AUTH_STATUS_1,        -- AUTH_STATUS - varchar(1)
744
              				    @MAKER_ID_1,        -- MAKER_ID - varchar(15)
745
              				    CONVERT(DATETIME,@CREATE_DT_1,103), -- CREATE_DT - datetime
746
              				    @CHECKER_ID_1,        -- CHECKER_ID - varchar(15)
747
              				    CONVERT(DATETIME,@APPROVE_DT_1,103)  -- APPROVE_DT - datetime
748
                          , @l_ASS_STATUS_1
749
                          , @l_RE_CONTENT_1
750
                          , @l_QUANTITY_1
751
              				    )
752
              				END						
753
              				IF @@ERROR <> 0 GOTO ABORT2
754
              			
755
              				FETCH NEXT FROM ListCostCenters INTO @REQ_COST_ID_1,@COST_ID_1,@l_AUTH_STATUS_1, @l_NOTES_1, @MAKER_ID_1, @CREATE_DT_1, @CHECKER_ID_1, @APPROVE_DT_1, @l_ASS_STATUS_1, @l_RE_CONTENT_1, @l_QUANTITY_1
756
          			  END
757
          			CLOSE ListCostCenters
758
          			DEALLOCATE ListCostCenters
759
          		--END DVCM          
760
              
761
        
762
              INSERT INTO PL_REQUEST_PROCESS (REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID,DEP_ID, PARENT_PROCESS_ID, IS_LEAF, NOTES, PROCESS_TYPE)
763
              SELECT 
764
              @p_REQ_ID,
765
              'DVCM',
766
              'U',
767
              'DVCM',
768
              (CASE WHEN 1=1 THEN (SELECT B.BRANCH_ID FROM CM_DEPARTMENT B WHERE B.DEP_ID = A.COST_ID)END) AS BRANCH_ID,       
769
              A.COST_ID, --DEP_ID
770
              'QLTS_N',
771
              'N',
772
              NULL,
773
              'Update'
774
              FROM TR_REQUEST_SHOP_COSTCENTER A WHERE REQ_ID = @p_REQ_ID
775
        
776
              --TRƯỞNG DVCM CẬP DUYỆT
777
              INSERT INTO PL_REQUEST_PROCESS (REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID,DEP_ID, PARENT_PROCESS_ID, IS_LEAF, NOTES, PROCESS_TYPE)
778
              SELECT 
779
              @p_REQ_ID,
780
              'DVCM_D',
781
              'U',
782
              'GDDV',
783
              (CASE WHEN 1=1 THEN (SELECT B.BRANCH_ID FROM CM_DEPARTMENT B WHERE B.DEP_ID = A.COST_ID)END) AS BRANCH_ID,       
784
              A.COST_ID, --DEP_ID
785
              'DVCM',
786
              'N',
787
              NULL,
788
              'Approve'
789
              FROM TR_REQUEST_SHOP_COSTCENTER A WHERE REQ_ID = @p_REQ_ID
790

    
791
        END
792
        ELSE
793
        BEGIN
794
            IF(@p_HO_NOTES IS NULL OR @p_HO_NOTES = '')
795
            BEGIN
796
                ROLLBACK TRANSACTION
797
                SELECT '-1' as Result, @p_REQ_ID  REQ_ID, N'Vui lòng nhập ý kiến của bộ phận QLTS' ErrorDesc
798
                RETURN '-1'
799
            END
800

    
801
        	  UPDATE TR_REQUEST_SHOP_DOC SET HO_NOTES = @p_HO_NOTES WHERE REQ_ID = @p_REQ_ID
802
        END
803

    
804
    END
805
COMMIT TRANSACTION
806
SELECT '0' as Result, @p_REQ_ID  REQ_ID, '' ErrorDesc, N'QLTS xử lý thành công' Message
807
RETURN '0'
808
ABORT:
809
BEGIN
810
		ROLLBACK TRANSACTION
811
		SELECT '-1' AS RESULT
812
		RETURN '-1'
813
END
814
ABORT2:
815
BEGIN
816
		ROLLBACK TRANSACTION
817
  	CLOSE ListCostCenters
818
	  DEALLOCATE ListCostCenters
819
		SELECT '-1' AS RESULT
820
		RETURN '-1'
821
END
822
GO
823
IF @@ERROR <> 0 SET NOEXEC ON
824
GO
825
PRINT N'Altering [dbo].[rpt_PYC_CAPPHAT]'
826
GO
827
ALTER PROC [dbo].[rpt_PYC_CAPPHAT]
828
@REQ_ID VARCHAR(15) = NULL
829

    
830
AS
831
BEGIN
832

    
833
 DECLARE 
834
@SHOW_TABLE_DVCM_KHAC VARCHAR(1) = NULL,@SHOW_TABLE_DVCM_IT VARCHAR(1) = NULL
835

    
836
--TABLE 0
837
SELECT DISTINCT ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS STT, AG.GROUP_NAME AS GR_NAME, AG.GROUP_CODE AS GR_CODE, 
838
cd.DEP_NAME, ce.EMP_NAME, trsdd.QTY_ETM, trsdd.REASON, TU.TLFullName AS MAKER, TU2.TLFullName AS TDV
839
FROM TR_REQUEST_SHOP_DOC_DT trsdd
840
LEFT JOIN TR_REQUEST_SHOP_DOC trsd ON trsdd.REQ_DOC_ID = trsd.REQ_ID
841
LEFT JOIN CM_DEPARTMENT cd ON trsd.DEP_ID = cd.DEP_ID
842
LEFT JOIN CM_EMPLOYEE ce ON trsdd.EMP_ID = ce.EMP_ID
843
LEFT JOIN ASS_GROUP AG ON trsdd.ASS_GROUP_ID = AG.GROUP_ID
844
LEFT JOIN TL_USER TU ON TU.TLNANME = trsd.MAKER_ID
845
LEFT JOIN TL_USER TU2 ON TU2.TLNANME = trsd.CHECKER_ID
846
WHERE trsdd.REQ_DOC_ID = @REQ_ID AND REQ_DT_TYPE = 'ORGINAL'
847
--GROUP BY AG.GROUP_NAME, AG.GROUP_CODE, 
848
--cd.DEP_NAME, ce.EMP_NAME, trsdd.QTY_ETM, trsdd.REASON, TU.TLFullName, TU2.TLNANME
849
ORDER BY STT
850
  
851
--TABLE 1 DVCM KHOI CNTT
852
IF(EXISTS(SELECT 1 
853
          FROM TR_REQUEST_SHOP_COSTCENTER A
854
          LEFT JOIN CM_DEPARTMENT B ON A.COST_ID = B.DEP_ID
855
          WHERE A.REQ_ID = @REQ_ID AND B.DEP_CODE = '05J00'))
856
BEGIN
857
 SELECT TOP 1 A.ASS_STATUS, A.RE_CONTENT, A.NOTES, E.TLFullName AS SURVEY_STAFF, ISNULL(B.POS_NAME, '') + CHAR(13) + N'Đã ký ngày ' + FORMAT(PP.APPROVE_DT, 'dd/MM/yyyy HH:mm:ss') AS POS_NAME
858
    FROM TR_REQUEST_SHOP_COSTCENTER A
859
    LEFT JOIN CM_EMPLOYEE_LOG B ON A.MAKER_ID = B.USER_DOMAIN
860
    LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
861
    LEFT JOIN CM_DEPARTMENT cd ON A.COST_ID = cd.DEP_ID
862
    LEFT JOIN PL_PROCESS PP ON A.REQ_ID = PP.REQ_ID AND A.MAKER_ID = PP.CHECKER_ID
863
    WHERE A.REQ_ID = @REQ_ID AND cd.DEP_CODE = '05J00'
864
ORDER BY PP.APPROVE_DT DESC
865

    
866
    SET @SHOW_TABLE_DVCM_IT = '1'
867
END
868
ELSE
869
BEGIN
870
    SELECT '' ASS_STATUS, '' RE_CONTENT,'' NOTES, ''SURVEY_STAFF, '' POS_NAME
871
END
872

    
873

    
874
--TABLE 2 DVCM KHAC
875
IF(EXISTS(SELECT 1 
876
          FROM TR_REQUEST_SHOP_COSTCENTER A
877
          LEFT JOIN CM_DEPARTMENT B ON A.COST_ID = B.DEP_ID
878
          WHERE A.REQ_ID = @REQ_ID AND B.DEP_CODE <> '05J00'))
879
BEGIN
880
    SELECT A.ASS_STATUS, A.RE_CONTENT, A.NOTES, E.TLFullName AS SURVEY_STAFF, ISNULL(B.POS_NAME, '') + CHAR(13) + N'Đã ký ngày ' + 
881
    FORMAT(
882
    (SELECT TOP 1 PP.APPROVE_DT FROM PL_PROCESS PP WHERE PP.REQ_ID = A.REQ_ID AND PP.CHECKER_ID = A.MAKER_ID ORDER BY PP.APPROVE_DT DESC)
883
    , 'dd/MM/yyyy HH:mm:ss') AS POS_NAME
884
    FROM TR_REQUEST_SHOP_COSTCENTER A
885
    LEFT JOIN CM_EMPLOYEE_LOG B ON A.MAKER_ID = B.USER_DOMAIN
886
    LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
887
    LEFT JOIN CM_DEPARTMENT cd ON A.COST_ID = cd.DEP_ID
888
    WHERE A.REQ_ID = @REQ_ID AND cd.DEP_CODE <> '05J00'
889
    ORDER BY A.COST_ID
890

    
891
    SET @SHOW_TABLE_DVCM_KHAC = '1'
892
END
893
ELSE
894
BEGIN
895
    SELECT '' ASS_STATUS, '' RE_CONTENT,'' NOTES, ''SURVEY_STAFF, '' POS_NAME
896
END
897

    
898
--TABLE 3 DANH GIA VA DE XUAT CUA P.QLTS 
899
IF(EXISTS(SELECT 1 FROM TR_REQUEST_SHOP_DOC trsd
900
LEFT JOIN CM_DEPARTMENT cd ON trsd.DEP_ID = cd.DEP_ID
901
LEFT JOIN PL_REQUEST_PROCESS PRP ON trsd.REQ_ID = PRP.REQ_ID AND PRP.PROCESS_ID = 'QLTS_NL'
902
LEFT JOIN TL_USER tu ON PRP.CHECKER_ID = tu.TLNANME
903
LEFT JOIN CM_EMPLOYEE_LOG CE ON CE.USER_DOMAIN = PRP.CHECKER_ID
904
WHERE trsd.REQ_ID = @REQ_ID))
905
BEGIN
906
    SELECT DISTINCT trsd.HO_NOTES, tu.TLFullName, ISNULL(CE.POS_NAME, '') + CHAR(13) + N'Đã ký ngày ' + FORMAT(
907
    (SELECT TOP 1 PP.APPROVE_DT FROM PL_PROCESS PP WHERE PP.REQ_ID = trsd.REQ_ID AND PP.CHECKER_ID = PRP.CHECKER_ID ORDER BY PP.APPROVE_DT DESC)
908
    , 'dd/MM/yyyy HH:mm:ss') AS POS_NAME
909
    FROM TR_REQUEST_SHOP_DOC trsd
910
    LEFT JOIN CM_DEPARTMENT cd ON trsd.DEP_ID = cd.DEP_ID
911
    LEFT JOIN PL_REQUEST_PROCESS PRP ON trsd.REQ_ID = PRP.REQ_ID AND PRP.PROCESS_ID = 'QLTS_NL'
912
    LEFT JOIN TL_USER tu ON PRP.CHECKER_ID = tu.TLNANME
913
    LEFT JOIN CM_EMPLOYEE_LOG CE ON CE.USER_DOMAIN = PRP.CHECKER_ID
914
    WHERE trsd.REQ_ID = @REQ_ID
915
    END
916
ELSE BEGIN SELECT  N'' NOTES, N'' TLFullName, N'' POS_NAME END
917

    
918
--TABLE 4 PHE DUYET DVCM KHOI CNTT
919
IF(@SHOW_TABLE_DVCM_IT IS NOT NULL)
920
BEGIN
921
    IF (EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS A
922
            LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
923
            WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE = '05J00'))
924
    BEGIN  
925
    	    SELECT TOP 1 ISNULL(A.NOTES,'') AS NOTES, E.TLFullName, ISNULL(D.POS_NAME, '') + CHAR(13) + N'Đã ký ngày ' + FORMAT(PP.APPROVE_DT, 'dd/MM/yyyy HH:mm:ss') AS POS_NAME
926
          FROM PL_REQUEST_PROCESS A
927
          LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
928
          LEFT JOIN CM_EMPLOYEE_LOG D ON A.CHECKER_ID = D.USER_DOMAIN
929
          LEFT JOIN TL_USER E ON D.USER_DOMAIN = E.TLNANME
930
          LEFT JOIN PL_PROCESS PP ON A.REQ_ID = PP.REQ_ID
931
          WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE = '05J00'
932
          ORDER BY PP.APPROVE_DT DESC
933
    END
934
    ELSE
935
    BEGIN
936
        SELECT '' AS NOTES        
937
    END
938
END
939
ELSE
940
BEGIN
941
SELECT N'' NOTES
942
END
943

    
944
--QTLS_D 5
945
IF(EXISTS(SELECT 1
946
    FROM PL_REQUEST_PROCESS PRP
947
    LEFT JOIN TL_USER tu ON PRP.CHECKER_ID = tu.TLNANME
948
    LEFT JOIN CM_EMPLOYEE_LOG CE ON CE.USER_DOMAIN = PRP.CHECKER_ID
949
    WHERE PRP.REQ_ID = @REQ_ID AND PRP.PROCESS_ID = 'QLTS_D'))
950
    BEGIN
951
        SELECT DISTINCT PRP.NOTES AS HO_NOTES, tu.TLFullName, ISNULL(CE.POS_NAME, '') + CHAR(13) + N'Đã ký ngày ' + FORMAT(
952
        (SELECT TOP 1 PP.APPROVE_DT FROM PL_PROCESS PP WHERE PP.REQ_ID = PRP.REQ_ID AND PP.CHECKER_ID = PRP.CHECKER_ID ORDER BY PP.APPROVE_DT DESC)
953
        , 'dd/MM/yyyy HH:mm:ss') AS POS_NAME
954
        FROM PL_REQUEST_PROCESS PRP
955
        LEFT JOIN TL_USER tu ON PRP.CHECKER_ID = tu.TLNANME
956
        LEFT JOIN CM_EMPLOYEE_LOG CE ON CE.USER_DOMAIN = PRP.CHECKER_ID
957
        LEFT JOIN PL_PROCESS PP ON PRP.REQ_ID = PP.REQ_ID AND PRP.CHECKER_ID = PP.CHECKER_ID
958
        WHERE PRP.REQ_ID = @REQ_ID AND PRP.PROCESS_ID = 'QLTS_D'
959
    END
960
ELSE BEGIN SELECT  N'' HO_NOTES, N'' TLFullName, N'' POS_NAME END
961

    
962
--TTQTLS_D 6
963
SELECT DISTINCT ISNULL(PRP.NOTES, '') AS HO_NOTES, ISNULL(tu.TLFullName, '') AS TLFullName , ISNULL(CE.POS_NAME, '') + CHAR(13) + N'Đã ký ngày ' + FORMAT(
964
(SELECT TOP 1 PP.APPROVE_DT FROM PL_PROCESS PP WHERE PP.REQ_ID = PRP.REQ_ID AND PP.CHECKER_ID = PRP.CHECKER_ID ORDER BY PP.APPROVE_DT DESC)
965
, 'dd/MM/yyyy HH:mm:ss') AS POS_NAME
966
FROM PL_REQUEST_PROCESS PRP
967
LEFT JOIN TL_USER tu ON PRP.CHECKER_ID = tu.TLNANME
968
LEFT JOIN CM_EMPLOYEE_LOG CE ON CE.USER_DOMAIN = PRP.CHECKER_ID
969
--LEFT JOIN PL_PROCESS PP ON PRP.REQ_ID = PP.REQ_ID AND PRP.CHECKER_ID = PP.CHECKER_ID
970
WHERE PRP.REQ_ID = @REQ_ID AND PRP.PROCESS_ID = 'TTQLTS_D'
971

    
972
--TABLE 7
973
SELECT TU.TLFullName AS MAKER, TU2.TLFullName AS TDV, ISNULL(CE.POS_NAME, '') + CHAR(13) + N'Đã ký ngày ' + FORMAT(
974
A.CREATE_DT
975
, 'dd/MM/yyyy HH:mm:ss') AS POS_MAKER, 
976
ISNULL(CE2.POS_NAME, '') + CHAR(13) + N'Đã ký ngày ' + FORMAT(
977
A.APPROVE_DT
978
, 'dd/MM/yyyy HH:mm:ss') AS POS_TDV
979
FROM TR_REQUEST_SHOP_DOC A
980
LEFT JOIN TL_USER TU ON TU.TLNANME = A.MAKER_ID
981
LEFT JOIN CM_EMPLOYEE_LOG CE ON CE.USER_DOMAIN = A.MAKER_ID
982
LEFT JOIN TL_USER TU2 ON TU2.TLNANME = A.CHECKER_ID
983
LEFT JOIN CM_EMPLOYEE_LOG CE2 ON CE2.USER_DOMAIN = A.CHECKER_ID
984
WHERE A.REQ_ID = @REQ_ID
985

    
986
--TABLE 8 SỐ PYC
987
SELECT trsd.REQ_CODE FROM TR_REQUEST_SHOP_DOC trsd WHERE trsd.REQ_ID = @REQ_ID
988

    
989
--PHUCVH TABLE 9 NGÀY TDV DUYỆT
990
SELECT TOP 1 N'Ngày ' +  CONVERT(VARCHAR(5),DAY(pp.APPROVE_DT)) + 
991
            N' tháng ' + CONVERT(VARCHAR(5),MONTH(pp.APPROVE_DT)) + 
992
            N' năm ' + CONVERT(VARCHAR(10),YEAR(pp.APPROVE_DT)) AS APPROVE_DT
993
FROM PL_PROCESS pp WHERE pp.REQ_ID = @REQ_ID AND pp.PROCESS_ID = 'APPNEW' ORDER BY pp.ID DESC
994

    
995
--TABLE 10 PHÊ DUYỆT DVCM KHÁC
996
IF(@SHOW_TABLE_DVCM_KHAC IS NOT NULL)
997
BEGIN  
998
    IF (EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS A
999
            LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
1000
            WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE <> '05J00'))
1001
    BEGIN  
1002
    	    SELECT ISNULL(A.NOTES,'') AS NOTES, E.TLFullName, ISNULL(D.POS_NAME, '') + CHAR(13) + N'Đã ký ngày ' + FORMAT(A.APPROVE_DT, 'dd/MM/yyyy HH:mm:ss') AS POS_NAME
1003
          FROM PL_REQUEST_PROCESS A
1004
          LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
1005
          LEFT JOIN CM_EMPLOYEE_LOG D ON A.CHECKER_ID = D.USER_DOMAIN
1006
          LEFT JOIN TL_USER E ON D.USER_DOMAIN = E.TLNANME
1007
          WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE <> '05J00'
1008
          ORDER BY C.DEP_ID
1009
    END
1010
    ELSE
1011
    BEGIN
1012
        SELECT '' AS NOTES
1013
        FROM TR_REQUEST_SHOP_COSTCENTER A
1014
        LEFT JOIN CM_DEPARTMENT C ON A.COST_ID = C.DEP_ID
1015
        WHERE A.REQ_ID = @REQ_ID AND C.DEP_CODE <> '05J00'
1016
    END   
1017
END
1018
ELSE
1019
BEGIN
1020
    SELECT N'' NOTES
1021
END
1022

    
1023
--TABLE 11 PHÊ DUYỆT TBP_QLTS
1024
SELECT DISTINCT ISNULL(PRP.NOTES, ISNULL((SELECT TOP 1 PP.NOTES FROM PL_PROCESS PP WHERE PP.REQ_ID = PRP.REQ_ID AND PP.CHECKER_ID = PRP.CHECKER_ID AND PRP.STATUS = 'P' ORDER BY PP.APPROVE_DT DESC),'')) AS HO_NOTES, ISNULL(tu.TLFullName, '') AS TLFullName , ISNULL(CE.POS_NAME, '') + CHAR(13) + N'Đã ký ngày ' + FORMAT(
1025
(SELECT TOP 1 PP.APPROVE_DT FROM PL_PROCESS PP WHERE PP.REQ_ID = PRP.REQ_ID AND PP.CHECKER_ID = PRP.CHECKER_ID ORDER BY PP.APPROVE_DT DESC)
1026
, 'dd/MM/yyyy HH:mm:ss') AS POS_NAME
1027
FROM PL_REQUEST_PROCESS PRP
1028
LEFT JOIN TL_USER tu ON PRP.CHECKER_ID = tu.TLNANME
1029
LEFT JOIN CM_EMPLOYEE_LOG CE ON CE.USER_DOMAIN = PRP.CHECKER_ID
1030
--LEFT JOIN PL_PROCESS PP ON PRP.REQ_ID = PP.REQ_ID AND PRP.CHECKER_ID = PP.CHECKER_ID
1031
WHERE PRP.REQ_ID = @REQ_ID AND PRP.PROCESS_ID = 'TBP_D'
1032

    
1033

    
1034
--SHOW TABLE DVCM IT
1035
IF(@SHOW_TABLE_DVCM_IT IS NOT NULL)
1036
BEGIN
1037
    SELECT N'DVCMIT' AS MERGE_REGION
1038
END
1039

    
1040
--SHOW TABLE DVCM KHÁC
1041
IF(@SHOW_TABLE_DVCM_KHAC IS NOT NULL)
1042
BEGIN
1043
    SELECT N'DVCMKHAC' AS MERGE_REGION
1044
END
1045

    
1046
--SHOW TITLE ĐÁNH GIÁ CỦA ĐƠN VỊ CHUYÊN MÔN
1047
IF(@SHOW_TABLE_DVCM_IT IS NOT NULL OR @SHOW_TABLE_DVCM_KHAC IS NOT NULL)
1048
BEGIN
1049
    SELECT N'TITLEDVCM' AS MERGE_REGION
1050
END
1051

    
1052

    
1053
END
1054
GO
1055
IF @@ERROR <> 0 SET NOEXEC ON
1056
GO
1057
PRINT N'Altering [dbo].[rpt_PYC_DIEUCHUYEN]'
1058
GO
1059
ALTER   PROC [dbo].[rpt_PYC_DIEUCHUYEN]
1060
@REQ_ID VARCHAR(15) = NULL
1061

    
1062
AS
1063
BEGIN
1064

    
1065
DECLARE 
1066
@SHOW_TABLE_DVCM_KHAC VARCHAR(1) = NULL,@SHOW_TABLE_DVCM_IT VARCHAR(1) = NULL
1067

    
1068
--TABLE 0
1069
SELECT DISTINCT ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS STT, 
1070
am.ASSET_NAME AS ASS_NAME, 
1071
ISNULL(am.ASSET_CODE,am.ASS_CODE_TMP) AS ASSET_CODE,
1072
ISNULL(PB.DEP_NAME,ISNULL(TT.DEP_NAME,K.DEP_NAME))  AS DEP_NAME, 
1073
ce.EMP_NAME, '1' QTY_ETM, 
1074
B.REASON AS REQ_CONTENT
1075
FROM TR_REQUEST_SHOP_DOC A 
1076
LEFT JOIN TR_REQUEST_SHOP_DOC_DT B ON A.REQ_ID = B.REQ_DOC_ID
1077
LEFT JOIN CM_DEPARTMENT K ON B.SUBBRANCH_OLD = K.DEP_ID
1078
LEFT JOIN CM_DEPARTMENT TT ON B.FATHER_OLD = TT.DEP_ID
1079
LEFT JOIN CM_DEPARTMENT PB ON B.DEP_OLD = PB.DEP_ID
1080
LEFT JOIN ASS_MASTER am ON am.ASSET_ID = B.ASS_ID
1081
LEFT JOIN CM_EMPLOYEE ce ON B.EMP_ID = ce.EMP_ID 
1082
WHERE A.REQ_ID = @REQ_ID 
1083
  
1084
--TABLE 1 DVCM KHOI CNTT
1085
IF(EXISTS(SELECT 1 
1086
          FROM TR_REQUEST_SHOP_COSTCENTER A
1087
          LEFT JOIN CM_DEPARTMENT B ON A.COST_ID = B.DEP_ID
1088
          WHERE A.REQ_ID = @REQ_ID AND B.DEP_CODE = '05J00'))
1089
BEGIN
1090
    SELECT TOP 1 A.ASS_STATUS, A.RE_CONTENT, A.NOTES, E.TLFullName AS SURVEY_STAFF, ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT(D.APPROVE_DT,'dd/MM/yyyy HH:mm:ss') AS POS_NAME
1091
    FROM TR_REQUEST_SHOP_COSTCENTER A
1092
    LEFT JOIN CM_EMPLOYEE_LOG B ON A.MAKER_ID = B.USER_DOMAIN
1093
    LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
1094
    LEFT JOIN CM_DEPARTMENT cd ON A.COST_ID = cd.DEP_ID
1095
    LEFT JOIN PL_PROCESS D ON A.REQ_ID = D.REQ_ID AND D.PROCESS_ID = 'S_GDDVDVCM' AND A.MAKER_ID = D.CHECKER_ID
1096
    WHERE A.REQ_ID = @REQ_ID AND cd.DEP_CODE = '05J00'
1097
    ORDER BY D.ID DESC
1098

    
1099
    SET @SHOW_TABLE_DVCM_IT = '1'
1100
END
1101
ELSE
1102
BEGIN
1103
    SELECT '' ASS_STATUS, '' RE_CONTENT,'' NOTES, ''SURVEY_STAFF, '' POS_NAME
1104
END
1105

    
1106

    
1107
--TABLE 2 DVCM KHAC
1108
IF(EXISTS(SELECT 1 
1109
          FROM TR_REQUEST_SHOP_COSTCENTER A
1110
          LEFT JOIN CM_DEPARTMENT B ON A.COST_ID = B.DEP_ID
1111
          WHERE A.REQ_ID = @REQ_ID AND B.DEP_CODE <> '05J00'))
1112
BEGIN
1113
    SELECT A.ASS_STATUS, A.RE_CONTENT, A.NOTES, E.TLFullName AS SURVEY_STAFF, 
1114
      ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1   PP.APPROVE_DT FROM PL_PROCESS PP 
1115
                                                                  WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'S_GDDVDVCM'
1116
                                                                  AND PP.CHECKER_ID = A.MAKER_ID
1117
                                                                  ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
1118
    FROM TR_REQUEST_SHOP_COSTCENTER A
1119
    LEFT JOIN CM_EMPLOYEE_LOG B ON A.MAKER_ID = B.USER_DOMAIN
1120
    LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
1121
    LEFT JOIN CM_DEPARTMENT cd ON A.COST_ID = cd.DEP_ID
1122
    WHERE A.REQ_ID = @REQ_ID AND cd.DEP_CODE <> '05J00'
1123
    ORDER BY A.COST_ID
1124

    
1125
    SET @SHOW_TABLE_DVCM_KHAC = '1'
1126
END
1127
ELSE
1128
BEGIN
1129
    SELECT '' ASS_STATUS, '' RE_CONTENT,'' NOTES, ''SURVEY_STAFF, '' POS_NAME
1130
END
1131

    
1132
--TABLE 3 DANH GIA VA DE XUAT CUA P.QLTS 
1133
SELECT TOP 1 A.HO_NOTES, D.TLFullName, ISNULL(C.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1   PP.APPROVE_DT FROM PL_PROCESS PP 
1134
                                                                  WHERE PP.REQ_ID = A.REQ_ID AND (PP.PROCESS_ID = 'S_DVCM' OR PP.PROCESS_ID = 'S_TBP_QLTS')
1135
                                                                  AND PP.CHECKER_ID = PL.CHECKER_ID
1136
                                                                  ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
1137
FROM TR_REQUEST_SHOP_DOC A 
1138
LEFT JOIN PL_REQUEST_PROCESS PL ON A.REQ_ID = PL.REQ_ID AND PL.PROCESS_ID = 'QLTS_N'
1139
LEFT JOIN CM_EMPLOYEE_LOG C ON PL.CHECKER_ID = C.USER_DOMAIN
1140
LEFT JOIN TL_USER D ON C.USER_DOMAIN = D.TLNANME
1141
WHERE A.REQ_ID = @REQ_ID 
1142

    
1143
--TABLE 4 PHE DUYET DVCM KHOI CNTT
1144
IF(@SHOW_TABLE_DVCM_IT IS NOT NULL)
1145
BEGIN
1146
    IF (EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS A
1147
            LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
1148
            WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE = '05J00'))
1149
    BEGIN  
1150
    	    SELECT TOP 1 ISNULL(A.NOTES,'') AS NOTES, E.TLFullName, ISNULL(D.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP 
1151
                                                                  WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'DVCM_D'
1152
                                                                  AND PP.CHECKER_ID = A.CHECKER_ID
1153
                                                                  ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
1154
          FROM PL_REQUEST_PROCESS A
1155
          LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
1156
          LEFT JOIN CM_EMPLOYEE_LOG D ON A.CHECKER_ID = D.USER_DOMAIN
1157
          LEFT JOIN TL_USER E ON D.USER_DOMAIN = E.TLNANME
1158
          WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE = '05J00'
1159
          ORDER BY C.DEP_ID
1160
    END
1161
    ELSE
1162
    BEGIN
1163
        SELECT '' AS NOTES        
1164
    END
1165
END
1166
ELSE
1167
BEGIN
1168
SELECT N'' NOTES
1169
END
1170

    
1171
--table 5 PHÊ DUYỆT PHÒNG QLTS
1172
IF(EXISTS(SELECT 1
1173
        FROM  PL_REQUEST_PROCESS A
1174
        LEFT JOIN CM_EMPLOYEE_LOG B ON A.CHECKER_ID = B.USER_DOMAIN
1175
        LEFT JOIN TL_USER C ON B.USER_DOMAIN = C.TLNANME        
1176
        WHERE A.REQ_ID = @REQ_ID  AND A.PROCESS_ID = 'QLTS_D'))
1177
BEGIN
1178
    SELECT TOP 1 ISNULL(A.NOTES,'') AS NOTES, C.TLFullName, ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP 
1179
                                                                  WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'QLTS_D'
1180
                                                                  AND PP.CHECKER_ID = A.CHECKER_ID
1181
                                                                  ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME 
1182
    FROM  PL_REQUEST_PROCESS A
1183
    LEFT JOIN CM_EMPLOYEE_LOG B ON A.CHECKER_ID = B.USER_DOMAIN
1184
    LEFT JOIN TL_USER C ON B.USER_DOMAIN = C.TLNANME    
1185
    WHERE A.REQ_ID = @REQ_ID  AND A.PROCESS_ID = 'QLTS_D'
1186
END
1187
ELSE
1188
BEGIN
1189
    SELECT N'' NOTES, '' TLFullName, '' POS_NAME
1190
END
1191

    
1192
--Phucvh table 6 USER TẠO DUYỆT
1193
SELECT TOP 1 C.TLFullName AS USER_CREATE, CHAR(13) + ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' +  FORMAT((SELECT top 1 PP1.APPROVE_DT FROM PL_PROCESS PP1 
1194
                                                                  WHERE PP1.REQ_ID = A.REQ_ID AND PP1.PROCESS_ID = 'S_DVKD'
1195
                                                                  AND PP1.CHECKER_ID = A.MAKER_ID
1196
                                                                  ORDER BY PP1.ID DESC),'dd/MM/yyyy HH:mm:ss') AS  POS_NAME, 
1197
E.TLFullName AS USER_APPROVE, CHAR(13) + ISNULL(D.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP1.APPROVE_DT FROM PL_PROCESS PP1 
1198
                                                                  WHERE PP1.REQ_ID = A.REQ_ID AND PP1.PROCESS_ID = 'DVKD_D'                                                                  
1199
                                                                  ORDER BY PP1.ID DESC),'dd/MM/yyyy HH:mm:ss')  AS POS_NAME_1
1200
FROM TR_REQUEST_SHOP_DOC A
1201
LEFT JOIN CM_EMPLOYEE_LOG B ON A.MAKER_ID = B.USER_DOMAIN --NGƯỜI TẠO
1202
LEFT JOIN TL_USER C ON B.USER_DOMAIN = C.TLNANME --NGƯỜI TẠO
1203
LEFT JOIN PL_REQUEST_PROCESS PP ON A.REQ_ID = PP.REQ_ID AND PP.PROCESS_ID = 'APPNEW'
1204
LEFT JOIN CM_EMPLOYEE_LOG D ON PP.CHECKER_ID = D.USER_DOMAIN --NGƯỜI DUYỆT
1205
LEFT JOIN TL_USER E ON D.USER_DOMAIN = E.TLNANME --NGƯỜI DUYỆT
1206
WHERE A.REQ_ID = @REQ_ID
1207

    
1208
--PHUCVH TABLE 7 SỐ PYC
1209
SELECT trsd.REQ_CODE FROM TR_REQUEST_SHOP_DOC trsd WHERE trsd.REQ_ID = @REQ_ID
1210

    
1211
--PHUCVH TABLE 8 NGÀY TDV DUYỆT
1212
SELECT TOP 1 N'Ngày ' +  CONVERT(VARCHAR(5),DAY(pp.APPROVE_DT)) + 
1213
            N' tháng ' + CONVERT(VARCHAR(5),MONTH(pp.APPROVE_DT)) + 
1214
            N' năm ' + CONVERT(VARCHAR(10),YEAR(pp.APPROVE_DT)) AS APPROVE_DT
1215
FROM PL_REQUEST_PROCESS pp WHERE pp.REQ_ID = @REQ_ID AND pp.PROCESS_ID = 'APPNEW'
1216
END
1217

    
1218
--TABLE 9 PHÊ DUYỆT DVCM KHÁC
1219
IF(@SHOW_TABLE_DVCM_KHAC IS NOT NULL)
1220
BEGIN  
1221
    IF (EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS A
1222
            LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
1223
            WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE <> '05J00'))
1224
    BEGIN  
1225
    	    SELECT ISNULL(A.NOTES,'') AS NOTES, E.TLFullName, ISNULL(D.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP 
1226
                                                                  WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'DVCM_D'
1227
                                                                  AND PP.CHECKER_ID = A.CHECKER_ID
1228
                                                                  ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
1229
          FROM PL_REQUEST_PROCESS A
1230
          LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
1231
          LEFT JOIN CM_EMPLOYEE_LOG D ON A.CHECKER_ID = D.USER_DOMAIN
1232
          LEFT JOIN TL_USER E ON D.USER_DOMAIN = E.TLNANME
1233
          WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE <> '05J00'
1234
          ORDER BY C.DEP_ID
1235
    END
1236
    ELSE
1237
    BEGIN
1238
        SELECT '' AS NOTES
1239
        FROM TR_REQUEST_SHOP_COSTCENTER A
1240
        LEFT JOIN CM_DEPARTMENT C ON A.COST_ID = C.DEP_ID
1241
        WHERE A.REQ_ID = @REQ_ID AND C.DEP_CODE <> '05J00'
1242
    END   
1243
END
1244
ELSE
1245
BEGIN
1246
    SELECT N'' NOTES
1247
END
1248

    
1249
--TABLE 10 PHÊ DUYỆT TBP_QLTS
1250
IF(EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS WHERE REQ_ID = @REQ_ID AND PROCESS_ID = 'TBP_D'))
1251
BEGIN
1252
  SELECT TOP 1 ISNULL(A.NOTES,'') AS HO_NOTES, C.TLFullName, ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP 
1253
                                                                WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'TBP_D'
1254
                                                                AND PP.CHECKER_ID = A.CHECKER_ID
1255
                                                                ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME 
1256
  FROM  PL_REQUEST_PROCESS A
1257
  LEFT JOIN CM_EMPLOYEE_LOG B ON A.CHECKER_ID = B.USER_DOMAIN
1258
  LEFT JOIN TL_USER C ON B.USER_DOMAIN = C.TLNANME    
1259
  WHERE A.REQ_ID = @REQ_ID  AND A.PROCESS_ID = 'TBP_D'
1260
END
1261
ELSE
1262
BEGIN
1263
  SELECT N'' HO_NOTES, '' TLFullName, '' POS_NAME
1264
END
1265

    
1266

    
1267

    
1268
--TABLE 11 PHÊ DUYỆT TRUNG TÂM DỊCH VỤ NỘI BỘ 
1269
DECLARE @PRICE_OF_ASSET DECIMAL = (SELECT MAX(b.BUY_PRICE) 
1270
                                      FROM TR_REQUEST_SHOP_DOC_DT A 
1271
                                      LEFT JOIN ASS_MASTER B ON A.ASS_ID = B.ASSET_ID 
1272
                                      WHERE A.REQ_DOC_ID = @REQ_ID)
1273
IF(@PRICE_OF_ASSET > 30000000)
1274
BEGIN
1275
      IF(EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS prp WHERE prp.REQ_ID = @REQ_ID AND prp.PROCESS_ID = 'TTQLTS_D'))
1276
      BEGIN
1277
    	    SELECT ISNULL(A.NOTES,'') AS NOTES, E.TLFullName, ISNULL(D.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP 
1278
                                                                  WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'TTQLTS_D'
1279
                                                                  AND PP.CHECKER_ID = A.CHECKER_ID
1280
                                                                  ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
1281
          FROM PL_REQUEST_PROCESS A
1282
          LEFT JOIN CM_EMPLOYEE_LOG D ON A.CHECKER_ID = D.USER_DOMAIN
1283
          LEFT JOIN TL_USER E ON D.USER_DOMAIN = E.TLNANME
1284
          WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'TTQLTS_D' 
1285
      END
1286
END
1287

    
1288
--SHOW TABLE DVCM IT
1289
IF(@SHOW_TABLE_DVCM_IT IS NOT NULL)
1290
BEGIN
1291
    SELECT N'DVCMIT' AS MERGE_REGION
1292
END
1293

    
1294
--SHOW TABLE DVCM KHÁC
1295
IF(@SHOW_TABLE_DVCM_KHAC IS NOT NULL)
1296
BEGIN
1297
    SELECT N'DVCMKHAC' AS MERGE_REGION
1298
END
1299

    
1300
--SHOW TITLE ĐÁNH GIÁ CỦA ĐƠN VỊ CHUYÊN MÔN
1301
IF(@SHOW_TABLE_DVCM_IT IS NOT NULL OR @SHOW_TABLE_DVCM_KHAC IS NOT NULL)
1302
BEGIN
1303
    SELECT N'TITLEDVCM' AS MERGE_REGION
1304
END
1305
GO
1306
IF @@ERROR <> 0 SET NOEXEC ON
1307
GO
1308
PRINT N'Altering [dbo].[rpt_PYC_SUACHUA]'
1309
GO
1310
ALTER  PROC [dbo].[rpt_PYC_SUACHUA]
1311
@REQ_ID VARCHAR(15) = NULL
1312

    
1313
AS
1314
BEGIN
1315

    
1316
DECLARE 
1317
@SHOW_TABLE_DVCM_KHAC VARCHAR(1) = NULL,@SHOW_TABLE_DVCM_IT VARCHAR(1) = NULL
1318

    
1319

    
1320
--TABLE 0
1321
SELECT DISTINCT ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS STT, 
1322
am.ASSET_NAME AS ASS_NAME, 
1323
ISNULL(am.ASSET_CODE,am.ASS_CODE_TMP) AS ASSET_CODE,
1324
ISNULL(PB.DEP_NAME,ISNULL(TT.DEP_NAME,K.DEP_NAME))  AS DEP_NAME, 
1325
ce.EMP_NAME, '1' QTY_ETM, 
1326
B.REPAIR_REASON AS REQ_CONTENT
1327
FROM TR_REQUEST_SHOP_DOC A 
1328
LEFT JOIN TR_REQUEST_SHOP_DOC_DT B ON A.REQ_ID = B.REQ_DOC_ID
1329
LEFT JOIN CM_DEPARTMENT K ON B.SUBBRANCH_OLD = K.DEP_ID
1330
LEFT JOIN CM_DEPARTMENT TT ON B.FATHER_OLD = TT.DEP_ID
1331
LEFT JOIN CM_DEPARTMENT PB ON B.DEP_OLD = PB.DEP_ID
1332
LEFT JOIN ASS_MASTER am ON am.ASSET_ID = B.ASS_ID
1333
LEFT JOIN CM_EMPLOYEE ce ON B.EMP_ID = ce.EMP_ID 
1334
WHERE A.REQ_ID = @REQ_ID 
1335
  
1336

    
1337
--TABLE 1 DVCM KHOI CNTT
1338
IF(EXISTS(SELECT 1 
1339
          FROM TR_REQUEST_SHOP_COSTCENTER A
1340
          LEFT JOIN CM_DEPARTMENT B ON A.COST_ID = B.DEP_ID
1341
          WHERE A.REQ_ID = @REQ_ID AND B.DEP_CODE = '05J00'))
1342
BEGIN
1343
    SELECT TOP 1 A.ASS_STATUS, A.RE_CONTENT, A.NOTES, E.TLFullName AS SURVEY_STAFF, ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT(D.APPROVE_DT,'dd/MM/yyyy HH:mm:ss') AS POS_NAME 
1344
    FROM TR_REQUEST_SHOP_COSTCENTER A
1345
    LEFT JOIN CM_EMPLOYEE_LOG B ON A.MAKER_ID = B.USER_DOMAIN
1346
    LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
1347
    LEFT JOIN CM_DEPARTMENT cd ON A.COST_ID = cd.DEP_ID
1348
    LEFT JOIN PL_PROCESS D ON A.REQ_ID = D.REQ_ID AND D.PROCESS_ID = 'S_GDDVDVCM' AND A.MAKER_ID = D.CHECKER_ID
1349
    WHERE A.REQ_ID = @REQ_ID AND cd.DEP_CODE = '05J00'
1350

    
1351
    SET @SHOW_TABLE_DVCM_IT = '1'
1352
END
1353
ELSE
1354
BEGIN
1355
    SELECT '' ASS_STATUS, '' RE_CONTENT,'' NOTES, ''SURVEY_STAFF, '' POS_NAME
1356
END
1357
 
1358
--TABLE 2 DVCM KHAC
1359
IF(EXISTS(SELECT 1 
1360
          FROM TR_REQUEST_SHOP_COSTCENTER A
1361
          LEFT JOIN CM_DEPARTMENT B ON A.COST_ID = B.DEP_ID
1362
          WHERE A.REQ_ID = @REQ_ID AND B.DEP_CODE <> '05J00'))
1363
BEGIN
1364
    SELECT A.ASS_STATUS, A.RE_CONTENT, A.NOTES, E.TLFullName AS SURVEY_STAFF, ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1   PP.APPROVE_DT FROM PL_PROCESS PP 
1365
                                                                  WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'S_GDDVDVCM'
1366
                                                                  AND PP.CHECKER_ID = A.MAKER_ID
1367
                                                                  ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
1368
    FROM TR_REQUEST_SHOP_COSTCENTER A
1369
    LEFT JOIN CM_EMPLOYEE_LOG B ON A.MAKER_ID = B.USER_DOMAIN
1370
    LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
1371
    LEFT JOIN CM_DEPARTMENT cd ON A.COST_ID = cd.DEP_ID
1372
    WHERE A.REQ_ID = @REQ_ID AND cd.DEP_CODE <> '05J00'
1373
    ORDER BY A.COST_ID
1374

    
1375

    
1376
    SET @SHOW_TABLE_DVCM_KHAC = '1'
1377
END
1378
ELSE
1379
BEGIN
1380
    SELECT '' ASS_STATUS, '' RE_CONTENT,'' NOTES, ''SURVEY_STAFF, '' POS_NAME
1381
END
1382

    
1383
--TABLE 3 DANH GIA VA DE XUAT CUA P.QLTS 
1384
SELECT TOP 1 A.HO_NOTES, D.TLFullName, ISNULL(C.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1   PP.APPROVE_DT FROM PL_PROCESS PP 
1385
                                                                  WHERE PP.REQ_ID = A.REQ_ID AND (PP.PROCESS_ID = 'S_DVCM' OR PP.PROCESS_ID = 'S_TBP_QLTS')
1386
                                                                  AND PP.CHECKER_ID = PL.CHECKER_ID
1387
                                                                  ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
1388
FROM TR_REQUEST_SHOP_DOC A 
1389
LEFT JOIN PL_REQUEST_PROCESS PL ON A.REQ_ID = PL.REQ_ID AND PL.PROCESS_ID = 'QLTS_NL'
1390
LEFT JOIN CM_EMPLOYEE_LOG C ON PL.CHECKER_ID = C.USER_DOMAIN
1391
LEFT JOIN TL_USER D ON C.USER_DOMAIN = D.TLNANME
1392
--LEFT JOIN CM_EMPLOYEE D ON C.EMP_CODE = D.EMP_CODE
1393
WHERE A.REQ_ID = @REQ_ID 
1394

    
1395
--table 4 phe duyet dvcm khoi cntt
1396
IF(@SHOW_TABLE_DVCM_IT IS NOT NULL)
1397
BEGIN
1398
    IF (EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS A
1399
            LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
1400
            WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE = '05J00'))
1401
    BEGIN  
1402
    	    SELECT TOP 1 ISNULL(A.NOTES,'') AS NOTES, E.TLFullName, ISNULL(D.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP 
1403
                                                                  WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'DVCM_D'
1404
                                                                  AND PP.CHECKER_ID = A.CHECKER_ID
1405
                                                                  ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
1406
          FROM PL_REQUEST_PROCESS A
1407
          LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
1408
          LEFT JOIN CM_EMPLOYEE_LOG D ON A.CHECKER_ID = D.USER_DOMAIN
1409
          LEFT JOIN TL_USER E ON D.USER_DOMAIN = E.TLNANME
1410
          WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE = '05J00'
1411
          ORDER BY C.DEP_ID
1412
    END
1413
    ELSE
1414
    BEGIN
1415
        SELECT '' AS NOTES        
1416
    END
1417
END
1418
ELSE
1419
BEGIN
1420
SELECT N'' NOTES
1421
END
1422

    
1423
--table 5 PHÊ DUYỆT PHÒNG QLTS
1424
IF(EXISTS(SELECT 1
1425
        FROM  PL_REQUEST_PROCESS A
1426
        LEFT JOIN CM_EMPLOYEE_LOG B ON A.CHECKER_ID = B.USER_DOMAIN
1427
        LEFT JOIN TL_USER C ON B.USER_DOMAIN = C.TLNANME
1428
        --LEFT JOIN CM_EMPLOYEE C ON B.EMP_CODE = C.EMP_CODE
1429
        WHERE A.REQ_ID = @REQ_ID  AND A.PROCESS_ID = 'QLTS_D'))
1430
BEGIN
1431
    SELECT TOP 1 ISNULL(A.NOTES,'') AS NOTES, C.TLFullName, ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP 
1432
                                                                  WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'QLTS_D'
1433
                                                                  AND PP.CHECKER_ID = A.CHECKER_ID
1434
                                                                  ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME 
1435
    FROM  PL_REQUEST_PROCESS A
1436
    LEFT JOIN CM_EMPLOYEE_LOG B ON A.CHECKER_ID = B.USER_DOMAIN
1437
    LEFT JOIN TL_USER C ON B.USER_DOMAIN = C.TLNANME
1438
    --LEFT JOIN CM_EMPLOYEE C ON B.EMP_CODE = C.EMP_CODE
1439
    WHERE A.REQ_ID = @REQ_ID  AND A.PROCESS_ID = 'QLTS_D'
1440
    ORDER BY A.ID DESC
1441
END
1442
ELSE
1443
BEGIN
1444
    SELECT N'' NOTES
1445
END
1446

    
1447
--Phucvh table 6 USER TẠO DUYỆT
1448
SELECT TOP 1 C.TLFullName AS USER_CREATE, CHAR(13) + ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP1.APPROVE_DT FROM PL_PROCESS PP1 
1449
                                                                  WHERE PP1.REQ_ID = A.REQ_ID AND PP1.PROCESS_ID = 'S_DVKD'
1450
                                                                  AND PP1.CHECKER_ID = A.MAKER_ID
1451
                                                                  ORDER BY PP1.ID DESC),'dd/MM/yyyy HH:mm:ss') AS  POS_NAME, 
1452
E.TLFullName AS USER_APPROVE, CHAR(13) + ISNULL(D.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP1.APPROVE_DT FROM PL_PROCESS PP1 
1453
                                                                  WHERE PP1.REQ_ID = A.REQ_ID AND PP1.PROCESS_ID = 'DVKD_D'                                                                  
1454
                                                                  ORDER BY PP1.ID DESC),'dd/MM/yyyy HH:mm:ss')  AS POS_NAME_1
1455
FROM TR_REQUEST_SHOP_DOC A
1456
LEFT JOIN CM_EMPLOYEE_LOG B ON A.MAKER_ID = B.USER_DOMAIN --NGƯỜI TẠO
1457
LEFT JOIN TL_USER C ON B.USER_DOMAIN = C.TLNANME --NGƯỜI TẠO
1458
LEFT JOIN PL_REQUEST_PROCESS PP ON A.REQ_ID = PP.REQ_ID AND PP.PROCESS_ID = 'APPNEW'
1459
LEFT JOIN CM_EMPLOYEE_LOG D ON PP.CHECKER_ID = D.USER_DOMAIN --NGƯỜI DUYỆT
1460
LEFT JOIN TL_USER E ON D.USER_DOMAIN = E.TLNANME --NGƯỜI DUYỆT
1461
WHERE A.REQ_ID = @REQ_ID
1462

    
1463
--PHUCVH TABLE 7 SỐ PYC
1464
SELECT trsd.REQ_CODE FROM TR_REQUEST_SHOP_DOC trsd WHERE trsd.REQ_ID = @REQ_ID
1465

    
1466
--PHUCVH TABLE 8 NGÀY TDV DUYỆT
1467
SELECT TOP 1 N'Ngày ' +  CONVERT(VARCHAR(5),DAY(pp.APPROVE_DT)) + 
1468
            N' tháng ' + CONVERT(VARCHAR(5),MONTH(pp.APPROVE_DT)) + 
1469
            N' năm ' + CONVERT(VARCHAR(10),YEAR(pp.APPROVE_DT)) AS APPROVE_DT
1470
FROM PL_REQUEST_PROCESS pp WHERE pp.REQ_ID = @REQ_ID AND pp.PROCESS_ID = 'APPNEW' ORDER BY pp.ID DESC
1471

    
1472
END
1473

    
1474
--TABLE 9 PHÊ DUYỆT DVCM KHÁC
1475
IF(@SHOW_TABLE_DVCM_KHAC IS NOT NULL)
1476
BEGIN  
1477
    IF (EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS A
1478
            LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
1479
            WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE <> '05J00'))
1480
    BEGIN  
1481
    	    SELECT ISNULL(A.NOTES,'') AS NOTES, E.TLFullName, ISNULL(D.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP 
1482
                                                                  WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'DVCM_D'
1483
                                                                  AND PP.CHECKER_ID = A.CHECKER_ID
1484
                                                                  ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
1485
          FROM PL_REQUEST_PROCESS A
1486
          LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
1487
          LEFT JOIN CM_EMPLOYEE_LOG D ON A.CHECKER_ID = D.USER_DOMAIN
1488
          LEFT JOIN TL_USER E ON D.USER_DOMAIN = E.TLNANME
1489
          WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE <> '05J00'
1490
          ORDER BY C.DEP_ID
1491
    END
1492
    ELSE
1493
    BEGIN
1494
        SELECT '' AS NOTES
1495
        FROM TR_REQUEST_SHOP_COSTCENTER A
1496
        LEFT JOIN CM_DEPARTMENT C ON A.COST_ID = C.DEP_ID
1497
        WHERE A.REQ_ID = @REQ_ID AND C.DEP_CODE <> '05J00'
1498
    END   
1499
END
1500
ELSE
1501
BEGIN
1502
    SELECT N'' NOTES
1503
END
1504

    
1505
--TABLE 10 PHÊ DUYỆT TBP_QLTS
1506
SELECT TOP 1 ISNULL(A.NOTES,'') AS HO_NOTES, C.TLFullName, ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP 
1507
                                                              WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'TBP_D'
1508
                                                              AND PP.CHECKER_ID = A.CHECKER_ID
1509
                                                              ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME 
1510
FROM  PL_REQUEST_PROCESS A
1511
LEFT JOIN CM_EMPLOYEE_LOG B ON A.CHECKER_ID = B.USER_DOMAIN
1512
LEFT JOIN TL_USER C ON B.USER_DOMAIN = C.TLNANME
1513
--LEFT JOIN CM_EMPLOYEE C ON B.EMP_CODE = C.EMP_CODE
1514
WHERE A.REQ_ID = @REQ_ID  AND A.PROCESS_ID = 'TBP_D'
1515
ORDER BY A.ID DESC
1516

    
1517
--SHOW TABLE DVCM IT
1518
IF(@SHOW_TABLE_DVCM_IT IS NOT NULL)
1519
BEGIN
1520
    SELECT N'DVCMIT' AS MERGE_REGION
1521
    SET @SHOW_TABLE_DVCM_IT = '1'
1522
END
1523

    
1524
--SHOW TABLE DVCM KHÁC
1525
IF(@SHOW_TABLE_DVCM_KHAC IS NOT NULL)
1526
BEGIN
1527
    SELECT N'DVCMKHAC' AS MERGE_REGION
1528
END
1529

    
1530
--SHOW TITLE ĐÁNH GIÁ CỦA ĐƠN VỊ CHUYÊN MÔN
1531
IF(@SHOW_TABLE_DVCM_IT IS NOT NULL OR @SHOW_TABLE_DVCM_KHAC IS NOT NULL)
1532
BEGIN
1533
    SELECT N'TITLEDVCM' AS MERGE_REGION
1534
END
1535
GO
1536
IF @@ERROR <> 0 SET NOEXEC ON
1537
GO
1538
PRINT N'Altering [dbo].[rpt_PYC_THUHOI]'
1539
GO
1540
ALTER     PROC [dbo].[rpt_PYC_THUHOI]
1541
@REQ_ID VARCHAR(15) = NULL
1542

    
1543
AS
1544
BEGIN
1545

    
1546
DECLARE 
1547
@SHOW_TABLE_DVCM_KHAC VARCHAR(1) = NULL,@SHOW_TABLE_DVCM_IT VARCHAR(1) = NULL
1548

    
1549
--TABLE 0
1550
SELECT DISTINCT ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS STT, 
1551
am.ASSET_NAME AS ASS_NAME, 
1552
ISNULL(am.ASSET_CODE,am.ASS_CODE_TMP) AS ASSET_CODE,
1553
ISNULL(PB.DEP_NAME,ISNULL(TT.DEP_NAME,K.DEP_NAME))  AS DEP_NAME, 
1554
ce.EMP_NAME, '1' QTY_ETM, 
1555
CA.CONTENT AS REQ_CONTENT
1556
FROM TR_REQUEST_SHOP_DOC A 
1557
LEFT JOIN TR_REQUEST_DOC_ASSET_DT B ON A.REQ_ID = B.REQ_DOC_ID
1558
LEFT JOIN CM_ALLCODE CA ON B.REQ_ASSET_REASON = CA.CDVAL AND CA.CDNAME = 'REASON_ASS_REQ' AND CA.CDTYPE = 'REQ_ASSET'
1559
LEFT JOIN CM_DEPARTMENT K ON B.SUBBRANCH_OLD = K.DEP_ID
1560
LEFT JOIN CM_DEPARTMENT TT ON B.FATHER_OLD = TT.DEP_ID
1561
LEFT JOIN CM_DEPARTMENT PB ON B.DEP_OLD = PB.DEP_ID
1562
LEFT JOIN ASS_MASTER am ON am.ASSET_ID = B.ASSET_ID
1563
LEFT JOIN CM_EMPLOYEE ce ON B.EMP_OLD = ce.EMP_ID 
1564
WHERE A.REQ_ID = @REQ_ID 
1565
  
1566
--TABLE 1 DVCM KHOI CNTT
1567
IF(EXISTS(SELECT 1 
1568
          FROM TR_REQUEST_SHOP_COSTCENTER A
1569
          LEFT JOIN CM_DEPARTMENT B ON A.COST_ID = B.DEP_ID
1570
          WHERE A.REQ_ID = @REQ_ID AND B.DEP_CODE = '05J00'))
1571
BEGIN
1572
    SELECT DISTINCT A.ASS_STATUS, A.RE_CONTENT, A.NOTES, E.TLFullName AS SURVEY_STAFF, ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT(D.APPROVE_DT,'dd/MM/yyyy HH:mm:ss') AS POS_NAME
1573
    FROM TR_REQUEST_SHOP_COSTCENTER A
1574
    LEFT JOIN CM_EMPLOYEE_LOG B ON A.MAKER_ID = B.USER_DOMAIN
1575
    LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
1576
    LEFT JOIN CM_DEPARTMENT cd ON A.COST_ID = cd.DEP_ID
1577
    LEFT JOIN PL_PROCESS D ON A.REQ_ID = D.REQ_ID AND D.PROCESS_ID = 'S_GDDVDVCM' AND A.MAKER_ID = D.CHECKER_ID
1578
    WHERE A.REQ_ID = @REQ_ID AND cd.DEP_CODE = '05J00'
1579

    
1580
    SET @SHOW_TABLE_DVCM_IT = '1'
1581
END
1582
ELSE
1583
BEGIN
1584
    SELECT '' ASS_STATUS, '' RE_CONTENT,'' NOTES, ''SURVEY_STAFF, '' POS_NAME
1585
END
1586
 
1587
--TABLE 2 DVCM KHAC
1588
IF(EXISTS(SELECT 1 
1589
          FROM TR_REQUEST_SHOP_COSTCENTER A
1590
          LEFT JOIN CM_DEPARTMENT B ON A.COST_ID = B.DEP_ID
1591
          WHERE A.REQ_ID = @REQ_ID AND B.DEP_CODE <> '05J00'))
1592
BEGIN
1593
    SELECT A.ASS_STATUS, A.RE_CONTENT, A.NOTES, E.TLFullName AS SURVEY_STAFF, ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1   PP.APPROVE_DT FROM PL_PROCESS PP 
1594
                                                                  WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'S_GDDVDVCM'
1595
                                                                  AND PP.CHECKER_ID = A.MAKER_ID
1596
                                                                  ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
1597
    FROM TR_REQUEST_SHOP_COSTCENTER A
1598
    LEFT JOIN CM_EMPLOYEE_LOG B ON A.MAKER_ID = B.USER_DOMAIN
1599
    LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
1600
    LEFT JOIN CM_DEPARTMENT cd ON A.COST_ID = cd.DEP_ID
1601
    WHERE A.REQ_ID = @REQ_ID AND cd.DEP_CODE <> '05J00'
1602
    ORDER BY A.COST_ID
1603

    
1604
    SET @SHOW_TABLE_DVCM_KHAC = '1'
1605
END
1606
ELSE
1607
BEGIN
1608
    SELECT '' ASS_STATUS, '' RE_CONTENT,'' NOTES, ''SURVEY_STAFF, '' POS_NAME
1609
END
1610

    
1611
--TABLE 3 DANH GIA VA DE XUAT CUA P.QLTS 
1612
SELECT TOP 1 A.HO_NOTES, D.TLFullName, ISNULL(C.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1   PP.APPROVE_DT FROM PL_PROCESS PP 
1613
                                                                  WHERE PP.REQ_ID = A.REQ_ID AND (PP.PROCESS_ID = 'S_DVCM' OR PP.PROCESS_ID = 'S_TBP_QLTS')
1614
                                                                  AND PP.CHECKER_ID = PL.CHECKER_ID
1615
                                                                  ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
1616
FROM TR_REQUEST_SHOP_DOC A 
1617
LEFT JOIN PL_REQUEST_PROCESS PL ON A.REQ_ID = PL.REQ_ID AND PL.PROCESS_ID = 'QLTS_N'
1618
LEFT JOIN CM_EMPLOYEE_LOG C ON PL.CHECKER_ID = C.USER_DOMAIN
1619
LEFT JOIN TL_USER D ON C.USER_DOMAIN = D.TLNANME
1620
WHERE A.REQ_ID = @REQ_ID 
1621

    
1622
--TABLE 4 PHE DUYET DVCM KHOI CNTT
1623
IF(@SHOW_TABLE_DVCM_IT IS NOT NULL)
1624
BEGIN
1625
    IF (EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS A
1626
            LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
1627
            WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE = '05J00'))
1628
    BEGIN  
1629
    	    SELECT TOP 1 ISNULL(A.NOTES,'') AS NOTES, E.TLFullName, ISNULL(D.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP 
1630
                                                                  WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'DVCM_D'
1631
                                                                  AND PP.CHECKER_ID = A.CHECKER_ID
1632
                                                                  ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
1633
          FROM PL_REQUEST_PROCESS A
1634
          LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
1635
          LEFT JOIN CM_EMPLOYEE_LOG D ON A.CHECKER_ID = D.USER_DOMAIN
1636
          LEFT JOIN TL_USER E ON D.USER_DOMAIN = E.TLNANME
1637
          WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE = '05J00'
1638
          ORDER BY C.DEP_ID
1639
    END
1640
    ELSE
1641
    BEGIN
1642
        SELECT '' AS NOTES        
1643
    END
1644
END
1645
ELSE
1646
BEGIN
1647
SELECT N'' NOTES
1648
END
1649

    
1650
--table 5 PHÊ DUYỆT PHÒNG QLTS
1651
IF(EXISTS(SELECT 1
1652
        FROM  PL_REQUEST_PROCESS A
1653
        LEFT JOIN CM_EMPLOYEE_LOG B ON A.CHECKER_ID = B.USER_DOMAIN
1654
        LEFT JOIN TL_USER C ON B.USER_DOMAIN = C.TLNANME        
1655
        WHERE A.REQ_ID = @REQ_ID  AND A.PROCESS_ID = 'QLTS_D'))
1656
BEGIN
1657
    SELECT TOP 1 ISNULL(A.NOTES,'') AS NOTES, C.TLFullName, ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP 
1658
                                                                  WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'QLTS_D'
1659
                                                                  AND PP.CHECKER_ID = A.CHECKER_ID
1660
                                                                  ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME 
1661
    FROM  PL_REQUEST_PROCESS A
1662
    LEFT JOIN CM_EMPLOYEE_LOG B ON A.CHECKER_ID = B.USER_DOMAIN
1663
    LEFT JOIN TL_USER C ON B.USER_DOMAIN = C.TLNANME    
1664
    WHERE A.REQ_ID = @REQ_ID  AND A.PROCESS_ID = 'QLTS_D'
1665
END
1666
ELSE
1667
BEGIN
1668
    SELECT N'' NOTES
1669
END
1670

    
1671
--Phucvh table 6 USER TẠO DUYỆT
1672
SELECT TOP 1 C.TLFullName AS USER_CREATE, CHAR(13) + ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP1.APPROVE_DT FROM PL_PROCESS PP1 
1673
                                                                  WHERE PP1.REQ_ID = A.REQ_ID AND PP1.PROCESS_ID = 'S_DVKD'
1674
                                                                  AND PP1.CHECKER_ID = A.MAKER_ID
1675
                                                                  ORDER BY PP1.ID DESC),'dd/MM/yyyy HH:mm:ss') AS  POS_NAME, 
1676
E.TLFullName AS USER_APPROVE, CHAR(13) + ISNULL(D.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP1.APPROVE_DT FROM PL_PROCESS PP1 
1677
                                                                  WHERE PP1.REQ_ID = A.REQ_ID AND PP1.PROCESS_ID = 'DVKD_D'                                                                  
1678
                                                                  ORDER BY PP1.ID DESC),'dd/MM/yyyy HH:mm:ss')  AS POS_NAME_1
1679
FROM TR_REQUEST_SHOP_DOC A
1680
LEFT JOIN CM_EMPLOYEE_LOG B ON A.MAKER_ID = B.USER_DOMAIN --NGƯỜI TẠO
1681
LEFT JOIN TL_USER C ON B.USER_DOMAIN = C.TLNANME --NGƯỜI TẠO
1682
LEFT JOIN PL_REQUEST_PROCESS PP ON A.REQ_ID = PP.REQ_ID AND PP.PROCESS_ID = 'APPNEW'
1683
LEFT JOIN CM_EMPLOYEE_LOG D ON PP.CHECKER_ID = D.USER_DOMAIN --NGƯỜI DUYỆT
1684
LEFT JOIN TL_USER E ON D.USER_DOMAIN = E.TLNANME --NGƯỜI DUYỆT
1685
WHERE A.REQ_ID = @REQ_ID
1686
ORDER BY PP.ID DESC
1687

    
1688
--PHUCVH TABLE 7 SỐ PYC
1689
SELECT trsd.REQ_CODE FROM TR_REQUEST_SHOP_DOC trsd WHERE trsd.REQ_ID = @REQ_ID
1690

    
1691
--PHUCVH TABLE 8 NGÀY TDV DUYỆT
1692
SELECT TOP 1 N'Ngày ' +  CONVERT(VARCHAR(5),DAY(pp.APPROVE_DT)) + 
1693
            N' tháng ' + CONVERT(VARCHAR(5),MONTH(pp.APPROVE_DT)) + 
1694
            N' năm ' + CONVERT(VARCHAR(10),YEAR(pp.APPROVE_DT)) AS APPROVE_DT
1695
FROM PL_REQUEST_PROCESS pp WHERE pp.REQ_ID = @REQ_ID AND pp.PROCESS_ID = 'APPNEW' ORDER BY pp.ID DESC
1696
END
1697

    
1698
--TABLE 9 PHÊ DUYỆT DVCM KHÁC
1699
IF(@SHOW_TABLE_DVCM_KHAC IS NOT NULL)
1700
BEGIN  
1701
    IF (EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS A
1702
            LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
1703
            WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE <> '05J00'))
1704
    BEGIN  
1705
    	    SELECT ISNULL(A.NOTES,'') AS NOTES, E.TLFullName, ISNULL(D.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP 
1706
                                                                  WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'DVCM_D'
1707
                                                                  AND PP.CHECKER_ID = A.CHECKER_ID
1708
                                                                  ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
1709
          FROM PL_REQUEST_PROCESS A
1710
          LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
1711
          LEFT JOIN CM_EMPLOYEE_LOG D ON A.CHECKER_ID = D.USER_DOMAIN
1712
          LEFT JOIN TL_USER E ON D.USER_DOMAIN = E.TLNANME
1713
          WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE <> '05J00'
1714
          ORDER BY C.DEP_ID
1715
    END
1716
    ELSE
1717
    BEGIN
1718
        SELECT '' AS NOTES
1719
        FROM TR_REQUEST_SHOP_COSTCENTER A
1720
        LEFT JOIN CM_DEPARTMENT C ON A.COST_ID = C.DEP_ID
1721
        WHERE A.REQ_ID = @REQ_ID AND C.DEP_CODE <> '05J00'
1722
    END   
1723
END
1724
ELSE
1725
BEGIN
1726
    SELECT N'' NOTES
1727
END
1728

    
1729
--TABLE 10 PHÊ DUYỆT TBP_QLTS
1730
SELECT TOP 1 ISNULL(A.NOTES,'') AS HO_NOTES, C.TLFullName, ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP 
1731
                                                              WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'TBP_D'
1732
                                                              AND PP.CHECKER_ID = A.CHECKER_ID
1733
                                                              ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME 
1734
FROM  PL_REQUEST_PROCESS A
1735
LEFT JOIN CM_EMPLOYEE_LOG B ON A.CHECKER_ID = B.USER_DOMAIN
1736
LEFT JOIN TL_USER C ON B.USER_DOMAIN = C.TLNANME    
1737
WHERE A.REQ_ID = @REQ_ID  AND A.PROCESS_ID = 'TBP_D'
1738

    
1739
--SHOW TABLE DVCM IT
1740
IF(@SHOW_TABLE_DVCM_IT IS NOT NULL)
1741
BEGIN
1742
    SELECT N'DVCMIT' AS MERGE_REGION    
1743
END
1744

    
1745
--SHOW TABLE DVCM KHÁC
1746
IF(@SHOW_TABLE_DVCM_KHAC IS NOT NULL)
1747
BEGIN
1748
    SELECT N'DVCMKHAC' AS MERGE_REGION
1749
END
1750

    
1751
--SHOW TITLE ĐÁNH GIÁ CỦA ĐƠN VỊ CHUYÊN MÔN
1752
IF(@SHOW_TABLE_DVCM_IT IS NOT NULL OR @SHOW_TABLE_DVCM_KHAC IS NOT NULL)
1753
BEGIN
1754
    SELECT N'TITLEDVCM' AS MERGE_REGION
1755
END
1756
GO
1757
IF @@ERROR <> 0 SET NOEXEC ON
1758
GO
1759
PRINT N'Altering [dbo].[TR_REQUEST_SHOP_DOC_Search]'
1760
GO
1761
ALTER PROCEDURE [dbo].[TR_REQUEST_SHOP_DOC_Search]
1762
@p_REQ_ID	varchar(15)  = NULL,
1763
@p_REQ_CODE	nvarchar(100)  = NULL,
1764
@p_REQ_NAME	nvarchar(200)  = NULL,
1765
@p_REQ_DT	VARCHAR(20) = NULL,
1766
@p_REQ_TYPE	varchar(20) = NULL,
1767
@p_REQ_CONTENT NVARCHAR(1000)=NULL,
1768
@p_TOTAL_AMT	decimal = NULL,
1769
@p_NOTES	nvarchar(1000)  = NULL,
1770
@p_RECORD_STATUS	varchar(1)  = NULL,
1771
@p_MAKER_ID NVARCHAR(100)  = NULL,
1772
@p_CREATE_DT	VARCHAR(20) = NULL,
1773
@p_AUTH_STATUS	varchar(50)  = NULL,
1774
@p_CHECKER_ID VARCHAR(100)  = NULL,
1775
@p_APPROVE_DT	VARCHAR(20) = NULL,
1776
@p_RECEIVE_BRANCH VARCHAR(15) = NULL,
1777
@p_USERNAME VARCHAR(100) = NULL,
1778
@p_BRANCH_ID VARCHAR(15)=NULL,
1779
@p_DEP_ID VARCHAR(15)=NULL,
1780
@p_STATUS  VARCHAR(15)=NULL,
1781
@p_TOP	INT = 10,
1782
@p_DVKD_MANAGE_APP_FROM	VARCHAR(20) = NULL,
1783
@p_DVKD_MANAGE_APP_TO	VARCHAR(20) = NULL,
1784
@p_REGION_ID varchar(15)  = NULL,
1785
@p_CDTYPE_PYC VARCHAR(20) = NULL --Phucvh Truyền thêm CDTYPE để xác định loại PYC
1786

    
1787

    
1788
AS
1789
BEGIN -- PAGING
1790
    DECLARE @ROLE_KT VARCHAR(50) = (SELECT TU.RoleName FROM TL_USER TU WHERE TU.TLNANME = @p_USERNAME)
1791
	DECLARE @DEP_ID VARCHAR(20),@BRANCH_ID VARCHAR(20)
1792
	DECLARE  @ROLE_LOGIN TABLE(ROLE_USER VARCHAR(20), BRANCH_ID VARCHAR(20), DEP_ID VARCHAR(20))
1793
--	INSERT INTO @ROLE_LOGIN SELECT DisplayName AS ROLE_USER FROM AbpRoles WHERE Id IN (SELECT A.RoleId FROM AbpUserRoles A 
1794
--																		LEFT JOIN TL_USER B ON A.UserId = B.ID
1795
--																		WHERE B.TLNANME = @p_USERNAME)
1796
  INSERT INTO @ROLE_LOGIN
1797
  SELECT tugr.ROLE_ID, tugr.BRANCH_ID, tugr.DEPT_ID FROM dbo.TL_USER_GET_ROLES(@p_USERNAME) tugr
1798
	SET @DEP_ID= (SELECT DEP_ID FROM dbo.TL_USER WHERE TLNANME=@p_USERNAME)
1799
	SET @BRANCH_ID= (SELECT TLSUBBRID FROM dbo.TL_USER WHERE TLNANME=@p_USERNAME)
1800
	DECLARE @lstCOST TABLE
1801
	(
1802
		COST_ID VARCHAR(20)
1803
	)
1804
	INSERT INTO @lstCOST
1805
	SELECT COST_ID FROM dbo.CM_COSTCENTER_DT WHERE BRANCH_ID=@BRANCH_ID AND DEP_ID=@DEP_ID
1806
	-- TienLee 11/14/21 --
1807
	
1808
	--
1809

    
1810
	DECLARE @TempSTATUS   TABLE
1811
	(
1812
		STATUS VARCHAR(20)
1813
	)
1814

    
1815
	IF(EXISTS(SELECT ROLE_USER FROM @ROLE_LOGIN WHERE ROLE_USER ='QLTS' ))
1816
	BEGIN
1817
		INSERT INTO @TempSTATUS VALUES('DVKD')
1818
		INSERT INTO @TempSTATUS VALUES('DVCM')
1819
	END
1820
	ELSE IF(EXISTS(SELECT ROLE_USER FROM @ROLE_LOGIN WHERE ROLE_USER ='DVCM' ))
1821
	BEGIN
1822
		INSERT INTO @TempSTATUS VALUES('QLTS_N')
1823
		INSERT INTO @TempSTATUS VALUES('DVCM')
1824
	END
1825
	ELSE IF(EXISTS(SELECT ROLE_USER FROM @ROLE_LOGIN WHERE ROLE_USER ='CVMS' ))
1826
	BEGIN
1827
		INSERT INTO @TempSTATUS VALUES('QLTS_N')
1828
		INSERT INTO @TempSTATUS VALUES('QLTS_XL')
1829
		INSERT INTO @TempSTATUS VALUES('DVCM')
1830
	END
1831

    
1832
		DECLARE @lstBRANCH_DEP TABLE
1833
	(
1834
		BRANCH_ID VARCHAR(20),
1835
		DEP_ID VARCHAR(20)
1836
	) 
1837

    
1838
--	IF(NOT EXISTS(SELECT ROLE_USER FROM @ROLE_LOGIN WHERE ROLE_USER ='DVCM' OR ROLE_USER='CVMS_TBP' ))
1839
--	BEGIN
1840
--		INSERT INTO @lstBRANCH_DEP
1841
--		(BRANCH_ID,DEP_ID)
1842
--		SELECT TLSUBBRID,DEP_ID FROM dbo.TL_USER WHERE TLNANME=@p_USERNAME 
1843
--
1844
--		INSERT INTO @lstBRANCH_DEP
1845
--		(BRANCH_ID,DEP_ID)
1846
--		SELECT BRANCH_ID,DEP_ID FROM dbo.CM_KHOI_DT
1847
--		WHERE KHOI_ID IN (SELECT KHOI_ID FROM dbo.CM_KHOI_DT WHERE DEP_ID= @DEP_ID AND BRANCH_ID=@BRANCH_ID)
1848
--	END
1849
--
1850
--
1851
--
1852
--  DECLARE @tbDep TABLE(DEP_ID VARCHAR(20))
1853
--INSERT INTO @tbDep
1854
--SELECT ckd.DEP_ID FROM CM_DEPARTMENT cd
1855
----LEFT JOIN CM_KHOI ck ON cd.DEP_CODE=ck.KHOI_CODE
1856
----LEFT JOIN CM_KHOI_DT ckd ON ck.KHOI_ID = ckd.KHOI_ID
1857
--WHERE cd.DEP_ID=@p_DEP_ID
1858

    
1859
DECLARE @REQ_ID_Temp TABLE(REQ_ID VARCHAR(20))
1860
INSERT INTO @REQ_ID_Temp
1861
SELECT A.REQ_ID FROM TR_REQUEST_SHOP_DOC A
1862
LEFT JOIN PL_REQUEST_PROCESS B ON A.REQ_ID = B.REQ_ID AND B.STATUS = 'C'
1863
WHERE (EXISTS(SELECT RL.ROLE_USER FROM @ROLE_LOGIN RL WHERE RL.BRANCH_ID = B.BRANCH_ID
1864
    AND (B.BRANCH_ID = 'DV0001' AND B.DEP_ID = RL.DEP_ID OR B.BRANCH_ID <> 'DV0001')
1865
    AND RL.ROLE_USER = B.ROLE_USER)
1866
  OR EXISTS(SELECT * FROM @ROLE_LOGIN RL
1867
    JOIN PL_REQUEST_PROCESS C ON C.REQ_ID = A.REQ_ID AND C.STATUS = 'P' AND RL.BRANCH_ID = C.BRANCH_ID
1868
    AND (C.BRANCH_ID = 'DV0001' AND C.DEP_ID = RL.DEP_ID OR C.BRANCH_ID <> 'DV0001')
1869
    AND RL.ROLE_USER = C.ROLE_USER)
1870
  OR A.MAKER_ID = @p_USERNAME)
1871
GROUP BY A.REQ_ID
1872

    
1873
	IF((EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_SLAS' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN))))
1874
	BEGIN
1875
		IF(@p_TOP IS NULL OR @p_TOP = '' OR @p_TOP = 0)
1876
			BEGIN
1877
			-- PAGING BEGIN
1878
				SELECT A.REQ_ID,
1879
					   A.REQ_CODE,
1880
					   A.REQ_NAME,
1881
					   --ISNULL(PRP.APPROVE_DT,PRP2.APPROVE_DT) AS REQ_DT,
1882
                       A.REQ_DT,
1883
					   A.REQ_TYPE,
1884
					   A.REQ_CONTENT,
1885
					   A.TOTAL_AMT,
1886
					   A.NOTES,
1887
					   A.RECORD_STATUS,
1888
					   A.MAKER_ID,
1889
					   A.CREATE_DT,
1890
					   A.AUTH_STATUS,
1891
					   A.CHECKER_ID,
1892
					   A.APPROVE_DT,
1893
					   A.BRANCH_ID,
1894
                       CASE WHEN A.REQ_TYPE = 'CPTS' AND A.IS_DONE = '1' AND A.STATUS = 'DONE' THEN 'APPROVE' ELSE A.STATUS END AS STATUS,
1895
					   A.DEP_ID,
1896
					   A.HO_NOTES, K.CONTENT AS REQ_TYPE_NAME, 
1897
                       --I.CONTENT AS REQ_STATUS_NAME,
1898
                       CASE WHEN A.IS_DONE = '1' AND A.STATUS = 'APPROVE' THEN N'Hoàn tất' 
1899
                       ELSE I.CONTENT
1900
                       END REQ_STATUS_NAME,
1901
						 @p_RECEIVE_BRANCH AS RECEIVE_BRANCH,G.BRANCH_CODE,
1902
             CASE 
1903
             	WHEN A.DEP_ID IS NOT NULL AND A.DEP_ID <> '' THEN G.BRANCH_NAME + ' - ' + CD.DEP_NAME
1904
             	 ELSE G.BRANCH_NAME
1905
             END AS BRANCH_NAME,
1906
						--CASE WHEN  RQT.STATUS = 'C' OR RQT.STATUS = 'U' THEN N'Chờ duyệt' 
1907
						--ELSE N'Đã duyệt' END AS AUTH_STATUS_NAME
1908
						D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME,
1909
            I.CONTENT AS REQ_TYPE_NAME,
1910
             CASE WHEN A.STATUS = 'APPROVE'AND A.AUTH_STATUS = 'A' AND DATEDIFF(DAY,GETDATE(),DATEADD(DAY,CONVERT(INT,SP.ParaValue),A.SEND_APP_DT)) < 0 THEN '#f2dede' ELSE ''
1911
            END AS COLOR
1912
						--D.AUTH_STATUS_NAME 
1913
				-- SELECT END
1914
				FROM TR_REQUEST_SHOP_DOC A
1915

    
1916
				LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS 
1917
				LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
1918
				LEFT JOIN CM_ALLCODE K ON K.CDNAME = 'TRREQASSTYPE' AND K.CDVAL = A.REQ_TYPE
1919
				LEFT JOIN CM_ALLCODE I ON I.CDNAME = 'TRREQSTATUS' AND I.CDVAL = A.[STATUS] AND I.CDTYPE = @p_CDTYPE_PYC
1920
--        LEFT JOIN PL_REQUEST_PROCESS prp1 ON prp1.REQ_ID = A.REQ_ID AND prp1.STATUS = 'C'
1921
				--LEFT JOIN dbo.CM_AUTH_STATUS AUTH ON AUTH.AUTH_STATUS = A.AUTH_STATUS
1922
				--LEFT JOIN dbo.PL_REQUEST_PROCESS RQT ON RQT.REQ_ID = A.REQ_ID 
1923
				--AND (((RQT.PROCESS_ID = A.STATUS AND  RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR (RQT.PROCESS_ID = A.STATUS AND EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN))))
1924
				--LEFT JOIN dbo.PL_REQUEST_PROCESS PRP1 ON PRP1.REQ_ID = A.REQ_ID  AND PRP1.PROCESS_ID = 'CVMS_N'
1925
				--LEFT JOIN dbo.PL_REQUEST_PROCESS PRP2 ON PRP2.REQ_ID = A.REQ_ID  AND PRP2.PROCESS_ID = 'DVKD'
1926
				
1927
				LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=A.MAKER_ID
1928
        LEFT JOIN SYS_PARAMETERS SP ON 1=1 AND SP.ParaKey = 'NUM_OF_DAYS_LATE'
1929
        LEFT JOIN CM_DEPARTMENT CD ON A.DEP_ID = CD.DEP_ID
1930
				WHERE 1 = 1
1931
				AND (G.REGION_ID LIKE '%' + @p_REGION_ID + '%' OR @p_REGION_ID IS NULL OR @p_REGION_ID = '')
1932
--				AND (CONVERT(DATETIME,@p_DVKD_MANAGE_APP_FROM,103) <= CAST (PRP2.RECEPTION_DT AS DATE)  OR @p_DVKD_MANAGE_APP_FROM IS NULL OR @p_DVKD_MANAGE_APP_FROM = '')
1933
--				AND (DATEADD(day,1,CONVERT(DATETIME,@p_DVKD_MANAGE_APP_TO,103)) > CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_TO IS NULL OR @p_DVKD_MANAGE_APP_TO = '')
1934
		        AND (@p_DVKD_MANAGE_APP_FROM IS NULL AND @p_DVKD_MANAGE_APP_TO IS NULL OR
1935
            	@p_DVKD_MANAGE_APP_TO IS NULL AND (CONVERT(DATE, A.REQ_DT, 103)) >= (CONVERT(DATE, @p_DVKD_MANAGE_APP_FROM, 103)) 
1936
            	OR  @p_DVKD_MANAGE_APP_FROM IS NULL AND (CONVERT(DATE, A.REQ_DT, 103)) <= (CONVERT(DATE, @p_DVKD_MANAGE_APP_TO, 103)) 
1937
            	OR (CONVERT(DATE, A.REQ_DT, 103)) >=  (CONVERT(DATE, @p_DVKD_MANAGE_APP_FROM, 103)) AND (CONVERT(DATE, A.REQ_DT, 103)) <= (CONVERT(DATE, @p_DVKD_MANAGE_APP_TO, 103))
1938
            	)
1939
				--AND (((RQT.PROCESS_ID = A.STATUS AND  RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN)))
1940
				--AND ((@p_AUTH_STATUS = 'U' AND (RQT.STATUS = 'C' OR RQT.STATUS = 'U')) OR (@p_AUTH_STATUS = 'A' AND (RQT.STATUS = 'P' OR RQT.STATUS IS NULL))OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = ''))		
1941
				AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' 
1942
            --OR A.REQ_ID LIKE '%' + @p_REQ_CODE + '%'
1943
            OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
1944
				AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
1945
				AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
1946
				AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
1947
				--AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI  OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
1948
				AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
1949
				AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
1950
				
1951
				AND (DATEDIFF(DAY,A.CREATE_DT , CONVERT(DATETIME,@p_CREATE_DT,103)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
1952
--				AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
1953
				AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
1954
				AND (DATEDIFF(DAY,A.APPROVE_DT , CONVERT(DATETIME,@p_APPROVE_DT,103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')		
1955
				AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE = '')
1956
				AND (A.STATUS IN ('NEW','REJECT') AND A.MAKER_ID = @p_USERNAME OR A.STATUS NOT IN ('NEW','REJECT')
1957
            OR EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS',NULL,NULL) US
1958
                WHERE US.TLNANME = @p_USERNAME))
1959
        AND (@p_STATUS IS NULL OR @p_STATUS = '' OR A.STATUS = @p_STATUS)
1960
        AND (EXISTS(SELECT 1 FROM @REQ_ID_Temp RL WHERE RL.REQ_ID = A.REQ_ID) 
1961
              OR (@ROLE_KT IN ('GDV','KSV') AND A.AUTH_STATUS = 'A' ) 
1962
              OR EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS',NULL,NULL) US
1963
                WHERE US.TLNANME = @p_USERNAME))
1964

    
1965
				AND A.RECORD_STATUS = '1'
1966
				AND (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' OR A.BRANCH_ID = @p_BRANCH_ID)
1967
				AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI  OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
1968
				AND( TU.TLFullName COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI  OR TU.TLNANME COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI 
1969
				 OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
1970

    
1971
				ORDER BY A.REQ_DT DESC
1972
			-- PAGING END
1973
			END
1974
		   ELSE 
1975
		   BEGIN
1976
		   -- PAGING BEGIN
1977
				SELECT TOP(CONVERT(INT,@p_TOP))  A.REQ_ID,
1978
					   A.REQ_CODE,
1979
					   A.REQ_NAME,
1980
					   --ISNULL(PRP.APPROVE_DT,PRP2.APPROVE_DT) AS REQ_DT,
1981
                       A.REQ_DT,
1982
					   A.REQ_TYPE,
1983
					   A.REQ_CONTENT,
1984
					   A.TOTAL_AMT,
1985
					   A.NOTES,
1986
					   A.RECORD_STATUS,
1987
					   A.MAKER_ID,
1988
					   A.CREATE_DT,
1989
					   A.AUTH_STATUS,
1990
					   A.CHECKER_ID,
1991
					   A.APPROVE_DT,
1992
					   A.BRANCH_ID,
1993
                       CASE WHEN A.REQ_TYPE = 'CPTS' AND A.IS_DONE = '1' AND A.STATUS = 'DONE' THEN 'APPROVE' ELSE A.STATUS END AS STATUS,
1994
					   A.DEP_ID,
1995
					   A.HO_NOTES, K.CONTENT AS REQ_TYPE_NAME, 
1996
                       --I.CONTENT AS REQ_STATUS_NAME,
1997
                       CASE WHEN A.IS_DONE = '1' AND A.STATUS = 'APPROVE' THEN N'Hoàn tất' 
1998
                       ELSE I.CONTENT
1999
                       END REQ_STATUS_NAME,
2000
						 @p_RECEIVE_BRANCH AS RECEIVE_BRANCH,G.BRANCH_CODE,
2001
              CASE 
2002
             	WHEN A.DEP_ID IS NOT NULL AND A.DEP_ID <> '' THEN G.BRANCH_NAME + ' - ' + CD.DEP_NAME
2003
             	 ELSE G.BRANCH_NAME
2004
              END AS BRANCH_NAME,
2005
						--CASE WHEN  RQT.STATUS = 'C' OR RQT.STATUS = 'U' THEN N'Chờ duyệt' 
2006
						--ELSE N'Đã duyệt' END AS AUTH_STATUS_NAME
2007
						D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME,
2008
            I.CONTENT AS REQ_TYPE_NAME,
2009
             CASE WHEN A.STATUS = 'APPROVE'AND A.AUTH_STATUS = 'A' AND DATEDIFF(DAY,GETDATE(),DATEADD(DAY,CONVERT(INT,SP.ParaValue),A.SEND_APP_DT)) < 0 THEN '#f2dede' ELSE ''
2010
            END AS COLOR
2011
						--D.AUTH_STATUS_NAME 
2012
				-- SELECT END
2013
				FROM TR_REQUEST_SHOP_DOC A
2014

    
2015
				LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS 
2016
				LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
2017
				LEFT JOIN CM_ALLCODE K ON K.CDNAME = 'TRREQASSTYPE' AND K.CDVAL = A.REQ_TYPE
2018
				LEFT JOIN CM_ALLCODE I ON I.CDNAME = 'TRREQSTATUS' AND I.CDVAL = A.[STATUS] AND I.CDTYPE = @p_CDTYPE_PYC
2019
--        LEFT JOIN PL_REQUEST_PROCESS prp1 ON prp1.REQ_ID = A.REQ_ID AND prp1.STATUS = 'C'
2020
				 
2021
				--LEFT JOIN dbo.CM_AUTH_STATUS AUTH ON AUTH.AUTH_STATUS = A.AUTH_STATUS
2022
				--LEFT JOIN dbo.PL_REQUEST_PROCESS RQT ON RQT.REQ_ID = A.REQ_ID 
2023
				--AND (((RQT.PROCESS_ID = A.STATUS AND  RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR (RQT.PROCESS_ID = A.STATUS AND EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN))))
2024
				--LEFT JOIN dbo.PL_REQUEST_PROCESS PRP1 ON PRP1.REQ_ID = A.REQ_ID  AND PRP1.PROCESS_ID = 'CVMS_N'
2025
				LEFT JOIN dbo.PL_REQUEST_PROCESS PRP2 ON PRP2.REQ_ID = A.REQ_ID  AND PRP2.PROCESS_ID = 'DVKD'
2026
				
2027
				LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=A.MAKER_ID
2028
        LEFT JOIN SYS_PARAMETERS SP ON 1=1 AND SP.ParaKey = 'NUM_OF_DAYS_LATE'
2029
        LEFT JOIN CM_DEPARTMENT CD ON A.DEP_ID = CD.DEP_ID
2030
				WHERE 1 = 1
2031
				AND (G.REGION_ID LIKE '%' + @p_REGION_ID + '%' OR @p_REGION_ID IS NULL OR @p_REGION_ID = '')
2032
			--	AND (CONVERT(DATETIME,@p_DVKD_MANAGE_APP_FROM,103) <= CAST (PRP2.RECEPTION_DT AS DATE)  OR @p_DVKD_MANAGE_APP_FROM IS NULL OR @p_DVKD_MANAGE_APP_FROM = '')
2033
			--	AND (DATEADD(day,1,CONVERT(DATETIME,@p_DVKD_MANAGE_APP_TO,103)) > CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_TO IS NULL OR @p_DVKD_MANAGE_APP_TO = '')
2034
		        AND (@p_DVKD_MANAGE_APP_FROM IS NULL AND @p_DVKD_MANAGE_APP_TO IS NULL OR
2035
            	@p_DVKD_MANAGE_APP_TO IS NULL AND (CONVERT(DATE, A.REQ_DT, 103)) >= (CONVERT(DATE, @p_DVKD_MANAGE_APP_FROM, 103)) 
2036
            	OR  @p_DVKD_MANAGE_APP_FROM IS NULL AND (CONVERT(DATE, A.REQ_DT, 103)) <= (CONVERT(DATE, @p_DVKD_MANAGE_APP_TO, 103)) 
2037
            	OR (CONVERT(DATE, A.REQ_DT, 103)) >=  (CONVERT(DATE, @p_DVKD_MANAGE_APP_FROM, 103)) AND (CONVERT(DATE, A.REQ_DT, 103)) <= (CONVERT(DATE, @p_DVKD_MANAGE_APP_TO, 103))
2038
            	)
2039
				--AND (((RQT.PROCESS_ID = A.STATUS AND  RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN)))
2040
				--AND ((@p_AUTH_STATUS = 'U' AND (RQT.STATUS = 'C' OR RQT.STATUS = 'U')) OR (@p_AUTH_STATUS = 'A' AND (RQT.STATUS = 'P' OR RQT.STATUS IS NULL))OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = ''))		
2041
				AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' 
2042
            --OR A.REQ_ID LIKE '%' + @p_REQ_CODE + '%'
2043
            OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
2044
        AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
2045
				AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
2046
				AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
2047
				--AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI  OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
2048
				AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
2049
				AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
2050
				
2051
				AND (DATEDIFF(DAY,A.CREATE_DT , CONVERT(DATETIME,@p_CREATE_DT,103)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
2052
--				AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
2053
				AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
2054
				AND (DATEDIFF(DAY,A.APPROVE_DT , CONVERT(DATETIME,@p_APPROVE_DT,103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')		
2055
				AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE = '')
2056
				AND (A.STATUS IN ('NEW','REJECT') AND A.MAKER_ID = @p_USERNAME OR A.STATUS NOT IN ('NEW','REJECT')
2057
            OR EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS',NULL,NULL) US
2058
                WHERE US.TLNANME = @p_USERNAME))
2059
        AND (@p_STATUS IS NULL OR @p_STATUS = '' OR A.STATUS = @p_STATUS)
2060
        AND (EXISTS(SELECT 1 FROM @REQ_ID_Temp RL WHERE RL.REQ_ID = A.REQ_ID) 
2061
              OR (@ROLE_KT IN ('GDV','KSV') AND A.AUTH_STATUS = 'A' ) 
2062
              OR EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS',NULL,NULL) US
2063
                WHERE US.TLNANME = @p_USERNAME))
2064
				AND A.RECORD_STATUS = '1'
2065
				AND (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' OR A.BRANCH_ID = @p_BRANCH_ID)
2066
				AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI  OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
2067
				AND( TU.TLFullName COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI  OR TU.TLNANME COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI 
2068
				 OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
2069
				ORDER BY A.REQ_DT DESC
2070
			 -- PAGING END 
2071
		END
2072
	END
2073
	ELSE
2074
	BEGIN
2075
		IF(@p_TOP IS NULL OR @p_TOP = '' OR @p_TOP = 0)
2076
			BEGIN
2077
			-- PAGING BEGIN
2078
				SELECT  A.REQ_ID,
2079
					   A.REQ_CODE,
2080
					   A.REQ_NAME,
2081
					   --ISNULL(PRP.APPROVE_DT,PRP2.APPROVE_DT) AS REQ_DT,
2082
                       A.REQ_DT,
2083
					   A.REQ_TYPE,
2084
					   A.REQ_CONTENT,
2085
					   A.TOTAL_AMT,
2086
					   A.NOTES,
2087
					   A.RECORD_STATUS,
2088
					   A.MAKER_ID,
2089
					   A.CREATE_DT,
2090
					   A.AUTH_STATUS,
2091
					   A.CHECKER_ID,
2092
					   A.APPROVE_DT,
2093
					   A.BRANCH_ID,
2094
                       CASE WHEN A.REQ_TYPE = 'CPTS' AND A.IS_DONE = '1' AND A.STATUS = 'DONE' THEN 'APPROVE' ELSE A.STATUS END AS STATUS,
2095
					   A.DEP_ID,
2096
					   A.HO_NOTES, K.CONTENT AS REQ_TYPE_NAME, 
2097
                       --I.CONTENT AS REQ_STATUS_NAME,
2098
                       CASE WHEN A.IS_DONE = '1' AND A.STATUS = 'APPROVE' THEN N'Hoàn tất' 
2099
                       ELSE I.CONTENT
2100
                       END REQ_STATUS_NAME,
2101
						 @p_RECEIVE_BRANCH AS RECEIVE_BRANCH,G.BRANCH_CODE,
2102
              CASE 
2103
             	WHEN A.DEP_ID IS NOT NULL AND A.DEP_ID <> '' THEN G.BRANCH_NAME + ' - ' + CD.DEP_NAME
2104
             	 ELSE G.BRANCH_NAME
2105
              END AS BRANCH_NAME,
2106
						--CASE WHEN  RQT.STATUS = 'C' OR RQT.STATUS = 'U' THEN N'Chờ duyệt' 
2107
						--ELSE N'Đã duyệt' END AS AUTH_STATUS_NAME
2108
						D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME,
2109
            CASE WHEN A.STATUS = 'APPROVE'AND A.AUTH_STATUS = 'A'
2110
                  AND DATEDIFF(DAY,GETDATE(),DATEADD(DAY,CONVERT(INT,SP.ParaValue),A.SEND_APP_DT)) < 0 THEN '#f2dede' ELSE ''
2111
            END AS COLOR
2112
						--D.AUTH_STATUS_NAME 
2113
				-- SELECT END
2114
				FROM TR_REQUEST_SHOP_DOC A
2115

    
2116
				LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
2117
				LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
2118
				LEFT JOIN CM_ALLCODE K ON K.CDNAME = 'TRREQASSTYPE' AND K.CDVAL = A.REQ_TYPE
2119
				LEFT JOIN CM_ALLCODE I ON I.CDNAME = 'TRREQSTATUS' AND I.CDVAL = A.[STATUS] AND I.CDTYPE = @p_CDTYPE_PYC
2120
--        LEFT JOIN PL_REQUEST_PROCESS prp1 ON prp1.REQ_ID = A.REQ_ID AND prp1.STATUS = 'C'		
2121
				 
2122
				--LEFT JOIN dbo.CM_AUTH_STATUS AUTH ON AUTH.AUTH_STATUS = A.AUTH_STATUS
2123
				--LEFT JOIN dbo.PL_REQUEST_PROCESS RQT ON RQT.REQ_ID = A.REQ_ID 
2124
				--AND (((RQT.PROCESS_ID = A.STATUS AND  RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR (RQT.PROCESS_ID = A.STATUS AND EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN))))
2125
				--LEFT JOIN dbo.PL_REQUEST_PROCESS PRP1 ON PRP1.REQ_ID = A.REQ_ID  AND PRP1.PROCESS_ID = 'CVMS_N'
2126
				LEFT JOIN dbo.PL_REQUEST_PROCESS PRP2 ON PRP2.REQ_ID = A.REQ_ID  AND PRP2.PROCESS_ID = 'DVKD'
2127
				
2128
				LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=A.MAKER_ID
2129
        LEFT JOIN SYS_PARAMETERS SP ON 1=1 AND SP.ParaKey = 'NUM_OF_DAYS_LATE'
2130
        LEFT JOIN CM_DEPARTMENT CD ON A.DEP_ID = CD.DEP_ID
2131
				WHERE 1 = 1
2132
				AND (G.REGION_ID LIKE '%' + @p_REGION_ID + '%' OR @p_REGION_ID IS NULL OR @p_REGION_ID = '')
2133
--				AND (CONVERT(DATETIME,@p_DVKD_MANAGE_APP_FROM,103) <= CAST (PRP2.RECEPTION_DT AS DATE)  OR @p_DVKD_MANAGE_APP_FROM IS NULL OR @p_DVKD_MANAGE_APP_FROM = '')
2134
--				AND (DATEADD(day,1,CONVERT(DATETIME,@p_DVKD_MANAGE_APP_TO,103)) > CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_TO IS NULL OR @p_DVKD_MANAGE_APP_TO = '')
2135
		        AND (@p_DVKD_MANAGE_APP_FROM IS NULL AND @p_DVKD_MANAGE_APP_TO IS NULL OR
2136
            	@p_DVKD_MANAGE_APP_TO IS NULL AND (CONVERT(DATE, A.REQ_DT, 103)) >= (CONVERT(DATE, @p_DVKD_MANAGE_APP_FROM, 103)) 
2137
            	OR  @p_DVKD_MANAGE_APP_FROM IS NULL AND (CONVERT(DATE, A.REQ_DT, 103)) <= (CONVERT(DATE, @p_DVKD_MANAGE_APP_TO, 103)) 
2138
            	OR (CONVERT(DATE, A.REQ_DT, 103)) >=  (CONVERT(DATE, @p_DVKD_MANAGE_APP_FROM, 103)) AND (CONVERT(DATE, A.REQ_DT, 103)) <= (CONVERT(DATE, @p_DVKD_MANAGE_APP_TO, 103))
2139
            	)
2140
				--AND (((RQT.PROCESS_ID = A.STATUS AND  RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN)))
2141
				--AND ((@p_AUTH_STATUS = 'U' AND (RQT.STATUS = 'C' OR RQT.STATUS = 'U')) OR (@p_AUTH_STATUS = 'A' AND (RQT.STATUS = 'P' OR RQT.STATUS IS NULL))OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = ''))		
2142
				AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' 
2143
            --OR A.REQ_ID LIKE '%' + @p_REQ_CODE + '%'
2144
            OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
2145
				AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
2146
				AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
2147
				AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
2148
				--AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI  OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
2149
				AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
2150
				AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
2151
				
2152
				AND (DATEDIFF(DAY,A.CREATE_DT , CONVERT(DATETIME,@p_CREATE_DT,103)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
2153
--				AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
2154
				AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
2155
				AND (DATEDIFF(DAY,A.APPROVE_DT , CONVERT(DATETIME,@p_APPROVE_DT,103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')		
2156
				AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE = '')
2157
				AND (A.STATUS IN ('NEW','REJECT') AND A.MAKER_ID = @p_USERNAME OR A.STATUS NOT IN ('NEW','REJECT')
2158
            OR EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS',NULL,NULL) US
2159
                WHERE US.TLNANME = @p_USERNAME))
2160
        AND (@p_STATUS IS NULL OR @p_STATUS = '' OR A.STATUS = @p_STATUS)
2161
        AND (EXISTS(SELECT 1 FROM @REQ_ID_Temp RL WHERE RL.REQ_ID = A.REQ_ID) 
2162
              OR (@ROLE_KT IN ('GDV','KSV') AND A.AUTH_STATUS = 'A' ) 
2163
              OR EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS',NULL,NULL) US
2164
                WHERE US.TLNANME = @p_USERNAME))
2165

    
2166
				AND A.RECORD_STATUS = '1'
2167
				AND (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' OR A.BRANCH_ID = @p_BRANCH_ID)
2168
				AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI  OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
2169
				AND( TU.TLFullName COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI  OR TU.TLNANME COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI 
2170
				 OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
2171
				ORDER BY  A.REQ_DT  DESC
2172
			-- PAGING END
2173
			END
2174
		   ELSE 
2175
		   BEGIN
2176
		   -- PAGING BEGIN
2177
				SELECT TOP(CONVERT(INT,@p_TOP))  A.REQ_ID,
2178
					   A.REQ_CODE,
2179
					   A.REQ_NAME,
2180
					   --ISNULL(PRP.APPROVE_DT,PRP2.APPROVE_DT) AS REQ_DT,
2181
                       A.REQ_DT,
2182
					   A.REQ_TYPE,
2183
					   A.REQ_CONTENT,
2184
					   A.TOTAL_AMT,
2185
					   A.NOTES,
2186
					   A.RECORD_STATUS,
2187
					   A.MAKER_ID,
2188
					   A.CREATE_DT,
2189
					   A.AUTH_STATUS,
2190
					   A.CHECKER_ID,
2191
					   A.APPROVE_DT,
2192
					   A.BRANCH_ID,
2193
                       CASE WHEN A.REQ_TYPE = 'CPTS' AND A.IS_DONE = '1' AND A.STATUS = 'DONE' THEN 'APPROVE' ELSE A.STATUS END AS STATUS,
2194
					   A.DEP_ID,
2195
					   A.HO_NOTES, K.CONTENT AS REQ_TYPE_NAME, 
2196
                       --I.CONTENT AS REQ_STATUS_NAME,
2197
                       CASE WHEN A.IS_DONE = '1' AND A.STATUS = 'APPROVE' THEN N'Hoàn tất' 
2198
                       ELSE I.CONTENT
2199
                       END REQ_STATUS_NAME,
2200
						 @p_RECEIVE_BRANCH AS RECEIVE_BRANCH,G.BRANCH_CODE,
2201
              CASE 
2202
             	WHEN A.DEP_ID IS NOT NULL AND A.DEP_ID <> '' THEN G.BRANCH_NAME + ' - ' + CD.DEP_NAME
2203
             	 ELSE G.BRANCH_NAME
2204
              END AS BRANCH_NAME,
2205
						--CASE WHEN  RQT.STATUS = 'C' OR RQT.STATUS = 'U' THEN N'Chờ duyệt' 
2206
						--ELSE N'Đã duyệt' END AS AUTH_STATUS_NAME
2207
						D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME,
2208
            CASE WHEN A.STATUS = 'APPROVE'AND A.AUTH_STATUS = 'A'
2209
                  AND DATEDIFF(DAY,GETDATE(),DATEADD(DAY,CONVERT(INT,SP.ParaValue),A.SEND_APP_DT)) < 0 THEN '#f2dede' ELSE ''
2210
            END AS COLOR
2211
						--D.AUTH_STATUS_NAME 
2212
				-- SELECT END
2213
				FROM TR_REQUEST_SHOP_DOC A
2214

    
2215
				LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
2216
				LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
2217
				LEFT JOIN CM_ALLCODE K ON K.CDNAME = 'TRREQASSTYPE' AND K.CDVAL = A.REQ_TYPE
2218
				LEFT JOIN CM_ALLCODE I ON I.CDNAME = 'TRREQSTATUS' AND I.CDVAL = A.[STATUS] AND I.CDTYPE = @p_CDTYPE_PYC
2219
--        LEFT JOIN PL_REQUEST_PROCESS prp1 ON prp1.REQ_ID = A.REQ_ID AND prp1.STATUS = 'C'		
2220
				 
2221
				--LEFT JOIN dbo.CM_AUTH_STATUS AUTH ON AUTH.AUTH_STATUS = A.AUTH_STATUS
2222
				--LEFT JOIN dbo.PL_REQUEST_PROCESS RQT ON RQT.REQ_ID = A.REQ_ID 
2223
				--AND (((RQT.PROCESS_ID = A.STATUS AND  RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR (RQT.PROCESS_ID = A.STATUS AND EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN))))
2224
				--LEFT JOIN dbo.PL_REQUEST_PROCESS PRP1 ON PRP1.REQ_ID = A.REQ_ID  AND PRP1.PROCESS_ID = 'CVMS_N'
2225
				LEFT JOIN dbo.PL_REQUEST_PROCESS PRP2 ON PRP2.REQ_ID = A.REQ_ID  AND PRP2.PROCESS_ID = 'DVKD'
2226
				
2227
				LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=A.MAKER_ID
2228
        LEFT JOIN SYS_PARAMETERS SP ON 1=1 AND SP.ParaKey = 'NUM_OF_DAYS_LATE'
2229
        LEFT JOIN CM_DEPARTMENT CD ON A.DEP_ID = CD.DEP_ID
2230
				WHERE 1 = 1
2231
				AND (G.REGION_ID LIKE '%' + @p_REGION_ID + '%' OR @p_REGION_ID IS NULL OR @p_REGION_ID = '')
2232
				--AND (CONVERT(DATETIME,@p_DVKD_MANAGE_APP_FROM,103) <= CAST (PRP2.RECEPTION_DT AS DATE)  OR @p_DVKD_MANAGE_APP_FROM IS NULL OR @p_DVKD_MANAGE_APP_FROM = '')
2233
				--AND (DATEADD(day,1,CONVERT(DATETIME,@p_DVKD_MANAGE_APP_TO,103)) > CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_TO IS NULL OR @p_DVKD_MANAGE_APP_TO = '')
2234
		        AND (@p_DVKD_MANAGE_APP_FROM IS NULL AND @p_DVKD_MANAGE_APP_TO IS NULL OR
2235
            	@p_DVKD_MANAGE_APP_TO IS NULL AND (CONVERT(DATE, A.REQ_DT, 103)) >= (CONVERT(DATE, @p_DVKD_MANAGE_APP_FROM, 103)) 
2236
            	OR  @p_DVKD_MANAGE_APP_FROM IS NULL AND (CONVERT(DATE, A.REQ_DT, 103)) <= (CONVERT(DATE, @p_DVKD_MANAGE_APP_TO, 103)) 
2237
            	OR (CONVERT(DATE, A.REQ_DT, 103)) >=  (CONVERT(DATE, @p_DVKD_MANAGE_APP_FROM, 103)) AND (CONVERT(DATE, A.REQ_DT, 103)) <= (CONVERT(DATE, @p_DVKD_MANAGE_APP_TO, 103))
2238
            	)
2239
				--AND (((RQT.PROCESS_ID = A.STATUS AND  RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN)))
2240
				--AND ((@p_AUTH_STATUS = 'U' AND (RQT.STATUS = 'C' OR RQT.STATUS = 'U')) OR (@p_AUTH_STATUS = 'A' AND (RQT.STATUS = 'P' OR RQT.STATUS IS NULL))OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = ''))		
2241
				AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' 
2242
            --OR A.REQ_ID LIKE '%' + @p_REQ_CODE + '%'
2243
            OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
2244
				AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
2245
				AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
2246
				AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
2247
				--AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI  OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
2248
				AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
2249
				AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
2250
				
2251
				AND (DATEDIFF(DAY,A.CREATE_DT , CONVERT(DATETIME,@p_CREATE_DT,103)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
2252
--				AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
2253
				AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
2254
				AND (DATEDIFF(DAY,A.APPROVE_DT , CONVERT(DATETIME,@p_APPROVE_DT,103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')		
2255
				AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE = '')
2256
				AND (A.STATUS IN ('NEW','REJECT') AND A.MAKER_ID = @p_USERNAME OR A.STATUS NOT IN ('NEW','REJECT') 
2257
            OR EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS',NULL,NULL) US
2258
                WHERE US.TLNANME = @p_USERNAME))
2259
        AND (@p_STATUS IS NULL OR @p_STATUS = '' OR A.STATUS = @p_STATUS)
2260
        AND (EXISTS(SELECT 1 FROM @REQ_ID_Temp RL WHERE RL.REQ_ID = A.REQ_ID) 
2261
              OR (@ROLE_KT IN ('GDV','KSV') AND A.AUTH_STATUS = 'A' ) 
2262
              OR EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS',NULL,NULL) US
2263
                WHERE US.TLNANME = @p_USERNAME))
2264

    
2265
				AND A.RECORD_STATUS = '1'
2266
				AND (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' OR A.BRANCH_ID = @p_BRANCH_ID)
2267
				AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI  OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
2268
				AND( TU.TLFullName COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI  OR TU.TLNANME COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI 
2269
				 OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
2270
				ORDER BY A.REQ_DT  DESC
2271
			 -- PAGING END 
2272
		END
2273
	END
2274
	
2275
		
2276
		
2277
   END
2278
	GO
2279

    
2280
ALTER TRIGGER dbo.TRIG_CM_EMPLOYEE_SYNC_Ins
2281
	ON dbo.CM_EMPLOYEE_SYNC
2282
	AFTER INSERT
2283
AS 
2284
BEGIN
2285
  --STORE ĐỒNG BỘ NHÂN VIÊN VÀ ĐIỀU CHUYỂN TÀI SẢN NHÂN SỰ
2286
  --29/09/22
2287
	SET NOCOUNT ON;
2288
          IF (EXISTS(SELECT TOP 1 MaNS FROM INSERTED)) 
2289
          BEGIN  
2290
          
2291
              DECLARE @MaDV_Cu_SYNC VARCHAR(500) = (SELECT TOP 1 MaDVCu FROM INSERTED)
2292
              DECLARE @MaDV_Moi_SYNC VARCHAR(500) = (SELECT TOP 1 MaDVMoi FROM INSERTED) 
2293

    
2294
              --UPDATE MÃ MỚI DO KT UPDATE
2295
              IF(@MaDV_Cu_SYNC = '0100')
2296
              BEGIN
2297
                  SET @MaDV_Cu_SYNC = '0600'
2298
              END
2299

    
2300
              IF(@MaDV_Cu_SYNC = '0101')
2301
              BEGIN
2302
                  SET @MaDV_Cu_SYNC = '0601'
2303
              END
2304

    
2305
              IF(@MaDV_Moi_SYNC = '0100')
2306
              BEGIN
2307
                  SET @MaDV_Moi_SYNC = '0600'
2308
              END
2309

    
2310
              IF(@MaDV_Moi_SYNC = '0101')
2311
              BEGIN
2312
                  SET @MaDV_Moi_SYNC = '0601'
2313
              END
2314
                
2315
              --MAP DATA HR VỚI KT
2316
              IF(EXISTS(SELECT 1 FROM CM_BRANCH_DEP_MAP WHERE HR_ID = @MaDV_Cu_SYNC))
2317
              BEGIN
2318
                  SET @MaDV_Cu_SYNC = (SELECT TOP 1 KT_ID FROM CM_BRANCH_DEP_MAP WHERE HR_ID = @MaDV_Cu_SYNC)
2319
              END
2320
              IF(EXISTS(SELECT 1 FROM CM_BRANCH_DEP_MAP WHERE HR_ID = @MaDV_Moi_SYNC))
2321
              BEGIN
2322
                  SET @MaDV_Moi_SYNC = (SELECT TOP 1 KT_ID FROM CM_BRANCH_DEP_MAP WHERE HR_ID = @MaDV_Moi_SYNC)
2323
              END
2324
              DECLARE @MACD_CU_SYNC VARCHAR(500) = (SELECT TOP 1 MaCDCu FROM INSERTED)
2325
              DECLARE @MACD_MOI_SYNC VARCHAR(500) = (SELECT TOP 1 MaCDMoi FROM INSERTED)
2326
    
2327
            --START: PARAM INSERT NHÂN VIÊN MỚI
2328
              DECLARE @l_EMP_ID VARCHAR(500)
2329
              DECLARE @p_EMP_CODE	varchar(500)  = (SELECT TOP 1 MaNS FROM INSERTED)
2330
              DECLARE @p_EMP_NAME	nvarchar(500)  = (SELECT TOP 1 HoTen FROM INSERTED)
2331
      
2332
              DECLARE @p_BRANCH_ID	varchar(15) = NULL 
2333
              DECLARE @p_DEP_ID	varchar(15) = NULL             
2334
              
2335
              DECLARE @p_POS_CODE VARCHAR(50) = NULL
2336
              DECLARE @p_POS_NAME NVARCHAR(MAX) = NULL             
2337
      
2338
              DECLARE @p_NOTES	nvarchar(1000)  = N'ĐỒNG BỘ'
2339
              DECLARE @p_RECORD_STATUS	varchar(1)  = '1'
2340
              DECLARE @p_AUTH_STATUS	varchar(1)  = 'A'
2341
              DECLARE @p_MAKER_ID	varchar(15)  = 'ADMIN'
2342
              DECLARE @p_CREATE_DT	VARCHAR(50) = GETDATE()
2343
              DECLARE @p_CHECKER_ID	varchar(15)  = 'ADMIN'
2344
              DECLARE @p_APPROVE_DT	VARCHAR(50) = GETDATE()
2345
            --END: PARAM INSERT NHÂN VIÊN MỚI
2346
    
2347
            --START: PARAM INSERT CM_EMPLOYEE_TRANSFER_LOG
2348
              DECLARE @I_EMP_ID VARCHAR(20) = (SELECT TOP 1 ce.EMP_ID FROM CM_EMPLOYEE ce WHERE ce.EMP_CODE = (SELECT MaNS FROM INSERTED))
2349
              DECLARE @I_STATUS VARCHAR(5) 
2350
    
2351
              DECLARE @C_Ma_DV_Cu VARCHAR(500) = NULL  --MÃ ĐV CŨ ĐỂ CHECK IF
2352
              DECLARE @C_Ma_DV_Moi VARCHAR(500) = NULL --MÃ DV MỚI ĐỂ CHECK IF
2353
              DECLARE @C_Ma_PB_Cu VARCHAR(500) = NULL  --MÃ PB CŨ ĐỂ CHECK IF
2354
              DECLARE @C_Ma_PB_Moi VARCHAR(500) = NULL --MÃ PB MỚI ĐỂ CHECK IF
2355
            --END: PARAM INSERT CM_EMPLOYEE_TRANSFER_LOG
2356

    
2357
              DECLARE @TLNAME VARCHAR(200) = NULL
2358

    
2359
              DECLARE @BLOCK_ID_OLD VARCHAR(15) = NULL --Mã khối cũ check điều chuyển nhân sự
2360
              DECLARE @CENTER_ID_OLD VARCHAR(15) = NULL  --Mã trung tâm cũ check điều chuyển nhân sự
2361
              DECLARE @DEP_ID_OLD VARCHAR(15) = NULL  --Mã phòng ban cũ check điều chuyển nhân sự
2362

    
2363
              DECLARE @BLOCK_ID_NEW VARCHAR(15) = NULL  --Mã khối mới check điều chuyển nhân sự
2364
              DECLARE @CENTER_ID_NEW VARCHAR(15) = NULL  --Mã trung tâm mới check điều chuyển nhân sự
2365
              DECLARE @DEP_ID_NEW VARCHAR(15) = NULL  --Mã phòng ban mới check điều chuyển nhân sự
2366
    
2367
            --START: PARAM INSERT 
2368
    
2369
            --CHECK XEM ĐƠN VỊ/PHÒNG BAN CỦA NHÂN VIÊN MỚI CỬA KH LƯU TRONG CỘT MaDVCu HAY CỘT MaDVMoi
2370
            IF (EXISTS(SELECT TOP 1 MaDVCu FROM INSERTED WHERE MaDVCu IS NOT NULL AND MaDVCu <> ''))
2371
            BEGIN 
2372
                --CHECK XEM MÃ LÀ ĐƠN VỊ HAY PHÒNG BAN
2373
                IF(EXISTS(SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = @MaDV_Cu_SYNC))
2374
                BEGIN
2375
                    SET @p_BRANCH_ID = 'DV0001'
2376
                    SET @C_Ma_DV_Cu = 'DV0001'
2377
                    SET @p_DEP_ID = (SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = @MaDV_Cu_SYNC)
2378
                    SET @C_Ma_PB_Cu = (SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = @MaDV_Cu_SYNC)
2379
                END
2380
                ELSE
2381
                BEGIN
2382
                    SET @p_BRANCH_ID = (SELECT TOP 1 cb.BRANCH_ID FROM CM_BRANCH cb WHERE cb.BRANCH_CODE = @MaDV_Cu_SYNC)
2383
                    SET @C_Ma_DV_Cu = (SELECT TOP 1 cb.BRANCH_ID FROM CM_BRANCH cb WHERE cb.BRANCH_CODE = @MaDV_Cu_SYNC)
2384
                END         
2385
            END
2386
            --ELSE
2387
    
2388
            IF(EXISTS(SELECT TOP 1 MaDVMoi FROM INSERTED WHERE MaDVMoi IS NOT NULL AND MaDVMoi <> ''))
2389
            BEGIN
2390
                --CHECK XEM MÃ LÀ ĐƠN VỊ HAY PHÒNG BAN
2391
                IF(EXISTS(SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = (SELECT MaDVMoi FROM INSERTED)))
2392
                BEGIN
2393
                    SET @p_BRANCH_ID = 'DV0001'
2394
                    SET @C_Ma_DV_Moi = 'DV0001'
2395
                    SET @p_DEP_ID = (SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = @MaDV_Moi_SYNC)
2396
                    SET @C_Ma_PB_Moi = (SELECT TOP 1 cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_CODE = @MaDV_Moi_SYNC)
2397
                END
2398
                ELSE
2399
                BEGIN
2400
                    SET @p_BRANCH_ID = (SELECT TOP 1 cb.BRANCH_ID FROM CM_BRANCH cb WHERE cb.BRANCH_CODE = @MaDV_Moi_SYNC)
2401
                    SET @C_Ma_DV_Moi = (SELECT TOP 1 cb.BRANCH_ID FROM CM_BRANCH cb WHERE cb.BRANCH_CODE = @MaDV_Moi_SYNC)
2402
                END
2403
            END        
2404
            
2405
            --GET KHỐI, TRUNG TÂM, PHÒNG BAN
2406
            EXEC CM_DEPARTMENT_GET_BLOCK_CENTER @C_Ma_PB_Cu ,@BLOCK_ID_OLD OUT ,@CENTER_ID_OLD OUT , @DEP_ID_OLD OUT   
2407
                                   
2408
            --GET KHỐI, TRUNG TÂM, PHÒNG BAN
2409
            EXEC CM_DEPARTMENT_GET_BLOCK_CENTER @C_Ma_PB_Moi, @BLOCK_ID_NEW OUT ,@CENTER_ID_NEW OUT ,@DEP_ID_NEW OUT     
2410
                               
2411
            IF(@p_BRANCH_ID <> 'DV0001')
2412
            BEGIN
2413
                SET @p_DEP_ID = NULL
2414
            END
2415

    
2416
            PRINT @C_Ma_DV_Cu
2417
            PRINT @C_Ma_DV_Moi
2418
        		IF((@C_Ma_DV_Cu IS NULL OR @C_Ma_DV_Cu = '') AND (@C_Ma_DV_Moi IS NULL OR @C_Ma_DV_Moi = ''))
2419
        		BEGIN
2420
          			--N'Mã DV cũ và Mã DV mới không có giá trị'
2421
                PRINT 1
2422
        		END
2423
            ELSE
2424
            BEGIN
2425
            
2426
              IF((SELECT COUNT(*) FROM CM_EMPLOYEE_LOG CEL WHERE CEL.EMP_CODE = @p_EMP_CODE) > 1)
2427
              BEGIN
2428
                    SET @TLNAME = (SELECT TOP 1 CEL.USER_DOMAIN FROM CM_EMPLOYEE_LOG CEL WHERE CEL.EMP_CODE = @p_EMP_CODE 
2429
                              AND CEL.BRANCH_CODE = @MaDV_Cu_SYNC
2430
                              AND (CEL.DEP_CODE = @C_Ma_PB_Cu OR @C_Ma_PB_Cu IS NULL))
2431
              END
2432
              ELSE
2433
              BEGIN
2434
                  SET @TLNAME = (SELECT TOP 1 CEL.USER_DOMAIN FROM CM_EMPLOYEE_LOG CEL WHERE CEL.EMP_CODE = @p_EMP_CODE)
2435
              END
2436

    
2437
            --CHECK DATA CHỨC DANH LƯU CỘT CDMOI HAY CDCU
2438
            IF(EXISTS(SELECT 1 FROM INSERTED WHERE MaCDMoi IS NOT NULL AND MaCDMoi <> ''))
2439
            BEGIN
2440
                  --NẾU CHỨC DANH CHƯA CÓ TRONG HỆ THỐNG THÌ THÊM MỚI CHỨC DANH
2441
                  IF(NOT EXISTS(SELECT 1 FROM CM_MAPPING_CHUCDANH_ROLE WHERE MA_CHUC_DANH = @MACD_MOI_SYNC))
2442
                  BEGIN
2443
                       INSERT INTO CM_MAPPING_CHUCDANH_ROLE (MA_CHUC_DANH, TEN_CHUC_DANH, NHOM_CHUC_DANH, ROLE_ID)
2444
                       VALUES (@MACD_MOI_SYNC, (SELECT TOP 1 CDMoi FROM INSERTED), NULL, NULL);
2445
                  END
2446
    
2447
                  SET @p_POS_CODE = @MACD_MOI_SYNC
2448
                  SET @p_POS_NAME = (SELECT TOP 1 CDMoi FROM INSERTED)
2449
            END
2450
            ELSE IF(EXISTS(SELECT 1 FROM INSERTED WHERE MaCDCu IS NOT NULL AND MaCDCu <> ''))
2451
            BEGIN
2452
                  --NẾU CHỨC DANH CHƯA CÓ TRONG HỆ THỐNG THÌ THÊM MỚI CHỨC DANH
2453
                  IF(NOT EXISTS(SELECT 1 FROM CM_MAPPING_CHUCDANH_ROLE WHERE MA_CHUC_DANH = @MACD_CU_SYNC))
2454
                  BEGIN
2455
                       INSERT INTO CM_MAPPING_CHUCDANH_ROLE (MA_CHUC_DANH, TEN_CHUC_DANH, NHOM_CHUC_DANH, ROLE_ID)
2456
                       VALUES (@MACD_CU_SYNC, (SELECT TOP 1 CDCu FROM INSERTED), NULL, NULL);
2457
                  END
2458
    
2459
                  SET @p_POS_CODE = @MACD_CU_SYNC
2460
                  SET @p_POS_NAME = (SELECT TOP 1 CDCu FROM INSERTED)
2461
            END
2462
    
2463
    
2464
             --CHECK NHÂN VIÊN XEM CÓ XEM TRONG HỆ THỐNG KHÔNG
2465
             IF(EXISTS(SELECT TOP 1 ce.EMP_ID FROM CM_EMPLOYEE ce WHERE ce.EMP_CODE = (SELECT MaNS FROM INSERTED)))
2466
             BEGIN
2467
                
2468
                IF(EXISTS(
2469
                        SELECT atmd.ASSET_ID FROM ASS_TRANSFER_MULTI_DT atmd
2470
                        WHERE (atmd.EMP_ID = @I_EMP_ID AND atmd.EMP_ID_OLD = @I_EMP_ID 
2471
                                               AND (atmd.BRANCH_ID = @C_Ma_DV_Moi AND atmd.BRANCH_ID_OLD = @C_Ma_DV_Cu
2472
                                                    AND ISNULL(atmd.KHOI_ID_OLD,'') = ISNULL(@BLOCK_ID_OLD,'') AND ISNULL(atmd.KHOI_ID,'') = ISNULL(@BLOCK_ID_NEW,'')
2473
                                                    AND ISNULL(atmd.CENTER_ID_OLD,'') = ISNULL(@CENTER_ID_OLD,'') AND ISNULL(atmd.CENTER_ID,'') = ISNULL(@CENTER_ID_NEW,'')
2474
                                                    AND ISNULL(atmd.DEPT_ID_OLD,'') = ISNULL(@DEP_ID_OLD,'') AND ISNULL(atmd.DEPT_ID,'') = ISNULL(@DEP_ID_NEW,''))  
2475
      																				 AND atmd.AUTH_STATUS_KT <> 'A') --ĐIỀU CHUYỂN TS TỪ ĐV NÀY SANG ĐV KHÁC CHO CÙNG NV
2476
                              OR (atmd.EMP_ID_OLD = @I_EMP_ID AND atmd.EMP_ID <> @I_EMP_ID  
2477
                                  AND atmd.BRANCH_ID_OLD = @C_Ma_DV_Cu 
2478
                                  AND ISNULL(atmd.KHOI_ID_OLD,'') = ISNULL(@BLOCK_ID_OLD,'')
2479
                                  AND ISNULL(atmd.CENTER_ID_OLD,'') = ISNULL(@CENTER_ID_OLD,'')
2480
                                  AND ISNULL(atmd.DEPT_ID_OLD,'') = ISNULL(@DEP_ID_OLD,'')
2481
                                  AND atmd.AUTH_STATUS_KT <> 'A') --ĐIỀU CHUYỂN TS TỪ ĐV NÀY SANG ĐV KHÁC NHƯNG KHÁC NV
2482
                        UNION ALL
2483
                        SELECT am.ASSET_ID FROM ASS_MASTER am WHERE am.BRANCH_ID = @C_Ma_DV_Cu AND ISNULL(am.DEPT_ID,'') = ISNULL(@C_Ma_PB_Cu,'') AND am.EMP_ID = @I_EMP_ID ))                             
2484
                  SET @I_STATUS = '0'
2485
                ELSE
2486
                  SET @I_STATUS = '1'
2487
      
2488
                INSERT INTO CM_EMPLOYEE_TRANSFER_LOG (EMP_ID, TRANSFER_DT, BRANCH_ID_OLD, DEP_ID_OLD, BRANCH_ID_NEW, DEP_ID_NEW, STATUS)
2489
                VALUES (@I_EMP_ID, CONVERT(DATETIME,(SELECT TOP 1 TGTao FROM INSERTED),103), @C_Ma_DV_Cu,@C_Ma_PB_Cu, @C_Ma_DV_Moi, @C_Ma_PB_Moi, @I_STATUS);  
2490
      
2491
                --CHECK TRƯỜNG HỢP 1 NHÂN VIÊN CÓ QUYỀN 2 CHI NHÁNH TRỞ TRÊN (KHÁC TLNAME)
2492

    
2493
                --PHUCVH 22/12/22 CHECK NẾU MADV,PB MỚI THAY ĐỔI THÌ UPDATE LẠI MADV,PB CHO NHANVIEN
2494
                IF(EXISTS(SELECT 1 FROM CM_EMPLOYEE A WHERE A.EMP_CODE = @p_EMP_CODE 
2495
                              AND ISNULL(@p_BRANCH_ID,'') <> ''
2496
                              AND ((ISNULL(@p_BRANCH_ID,'') = 'DV0001' AND ISNULL(@p_DEP_ID,'') <> '')
2497
                                    OR (ISNULL(@p_BRANCH_ID,'') <> 'DV0001' AND ISNULL(@p_DEP_ID,'') = ''))
2498
                              AND (ISNULL(A.BRANCH_ID,'') <> ISNULL(@p_BRANCH_ID,'')
2499
                                  OR ISNULL(A.DEP_ID,'') <> ISNULL(@p_DEP_ID,''))))
2500
                BEGIN
2501
                      --NẾU LÀ DVCM THÌ SKIP. KHÔNG UPDATE BRANCH VÀ DEP
2502
                      IF(NOT EXISTS(SELECT 1 
2503
                                FROM TL_USER A
2504
                                LEFT JOIN AbpUserRoles B ON A.ID = B.UserId
2505
                                LEFT JOIN AbpRoles C ON B.RoleId = C.Id
2506
                                WHERE A.TLNANME = @TLNAME AND C.DisplayName = 'DVCM'))
2507
                      BEGIN
2508

    
2509
                          UPDATE CM_EMPLOYEE SET BRANCH_ID = @p_BRANCH_ID, DEP_ID = @p_DEP_ID 
2510
                          WHERE EMP_CODE = @p_EMP_CODE
2511
        
2512
                          --CHECK UPDATE TL_USER VÀ CM_EMPLOYEE_LOG
2513
                          IF(EXISTS(SELECT 1 FROM CM_EMPLOYEE_LOG WHERE EMP_CODE = @p_EMP_CODE))
2514
                          BEGIN
2515
                              UPDATE CM_EMPLOYEE_LOG SET BRANCH_CODE = (SELECT TOP 1 BRANCH_CODE FROM CM_BRANCH WHERE BRANCH_ID = @p_BRANCH_ID),
2516
                                                         DEP_CODE = (SELECT TOP 1 DEP_CODE FROM CM_DEPARTMENT WHERE DEP_ID = @p_DEP_ID)
2517
                              WHERE EMP_CODE = @p_EMP_CODE AND USER_DOMAIN = @TLNAME
2518
        
2519
                              UPDATE TL_USER SET TLSUBBRID = @p_BRANCH_ID, SECUR_CODE = @p_DEP_ID, DEP_ID = @p_DEP_ID
2520
                              WHERE TLNANME = @TLNAME
2521
                          END
2522
                      END
2523
    
2524
                END  
2525
                
2526
                --PHUCVH 22/12/22 CHECK NẾU MA CHUC DANH THAY ĐỔI THÌ UPDATE
2527
                IF(EXISTS(SELECT 1 FROM CM_EMPLOYEE A WHERE A.EMP_CODE = @p_EMP_CODE
2528
                                AND ISNULL(A.POS_CODE,'') <> ISNULL(@p_POS_CODE,'')))
2529
                BEGIN
2530
                     UPDATE CM_EMPLOYEE SET POS_CODE = @p_POS_CODE, POS_NAME = @p_POS_NAME
2531
                     WHERE EMP_CODE = @p_EMP_CODE 
2532
    
2533
                     UPDATE CM_EMPLOYEE_LOG SET POS_CODE = @p_POS_CODE, POS_NAME = @p_POS_NAME
2534
                     WHERE EMP_CODE = @p_EMP_CODE AND USER_DOMAIN = @TLNAME
2535
                END                     
2536
    
2537
                --IF @@Error <> 0 GOTO ABORT
2538
          		  --SET @Message = N'Đồng bộ điều chuyển nhân sự thành công'
2539
             END
2540
             ELSE
2541
             BEGIN
2542
                --KHÔNG CÓ TRONG HỆ THỐNG
2543
                --THÊM THÔNG TIN NHÂN VIÊN
2544
                		EXEC SYS_CodeMasters_Gen 'CM_EMPLOYEE', @l_EMP_ID out		       
2545
                		INSERT INTO CM_EMPLOYEE([EMP_ID],[EMP_CODE],[EMP_NAME],[BRANCH_ID],[DEP_ID],[NOTES],[RECORD_STATUS],[AUTH_STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID],[APPROVE_DT],[POS_CODE],[POS_NAME])
2546
                		VALUES(@l_EMP_ID ,@p_EMP_CODE ,@p_EMP_NAME ,@p_BRANCH_ID ,@p_DEP_ID ,@p_NOTES ,@p_RECORD_STATUS ,@p_AUTH_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103), @p_POS_CODE, @p_POS_NAME )
2547
                    --IF @@Error <> 0 GOTO ABORT
2548
            				--SET @Message = N'Đồng bộ nhân viên mới thành công'
2549
             END
2550
            END
2551
    
2552
            
2553
          END
2554
END
2555

    
2556

    
2557