Project

General

Profile

PL_REQUEST_DOC_INS.txt

Luc Tran Van, 01/12/2021 02:09 PM

 
1
CREATE 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_IS_CHECKALL BIT = NULL,  
26
@p_BASED_CONTENT NVARCHAR(3000) = NULL,  
27
@p_PL_BASED_ID VARCHAR(15) = NULL,  
28
@p_ListGood XML,  
29
@p_ListCostCenter XML,  
30
@p_ListTransfer XML  
31
AS  
32
BEGIN TRANSACTION  
33
DECLARE @DEP_ID VARCHAR(15) = (SELECT SECUR_CODE FROM TL_USER WHERE TLNANME = @p_MAKER_ID)  
34
exec [dbo].[PL_REQUEST_DOC_CODE_GenKey] @p_BRANCH_ID,@DEP_ID, @p_REQ_CODE out  
35
IF(@p_REQ_CODE IS NULL OR @p_REQ_CODE ='')  
36
BEGIN  
37
SELECT 'REQ-00001' Result, '' REQ_ID, N'Mã tờ trình chủ trương bắc buộc nhập' ErrorDesc  
38
ROLLBACK TRANSACTION  
39
RETURN '-1'  
40
END  
41
IF EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE [REQ_CODE] = @p_REQ_CODE)  
42
BEGIN  
43
SELECT '-1' Result, '' REQ_ID, N'Tờ trình số:' + @p_REQ_CODE + N' đã tồn tại trong hệ thống!"' ErrorDesc  
44
ROLLBACK TRANSACTION  
45
RETURN '-1'  
46
END  
47
DECLARE @sErrorCode VARCHAR(20)  
48
--insert master  
49
DECLARE @l_REQ_ID VARCHAR(15)  
50
EXEC SYS_CodeMasters_Gen 'PL_REQUEST_DOC', @l_REQ_ID out  
51
IF @l_REQ_ID='' OR @l_REQ_ID IS NULL GOTO ABORT  
52
 
53
 
54
DECLARE @BRANCH_CREATE VARCHAR(20),@DEP_CREATE VARCHAR(20)  
55
 
56
SET @BRANCH_CREATE= (SELECT TLSUBBRID FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID)  
57
IF(EXISTS(SELECT * FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE AND BRANCH_TYPE='HS'))  
58
SET @DEP_CREATE=(SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID)  
59
ELSE  
60
SET @DEP_CREATE=''  
61
 
62
 
63
IF(CAST(@p_REQ_DT AS DATE) < CAST(GETDATE() AS DATE))  
64
SET @p_IS_BACKDAY=1;  
65
ELSE  
66
SET @p_IS_BACKDAY=0  
67
 
