Project

General

Profile

PL_REQUEST_TRANSFER_Upd.txt

Luc Tran Van, 11/08/2022 03:09 PM

 
1
ALTER PROCEDURE dbo.PL_REQUEST_TRANSFER_Upd
2
@p_REQ_ID VARCHAR(15)=NULL,
3
@p_REQ_CODE	nvarchar(100)  = NULL,
4
@p_REQ_NAME	nvarchar(200)  = NULL,
5
@p_REQ_DT	NVARCHAR(20) = NULL,
6
@p_REQ_TYPE	int = NULL,
7
@p_REQ_CONTENT NVARCHAR(1000)=NULL,
8
@p_REQ_REASON NVARCHAR(500)=NULL,
9
@p_TOTAL_AMT	decimal = NULL,
10
@p_NOTES	nvarchar(1000)  = NULL,
11
@p_RECORD_STATUS	varchar(1)  = NULL,
12
@p_MAKER_ID	varchar(20)  = NULL,
13
@p_CREATE_DT	NVARCHAR(20) = NULL,
14
@p_AUTH_STATUS	varchar(50)  = NULL,
15
@p_CHECKER_ID	varchar(20)  = NULL,
16
@p_APPROVE_DT	NVARCHAR(20) = NULL,
17
@p_BRANCH_ID VARCHAR(15)=NULL,
18
@p_DVDM_ID VARCHAR(20) = NULL,
19
@p_REQ_PARENT_ID VARCHAR(20) = NULL,
20
@p_BRANCH_FEE NVARCHAR(500) = NULL,
21
@p_DEP_ID VARCHAR(20)=NULL,
22
@p_DEP_FEE_ID VARCHAR(20)= NULL,
23
@p_IS_BACKDAY BIT= NULL,
24
@p_REQ_LINE VARCHAR(20),
25
@p_SIGN_USER VARCHAR(20) = NULL,
26
@p_IS_CHECKALL BIT = NULL,
27
@p_BASED_CONTENT NVARCHAR(3000) = NULL,
28
@p_PL_BASED_ID VARCHAR(15)= NULL,
29
@p_CREATOR_NOTES nvarchar(1000)  = NULL,
30
@p_ListCostCenter XML,
31
@p_ListTransfer XML,
32
@p_ListAttachFile XML
33

    
34
AS
35
DECLARE @TEMP TABLE
36
			(
37
				[KEY] varchar(15),
38
				[REF_ID] varchar(15),
39
				[TYPE] varchar(50)
40
			)
41
SET @p_CREATE_DT =convert(datetime,@p_CREATE_DT,103)
42
SET @p_APPROVE_DT=convert(datetime,@p_APPROVE_DT,103)
43
SET @p_REQ_DT = convert(datetime,@p_REQ_DT,103)
44
  IF(NOT EXISTS(SELECT prd.REQ_ID FROM PL_REQUEST_DOC prd WHERE prd.REQ_ID = @p_REQ_ID AND prd.AUTH_STATUS IN ('E','R')))
45
  BEGIN
46
    SELECT '-1' Result, '' REQ_ID, N'Cập nhật thất bại! Tờ trình đã được gửi phê duyệt.' ErrorDesc 
47
		RETURN '-1'
48
  END
49
	IF(@p_REQ_CODE IS NULL OR @p_REQ_CODE ='')
50
	BEGIN
51
		SELECT 'REQ-00001' Result, '' REQ_ID, N'Mã tờ trình chủ trương bắt buộc nhập' ErrorDesc 
52
		RETURN '-1'
53
	END
54
	IF EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE [REQ_CODE] = @p_REQ_CODE AND REQ_ID <> @p_REQ_ID)
55
	BEGIN
56
		SELECT ErrorCode Result, '' REQ_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'REQ-00001'
57
		RETURN '-1'
58
	END
59
	DECLARE @sErrorCode VARCHAR(20)
60
		
61
  BEGIN TRANSACTION
62
		
63
		DECLARE @BRANCH_CREATE VARCHAR(20),@DEP_CREATE VARCHAR(20)
64

    
65
		SET  @BRANCH_CREATE= (SELECT TLSUBBRID  FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID)
66
		SET @DEP_CREATE=(SELECT SECUR_CODE  FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID)
67
		
