Project

General

Profile

2107 CAP NHAT 6.txt

Luc Tran Van, 07/21/2020 10:38 AM

 
1
ALTER PROCEDURE [dbo].[PL_REQUEST_DOC_Ins]
2
@p_REQ_CODE	nvarchar(100)  = NULL,
3
@p_REQ_NAME	nvarchar(200)  = NULL,
4
@p_REQ_DT	DATETIME = NULL,
5
@p_REQ_TYPE	int = NULL,
6
@p_REQ_CONTENT NVARCHAR(1000)=NULL,
7
@p_REQ_REASON NVARCHAR(500)=NULL,
8
@p_TOTAL_AMT	decimal = NULL,
9
@p_NOTES	nvarchar(1000)  = NULL,
10
@p_RECORD_STATUS	varchar(1)  = NULL,
11
@p_MAKER_ID	varchar(20)  = NULL,
12
@p_CREATE_DT	DATETIME = NULL,
13
@p_AUTH_STATUS	varchar(50)  = NULL,
14
@p_CHECKER_ID	varchar(20)  = NULL,
15
@p_APPROVE_DT	DATETIME = NULL,
16
@p_BRANCH_ID VARCHAR(15)=NULL,
17
@p_DVDM_ID VARCHAR(20) = NULL,
18
@p_REQ_PARENT_ID VARCHAR(20) = NULL,
19
@p_BRANCH_FEE NVARCHAR(500) = NULL,
20
@p_DEP_ID VARCHAR(20)=NULL,
21
@p_DEP_FEE_ID VARCHAR(20)= NULL,
22
@p_IS_BACKDAY BIT = NULL,
23
@p_REQ_LINE VARCHAR(20),
24
@p_SIGN_USER VARCHAR(20) = NULL,
25
@p_ListGood XML,
26
@p_ListCostCenter XML,
27
@p_ListTransfer XML
28
AS	
29
  BEGIN TRANSACTION
30
		DECLARE @DEP_ID VARCHAR(15) = (SELECT SECUR_CODE FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
31
		exec [dbo].[PL_REQUEST_DOC_CODE_GenKey] @p_BRANCH_ID,@DEP_ID, @p_REQ_CODE out
32
		IF(@p_REQ_CODE IS NULL OR @p_REQ_CODE ='')
33
		BEGIN
34
			SELECT 'REQ-00001' Result, '' REQ_ID, N'Mã tờ trình chủ trương bắc buộc nhập' ErrorDesc 
35
			ROLLBACK TRANSACTION
36
			RETURN '-1'
37
		END
38
		IF EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE [REQ_CODE] = @p_REQ_CODE)
39
		BEGIN
40
			SELECT ErrorCode Result, '' REQ_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'REQ-00001'
41
			ROLLBACK TRANSACTION
42
			RETURN '-1'
43
		END
44
		DECLARE @sErrorCode VARCHAR(20)
45
		--insert master				
46
		DECLARE @l_REQ_ID VARCHAR(15)
47
		EXEC SYS_CodeMasters_Gen 'PL_REQUEST_DOC', @l_REQ_ID out
48
		IF @l_REQ_ID='' OR @l_REQ_ID IS NULL GOTO ABORT
49

    
50

    
51
		DECLARE @BRANCH_CREATE VARCHAR(20),@DEP_CREATE VARCHAR(20)
52

    
53
		SET  @BRANCH_CREATE= (SELECT TLSUBBRID  FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID)
54
		IF(EXISTS(SELECT * FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE AND BRANCH_TYPE='HS'))		
55
			SET @DEP_CREATE=(SELECT SECUR_CODE  FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID)
56
		ELSE
57
			SET @DEP_CREATE=''
58
		
59

    
60
		INSERT INTO dbo.PL_REQUEST_DOC
61
		(
62
		    REQ_ID,
63
		    REQ_CODE,
64
		    REQ_NAME,
65
		    REQ_DT,
66
		    REQ_TYPE,
67
		    REQ_CONTENT,
68
		    REQ_REASON,
69
		    BRANCH_ID,
70
		    TOTAL_AMT,
71
		    NOTES,
72
		    RECORD_STATUS,
73
		    MAKER_ID,
74
		    CREATE_DT,
75
		    AUTH_STATUS,
76
		    CHECKER_ID,
77
		    APPROVE_DT,
78
			DVDM_APP_ID,
79
			REQ_PARENT_ID,
80
			BRANCH_FEE,
81
			IS_BACKDAY,
82
			PROCESS_ID,
83
			DEP_ID,
84
			DEP_FEE,
85
			BRANCH_CREATE,
86
			DEP_CREATE,
87
			REQ_LINE,SIGN_USER
88
			
89
		)
90
		VALUES
91
		(   @l_REQ_ID,        -- REQ_ID - varchar(15)
92
		    @p_REQ_CODE,        -- REQ_CODE - varchar(100)
93
		    @p_REQ_NAME,       -- REQ_NAME - nvarchar(200)
94
			  CAST(@p_REQ_DT AS DATE), -- REQ_DT - datetime
95
		    @p_REQ_TYPE,         -- REQ_TYPE - int
96
		    @p_REQ_CONTENT,       -- REQ_CONTENT - nvarchar(1000)
97
		    @p_REQ_REASON,       -- REQ_REASON - nvarchar(500)
98
		    @p_BRANCH_ID,        -- BRANCH_ID - varchar(15)
99
		    @p_TOTAL_AMT,      -- TOTAL_AMT - decimal(18, 0)
100
		    @p_NOTES,       -- NOTES - nvarchar(1000)
101
		    @p_RECORD_STATUS,        -- RECORD_STATUS - varchar(1)
102
		    @p_MAKER_ID,        -- MAKER_ID - varchar(12)
103
		    CAST(@p_CREATE_DT AS DATE), -- CREATE_DT - datetime
104
		    'E',        -- AUTH_STATUS - varchar(50)
105
		    @p_CHECKER_ID,        -- CHECKER_ID - varchar(12)
106
		    CAST(@P_APPROVE_DT AS DATE),  -- APPROVE_DT - datetime
107
			@p_DVDM_ID,
108
			@p_REQ_PARENT_ID,
109
			@p_BRANCH_FEE,
110
			@p_IS_BACKDAY,
111
			'',
112
			@p_DEP_ID,
113
			@p_DEP_FEE_ID,
114
			@BRANCH_CREATE,
115
			@DEP_CREATE,
116
			@p_REQ_LINE,@p_SIGN_USER
117
		    )
118
		
119
		
120
		IF @@Error <> 0 GOTO ABORT