68
INSERT INTO dbo.PL_REQUEST_DOC  
69
(  
70
REQ_ID,  
71
REQ_CODE,  
72
REQ_NAME,  
73
REQ_DT,  
74
REQ_TYPE,  
75
REQ_CONTENT,  
76
REQ_REASON,  
77
BRANCH_ID,  
78
TOTAL_AMT,  
79
NOTES,  
80
RECORD_STATUS,  
81
MAKER_ID,  
82
CREATE_DT,  
83
AUTH_STATUS,  
84
CHECKER_ID,  
85
APPROVE_DT,  
86
DVDM_APP_ID,  
87
REQ_PARENT_ID,  
88
BRANCH_FEE,  
89
IS_BACKDAY,  
90
PROCESS_ID,  
91
DEP_ID,  
92
DEP_FEE,  
93
BRANCH_CREATE,  
94
DEP_CREATE,  
95
REQ_LINE,SIGN_USER,  
96
IS_CHECKALL,  
97
BASED_CONTENT,PL_BASED_ID  
98
)  
99
VALUES  
100
( @l_REQ_ID, -- REQ_ID - varchar(15)  
101
@p_REQ_CODE, -- REQ_CODE - varchar(100)  
102
@p_REQ_NAME, -- REQ_NAME - nvarchar(200)  
103
CAST(@p_REQ_DT AS DATE), -- REQ_DT - datetime  
104
@p_REQ_TYPE, -- REQ_TYPE - int  
105
@p_REQ_CONTENT, -- REQ_CONTENT - nvarchar(1000)  
106
@p_REQ_REASON, -- REQ_REASON - nvarchar(500)  
107
@p_BRANCH_ID, -- BRANCH_ID - varchar(15)  
108
@p_TOTAL_AMT, -- TOTAL_AMT - decimal(18, 0)  
109
@p_NOTES, -- NOTES - nvarchar(1000)  
110
@p_RECORD_STATUS, -- RECORD_STATUS - varchar(1)  
111
@p_MAKER_ID, -- MAKER_ID - varchar(12)  
112
CAST(@p_CREATE_DT AS DATE), -- CREATE_DT - datetime  
113
'E', -- AUTH_STATUS - varchar(50)  
114
@p_CHECKER_ID, -- CHECKER_ID - varchar(12)  
115
CAST(@P_APPROVE_DT AS DATE), -- APPROVE_DT - datetime  
116
@p_DVDM_ID,  
117
@p_REQ_PARENT_ID,  
118
@p_BRANCH_FEE,  
119
@p_IS_BACKDAY,  
120
'',  
121
@p_DEP_ID,  
122
@p_DEP_FEE_ID,  
123
@BRANCH_CREATE,  
124
@DEP_CREATE,  
125
@p_REQ_LINE,  
126
@p_SIGN_USER,  
127
@p_IS_CHECKALL,  
128
@p_BASED_CONTENT,@p_PL_BASED_ID  
129
)  
130
 
131
 
132
IF @@Error <> 0 GOTO ABORT  
133
DECLARE @TABLE TABLE(  
134
PLAN_ID varchar(15) ,  
135
TRADE_ID varchar(15) ,  
136
GOODS_ID varchar(15) ,  
137
[DESCRIPTION] nvarchar(500),  
138
UNIT_ID varchar(15) ,  
139
QUANTITY decimal(18,0) ,  
140
PRICE decimal(18,2) ,  
141
TOTAL_AMT decimal(18,2),  
142
NOTES nvarchar(1000),  
143
REQDT_TYPE VARCHAR(1),  
144
NAME NVARCHAR(500),  
145
DVDM_ID VARCHAR(20),  
146
HH_ID VARCHAR(20),  
147
CURRENCY nvarchar(50),  
148
EXCHANGE_RATE decimal(18,2),  
149
TAXES decimal(18, 2),  
150
SUP_ID VARCHAR(20),  
151
TRADE_TYPE VARCHAR(20),  
152
KHOI_ID VARCHAR(20),  
153
UNIT_NAME nvarchar(200)  
154
)  
155
 
156
 
157
--Insert into TABLE PL_REQUEST_DOC_DT  
158
Declare @hdoc INT  
159
Exec sp_xml_preparedocument @hdoc Output,@p_ListGood  
160
INSERT INTO @TABLE  
161
SELECT PLAN_ID,  
162
TRADE_ID,  
163
GOODS_ID,  
164
DESCRIPTION,  
165
UNIT_ID,  
166
QUANTITY,  
167
PRICE,  
168
TOTAL_AMT,  
169
NOTES,  
170
REQDT_TYPE,  
171
NAME,  
172
DVDM_ID,  
173
HH_ID,  
174
CURRENCY,  
175
EXCHANGE_RATE,  
176
TAXES,  
177
SUP_ID,  
178
TRADE_TYPE,  
179
KHOI_ID,UNIT_NAME  
180
FROM OPENXML(@hDoc,'/Root/ListGood',2)  
181
WITH  
182
(  
183
PLAN_ID varchar(15) ,  
184
TRADE_ID varchar(15) ,  
185
GOODS_ID varchar(15) ,  
186
[DESCRIPTION] nvarchar(500),  
187
UNIT_ID varchar(15) ,  
188
QUANTITY decimal(18,0) ,  
189
PRICE decimal(18,2) ,  
190
TOTAL_AMT decimal(18,2),  
191
NOTES nvarchar(1000),  
192
REQDT_TYPE VARCHAR(1),  
193
NAME NVARCHAR(500),  
194
DVDM_ID VARCHAR(20),  
195
HH_ID VARCHAR(20),  
196
CURRENCY nvarchar(50),  
197
EXCHANGE_RATE decimal(18,2),  
198
TAXES decimal(18, 2),  
199
SUP_ID VARCHAR(20),  
200
TRADE_TYPE VARCHAR(20),  
201
KHOI_ID VARCHAR(20),  
202
UNIT_NAME nvarchar(200)  
203
)  
204
 
