Project

General

Profile

PL_IMPORT_App.txt

Luc Tran Van, 01/05/2023 03:50 PM

 
1
ALTER PROCEDURE dbo.PL_IMPORT_App
2
    @P_IMPORT_ID VARCHAR(15),
3
    @P_AUTH_STATUS VARCHAR(1),
4
    @P_CHECKER_ID VARCHAR(12),
5
    @P_APPROVE_DT	VARCHAR(20) = NULL
6
AS
7

    
8
BEGIN TRY
9
BEGIN TRANSACTION;
10

    
11
DECLARE @IS_UPDATE BIT 
12

    
13

    
14
SET @IS_UPDATE = (SELECT IS_UPDATE FROM dbo.PL_IMPORT WHERE IMPORT_ID=@P_IMPORT_ID )
15

    
16

    
17
--VALIDATE dữ liệu
18

    
19
DECLARE @IMPORT_YEAR VARCHAR(4)
20

    
21
SET @IMPORT_YEAR=(SELECT CAST(IMP_YEAR AS VARCHAR(4)) FROM dbo.PL_IMPORT WHERE IMPORT_ID=@P_IMPORT_ID)
22

    
23
IF(EXISTS(SELECT *FROM dbo.PL_IMPORT_DT WHERE IMPORT_ID=@P_IMPORT_ID AND IMP_YEAR <> @IMPORT_YEAR))
24
BEGIN
25
	
26
		ROLLBACK TRANSACTION
27
		SELECT '-1' as Result, '' IMPORT_ID, N'Duyệt nhật thất bại,tồn tại hạn mục sai năm kế hoạch' ErrorDesc
28
		RETURN '-1'
29
	
30
END
31

    
32
IF(@IS_UPDATE=0)
33
BEGIN
34
IF(EXISTS(
35
SELECT DT.TRADE_ID FROM dbo.PL_MASTER PM 
36
LEFT JOIN dbo.PL_TRADEDETAIL DT ON PM.PLAN_ID=DT.PLAN_ID
37
WHERE PM.YEAR=@IMPORT_YEAR AND (EXISTS(
38
	SELECT Tmp.GOOD_ID FROM PL_IMPORT_DT Tmp WHERE (Tmp.IMP_YEAR=PM.YEAR AND Tmp.PLAN_TYPE_ID=PM.PLAN_TYPE_ID 
39
									AND Tmp.COST_ID=PM.COST_ID AND Tmp.BRANCH_ID=PM.BRANCH_ID 
40
									AND Tmp.DEP_ID=PM.DEPT_ID AND Tmp.GOOD_ID=DT.GOODS_ID) AND( (Tmp.QTY < ISNULL(DT.QUANTITY_EXE,0) AND  ISNULL(DT.QUANTITY_EXE,0) >0) OR (Tmp.TOTAL_AMT< ISNULL(DT.AMT_EXE,0) AND ISNULL(DT.AMT_EXE,0) >0) )
41
 ) OR (NOT EXISTS(SELECT Tmp.GOOD_ID FROM PL_IMPORT_DT Tmp WHERE (Tmp.IMP_YEAR=PM.YEAR AND Tmp.PLAN_TYPE_ID=PM.PLAN_TYPE_ID 
42
									AND Tmp.COST_ID=PM.COST_ID AND Tmp.BRANCH_ID=PM.BRANCH_ID 
43
									AND Tmp.DEP_ID=PM.DEPT_ID AND Tmp.GOOD_ID=DT.GOODS_ID) ) AND( ISNULL(DT.QUANTITY_EXE,0) > 0 OR ISNULL(DT.AMT_EXE,0) >0)
44
))))
45
BEGIN
46

    
47
		ROLLBACK TRANSACTION
48
		SELECT '-1' as Result, '' IMPORT_ID, N'Hạn mục chỉnh sửa đã sử dụng vượt hạn mức chỉnh sửa' ErrorDesc
49
		RETURN '-1'
