Project

General

Profile

FN_CHECK_VALIDATE_APP.txt

Truong Nguyen Vu, 11/04/2020 02:01 PM

 
1

    
2

    
3

    
4

    
5
ALTER FUNCTION [dbo].[FN_CHECK_VALIDATE_APP]
6
(	
7
	-- Add the parameters for the function here
8
	@REQ_ID VARCHAR(20),
9
	@TYPE_VALIDATE VARCHAR(20),
10
	@REF_VALIDATE VARCHAR(20),
11
	@MAKER_ID VARCHAR(20),
12
	@PROCESS_ID VARCHAR(20)
13
)
14
RETURNS  @Results TABLE (ERROR BIT , ERROR_DES NVARCHAR(100))
15
AS
16
BEGIN
17

    
18

    
19
	IF(EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@REQ_ID AND PL_BASED_ID IS NOT NULL AND PL_BASED_ID <>''))
20
	BEGIN
21
		 INSERT INTO @Results
22
			(
23
			    ERROR,
24
			    ERROR_DES
25
			)
26
			VALUES
27
			(    0, -- ERROR - bit
28
			    N''   -- ERROR_DES - nvarchar(100)
29
			)
30
		RETURN
31
	END
32

    
33
	DECLARE @BRANCH_ID VARCHAR(20),@DEP_ID VARCHAR(20),@BRANCH_TYPE VARCHAR(20),@ROLE_ID VARCHAR(20)
34
	DECLARE @LST_DVDM TABLE(DVDM_ID VARCHAR(20))
35
	DECLARE @LST_KHOI TABLE(KHOI_ID VARCHAR(20))
36
	SELECT @BRANCH_ID=TLSUBBRID,@BRANCH_TYPE=BRANCH_TYPE,@DEP_ID=SECUR_CODE,@ROLE_ID=RoleName FROM dbo.TL_USER WHERE TLNANME=@MAKER_ID
37

    
38
	IF(@ROLE_ID='TC' OR @ROLE_ID='TGD')
39
	BEGIN
40
		INSERT INTO @LST_DVDM
41
		SELECT CD.DVDM_ID FROM dbo.CM_DVDM CD
42
	
43
		WHERE CD.IS_DVDM=1
44

    
45

    
46
		INSERT INTO @LST_KHOI
47
		SELECT CD.DVDM_ID FROM dbo.CM_DVDM CD
48
	
49
		WHERE CD.IS_KHOI=1 
50
	END
51
	ELSE
52
	BEGIN
53
			INSERT INTO @LST_DVDM
54
			SELECT CD.DVDM_ID FROM dbo.CM_DVDM CD
55
			LEFT JOIN dbo.PL_COSTCENTER PC ON PC.DVDM_ID=CD.DVDM_ID
56
			LEFT JOIN dbo.PL_COSTCENTER_DT PCDT ON PCDT.COST_ID=PC.COST_ID
57
			WHERE CD.IS_DVDM=1 AND PCDT.DEP_ID=@DEP_ID AND PCDT.BRANCH_ID=@BRANCH_ID
58

    
59

    
60
			INSERT INTO @LST_KHOI
61
			SELECT CD.DVDM_ID FROM dbo.CM_DVDM CD
62
			LEFT JOIN dbo.PL_COSTCENTER PC ON PC.DVDM_ID=CD.DVDM_ID
63
			LEFT JOIN dbo.PL_COSTCENTER_DT PCDT ON PCDT.COST_ID=PC.COST_ID
64
			WHERE CD.IS_KHOI=1 AND PCDT.DEP_ID=@DEP_ID AND PCDT.BRANCH_ID=@BRANCH_ID
65
	END
66

    
67

    
68

    
69
 IF(@REF_VALIDATE='PL_REQUEST_DOC')
70
 BEGIN
71
	IF(@TYPE_VALIDATE='APPNEW')
72
	BEGIN
73
		IF(@BRANCH_TYPE='HS')
74
		BEGIN
75
			IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@REQ_ID AND FR_BRN_ID=@BRANCH_ID AND FR_DEP_ID=@DEP_ID
76
			AND (FR_TRADE_ID IS NULL OR FR_TRADE_ID ='')))
77
			BEGIN
78
				INSERT INTO @Results