205
 
206
 
207
 
208
 
209
 
210
DECLARE @TABLE_TRANSFER TABLE (  
211
FR_PLAN_ID varchar(15),  
212
FR_TRADE_ID varchar(15),  
213
FR_GOOD_ID varchar(15),  
214
FR_BRN_ID varchar(15),  
215
TO_BRN_ID varchar(15),  
216
TO_PLAN_ID varchar(15),  
217
TO_TRADE_ID varchar(15),  
218
TO_GOOD_ID varchar(15),  
219
QTY DECIMAL(18,0),  
220
TOTAL_AMT decimal(18),  
221
NOTES nvarchar(1000),  
222
FR_DEP_ID VARCHAR(20),  
223
TO_DEP_ID VARCHAR(20),  
224
FR_DVDM_ID VARCHAR(20),  
225
TO_DVDM_ID VARCHAR(20),  
226
FR_KHOI_ID VARCHAR(20),  
227
TO_KHOI_ID VARCHAR(20),  
228
FR_GD_TYPE VARCHAR(20),  
229
TO_GD_TYPE VARCHAR(20)  
230
)  
231
 
232
Exec sp_xml_preparedocument @hdoc Output,@p_ListTransfer  
233
 
234
INSERT INTO @TABLE_TRANSFER  
235
SELECT FR_PLAN_ID,  
236
FR_TRADE_ID,  
237
FR_GOOD_ID,  
238
FR_BRN_ID,  
239
TO_BRN_ID,  
240
TO_PLAN_ID,  
241
TO_TRADE_ID,  
242
TO_GOOD_ID,  
243
QTY,  
244
TOTAL_AMT,  
245
NOTES,  
246
FR_DEP_ID,  
247
TO_DEP_ID,  
248
FR_DVDM_ID,  
249
TO_DVDM_ID,  
250
FR_KHOI_ID,  
251
TO_KHOI_ID,  
252
FR_GD_TYPE,  
253
TO_GD_TYPE  
254
FROM OPENXML(@hdoc,'/Root/ListTransfer',2)  
255
WITH  
256
(  
257
FR_PLAN_ID varchar(15),  
258
FR_TRADE_ID varchar(15),  
259
FR_GOOD_ID varchar(15),  
260
FR_BRN_ID varchar(15),  
261
TO_BRN_ID varchar(15),  
262
TO_PLAN_ID varchar(15),  
263
TO_TRADE_ID varchar(15),  
264
TO_GOOD_ID varchar(15),  
265
QTY DECIMAL(18,0),  
266
TOTAL_AMT decimal(18),  
267
NOTES nvarchar(1000),  
268
FR_DEP_ID VARCHAR(20),  
269
TO_DEP_ID VARCHAR(20),  
270
FR_DVDM_ID VARCHAR(20),  
271
TO_DVDM_ID VARCHAR(20),  
272
FR_KHOI_ID VARCHAR(20),  
273
TO_KHOI_ID VARCHAR(20),  
274
FR_GD_TYPE VARCHAR(20),  
275
TO_GD_TYPE VARCHAR(20)  
276
 
277
)  
278
WHERE FR_BRN_ID !='' AND FR_BRN_ID IS NOT NULL  
279
 
280
 
281
 
282
 
283
 
284
 
285
 