121
		DECLARE @TABLE TABLE(
122
			PLAN_ID	varchar(15)  ,
123
			TRADE_ID	varchar(15)  ,
124
			GOODS_ID	varchar(15)  ,
125
			[DESCRIPTION] nvarchar(500),
126
			UNIT_ID	varchar(15)  ,
127
			QUANTITY	decimal(18,0)  ,
128
			PRICE	decimal(18,2)  ,
129
			TOTAL_AMT	decimal(18,2),	
130
			NOTES	nvarchar(1000),
131
			REQDT_TYPE VARCHAR(1),
132
			NAME NVARCHAR(500),
133
			DVDM_ID VARCHAR(20),
134
			HH_ID VARCHAR(20),
135
			CURRENCY	nvarchar(50),
136
			EXCHANGE_RATE	decimal(18,2),
137
			TAXES	decimal(18, 2),
138
			SUP_ID VARCHAR(20),
139
			TRADE_TYPE VARCHAR(20),
140
			KHOI_ID VARCHAR(20),
141
			UNIT_NAME nvarchar(200)
142
		)
143
	
144

    
145
		--Insert into TABLE PL_REQUEST_DOC_DT
146
		Declare @hdoc INT
147
		Exec sp_xml_preparedocument @hdoc Output,@p_ListGood
148
		INSERT INTO @TABLE
149
		SELECT PLAN_ID,
150
               TRADE_ID,
151
               GOODS_ID,
152
               DESCRIPTION,
153
               UNIT_ID,
154
               QUANTITY,
155
               PRICE,
156
               TOTAL_AMT,
157
               NOTES,
158
               REQDT_TYPE,
159
               NAME,
160
               DVDM_ID,
161
               HH_ID,
162
               CURRENCY,
163
               EXCHANGE_RATE,
164
               TAXES,
165
               SUP_ID,
166
               TRADE_TYPE,
167
			   KHOI_ID,UNIT_NAME
168
		FROM OPENXML(@hDoc,'/Root/ListGood',2)
169
		WITH 
170
		(
171
			PLAN_ID	varchar(15)  ,
172
			TRADE_ID	varchar(15)  ,
173
			GOODS_ID	varchar(15)  ,
174
			[DESCRIPTION] nvarchar(500),
175
			UNIT_ID	varchar(15)  ,
176
			QUANTITY	decimal(18,0)  ,
177
			PRICE	decimal(18,2)  ,
178
			TOTAL_AMT	decimal(18,2),	
179
			NOTES	nvarchar(1000),
180
			REQDT_TYPE VARCHAR(1),
181
			NAME NVARCHAR(500),
182
			DVDM_ID VARCHAR(20),
183
			HH_ID VARCHAR(20),
184
			CURRENCY	nvarchar(50),
185
			EXCHANGE_RATE	decimal(18,2),
186
			TAXES	decimal(18, 2),
187
			SUP_ID VARCHAR(20),
188
			TRADE_TYPE VARCHAR(20),
189
			KHOI_ID VARCHAR(20),
190
			UNIT_NAME nvarchar(200)
191
		)
192

    
193
		
194

    
195
		
196

    
197
	
198
		DECLARE @TABLE_TRANSFER TABLE (
199
			FR_PLAN_ID	varchar(15),
200
			FR_TRADE_ID	varchar(15),
201
			FR_GOOD_ID	varchar(15),
202
			FR_BRN_ID	varchar(15),
203
			TO_BRN_ID	varchar(15),
204
			TO_PLAN_ID	varchar(15),
205
			TO_TRADE_ID	varchar(15),	
206
			TO_GOOD_ID	varchar(15),	
207
			QTY  DECIMAL(18,0),
208
			TOTAL_AMT	decimal(18),	
209
			NOTES	nvarchar(1000),
210
			FR_DEP_ID VARCHAR(20),
211
			TO_DEP_ID VARCHAR(20),
212
			FR_DVDM_ID VARCHAR(20),
213
			TO_DVDM_ID VARCHAR(20),
214
			FR_KHOI_ID VARCHAR(20),
215
			TO_KHOI_ID VARCHAR(20),
216
			FR_GD_TYPE VARCHAR(20),
217
			TO_GD_TYPE VARCHAR(20)
218
		)
219

    
220
		Exec sp_xml_preparedocument @hdoc Output,@p_ListTransfer
221

    
222
		INSERT INTO @TABLE_TRANSFER
223
		SELECT FR_PLAN_ID,
224
               FR_TRADE_ID,
225
               FR_GOOD_ID,
226
               FR_BRN_ID,
227
               TO_BRN_ID,
228
               TO_PLAN_ID,
229
               TO_TRADE_ID,
230
               TO_GOOD_ID,
231
               QTY,
232
               TOTAL_AMT,
233
               NOTES,
234
               FR_DEP_ID,
235
               TO_DEP_ID,
236
               FR_DVDM_ID,
237
               TO_DVDM_ID,
238
               FR_KHOI_ID,
239
               TO_KHOI_ID,
240
               FR_GD_TYPE,
241
               TO_GD_TYPE 
242
		FROM OPENXML(@hdoc,'/Root/ListTransfer',2)
243
		WITH 
244
		(
245
			FR_PLAN_ID	varchar(15),
246
			FR_TRADE_ID	varchar(15),
247
			FR_GOOD_ID	varchar(15),
248
			FR_BRN_ID	varchar(15),
249
			TO_BRN_ID	varchar(15),
250
			TO_PLAN_ID	varchar(15),
251
			TO_TRADE_ID	varchar(15),	
252
			TO_GOOD_ID	varchar(15),	
253
			QTY  DECIMAL(18,0),
254
			TOTAL_AMT	decimal(18),	
255
			NOTES	nvarchar(1000),
256
			FR_DEP_ID VARCHAR(20),
257
			TO_DEP_ID VARCHAR(20),
258
			FR_DVDM_ID VARCHAR(20),
259
			TO_DVDM_ID VARCHAR(20),
260
			FR_KHOI_ID VARCHAR(20),
261
			TO_KHOI_ID VARCHAR(20),
262
			FR_GD_TYPE VARCHAR(20),
263
			TO_GD_TYPE VARCHAR(20)
264
		
265
		)
266
		WHERE FR_BRN_ID !='' AND FR_BRN_ID IS NOT NULL
267

    
268

    
269
		
270

    
271

    
272

    
273

    
274

    
275

    
276
		DECLARE ListGoods  CURSOR FOR
277
		SELECT PLAN_ID,
278
               TRADE_ID,
279
               GOODS_ID,
280
               DESCRIPTION,
281
               UNIT_ID,
282
               QUANTITY,
283
               PRICE,
284
               TOTAL_AMT,
285
               NOTES,
286
               REQDT_TYPE,
287
               NAME,
288
               DVDM_ID,
289
               HH_ID,
290
               CURRENCY,
291
               EXCHANGE_RATE,
292
               TAXES,
293
               SUP_ID,
294
               TRADE_TYPE,KHOI_ID,UNIT_NAME FROM @TABLE
295

    
296
		OPEN ListGoods
297

    
298
		Declare 
