Project

General

Profile

21072020 FILE 12 PYCMS.txt

Luc Tran Van, 07/21/2020 01:33 PM

 
1
ALTER PROCEDURE [dbo].[TR_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_PL_REQ_ID VARCHAR(15),
9
@p_TOTAL_AMT	decimal = NULL,
10
@p_NOTES	nvarchar(1000)  = NULL,
11
@p_RECORD_STATUS	varchar(1)  = NULL,
12
@p_MAKER_ID	varchar(12)  = NULL,
13
@p_CREATE_DT	DATETIME = NULL,
14
@p_AUTH_STATUS	varchar(50)  = NULL,
15
@p_CHECKER_ID	varchar(12)  = NULL,
16
@p_APPROVE_DT	DATETIME = NULL,
17
@p_BRANCH_DO VARCHAR(15)=NULL,
18
@p_BRANCH_CREATE VARCHAR(15)=NULL,
19
@p_DEP_CREATE VARCHAR(20)=NULL,
20
@p_REQ_PARENT_ID VARCHAR(20)=NULL,
21
@p_USER_REQUEST VARCHAR(15)=NULL,
22
@p_SIGN_USER VARCHAR(15)=NULL,
23
@p_ListGood XML
24
AS
25
	
26

    
27
	IF EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE [REQ_CODE] = @p_REQ_CODE)
28
	BEGIN
29
		SELECT ErrorCode Result, '' REQ_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'REQ-00001'
30
		RETURN '0'
31
	END
32
	DECLARE @sErrorCode VARCHAR(20)
33
		
34

    
35
	
36
  BEGIN TRANSACTION
37
  
38
	exec [TR_CODE_GenKey] 'TR_REQUEST_DOC', '','PUR', @p_REQ_CODE out
39

    
40
	IF(@p_REQ_CODE IS NULL OR @p_REQ_CODE ='')
41
	BEGIN
42
		SELECT 'REQ-00001' Result, '' REQ_ID, N'Mã phiếu yêu cầu bắt buộc nhập' ErrorDesc 
43
		RETURN '0'
44
	END
45
		--insert master				
46
		DECLARE @l_REQ_ID VARCHAR(15)
47
		EXEC SYS_CodeMasters_Gen 'TR_REQUEST_DOC', @l_REQ_ID out
48
		IF @l_REQ_ID='' OR @l_REQ_ID IS NULL GOTO ABORT
49

    
50

    
51
		INSERT INTO dbo.TR_REQUEST_DOC
52
		(
53
		    REQ_ID,
54
		    REQ_CODE,
55
		    REQ_NAME,
56
		    REQ_DT,
57
		    REQ_TYPE,
58
		    REQ_REASON,
59
		    REQ_CONTENT,
60
		    PL_REQ_ID,
61
		    TOTAL_AMT,
62
		    NOTES,
63
		    RECORD_STATUS,
64
		    MAKER_ID,
65
		    CREATE_DT,
66
		    AUTH_STATUS,
67
		    CHECKER_ID,
68
		    APPROVE_DT,
69
			BRANCH_DO,
70
			PROCESS_ID,
71
			BRANCH_CREATE,
72
			USER_REQUEST,
73
			BRANCH_DVMS,
74
			DEP_CREATE,
75
			REQ_PARENT_ID,SIGN_USER
76
		)
77
		VALUES