286
 
287
 
288
DECLARE ListGoods CURSOR FOR  
289
SELECT PLAN_ID,  
290
TRADE_ID,  
291
GOODS_ID,  
292
DESCRIPTION,  
293
UNIT_ID,  
294
QUANTITY,  
295
PRICE,  
296
TOTAL_AMT,  
297
NOTES,  
298
REQDT_TYPE,  
299
NAME,  
300
DVDM_ID,  
301
HH_ID,  
302
CURRENCY,  
303
EXCHANGE_RATE,  
304
TAXES,  
305
SUP_ID,  
306
TRADE_TYPE,KHOI_ID,UNIT_NAME FROM @TABLE  
307
 
308
OPEN ListGoods  
309
 
310
Declare  
311
@PLAN_ID varchar(15),  
312
@TRADE_ID varchar(15),  
313
@GOODS_ID varchar(15),  
314
@DESCRIPTION nvarchar(500),  
315
@UNIT_ID varchar(15),  
316
@QUANTITY decimal(18),  
317
@PRICE decimal(18,2),  
318
@TOTAL_AMT decimal(18,2),  
319
@NOTES nvarchar(1000),  
320
@REQDT_TYPE VARCHAR(1),  
321
@NAME NVARCHAR(500),  
322
@DVDM_ID VARCHAR(20),  
323
@HH_ID VARCHAR(20),  
324
@CURRENCY nvarchar(50),  
325
@EXCHANGE_RATE decimal(18, 2),  
326
@TAXES decimal(18, 2),  
327
@SUP_ID VARCHAR(20),  
328
@TRADE_TYPE VARCHAR(20),  
329
@KHOI_ID VARCHAR(20),  
330
@UNIT_NAME nvarchar(200)  
331
 
332
FETCH NEXT FROM ListGoods INTO @PLAN_ID,@TRADE_ID,@GOODS_ID,@DESCRIPTION,@UNIT_ID,@QUANTITY,  
333
@PRICE,@TOTAL_AMT,@NOTES, @REQDT_TYPE, @NAME,@DVDM_ID,@HH_ID,@CURRENCY,@EXCHANGE_RATE,@TAXES,@SUP_ID,@TRADE_TYPE,@KHOI_ID,@UNIT_NAME  
334
WHILE @@FETCH_STATUS = 0  
335
BEGIN  
336
-- KIEM TRA NEU HINH THUC CHI DINH THAU LA THEO QUY DINH VCCB THI KHONG CHO PHEP CHON NHA CUNG CAP  
337
--IF(@TRADE_TYPE IS NOT NULL AND @TRADE_TYPE <>'' AND @TRADE_TYPE ='VCCB' AND (@SUP_ID IS NOT NULL AND @SUP_ID <>''))  
338
--BEGIN  
339
-- SELECT 'REQ-00001' Result, '' REQ_ID, N'Lưới hàng hóa: Nếu chọn hình thức mua sắm theo quy định VCCB thì bạn không được phép chọn nhà cung cấp. Vui lòng để trống nhà cung cấp' ErrorDesc  
340
-- ROLLBACK TRANSACTION  
341
-- RETURN '-1'  
342
--END  
343
DECLARE @l_REQDT_ID VARCHAR(15)  
344
EXEC SYS_CodeMasters_Gen 'PL_REQUEST_DOC_DT', @l_REQDT_ID out  
345
IF @l_REQDT_ID='' OR @l_REQDT_ID IS NULL GOTO ABORT  
346
 
347
--SET @TOTAL_AMT=(@PRICE * @QUANTITY * @EXCHANGE_RATE) + (@TAXES * @EXCHANGE_RATE)  
348
 