299
		@PLAN_ID	varchar(15),
300
		@TRADE_ID	varchar(15),
301
		@GOODS_ID	varchar(15),
302
		@DESCRIPTION nvarchar(500),
303
		@UNIT_ID	varchar(15),
304
		@QUANTITY	decimal(18),
305
		@PRICE	decimal(18,2),
306
		@TOTAL_AMT	decimal(18,2),		
307
		@NOTES	nvarchar(1000),
308
		@REQDT_TYPE VARCHAR(1),
309
		@NAME NVARCHAR(500),
310
		@DVDM_ID VARCHAR(20),
311
		@HH_ID VARCHAR(20),
312
		@CURRENCY	nvarchar(50),
313
		@EXCHANGE_RATE	decimal(18, 2),
314
		@TAXES	decimal(18, 2),
315
		@SUP_ID VARCHAR(20),
316
		@TRADE_TYPE VARCHAR(20),
317
		@KHOI_ID VARCHAR(20),
318
		@UNIT_NAME nvarchar(200)
319

    
320
		FETCH NEXT FROM ListGoods INTO @PLAN_ID,@TRADE_ID,@GOODS_ID,@DESCRIPTION,@UNIT_ID,@QUANTITY,
321
		@PRICE,@TOTAL_AMT,@NOTES, @REQDT_TYPE, @NAME,@DVDM_ID,@HH_ID,@CURRENCY,@EXCHANGE_RATE,@TAXES,@SUP_ID,@TRADE_TYPE,@KHOI_ID,@UNIT_NAME
322
		WHILE @@FETCH_STATUS = 0	
323
		BEGIN
324
			
325

    
326
			DECLARE @l_REQDT_ID VARCHAR(15)
327
			EXEC SYS_CodeMasters_Gen 'PL_REQUEST_DOC_DT', @l_REQDT_ID out
328
			IF @l_REQDT_ID='' OR @l_REQDT_ID IS NULL GOTO ABORT
329
			
330
			SET @TOTAL_AMT=(@PRICE * @QUANTITY * @EXCHANGE_RATE) + (@TAXES*@EXCHANGE_RATE)
331

    
332
			INSERT INTO dbo.PL_REQUEST_DOC_DT
333
			(
334
			    REQDT_ID,
335
			    REQ_ID,
336
			    PLAN_ID,
337
			    TRADE_ID,
338
			    GOODS_ID,
339
			    NAME,
340
			    DESCRIPTION,
341
			    REQDT_TYPE,
342
			    UNIT_ID,
343
			    QUANTITY,
344
			    PRICE,
345
			    TOTAL_AMT,
346
			    RECORD_STATUS,
347
			    MAKER_ID,
348
			    CREATE_DT,
349
			    AUTH_STATUS,
350
			    CHECKER_ID,
351
			    APPROVE_DT,
352
				DVDM_ID,
353
				HANGHOA_ID,
354
				CURRENCY,
355
				EXCHANGE_RATE,
356
				TAXES,SUP_ID,TRADE_TYPE,KHOI_ID,UNIT_NAME
357
			)
358
			VALUES
359
			(   @l_REQDT_ID,        -- REQDT_ID - varchar(15)
360
			    @l_REQ_ID,        -- REQ_ID - varchar(15)
361
			    @PLAN_ID,        -- PLAN_ID - varchar(15)
362
			    @TRADE_ID,        -- TRADE_ID - varchar(15)
363
			    @GOODS_ID,        -- GOODS_ID - varchar(15)
364
			    @NAME,       -- NAME - nvarchar(200)
365
			    @DESCRIPTION,       -- DESCRIPTION - nvarchar(500)
366
			    @REQDT_TYPE,        -- REQDT_TYPE - varchar(1)
367
			    @UNIT_ID,        -- UNIT_ID - varchar(15)
368
			    @QUANTITY,      -- QUANTITY - decimal(18, 0)
369
			    @PRICE,      -- PRICE - decimal(18, 0)
370
			    @TOTAL_AMT,      -- TOTAL_AMT - decimal(18, 0)
371
			    @p_RECORD_STATUS,        -- RECORD_STATUS - varchar(1)
372
			    @p_MAKER_ID,        -- MAKER_ID - varchar(15)
373
			     CAST(@p_CREATE_DT AS DATE) , -- CREATE_DT - datetime
374
			    @p_AUTH_STATUS,        -- AUTH_STATUS - varchar(50)
375
			    @p_CHECKER_ID,        -- CHECKER_ID - varchar(15)
376
			     CAST(@P_APPROVE_DT AS DATE),   -- APPROVE_DT - datetime
377
			    @DVDM_ID,
378
				@HH_ID,
379
				@CURRENCY,
380
				@EXCHANGE_RATE,
381
				@TAXES,@SUP_ID,@TRADE_TYPE,@KHOI_ID,@UNIT_NAME
382
				)
383
			
384
			
385
			IF @@ERROR <> 0 GOTO ABORT1
386
		-- next Group_Id
387
			FETCH NEXT FROM ListGoods INTO @PLAN_ID,@TRADE_ID,@GOODS_ID,@DESCRIPTION,@UNIT_ID,@QUANTITY,
388
			@PRICE,@TOTAL_AMT,@NOTES, @REQDT_TYPE, @NAME,@DVDM_ID,@HH_ID,@CURRENCY,@EXCHANGE_RATE,@TAXES,@SUP_ID,@TRADE_TYPE,@KHOI_ID,@UNIT_NAME
389
			END
390
			CLOSE ListGoods
391
			DEALLOCATE ListGoods
392

    
393

    
394
			IF @@Error <> 0 GOTO ABORT
395
		--Insert into TABLE PL_REQUEST_DOC_DT
396

    
397
		UPDATE dbo.PL_REQUEST_DOC SET TOTAL_AMT = (SELECT SUM(TOTAL_AMT) FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID =@l_REQ_ID) WHERE PL_REQUEST_DOC.REQ_ID=@l_REQ_ID
398
		
399

    
400
		Exec sp_xml_preparedocument @hdoc Output,@p_ListTransfer
401
		DECLARE ListTransfers  CURSOR FOR
402
		SELECT *
403
		FROM @TABLE_TRANSFER
404
		OPEN ListTransfers
405

    
406
		Declare 
407
		@FR_PLAN_ID	varchar(15),
408
		@FR_TRADE_ID	varchar(15),
409
		@FR_GOOD_ID	varchar(15),
410
		@FR_BRN_ID	varchar(15),
411
		@TO_BRN_ID	varchar(15),
412
		@TO_PLAN_ID	varchar(15),
413
		@TO_TRADE_ID	varchar(15),	
414
		@TO_GOOD_ID	varchar(15),	
415
		@QTY  DECIMAL(18,0),
416
		@FR_DEP_ID VARCHAR(20),
417
		@TO_DEP_ID VARCHAR(20),