78
		(   @l_REQ_ID,        -- REQ_ID - varchar(15)
79
		    @p_REQ_CODE,        -- REQ_CODE - varchar(100)
80
		    @p_REQ_NAME,       -- REQ_NAME - nvarchar(200)
81
			@p_REQ_DT, -- REQ_DT - datetime
82
		    @p_REQ_TYPE, 
83
			@p_REQ_REASON,        -- REQ_TYPE - int
84
		    @p_REQ_CONTENT,       -- REQ_CONTENT - nvarchar(1000)
85
		         -- REQ_REASON - nvarchar(500)
86
		    @p_PL_REQ_ID,     
87
		    @p_TOTAL_AMT,      -- TOTAL_AMT - decimal(18, 0)
88
		    @p_NOTES,       -- NOTES - nvarchar(1000)
89
		    @p_RECORD_STATUS,        -- RECORD_STATUS - varchar(1)
90
		    @p_MAKER_ID,        -- MAKER_ID - varchar(12)
91
		    @p_CREATE_DT, -- CREATE_DT - datetime
92
		    'E',        -- AUTH_STATUS - varchar(50)
93
		    @p_CHECKER_ID,        -- CHECKER_ID - varchar(12)
94
		    @p_APPROVE_DT,  -- APPROVE_DT - datetime
95
		    @p_BRANCH_DO,
96
			'',   -- BRANCH_ID - varchar(15)
97
			@p_BRANCH_CREATE,
98
			@p_USER_REQUEST,
99
			@p_BRANCH_CREATE,
100
			@p_DEP_CREATE,
101
			@p_REQ_PARENT_ID,@p_SIGN_USER
102
			)
103
		IF @@Error <> 0 GOTO ABORT
104
		--Insert into TABLE PL_REQUEST_DOC_DT
105

    
106
		DECLARE @lstTRDT TABLE(
107
			PL_REQDT_ID	varchar(15)  ,
108
			GOODS_ID	varchar(15)  ,
109
			[DESCRIPTION] nvarchar(500),
110
			QUANTITY	decimal(18,0)  ,
111
			PRICE	decimal(18,2)  ,
112
			TOTAL_AMT	decimal(18,2),	
113
			NOTES	nvarchar(1000),
114
			REQ_DT DATETIME,
115
			AMORT_MONTH DECIMAL(18,2),
116
			TRADE_TYPE_ID varchar(15),
117
			SUP_ID varchar(15),
118
			HH_ID VARCHAR(20),
119
			CURRENCY	nvarchar(50),
120
			EXCHANGE_RATE	decimal(18, 2),
121
			TAXES	decimal(18, 2),
122
			DVDM_ID  VARCHAR(20)
123
		)
124

    
125

    
126
		Declare @hdoc INT
127
		Exec sp_xml_preparedocument @hdoc Output,@p_ListGood
128

    
129
		INSERT INTO @lstTRDT
130
		SELECT *
131
		FROM OPENXML(@hDoc,'/Root/ListGood',2)
132
		WITH 
133
		(
134
			PL_REQDT_ID	varchar(15)  ,
135
			GOODS_ID	varchar(15)  ,
136
			[DESCRIPTION] nvarchar(500),
137
			QUANTITY	decimal(18,0)  ,
138
			PRICE	decimal(18,2)  ,
139
			TOTAL_AMT	decimal(18,2),	
140
			NOTES	nvarchar(1000),
141
			REQ_DT DATETIME,
142
			AMORT_MONTH DECIMAL(18,2),
143
			TRADE_TYPE_ID varchar(15),
144
			SUP_ID varchar(15),
145
			HH_ID VARCHAR(20),
146
			CURRENCY	nvarchar(50),
147
			EXCHANGE_RATE	decimal(18, 2),
148
			TAXES	decimal(18, 2),
149
			DVDM_ID  VARCHAR(20)
150
		)
151

    
152

    
153

    
154
		DECLARE ListGoods  CURSOR FOR
155
		SELECT * FROM @lstTRDT
156
		OPEN ListGoods
157

    
158
		Declare 
159
		@PL_REQDT_ID	varchar(15),
160
		@SUP_ID	varchar(15),
161
		@GOODS_ID	varchar(15),
162
		@DESCRIPTION nvarchar(500),
163
		@QUANTITY	decimal(18),
164
		@PRICE	decimal(18),
165
		@TOTAL_AMT	decimal(18),		
166
		@NOTES	nvarchar(1000),
