Project

General

Profile

UPDATE_VALIDATE.txt

Truong Nguyen Vu, 08/26/2020 09:49 AM

 
1
SET QUOTED_IDENTIFIER ON
2
SET ANSI_NULLS ON
3
GO
4
-- =============================================
5
-- Author:		<Author,,Name>
6
-- Create date: <Create Date,,>
7
-- Description:	<Description,,>
8
-- =============================================
9
ALTER FUNCTION [dbo].[FN_CHECK_VALIDATE_APP]
10
(	
11
	-- Add the parameters for the function here
12
	@REQ_ID VARCHAR(20),
13
	@TYPE_VALIDATE VARCHAR(20),
14
	@REF_VALIDATE VARCHAR(20),
15
	@MAKER_ID VARCHAR(20),
16
	@PROCESS_ID VARCHAR(20)
17
)
18
RETURNS  @Results TABLE (ERROR BIT , ERROR_DES NVARCHAR(100))
19
AS
20
BEGIN
21

    
22
	DECLARE @BRANCH_ID VARCHAR(20),@DEP_ID VARCHAR(20),@BRANCH_TYPE VARCHAR(20),@ROLE_ID VARCHAR(20)
23
	DECLARE @LST_DVDM TABLE(DVDM_ID VARCHAR(20))
24
	DECLARE @LST_KHOI TABLE(KHOI_ID VARCHAR(20))
25
	SELECT @BRANCH_ID=TLSUBBRID,@BRANCH_TYPE=BRANCH_TYPE,@DEP_ID=SECUR_CODE,@ROLE_ID=RoleName FROM dbo.TL_USER WHERE TLNANME=@MAKER_ID
26

    
27
	IF(@ROLE_ID='TC' OR @ROLE_ID='TGD')
28
	BEGIN
29
		INSERT INTO @LST_DVDM
30
		SELECT CD.DVDM_ID FROM dbo.CM_DVDM CD
31
	
32
		WHERE CD.IS_DVDM=1
33

    
34

    
35
		INSERT INTO @LST_KHOI
36
		SELECT CD.DVDM_ID FROM dbo.CM_DVDM CD
37
	
38
		WHERE CD.IS_KHOI=1 
39
	END
40
	ELSE
41
	BEGIN
42
			INSERT INTO @LST_DVDM
43
			SELECT CD.DVDM_ID FROM dbo.CM_DVDM CD
44
			LEFT JOIN dbo.PL_COSTCENTER PC ON PC.DVDM_ID=CD.DVDM_ID
45
			LEFT JOIN dbo.PL_COSTCENTER_DT PCDT ON PCDT.COST_ID=PC.COST_ID
46
			WHERE CD.IS_DVDM=1 AND PCDT.DEP_ID=@DEP_ID AND PCDT.BRANCH_ID=@BRANCH_ID
47

    
48

    
49
			INSERT INTO @LST_KHOI
50
			SELECT CD.DVDM_ID FROM dbo.CM_DVDM CD
51
			LEFT JOIN dbo.PL_COSTCENTER PC ON PC.DVDM_ID=CD.DVDM_ID
52
			LEFT JOIN dbo.PL_COSTCENTER_DT PCDT ON PCDT.COST_ID=PC.COST_ID
53
			WHERE CD.IS_KHOI=1 AND PCDT.DEP_ID=@DEP_ID AND PCDT.BRANCH_ID=@BRANCH_ID
54
	END
55

    
56

    
57

    
58
 IF(@REF_VALIDATE='PL_REQUEST_DOC')
59
 BEGIN
60
	IF(@TYPE_VALIDATE='APPNEW')
61
	BEGIN
62
		IF(@BRANCH_TYPE='HS')
63
		BEGIN
64
			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
65
			AND (FR_TRADE_ID IS NULL OR FR_TRADE_ID ='')))
66
			BEGIN
67
				INSERT INTO @Results