79
			(
80
			    ERROR,
81
			    ERROR_DES
82
			)
83
			VALUES
84
			(    1, -- ERROR - bit
85
			    N'Vui lòng chọn hạng mục ngân sách điều chuyển'   -- ERROR_DES - nvarchar(100)
86
			 )
87
			RETURN 
88
			END
89
			ELSE
90
			BEGIN
91
						IF(EXISTS(SELECT Temp.FR_TRADE_ID FROM (
92
						SELECT TB.FR_TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE,
93
						SUM(ROUND(ISNULL(PT.AMT_APP,0),0) +  ROUND(ISNULL(PT.AMT_RECEIVE_TF,0),0) -  ROUND(ISNULL(PT.AMT_TF,0),0) - ROUND(ISNULL(PT.AMT_ETM,0),0)) AS TOTAL_AMT_REMAIN 
94
						FROM dbo.PL_REQUEST_TRANSFER TB
95
						LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.FR_TRADE_ID
96
						WHERE  TB.REQ_DOC_ID=@REQ_ID AND TB.FR_BRN_ID=@BRANCH_ID AND @DEP_ID=TB.FR_DEP_ID
97
						GROUP BY TB.FR_TRADE_ID
98
						)Temp
99
						WHERE (Temp.TOTAL_AMT_EXE) > Temp.TOTAL_AMT_REMAIN))
100
						BEGIN
101
						
102
								INSERT INTO @Results
103
							(
104
								ERROR,
105
								ERROR_DES
106
							)
107
							VALUES
108
							(    1, -- ERROR - bit
109
								N'Lưới điều chuyển ngân sách: Số tiền điều chuyển vượt hạng mức ngân sách dự kiến còn lại'   -- ERROR_DES - nvarchar(100)
110
							 )
111
							RETURN 
112
						END
113
			END
114

    
115
		END
116
		ELSE IF(@BRANCH_TYPE<>'HS')
117
		BEGIN
118
			IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@REQ_ID AND FR_BRN_ID=@BRANCH_ID 
119
			AND (FR_TRADE_ID IS NULL OR FR_TRADE_ID ='')))
120
			BEGIN
121
				INSERT INTO @Results
122
			(
123
			    ERROR,
124
			    ERROR_DES
125
			)
126
			VALUES
127
			(    1, -- ERROR - bit
128
			    N'Vui lòng chọn hạng mục ngân sách điều chuyển'   -- ERROR_DES - nvarchar(100)
129
			 )
130
			RETURN 
131
			END
132
			ELSE
133
			BEGIN
134
						IF(EXISTS(SELECT Temp.FR_TRADE_ID FROM (
135
						SELECT TB.FR_TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE,
136
						SUM(ROUND(ISNULL(PT.AMT_APP,0),0) +  ROUND(ISNULL(PT.AMT_RECEIVE_TF,0),0) -  ROUND(ISNULL(PT.AMT_TF,0),0) - ROUND(ISNULL(PT.AMT_ETM,0),0)) AS TOTAL_AMT_REMAIN 
137
						FROM dbo.PL_REQUEST_TRANSFER TB
138
						LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.FR_TRADE_ID
139
						WHERE  TB.REQ_DOC_ID=@REQ_ID AND TB.FR_BRN_ID=@BRANCH_ID 
140
						GROUP BY TB.FR_TRADE_ID
141
						)Temp
142
						WHERE (Temp.TOTAL_AMT_EXE) > Temp.TOTAL_AMT_REMAIN))
143
						BEGIN
144
						
145
								INSERT INTO @Results
146
							(
147
								ERROR,
148
								ERROR_DES
149
							)
150
							VALUES
151
							(    1, -- ERROR - bit
152
								N'Lưới hàng hóa: Số tiền điều chuyển vượt hạng mức ngân sách dự kiến còn lại'   -- ERROR_DES - nvarchar(100)
153
							 )
154
							RETURN 
155
						END
156
			END
157
		END