167
		@TRADE_TYPE_ID varchar(15),
168
		@AMORT_MONTH DECIMAL(18,2),
169
		@RED_DT DATETIME,
170
		@HH_ID VARCHAR(20),
171
		@CURRENCY	nvarchar(50),
172
		@EXCHANGE_RATE	decimal(18, 2),
173
		@DVDM_ID VARCHAR(20),
174
		@TAXES	decimal(18, 2)
175

    
176
		FETCH NEXT FROM ListGoods INTO @PL_REQDT_ID,@GOODS_ID,@DESCRIPTION,@QUANTITY,@PRICE,@TOTAL_AMT,
177
		@NOTES,@RED_DT,@AMORT_MONTH, @TRADE_TYPE_ID, @SUP_ID,@HH_ID,@CURRENCY,@EXCHANGE_RATE,@TAXES,@DVDM_ID
178
		WHILE @@FETCH_STATUS = 0	
179
		BEGIN
180
			DECLARE @l_REQDT_ID VARCHAR(15)
181
			EXEC SYS_CodeMasters_Gen 'TR_REQUEST_DOC_DT', @l_REQDT_ID out
182
			IF @l_REQDT_ID='' OR @l_REQDT_ID IS NULL GOTO ABORT
183
			INSERT INTO dbo.TR_REQUEST_DOC_DT
184
			(
185
			    REQDT_ID,
186
			    REQ_DOC_ID,
187
			    PL_REQDT_ID,
188
			    GD_ID,
189
				TRAN_TYPE_ID,
190
				SUP_ID,
191
			    DESCRIPTION,
192
			    QUANTITY,
193
			    PRICE,
194
				PRICE_ETM,
195
			    TOTAL_AMT,
196
				TOTAL_AMT_ETM,
197
			    REQ_DT,
198
			    AMORT_MONTH,
199
			    NOTES,
200
			    RECORD_STATUS,
201
			    MAKER_ID,
202
			    CREATE_DT,
203
			    AUTH_STATUS,
204
			    CHECKER_ID,
205
			    APPROVE_DT,
206
				HANGHOA_ID,
207
				CURRENCY,
208
				EXCHANGE_RATE,
209
				TAXES,
210
				DVDM_ID
211
			)	
212
			VALUES
213
			(   @l_REQDT_ID,        -- REQDT_ID - varchar(15)
214
			    @l_REQ_ID,        -- REQ_ID - varchar(15)
215
			    @PL_REQDT_ID,        -- PLAN_ID - varchar(15)
216
			    @GOODS_ID,        -- GOODS_ID - varchar(15)
217
			    @TRADE_TYPE_ID,
218
				@SUP_ID,       -- NAME - nvarchar(200)
219
			    @DESCRIPTION,       -- DESCRIPTION - nvarchar(500)
220
				@QUANTITY,      -- QUANTITY - decimal(18, 0)
221
			    @PRICE,
222
				@PRICE,     -- PRICE - decimal(18, 0)
223
			    @TOTAL_AMT,
224
				@TOTAL_AMT,
225
				@RED_DT,
226
				@AMORT_MONTH,
227
				@NOTES,  -- TOTAL_AMT - decimal(18, 0)
228
			    @p_RECORD_STATUS,        -- RECORD_STATUS - varchar(1)
229
			    @p_MAKER_ID,        -- MAKER_ID - varchar(15)
230
			    @p_CREATE_DT, -- CREATE_DT - datetime
231
			    @p_AUTH_STATUS,        -- AUTH_STATUS - varchar(50)
232
			    @p_CHECKER_ID,        -- CHECKER_ID - varchar(15)
233
			    @p_APPROVE_DT,
234
				@HH_ID,
235
				@CURRENCY,
236
				@EXCHANGE_RATE,
237
				@TAXES,
238
				@DVDM_ID-- APPROVE_DT - datetime
239
			)
240
			IF @@ERROR <> 0 GOTO ABORT1