50
END
51
END
52

    
53

    
54
-- Delete dữ liệu ko có trong import hiện tại.
55
IF(@IS_UPDATE=0)
56
BEGIN
57
UPDATE dbo.PL_TRADEDETAIL SET RECORD_STATUS=0 WHERE  NOT EXISTS(SELECT DT.IMP_DT_ID FROM dbo.PL_IMPORT_DT DT WHERE DT.TRADE_ID=PL_TRADEDETAIL.TRADE_ID) AND PL_TRADEDETAIL.PLAN_ID IN (SELECT PLAN_ID FROM dbo.PL_MASTER WHERE YEAR=@IMPORT_YEAR)
58

    
59
UPDATE dbo.PL_MASTER SET RECORD_STATUS=0 WHERE YEAR=@IMPORT_YEAR AND  NOT EXISTS(SELECT DT.IMP_DT_ID FROM dbo.PL_IMPORT_DT DT WHERE DT.PLAN_ID=PL_MASTER.PLAN_ID)
60
END
61

    
62

    
63
DECLARE @PLAN_CODE VARCHAR(20),
64
		@PLAN_NAME NVARCHAR(200),
65
		@YEAR INT,
66
        @PLAN_TYPE_ID VARCHAR(15),
67
        @COST_ID VARCHAR(15),
68
        @BRANCH_ID VARCHAR(15),
69
		@BRANCH_CODE VARCHAR(15),
70
        @DEP_ID VARCHAR(15),
71
		@DEP_CODE VARCHAR(15),
72
        @GOOD_ID VARCHAR(15),
73
        @QTY INT,
74
        @TOTAL_AMT DECIMAL(18, 2),
75
		@AMT_ETM DECIMAL(18, 2),
76
		@AMT_EXE DECIMAL(18, 2),  
77
		@AMT_TF DECIMAL(18, 2),
78
		@AMT_RECIVE_TF DECIMAL(18, 2),
79
        @NOTES NVARCHAR(1000),
80
		@IMP_AMT NUMERIC(18, 2),
81
		@IMP_QTY NUMERIC(18, 0),
82
		@MARKER_ID VARCHAR(15),
83
		@EDIT_DT DATETIME,
84
		@PLAN_ID VARCHAR(15),
85
		@TRADE_ID VARCHAR(15),
86
		@REF_CODE VARCHAR(20),
87
		@REF_NAME NVARCHAR(200),
88
		@IMP_DT_ID VARCHAR(20)
89

    
90

    
91
SELECT @MARKER_ID=MAKER_ID,@EDIT_DT=EDIT_DT FROM dbo.PL_IMPORT WHERE IMPORT_ID=@P_IMPORT_ID
92

    
93

    
94
DECLARE Plan_Master CURSOR LOCAL FOR
95
SELECT IM.PLAN_CODE,IM.IMP_NAME,IM.IMP_YEAR,SUM(ISNULL(IMDT.QTY,0)) AS QTY,SUM(ISNULL(IMDT.TOTAL_AMT,0)) AS AMT, IMDT.PLAN_TYPE_ID, IMDT.COST_ID,IMDT.BRANCH_ID,IMDT.DEP_ID,
96
IMDT.PLAN_ID,IMDT.BRANCH_CODE,IMDT.DEP_CODE
97
FROM dbo.PL_IMPORT IM
98
LEFT JOIN dbo.PL_IMPORT_DT IMDT ON IM.IMPORT_ID=IMDT.IMPORT_ID
99
WHERE IM.IMPORT_ID = @P_IMPORT_ID AND IMDT.IS_UPDATE=1
100
GROUP BY IM.PLAN_CODE,IM.IMP_NAME,IM.IMP_YEAR,IMDT.PLAN_TYPE_ID,IMDT.COST_ID,IMDT.BRANCH_ID,IMDT.DEP_ID,IMDT.PLAN_ID,IMDT.BRANCH_CODE,IMDT.DEP_CODE
101
OPEN Plan_Master;
102

    
103
	FETCH NEXT FROM Plan_Master INTO @PLAN_CODE,@PLAN_NAME,@YEAR,@IMP_QTY,@IMP_AMT, @PLAN_TYPE_ID,@COST_ID,@BRANCH_ID,@DEP_ID,@PLAN_ID,@BRANCH_CODE,@DEP_CODE
