Project

General

Profile

2.0 DIEU CHINH DON GIA THANH TIEN CHU TRUONG 0005 - 2021 - TTr-0020005.txt

Luc Tran Van, 03/22/2021 09:39 AM

 
1
SELECT * FROM PL_REQUEST_DOC WHERE REQ_CODE ='0005/2021/TTr-0020005'
2
SELECT * FROM PL_REQUEST_DOC_DT WHERE REQ_ID ='PLRD00000201323'
3
SELECT * FROM TR_REQUEST_DOC_PL_DT WHERE PL_REQDT_ID ='PLRDD0000212827'
4
SELECT * FROM TR_REQUEST_DOC_PL_DT WHERE PL_REQDT_ID ='PLRDD0000212828'
5
SELECT * FROM TR_REQUEST_DOC_DT WHERE PL_REQDT_ID ='PLRDD0000212828'
6
SELECT * FROM TR_REQUEST_DOC_DT WHERE PL_REQDT_ID ='PLRDD0000212827'
7

    
8
UPDATE TR_REQUEST_DOC_PL_DT SET PRICE_PL = 1500000, TOTAL_AMT_ETM =1500000 WHERE PL_REQDT_ID ='PLRDD0000212827'
9
UPDATE TR_REQUEST_DOC_PL_DT SET PRICE_PL = 2000000, TOTAL_AMT_ETM =2000000 WHERE PL_REQDT_ID ='PLRDD0000212828'
10

    
11
UPDATE PL_REQUEST_DOC_DT SET PRICE =1500000 , TOTAL_AMT = 1500000 WHERE REQDT_ID ='PLRDD0000212827'
12
UPDATE PL_REQUEST_DOC_DT SET PRICE =2000000 , TOTAL_AMT = 2000000 WHERE REQDT_ID ='PLRDD0000212828'
13

    
14
UPDATE PL_TRADEDETAIL SET AMT_ETM = AMT_ETM -500000 WHERE TRADE_ID ='PLT000000270143'
15
UPDATE PL_TRADEDETAIL SET AMT_ETM = AMT_ETM +500000 WHERE TRADE_ID ='PLT000000270144'
16

    
17
UPDATE TR_REQUEST_DOC_DT SET PRICE_ETM =1500000, TOTAL_AMT_ETM =1500000, PRICE =1500000, TOTAL_AMT =1500000 WHERE PL_REQDT_ID ='PLRDD0000212827'
18
UPDATE TR_REQUEST_DOC_DT SET PRICE_ETM =2000000, TOTAL_AMT_ETM =2000000, PRICE =2000000, TOTAL_AMT =2000000 WHERE PL_REQDT_ID ='PLRDD0000212828'
19
UPDATE TR_REQUEST_DOC SET DMMS_ID ='DM0000000000052' WHERE REQ_CODE ='PUR/2021/000521'
20
¿
21
ALTER PROCEDURE [dbo].[PL_REQUEST_DOC_Upd]
22
@p_REQ_ID VARCHAR(15)=NULL,
23
@p_REQ_CODE	nvarchar(100)  = NULL,
24
@p_REQ_NAME	nvarchar(200)  = NULL,
25
@p_REQ_DT	DATETIME = NULL,
26
@p_REQ_TYPE	int = NULL,
27
@p_REQ_CONTENT NVARCHAR(1000)=NULL,
28
@p_REQ_REASON NVARCHAR(500)=NULL,
29
@p_TOTAL_AMT	decimal = NULL,
30
@p_NOTES	nvarchar(1000)  = NULL,
31
@p_RECORD_STATUS	varchar(1)  = NULL,
32
@p_MAKER_ID	varchar(20)  = NULL,
33
@p_CREATE_DT	DATETIME = NULL,
34
@p_AUTH_STATUS	varchar(50)  = NULL,
35
@p_CHECKER_ID	varchar(20)  = NULL,
36
@p_APPROVE_DT	DATETIME = NULL,
37
@p_BRANCH_ID VARCHAR(15)=NULL,
38
@p_DVDM_ID VARCHAR(20) = NULL,
39
@p_REQ_PARENT_ID VARCHAR(20) = NULL,
40
@p_BRANCH_FEE NVARCHAR(500) = NULL,
41
@p_DEP_ID VARCHAR(20)=NULL,
42
@p_DEP_FEE_ID VARCHAR(20)= NULL,
43
@p_IS_BACKDAY BIT= NULL,
44
@p_REQ_LINE VARCHAR(20),
45
@p_SIGN_USER VARCHAR(20) = NULL,
46
@p_IS_CHECKALL BIT = NULL,
47
@p_BASED_CONTENT NVARCHAR(3000) = NULL,
48
@p_PL_BASED_ID VARCHAR(15)= NULL,
49
@p_ListGood XML,
50
@p_ListCostCenter XML,
51
@p_ListTransfer XML
52
AS
53
SET @p_CREATE_DT =CAST(@p_CREATE_DT AS DATE)
54
SET @p_APPROVE_DT=CAST(@p_APPROVE_DT AS DATE)
55
SET @p_REQ_DT = CAST(@p_REQ_DT AS DATE)
56

    
57
	IF(@p_REQ_CODE IS NULL OR @p_REQ_CODE ='')