241
		-- next Group_Id
242
			FETCH NEXT FROM ListGoods INTO @PL_REQDT_ID,@GOODS_ID,@DESCRIPTION,@QUANTITY,@PRICE,@TOTAL_AMT,
243
		@NOTES,@RED_DT,@AMORT_MONTH, @TRADE_TYPE_ID, @SUP_ID,@HH_ID,@CURRENCY,@EXCHANGE_RATE,@TAXES,@DVDM_ID
244
		END
245
		CLOSE ListGoods
246
		DEALLOCATE ListGoods
247

    
248

    
249
		IF @@Error <> 0 GOTO ABORT
250
		---
251
		UPDATE TR_REQUEST_DOC_DT SET TOTAL_AMT = PRICE*QUANTITY*EXCHANGE_RATE + TAXES*EXCHANGE_RATE WHERE REQ_DOC_ID =@l_REQ_ID
252
		UPDATE TR_REQUEST_DOC SET TOTAL_AMT =(SELECT SUM(TOTAL_AMT) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID =@l_REQ_ID)
253
		---
254
		DECLARE @COST_ID VARCHAR(20)
255

    
256
		DECLARE lstCostCenter CURSOR FOR
257
		SELECT COST_ID FROM dbo.PL_REQUEST_COSTCENTER WHERE REQ_ID=@p_PL_REQ_ID
258
		GROUP BY COST_ID
259
		OPEN lstCostCenter
260
		FETCH NEXT FROM lstCostCenter INTO @COST_ID
261
		WHILE @@FETCH_STATUS=0
262
		BEGIN
263

    
264

    
265
			DECLARE @l_REQ_COST_ID VARCHAR(15)
266
			EXEC SYS_CodeMasters_Gen 'TR_REQUEST_COSTCENTER', @l_REQ_COST_ID out
267
			IF @l_REQ_COST_ID='' OR @l_REQ_COST_ID IS NULL GOTO ABORT
268
				INSERT INTO dbo.TR_REQUEST_COSTCENTER
269
				(
270
					REQ_COST_ID,
271
					COST_ID,
272
					REQ_ID,
273
					NOTES,
274
					AUTH_STATUS,
275
					MAKER_ID,
276
					CREATE_DT,
277
					CHECKER_ID,
278
					APPROVE_DT
279
				)
280
				VALUES
281
				(   @l_REQ_COST_ID,        -- REQ_COST_ID - varchar(15)
282
					@COST_ID,        -- COST_ID - varchar(15)
283
					@l_REQ_ID,        -- REQ_ID - varchar(15)
284
					N'',       -- NOTES - nvarchar(500)
285
					'',        -- AUTH_STATUS - varchar(1)
286
					@p_MAKER_ID,        -- MAKER_ID - varchar(15)
287
					NULL, -- CREATE_DT - datetime
288
					'',        -- CHECKER_ID - varchar(15)
289
					NULL  -- APPROVE_DT - datetime
290
					)
291
				FETCH NEXT FROM lstCostCenter INTO @COST_ID
292
		END 
293
		CLOSE lstCostCenter
294
		DEALLOCATE lstCostCenter
295
		IF @@Error <> 0 GOTO ABORT
296

    
297
		
298
		INSERT INTO dbo.PL_REQUEST_PROCESS
299
		(
300
		    REQ_ID,
301
		    PROCESS_ID,
302
		    STATUS,
303
		    ROLE_USER,
304
		    BRANCH_ID,
305
		    CHECKER_ID,
306
		    APPROVE_DT,
307
		    PARENT_PROCESS_ID,
308
		    IS_LEAF,
309
		    COST_ID,
310
		    DVDM_ID,
311
		    NOTES,
312
		    IS_HAS_CHILD
313
		)
314
		VALUES