68
			(
69
			    ERROR,
70
			    ERROR_DES
71
			)
72
			VALUES
73
			(    1, -- ERROR - bit
74
			    N'Vui lòng chọn hạng mục ngân sách điều chuyển'   -- ERROR_DES - nvarchar(100)
75
			 )
76
			RETURN 
77
			END
78
			ELSE
79
			BEGIN
80
						IF(EXISTS(SELECT Temp.FR_TRADE_ID FROM (
81
						SELECT TB.FR_TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE,
82
						SUM(ISNULL(PT.AMT_APP,0) +  ISNULL(PT.AMT_RECEIVE_TF,0) - ISNULL(PT.AMT_TF,0) - ISNULL(PT.AMT_ETM,0)) AS TOTAL_AMT_REMAIN 
83
						FROM dbo.PL_REQUEST_TRANSFER TB
84
						LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.FR_TRADE_ID
85
						WHERE  TB.REQ_DOC_ID=@REQ_ID AND TB.FR_BRN_ID=@BRANCH_ID AND @DEP_ID=TB.FR_DEP_ID   AND EXISTS(SELECT GD_ID FROM dbo.CM_GOODS WHERE GD_TYPE_ID='NS' AND GD_ID=TB.FR_GOOD_ID)
86
						GROUP BY TB.FR_TRADE_ID
87
						)Temp
88
						WHERE (Temp.TOTAL_AMT_EXE) > Temp.TOTAL_AMT_REMAIN))
89
						BEGIN
90
						
91
								INSERT INTO @Results
92
							(
93
								ERROR,
94
								ERROR_DES
95
							)
96
							VALUES
97
							(    1, -- ERROR - bit
98
								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)
99
							 )
100
							RETURN 
101
						END
102
			END
103

    
104
		END
105
		ELSE IF(@BRANCH_TYPE<>'HS')
106
		BEGIN
107
			IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@REQ_ID AND FR_BRN_ID=@BRANCH_ID 
108
			AND (FR_TRADE_ID IS NULL OR FR_TRADE_ID ='')))
109
			BEGIN
110
				INSERT INTO @Results
111
			(
112
			    ERROR,
113
			    ERROR_DES
114
			)
115
			VALUES
116
			(    1, -- ERROR - bit
117
			    N'Vui lòng chọn hạng mục ngân sách điều chuyển'   -- ERROR_DES - nvarchar(100)
118
			 )
119
			RETURN 
120
			END
121
			ELSE
122
			BEGIN
123
						IF(EXISTS(SELECT Temp.FR_TRADE_ID FROM (
124
						SELECT TB.FR_TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE,
125
						SUM(ISNULL(PT.AMT_APP,0) +  ISNULL(PT.AMT_RECEIVE_TF,0) - ISNULL(PT.AMT_TF,0) - ISNULL(PT.AMT_ETM,0)) AS TOTAL_AMT_REMAIN 
126
						FROM dbo.PL_REQUEST_TRANSFER TB
127
						LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.FR_TRADE_ID
128
						WHERE  TB.REQ_DOC_ID=@REQ_ID AND TB.FR_BRN_ID=@BRANCH_ID  AND EXISTS(SELECT GD_ID FROM dbo.CM_GOODS WHERE GD_TYPE_ID='NS' AND GD_ID=TB.FR_GOOD_ID)
129
						GROUP BY TB.FR_TRADE_ID
130
						)Temp
131
						WHERE (Temp.TOTAL_AMT_EXE) > Temp.TOTAL_AMT_REMAIN))
132
						BEGIN
133
						
134
								INSERT INTO @Results
135
							(
136
								ERROR,
137
								ERROR_DES
138
							)
139
							VALUES
140
							(    1, -- ERROR - bit
141
								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)
142
							 )
143
							RETURN 
144
						END
145
			END
146
		END
