Project

General

Profile

store_PL_DOC.txt

Truong Nguyen Vu, 07/21/2020 10:44 AM

 
1

    
2

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

    
52

    
53
		DECLARE @BRANCH_CREATE VARCHAR(20),@DEP_CREATE VARCHAR(20)
54

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

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

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

    
195
		
196

    
197
		
198

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

    
222
		Exec sp_xml_preparedocument @hdoc Output,@p_ListTransfer
223

    
224
		INSERT INTO @TABLE_TRANSFER
225
		SELECT FR_PLAN_ID,
226
               FR_TRADE_ID,
227
               FR_GOOD_ID,
228
               FR_BRN_ID,
229
               TO_BRN_ID,
230
               TO_PLAN_ID,
231
               TO_TRADE_ID,
232
               TO_GOOD_ID,
233
               QTY,
234
               TOTAL_AMT,
235
               NOTES,
236
               FR_DEP_ID,
237
               TO_DEP_ID,
238
               FR_DVDM_ID,
239
               TO_DVDM_ID,
240
               FR_KHOI_ID,
241
               TO_KHOI_ID,
242
               FR_GD_TYPE,
243
               TO_GD_TYPE 
244
		FROM OPENXML(@hdoc,'/Root/ListTransfer',2)
245
		WITH 
246
		(
247
			FR_PLAN_ID	varchar(15),
248
			FR_TRADE_ID	varchar(15),
249
			FR_GOOD_ID	varchar(15),
250
			FR_BRN_ID	varchar(15),
251
			TO_BRN_ID	varchar(15),
252
			TO_PLAN_ID	varchar(15),
253
			TO_TRADE_ID	varchar(15),	
254
			TO_GOOD_ID	varchar(15),	
255
			QTY  DECIMAL(18,0),
256
			TOTAL_AMT	decimal(18),	
257
			NOTES	nvarchar(1000),
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
		
267
		)
268
		WHERE FR_BRN_ID !='' AND FR_BRN_ID IS NOT NULL
269

    
270

    
271
		
272

    
273

    
274

    
275

    
276

    
277

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

    
298
		OPEN ListGoods
299

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

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

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

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

    
395

    
396
			IF @@Error <> 0 GOTO ABORT
397
		--Insert into TABLE PL_REQUEST_DOC_DT
398

    
399
		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
400
		
401

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

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

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

    
434

    
435

    
436

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

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

    
518
		Declare 
519
		@COST_ID	varchar(15)
520

    
521

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

    
562
	
563

    
564

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

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

    
627

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

    
638
		UPDATE dbo.PL_REQUEST_DOC 
639
		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
640
		,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
641
		,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
642
		WHERE REQ_ID=@p_REQ_ID
643
		DELETE FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID
644
		DELETE FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID
645
		DELETE FROM dbo.PL_REQUEST_COSTCENTER WHERE REQ_ID=@p_REQ_ID
646

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

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

    
722

    
723
	
724

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

    
793
			
794

    
795

    
796

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

    
817
		OPEN ListGoods
818

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

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

    
847

    
848

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

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

    
917

    
918
			IF @@Error <> 0 GOTO ABORT
919
		--Insert into TABLE PL_REQUEST_DOC_DT
920
		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
921
		
922

    
923

    
924
		DECLARE ListTransfers  CURSOR FOR
925
		SELECT *
926
		FROM @TABLE_TRANSFER
927
		OPEN ListTransfers
928

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

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

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

    
1035
		Declare 
1036
		@COST_ID	varchar(15)
1037

    
1038

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

    
1079

    
1080

    
1081

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

    
1105

    
1106

    
1107

    
1108

    
1109