315
		(   @l_REQ_ID,        -- REQ_ID - varchar(15)
316
		    'NEW',        -- PROCESS_ID - varchar(10)
317
		    'C',        -- STATUS - varchar(5)
318
		    '',        -- ROLE_USER - varchar(50)
319
		    '',        -- BRANCH_ID - varchar(15)
320
		    '',        -- CHECKER_ID - varchar(15)
321
		    NULL,      -- APPROVE_DT - datetime
322
		    '',        -- PARENT_PROCESS_ID - varchar(10)
323
		    'N',        -- IS_LEAF - varchar(1)
324
		    '',        -- COST_ID - varchar(15)
325
		    '',        -- DVDM_ID - varchar(15)
326
		    N'Chờ trưởng đơn vị phê duyệt',       -- NOTES - nvarchar(500)
327
		    NULL       -- IS_HAS_CHILD - bit
328
		    )
329
		
330
COMMIT TRANSACTION
331
SELECT '0' as Result, @l_REQ_ID  REQ_ID, @p_REQ_CODE AS ErrorDesc
332
RETURN '0'
333
ABORT:
334
BEGIN
335
		ROLLBACK TRANSACTION
336
		SELECT '-1' AS RESULT
337
		RETURN '-1'
338
End
339
ABORT1:
340
BEGIN
341
		CLOSE ListGoods
342
		DEALLOCATE ListGoods
343
		ROLLBACK TRANSACTION
344
		SELECT '-1' AS RESULT
345
		RETURN '-1'
346
End
347
¿
348
ALTER PROCEDURE [dbo].[TR_REQUEST_DOC_Upd]
349
@p_REQ_ID varchar(15),
350
@p_REQ_CODE	nvarchar(100)  = NULL,
351
@p_REQ_NAME	nvarchar(200)  = NULL,
352
@p_REQ_DT	DATETIME = NULL,
353
@p_REQ_TYPE	int = NULL,
354
@p_REQ_CONTENT NVARCHAR(1000)=NULL,
355
@p_REQ_REASON NVARCHAR(500)=NULL,
356
@p_PL_REQ_ID VARCHAR(15),
357
@p_TOTAL_AMT	decimal = NULL,
358
@p_NOTES	nvarchar(1000)  = NULL,
359
@p_RECORD_STATUS	varchar(1)  = NULL,
360
@p_MAKER_ID	varchar(12)  = NULL,
361
@p_CREATE_DT	DATETIME = NULL,
362
@p_AUTH_STATUS	varchar(50)  = NULL,
363
@p_CHECKER_ID	varchar(12)  = NULL,
364
@p_APPROVE_DT	DATETIME = NULL,
365
@p_BRANCH_DO VARCHAR(15)=NULL,
366
@p_BRANCH_CREATE VARCHAR(15)=NULL,
367
@p_DEP_CREATE VARCHAR(20)=NULL,
368
@p_REQ_PARENT_ID VARCHAR(20)=NULL,
369
@p_USER_REQUEST VARCHAR(15)=NULL,
370
@p_SIGN_USER VARCHAR(15)=NULL,
371
@p_ListGood XML
372
AS
373

    
374
	IF(@p_REQ_CODE IS NULL OR @p_REQ_CODE ='')
375
	BEGIN
376
		SELECT 'REQ-00001' Result, '' REQ_ID, N'Mã phiếu yêu cầu bắc buộc nhập' ErrorDesc 
377
		RETURN '0'
378
	END
379

    
380
	IF EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE [REQ_CODE] = @p_REQ_CODE AND REQ_ID <> @p_REQ_ID)
381
	BEGIN
382
		SELECT ErrorCode Result, '' REQ_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'REQ-00001'
383
		RETURN '0'
384
	END
385
	DECLARE @sErrorCode VARCHAR(20)
386
		
387

    
388
	
389
  BEGIN TRANSACTION
390

    
391
		UPDATE dbo.TR_REQUEST_DOC