58
	BEGIN
59
		SELECT 'REQ-00001' Result, '' REQ_ID, N'Mã tờ trình chủ trương bắt buộc nhập' ErrorDesc 
60
		RETURN '-1'
61
	END
62
	IF EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE [REQ_CODE] = @p_REQ_CODE AND REQ_ID <> @p_REQ_ID)
63
	BEGIN
64
		SELECT ErrorCode Result, '' REQ_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'REQ-00001'
65
		RETURN '-1'
66
	END
67
	IF(CAST(@p_REQ_DT AS DATE) > CAST(GETDATE() AS DATE))
68
	BEGIN
69
			SELECT 'REQ-00001' Result, '' REQ_ID, N'Ngày tạo tờ trình không được phép hơn ngày hiện tại' ErrorDesc 
70
			ROLLBACK TRANSACTION
71
			RETURN '-1'
72
	END
73
	DECLARE @sErrorCode VARCHAR(20)
74
		
75
  BEGIN TRANSACTION
76
		
77
		DECLARE @BRANCH_CREATE VARCHAR(20),@DEP_CREATE VARCHAR(20)
78

    
79
		SET  @BRANCH_CREATE= (SELECT TLSUBBRID  FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID)
80
		SET @DEP_CREATE=(SELECT SECUR_CODE  FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID)
81
		
82
		IF(EXISTS(SELECT * FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE AND BRANCH_TYPE='HS') 
83
			OR EXISTS(SELECT DEP_ID FROM dbo.CM_DEPARTMENT WHERE DEP_ID=@DEP_CREATE AND DEP_CODE LIKE '069%'))		
84
			SET @DEP_CREATE=(SELECT SECUR_CODE  FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID)
85
		ELSE
86
			SET @DEP_CREATE=''
87
		
88

    
89
		SET @p_DEP_ID=@DEP_CREATE
90
		SET @p_BRANCH_ID=@BRANCH_CREATE
91

    
92

    
93
		IF(CAST(@p_REQ_DT AS DATE) < CAST(GETDATE() AS DATE))
94
			SET @p_IS_BACKDAY=1;
95
		ELSE
96
			SET  @p_IS_BACKDAY=0
97

    
98
		UPDATE dbo.PL_REQUEST_DOC 
99
		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
100
		,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
101
		,REQ_PARENT_ID=@p_REQ_PARENT_ID,BRANCH_FEE=@p_BRANCH_FEE,IS_BACKDAY=@p_IS_BACKDAY,DEP_ID=@p_DEP_ID,DEP_FEE=@p_DEP_FEE_ID,REQ_LINE=@p_REQ_LINE,SIGN_USER = @p_SIGN_USER,IS_CHECKALL=@p_IS_CHECKALL,BASED_CONTENT=@p_BASED_CONTENT,
102
		PL_BASED_ID =@p_PL_BASED_ID
103
		WHERE REQ_ID=@p_REQ_ID
104
		DELETE FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID
