Project

General

Profile

TR_REQ_PROCESS_CHILD_App.txt

Truong Nguyen Vu, 03/09/2021 01:30 PM

 
1

    
2
ALTER PROCEDURE [dbo].[TR_REQ_PROCESS_CHILD_App]
3
@p_REQ_ID VARCHAR(20),
4
@p_PROCESS_ID VARCHAR(20),
5
@p_TLNAME VARCHAR(20),
6
@p_MAKER_ID VARCHAR(20),
7
@p_TYPE_JOB VARCHAR(20),
8
@p_PROCESS_DES NVARCHAR(500),
9
@p_REF_ID INT,
10
@p_XMLDATA XML
11
AS
12
BEGIN TRANSACTION
13
-- LUCTV 20052020 BO SUNG CHECK NEU TRA VE THI KHONG DUYET DUOC
14

    
15
--IF(NOT EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND STATUS='C' AND PROCESS_ID=@p_PROCESS_ID))
16
--BEGIN
17
--	SELECT 1 as Result, '' ErrorDesc
18
--	RETURN 0
19
--END
20

    
21
IF(EXISTS(SELECT REQ_ID FROM dbo.TR_REQUEST_DOC  WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='DMMS'  ))
22
BEGIN
23
	IF(EXISTS(
24
	SELECT PRC.ID FROM dbo.PL_REQUEST_PROCESS PR 
25
	LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD PRC ON PRC.PROCESS_ID=PR.ID
26
	WHERE PR.PROCESS_ID='DMMS' AND PR.REQ_ID=@p_REQ_ID AND PRC.TYPE_JOB='XL' AND PRC.STATUS_JOB='C'))
27
	BEGIN
28
		ROLLBACK TRANSACTION  
29
		SELECT -1 Result, N'Phiếu yêu cầu mua sắm số: '+(SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID) +N' chưa được xử lý. Vui lòng đợi nhân viên xử lý phiếu và gửi phê duyệt!' ErrorDesc  
30
		RETURN -1
31
	END
32

    
33
	IF(NOT EXISTS(
34
	SELECT PRC.ID FROM dbo.PL_REQUEST_PROCESS PR 
35
	LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD PRC ON PRC.PROCESS_ID=PR.ID
36
	WHERE PR.PROCESS_ID='DMMS' AND PR.REQ_ID=@p_REQ_ID AND PRC.TYPE_JOB='XL' ))
37
	BEGIN
38

    
39
		ROLLBACK TRANSACTION  
40
		SELECT -1 Result, N'Phiếu yêu cầu mua sắm số: '+(SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID) +N' chưa điều phối xử lý. Vui lòng điều phối nhân viên xử lý phiếu!' ErrorDesc  
41
		RETURN -1 
42
	END
43

    
44
END
45

    
46

    
47
DECLARE @IS_KT VARCHAR(15)
48
SET @IS_KT =(SELECT TOP 1 IS_KT FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID)
49
--- END LUCTV 08122020
50
IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_REQ_ID AND STATUS_JOB ='R') OR (EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND AUTH_STATUS ='R'))
51
OR(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='R')))
52
	BEGIN
53
		ROLLBACK TRANSACTION
54
		SELECT -1 Result, N'Phiếu yêu cầu mua sắm số: '+(SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID) +N' đang bị từ chối. Vui lòng đợi nhân viên xử lý phiếu và gửi phê duyệt lại!' ErrorDesc
55
		RETURN -1
56
END
57
Declare @hdoc INT
58
	EXEC sp_xml_preparedocument @hdoc Output,@p_XMLDATA
59
	DECLARE @lstFILE TABLE(
60
	ATTACH_ID  VARCHAR(20),
61
	IS_READ	BIT 
62
	)
63
	INSERT INTO @lstFILE
64
	SELECT *
65
	FROM OPENXML(@hDoc,'/Root/ATTACH_FILE',2)
66
	WITH 
67
	(
68
		ATTACH_ID  VARCHAR(20),
69
		IS_READ	BIT  
70
	)
71

    
72
IF(EXISTS(SELECT TR_REQUEST_DOC_FILE_ID FROM dbo.TR_REQUEST_DOC_FILE WHERE REQ_ID=@p_REQ_ID AND IS_VIEW=1
73
 AND EXISTS(SELECT ATTACH_ID FROM @lstFILE WHERE [@lstFILE].ATTACH_ID=TR_REQUEST_DOC_FILE.ATTACH_ID AND IS_READ=0)))