104
	
105
	WHILE @@FETCH_STATUS = 0	
106
	BEGIN	
107

    
108
		SET @PLAN_NAME=N'KẾ HOẠCH NGÂN SÁCH '+ CAST( @YEAR AS VARCHAR(10))
109
		SET @PLAN_CODE= @DEP_CODE+(SELECT RIGHT(CAST( @YEAR AS VARCHAR(10)),2))
110
		IF(NOT EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_CODE IN ('069','799','899') AND BRANCH_ID =@BRANCH_ID)) -- LUCTV 23.11.2022 BO SUNG KIEM TRA NEU Ở DVKD THI KHONG PHAN BO CHI PHI VE PHONG BAN
111
		BEGIN
112
				SET @DEP_ID=''
113
		END
114
		--- END LUCTV 23.11.2022
115
		IF(@PLAN_ID IS NULL OR @PLAN_ID='' )
116
		BEGIN
117
			EXEC SYS_CodeMasters_Gen 'PL_MASTER', @PLAN_ID out
118
			IF @PLAN_ID='' OR @PLAN_ID IS NULL GOTO ABORT	
119
	
120
			INSERT INTO dbo.PL_MASTER
121
			(
122
				PLAN_ID, PLAN_CODE,PLAN_NAME,BRANCH_ID,DEPT_ID,EFFECT_DT,PLAN_TYPE,TOTAL_AMT,APPROVE_VALUE, 
123
				VERSON,YEAR,STATUS,NOTES,RECORD_STATUS, MAKER_ID,CREATE_DT,AUTH_STATUS,CHECKER_ID,APPROVE_DT,PLAN_TYPE_ID,COST_ID)
124
			VALUES
125
			(   @PLAN_ID,@PLAN_CODE,@PLAN_NAME,@BRANCH_ID,@DEP_ID,GETDATE(),'',@IMP_AMT, @IMP_AMT,      
126
				1,@YEAR,'1', N'','1', @MARKER_ID,@EDIT_DT,@P_AUTH_STATUS, @P_CHECKER_ID, CONVERT(DATETIME,@P_APPROVE_DT,103), @PLAN_TYPE_ID,@COST_ID  
127
			 )
128
		END
129
		ELSE
130
		BEGIN
131
		 UPDATE dbo.PL_MASTER SET MAKER_ID=@MARKER_ID,CREATE_DT=@EDIT_DT,AUTH_STATUS=@P_AUTH_STATUS,CHECKER_ID=@P_CHECKER_ID,APPROVE_DT=CONVERT(DATETIME,@P_APPROVE_DT,103)
132
		 ,TOTAL_AMT=@IMP_AMT,APPROVE_VALUE=@IMP_AMT,VERSON=VERSON+1,PLAN_CODE=@PLAN_CODE,PLAN_NAME=@PLAN_NAME WHERE PLAN_ID=@PLAN_ID
133
		END
134
		
135
		 DECLARE Plan_Detail CURSOR FOR
136
		 SELECT IMP_DT_ID,GOOD_ID,QTY,TOTAL_AMT,NOTES,TRADE_ID,REF_CODE,REF_NAME,AMT_ETM,AMT_EXE,AMT_TF,AMT_RECEIVE_TF FROM dbo.PL_IMPORT_DT 
137
		 WHERE IMPORT_ID = @P_IMPORT_ID AND IS_UPDATE=1 AND PLAN_TYPE_ID=@PLAN_TYPE_ID AND ISNULL(COST_ID,'')=ISNULL(@COST_ID,'') AND BRANCH_ID=@BRANCH_ID AND (BRANCH_CODE NOT IN ('069','799','899') OR DEP_ID=@DEP_ID)
138
		 OPEN Plan_Detail
139
			FETCH NEXT FROM Plan_Detail INTO @IMP_DT_ID,@GOOD_ID,@QTY,@TOTAL_AMT,@NOTES,@TRADE_ID,@REF_CODE,@REF_NAME,@AMT_ETM,@AMT_EXE,@AMT_TF,@AMT_RECIVE_TF