105
		DELETE FROM dbo.PL_REQUEST_TRANSFER WHERE REQ_DOC_ID=@p_REQ_ID
106
		DELETE FROM dbo.PL_REQUEST_COSTCENTER WHERE REQ_ID=@p_REQ_ID
107

    
108
		
109
		IF @@Error <> 0 GOTO ABORT
110
		--Insert into TABLE PL_REQUEST_DOC_DT
111
	DECLARE @TABLE TABLE(
112
			PLAN_ID	varchar(15)  ,
113
			TRADE_ID	varchar(15)  ,
114
			GOODS_ID	varchar(15)  ,
115
			[DESCRIPTION] nvarchar(500),
116
			UNIT_ID	varchar(15)  ,
117
			QUANTITY	decimal(18,0)  ,
118
			PRICE	decimal(18,2)  ,
119
			TOTAL_AMT	decimal(18,2),	
120
			NOTES	nvarchar(1000),
121
			REQDT_TYPE VARCHAR(1),
122
			NAME NVARCHAR(500),
123
			DVDM_ID VARCHAR(20),
124
			HH_ID VARCHAR(20),
125
			CURRENCY	nvarchar(50),
126
			EXCHANGE_RATE	decimal(18,2),
127
			TAXES	decimal(18, 2),
128
			SUP_ID VARCHAR(20),
129
			TRADE_TYPE VARCHAR(20),
130
			KHOI_ID VARCHAR(20),
131
			UNIT_NAME NVARCHAR(200), SUP_NAME NVARCHAR(250)
132
		)
133
		--Insert into TABLE PL_REQUEST_DOC_DT
134
		Declare @hdoc INT
135
		Exec sp_xml_preparedocument @hdoc Output,@p_ListGood
136
		INSERT INTO @TABLE
137
		SELECT PLAN_ID,
138
               TRADE_ID,
139
               GOODS_ID,
140
               DESCRIPTION,
141
               UNIT_ID,
142
               QUANTITY,
143
               PRICE,
144
               TOTAL_AMT,
145
               NOTES,
146
               REQDT_TYPE,
147
               NAME,
148
               DVDM_ID,
149
               HH_ID,
150
               CURRENCY,
151
               EXCHANGE_RATE,
152
               TAXES,
153
               SUP_ID,
154
               TRADE_TYPE,
155
			   KHOI_ID,UNIT_NAME, SUP_NAME
156
		FROM OPENXML(@hDoc,'/Root/ListGood',2)
157
		WITH 
158
		(
159
			PLAN_ID	varchar(15)  ,
160
			TRADE_ID	varchar(15)  ,
161
			GOODS_ID	varchar(15)  ,
162
			[DESCRIPTION] nvarchar(500),
163
			UNIT_ID	varchar(15)  ,
164
			QUANTITY	decimal(18,0)  ,
165
			PRICE	decimal(18,2)  ,
166
			TOTAL_AMT	decimal(18,2),	
167
			NOTES	nvarchar(1000),
168
			REQDT_TYPE VARCHAR(1),
169
			NAME NVARCHAR(500),
170
			DVDM_ID VARCHAR(20),
171
			HH_ID VARCHAR(20),
172
			CURRENCY	nvarchar(50),
173
			EXCHANGE_RATE	decimal(18,2),
174
			TAXES	decimal(18, 2),
175
			SUP_ID VARCHAR(20),
176
			TRADE_TYPE VARCHAR(20),
177
			KHOI_ID VARCHAR(20),
178
			UNIT_NAME NVARCHAR(200),
179
			SUP_NAME NVARCHAR(200)
180
		)
181

    
182

    
183
	