74
 BEGIN
75
		ROLLBACK TRANSACTION
76
			SELECT -1 Result, N'File đinh kèm bắt buộc đọc' ErrorDesc 
77
			RETURN 0
78
 END
79
DECLARE @LEVEL INT,	@TYPE_JOB_NAME NVARCHAR(100), @FULLNAME NVARCHAR(100)
80
			
81
		UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='P'
82
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND TLNAME=@p_TLNAME AND TYPE_JOB=@p_TYPE_JOB
83

    
84
		SET @LEVEL=ISNULL((SELECT TOP 1 LEVEL_JOB 
85
		FROM dbo.PL_REQUEST_PROCESS_CHILD 
86
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND TLNAME=@p_TLNAME AND TYPE_JOB=@p_TYPE_JOB
87
		ORDER BY LEVEL_JOB DESC),0)
88

    
89
		UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='C'
90
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND LEVEL_JOB=(@LEVEL-1)
91
		
92
			SET @TYPE_JOB_NAME =(SELECT CONTENT FROM dbo.CM_ALLCODE WHERE CDNAME = 'JOB_TYPE' AND CDTYPE='REQ' AND CDVAL=@p_TYPE_JOB)
93
			SET @FULLNAME =(SELECT TLFullName FROM dbo.TL_USER WHERE TLNANME=@p_TLNAME )
94
			
95
		INSERT INTO dbo.PL_PROCESS
96
				(
97
					REQ_ID,
98
					PROCESS_ID,
99
					CHECKER_ID,
100
					APPROVE_DT,
101
					PROCESS_DESC,NOTES
102
				)
103
				VALUES
104
				(   @p_REQ_ID,        -- REQ_ID - varchar(15)
105
					@p_PROCESS_ID,        -- PROCESS_ID - varchar(10)
106
					@p_MAKER_ID,        -- CHECKER_ID - varchar(15)
107
					GETDATE() , -- APPROVE_DT - datetime
108
					@p_PROCESS_DES ,
109
					@TYPE_JOB_NAME+ N' đã phê duyệt'       -- PROCESS_DESC - nvarchar(1000)
110
				)
111
		
112

    
113
		IF(NOT EXISTS (SELECT * FROM  dbo.PL_REQUEST_PROCESS_CHILD 
114
		WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_REF_ID AND STATUS_JOB <> 'P'))
115
		BEGIN
116
				IF(@p_PROCESS_ID='DMMS')
117
				BEGIN
118
				DECLARE @PROCESS_PARENT VARCHAR(20)
119
				SET @PROCESS_PARENT='DMMS'
120

    
121
				UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='P',CHECKER_ID=@p_MAKER_ID,APPROVE_DT=GETDATE(),NOTES=N'Đầu mối mua sắm đã phê duyệt' WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=@p_PROCESS_ID
122
		
123
				DECLARE @LIMIT_VALUE_KT DECIMAL(18,0),@ROLE_KT VARCHAR(20),@DVDM_KT VARCHAR(20),@NOTES_KT NVARCHAR(200),@TOTAL_AMT_REQ DECIMAL(18,0)
124

    
125
				SET @LIMIT_VALUE_KT = (SELECT LIMIT_VALUE FROM dbo.TL_SYSROLE_LIMIT WHERE LIMIT_TYPE='KT')
126
				SET @ROLE_KT=(SELECT ROLE_ID FROM dbo.TL_SYSROLE_LIMIT WHERE LIMIT_TYPE='KT')
127
				
128
				SET @DVDM_KT=(SELECT DVDM_ID FROM dbo.TL_SYSROLE_LIMIT WHERE LIMIT_TYPE='KT')
129
				
130
				SET @TOTAL_AMT_REQ =(SELECT SUM(((PRICE * QUANTITY) + ISNULL(TAXES,0))* ISNULL(EXCHANGE_RATE,1)) AS TOTAL_AMT FROM dbo.TR_REQUEST_DOC_DT 
131
				--WHERE REQ_DOC_ID=@p_REQ_ID AND TRAN_TYPE_ID NOT IN (SELECT TRN_TYPE FROM dbo.CM_TRAN_TYPE WHERE NOTES='XK' OR NOTES ='CDT'))