147
		IF(EXISTS(SELECT Temp.TRADE_ID FROM (
148
		SELECT TB.TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE,
149
		SUM(ISNULL(PT.AMT_APP,0) +  ISNULL(PT.AMT_RECEIVE_TF,0) - ISNULL(PT.AMT_TF,0) - ISNULL(PT.AMT_ETM,0)) AS TOTAL_AMT_REMAIN ,
150
		SUM(ISNULL(PLTF.TOTAL_AMT,0)) AS TOTAL_TF
151
		FROM dbo.PL_REQUEST_DOC_DT TB
152
		LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.TRADE_ID  
153
		LEFT JOIN dbo.PL_MASTER PM ON PM.PLAN_ID=PT.PLAN_ID
154
		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
155
		WHERE TB.REQDT_TYPE='I' AND TB.REQ_ID=@REQ_ID  AND EXISTS(SELECT GD_ID FROM dbo.CM_GOODS WHERE GD_TYPE_ID='NS' AND GD_ID=TB.GOODS_ID)
156
		GROUP BY TB.TRADE_ID
157
		)Temp
158
		WHERE (Temp.TOTAL_AMT_EXE + Temp.TOTAL_TF) > Temp.TOTAL_AMT_REMAIN))
159
		BEGIN
160
			INSERT INTO @Results
161
			(
162
			    ERROR,
163
			    ERROR_DES
164
			)
165
			VALUES
166
			(    1, -- ERROR - bit
167
			    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)
168
			 )
169
			RETURN 
170
		END
171

    
172
		
173

    
174
		IF(EXISTS(SELECT Temp.GOODS_ID FROM (
175
		SELECT TB.GOODS_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE,
176
		SUM(ISNULL(PT.AMT_APP,0) +  ISNULL(PT.AMT_RECEIVE_TF,0) - ISNULL(PT.AMT_TF,0) - ISNULL(PT.AMT_ETM,0)) AS TOTAL_AMT_REMAIN ,
177
		SUM(ISNULL(PLTF.TOTAL_AMT,0)) AS TOTAL_TF
178
		FROM dbo.PL_REQUEST_DOC_DT TB
179
		LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.TRADE_ID 
180
		LEFT JOIN dbo.PL_REQUEST_TRANSFER PLTF ON PLTF.TO_GOOD_ID=TB.GOODS_ID AND PLTF.REQ_DOC_ID=TB.REQ_ID
181
		WHERE TB.REQDT_TYPE='O' AND TB.REQ_ID=@REQ_ID AND EXISTS(SELECT GD_ID FROM dbo.CM_GOODS WHERE GD_TYPE_ID='NS' AND GD_ID=TB.GOODS_ID)
182
		GROUP BY TB.GOODS_ID
183
		)Temp
184
		WHERE Temp.TOTAL_AMT_EXE > (Temp.TOTAL_AMT_REMAIN + Temp.TOTAL_TF)))
185
		BEGIN
186
			INSERT INTO @Results
187
			(
188
			    ERROR,
189
			    ERROR_DES
190
			)
191
			VALUES
192
			(    1, -- ERROR - bit
193
			    --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)
194
				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'
195
			 )
196
			RETURN 
197
		END
198

    
199

    
200
		 
201
	END
202
	ELSE IF (@TYPE_VALIDATE='PDDC')
203
	BEGIN
204
		IF(@PROCESS_ID='DVDM_DC')
205
		BEGIN