68
		IF(EXISTS(SELECT * FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE AND BRANCH_TYPE='HS') 
69
			OR EXISTS(SELECT DEP_ID FROM dbo.CM_DEPARTMENT WHERE DEP_ID=@DEP_CREATE AND DEP_CODE LIKE '069%'))		
70
			SET @DEP_CREATE=(SELECT SECUR_CODE  FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID)
71
		ELSE
72
			SET @DEP_CREATE=''
73
		
74

    
75
		SET @p_DEP_ID=@DEP_CREATE
76
		SET @p_BRANCH_ID=@BRANCH_CREATE
77

    
78

    
79
		IF(convert(datetime,@p_REQ_DT,103) < CAST(GETDATE() AS DATE))
80
			SET @p_IS_BACKDAY=1;
81
		ELSE
82
			SET  @p_IS_BACKDAY=0
83

    
84
		UPDATE dbo.PL_REQUEST_DOC 
85
		SET REQ_CODE=@p_REQ_CODE,REQ_NAME=@p_REQ_NAME,REQ_TYPE=@p_REQ_TYPE,REQ_CONTENT=@p_REQ_CONTENT,REQ_REASON=@p_REQ_REASON,RECORD_STATUS=@p_RECORD_STATUS
86
		,BRANCH_ID=@p_BRANCH_ID,TOTAL_AMT=@p_TOTAL_AMT,NOTES=@p_NOTES,MAKER_ID=@p_MAKER_ID,CHECKER_ID=@p_CHECKER_ID,APPROVE_DT=@p_APPROVE_DT,AUTH_STATUS=@p_AUTH_STATUS,DVDM_APP_ID=@p_DVDM_ID
87
		,REQ_PARENT_ID=@p_REQ_PARENT_ID,BRANCH_FEE=@p_BRANCH_FEE,IS_BACKDAY=@p_IS_BACKDAY,DEP_ID=@p_DEP_ID,DEP_FEE=@p_DEP_FEE_ID,REQ_LINE=@p_REQ_LINE,SIGN_USER = @p_SIGN_USER,IS_CHECKALL=@p_IS_CHECKALL,BASED_CONTENT=@p_BASED_CONTENT,
88
		PL_BASED_ID =@p_PL_BASED_ID, CREATOR_NOTES = @p_CREATOR_NOTES
89
		WHERE REQ_ID=@p_REQ_ID
90
		DELETE FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID
91
		DELETE FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID
92
		DELETE FROM dbo.PL_REQUEST_COSTCENTER WHERE REQ_ID=@p_REQ_ID
93

    
94
		
95
		IF @@Error <> 0 GOTO ABORT
96
		--Insert into TABLE PL_REQUEST_DOC_DT
97
	DECLARE @TABLE TABLE(
98
			PLAN_ID	varchar(15)  ,
99
			TRADE_ID	varchar(15)  ,
100
			GOODS_ID	varchar(15)  ,
101
			[DESCRIPTION] nvarchar(500),
102
			UNIT_ID	varchar(15)  ,
103
			QUANTITY	decimal(18,0)  ,
104
			PRICE	decimal(18,2)  ,
105
			TOTAL_AMT	decimal(18,2),	
106
			NOTES	nvarchar(1000),
107
			REQDT_TYPE VARCHAR(1),
108
			NAME NVARCHAR(500),
109
			DVDM_ID VARCHAR(20),
110
			HH_ID VARCHAR(20),
111
			CURRENCY	nvarchar(50),
112
			EXCHANGE_RATE	decimal(18,2),
113
			TAXES	decimal(18, 2),
114
			SUP_ID VARCHAR(20),
115
			TRADE_TYPE VARCHAR(20),
116
			KHOI_ID VARCHAR(20),
117
			UNIT_NAME NVARCHAR(200), SUP_NAME NVARCHAR(250)
118
		)
119
		--Insert into TABLE PL_REQUEST_DOC_DT
120
		Declare @hdoc INT
121
		