392
		SET REQ_CODE=@p_REQ_CODE,REQ_NAME=@p_REQ_NAME,REQ_DT=@p_REQ_DT,REQ_CONTENT=@p_REQ_CONTENT,REQ_REASON=@p_REQ_REASON,
393
		RECORD_STATUS=@p_RECORD_STATUS,PL_REQ_ID=@p_PL_REQ_ID,MAKER_ID=@p_MAKER_ID,TOTAL_AMT=@p_TOTAL_AMT,NOTES=@p_NOTES,CHECKER_ID=@p_CHECKER_ID,APPROVE_DT=@p_APPROVE_DT,USER_REQUEST=@p_USER_REQUEST,DEP_CREATE=@p_DEP_CREATE,REQ_PARENT_ID=@p_REQ_PARENT_ID,
394
		SIGN_USER =@p_SIGN_USER
395
		WHERE REQ_ID=@p_REQ_ID
396
		IF @@Error <> 0 GOTO ABORT
397

    
398

    
399
		DELETE FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID
400
		DELETE FROM dbo.TR_REQUEST_COSTCENTER WHERE REQ_ID=@p_REQ_ID
401
		--Insert into TABLE PL_REQUEST_DOC_DT
402

    
403
		DECLARE @lstTRDT TABLE(
404
			REQDT_ID 	varchar(15)  ,
405
			PL_REQDT_ID	varchar(15)  ,
406
			GOODS_ID	varchar(15)  ,
407
			[DESCRIPTION] nvarchar(500),
408
			QUANTITY	decimal(18,0)  ,
409
			PRICE	decimal(18,2)  ,
410
			TOTAL_AMT	decimal(18,2),	
411
			NOTES	nvarchar(1000),
412
			REQ_DT DATETIME,
413
			AMORT_MONTH DECIMAL(18,2),
414
			TRADE_TYPE_ID varchar(15),
415
			SUP_ID varchar(15),
416
			HH_ID VARCHAR(20),
417
			CURRENCY	nvarchar(50),
418
			EXCHANGE_RATE	decimal(18, 2),
419
			TAXES	decimal(18, 2),
420
			DVDM_ID  VARCHAR(20)
421
		)
422

    
423

    
424
		Declare @hdoc INT
425
		Exec sp_xml_preparedocument @hdoc Output,@p_ListGood
426

    
427
		INSERT INTO @lstTRDT
428
		SELECT *
429
		FROM OPENXML(@hDoc,'/Root/ListGood',2)
430
		WITH 
431
		(
432
			REQDT_ID 	varchar(15)  ,
433
			PL_REQDT_ID	varchar(15)  ,
434
			GOODS_ID	varchar(15)  ,
435
			[DESCRIPTION] nvarchar(500),
436
			QUANTITY	decimal(18,0)  ,
437
			PRICE	decimal(18,2)  ,
438
			TOTAL_AMT	decimal(18,2),	
439
			NOTES	nvarchar(1000),
440
			REQ_DT DATETIME,
441
			AMORT_MONTH DECIMAL(18,2),
442
			TRADE_TYPE_ID varchar(15),
443
			SUP_ID varchar(15),
444
			HH_ID VARCHAR(20),
445
			CURRENCY	nvarchar(50),
446
			EXCHANGE_RATE	decimal(18, 2),
447
			TAXES	decimal(18, 2),
448
			DVDM_ID  VARCHAR(20)
449
			)
450
		DECLARE ListGoods  CURSOR FOR
451
		SELECT * FROM @lstTRDT
452
		OPEN ListGoods
453

    
454
		Declare 
455
		@REQDT_ID 	varchar(15)  ,
456
		@PL_REQDT_ID	varchar(15),
457
		@SUP_ID	varchar(15),
458
		@GOODS_ID	varchar(15),
459
		@DESCRIPTION nvarchar(500),
460
		@QUANTITY	decimal(18),
461
		@PRICE	decimal(18),
462
		@TOTAL_AMT	decimal(18),		