206
					IF(EXISTS(SELECT Temp.FR_TRADE_ID FROM (
207
						SELECT TB.FR_TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE,
208
						SUM(ISNULL(PT.AMT_APP,0) +  ISNULL(PT.AMT_RECEIVE_TF,0) - ISNULL(PT.AMT_TF,0) - ISNULL(PT.AMT_ETM,0)) AS TOTAL_AMT_REMAIN 
209
						FROM dbo.PL_REQUEST_TRANSFER TB
210
						LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.FR_TRADE_ID
211
						WHERE  TB.REQ_DOC_ID=@REQ_ID AND TB.FR_DVDM_ID IN (SELECT DVDM_ID FROM @LST_DVDM)  AND EXISTS(SELECT GD_ID FROM dbo.CM_GOODS WHERE GD_TYPE_ID='NS' AND GD_ID=TB.FR_GOOD_ID)
212
						GROUP BY TB.FR_TRADE_ID
213
						)Temp
214
						WHERE (Temp.TOTAL_AMT_EXE) > Temp.TOTAL_AMT_REMAIN))
215
						BEGIN
216
								INSERT INTO @Results
217
							(
218
								ERROR,
219
								ERROR_DES
220
							)
221
							VALUES
222
							(    1, -- ERROR - bit
223
								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)
224
							 )
225
							RETURN 
226
						END
227
		END
228
		ELSE IF(@PROCESS_ID='TC')
229
		BEGIN
230
			IF(EXISTS(SELECT Temp.FR_TRADE_ID FROM (
231
						SELECT TB.FR_TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE,
232
						SUM(ISNULL(PT.AMT_APP,0) +  ISNULL(PT.AMT_RECEIVE_TF,0) - ISNULL(PT.AMT_TF,0) - ISNULL(PT.AMT_ETM,0)) AS TOTAL_AMT_REMAIN 
233
						FROM dbo.PL_REQUEST_TRANSFER TB
234
						LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.FR_TRADE_ID
235
						WHERE  TB.REQ_DOC_ID=@REQ_ID AND EXISTS(SELECT GD_ID FROM dbo.CM_GOODS WHERE GD_TYPE_ID='NS' AND GD_ID=TB.FR_GOOD_ID)
236
						GROUP BY TB.FR_TRADE_ID
237
						)Temp
238
						WHERE (Temp.TOTAL_AMT_EXE) > Temp.TOTAL_AMT_REMAIN))
239
						BEGIN
240
								INSERT INTO @Results
241
							(
242
								ERROR,
243
								ERROR_DES
244
							)
245
							VALUES
246
							(    1, -- ERROR - bit
247
								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)
248
							 )
249
							RETURN 
250
						END
251
		END
252
		ELSE
253
		BEGIN
254
		IF(@BRANCH_TYPE='HS')
255
		BEGIN
256
			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
257
			AND (FR_TRADE_ID IS NULL OR FR_TRADE_ID ='')))
258
			BEGIN
259
				INSERT INTO @Results
260
			(
261
			    ERROR,
262
			    ERROR_DES
263
			)
264
			VALUES
265
			(    1, -- ERROR - bit
266
			    N'Chưa chọn hạng mục ngân sách điều chuyển'   -- ERROR_DES - nvarchar(100)
267
			 )
268
			RETURN 
269
			END
270
			ELSE
271
			BEGIN
272
						IF(EXISTS(SELECT Temp.FR_TRADE_ID FROM (
273
						SELECT TB.FR_TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE,
274
						SUM(ISNULL(PT.AMT_APP,0) +  ISNULL(PT.AMT_RECEIVE_TF,0) - ISNULL(PT.AMT_TF,0) - ISNULL(PT.AMT_ETM,0)) AS TOTAL_AMT_REMAIN 
275
						FROM dbo.PL_REQUEST_TRANSFER TB
276
						LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.FR_TRADE_ID
277
						WHERE  TB.REQ_DOC_ID=@REQ_ID AND TB.FR_BRN_ID=@BRANCH_ID AND @DEP_ID=TB.FR_DEP_ID AND EXISTS(SELECT GD_ID FROM dbo.CM_GOODS WHERE GD_TYPE_ID='NS' AND GD_ID=TB.FR_GOOD_ID)
278
						GROUP BY TB.FR_TRADE_ID
279
						)Temp
280
						WHERE (Temp.TOTAL_AMT_EXE) > Temp.TOTAL_AMT_REMAIN))