418
		@FR_DVDM_ID VARCHAR(20),
419
		@TO_DVDM_ID VARCHAR(20),
420
		@FR_KHOI_ID VARCHAR(20),
421
		@TO_KHOI_ID VARCHAR(20),
422
		@FR_GD_TYPE VARCHAR(20),
423
		@TO_GD_TYPE VARCHAR(20)
424

    
425
		FETCH NEXT FROM ListTransfers INTO @FR_PLAN_ID,@FR_TRADE_ID,@FR_GOOD_ID,@FR_BRN_ID,@TO_BRN_ID,@TO_PLAN_ID,
426
		@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
427
		WHILE @@FETCH_STATUS = 0	
428
		BEGIN
429
			
430
			
431

    
432

    
433

    
434

    
435
			DECLARE @l_REQ_TRANSFER_ID VARCHAR(15)
436
			EXEC SYS_CodeMasters_Gen 'PL_REQUEST_TRANSFER', @l_REQ_TRANSFER_ID out
437
			IF @l_REQ_TRANSFER_ID='' OR @l_REQ_TRANSFER_ID IS NULL GOTO ABORT
438
			
439
			INSERT INTO dbo.PL_REQUEST_TRANSFER
440
			(
441
			    REQ_TRANSFER_ID,
442
			    REQ_DOC_ID,
443
			    FR_PLAN_ID,
444
			    FR_TRADE_ID,
445
			    FR_GOOD_ID,
446
			    FR_BRN_ID,
447
			    TO_BRN_ID,
448
			    TO_PLAN_ID,
449
			    TO_TRADE_ID,
450
			    TO_GOOD_ID,
451
			    QTY,
452
			    TOTAL_AMT,
453
			    NOTES,
454
			    AUTH_STATUS,
455
			    MAKER_ID,
456
			    CREATE_DT,
457
			    CHECKER_ID,
458
			    APPROVE_DT,
459
				FR_DEP_ID,
460
				TO_DEP_ID,
461
				FR_DVDM_ID,
462
				TO_DVDM_ID,
463
				FR_KHOI_ID,
464
				TO_KHOI_ID
465
			)
466
			VALUES
467
			(   @l_REQ_TRANSFER_ID,        -- REQ_TRANSFER_ID - varchar(15)
468
			    @l_REQ_ID,        -- REQ_DOC_ID - varchar(15)
469
			    @FR_PLAN_ID,        -- FR_PLAN_ID - varchar(15)
470
			    @FR_TRADE_ID,        -- FR_TRADE_ID - varchar(15)
471
			    @FR_GOOD_ID,        -- FR_GOOD_ID - varchar(15)
472
			    @FR_BRN_ID,        -- FR_BRN_ID - varchar(15)
473
			    @TO_BRN_ID,        -- TO_BRN_ID - varchar(15)
474
			    @TO_PLAN_ID,        -- TO_PLAN_ID - varchar(15)
475
			    @TO_TRADE_ID,        -- TO_TRADE_ID - varchar(15)
476
			    @TO_GOOD_ID,        -- TO_GOOD_ID - varchar(15)
477
			    @QTY,      -- QTY - decimal(18, 0)
478
			    @TOTAL_AMT,      -- TOTAL_AMT - decimal(18, 0)
479
			    @NOTES,       -- NOTES - nvarchar(500)
480
			    @p_AUTH_STATUS,        -- AUTH_STATUS - varchar(1)
481
			    @p_MAKER_ID,        -- MAKER_ID - varchar(15)
482
			     CAST(@p_CREATE_DT AS DATE), -- CREATE_DT - datetime
483
			    @p_CHECKER_ID,        -- CHECKER_ID - varchar(15)
484
			    CAST(@p_APPROVE_DT AS DATE),
485
				@FR_DEP_ID,
486
				@TO_DEP_ID,
487
				@FR_DVDM_ID,
488
				@TO_DVDM_ID,
489
				@FR_KHOI_ID,
490
				@TO_KHOI_ID  -- APPROVE_DT - datetime
491
			    )
492
			
493
			
494
			IF @@ERROR <> 0 GOTO ABORT1
495
		-- next Group_Id
496
			FETCH NEXT FROM ListTransfers INTO @FR_PLAN_ID,@FR_TRADE_ID,@FR_GOOD_ID,@FR_BRN_ID,@TO_BRN_ID,@TO_PLAN_ID,
497
		@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
498
		END
499
		CLOSE ListTransfers
500
		DEALLOCATE ListTransfers
501

    
502
			IF @@Error <> 0 GOTO ABORT
503
		--Insert into TABLE PL_REQUEST_DOC_DT
504
		Exec sp_xml_preparedocument @hdoc Output,@p_ListCostCenter
505
		DECLARE ListCostCenters  CURSOR FOR
506
		SELECT *
507
		FROM OPENXML(@hDoc,'/Root/ListCostCenter',2)
508
		WITH 
509
		(
510
			COST_ID	varchar(15),	
511
			NOTES	nvarchar(1000)
512
		
513
		)
514
		OPEN ListCostCenters
515

    
516
		Declare 
517
		@COST_ID	varchar(15)
518

    
519

    
520
		FETCH NEXT FROM ListCostCenters INTO @COST_ID, @NOTES
521
		WHILE @@FETCH_STATUS = 0	
522
		BEGIN
523
			
524
			DECLARE @l_REQ_COST_ID VARCHAR(15)
525
			EXEC SYS_CodeMasters_Gen 'PL_REQUEST_COSTCENTER', @l_REQ_COST_ID out
526
			IF @l_REQ_COST_ID='' OR @l_REQ_COST_ID IS NULL GOTO ABORT
527
	
528
			INSERT INTO dbo.PL_REQUEST_COSTCENTER
529
			(
530
			    REQ_COST_ID,
531
			    COST_ID,
532
			    REQ_ID,
533
			    NOTES,
534
			    AUTH_STATUS,
535
			    MAKER_ID,
536
			    CREATE_DT,
537
			    CHECKER_ID,
538
			    APPROVE_DT
539
			)
540
			VALUES
541
			(   @l_REQ_COST_ID,        -- REQ_COST_ID - varchar(15)
542
			    @COST_ID,        -- COST_ID - varchar(15)
543
			    @l_REQ_ID,        -- REQ_ID - varchar(15)
544
			    @NOTES,       -- NOTES - nvarchar(500)
545
			    @p_AUTH_STATUS,        -- AUTH_STATUS - varchar(1)
546
			    @p_MAKER_ID,        -- MAKER_ID - varchar(15)
547
			      CAST(@p_CREATE_DT AS DATE) , -- CREATE_DT - datetime
548
			    @p_CHECKER_ID,        -- CHECKER_ID - varchar(15)
549
			        CAST(@p_APPROVE_DT AS DATE)  -- APPROVE_DT - datetime
550
			 )
551
			
552
			