463
		@NOTES	nvarchar(1000),
464
		@TRADE_TYPE_ID varchar(15),
465
		@AMORT_MONTH DECIMAL(18,2),
466
		@RED_DT DATETIME,
467
		@HH_ID VARCHAR(20),
468
		@CURRENCY	nvarchar(50),
469
		@EXCHANGE_RATE	decimal(18, 2),
470
		@TAXES	decimal(18, 2),
471
		@DVDM_ID VARCHAR(20)
472

    
473
		FETCH NEXT FROM ListGoods INTO @REQDT_ID, @PL_REQDT_ID,@GOODS_ID,@DESCRIPTION,@QUANTITY,@PRICE,@TOTAL_AMT,
474
		@NOTES,@RED_DT,@AMORT_MONTH, @TRADE_TYPE_ID, @SUP_ID,@HH_ID,@CURRENCY,@EXCHANGE_RATE,@TAXES,@DVDM_ID
475
		WHILE @@FETCH_STATUS = 0	
476
		BEGIN
477
			
478
			DECLARE @l_REQDT_ID VARCHAR(15)
479
			EXEC SYS_CodeMasters_Gen 'TR_REQUEST_DOC_DT', @l_REQDT_ID out
480
			IF @l_REQDT_ID='' OR @l_REQDT_ID IS NULL GOTO ABORT
481
	
482
		
483
			INSERT INTO dbo.TR_REQUEST_DOC_DT
484
			(
485
			    REQDT_ID,
486
			    REQ_DOC_ID,
487
			    PL_REQDT_ID,
488
			    GD_ID,
489
				TRAN_TYPE_ID,
490
				SUP_ID,
491
			    DESCRIPTION,
492
			    QUANTITY,
493
			    PRICE,
494
				PRICE_ETM,
495
			    TOTAL_AMT,
496
				TOTAL_AMT_ETM,
497
			    REQ_DT,
498
			    AMORT_MONTH,
499
			    NOTES,
500
			    RECORD_STATUS,
501
			    MAKER_ID,
502
			    CREATE_DT,
503
			    AUTH_STATUS,
504
			    CHECKER_ID,
505
			    APPROVE_DT,
506
				HANGHOA_ID,
507
				CURRENCY,
508
				EXCHANGE_RATE,
509
				TAXES,
510
				DVDM_ID
511
			)	
512
			VALUES
513
			(   @l_REQDT_ID,        -- REQDT_ID - varchar(15)
514
			    @p_REQ_ID,        -- REQ_ID - varchar(15)
515
			    @PL_REQDT_ID,        -- PLAN_ID - varchar(15)
516
			    @GOODS_ID,        -- GOODS_ID - varchar(15)
517
			    @TRADE_TYPE_ID,
518
				@SUP_ID,       -- NAME - nvarchar(200)
519
			    @DESCRIPTION,       -- DESCRIPTION - nvarchar(500)
520
				@QUANTITY,      -- QUANTITY - decimal(18, 0)
521
			    @PRICE,
522
				@PRICE,-- PRICE - decimal(18, 0)
523
			    @TOTAL_AMT,   
524
				@TOTAL_AMT, 
525
				@RED_DT,
526
				@AMORT_MONTH,
527
				@NOTES,  -- TOTAL_AMT - decimal(18, 0)
528
			    @p_RECORD_STATUS,        -- RECORD_STATUS - varchar(1)
529
			    @p_MAKER_ID,        -- MAKER_ID - varchar(15)
530
			    @p_CREATE_DT, -- CREATE_DT - datetime
531
			    @p_AUTH_STATUS,        -- AUTH_STATUS - varchar(50)
532
			    @p_CHECKER_ID,        -- CHECKER_ID - varchar(15)
533
			    @p_APPROVE_DT,
534
				@HH_ID,
535
				@CURRENCY,
536
				@EXCHANGE_RATE,
537
				@TAXES,
538
				@DVDM_ID  -- APPROVE_DT - datetime
539
			)