158
		IF(EXISTS(SELECT Temp.TRADE_ID FROM (
159
		SELECT TB.TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE,
160
		SUM(ROUND(ISNULL(PT.AMT_APP,0),0) +  ROUND(ISNULL(PT.AMT_RECEIVE_TF,0),0) -  ROUND(ISNULL(PT.AMT_TF,0),0) - ROUND(ISNULL(PT.AMT_ETM,0),0)) AS TOTAL_AMT_REMAIN ,
161
		SUM(ISNULL(PLTF.TOTAL_AMT,0)) AS TOTAL_TF
162
		FROM dbo.PL_REQUEST_DOC_DT TB
163
		LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.TRADE_ID
164
		LEFT JOIN dbo.PL_MASTER PM ON PM.PLAN_ID=PT.PLAN_ID
165
		LEFT JOIN dbo.PL_REQUEST_TRANSFER PLTF ON PLTF.FR_BRN_ID=PM.BRANCH_ID AND PLTF.FR_TRADE_ID=PT.TRADE_ID AND PLTF.REQ_DOC_ID=TB.REQ_ID
166
		WHERE TB.REQDT_TYPE='I' AND TB.REQ_ID=@REQ_ID
167
		GROUP BY TB.TRADE_ID
168
		)Temp
169
		WHERE (Temp.TOTAL_AMT_EXE + Temp.TOTAL_TF) > Temp.TOTAL_AMT_REMAIN))
170
		BEGIN
171
			INSERT INTO @Results
172
			(
173
			    ERROR,
174
			    ERROR_DES
175
			)
176
			VALUES
177
			(    1, -- ERROR - bit
178
			    N'Lưới hàng hóa: Số tiền sử dụng vượt số tiền còn lại dự kiến của hạng mục ngân sách'   -- ERROR_DES - nvarchar(100)
179
			 )
180
			RETURN 
181
		END
182

    
183
		
184

    
185
		IF(EXISTS(SELECT Temp.GOODS_ID FROM (
186
		SELECT TB.GOODS_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE,
187
		SUM(ROUND(ISNULL(PT.AMT_APP,0),0) +  ROUND(ISNULL(PT.AMT_RECEIVE_TF,0),0) -  ROUND(ISNULL(PT.AMT_TF,0),0) - ROUND(ISNULL(PT.AMT_ETM,0),0)) AS TOTAL_AMT_REMAIN ,
188
		SUM(ISNULL(PLTF.TOTAL_AMT,0)) AS TOTAL_TF
189
		FROM dbo.PL_REQUEST_DOC_DT TB
190
		LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.TRADE_ID
191
		LEFT JOIN
192
		(
193
			SELECT SUM(TOTAL_AMT) AS TOTAL_AMT,TO_GOOD_ID,REQ_DOC_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@REQ_ID
194
			GROUP BY TO_GOOD_ID,REQ_DOC_ID 
195
		) PLTF  ON PLTF.TO_GOOD_ID=TB.GOODS_ID AND PLTF.REQ_DOC_ID=TB.REQ_ID
196
		WHERE TB.REQDT_TYPE='O' AND TB.REQ_ID=@REQ_ID
197
		GROUP BY TB.GOODS_ID
198
		)Temp
199
		WHERE Temp.TOTAL_AMT_EXE > (Temp.TOTAL_AMT_REMAIN + Temp.TOTAL_TF)))
200
		BEGIN
201
			INSERT INTO @Results
202
			(
203
			    ERROR,
204
			    ERROR_DES
205
			)
206
			VALUES
207
			(    1, -- ERROR - bit
208
			    --N'Số tiền sử dụng vượt số tiền còn lại dự kiến của hạng mục ngân sách và số tiền điều chuyển'   -- ERROR_DES - nvarchar(100)
209
				N'Lưới hàng hóa: Số tiền ngân sách sử dụng đang vượt quá số tiền chuyển của lưới điều chuyển ngân sách'
210
			 )
211
			RETURN 
212
		END
213

    
214

    
215
		 
216
	END
217
	ELSE IF (@TYPE_VALIDATE='PDDC')
218
	BEGIN
219
		IF(@PROCESS_ID='DVDM_DC')
220
		BEGIN