184

    
185
		DECLARE @TABLE_TRANSFER TABLE (
186
			FR_PLAN_ID	varchar(15),
187
			FR_TRADE_ID	varchar(15),
188
			FR_GOOD_ID	varchar(15),
189
			FR_BRN_ID	varchar(15),
190
			TO_BRN_ID	varchar(15),
191
			TO_PLAN_ID	varchar(15),
192
			TO_TRADE_ID	varchar(15),	
193
			TO_GOOD_ID	varchar(15),	
194
			QTY  DECIMAL(18,0),
195
			TOTAL_AMT	decimal(18),	
196
			NOTES	nvarchar(1000),
197
			FR_DEP_ID VARCHAR(20),
198
			TO_DEP_ID VARCHAR(20),
199
			FR_DVDM_ID VARCHAR(20),
200
			TO_DVDM_ID VARCHAR(20),
201
			FR_KHOI_ID VARCHAR(20),
202
			TO_KHOI_ID VARCHAR(20),
203
			FR_GD_TYPE VARCHAR(20),
204
			TO_GD_TYPE VARCHAR(20)
205
		)
206
		Exec sp_xml_preparedocument @hdoc Output,@p_ListTransfer
207
		INSERT INTO @TABLE_TRANSFER
208
		SELECT FR_PLAN_ID,
209
               FR_TRADE_ID,
210
               FR_GOOD_ID,
211
               FR_BRN_ID,
212
               TO_BRN_ID,
213
               TO_PLAN_ID,
214
               TO_TRADE_ID,
215
               TO_GOOD_ID,
216
               QTY,
217
               TOTAL_AMT,
218
               NOTES,
219
               FR_DEP_ID,
220
               TO_DEP_ID,
221
               FR_DVDM_ID,
222
               TO_DVDM_ID,
223
               FR_KHOI_ID,
224
               TO_KHOI_ID,
225
               FR_GD_TYPE,
226
               TO_GD_TYPE 
227
		FROM OPENXML(@hdoc,'/Root/ListTransfer',2)
228
		WITH 
229
		(
230
			FR_PLAN_ID	varchar(15),
231
			FR_TRADE_ID	varchar(15),
232
			FR_GOOD_ID	varchar(15),
233
			FR_BRN_ID	varchar(15),
234
			TO_BRN_ID	varchar(15),
235
			TO_PLAN_ID	varchar(15),
236
			TO_TRADE_ID	varchar(15),	
237
			TO_GOOD_ID	varchar(15),	
238
			QTY  DECIMAL(18,0),
239
			TOTAL_AMT	decimal(18),	
240
			NOTES	nvarchar(1000),
241
			FR_DEP_ID VARCHAR(20),
242
			TO_DEP_ID VARCHAR(20),
243
			FR_DVDM_ID VARCHAR(20),
244
			TO_DVDM_ID VARCHAR(20),
245
			FR_KHOI_ID VARCHAR(20),
246
			TO_KHOI_ID VARCHAR(20),
247
			FR_GD_TYPE VARCHAR(20),
248
			TO_GD_TYPE VARCHAR(20)
249
		
250
		)
251
		WHERE FR_BRN_ID !='' AND FR_BRN_ID IS NOT NULL
252

    
253
			
254

    
255

    
256

    
257
		DECLARE ListGoods  CURSOR FOR
258
		SELECT PLAN_ID,
259
               TRADE_ID,
260
               GOODS_ID,
261
               DESCRIPTION,
262
               UNIT_ID,
263
               QUANTITY,
264
               PRICE,
265
               TOTAL_AMT,
266
               NOTES,
267
               REQDT_TYPE,
268
               NAME,
269
               DVDM_ID,
270
               HH_ID,
271
               CURRENCY,
272
               EXCHANGE_RATE,
273
               TAXES,
274
               SUP_ID,
275
               TRADE_TYPE,KHOI_ID,UNIT_NAME,SUP_NAME FROM @TABLE
276

    
277
		OPEN ListGoods
278

    
279
		Declare 
280
		@PLAN_ID	varchar(15),
281
		@TRADE_ID	varchar(15),
282
		@GOODS_ID	varchar(15),
283
		@DESCRIPTION nvarchar(500),
284
		@UNIT_ID	varchar(15),
285
		@QUANTITY	decimal(18),
286
		@PRICE	decimal(18,2),
287
		@TOTAL_AMT	decimal(18,2),		
288
		@NOTES	nvarchar(1000),
289
		@REQDT_TYPE VARCHAR(1),
290
		@NAME NVARCHAR(500),
291
		@DVDM_ID VARCHAR(20),
292
		@HH_ID VARCHAR(20),