349
INSERT INTO dbo.PL_REQUEST_DOC_DT  
350
(  
351
REQDT_ID,  
352
REQ_ID,  
353
PLAN_ID,  
354
TRADE_ID,  
355
GOODS_ID,  
356
NAME,  
357
DESCRIPTION,  
358
REQDT_TYPE,  
359
UNIT_ID,  
360
QUANTITY,  
361
PRICE,  
362
TOTAL_AMT,  
363
RECORD_STATUS,  
364
MAKER_ID,  
365
CREATE_DT,  
366
AUTH_STATUS,  
367
CHECKER_ID,  
368
APPROVE_DT,  
369
DVDM_ID,  
370
HANGHOA_ID,  
371
CURRENCY,  
372
EXCHANGE_RATE,  
373
TAXES,SUP_ID,TRADE_TYPE,KHOI_ID,UNIT_NAME  
374
)  
375
VALUES  
376
( @l_REQDT_ID, -- REQDT_ID - varchar(15)  
377
@l_REQ_ID, -- REQ_ID - varchar(15)  
378
@PLAN_ID, -- PLAN_ID - varchar(15)  
379
@TRADE_ID, -- TRADE_ID - varchar(15)  
380
@GOODS_ID, -- GOODS_ID - varchar(15)  
381
@NAME, -- NAME - nvarchar(200)  
382
@DESCRIPTION, -- DESCRIPTION - nvarchar(500)  
383
@REQDT_TYPE, -- REQDT_TYPE - varchar(1)  
384
@UNIT_ID, -- UNIT_ID - varchar(15)  
385
@QUANTITY, -- QUANTITY - decimal(18, 0)  
386
@PRICE, -- PRICE - decimal(18, 0)  
387
@TOTAL_AMT, -- TOTAL_AMT - decimal(18, 0)  
388
@p_RECORD_STATUS, -- RECORD_STATUS - varchar(1)  
389
@p_MAKER_ID, -- MAKER_ID - varchar(15)  
390
CAST(@p_CREATE_DT AS DATE) , -- CREATE_DT - datetime  
391
@p_AUTH_STATUS, -- AUTH_STATUS - varchar(50)  
392
@p_CHECKER_ID, -- CHECKER_ID - varchar(15)  
393
CAST(@P_APPROVE_DT AS DATE), -- APPROVE_DT - datetime  
394
@DVDM_ID,  
395
@HH_ID,  
396
@CURRENCY,  
397
@EXCHANGE_RATE,  
398
@TAXES,@SUP_ID,@TRADE_TYPE,@KHOI_ID,@UNIT_NAME  
399
)  
400
 
401
 
402
IF @@ERROR <> 0 GOTO ABORT1  
403
-- next Group_Id  
404
FETCH NEXT FROM ListGoods INTO @PLAN_ID,@TRADE_ID,@GOODS_ID,@DESCRIPTION,@UNIT_ID,@QUANTITY,  
405
@PRICE,@TOTAL_AMT,@NOTES, @REQDT_TYPE, @NAME,@DVDM_ID,@HH_ID,@CURRENCY,@EXCHANGE_RATE,@TAXES,@SUP_ID,@TRADE_TYPE,@KHOI_ID,@UNIT_NAME  
406
END  
407
CLOSE ListGoods  
408
DEALLOCATE ListGoods  
409
 
410
 
411
IF @@Error <> 0 GOTO ABORT  
412
--Insert into TABLE PL_REQUEST_DOC_DT  
413
 
414
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  
415
 
416
 
417
Exec sp_xml_preparedocument @hdoc Output,@p_ListTransfer  
418
DECLARE ListTransfers CURSOR FOR  
419
SELECT *  
420
FROM @TABLE_TRANSFER  
421
OPEN ListTransfers  
422
 
423
Declare  
424
@FR_PLAN_ID varchar(15),  
425
@FR_TRADE_ID varchar(15),  
426
@FR_GOOD_ID varchar(15),  
427
@FR_BRN_ID varchar(15),  
428
@TO_BRN_ID varchar(15),  
429
@TO_PLAN_ID varchar(15),  
430
@TO_TRADE_ID varchar(15),  
431
@TO_GOOD_ID varchar(15),  
432
@QTY DECIMAL(18,0),  
433
@FR_DEP_ID VARCHAR(20),  
434
@TO_DEP_ID VARCHAR(20),  
435
@FR_DVDM_ID VARCHAR(20),  
436
@TO_DVDM_ID VARCHAR(20),  
437
@FR_KHOI_ID VARCHAR(20),  
438
@TO_KHOI_ID VARCHAR(20),  
439
@FR_GD_TYPE VARCHAR(20),  
440
@TO_GD_TYPE VARCHAR(20)  
441
 