132
				WHERE REQ_DOC_ID=@p_REQ_ID)
133
				IF(@TOTAL_AMT_REQ > @LIMIT_VALUE_KT AND @IS_KT ='1')
134
				BEGIN
135
					DECLARE @l_REQ_COST_ID VARCHAR(15)
136
					EXEC SYS_CodeMasters_Gen 'TR_REQUEST_COSTCENTER', @l_REQ_COST_ID out
137
					INSERT dbo.TR_REQUEST_COSTCENTER
138
					(
139
					    REQ_COST_ID,
140
					    COST_ID,
141
					    REQ_ID,
142
					    NOTES,
143
					    AUTH_STATUS,
144
					    MAKER_ID,
145
					    CREATE_DT,
146
					    CHECKER_ID,
147
					    APPROVE_DT
148
					)
149
					VALUES
150
					(   @l_REQ_COST_ID,        -- REQ_COST_ID - varchar(15)
151
						@DVDM_KT,        -- COST_ID - varchar(15)			    
152
						@p_REQ_ID,        -- REQ_ID - varchar(15)
153
					    N'',       -- NOTES - nvarchar(500)
154
					    'U',        -- AUTH_STATUS - varchar(1)
155
					    @p_MAKER_ID,        -- MAKER_ID - varchar(15)
156
					    GETDATE(), -- CREATE_DT - datetime
157
					    '',        -- CHECKER_ID - varchar(15)
158
					   NULL -- APPROVE_DT - datetime
159
					    )
160
				END
161
				IF(EXISTS(SELECT * FROM dbo.TR_REQUEST_COSTCENTER WHERE REQ_ID=@p_REQ_ID) AND EXISTS(SELECT REQDT_ID FROM dbo.TR_REQUEST_DOC_DT WHERE TRAN_TYPE_ID NOT IN (SELECT TRN_TYPE FROM dbo.CM_TRAN_TYPE WHERE NOTES='XK' )))
162
					BEGIN
163
					DECLARE @COST_ID VARCHAR(20)
164
					DECLARE lstCostCenter CURSOR FOR
165
					SELECT COST_ID  FROM dbo.TR_REQUEST_COSTCENTER
166
					WHERE REQ_ID=@p_REQ_ID
167
					 OPEN lstCostCenter
168
		 			FETCH NEXT FROM lstCostCenter INTO @COST_ID
169
					WHILE @@FETCH_STATUS = 0 
170
					BEGIN 
171

    
172
					IF(NOT EXISTS(SELECT TOP 1 ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID  AND 
173
					(ROLE_USER='GDDV' OR ROLE_USER IN (SELECT ROLE_OLD FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_NEW='GDDV') )AND ( DVDM_ID=@COST_ID OR @COST_ID IN ((SELECT PC.DVDM_ID FROM dbo.PL_COSTCENTER PC
174
					LEFT JOIN dbo.PL_COSTCENTER_DT PCD ON PCD.COST_ID = PC.COST_ID
175
					WHERE PCD.BRANCH_ID=PL_REQUEST_PROCESS.BRANCH_ID AND PCD.DEP_ID=PL_REQUEST_PROCESS.DEP_ID)) ) ))
176
					BEGIN
177

    
178
					IF(@COST_ID=@DVDM_KT AND @IS_KT ='1')
179
					BEGIN
180
						INSERT INTO dbo.PL_REQUEST_PROCESS
181
						(
182
							REQ_ID,
183
							PROCESS_ID,
184
							STATUS,
185
							ROLE_USER,
186
							BRANCH_ID,
187
							CHECKER_ID,
188
							APPROVE_DT,
189
							PARENT_PROCESS_ID,
190
							IS_LEAF,
191
							COST_ID,
192
							DVDM_ID,
193
							NOTES,
194
							IS_HAS_CHILD
195
						)
196
						VALUES