122

    
123

    
124

    
125
		DECLARE @TABLE_TRANSFER TABLE (
126
			FR_PLAN_ID	varchar(15),
127
			FR_TRADE_ID	varchar(15),
128
			FR_GOOD_ID	varchar(15),
129
			FR_BRN_ID	varchar(15),
130
			TO_BRN_ID	varchar(15),
131
			TO_PLAN_ID	varchar(15),
132
			TO_TRADE_ID	varchar(15),	
133
			TO_GOOD_ID	varchar(15),	
134
			QTY  DECIMAL(18,0),
135
			TOTAL_AMT	decimal(18),	
136
			NOTES	nvarchar(1000),
137
			FR_DEP_ID VARCHAR(20),
138
			TO_DEP_ID VARCHAR(20),
139
			FR_DVDM_ID VARCHAR(20),
140
			TO_DVDM_ID VARCHAR(20),
141
			FR_KHOI_ID VARCHAR(20),
142
			TO_KHOI_ID VARCHAR(20),
143
			FR_GD_TYPE VARCHAR(20),
144
			TO_GD_TYPE VARCHAR(20),
145

    
146
			TO_AMT_APP decimal(18),
147
			TO_AMT_ETM  decimal(18),
148
			TO_AMT_EXE decimal(18),
149
			TO_AMT_TF decimal(18),
150
			TO_AMT_RECEIVE_TF decimal(18),
151

    
152
			FR_AMT_APP decimal(18),
153
			FR_AMT_ETM decimal(18),
154
			FR_AMT_EXE decimal(18),
155
			FR_AMT_TF decimal(18),
156
			FR_AMT_RECEIVE_TF decimal(18),
157

    
158
			TO_AMT_FINAL decimal(18),
159
			FR_AMT_FINAL decimal(18)
160
		)
161
		Exec sp_xml_preparedocument @hdoc Output,@p_ListTransfer
162
		INSERT INTO @TABLE_TRANSFER
163
		SELECT FR_PLAN_ID,
164
               FR_TRADE_ID,
165
               FR_GOOD_ID,
166
               FR_BRN_ID,
167
               TO_BRN_ID,
168
               TO_PLAN_ID,
169
               TO_TRADE_ID,
170
               TO_GOOD_ID,
171
               QTY,
172
               TOTAL_AMT,
173
               NOTES,
174
               FR_DEP_ID,
175
               TO_DEP_ID,
176
               FR_DVDM_ID,
177
               TO_DVDM_ID,
178
               FR_KHOI_ID,
179
               TO_KHOI_ID,
180
               FR_GD_TYPE,
181
               TO_GD_TYPE,
182

    
183
			   TO_AMT_APP,
184
			   TO_AMT_ETM,
185
			   TO_AMT_EXE,
186
			   TO_AMT_TF,
187
			   TO_AMT_RECEIVE_TF,
188

    
189
			   FR_AMT_APP,
190
			   FR_AMT_ETM,
191
			   FR_AMT_EXE,
192
			   FR_AMT_TF,
193
			   FR_AMT_RECEIVE_TF,
194

    
195
			   TO_AMT_FINAL,
196
			   FR_AMT_FINAL
197
		FROM OPENXML(@hdoc,'/Root/ListTransfer',2)
198
		WITH 
199
		(
200
			FR_PLAN_ID	varchar(15),
201
			FR_TRADE_ID	varchar(15),
202
			FR_GOOD_ID	varchar(15),
203
			FR_BRN_ID	varchar(15),
204
			TO_BRN_ID	varchar(15),
205
			TO_PLAN_ID	varchar(15),
206
			TO_TRADE_ID	varchar(15),	
207
			TO_GOOD_ID	varchar(15),	
208
			QTY  DECIMAL(18,0),
209
			TOTAL_AMT	decimal(18),	
210
			NOTES	nvarchar(1000),
211
			FR_DEP_ID VARCHAR(20),
212
			TO_DEP_ID VARCHAR(20),
213
			FR_DVDM_ID VARCHAR(20),
214
			TO_DVDM_ID VARCHAR(20),
215
			FR_KHOI_ID VARCHAR(20),
216
			TO_KHOI_ID VARCHAR(20),
217
			FR_GD_TYPE VARCHAR(20),
218
			TO_GD_TYPE VARCHAR(20),
219
		
220

    
221
			TO_AMT_APP decimal(18),
222
			TO_AMT_ETM  decimal(18),
223
			TO_AMT_EXE decimal(18),
224
			TO_AMT_TF decimal(18),
225
			TO_AMT_RECEIVE_TF decimal(18),
226

    
227
			FR_AMT_APP decimal(18),
228
			FR_AMT_ETM decimal(18),
229
			FR_AMT_EXE decimal(18),
230
			FR_AMT_TF decimal(18),
231
			FR_AMT_RECEIVE_TF decimal(18),
232

    
233
			TO_AMT_FINAL decimal(18),
234
			FR_AMT_FINAL decimal(18)
235
		)