140
			WHILE @@FETCH_STATUS = 0	
141
			BEGIN
142
			IF(@TRADE_ID IS NULL OR @TRADE_ID='')
143
			BEGIN
144
			EXEC SYS_CodeMasters_Gen 'PL_TRADEDETAIL', @TRADE_ID out
145
			IF @TRADE_ID='' OR @TRADE_ID IS NULL GOTO ABORT	
146
			
147
			DELETE FROM dbo.PL_TRADE_REF WHERE TRADE_ID=@TRADE_ID
148

    
149
			INSERT INTO dbo.PL_TRADEDETAIL
150
			(
151
			    TRADE_ID,
152
			    PLAN_ID,
153
			    GOODS_ID,
154
			    QUANTITY,
155
			    AMT_APP,
156
			    NOTES,
157
			    RECORD_STATUS,
158
			    MAKER_ID,
159
			    CREATE_DT,
160
			    AUTH_STATUS,
161
			    CHECKER_ID,
162
			    APPROVE_DT,
163
				AMT_ETM,
164
				AMT_EXE,
165
				AMT_TF,
166
				AMT_RECEIVE_TF
167
			)
168
			VALUES
169
			(   @TRADE_ID,        -- TRADE_ID - varchar(15)
170
			    @PLAN_ID,        -- PLAN_ID - varchar(15)
171
			    @GOOD_ID,        -- GOODS_ID - varchar(15)
172
			    @QTY,      -- QUANTITY - decimal(18, 0)
173
			    @TOTAL_AMT,      -- PRICE - decimal(18, 0)			  
174
			   @NOTES,       -- NOTES - nvarchar(1000)
175
			    '1',        -- RECORD_STATUS - varchar(1)
176
			    @MARKER_ID,        -- MAKER_ID - varchar(12)
177
			   CAST( @EDIT_DT AS DATE), -- CREATE_DT - datetime
178
			    @P_AUTH_STATUS,        -- AUTH_STATUS - varchar(50)
179
			   @P_CHECKER_ID,        -- CHECKER_ID - varchar(12)
180
			  CONVERT(DATETIME,@P_APPROVE_DT,103),  -- APPROVE_DT - datetime
181
			  @AMT_ETM,
182
			  @AMT_EXE,
183
			  @AMT_TF,
184
			  @AMT_RECIVE_TF
185
			    )	
186

    
187
				INSERT INTO dbo.PL_TRADE_REF
188
			(
189
			    TRADE_ID,
190
			    REF_CODE,
191
			    REF_NAME
192
			)
193
			VALUES
194
			(   @TRADE_ID, -- TRADE_ID - varchar(15)
195
			    @REF_CODE, -- REF_CODE - varchar(50)
196
			    @REF_NAME -- REF_NAME - nvarchar(500)
197
			    )
198
			
199
			END
200
			
201
			ELSE
202
			BEGIN
203
				UPDATE dbo.PL_TRADEDETAIL SET
204
				 QUANTITY=@QTY,
205
				 AMT_APP=@TOTAL_AMT,
206
				 NOTES=@NOTES,
207
				 MAKER_ID=@MARKER_ID,
208
				 CREATE_DT=CAST(@EDIT_DT AS DATE),
209
				 AUTH_STATUS=@P_AUTH_STATUS,
210
				 CHECKER_ID= @P_CHECKER_ID,
211
				 APPROVE_DT= CONVERT(DATETIME,@P_APPROVE_DT,103)
212
				-- AMT_ETM=@AMT_ETM,
213
				-- AMT_EXE=@AMT_EXE,
214
				-- AMT_TF=@AMT_TF,
215
				-- AMT_RECEIVE_TF=@AMT_RECIVE_TF
216
				WHERE TRADE_ID=@TRADE_ID
217
			END
218

    
219
			
220

    
221
			UPDATE dbo.PL_IMPORT_DT SET PLAN_ID=@PLAN_ID,TRADE_ID=@TRADE_ID WHERE IMP_DT_ID=@IMP_DT_ID