553
			IF @@ERROR <> 0 GOTO ABORT1
554
		-- next Group_Id
555
			FETCH NEXT FROM ListCostCenters INTO @COST_ID, @NOTES
556
		END
557
		CLOSE ListCostCenters
558
		DEALLOCATE ListCostCenters
559

    
560
	
561

    
562

    
563
		
564
COMMIT TRANSACTION
565
SELECT '0' as Result, @l_REQ_ID  REQ_ID, @p_REQ_CODE ErrorDesc
566
RETURN '0'
567
ABORT:
568
BEGIN
569
		ROLLBACK TRANSACTION
570
		SELECT '-1' AS Result ,'' REQ_ID, '' ErrorDesc
571
		RETURN '-1'
572
End
573
ABORT1:
574
BEGIN
575
		CLOSE ListGoods
576
		DEALLOCATE ListGoods
577
		CLOSE ListCostCenters
578
		DEALLOCATE ListCostCenters
579
		CLOSE ListCostCenters
580
		DEALLOCATE ListCostCenters
581
		ROLLBACK TRANSACTION
582
		SELECT '-1' AS Result ,'' REQ_ID, '' ErrorDesc
583
		RETURN '-1'
584
End
585
¿
586
ALTER PROCEDURE [dbo].[PL_REQUEST_DOC_Upd]
587
@p_REQ_ID VARCHAR(15)=NULL,
588
@p_REQ_CODE	nvarchar(100)  = NULL,
589
@p_REQ_NAME	nvarchar(200)  = NULL,
590
@p_REQ_DT	DATETIME = NULL,
591
@p_REQ_TYPE	int = NULL,
592
@p_REQ_CONTENT NVARCHAR(1000)=NULL,
593
@p_REQ_REASON NVARCHAR(500)=NULL,
594
@p_TOTAL_AMT	decimal = NULL,
595
@p_NOTES	nvarchar(1000)  = NULL,
596
@p_RECORD_STATUS	varchar(1)  = NULL,
597
@p_MAKER_ID	varchar(20)  = NULL,
598
@p_CREATE_DT	DATETIME = NULL,
599
@p_AUTH_STATUS	varchar(50)  = NULL,
600
@p_CHECKER_ID	varchar(20)  = NULL,
601
@p_APPROVE_DT	DATETIME = NULL,
602
@p_BRANCH_ID VARCHAR(15)=NULL,
603
@p_DVDM_ID VARCHAR(20) = NULL,
604
@p_REQ_PARENT_ID VARCHAR(20) = NULL,
605
@p_BRANCH_FEE NVARCHAR(500) = NULL,
606
@p_DEP_ID VARCHAR(20)=NULL,
607
@p_DEP_FEE_ID VARCHAR(20)= NULL,
608
@p_IS_BACKDAY BIT= NULL,
609
@p_REQ_LINE VARCHAR(20),
610
@p_SIGN_USER VARCHAR(20) = NULL,
611
@p_ListGood XML,
612
@p_ListCostCenter XML,
613
@p_ListTransfer XML
614
AS
615
SET @p_CREATE_DT =CAST(@p_CREATE_DT AS DATE)
616
SET @p_APPROVE_DT=CAST(@p_APPROVE_DT AS DATE)
617
SET @p_REQ_DT = CAST(@p_REQ_DT AS DATE)
618

    
619
	IF(@p_REQ_CODE IS NULL OR @p_REQ_CODE ='')
620
	BEGIN
621
		SELECT 'REQ-00001' Result, '' REQ_ID, N'Mã tờ trình chủ trương bắt buộc nhập' ErrorDesc 
622
		RETURN '-1'
623
	END
624

    
625

    
626
	IF EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE [REQ_CODE] = @p_REQ_CODE AND REQ_ID <> @p_REQ_ID)
627
	BEGIN
628
		SELECT ErrorCode Result, '' REQ_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'REQ-00001'
629
		RETURN '-1'
630
	END
631
	DECLARE @sErrorCode VARCHAR(20)
632
		
633
  BEGIN TRANSACTION
634
		
635

    
636
		UPDATE dbo.PL_REQUEST_DOC 
637
		SET REQ_CODE=@p_REQ_CODE,REQ_NAME=@p_REQ_NAME,REQ_DT=@p_REQ_DT,REQ_TYPE=@p_REQ_TYPE,REQ_CONTENT=@p_REQ_CONTENT,REQ_REASON=@p_REQ_REASON,RECORD_STATUS=@p_RECORD_STATUS
638
		,BRANCH_ID=@p_BRANCH_ID,TOTAL_AMT=@p_TOTAL_AMT,NOTES=@p_NOTES,MAKER_ID=@p_MAKER_ID,CREATE_DT=@p_CREATE_DT,CHECKER_ID=@p_CHECKER_ID,APPROVE_DT=@p_APPROVE_DT,AUTH_STATUS=@p_AUTH_STATUS,DVDM_APP_ID=@p_DVDM_ID
639
		,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
640
		WHERE REQ_ID=@p_REQ_ID
641
		DELETE FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID
642
		DELETE FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID
643
		DELETE FROM dbo.PL_REQUEST_COSTCENTER WHERE REQ_ID=@p_REQ_ID
644

    
645
		
646
		IF @@Error <> 0 GOTO ABORT
647
		--Insert into TABLE PL_REQUEST_DOC_DT
648
	DECLARE @TABLE TABLE(
649
			PLAN_ID	varchar(15)  ,
650
			TRADE_ID	varchar(15)  ,
651
			GOODS_ID	varchar(15)  ,
652
			[DESCRIPTION] nvarchar(500),
653
			UNIT_ID	varchar(15)  ,
654
			QUANTITY	decimal(18,0)  ,
655
			PRICE	decimal(18,2)  ,
656
			TOTAL_AMT	decimal(18,2),	
657
			NOTES	nvarchar(1000),
658
			REQDT_TYPE VARCHAR(1),
659
			NAME NVARCHAR(500),
660
			DVDM_ID VARCHAR(20),
661
			HH_ID VARCHAR(20),
662
			CURRENCY	nvarchar(50),
663
			EXCHANGE_RATE	decimal(18,2),
664
			TAXES	decimal(18, 2),
665
			SUP_ID VARCHAR(20),
666
			TRADE_TYPE VARCHAR(20),
667
			KHOI_ID VARCHAR(20),
668
			UNIT_NAME NVARCHAR(200)
669
		)
670
	
671

    
672
		--Insert into TABLE PL_REQUEST_DOC_DT
673
		Declare @hdoc INT
674
		Exec sp_xml_preparedocument @hdoc Output,@p_ListGood
675
		INSERT INTO @TABLE
676
		SELECT PLAN_ID,
677
               TRADE_ID,
678
               GOODS_ID,
679
               DESCRIPTION,
680
               UNIT_ID,
681
               QUANTITY,
682
               PRICE,