293
		@CURRENCY	nvarchar(50),
294
		@EXCHANGE_RATE	decimal(18, 2),
295
		@TAXES	decimal(18, 2),
296
		@SUP_ID VARCHAR(20),
297
		@TRADE_TYPE VARCHAR(20),
298
		@KHOI_ID VARCHAR(20),
299
		@UNIT_NAME NVARCHAR(200),
300
		@SUP_NAME NVARCHAR(200),
301
		@l_SUP_ID VARCHAR(15)
302
		FETCH NEXT FROM ListGoods INTO @PLAN_ID,@TRADE_ID,@GOODS_ID,@DESCRIPTION,@UNIT_ID,@QUANTITY,
303
		@PRICE,@TOTAL_AMT,@NOTES, @REQDT_TYPE, @NAME,@DVDM_ID,@HH_ID,@CURRENCY,@EXCHANGE_RATE,@TAXES,@SUP_ID,@TRADE_TYPE,@KHOI_ID,@UNIT_NAME,@SUP_NAME
304
		WHILE @@FETCH_STATUS = 0	
305
		BEGIN	
306
			-- KIEM TRA NEU HINH THUC CHI DINH THAU LA THEO QUY DINH VCCB THI KHONG CHO PHEP CHON NHA CUNG CAP
307
			--IF(@TRADE_TYPE IS NOT NULL AND @TRADE_TYPE <>'' AND @TRADE_TYPE ='VCCB' AND (@SUP_ID IS NOT NULL AND @SUP_ID <>''))
308
			--BEGIN
309
			--	SELECT 'REQ-00001' Result, '' REQ_ID, N'Nếu 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 
310
			--	ROLLBACK TRANSACTION
311
			--	RETURN '-1'
312
			--END
313
			--- THEM NHA CUNG CAP
314
			IF(@SUP_NAME IS NOT NULL AND @SUP_NAME <>'')
315
			BEGIN
316
				IF(NOT EXISTS(SELECT * FROM CM_SUPPLIER WHERE SUP_NAME =@SUP_NAME))
317
				BEGIN
318
					EXEC SYS_CodeMasters_Gen 'CM_SUPPLIER', @l_SUP_ID out
319
					IF @l_SUP_ID='' OR @l_SUP_ID IS NULL GOTO ABORT
320
					INSERT INTO CM_SUPPLIER([DISCIPLINES],[SUP_ID],[SUP_CODE],[SUP_NAME],[SUP_TYPE_ID],[REGION_ID],[ADDR],[EMAIL],[TAX_NO],[TEL],[CONTACT_PERSON],[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],ACC_NUM)
321
					VALUES('', @l_SUP_ID ,@l_SUP_ID ,@SUP_NAME ,NULL ,NULL ,'' ,'' ,'' ,'' ,'' ,'' ,'1' ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,'U' ,NULL,NULL,NULL)
322
					SET @SUP_ID =@l_SUP_ID
323
				END
324
				ELSE
325
				BEGIN
326
					SET @l_SUP_ID =(SELECT TOP 1 SUP_ID FROM CM_SUPPLIER WHERE SUP_NAME =@SUP_NAME)
327
					IF(@l_SUP_ID <> '' AND  @SUP_ID IS NOT NULL)
328
					BEGIN
329
						SET @SUP_ID =@l_SUP_ID
330
					END
331
				--END
332
				END
333
				
334
			END
335
			-------
336
			DECLARE @l_REQDT_ID VARCHAR(15)
337
			EXEC SYS_CodeMasters_Gen 'PL_REQUEST_DOC_DT', @l_REQDT_ID out
338
			IF @l_REQDT_ID='' OR @l_REQDT_ID IS NULL GOTO ABORT
339
			
340
		
341
			--SET @TOTAL_AMT=(@PRICE * @QUANTITY * @EXCHANGE_RATE) + (@TAXES * @EXCHANGE_RATE)
342

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

    
402

    
403
			IF @@Error <> 0 GOTO ABORT
404
		--Insert into TABLE PL_REQUEST_DOC_DT
405
		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
406
		
407

    
408

    
409
		DECLARE ListTransfers  CURSOR FOR