222

    
223
			FETCH NEXT FROM Plan_Detail INTO @IMP_DT_ID,@GOOD_ID,@QTY,@TOTAL_AMT,@NOTES,@TRADE_ID,@REF_CODE,@REF_NAME,@AMT_ETM,@AMT_EXE,@AMT_TF,@AMT_RECIVE_TF
224
			END
225
			CLOSE Plan_Detail
226
			DEALLOCATE Plan_Detail
227
		FETCH NEXT FROM Plan_Master INTO @PLAN_CODE,@PLAN_NAME,@YEAR,@IMP_QTY,@IMP_AMT, @PLAN_TYPE_ID,@COST_ID,@BRANCH_ID,@DEP_ID,@PLAN_ID,@BRANCH_CODE,@DEP_CODE
228
	END
229
	CLOSE Plan_Master;
230
	DEALLOCATE Plan_Master;
231

    
232
UPDATE dbo.PL_IMPORT
233
SET AUTH_STATUS = @P_AUTH_STATUS,
234
    CHECKER_ID = @P_CHECKER_ID,
235
    APPROVE_DT = CONVERT(DATETIME,@P_APPROVE_DT,103)
236
WHERE IMPORT_ID = @P_IMPORT_ID;
237

    
238
UPDATE dbo.PL_IMPORT_LOG SET AUTH_STATUS = @P_AUTH_STATUS,
239
    CHECKER_ID = @P_CHECKER_ID,
240
    APPROVE_DT = CONVERT(DATETIME,@P_APPROVE_DT,103)
241
WHERE IMP_ID = @P_IMPORT_ID AND IMP_LOG_CODE= (SELECT TOP (1) IMP_LOG_CODE FROM dbo.PL_IMPORT_LOG WHERE IMP_ID=@P_IMPORT_ID ORDER BY IMP_LOG_ID DESC)
242

    
243

    
244
UPDATE dbo.PL_TRADEDETAIL SET PRICE = AMT_APP/ QUANTITY WHERE QUANTITY <> 0 OR QUANTITY IS NULL
245
UPDATE dbo.PL_TRADEDETAIL SET PRICE = AMT_APP WHERE QUANTITY = 0
246

    
247
--UPDATE dbo.LIMIT_ACCUMULATE SET MAX_AMT=ISNULL(( 
248
--SELECT TEMP.AMT_APP FROM (SELECT CD.DVDM_ID,SUM(ISNULL(PT.AMT_APP,0)) AS AMT_APP FROM dbo.CM_DVDM CD 
249
--LEFT JOIN dbo.CM_GOOD_DVDM CGD ON CGD.KHOI_ID=CD.DVDM_ID
250
--LEFT JOIN dbo.PL_TRADEDETAIL PT ON PT.GOODS_ID=CGD.GD_ID
251
--WHERE CD.IS_KHOI=1 AND PT.PLAN_ID IN  (SELECT PLAN_ID FROM dbo.PL_MASTER WHERE YEAR=@IMPORT_YEAR)
252
--GROUP BY CD.DVDM_ID
253
--)TEMP WHERE TEMP.DVDM_ID=LIMIT_ACCUMULATE.DVDM_ID
254
--),0) * (SELECT LIMIT_PERCENT FROM dbo.TL_SYSROLE_LIMIT WHERE TL_SYSROLE_LIMIT.ROLE_ID=LIMIT_ACCUMULATE.ROLE_ID AND LIMIT_TYPE='DCNS')/100
255

    
256

    
257
DECLARE @KHOI_ID VARCHAR(20),@AMT_APP DECIMAL(18,2),@LIMIT_PERCENT DECIMAL(18,2),@LIMIT_ID VARCHAR(20)
258
--SET @LIMIT_PERCENT =(SELECT LIMIT_PERCENT FROM dbo.TL_SYSROLE_LIMIT WHERE TL_SYSROLE_LIMIT.ROLE_ID=LIMIT_ACCUMULATE.ROLE_ID AND LIMIT_TYPE='DCNS')/100
259
DECLARE lstDATA CURSOR LOCAL FOR
260
SELECT CDK.KHOI_ID,SUM(PT.AMT_APP) AMT_APP FROM dbo.PL_MASTER PM
261
LEFT JOIN dbo.PL_TRADEDETAIL PT ON PM.PLAN_ID = PT.PLAN_ID
262
LEFT JOIN dbo.CM_GOODS CG ON CG.GD_ID=PT.GOODS_ID
263
LEFT JOIN dbo.CM_DVDM_KHOI CDK ON CDK.DVDM_ID=PM.COST_ID
264
WHERE PM.YEAR=@IMPORT_YEAR AND PT.RECORD_STATUS=1 
265
--AND CG.GD_TYPE_ID='NS'
266
GROUP BY CDK.KHOI_ID
267
OPEN lstDATA
268
FETCH NEXT FROM lstDATA INTO @KHOI_ID,@AMT_APP
269
WHILE @@FETCH_STATUS=0
270
BEGIN
271
SET @LIMIT_PERCENT =(SELECT LIMIT_PERCENT FROM dbo.TL_SYSROLE_LIMIT WHERE TL_SYSROLE_LIMIT.ROLE_ID='GDK' AND LIMIT_TYPE='DCNS')/100
272
IF(EXISTS(SELECT * FROM dbo.LIMIT_ACCUMULATE WHERE DVDM_ID=@KHOI_ID AND ROLE_ID='GDK'))
273
	UPDATE dbo.LIMIT_ACCUMULATE SET MAX_AMT=@AMT_APP*@LIMIT_PERCENT WHERE ROLE_ID='GDK' AND DVDM_ID=@KHOI_ID