281
						BEGIN
282
						
283
								INSERT INTO @Results
284
							(
285
								ERROR,
286
								ERROR_DES
287
							)
288
							VALUES
289
							(    1, -- ERROR - bit
290
								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)
291
							 )
292
							RETURN 
293
						END
294
			END
295

    
296
		END
297
		ELSE IF(@BRANCH_TYPE<>'HS')
298
		BEGIN
299
			IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@REQ_ID AND FR_BRN_ID=@BRANCH_ID 
300
			AND (FR_TRADE_ID IS NULL OR FR_TRADE_ID ='')))
301
			BEGIN
302
				INSERT INTO @Results
303
			(
304
			    ERROR,
305
			    ERROR_DES
306
			)
307
			VALUES
308
			(    1, -- ERROR - bit
309
			    N'Chưa chọn hạng mục ngân sách điều chuyển'   -- ERROR_DES - nvarchar(100)
310
			 )
311
			RETURN 
312
			END
313
			ELSE
314
			BEGIN
315
						IF(EXISTS(SELECT Temp.FR_TRADE_ID FROM (
316
						SELECT TB.FR_TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE,
317
						SUM(ISNULL(PT.AMT_APP,0) +  ISNULL(PT.AMT_RECEIVE_TF,0) - ISNULL(PT.AMT_TF,0) - ISNULL(PT.AMT_ETM,0)) AS TOTAL_AMT_REMAIN 
318
						FROM dbo.PL_REQUEST_TRANSFER TB
319
						LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.FR_TRADE_ID
320
						WHERE  TB.REQ_DOC_ID=@REQ_ID AND TB.FR_BRN_ID=@BRANCH_ID AND EXISTS(SELECT GD_ID FROM dbo.CM_GOODS WHERE GD_TYPE_ID='NS' AND GD_ID=TB.FR_GOOD_ID)
321
						GROUP BY TB.FR_TRADE_ID
322
						)Temp
323
						WHERE (Temp.TOTAL_AMT_EXE) > Temp.TOTAL_AMT_REMAIN))
324
						BEGIN
325
						
326
								INSERT INTO @Results
327
								(
328
									ERROR,
329
									ERROR_DES
330
								)
331
								VALUES
332
								(    1, -- ERROR - bit
333
									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)
334
								 )
335
								RETURN 
336
						END
337
			END
338
		END
339
		END
340
	END
341
	ELSE IF(@TYPE_VALIDATE='PDTT')
342
	BEGIN
343
		
344
		IF(EXISTS(SELECT Temp.TRADE_ID FROM (
345
		SELECT TB.TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE,
346
		SUM(ISNULL(PT.AMT_APP,0) +  ISNULL(PT.AMT_RECEIVE_TF,0) - ISNULL(PT.AMT_TF,0) - ISNULL(PT.AMT_ETM,0)) AS TOTAL_AMT_REMAIN ,
347
		SUM(ISNULL(PLTF.TOTAL_AMT,0)) AS TOTAL_TF
348
		FROM dbo.PL_REQUEST_DOC_DT TB
349
		LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.TRADE_ID
350
		LEFT JOIN dbo.PL_MASTER PM ON PM.PLAN_ID=PT.PLAN_ID
351
		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
352
		WHERE TB.REQDT_TYPE='I' AND TB.REQ_ID=@REQ_ID AND TB.KHOI_ID IN (SELECT KHOI_ID FROM @LST_KHOI) AND EXISTS(SELECT GD_ID FROM dbo.CM_GOODS WHERE GD_TYPE_ID='NS' AND GD_ID=TB.GOODS_ID)
353
		GROUP BY TB.TRADE_ID
354
		)Temp
355
		WHERE (Temp.TOTAL_AMT_EXE + Temp.TOTAL_TF) > Temp.TOTAL_AMT_REMAIN))
356
		BEGIN