236
		--WHERE FR_BRN_ID !='' AND FR_BRN_ID IS NOT NULL
237

    
238

    
239
		
240

    
241

    
242
							
243
		DECLARE ListTransfers  CURSOR FOR
244
		SELECT *
245
		FROM @TABLE_TRANSFER
246
		OPEN ListTransfers
247

    
248
		Declare 
249
			@FR_PLAN_ID	varchar(15),
250
			@FR_TRADE_ID	varchar(15),
251
			@FR_GOOD_ID	varchar(15),
252
			@FR_BRN_ID	varchar(15),
253
			@TO_BRN_ID	varchar(15),
254
			@TO_PLAN_ID	varchar(15),
255
			@TO_TRADE_ID	varchar(15),	
256
			@TO_GOOD_ID	varchar(15),	
257
			@QTY  DECIMAL(18,0),
258
			@FR_DEP_ID VARCHAR(20),		
259
			@TO_DEP_ID VARCHAR(20),
260
			@FR_DVDM_ID VARCHAR(20),
261
			@TO_DVDM_ID VARCHAR(20),
262
			@FR_KHOI_ID VARCHAR(20),
263
			@TO_KHOI_ID VARCHAR(20),
264
			@FR_GD_TYPE VARCHAR(20),
265
			@TO_GD_TYPE VARCHAR(20),
266
			@TOTAL_AMT	decimal(18,2),		
267
			@NOTES	nvarchar(1000),
268

    
269
			@TO_AMT_APP decimal(18,2),
270
			@TO_AMT_ETM  decimal(18,2),
271
			@TO_AMT_EXE decimal(18,2),
272
			@TO_AMT_TF decimal(18,2),
273
			@TO_AMT_RECEIVE_TF decimal(18,2),
274

    
275
			@FR_AMT_APP decimal(18,2),
276
			@FR_AMT_ETM decimal(18,2),
277
			@FR_AMT_EXE decimal(18,2),
278
			@FR_AMT_TF decimal(18,2),
279
			@FR_AMT_RECEIVE_TF decimal(18,2),
280

    
281
			@TO_AMT_FINAL decimal(18,2),
282
			@FR_AMT_FINAL decimal(18,2)
283

    
284
		FETCH NEXT FROM ListTransfers INTO @FR_PLAN_ID,@FR_TRADE_ID,@FR_GOOD_ID,@FR_BRN_ID,@TO_BRN_ID,@TO_PLAN_ID,
285
		@TO_TRADE_ID,@TO_GOOD_ID,@QTY,@TOTAL_AMT, @NOTES,@FR_DEP_ID,@TO_DEP_ID,@FR_DVDM_ID,@TO_DVDM_ID,@FR_KHOI_ID,@TO_KHOI_ID,@FR_GD_TYPE,@TO_GD_TYPE,
286
		@TO_AMT_APP,@TO_AMT_ETM,@TO_AMT_EXE,@TO_AMT_TF,@TO_AMT_RECEIVE_TF,@FR_AMT_APP,@FR_AMT_ETM,@FR_AMT_EXE,@FR_AMT_TF,@FR_AMT_RECEIVE_TF,@TO_AMT_FINAL,@FR_AMT_FINAL 
287
	
288
		WHILE @@FETCH_STATUS = 0	
289
		BEGIN
290
			
291
			DECLARE @l_REQ_TRANSFER_ID VARCHAR(15)
292
			EXEC SYS_CodeMasters_Gen 'PL_REQUEST_TRANSFER', @l_REQ_TRANSFER_ID out
293
			IF @l_REQ_TRANSFER_ID='' OR @l_REQ_TRANSFER_ID IS NULL GOTO ABORT
294
	
295
			INSERT INTO dbo.PL_REQUEST_TRANSFER