197
						(   @p_REQ_ID,        -- REQ_ID - varchar(15)
198
							'DVCM',        -- PROCESS_ID - varchar(10)
199
							'U',        -- STATUS - varchar(5)
200
							'KSV',        -- ROLE_USER - varchar(50)
201
							'',        -- BRANCH_ID - varchar(15)
202
							'',        -- CHECKER_ID - varchar(15)
203
							NULL, -- APPROVE_DT - datetime
204
						   @PROCESS_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
205
							'N',        -- IS_LEAF - varchar(1)
206
							'',        -- COST_ID - varchar(15)
207
							@COST_ID ,
208
							N'Chờ đơn vị chuyên môn xác nhận' ,
209
							1       -- DVDM_ID - varchar(15)
210
						 )
211
					END
212
					ELSE
213
					BEGIN
214
				    INSERT INTO dbo.PL_REQUEST_PROCESS
215
				    (
216
				        REQ_ID,
217
				        PROCESS_ID,
218
				        STATUS,
219
				        ROLE_USER,
220
				        BRANCH_ID,
221
				        CHECKER_ID,
222
				        APPROVE_DT,
223
				        PARENT_PROCESS_ID,
224
				        IS_LEAF,
225
				        COST_ID,
226
				        DVDM_ID,
227
						NOTES,
228
						IS_HAS_CHILD
229
				    )
230
				    VALUES
231
				    (   @p_REQ_ID,        -- REQ_ID - varchar(15)
232
				        'DVCM',        -- PROCESS_ID - varchar(10)
233
				        'U',        -- STATUS - varchar(5)
234
				        'GDDV',        -- ROLE_USER - varchar(50)
235
				        '',        -- BRANCH_ID - varchar(15)
236
				        '',        -- CHECKER_ID - varchar(15)
237
						NULL, -- APPROVE_DT - datetime
238
				       @PROCESS_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
239
				        'N',        -- IS_LEAF - varchar(1)
240
				        '',        -- COST_ID - varchar(15)
241
				        @COST_ID ,
242
						N'Chờ đơn vị chuyên môn xác nhận' ,
243
						1       -- DVDM_ID - varchar(15)
244
				     )
245
					 END
246
				END
247
					FETCH NEXT FROM lstCostCenter INTO @COST_ID
248
					END
249
					CLOSE lstCostCenter
250
					DEALLOCATE lstCostCenter
251
					
252
				END
253
				DECLARE @TOTAL_AMT DECIMAL(18,2),@ROLE_PDTH VARCHAR(20)	,@LIMIT_VALUE DECIMAL(18,2)	,@IS_NEXT BIT,@PROCESS_ID  VARCHAR(5),@ROLE_ID VARCHAR(20),@DVDM_ID VARCHAR(20),@NOTES NVARCHAR(50),@DVDM_NAME NVARCHAR(200)
254

    
255
				IF(EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='DVCM'))
256
					SET @PROCESS_PARENT='DVCM'
257
				
258
				SET @IS_NEXT=(SELECT dbo.FN_CHECK_LIMIT_TR_REQ(@p_REQ_ID,'GDDV'))
259
				--SET @IS_NEXT=1
260
				IF(@IS_NEXT =1 AND EXISTS(SELECT REQDT_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID AND TRAN_TYPE_ID NOT IN (SELECT TRN_TYPE FROM dbo.CM_TRAN_TYPE WHERE NOTES='XK' ))) 
261
				BEGIN
262
				SET @DVDM_ID=(SELECT DVDM_ID FROM dbo.TL_SYSROLE_LIMIT WHERE LIMIT_TYPE='PDPYC')
263
				SET @ROLE_ID=(SELECT ROLE_ID FROM dbo.TL_SYSROLE_LIMIT WHERE LIMIT_TYPE='PDPYC')
264
				SET @NOTES =(SELECT ROLE_DESC FROM dbo.TL_SYSROLE WHERE ROLE_ID=@ROLE_ID)
265
				SET @DVDM_NAME= (SELECT DVDM_NAME FROM dbo.CM_DVDM WHERE DVDM_ID=@DVDM_ID)
266
				SET @NOTES = @NOTES + ' ' + @DVDM_NAME
267

    
268
				INSERT INTO dbo.PL_REQUEST_PROCESS
269
					(
270
					    REQ_ID,
271
					    PROCESS_ID,
272
					    STATUS,
273
					    ROLE_USER,
274
					    BRANCH_ID,
275
					    CHECKER_ID,
276
					    APPROVE_DT,
277
					    PARENT_PROCESS_ID,
278
					    IS_LEAF,
279
					    COST_ID,
280
					    DVDM_ID,
281
					    NOTES,
282
					    IS_HAS_CHILD
283
					)