357
			INSERT INTO @Results
358
			(
359
			    ERROR,
360
			    ERROR_DES
361
			)
362
			VALUES
363
			(    1, -- ERROR - bit
364
			    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)
365
			 )
366
			RETURN 
367
		END
368

    
369
		
370

    
371
		IF(EXISTS(SELECT Temp.GOODS_ID FROM (
372
		SELECT TB.GOODS_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE,
373
		SUM(ISNULL(PT.AMT_APP,0) +  ISNULL(PT.AMT_RECEIVE_TF,0) - ISNULL(PT.AMT_TF,0) - ISNULL(PT.AMT_ETM,0)) AS TOTAL_AMT_REMAIN ,
374
		SUM(ISNULL(PLTF.TOTAL_AMT,0)) AS TOTAL_TF
375
		FROM dbo.PL_REQUEST_DOC_DT TB
376
		LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.TRADE_ID
377
		LEFT JOIN dbo.PL_REQUEST_TRANSFER PLTF ON PLTF.TO_GOOD_ID=TB.GOODS_ID AND PLTF.REQ_DOC_ID=TB.REQ_ID
378
		WHERE TB.REQDT_TYPE='O' AND TB.REQ_ID=@REQ_ID AND TB.KHOI_ID IN (SELECT KHOI_ID FROM @LST_KHOI) AND EXISTS(SELECT GD_ID FROM dbo.CM_GOODS WHERE GD_TYPE_ID='NS' AND GD_ID=TB.GOODS_ID)
379
		GROUP BY TB.GOODS_ID
380
		)Temp
381
		WHERE Temp.TOTAL_AMT_EXE > (Temp.TOTAL_AMT_REMAIN + Temp.TOTAL_TF)))
382
		BEGIN
383
			INSERT INTO @Results
384
			(
385
			    ERROR,
386
			    ERROR_DES
387
			)
388
			VALUES
389
			(    1, -- ERROR - bit
390
			    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)
391
			 )
392
			RETURN 
393
		END
394

    
395
					IF(EXISTS(SELECT Temp.FR_TRADE_ID FROM (
396
						SELECT TB.FR_TRADE_ID ,SUM(TB.TOTAL_AMT) AS TOTAL_AMT_EXE,
397
						SUM(ISNULL(PT.AMT_APP,0) +  ISNULL(PT.AMT_RECEIVE_TF,0) - ISNULL(PT.AMT_TF,0) - ISNULL(PT.AMT_ETM,0)) AS TOTAL_AMT_REMAIN 
398
						FROM dbo.PL_REQUEST_TRANSFER TB
399
						LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.TRADE_ID=TB.FR_TRADE_ID
400
						WHERE  TB.REQ_DOC_ID=@REQ_ID AND  TB.FR_KHOI_ID IN (SELECT KHOI_ID FROM @LST_KHOI) AND EXISTS(SELECT GD_ID FROM dbo.CM_GOODS WHERE GD_TYPE_ID='NS' AND GD_ID=TB.FR_GOOD_ID)
401
						GROUP BY TB.FR_TRADE_ID
402
						)Temp
403
						WHERE (Temp.TOTAL_AMT_EXE) > Temp.TOTAL_AMT_REMAIN))
404
						BEGIN
405
						
406
								INSERT INTO @Results
407
							(
408
								ERROR,
409
								ERROR_DES
410
							)
411
							VALUES
412
							(    1, -- ERROR - bit
413
								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)
414
							 )
415
							RETURN 
416
						END
417

    
418

    
419
	END
420
 END
421
 INSERT INTO @Results
422
			(
423
			    ERROR,
424
			    ERROR_DES
425
			)
426
			VALUES
427
			(    0, -- ERROR - bit
428
			    N''   -- ERROR_DES - nvarchar(100)
429
			)
430

    
431
RETURN 
432
END
433
 
434

    
435

    
436

    
437
GO
438