296
			(
297
			    REQ_TRANSFER_ID,
298
			    REQ_DOC_ID,
299
			    FR_PLAN_ID,
300
			    FR_TRADE_ID,
301
			    FR_GOOD_ID,
302
			    FR_BRN_ID,
303
			    TO_BRN_ID,
304
			    TO_PLAN_ID,
305
			    TO_TRADE_ID,
306
			    TO_GOOD_ID,
307
			    QTY,
308
			    TOTAL_AMT,
309
			    NOTES,
310
			    AUTH_STATUS,
311
			    MAKER_ID,
312
			    CREATE_DT,
313
			    CHECKER_ID,
314
			    APPROVE_DT,
315
				FR_DEP_ID,
316
				TO_DEP_ID,
317
				FR_DVDM_ID,
318
				TO_DVDM_ID,
319
				FR_KHOI_ID,
320
				TO_KHOI_ID,
321

    
322
				TO_AMT_APP,
323
				TO_AMT_ETM,
324
				TO_AMT_EXE,
325
				TO_AMT_TF,
326
				TO_AMT_RECEIVE_TF,
327

    
328
				FR_AMT_APP,
329
				FR_AMT_ETM,
330
				FR_AMT_EXE,
331
				FR_AMT_TF,
332
				FR_AMT_RECEIVE_TF,
333

    
334
				TO_AMT_FINAL,
335
				FR_AMT_FINAL 
336
			)
337
			VALUES
338
			(   @l_REQ_TRANSFER_ID,        -- REQ_TRANSFER_ID - varchar(15)
339
			    @p_REQ_ID,        -- REQ_DOC_ID - varchar(15)
340
			    @FR_PLAN_ID,        -- FR_PLAN_ID - varchar(15)
341
			    @FR_TRADE_ID,        -- FR_TRADE_ID - varchar(15)
342
			    @FR_GOOD_ID,        -- FR_GOOD_ID - varchar(15)
343
			    @FR_BRN_ID,        -- FR_BRN_ID - varchar(15)
344
			    @TO_BRN_ID,        -- TO_BRN_ID - varchar(15)
345
			    @TO_PLAN_ID,        -- TO_PLAN_ID - varchar(15)
346
			    @TO_TRADE_ID,        -- TO_TRADE_ID - varchar(15)
347
			    @TO_GOOD_ID,        -- TO_GOOD_ID - varchar(15)
348
			    @QTY,      -- QTY - decimal(18, 0)
349
			    @TOTAL_AMT,      -- TOTAL_AMT - decimal(18, 0)
350
			    @NOTES,       -- NOTES - nvarchar(500)
351
			    @p_AUTH_STATUS,        -- AUTH_STATUS - varchar(1)
352
			    @p_MAKER_ID,        -- MAKER_ID - varchar(15)
353
				convert(datetime,@p_CREATE_DT,103),
354
				@p_CHECKER_ID,        -- CHECKER_ID - varchar(15)
355
				convert(datetime,@P_APPROVE_DT,103),  -- APPROVE_DT - datetime
356
				@FR_DEP_ID,
357
				@TO_DEP_ID,
358
				@FR_DVDM_ID,
359
				@TO_DVDM_ID,
360
				@FR_KHOI_ID,
361
				@TO_KHOI_ID,  -- APPROVE_DT - datetime
362

    
363
			    @TO_AMT_APP,
364
				@TO_AMT_ETM,
365
				@TO_AMT_EXE,
366
				@TO_AMT_TF,
367
				@TO_AMT_RECEIVE_TF,
368

    
369
				@FR_AMT_APP,
370
				@FR_AMT_ETM,
371
				@FR_AMT_EXE,
372
				@FR_AMT_TF,
373
				@FR_AMT_RECEIVE_TF,
374

    
375
				@TO_AMT_FINAL,
376
				@TO_AMT_FINAL 
377
				)
378
			
379
			IF @@ERROR <> 0 GOTO ABORT1
380
		-- next Group_Id
381
				FETCH NEXT FROM ListTransfers INTO @FR_PLAN_ID,@FR_TRADE_ID,@FR_GOOD_ID,@FR_BRN_ID,@TO_BRN_ID,@TO_PLAN_ID,
382
		@TO_TRADE_ID,@TO_GOOD_ID,@QTY,@TOTAL_AMT, @NOTES,@FR_DEP_ID,@TO_DEP_ID,@FR_DVDM_ID,@TO_DVDM_ID,@FR_KHOI_ID,@TO_KHOI_ID,@FR_GD_TYPE,@TO_GD_TYPE,