683
               TOTAL_AMT,
684
               NOTES,
685
               REQDT_TYPE,
686
               NAME,
687
               DVDM_ID,
688
               HH_ID,
689
               CURRENCY,
690
               EXCHANGE_RATE,
691
               TAXES,
692
               SUP_ID,
693
               TRADE_TYPE,
694
			   KHOI_ID,UNIT_NAME
695
		FROM OPENXML(@hDoc,'/Root/ListGood',2)
696
		WITH 
697
		(
698
			PLAN_ID	varchar(15)  ,
699
			TRADE_ID	varchar(15)  ,
700
			GOODS_ID	varchar(15)  ,
701
			[DESCRIPTION] nvarchar(500),
702
			UNIT_ID	varchar(15)  ,
703
			QUANTITY	decimal(18,0)  ,
704
			PRICE	decimal(18,2)  ,
705
			TOTAL_AMT	decimal(18,2),	
706
			NOTES	nvarchar(1000),
707
			REQDT_TYPE VARCHAR(1),
708
			NAME NVARCHAR(500),
709
			DVDM_ID VARCHAR(20),
710
			HH_ID VARCHAR(20),
711
			CURRENCY	nvarchar(50),
712
			EXCHANGE_RATE	decimal(18,2),
713
			TAXES	decimal(18, 2),
714
			SUP_ID VARCHAR(20),
715
			TRADE_TYPE VARCHAR(20),
716
			KHOI_ID VARCHAR(20),
717
			UNIT_NAME NVARCHAR(200)
718
		)
719

    
720

    
721
	
722

    
723
		DECLARE @TABLE_TRANSFER TABLE (
724
			FR_PLAN_ID	varchar(15),
725
			FR_TRADE_ID	varchar(15),
726
			FR_GOOD_ID	varchar(15),
727
			FR_BRN_ID	varchar(15),
728
			TO_BRN_ID	varchar(15),
729
			TO_PLAN_ID	varchar(15),
730
			TO_TRADE_ID	varchar(15),	
731
			TO_GOOD_ID	varchar(15),	
732
			QTY  DECIMAL(18,0),
733
			TOTAL_AMT	decimal(18),	
734
			NOTES	nvarchar(1000),
735
			FR_DEP_ID VARCHAR(20),
736
			TO_DEP_ID VARCHAR(20),
737
			FR_DVDM_ID VARCHAR(20),
738
			TO_DVDM_ID VARCHAR(20),
739
			FR_KHOI_ID VARCHAR(20),
740
			TO_KHOI_ID VARCHAR(20),
741
			FR_GD_TYPE VARCHAR(20),
742
			TO_GD_TYPE VARCHAR(20)
743
		)
744
		Exec sp_xml_preparedocument @hdoc Output,@p_ListTransfer
745
		INSERT INTO @TABLE_TRANSFER
746
		SELECT FR_PLAN_ID,
747
               FR_TRADE_ID,
748
               FR_GOOD_ID,
749
               FR_BRN_ID,
750
               TO_BRN_ID,
751
               TO_PLAN_ID,
752
               TO_TRADE_ID,
753
               TO_GOOD_ID,
754
               QTY,
755
               TOTAL_AMT,
756
               NOTES,
757
               FR_DEP_ID,
758
               TO_DEP_ID,
759
               FR_DVDM_ID,
760
               TO_DVDM_ID,
761
               FR_KHOI_ID,
762
               TO_KHOI_ID,
763
               FR_GD_TYPE,
764
               TO_GD_TYPE 
765
		FROM OPENXML(@hdoc,'/Root/ListTransfer',2)
766
		WITH 
767
		(
768
			FR_PLAN_ID	varchar(15),
769
			FR_TRADE_ID	varchar(15),
770
			FR_GOOD_ID	varchar(15),
771
			FR_BRN_ID	varchar(15),
772
			TO_BRN_ID	varchar(15),
773
			TO_PLAN_ID	varchar(15),
774
			TO_TRADE_ID	varchar(15),	
775
			TO_GOOD_ID	varchar(15),	
776
			QTY  DECIMAL(18,0),
777
			TOTAL_AMT	decimal(18),	
778
			NOTES	nvarchar(1000),
779
			FR_DEP_ID VARCHAR(20),
780
			TO_DEP_ID VARCHAR(20),
781
			FR_DVDM_ID VARCHAR(20),
782
			TO_DVDM_ID VARCHAR(20),
783
			FR_KHOI_ID VARCHAR(20),
784
			TO_KHOI_ID VARCHAR(20),
785
			FR_GD_TYPE VARCHAR(20),
786
			TO_GD_TYPE VARCHAR(20)
787
		
788
		)
789
		WHERE FR_BRN_ID !='' AND FR_BRN_ID IS NOT NULL
790

    
791
			
792

    
793

    
794

    
795
		DECLARE ListGoods  CURSOR FOR
796
		SELECT PLAN_ID,
797
               TRADE_ID,
798
               GOODS_ID,
799
               DESCRIPTION,
800
               UNIT_ID,
801
               QUANTITY,
802
               PRICE,
803
               TOTAL_AMT,
804
               NOTES,
805
               REQDT_TYPE,
806
               NAME,
807
               DVDM_ID,
808
               HH_ID,
809
               CURRENCY,
810
               EXCHANGE_RATE,
811
               TAXES,
812
               SUP_ID,
813
               TRADE_TYPE,KHOI_ID,UNIT_NAME FROM @TABLE
814

    
815
		OPEN ListGoods
816

    
817
		Declare 
818
		@PLAN_ID	varchar(15),
819
		@TRADE_ID	varchar(15),
820
		@GOODS_ID	varchar(15),
821
		@DESCRIPTION nvarchar(500),
822
		@UNIT_ID	varchar(15),
823
		@QUANTITY	decimal(18),
824
		@PRICE	decimal(18,2),
825
		@TOTAL_AMT	decimal(18,2),		
826
		@NOTES	nvarchar(1000),
827
		@REQDT_TYPE VARCHAR(1),
828
		@NAME NVARCHAR(500),
829
		@DVDM_ID VARCHAR(20),
830
		@HH_ID VARCHAR(20),
831
		@CURRENCY	nvarchar(50),
832
		@EXCHANGE_RATE	decimal(18, 2),
833
		@TAXES	decimal(18, 2),
834
		@SUP_ID VARCHAR(20),
835
		@TRADE_TYPE VARCHAR(20),
836
		@KHOI_ID VARCHAR(20),
837
		@UNIT_NAME NVARCHAR(200)
838

    
839
		FETCH NEXT FROM ListGoods INTO @PLAN_ID,@TRADE_ID,@GOODS_ID,@DESCRIPTION,@UNIT_ID,@QUANTITY,