540
			IF @@ERROR <> 0 GOTO ABORT1
541
		-- next Group_Id
542
		FETCH NEXT FROM ListGoods INTO @REQDT_ID,@PL_REQDT_ID,@GOODS_ID,@DESCRIPTION,@QUANTITY,@PRICE,@TOTAL_AMT,
543
		@NOTES,@RED_DT,@AMORT_MONTH, @TRADE_TYPE_ID, @SUP_ID,@HH_ID,@CURRENCY,@EXCHANGE_RATE,@TAXES,@DVDM_ID
544
		END
545
		CLOSE ListGoods
546
		DEALLOCATE ListGoods
547
		IF @@Error <> 0 GOTO ABORT
548
		---
549
		UPDATE TR_REQUEST_DOC_DT SET TOTAL_AMT = PRICE*QUANTITY*EXCHANGE_RATE + TAXES*EXCHANGE_RATE WHERE REQ_DOC_ID =@p_REQ_ID
550
		UPDATE TR_REQUEST_DOC SET TOTAL_AMT =(SELECT SUM(TOTAL_AMT) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID =@p_REQ_ID)
551
		---
552
		DECLARE @COST_ID VARCHAR(20)
553

    
554
		DECLARE lstCostCenter CURSOR FOR
555
		SELECT COST_ID FROM dbo.PL_REQUEST_COSTCENTER WHERE REQ_ID=@p_PL_REQ_ID
556
		GROUP BY COST_ID
557
		OPEN lstCostCenter
558
		FETCH NEXT FROM lstCostCenter INTO @COST_ID
559
		WHILE @@FETCH_STATUS=0
560
		BEGIN
561

    
562

    
563
			DECLARE @l_REQ_COST_ID VARCHAR(15)
564
			EXEC SYS_CodeMasters_Gen 'TR_REQUEST_COSTCENTER', @l_REQ_COST_ID out
565
			IF @l_REQ_COST_ID='' OR @l_REQ_COST_ID IS NULL GOTO ABORT
566
				INSERT INTO dbo.TR_REQUEST_COSTCENTER
567
				(
568
					REQ_COST_ID,
569
					COST_ID,
570
					REQ_ID,
571
					NOTES,
572
					AUTH_STATUS,
573
					MAKER_ID,
574
					CREATE_DT,
575
					CHECKER_ID,
576
					APPROVE_DT
577
				)
578
				VALUES
579
				(   @l_REQ_COST_ID,        -- REQ_COST_ID - varchar(15)
580
					@COST_ID,        -- COST_ID - varchar(15)
581
					@p_REQ_ID,        -- REQ_ID - varchar(15)
582
					N'',       -- NOTES - nvarchar(500)
583
					'',        -- AUTH_STATUS - varchar(1)
584
					@p_MAKER_ID,        -- MAKER_ID - varchar(15)
585
					NULL, -- CREATE_DT - datetime
586
					'',        -- CHECKER_ID - varchar(15)
587
					NULL  -- APPROVE_DT - datetime
588
					)
589
				FETCH NEXT FROM lstCostCenter INTO @COST_ID
590
		END 
591
		CLOSE lstCostCenter
592
		DEALLOCATE lstCostCenter
593
		IF @@Error <> 0 GOTO ABORT	
594
COMMIT TRANSACTION
595
SELECT '0' as Result, @p_REQ_ID  REQ_ID, '' ErrorDesc
596
RETURN '0'
597
ABORT:
598
BEGIN
599
		ROLLBACK TRANSACTION
600
		SELECT '-1' AS RESULT
601
		RETURN '-1'
602
End
603
ABORT1:
604
BEGIN
605
		CLOSE ListGoods
606
		DEALLOCATE ListGoods
607
		ROLLBACK TRANSACTION
608
		SELECT '-1' AS RESULT
609
		RETURN '-1'
610
End