383
		@TO_AMT_APP,@TO_AMT_ETM,@TO_AMT_EXE,@TO_AMT_TF,@TO_AMT_RECEIVE_TF,@FR_AMT_APP,@FR_AMT_ETM,@FR_AMT_EXE,@FR_AMT_TF,@FR_AMT_RECEIVE_TF,@TO_AMT_FINAL,@FR_AMT_FINAL 
384
	
385
		END
386
		CLOSE ListTransfers
387
		DEALLOCATE ListTransfers
388

    
389
		UPDATE dbo.PL_REQUEST_DOC SET TOTAL_AMT = (SELECT SUM(TOTAL_AMT) FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID =@p_REQ_ID) WHERE PL_REQUEST_DOC.REQ_ID=@p_REQ_ID
390

    
391

    
392

    
393
		IF @@Error <> 0 GOTO ABORT
394
		--Insert into TABLE PL_REQUEST_DOC_DT
395
		Exec sp_xml_preparedocument @hdoc Output,@p_ListCostCenter
396
		DECLARE ListCostCenters  CURSOR FOR
397
		SELECT *
398
		FROM OPENXML(@hDoc,'/Root/ListCostCenter',2)
399
		WITH 
400
		(
401
			COST_ID	varchar(15),	
402
			NOTES	nvarchar(1000)
403
		
404
		)
405
		WHERE COST_ID <>'DVDM-CHUNG'
406
		OPEN ListCostCenters
407
		
408
		Declare 
409
		@COST_ID	varchar(15)
410

    
411

    
412
		FETCH NEXT FROM ListCostCenters INTO @COST_ID, @NOTES
413
		WHILE @@FETCH_STATUS = 0	
414
		BEGIN
415
			
416
			DECLARE @l_REQ_COST_ID VARCHAR(15)
417
			EXEC SYS_CodeMasters_Gen 'PL_REQUEST_COSTCENTER', @l_REQ_COST_ID out
418
			IF @l_REQ_COST_ID='' OR @l_REQ_COST_ID IS NULL GOTO ABORT
419
	
420
			INSERT INTO dbo.PL_REQUEST_COSTCENTER
421
			(
422
			    REQ_COST_ID,
423
			    COST_ID,
424
			    REQ_ID,
425
			    NOTES,
426
			    AUTH_STATUS,
427
			    MAKER_ID,
428
			    CREATE_DT,
429
			    CHECKER_ID,
430
			    APPROVE_DT
431
			)
432
			VALUES
433
			(   @l_REQ_COST_ID,        -- REQ_COST_ID - varchar(15)
434
			    @COST_ID,        -- COST_ID - varchar(15)
435
			    @p_REQ_ID,        -- REQ_ID - varchar(15)
436
			    @NOTES,       -- NOTES - nvarchar(500)
437
			    @p_AUTH_STATUS,        -- AUTH_STATUS - varchar(1)
438
			    @p_MAKER_ID,        -- MAKER_ID - varchar(15)
439
			      convert(datetime,@p_CREATE_DT,103) , -- CREATE_DT - datetime
440
			    @p_CHECKER_ID,        -- CHECKER_ID - varchar(15)
441
			        convert(datetime,@p_APPROVE_DT,103)  -- APPROVE_DT - datetime
442
			 )
443
			
444
			
445
			IF @@ERROR <> 0 GOTO ABORT1
446
		-- next Group_Id
447
			FETCH NEXT FROM ListCostCenters INTO @COST_ID, @NOTES
448
		END
449
		CLOSE ListCostCenters
450
		DEALLOCATE ListCostCenters
451

    
452

    
453
		-- Insert into TABLE PL_REQUEST_DOC_FILE
454
		DECLARE @tableAttachFile TABLE(
455
			PL_REQUEST_DOC_FILE_ID	varchar(20)  ,
456
			IS_VIEW	bit,
457
			REQ_ID varchar(20),
458
			NOTES  nvarchar(200)
459
		)
460

    
461
		Declare @fdoc INT
462
		Exec sp_xml_preparedocument @fdoc Output,@p_ListAttachFile
463

    
464
		INSERT INTO @tableAttachFile
465
		SELECT *
466
		FROM OPENXML(@fDoc,'/Root/ListAttachFile',2)
467
		WITH 