840
		@PRICE,@TOTAL_AMT,@NOTES, @REQDT_TYPE, @NAME,@DVDM_ID,@HH_ID,@CURRENCY,@EXCHANGE_RATE,@TAXES,@SUP_ID,@TRADE_TYPE,@KHOI_ID,@UNIT_NAME
841
		WHILE @@FETCH_STATUS = 0	
842
		BEGIN
843
			
844

    
845

    
846

    
847
			DECLARE @l_REQDT_ID VARCHAR(15)
848
			EXEC SYS_CodeMasters_Gen 'PL_REQUEST_DOC_DT', @l_REQDT_ID out
849
			IF @l_REQDT_ID='' OR @l_REQDT_ID IS NULL GOTO ABORT
850
			
851
		
852
			SET @TOTAL_AMT=(@PRICE * @QUANTITY * @EXCHANGE_RATE) + (@TAXES *@EXCHANGE_RATE)
853

    
854
			INSERT INTO dbo.PL_REQUEST_DOC_DT
855
			(
856
			    REQDT_ID,
857
			    REQ_ID,
858
			    PLAN_ID,
859
			    TRADE_ID,
860
			    GOODS_ID,
861
			    NAME,
862
			    DESCRIPTION,
863
			    REQDT_TYPE,
864
			    UNIT_ID,
865
			    QUANTITY,
866
			    PRICE,
867
			    TOTAL_AMT,
868
			    RECORD_STATUS,
869
			    MAKER_ID,
870
			    CREATE_DT,
871
			    AUTH_STATUS,
872
			    CHECKER_ID,
873
			    APPROVE_DT,
874
				DVDM_ID,
875
				HANGHOA_ID,
876
				CURRENCY,
877
				EXCHANGE_RATE,
878
				TAXES,SUP_ID,TRADE_TYPE,KHOI_ID,UNIT_NAME
879
			)
880
			VALUES
881
			(   @l_REQDT_ID,        -- REQDT_ID - varchar(15)
882
			    @p_REQ_ID,        -- REQ_ID - varchar(15)
883
			    @PLAN_ID,        -- PLAN_ID - varchar(15)
884
			    @TRADE_ID,        -- TRADE_ID - varchar(15)
885
			    @GOODS_ID,        -- GOODS_ID - varchar(15)
886
			    @NAME,       -- NAME - nvarchar(200)
887
			    @DESCRIPTION,       -- DESCRIPTION - nvarchar(500)
888
			    @REQDT_TYPE,        -- REQDT_TYPE - varchar(1)
889
			    @UNIT_ID,        -- UNIT_ID - varchar(15)
890
			    @QUANTITY,      -- QUANTITY - decimal(18, 0)
891
			    @PRICE,      -- PRICE - decimal(18, 0)
892
			    @TOTAL_AMT,      -- TOTAL_AMT - decimal(18, 0)
893
			    @p_RECORD_STATUS,        -- RECORD_STATUS - varchar(1)
894
			    @p_MAKER_ID,        -- MAKER_ID - varchar(15)
895
			     CAST(@p_CREATE_DT AS DATE) , -- CREATE_DT - datetime
896
			    @p_AUTH_STATUS,        -- AUTH_STATUS - varchar(50)
897
			    @p_CHECKER_ID,        -- CHECKER_ID - varchar(15)
898
			     CAST(@P_APPROVE_DT AS DATE),   -- APPROVE_DT - datetime
899
			    @DVDM_ID,
900
				@HH_ID,
901
				@CURRENCY,
902
				@EXCHANGE_RATE,
903
				@TAXES,@SUP_ID,@TRADE_TYPE,@KHOI_ID,@UNIT_NAME
904
				)
905
			
906
			
907
			IF @@ERROR <> 0 GOTO ABORT1
908
		-- next Group_Id
909
			FETCH NEXT FROM ListGoods INTO @PLAN_ID,@TRADE_ID,@GOODS_ID,@DESCRIPTION,@UNIT_ID,@QUANTITY,
910
		@PRICE,@TOTAL_AMT,@NOTES, @REQDT_TYPE, @NAME,@DVDM_ID,@HH_ID,@CURRENCY,@EXCHANGE_RATE,@TAXES,@SUP_ID,@TRADE_TYPE,@KHOI_ID,@UNIT_NAME
911
		END
912
		CLOSE ListGoods
913
		DEALLOCATE ListGoods
914

    
915

    
916
			IF @@Error <> 0 GOTO ABORT
917
		--Insert into TABLE PL_REQUEST_DOC_DT
918
		UPDATE dbo.PL_REQUEST_DOC SET TOTAL_AMT = (SELECT SUM(TOTAL_AMT) FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID =@p_REQ_ID) WHERE PL_REQUEST_DOC.REQ_ID=@p_REQ_ID
919
		
920

    
921

    
922
		DECLARE ListTransfers  CURSOR FOR
923
		SELECT *
924
		FROM @TABLE_TRANSFER
925
		OPEN ListTransfers
926

    
927
		Declare 
928
		@FR_PLAN_ID	varchar(15),
929
		@FR_TRADE_ID	varchar(15),
930
		@FR_GOOD_ID	varchar(15),
931
		@FR_BRN_ID	varchar(15),
932
		@TO_BRN_ID	varchar(15),
933
		@TO_PLAN_ID	varchar(15),
934
		@TO_TRADE_ID	varchar(15),	
935
		@TO_GOOD_ID	varchar(15),	
936
		@QTY  DECIMAL(18,0),
937
		@FR_DEP_ID VARCHAR(20),
938
			@TO_DEP_ID VARCHAR(20),
939
			@FR_DVDM_ID VARCHAR(20),
940
			@TO_DVDM_ID VARCHAR(20),
941
			@FR_KHOI_ID VARCHAR(20),
942
			@TO_KHOI_ID VARCHAR(20),
943
			@FR_GD_TYPE VARCHAR(20),
944
			@TO_GD_TYPE VARCHAR(20)
945

    
946
		FETCH NEXT FROM ListTransfers INTO @FR_PLAN_ID,@FR_TRADE_ID,@FR_GOOD_ID,@FR_BRN_ID,@TO_BRN_ID,@TO_PLAN_ID,
947
		@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
948
		WHILE @@FETCH_STATUS = 0	
949
		BEGIN
950
		
951
			
952
			DECLARE @l_REQ_TRANSFER_ID VARCHAR(15)
953
			EXEC SYS_CodeMasters_Gen 'PL_REQUEST_TRANSFER', @l_REQ_TRANSFER_ID out
954
			IF @l_REQ_TRANSFER_ID='' OR @l_REQ_TRANSFER_ID IS NULL GOTO ABORT
955
	
956
			INSERT INTO dbo.PL_REQUEST_TRANSFER