221
					IF(EXISTS(SELECT Temp.FR_TRADE_ID FROM (
222
						SELECT TB.FR_TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE,
223
						SUM(ROUND(ISNULL(PT.AMT_APP,0),0) +  ROUND(ISNULL(PT.AMT_RECEIVE_TF,0),0) -  ROUND(ISNULL(PT.AMT_TF,0),0) - ROUND(ISNULL(PT.AMT_ETM,0),0)) AS TOTAL_AMT_REMAIN 
224
						FROM dbo.PL_REQUEST_TRANSFER TB
225
						LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.FR_TRADE_ID
226
						WHERE  TB.REQ_DOC_ID=@REQ_ID AND TB.FR_DVDM_ID IN (SELECT DVDM_ID FROM @LST_DVDM)
227
						GROUP BY TB.FR_TRADE_ID
228
						)Temp
229
						WHERE (Temp.TOTAL_AMT_EXE) > Temp.TOTAL_AMT_REMAIN))
230
						BEGIN
231
								INSERT INTO @Results
232
							(
233
								ERROR,
234
								ERROR_DES
235
							)
236
							VALUES
237
							(    1, -- ERROR - bit
238
								N'Số tiền điều chuyển vượt hạng mức ngân sách dự kiến còn lại'   -- ERROR_DES - nvarchar(100)
239
							 )
240
							RETURN 
241
						END
242
		END
243
		ELSE IF(@PROCESS_ID='TC')
244
		BEGIN
245
			IF(EXISTS(SELECT Temp.FR_TRADE_ID FROM (
246
						SELECT TB.FR_TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE,
247
						SUM(ROUND(ISNULL(PT.AMT_APP,0),0) +  ROUND(ISNULL(PT.AMT_RECEIVE_TF,0),0) -  ROUND(ISNULL(PT.AMT_TF,0),0) - ROUND(ISNULL(PT.AMT_ETM,0),0)) AS TOTAL_AMT_REMAIN 
248
						FROM dbo.PL_REQUEST_TRANSFER TB
249
						LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.FR_TRADE_ID
250
						WHERE  TB.REQ_DOC_ID=@REQ_ID
251
						GROUP BY TB.FR_TRADE_ID
252
						)Temp
253
						WHERE (Temp.TOTAL_AMT_EXE) > Temp.TOTAL_AMT_REMAIN))
254
						BEGIN
255
								INSERT INTO @Results
256
							(
257
								ERROR,
258
								ERROR_DES
259
							)
260
							VALUES
261
							(    1, -- ERROR - bit
262
								N'Số tiền điều chuyển vượt hạng mức ngân sách dự kiến còn lại'   -- ERROR_DES - nvarchar(100)
263
							 )
264
							RETURN 
265
						END
266
		END
267
		ELSE
268
		BEGIN
269
		IF(@BRANCH_TYPE='HS')
270
		BEGIN
271
			IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@REQ_ID AND FR_BRN_ID=@BRANCH_ID AND FR_DEP_ID=@DEP_ID
272
			AND (FR_TRADE_ID IS NULL OR FR_TRADE_ID ='')))
273
			BEGIN
274
				INSERT INTO @Results
275
			(
276
			    ERROR,
277
			    ERROR_DES
278
			)
279
			VALUES
280
			(    1, -- ERROR - bit
281
			    N'Chưa chọn hạng mục ngân sách điều chuyển'   -- ERROR_DES - nvarchar(100)
282
			 )
283
			RETURN 
284
			END
285
			ELSE
286
			BEGIN
287
						IF(EXISTS(SELECT Temp.FR_TRADE_ID FROM (
288
						SELECT TB.FR_TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE,
289
						SUM(ROUND(ISNULL(PT.AMT_APP,0),0) +  ROUND(ISNULL(PT.AMT_RECEIVE_TF,0),0) -  ROUND(ISNULL(PT.AMT_TF,0),0) - ROUND(ISNULL(PT.AMT_ETM,0),0)) AS TOTAL_AMT_REMAIN 
290
						FROM dbo.PL_REQUEST_TRANSFER TB
291
						LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.FR_TRADE_ID
292
						WHERE  TB.REQ_DOC_ID=@REQ_ID AND TB.FR_BRN_ID=@BRANCH_ID AND @DEP_ID=TB.FR_DEP_ID
293
						GROUP BY TB.FR_TRADE_ID
294
						)Temp
295
						WHERE (Temp.TOTAL_AMT_EXE) > Temp.TOTAL_AMT_REMAIN))