274
ELSE
275
	BEGIN	  
276
	    EXEC dbo.SYS_CodeMasters_Gen @p_Kind = 'LIMIT_ACCUMULATE',                -- varchar(100)
277
	                                 @p_KeyGen = @LIMIT_ID OUTPUT -- varchar(15)
278
		INSERT INTO dbo.LIMIT_ACCUMULATE
279
		(
280
		    LIMIT_ID,
281
		    ROLE_ID,
282
		    TOTAL_APP_AMT,
283
		    MAX_AMT,
284
		    DVDM_ID,
285
		    BRANCH_ID
286
		)
287
		VALUES
288
		(   @LIMIT_ID,   -- LIMIT_ID - varchar(20)
289
		    'GDK',   -- ROLE_ID - varchar(20)
290
		    NULL, -- TOTAL_APP_AMT - decimal(18, 2)
291
		    (@AMT_APP*@LIMIT_PERCENT), -- MAX_AMT - decimal(18, 2)
292
		    @KHOI_ID,   -- DVDM_ID - varchar(20)
293
		    ''    -- BRANCH_ID - varchar(20)
294
		    )
295
	    
296
	END
297
IF(EXISTS(SELECT * FROM dbo.LIMIT_ACCUMULATE WHERE DVDM_ID=@KHOI_ID AND ROLE_ID='PTGD'))
298
	UPDATE dbo.LIMIT_ACCUMULATE SET MAX_AMT=@AMT_APP*@LIMIT_PERCENT WHERE ROLE_ID='PTGD' AND DVDM_ID=@KHOI_ID
299
ELSE
300
	BEGIN	  
301
	    EXEC dbo.SYS_CodeMasters_Gen @p_Kind = 'LIMIT_ACCUMULATE',                -- varchar(100)
302
	                                 @p_KeyGen = @LIMIT_ID OUTPUT -- varchar(15)
303
		INSERT INTO dbo.LIMIT_ACCUMULATE
304
		(
305
		    LIMIT_ID,
306
		    ROLE_ID,
307
		    TOTAL_APP_AMT,
308
		    MAX_AMT,
309
		    DVDM_ID,
310
		    BRANCH_ID
311
		)
312
		VALUES
313
		(   @LIMIT_ID,   -- LIMIT_ID - varchar(20)
314
		    'PTGD',   -- ROLE_ID - varchar(20)
315
		    NULL, -- TOTAL_APP_AMT - decimal(18, 2)
316
		    (@AMT_APP*@LIMIT_PERCENT), -- MAX_AMT - decimal(18, 2)
317
		    @KHOI_ID,   -- DVDM_ID - varchar(20)
318
		    ''    -- BRANCH_ID - varchar(20)
319
		    )