442
FETCH NEXT FROM ListTransfers INTO @FR_PLAN_ID,@FR_TRADE_ID,@FR_GOOD_ID,@FR_BRN_ID,@TO_BRN_ID,@TO_PLAN_ID,  
443
@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  
444
WHILE @@FETCH_STATUS = 0  
445
BEGIN  
446
 
447
 
448
 
449
 
450
 
451
 
452
DECLARE @l_REQ_TRANSFER_ID VARCHAR(15)  
453
EXEC SYS_CodeMasters_Gen 'PL_REQUEST_TRANSFER', @l_REQ_TRANSFER_ID out  
454
IF @l_REQ_TRANSFER_ID='' OR @l_REQ_TRANSFER_ID IS NULL GOTO ABORT  
455
 
456
INSERT INTO dbo.PL_REQUEST_TRANSFER  
457
(  
458
REQ_TRANSFER_ID,  
459
REQ_DOC_ID,  
460
FR_PLAN_ID,  
461
FR_TRADE_ID,  
462
FR_GOOD_ID,  
463
FR_BRN_ID,  
464
TO_BRN_ID,  
465
TO_PLAN_ID,  
466
TO_TRADE_ID,  
467
TO_GOOD_ID,  
468
QTY,  
469
TOTAL_AMT,  
470
NOTES,  
471
AUTH_STATUS,  
472
MAKER_ID,  
473
CREATE_DT,  
474
CHECKER_ID,  
475
APPROVE_DT,  
476
FR_DEP_ID,  
477
TO_DEP_ID,  
478
FR_DVDM_ID,  
479
TO_DVDM_ID,  
480
FR_KHOI_ID,  
481
TO_KHOI_ID  
482
)  
483
VALUES  
484
( @l_REQ_TRANSFER_ID, -- REQ_TRANSFER_ID - varchar(15)  
485
@l_REQ_ID, -- REQ_DOC_ID - varchar(15)  
486
@FR_PLAN_ID, -- FR_PLAN_ID - varchar(15)  
487
@FR_TRADE_ID, -- FR_TRADE_ID - varchar(15)  
488
@FR_GOOD_ID, -- FR_GOOD_ID - varchar(15)  
489
@FR_BRN_ID, -- FR_BRN_ID - varchar(15)  
490
@TO_BRN_ID, -- TO_BRN_ID - varchar(15)  
491
@TO_PLAN_ID, -- TO_PLAN_ID - varchar(15)  
492
@TO_TRADE_ID, -- TO_TRADE_ID - varchar(15)  
493
@TO_GOOD_ID, -- TO_GOOD_ID - varchar(15)  
494
@QTY, -- QTY - decimal(18, 0)  
495
@TOTAL_AMT, -- TOTAL_AMT - decimal(18, 0)  
496
@NOTES, -- NOTES - nvarchar(500)  
497
@p_AUTH_STATUS, -- AUTH_STATUS - varchar(1)  
498
@p_MAKER_ID, -- MAKER_ID - varchar(15)  
499
CAST(@p_CREATE_DT AS DATE), -- CREATE_DT - datetime  
500
@p_CHECKER_ID, -- CHECKER_ID - varchar(15)  
501
CAST(@p_APPROVE_DT AS DATE),  
502
@FR_DEP_ID,  
503
@TO_DEP_ID,  
504
@FR_DVDM_ID,  
505
@TO_DVDM_ID,  
506
@FR_KHOI_ID,  
507
@TO_KHOI_ID -- APPROVE_DT - datetime  
508
)  
509
 
510
 