468
		(
469
			PL_REQUEST_DOC_FILE_ID	varchar(20)  ,
470
			IS_VIEW	bit,
471
			REQ_ID varchar(20),
472
			NOTES  nvarchar(200)
473
		)
474
	
475
		DELETE PL_REQUEST_DOC_FILE WHERE PL_REQUEST_DOC_FILE_ID NOT IN (SELECT PL_REQUEST_DOC_FILE_ID from @tableAttachFile) and REQ_ID = @p_REQ_ID
476

    
477
		DECLARE ListAttachFile  CURSOR FOR
478
		SELECT * FROM @tableAttachFile
479
		OPEN ListAttachFile
480

    
481
		Declare 
482
			@PL_REQUEST_DOC_FILE_ID	varchar(20)  ,
483
			@IS_VIEW	bit,
484
			@REQ_ID varchar(20),
485
			@_NOTES nvarchar(200)
486
		
487
		
488
		FETCH NEXT FROM ListAttachFile INTO @PL_REQUEST_DOC_FILE_ID,@IS_VIEW,@REQ_ID,@_NOTES
489
		WHILE @@FETCH_STATUS = 0	
490
		BEGIN
491
			DECLARE @l_File_ID VARCHAR(15)
492
			EXEC SYS_CodeMasters_Gen 'PL_REQUEST_DOC_FILE', @l_File_ID out
493
			IF @l_File_ID='' OR @l_File_ID IS NULL GOTO ABORT
494

    
495

    
496
			IF(SELECT COUNT(*) from PL_REQUEST_DOC_FILE where PL_REQUEST_DOC_FILE_ID = @PL_REQUEST_DOC_FILE_ID ) > 0
497
			BEGIN
498
				UPDATE PL_REQUEST_DOC_FILE set IS_VIEW = isnull(@IS_VIEW,0),REQ_ID = @p_REQ_ID,NOTES=@_NOTES WHERE PL_REQUEST_DOC_FILE_ID = @PL_REQUEST_DOC_FILE_ID 
499
			END
500
			ELSE
501
			BEGIN
502

    
503
				INSERT INTO @TEMP([REF_ID],[TYPE]) VALUES (@l_File_ID, 'PL_REQUEST_DOC_FILE')
504

    
505
				
506
				INSERT INTO dbo.PL_REQUEST_DOC_FILE
507
				(
508
					 [PL_REQUEST_DOC_FILE_ID]
509
					,[IS_VIEW]
510
					,[REQ_ID]
511
					,[NOTES]
512
				)	
513
				VALUES
514
				(   
515
					@l_File_ID
516
					,isnull(@IS_VIEW,0)
517
					,@p_REQ_ID
518
					,@_NOTES
519
				)
520
			END
521
			
522
			IF @@ERROR <> 0 GOTO ABORT1
523
			FETCH NEXT FROM ListAttachFile INTO @PL_REQUEST_DOC_FILE_ID,@IS_VIEW,@REQ_ID,@_NOTES
524
		END
525
		CLOSE ListAttachFile
526
		DEALLOCATE ListAttachFile
527
		
528
		IF @@Error <> 0 GOTO ABORT
529
	
530
COMMIT TRANSACTION
531
IF (SELECT COUNT(*) FROM @TEMP) = 0
532
BEGIN
533
	SELECT '0' as Result, @p_REQ_ID  REQ_ID,'', '' , @p_REQ_CODE AS ErrorDesc
534
	RETURN '0'
535
END
536
ELSE
537
BEGIN
538
	SELECT '0' as Result, @p_REQ_ID  REQ_ID,REF_ID, [TYPE] , @p_REQ_CODE AS ErrorDesc FROM @TEMP
539
	RETURN '0'
540
END
541
ABORT:
542
BEGIN
543
		ROLLBACK TRANSACTION
544
		SELECT '-1' AS Result, ''  REQ_ID, '' ErrorDesc
545
		RETURN '-1'
546
End
547
ABORT1:
548
BEGIN
549
		CLOSE ListGoods
550
		DEALLOCATE ListGoods
551
		CLOSE ListCostCenters
552
		DEALLOCATE ListCostCenters
553
		CLOSE ListCostCenters
554
		DEALLOCATE ListCostCenters
555
		ROLLBACK TRANSACTION
556
		SELECT '-1' AS Result, ''  REQ_ID, '' ErrorDesc
557
		RETURN '-1'
558
End
559
GO