410
		SELECT *
411
		FROM @TABLE_TRANSFER
412
		OPEN ListTransfers
413

    
414
		Declare 
415
		@FR_PLAN_ID	varchar(15),
416
		@FR_TRADE_ID	varchar(15),
417
		@FR_GOOD_ID	varchar(15),
418
		@FR_BRN_ID	varchar(15),
419
		@TO_BRN_ID	varchar(15),
420
		@TO_PLAN_ID	varchar(15),
421
		@TO_TRADE_ID	varchar(15),	
422
		@TO_GOOD_ID	varchar(15),	
423
		@QTY  DECIMAL(18,0),
424
		@FR_DEP_ID VARCHAR(20),
425
			@TO_DEP_ID VARCHAR(20),
426
			@FR_DVDM_ID VARCHAR(20),
427
			@TO_DVDM_ID VARCHAR(20),
428
			@FR_KHOI_ID VARCHAR(20),
429
			@TO_KHOI_ID VARCHAR(20),
430
			@FR_GD_TYPE VARCHAR(20),
431
			@TO_GD_TYPE VARCHAR(20)
432

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

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

    
524

    
525
		FETCH NEXT FROM ListCostCenters INTO @COST_ID, @NOTES
526
		WHILE @@FETCH_STATUS = 0	
527
		BEGIN
528
			
529
			DECLARE @l_REQ_COST_ID VARCHAR(15)
530
			EXEC SYS_CodeMasters_Gen 'PL_REQUEST_COSTCENTER', @l_REQ_COST_ID out
531
			IF @l_REQ_COST_ID='' OR @l_REQ_COST_ID IS NULL GOTO ABORT
532
	
533
			INSERT INTO dbo.PL_REQUEST_COSTCENTER
534
			(
535
			    REQ_COST_ID,
536
			    COST_ID,
537
			    REQ_ID,
538
			    NOTES,
539
			    AUTH_STATUS,
540
			    MAKER_ID,
541
			    CREATE_DT,
542
			    CHECKER_ID,
543
			    APPROVE_DT
544
			)
545
			VALUES
546
			(   @l_REQ_COST_ID,        -- REQ_COST_ID - varchar(15)
547
			    @COST_ID,        -- COST_ID - varchar(15)
548
			    @p_REQ_ID,        -- REQ_ID - varchar(15)
549
			    @NOTES,       -- NOTES - nvarchar(500)
550
			    @p_AUTH_STATUS,        -- AUTH_STATUS - varchar(1)
551
			    @p_MAKER_ID,        -- MAKER_ID - varchar(15)
552
			      CAST(@p_CREATE_DT AS DATE) , -- CREATE_DT - datetime
553
			    @p_CHECKER_ID,        -- CHECKER_ID - varchar(15)
554
			        CAST(@p_APPROVE_DT AS DATE)  -- APPROVE_DT - datetime
555
			 )
556
			
557
			
558
			IF @@ERROR <> 0 GOTO ABORT1
559
		-- next Group_Id
560
			FETCH NEXT FROM ListCostCenters INTO @COST_ID, @NOTES
561
		END
562
		CLOSE ListCostCenters
563
		DEALLOCATE ListCostCenters
564
	
565
COMMIT TRANSACTION
566
SELECT '0' as Result, @p_REQ_ID  REQ_ID, '' ErrorDesc
567
RETURN '0'
568
ABORT:
569
BEGIN
570
		ROLLBACK TRANSACTION
571
		SELECT '-1' AS Result, ''  REQ_ID, '' ErrorDesc
572
		RETURN '-1'
573
End
574
ABORT1:
575
BEGIN
576
		CLOSE ListGoods
577
		DEALLOCATE ListGoods
578
		CLOSE ListCostCenters
579
		DEALLOCATE ListCostCenters
580
		CLOSE ListCostCenters
581
		DEALLOCATE ListCostCenters
582
		ROLLBACK TRANSACTION
583
		SELECT '-1' AS Result, ''  REQ_ID, '' ErrorDesc
584
		RETURN '-1'
585
End
586
¿
587

    
588

    
589

    
590

    
591

    
592