320
	    
321
	END
322
FETCH NEXT FROM lstDATA INTO @KHOI_ID,@AMT_APP
323
END
324
CLOSE lstDATA
325
DEALLOCATE lstDATA
326
DECLARE lstDATA CURSOR LOCAL FOR
327
SELECT PM.BRANCH_ID,SUM(PT.AMT_APP) AMT_APP FROM dbo.PL_MASTER PM
328
LEFT JOIN dbo.PL_TRADEDETAIL PT ON PM.PLAN_ID = PT.PLAN_ID
329
LEFT JOIN dbo.CM_GOODS CG ON CG.GD_ID=PT.GOODS_ID
330
WHERE PM.YEAR=@IMPORT_YEAR AND PT.RECORD_STATUS=1 
331
--AND CG.GD_TYPE_ID='NS'
332
GROUP BY PM.BRANCH_ID
333
--OPEN lstDATA
334
--FETCH NEXT FROM lstDATA INTO @BRANCH_ID,@AMT_APP
335
--WHILE @@FETCH_STATUS=0
336
--BEGIN
337
--SET @LIMIT_PERCENT =(SELECT LIMIT_PERCENT FROM dbo.TL_SYSROLE_LIMIT WHERE TL_SYSROLE_LIMIT.ROLE_ID='GDDV' AND LIMIT_TYPE='DCNS')/100
338
--IF(EXISTS(SELECT * FROM dbo.LIMIT_ACCUMULATE WHERE BRANCH_ID=@BRANCH_ID AND ROLE_ID='GDDV'))
339
--	UPDATE dbo.LIMIT_ACCUMULATE SET MAX_AMT=@AMT_APP*@LIMIT_PERCENT WHERE ROLE_ID='GDDV' AND BRANCH_ID=@BRANCH_ID
340
--ELSE
341
--	BEGIN	  
342
--	    EXEC dbo.SYS_CodeMasters_Gen @p_Kind = 'LIMIT_ACCUMULATE',                -- varchar(100)
343
--	                                 @p_KeyGen = @LIMIT_ID OUTPUT -- varchar(15)
344
--		INSERT INTO dbo.LIMIT_ACCUMULATE
345
--		(
346
--		    LIMIT_ID,
347
--		    ROLE_ID,
348
--		    TOTAL_APP_AMT,
349
--		    MAX_AMT,
350
--		    DVDM_ID,
351
--		    BRANCH_ID
352
--		)
353
--		VALUES
354
--		(   @LIMIT_ID,   -- LIMIT_ID - varchar(20)
355
--		    'GDDV',   -- ROLE_ID - varchar(20)
356
--		    NULL, -- TOTAL_APP_AMT - decimal(18, 2)
357
--		    (@AMT_APP*@LIMIT_PERCENT), -- MAX_AMT - decimal(18, 2)
358
--		    '',   -- DVDM_ID - varchar(20)
359
--		    @BRANCH_ID    -- BRANCH_ID - varchar(20)
360
--		    )
361
	    
362
--	END
363
--FETCH NEXT FROM lstDATA INTO @BRANCH_ID,@AMT_APP
364
--END
365
--CLOSE lstDATA
366
--DEALLOCATE lstDATA
367

    
368

    
369

    
370
COMMIT TRANSACTION;
371
SELECT '0' AS Result,
372
       '' ErrorDesc;
373
RETURN '0';
374
END TRY
375
BEGIN CATCH
376
	ROLLBACK TRANSACTION;
377
    SELECT '-1' AS Result,
378
			ERROR_MESSAGE() ErrorDesc;
379
    RETURN '-1';		
380
END CATCH
381
ABORT:
382
BEGIN
383
    ROLLBACK TRANSACTION;
384
    SELECT '-1' AS Result,
385
           ERROR_MESSAGE() ErrorDesc;
386
    RETURN '-1';
387
END;