284
					VALUES
285
					(  @p_REQ_ID,        -- REQ_ID - varchar(15)
286
					   'GDK_PYC',        -- PROCESS_ID - varchar(10)
287
					    'U',        -- STATUS - varchar(5)
288
					    @ROLE_ID,        -- ROLE_USER - varchar(50)
289
					    '',        -- BRANCH_ID - varchar(15)
290
					    '',        -- CHECKER_ID - varchar(15)
291
					    NULL, -- APPROVE_DT - datetime
292
					    @PROCESS_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
293
					    '',        -- IS_LEAF - varchar(1)
294
					    '',        -- COST_ID - varchar(15)
295
					    @DVDM_ID,        -- DVDM_ID - varchar(15)
296
					    N'Chờ ' +@NOTES+N' phê duyệt',       -- NOTES - nvarchar(500)
297
					    0       -- IS_HAS_CHILD - bit
298
					    )
299
					SET @PROCESS_PARENT= 'GDK_PYC'
300
				
301
                END
302

    
303

    
304

    
305

    
306

    
307
				INSERT INTO dbo.PL_REQUEST_PROCESS
308
				(
309
				    REQ_ID,
310
				    PROCESS_ID,
311
				    STATUS,
312
				    ROLE_USER,
313
				    BRANCH_ID,
314
				    CHECKER_ID,
315
				    APPROVE_DT,
316
				    PARENT_PROCESS_ID,
317
				    IS_LEAF,
318
				    COST_ID,
319
				    DVDM_ID,
320
				    NOTES,
321
				    IS_HAS_CHILD
322
				)
323
				VALUES
324
				(   @p_REQ_ID,        -- REQ_ID - varchar(15)
325
				    'APPROVE',        -- PROCESS_ID - varchar(10)
326
				    'U',        -- STATUS - varchar(5)
327
				    '',        -- ROLE_USER - varchar(50)
328
				    '',        -- BRANCH_ID - varchar(15)
329
				    '',        -- CHECKER_ID - varchar(15)
330
				    NULL, -- APPROVE_DT - datetime
331
				    @PROCESS_PARENT,        -- PARENT_PROCESS_ID - varchar(10)
332
				    'N',        -- IS_LEAF - varchar(1)
333
				    '',        -- COST_ID - varchar(15)
334
				    '',        -- DVDM_ID - varchar(15)
335
				    N'Hoàn tất',       -- NOTES - nvarchar(500)
336
				    NULL       -- IS_HAS_CHILD - bit
337
				    )
338
				DECLARE @PROCESS_NEXT_ID VARCHAR(10)
339
				SET @PROCESS_NEXT_ID = (SELECT TOP 1 PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PARENT_PROCESS_ID=@p_PROCESS_ID)
340

    
341
				
342
				
343
				UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='C' WHERE REQ_ID=@p_REQ_ID AND PARENT_PROCESS_ID=@p_PROCESS_ID
344
				UPDATE dbo.TR_REQUEST_DOC SET PROCESS_ID=@PROCESS_NEXT_ID WHERE REQ_ID=@p_REQ_ID
345
				
346
	END
347
				ELSE IF(@p_PROCESS_ID='DVCM')
348
				BEGIN
349

    
350
						DECLARE @DEP_ID VARCHAR(15),@BRANCH_ID VARCHAR(15),@PROCESS_NEXT VARCHAR(10)
351

    
352
							SET @DEP_ID=(SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID)
353
							SET @BRANCH_ID=(SELECT TLSUBBRID FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID)
354
							SET @ROLE_ID=(SELECT RoleName FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID)
355
							-- LUCTV 07082020 KIEM TRA NEU ROLE KHAC ROLE GDDV THI PHAI CHUYEN ROLE THANH GDDV
356
							--IF(@ROLE_ID ='KTT')
357
							--BEGIN
358
							--	SET @ROLE_ID ='GDDV'
359
							--END
360
							SET @PROCESS_NEXT = (SELECT TOP 1 PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PARENT_PROCESS_ID=@p_PROCESS_ID)
361
						