296
						BEGIN
297
						
298
								INSERT INTO @Results
299
							(
300
								ERROR,
301
								ERROR_DES
302
							)
303
							VALUES
304
							(    1, -- ERROR - bit
305
								N'Số tiền điều chuyển vượt hạng mức ngân sách dự kiến còn lại'   -- ERROR_DES - nvarchar(100)
306
							 )
307
							RETURN 
308
						END
309
			END
310

    
311
		END
312
		ELSE IF(@BRANCH_TYPE<>'HS')
313
		BEGIN
314
			IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@REQ_ID AND FR_BRN_ID=@BRANCH_ID 
315
			AND (FR_TRADE_ID IS NULL OR FR_TRADE_ID ='')))
316
			BEGIN
317
				INSERT INTO @Results
318
			(
319
			    ERROR,
320
			    ERROR_DES
321
			)
322
			VALUES
323
			(    1, -- ERROR - bit
324
			    N'Chưa chọn hạng mục ngân sách điều chuyển'   -- ERROR_DES - nvarchar(100)
325
			 )
326
			RETURN 
327
			END
328
			ELSE
329
			BEGIN
330
						IF(EXISTS(SELECT Temp.FR_TRADE_ID FROM (
331
						SELECT TB.FR_TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE,
332
						SUM(ROUND(ISNULL(PT.AMT_APP,0),0) +  ROUND(ISNULL(PT.AMT_RECEIVE_TF,0),0) -  ROUND(ISNULL(PT.AMT_TF,0),0) - ROUND(ISNULL(PT.AMT_ETM,0),0)) AS TOTAL_AMT_REMAIN 
333
						FROM dbo.PL_REQUEST_TRANSFER TB
334
						LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.FR_TRADE_ID
335
						WHERE  TB.REQ_DOC_ID=@REQ_ID AND TB.FR_BRN_ID=@BRANCH_ID 
336
						GROUP BY TB.FR_TRADE_ID
337
						)Temp
338
						WHERE (Temp.TOTAL_AMT_EXE) > Temp.TOTAL_AMT_REMAIN))
339
						BEGIN
340
						
341
								INSERT INTO @Results
342
								(
343
									ERROR,
344
									ERROR_DES
345
								)
346
								VALUES
347
								(    1, -- ERROR - bit
348
									N'Số tiền điều chuyển vượt hạng mức ngân sách dự kiến còn lại'   -- ERROR_DES - nvarchar(100)
349
								 )
350
								RETURN 
351
						END
352
			END
353
		END
354
		END
355
	END
356
	ELSE IF(@TYPE_VALIDATE='PDTT')
357
	BEGIN
358
		
359
		IF(EXISTS(SELECT Temp.TRADE_ID FROM (
360
		SELECT TB.TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE,
361
		SUM(ROUND(ISNULL(PT.AMT_APP,0),0) +  ROUND(ISNULL(PT.AMT_RECEIVE_TF,0),0) -  ROUND(ISNULL(PT.AMT_TF,0),0) - ROUND(ISNULL(PT.AMT_ETM,0),0)) AS TOTAL_AMT_REMAIN ,
362
		SUM(ISNULL(PLTF.TOTAL_AMT,0)) AS TOTAL_TF
363
		FROM dbo.PL_REQUEST_DOC_DT TB
364
		LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.TRADE_ID
365
		LEFT JOIN dbo.PL_MASTER PM ON PM.PLAN_ID=PT.PLAN_ID
366
		LEFT JOIN dbo.PL_REQUEST_TRANSFER PLTF ON PLTF.FR_BRN_ID=PM.BRANCH_ID AND PLTF.FR_TRADE_ID=PT.TRADE_ID AND PLTF.REQ_DOC_ID=TB.REQ_ID
367
		WHERE TB.REQDT_TYPE='I' AND TB.REQ_ID=@REQ_ID AND TB.KHOI_ID IN (SELECT KHOI_ID FROM @LST_KHOI)
368
		GROUP BY TB.TRADE_ID
369
		)Temp
370
		WHERE (Temp.TOTAL_AMT_EXE + Temp.TOTAL_TF) > Temp.TOTAL_AMT_REMAIN))
371
		BEGIN
372
			INSERT INTO @Results