511
IF @@ERROR <> 0 GOTO ABORT1  
512
-- next Group_Id  
513
FETCH NEXT FROM ListTransfers INTO @FR_PLAN_ID,@FR_TRADE_ID,@FR_GOOD_ID,@FR_BRN_ID,@TO_BRN_ID,@TO_PLAN_ID,  
514
@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  
515
END  
516
CLOSE ListTransfers  
517
DEALLOCATE ListTransfers  
518
 
519
IF @@Error <> 0 GOTO ABORT  
520
--Insert into TABLE PL_REQUEST_DOC_DT  
521
Exec sp_xml_preparedocument @hdoc Output,@p_ListCostCenter  
522
DECLARE ListCostCenters CURSOR FOR  
523
SELECT *  
524
FROM OPENXML(@hDoc,'/Root/ListCostCenter',2)  
525
WITH  
526
(  
527
COST_ID varchar(15),  
528
NOTES nvarchar(1000)  
529
 
530
)  
531
OPEN ListCostCenters  
532
 
533
Declare  
534
@COST_ID varchar(15)  
535
 
536
 
537
FETCH NEXT FROM ListCostCenters INTO @COST_ID, @NOTES  
538
WHILE @@FETCH_STATUS = 0  
539
BEGIN  
540
 
541
DECLARE @l_REQ_COST_ID VARCHAR(15)  
542
EXEC SYS_CodeMasters_Gen 'PL_REQUEST_COSTCENTER', @l_REQ_COST_ID out  
543
IF @l_REQ_COST_ID='' OR @l_REQ_COST_ID IS NULL GOTO ABORT  
544
 
545
INSERT INTO dbo.PL_REQUEST_COSTCENTER  
546
(  
547
REQ_COST_ID,  
548
COST_ID,  
549
REQ_ID,  
550
NOTES,  
551
AUTH_STATUS,  
552
MAKER_ID,  
553
CREATE_DT,  
554
CHECKER_ID,  
555
APPROVE_DT  
556
)  
557
VALUES  
558
( @l_REQ_COST_ID, -- REQ_COST_ID - varchar(15)  
559
@COST_ID, -- COST_ID - varchar(15)  
560
@l_REQ_ID, -- REQ_ID - varchar(15)  
561
@NOTES, -- NOTES - nvarchar(500)  
562
@p_AUTH_STATUS, -- AUTH_STATUS - varchar(1)  
563
@p_MAKER_ID, -- MAKER_ID - varchar(15)  
564
CAST(@p_CREATE_DT AS DATE) , -- CREATE_DT - datetime  
565
@p_CHECKER_ID, -- CHECKER_ID - varchar(15)  
566
CAST(@p_APPROVE_DT AS DATE) -- APPROVE_DT - datetime  
567
)  
568
 
569
 
570
IF @@ERROR <> 0 GOTO ABORT1  
571
-- next Group_Id  
572
FETCH NEXT FROM ListCostCenters INTO @COST_ID, @NOTES  
573
END  
574
CLOSE ListCostCenters  
575
DEALLOCATE ListCostCenters  
576
 
577
 
578
 
579
 
580
 
581
COMMIT TRANSACTION  
582
SELECT '0' as Result, @l_REQ_ID REQ_ID, @p_REQ_CODE ErrorDesc  
583
RETURN '0'  
584
ABORT:  
585
BEGIN  
586
ROLLBACK TRANSACTION  
587
SELECT '-1' AS Result ,'' REQ_ID, '' ErrorDesc  
588
RETURN '-1'  
589
End  
590
ABORT1:  
591
BEGIN  
592
CLOSE ListGoods  
593
DEALLOCATE ListGoods  
594
CLOSE ListCostCenters  
595
DEALLOCATE ListCostCenters  
596
CLOSE ListCostCenters  
597
DEALLOCATE ListCostCenters  
598
ROLLBACK TRANSACTION  
599
SELECT '-1' AS Result ,'' REQ_ID, '' ErrorDesc  
600
RETURN '-1'  
601
End