362

    
363
						UPDATE dbo.TR_REQUEST_COSTCENTER SET AUTH_STATUS='A',APPROVE_DT=GETDATE(),CHECKER_ID=@p_MAKER_ID WHERE REQ_ID=@p_REQ_ID AND COST_ID IN (SELECT PC.DVDM_ID FROM dbo.PL_COSTCENTER PC LEFT JOIN
364
																																	dbo.PL_COSTCENTER_DT PT ON PT.COST_ID=PC.COST_ID WHERE BRANCH_ID=@BRANCH_ID AND DEP_ID=@DEP_ID)
365
						UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='P',CHECKER_ID=@p_MAKER_ID,
366
						APPROVE_DT=GETDATE() ,NOTES=N'Đơn vị chuyên môn xác nhận' 
367
						WHERE REQ_ID=@p_REQ_ID AND( ROLE_USER=@ROLE_ID OR ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@ROLE_ID))AND DVDM_ID IN (SELECT PC.DVDM_ID FROM dbo.PL_COSTCENTER PC LEFT JOIN
368
																																	dbo.PL_COSTCENTER_DT PT ON PT.COST_ID=PC.COST_ID
369
																																	WHERE BRANCH_ID=@BRANCH_ID AND DEP_ID=@DEP_ID)
370
						
371
						IF(NOT EXISTS( SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE PROCESS_ID=@p_PROCESS_ID AND REQ_ID=@p_REQ_ID AND STATUS='C'))
372
						BEGIN
373
						
374
										UPDATE dbo.PL_REQUEST_PROCESS SET [STATUS]='C' WHERE PROCESS_ID=@PROCESS_NEXT AND REQ_ID=@p_REQ_ID
375
										UPDATE dbo.TR_REQUEST_DOC SET PROCESS_ID=@PROCESS_NEXT WHERE REQ_ID=@p_REQ_ID
376
						
377
						END
378
				END
379

    
380
			--IF(@PROCESS_NEXT='APPROVE')
381
			IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE PROCESS_ID ='APPROVE' AND REQ_ID =@p_REQ_ID))
382
			BEGIN
383
				DECLARE @TempTB TABLE
384
				(
385
					TOTAL_AMT DECIMAL(18,2),
386
					TRADE_ID VARCHAR(20),
387
					PLAN_ID VARCHAR(20)
388
				)
389
				INSERT INTO @TempTB			
390
				SELECT SUM(DT.TOTAL_AMT) TOTAL_AMT,PLDT.TRADE_ID,PLDT.PLAN_ID FROM dbo.TR_REQUEST_DOC_DT DT 
391
				LEFT JOIN dbo.PL_REQUEST_DOC_DT PLDT ON DT.PL_REQDT_ID=PLDT.REQDT_ID
392
				WHERE TRAN_TYPE_ID  IN (SELECT TRN_TYPE FROM dbo.CM_TRAN_TYPE WHERE NOTES='XK') AND DT.REQ_DOC_ID=@p_REQ_ID
393
				GROUP BY	PLDT.TRADE_ID,PLDT.PLAN_ID
394
				UPDATE dbo.PL_TRADEDETAIL SET AMT_EXE =AMT_EXE + (SELECT TOTAL_AMT FROM @TempTB WHERE [@TempTB].TRADE_ID=PL_TRADEDETAIL.TRADE_ID AND PL_TRADEDETAIL.PLAN_ID=[@TempTB].PLAN_ID) WHERE PL_TRADEDETAIL.TRADE_ID IN (SELECT TRADE_ID FROM @TempTB)
395

    
396
				IF(EXISTS(SELECT * FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID AND  TRAN_TYPE_ID NOT IN (SELECT TRN_TYPE FROM dbo.CM_TRAN_TYPE WHERE NOTES='XK')))
397
					EXEC dbo.TR_REQ_DOC_Ins_To_PO @p_TR_REQ_ID = @p_REQ_ID -- varchar(15)
398
				
399
			END
400
		END
401
				
402
		IF @@Error <> 0 GOTO ABORT
403
COMMIT TRANSACTION
404
SELECT 0 as Result, '' ErrorDesc
405
RETURN 0
406
ABORT:
407
BEGIN
408
		ROLLBACK TRANSACTION
409
		SELECT -1 as Result, '' ErrorDesc
410
		RETURN -1
411
End
412

    
413

    
414

    
415

    
416

    
417