373
			(
374
			    ERROR,
375
			    ERROR_DES
376
			)
377
			VALUES
378
			(    1, -- ERROR - bit
379
			    N'Số tiền sử dụng vượt số tiền còn lại dự kiến của hạng mục ngân sách'   -- ERROR_DES - nvarchar(100)
380
			 )
381
			RETURN 
382
		END
383

    
384
		
385

    
386
		IF(EXISTS(SELECT Temp.GOODS_ID FROM (
387
		SELECT TB.GOODS_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE,
388
		SUM(ROUND(ISNULL(PT.AMT_APP,0),0) +  ROUND(ISNULL(PT.AMT_RECEIVE_TF,0),0) -  ROUND(ISNULL(PT.AMT_TF,0),0) - ROUND(ISNULL(PT.AMT_ETM,0),0)) AS TOTAL_AMT_REMAIN ,
389
		SUM(ISNULL(PLTF.TOTAL_AMT,0)) AS TOTAL_TF
390
		FROM dbo.PL_REQUEST_DOC_DT TB
391
		LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.TRADE_ID
392
			LEFT JOIN
393
		(
394
			SELECT SUM(TOTAL_AMT) AS TOTAL_AMT,TO_GOOD_ID,REQ_DOC_ID FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@REQ_ID
395
			GROUP BY TO_GOOD_ID,REQ_DOC_ID 
396
		) PLTF  ON PLTF.TO_GOOD_ID=TB.GOODS_ID AND PLTF.REQ_DOC_ID=TB.REQ_ID
397
		WHERE TB.REQDT_TYPE='O' AND TB.REQ_ID=@REQ_ID AND TB.KHOI_ID IN (SELECT KHOI_ID FROM @LST_KHOI)
398
		GROUP BY TB.GOODS_ID
399
		)Temp
400
		WHERE Temp.TOTAL_AMT_EXE > (Temp.TOTAL_AMT_REMAIN + Temp.TOTAL_TF)))
401
		BEGIN
402
			INSERT INTO @Results
403
			(
404
			    ERROR,
405
			    ERROR_DES
406
			)
407
			VALUES
408
			(    1, -- ERROR - bit
409
			    N'Số tiền sử dụng vượt số tiền còn lại dự kiến của hạng mục ngân sách và số tiền điều chuyển'   -- ERROR_DES - nvarchar(100)
410
			 )
411
			RETURN 
412
		END
413

    
414
					IF(EXISTS(SELECT Temp.FR_TRADE_ID FROM (
415
						SELECT TB.FR_TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE,
416
						SUM(ROUND(ISNULL(PT.AMT_APP,0),0) +  ROUND(ISNULL(PT.AMT_RECEIVE_TF,0),0) -  ROUND(ISNULL(PT.AMT_TF,0),0) - ROUND(ISNULL(PT.AMT_ETM,0),0)) AS TOTAL_AMT_REMAIN 
417
						FROM dbo.PL_REQUEST_TRANSFER TB
418
						LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.FR_TRADE_ID
419
						WHERE  TB.REQ_DOC_ID=@REQ_ID AND  TB.FR_KHOI_ID IN (SELECT KHOI_ID FROM @LST_KHOI) 
420
						GROUP BY TB.FR_TRADE_ID
421
						)Temp
422
						WHERE (Temp.TOTAL_AMT_EXE) > Temp.TOTAL_AMT_REMAIN))
423
						BEGIN
424
						
425
								INSERT INTO @Results
426
							(
427
								ERROR,
428
								ERROR_DES
429
							)
430
							VALUES
431
							(    1, -- ERROR - bit
432
								N'Số tiền điều chuyển vượt hạng mức ngân sách dự kiến còn lại'   -- ERROR_DES - nvarchar(100)
433
							 )
434
							RETURN 
435
						END
436

    
437

    
438
	END
439
 END
440

    
441
 INSERT INTO @Results
442
			(
443
			    ERROR,
444
			    ERROR_DES
445
			)
446
			VALUES
447
			(    0, -- ERROR - bit
448
			    N''   -- ERROR_DES - nvarchar(100)
449
			)
450

    
451
RETURN 
452
END
453
 
454

    
455

    
456

    
457

    
458

    
459

    
460
GO
461