957
			(
958
			    REQ_TRANSFER_ID,
959
			    REQ_DOC_ID,
960
			    FR_PLAN_ID,
961
			    FR_TRADE_ID,
962
			    FR_GOOD_ID,
963
			    FR_BRN_ID,
964
			    TO_BRN_ID,
965
			    TO_PLAN_ID,
966
			    TO_TRADE_ID,
967
			    TO_GOOD_ID,
968
			    QTY,
969
			    TOTAL_AMT,
970
			    NOTES,
971
			    AUTH_STATUS,
972
			    MAKER_ID,
973
			    CREATE_DT,
974
			    CHECKER_ID,
975
			    APPROVE_DT,
976
				FR_DEP_ID,
977
				TO_DEP_ID,
978
				FR_DVDM_ID,
979
				TO_DVDM_ID,
980
				FR_KHOI_ID,
981
				TO_KHOI_ID
982
			)
983
			VALUES
984
			(   @l_REQ_TRANSFER_ID,        -- REQ_TRANSFER_ID - varchar(15)
985
				@p_REQ_ID,        -- REQ_DOC_ID - varchar(15)
986
			    @FR_PLAN_ID,        -- FR_PLAN_ID - varchar(15)
987
			    @FR_TRADE_ID,        -- FR_TRADE_ID - varchar(15)
988
			    @FR_GOOD_ID,        -- FR_GOOD_ID - varchar(15)
989
			    @FR_BRN_ID,        -- FR_BRN_ID - varchar(15)
990
			    @TO_BRN_ID,        -- TO_BRN_ID - varchar(15)
991
			    @TO_PLAN_ID,        -- TO_PLAN_ID - varchar(15)
992
			    @TO_TRADE_ID,        -- TO_TRADE_ID - varchar(15)
993
			    @TO_GOOD_ID,        -- TO_GOOD_ID - varchar(15)
994
			    @QTY,      -- QTY - decimal(18, 0)
995
			    @TOTAL_AMT,      -- TOTAL_AMT - decimal(18, 0)
996
			    @NOTES,       -- NOTES - nvarchar(500)
997
			    @p_AUTH_STATUS,        -- AUTH_STATUS - varchar(1)
998
			    @p_MAKER_ID,        -- MAKER_ID - varchar(15)
999
			     CAST(@p_CREATE_DT AS DATE), -- CREATE_DT - datetime
1000
			    @p_CHECKER_ID,        -- CHECKER_ID - varchar(15)
1001
			    CAST(@p_APPROVE_DT AS DATE),
1002
				@FR_DEP_ID,
1003
				@TO_DEP_ID,
1004
				@FR_DVDM_ID,
1005
				@TO_DVDM_ID,
1006
				@FR_KHOI_ID,
1007
				@TO_KHOI_ID  -- APPROVE_DT - datetime
1008
			    )
1009
			
1010
			
1011
			IF @@ERROR <> 0 GOTO ABORT1
1012
		-- next Group_Id
1013
			FETCH NEXT FROM ListTransfers INTO @FR_PLAN_ID,@FR_TRADE_ID,@FR_GOOD_ID,@FR_BRN_ID,@TO_BRN_ID,@TO_PLAN_ID,
1014
		@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
1015
		END
1016
		CLOSE ListTransfers
1017
		DEALLOCATE ListTransfers
1018

    
1019
			IF @@Error <> 0 GOTO ABORT
1020
		--Insert into TABLE PL_REQUEST_DOC_DT
1021
		Exec sp_xml_preparedocument @hdoc Output,@p_ListCostCenter
1022
		DECLARE ListCostCenters  CURSOR FOR
1023
		SELECT *
1024
		FROM OPENXML(@hDoc,'/Root/ListCostCenter',2)
1025
		WITH 
1026
		(
1027
			COST_ID	varchar(15),	
1028
			NOTES	nvarchar(1000)
1029
		
1030
		)
1031
		OPEN ListCostCenters
1032

    
1033
		Declare 
1034
		@COST_ID	varchar(15)
1035

    
1036

    
1037
		FETCH NEXT FROM ListCostCenters INTO @COST_ID, @NOTES
1038
		WHILE @@FETCH_STATUS = 0	
1039
		BEGIN
1040
			
1041
			DECLARE @l_REQ_COST_ID VARCHAR(15)
1042
			EXEC SYS_CodeMasters_Gen 'PL_REQUEST_COSTCENTER', @l_REQ_COST_ID out
1043
			IF @l_REQ_COST_ID='' OR @l_REQ_COST_ID IS NULL GOTO ABORT
1044
	
1045
			INSERT INTO dbo.PL_REQUEST_COSTCENTER
1046
			(
1047
			    REQ_COST_ID,
1048
			    COST_ID,
1049
			    REQ_ID,
1050
			    NOTES,
1051
			    AUTH_STATUS,
1052
			    MAKER_ID,
1053
			    CREATE_DT,
1054
			    CHECKER_ID,
1055
			    APPROVE_DT
1056
			)
1057
			VALUES
1058
			(   @l_REQ_COST_ID,        -- REQ_COST_ID - varchar(15)
1059
			    @COST_ID,        -- COST_ID - varchar(15)
1060
			    @p_REQ_ID,        -- REQ_ID - varchar(15)
1061
			    @NOTES,       -- NOTES - nvarchar(500)
1062
			    @p_AUTH_STATUS,        -- AUTH_STATUS - varchar(1)
1063
			    @p_MAKER_ID,        -- MAKER_ID - varchar(15)
1064
			      CAST(@p_CREATE_DT AS DATE) , -- CREATE_DT - datetime
1065
			    @p_CHECKER_ID,        -- CHECKER_ID - varchar(15)
1066
			        CAST(@p_APPROVE_DT AS DATE)  -- APPROVE_DT - datetime
1067
			 )
1068
			
1069
			
1070
			IF @@ERROR <> 0 GOTO ABORT1
1071
		-- next Group_Id
1072
			FETCH NEXT FROM ListCostCenters INTO @COST_ID, @NOTES
1073
		END
1074
		CLOSE ListCostCenters
1075
		DEALLOCATE ListCostCenters
1076

    
1077

    
1078

    
1079

    
1080
		
1081
COMMIT TRANSACTION
1082
SELECT '0' as Result, @p_REQ_ID  REQ_ID, '' ErrorDesc
1083
RETURN '0'
1084
ABORT:
1085
BEGIN
1086
		ROLLBACK TRANSACTION
1087
		SELECT '-1' AS Result, ''  REQ_ID, '' ErrorDesc
1088
		RETURN '-1'
1089
End
1090
ABORT1:
1091
BEGIN
1092
		CLOSE ListGoods
1093
		DEALLOCATE ListGoods
1094
		CLOSE ListCostCenters
1095
		DEALLOCATE ListCostCenters
1096
		CLOSE ListCostCenters
1097
		DEALLOCATE ListCostCenters
1098
		ROLLBACK TRANSACTION
1099
		SELECT '-1' AS Result, ''  REQ_ID, '' ErrorDesc
1100
		RETURN '-1'
1101
End