Project

General

Profile

1.0 PL_REQ_DOC_INS_TO_REQ_DOC.txt

Luc Tran Van, 07/14/2021 08:48 AM

 
1

    
2
/****** Object:  StoredProcedure [dbo].[PL_REQ_DOC_Ins_To_TR_REQ_DOC]    Script Date: 2021714 7/14/2021 7:51:08 AM ******/
3
ALTER PROCEDURE [dbo].[PL_REQ_DOC_Ins_To_TR_REQ_DOC]
4
@p_PL_REQ_ID	VARCHAR(15)
5
AS
6
	BEGIN TRANSACTION
7
		DECLARE 
8
		@l_REQ_ID VARCHAR(15),
9
		@p_REQ_CODE VARCHAR(20),		 
10
		@PL_REQDT_ID	varchar(15),	
11
		@GOODS_ID	varchar(15),
12
		@DESCRIPTION nvarchar(500),
13
		@QUANTITY DECIMAL(18,0),
14
		@PRICE DECIMAL(18,0),
15
		@TOTAL_AMT DECIMAL(18,0),
16
		@DVDM_ID VARCHAR(20),
17
		@CURRENCY VARCHAR(10),
18
		@TAXES DECIMAL(18,2),
19
		@EXCHANGE_RATE DECIMAL(18,2),
20
		@COST_ID VARCHAR(20),
21
		@MAKER_ID VARCHAR(20),
22
		@HH_ID VARCHAR(20),
23
		@SUP_ID VARCHAR(20),
24
		@l_REQDT_ID VARCHAR(15),
25
		@l_REQ_COST_ID VARCHAR(15),
26
		@NOTES_COST NVARCHAR(500),
27
		@TRADE_TYPE VARCHAR(15),
28
		@REASON_CDT NVARCHAR(MAX),
29
		@REQPL_DT_ID VARCHAR(20)
30
		IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_PL_REQ_ID AND TRADE_TYPE='VCCB'))
31
		BEGIN
32
		--insert master				
33
	
34
		EXEC SYS_CodeMasters_Gen 'TR_REQUEST_DOC', @l_REQ_ID out
35
		IF @l_REQ_ID='' OR @l_REQ_ID IS NULL GOTO ABORT
36

    
37
	
38
		exec [TR_CODE_GenKey] 'TR_REQUEST_DOC', '','PUR', @p_REQ_CODE out
39
		IF @p_REQ_CODE='' OR @p_REQ_CODE IS NULL GOTO ABORT
40

    
41

    
42
		INSERT INTO dbo.TR_REQUEST_DOC
43
		(
44
		    REQ_ID,	
45
			REQ_CODE,	
46
		    REQ_DT,
47
			REQ_REASON,
48
		    PL_REQ_ID,
49
		    NOTES,
50
		    RECORD_STATUS,
51
		    CREATE_DT,
52
			AUTH_STATUS,
53
			TOTAL_AMT,
54
			BRANCH_CREATE,
55
			DEP_CREATE,
56
			USER_REQUEST,MAKER_ID,PROCESS_ID
57
		)
58
		SELECT @l_REQ_ID,@p_REQ_CODE,GETDATE(),REQ_REASON, REQ_ID,'','1',GETDATE(),'E',TOTAL_AMT,BRANCH_CREATE,DEP_CREATE,MAKER_ID,MAKER_ID,'NEW' FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_PL_REQ_ID
59
			
60
		IF @@Error <> 0 GOTO ABORT
61
		--Insert into TABLE PL_REQUEST_DOC_DT
62

    
63
		DECLARE ListGoods  CURSOR FOR
64
		SELECT REQDT_ID,GOODS_ID,[DESCRIPTION],QUANTITY,PRICE,TOTAL_AMT,HANGHOA_ID,DVDM_ID,CURRENCY,TAXES,EXCHANGE_RATE,SUP_ID,TRADE_TYPE,NAME FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_PL_REQ_ID AND TRADE_TYPE='VCCB'
65
		OPEN ListGoods
66
		SET @MAKER_ID=(SELECT MAKER_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_PL_REQ_ID)
67
		FETCH NEXT FROM ListGoods INTO @PL_REQDT_ID,@GOODS_ID,@DESCRIPTION,@QUANTITY,@PRICE,@TOTAL_AMT,@HH_ID,@DVDM_ID,@CURRENCY,@TAXES,@EXCHANGE_RATE,@SUP_ID,@TRADE_TYPE,@REASON_CDT
68
		WHILE @@FETCH_STATUS = 0	
69
		BEGIN
70
			EXEC SYS_CodeMasters_Gen 'TR_REQUEST_DOC_DT', @l_REQDT_ID out
71
			IF @l_REQDT_ID='' OR @l_REQDT_ID IS NULL GOTO ABORT	
72
			EXEC SYS_CodeMasters_Gen 'TR_REQUEST_DOC_PL_DT', @REQPL_DT_ID out
73
			IF @REQPL_DT_ID='' OR @REQPL_DT_ID IS NULL GOTO ABORT
74

    
75
			INSERT INTO dbo.TR_REQUEST_DOC_PL_DT
76
			(
77
			    REQPL_DT_ID,
78
			    REQ_DOC_ID,
79
			    PL_REQDT_ID,
80
			    GD_ID,
81
			    SUP_ID,
82
			    HH_ID,
83
			    TRAN_TYPE_ID,
84
			    MAKER_ID,
85
			    CREATE_DT,
86
			    AUTH_STATUS,
87
			    CHECKER_ID,
88
			    APPROVE_DT,
89
			    DES_GOOD,
90
			    QUANTITY_PL,
91
			    PRICE_PL,
92
			    CURRENCY,
93
			    EXCHANGE_RATE,
94
			    TAXES,
95
			    TOTAL_AMT_ETM,
96
			    REASON_CDT,
97
			    REQ_DT,
98
			    NOTES,
99
			    RECORD_STATUS
100
			)
101
			VALUES
102
			(   @REQPL_DT_ID,        -- REQPL_DT_ID - varchar(15)
103
			    @l_REQ_ID,        -- REQ_DOC_ID - varchar(15)
104
			    @PL_REQDT_ID,        -- PL_REQDT_ID - varchar(15)
105
			    @GOODS_ID,        -- GD_ID - varchar(15)
106
			    @SUP_ID,        -- SUP_ID - varchar(15)
107
			    @HH_ID,        -- HH_ID - varchar(15)
108
			    @TRADE_TYPE,        -- TRAN_TYPE_ID - varchar(15)
109
			    @MAKER_ID,        -- MAKER_ID - varchar(15)
110
			    GETDATE(), -- CREATE_DT - datetime
111
			    '',        -- AUTH_STATUS - varchar(50)
112
			    '',        -- CHECKER_ID - varchar(15)
113
			    NULL, -- APPROVE_DT - datetime
114
			    @DESCRIPTION,       -- DES_GOOD - nvarchar(500)
115
			    @QUANTITY,      -- QUANTITY_PL - decimal(18, 0)
116
			    @PRICE,      -- PRICE_PL - decimal(18, 2)
117
			    @CURRENCY,       -- CURRENCY - nvarchar(50)
118
			    @EXCHANGE_RATE,      -- EXCHANGE_RATE - decimal(18, 2)
119
			    @TAXES,      -- TAXES - decimal(18, 2)
120
			    @TOTAL_AMT,      -- TOTAL_AMT_ETM - decimal(18, 2)
121
			    @REASON_CDT,       -- REASON_CDT - nvarchar(500)
122
			    GETDATE(), -- REQ_DT - datetime
123
			    N'',       -- NOTES - nvarchar(500)
124
			    '1' -- RECORD_STATUS - varchar(1)
125
			    )
126

    
127
			INSERT INTO dbo.TR_REQUEST_DOC_DT
128
			(
129
			    REQDT_ID,
130
			    REQ_DOC_ID,
131
			    PL_REQDT_ID,
132
			    GD_ID,
133
			    DESCRIPTION,		
134
			    RECORD_STATUS,
135
			    MAKER_ID,
136
			    CREATE_DT,
137
			    AUTH_STATUS,
138
			    CHECKER_ID,
139
			    APPROVE_DT,
140
				QUANTITY,
141
				PRICE,
142
				TOTAL_AMT,
143
				PRICE_ETM,
144
				TOTAL_AMT_ETM,CURRENCY,HANGHOA_ID,DVDM_ID,TAXES,EXCHANGE_RATE,SUP_ID,REQPL_DT_ID
145
			
146
			)	
147
			VALUES
148
			(   @l_REQDT_ID,        -- REQDT_ID - varchar(15)
149
			    @l_REQ_ID,        -- REQ_ID - varchar(15)
150
			    @PL_REQDT_ID,        -- PLAN_ID - varchar(15)
151
			    @GOODS_ID,        -- GOODS_ID - varchar(15
152
				      -- NAME - nvarchar(200)
153
			    @DESCRIPTION,       -- DESCRIPTION - nvarchar(500)
154
		
155
			    '1',        -- RECORD_STATUS - varchar(1)
156
			    '',        -- MAKER_ID - varchar(15)
157
			    GETDATE(), -- CREATE_DT - datetime
158
			    'U',        -- AUTH_STATUS - varchar(50)
159
			    '',        -- CHECKER_ID - varchar(15)
160
			    NULL,  -- APPROVE_DT - datetime
161
				@QUANTITY,
162
				@PRICE,
163
				@TOTAL_AMT,
164
				@PRICE,
165
				@TOTAL_AMT,
166
				@CURRENCY,@HH_ID,@DVDM_ID,@TAXES,@EXCHANGE_RATE,@SUP_ID,@REQPL_DT_ID
167
			)
168
			
169
			
170
			IF @@ERROR <> 0 GOTO ABORT1
171
		-- next Group_Id
172
			FETCH NEXT FROM ListGoods INTO @PL_REQDT_ID,@GOODS_ID,@DESCRIPTION,@QUANTITY,@PRICE,@TOTAL_AMT,@HH_ID,@DVDM_ID,@CURRENCY,@TAXES,@EXCHANGE_RATE,@SUP_ID,@TRADE_TYPE,@REASON_CDT
173
		END
174

    
175
		UPDATE dbo.TR_REQUEST_DOC SET TOTAL_AMT = (
176
			SELECT SUM(QUANTITY*PRICE) FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID = @l_REQ_ID
177
		) WHERE REQ_ID = @l_REQ_ID
178

    
179
		CLOSE ListGoods
180
		DEALLOCATE ListGoods
181
		IF @@Error <> 0 GOTO ABORT
182
		--LUCTV: 10 06 2021 KHI PHÁT SINH PYCMS TỪ TỜ TRÌNH CHỦ TRƯƠNG, KHÔNG CẦN PHÁT SINH ĐƠN VỊ CHUYÊN MÔN
183
		--DECLARE lstCostCenter CURSOR FOR
184
		--SELECT COST_ID, NOTES FROM dbo.PL_REQUEST_COSTCENTER WHERE REQ_ID=@p_PL_REQ_ID
185
		--GROUP BY COST_ID,NOTES
186
		--OPEN lstCostCenter
187
		--FETCH NEXT FROM lstCostCenter INTO @COST_ID, @NOTES_COST
188
		--WHILE @@FETCH_STATUS=0
189
		--BEGIN
190
		--	EXEC SYS_CodeMasters_Gen 'TR_REQUEST_COSTCENTER', @l_REQ_COST_ID out
191
		--	IF @l_REQ_COST_ID='' OR @l_REQ_COST_ID IS NULL GOTO ABORT
192
		--		INSERT INTO dbo.TR_REQUEST_COSTCENTER
193
		--		(
194
		--			REQ_COST_ID,
195
		--			COST_ID,
196
		--			REQ_ID,
197
		--			NOTES,
198
		--			AUTH_STATUS,
199
		--			MAKER_ID,
200
		--			CREATE_DT,
201
		--			CHECKER_ID,
202
		--			APPROVE_DT
203
		--		)
204
		--		VALUES
205
		--		(   @l_REQ_COST_ID,        -- REQ_COST_ID - varchar(15)
206
		--			@COST_ID,        -- COST_ID - varchar(15)
207
		--			@l_REQ_ID,        -- REQ_ID - varchar(15)
208
		--			@NOTES_COST,       -- NOTES - nvarchar(500)
209
		--			'',        -- AUTH_STATUS - varchar(1)
210
		--			@MAKER_ID,        -- MAKER_ID - varchar(15)
211
		--			NULL, -- CREATE_DT - datetime
212
		--			'',        -- CHECKER_ID - varchar(15)
213
		--			NULL  -- APPROVE_DT - datetime
214
		--			)
215
		--		FETCH NEXT FROM lstCostCenter INTO @COST_ID,@NOTES_COST
216
		--END 
217
		--CLOSE lstCostCenter
218
		--DEALLOCATE lstCostCenter	
219
		INSERT INTO dbo.PL_REQUEST_PROCESS
220
		(
221
		    REQ_ID,
222
		    PROCESS_ID,
223
		    STATUS,
224
		    ROLE_USER,
225
		    BRANCH_ID,
226
		    CHECKER_ID,
227
		    APPROVE_DT,
228
		    PARENT_PROCESS_ID,
229
		    IS_LEAF,
230
		    COST_ID,
231
		    DVDM_ID,
232
		    NOTES,
233
		    IS_HAS_CHILD
234
		)
235
		VALUES
236
		(   @l_REQ_ID, -- REQ_ID - varchar(15)
237
		    'NEW',     -- PROCESS_ID - varchar(10)
238
		    'C',       -- STATUS - varchar(5)
239
		    '',        -- ROLE_USER - varchar(50)
240
		    '',        -- BRANCH_ID - varchar(15)
241
		    '',        -- CHECKER_ID - varchar(15)
242
		    NULL,      -- APPROVE_DT - datetime
243
		    '',        -- PARENT_PROCESS_ID - varchar(10)
244
		    'N',       -- IS_LEAF - varchar(1)
245
		    '',        -- COST_ID - varchar(15)
246
		    '',        -- DVDM_ID - varchar(15)
247
		    N'Chờ gửi phê duyệt',       -- NOTES - nvarchar(500)
248
		    NULL       -- IS_HAS_CHILD - bit
249
		   )
250
		IF(EXISTS(SELECT * FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@l_REQ_ID AND TOTAL_AMT <=5000000 AND NOT EXISTS (SELECT * FROM dbo.CM_BRANCH WHERE BRANCH_ID=BRANCH_CREATE AND BRANCH_TYPE='HS')))
251
		BEGIN
252
			
253
			UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='P' WHERE REQ_ID=@l_REQ_ID AND PROCESS_ID='NEW'
254
			INSERT INTO dbo.PL_REQUEST_PROCESS
255
				(
256
				    REQ_ID,
257
				    PROCESS_ID,
258
				    STATUS,
259
				    ROLE_USER,
260
				    BRANCH_ID,
261
				    CHECKER_ID,
262
				    APPROVE_DT,
263
				    PARENT_PROCESS_ID,
264
				    IS_LEAF,
265
				    COST_ID,
266
				    DVDM_ID,
267
				    NOTES,
268
				    IS_HAS_CHILD
269
				)
270
				VALUES
271
				(   @l_REQ_ID,        -- REQ_ID - varchar(15)
272
				    'APPROVE',        -- PROCESS_ID - varchar(10)
273
				    'C',        -- STATUS - varchar(5)
274
				    '',        -- ROLE_USER - varchar(50)
275
				    '',        -- BRANCH_ID - varchar(15)
276
				    '',        -- CHECKER_ID - varchar(15)
277
				    NULL, -- APPROVE_DT - datetime
278
				    'NEW',        -- PARENT_PROCESS_ID - varchar(10)
279
				    'N',        -- IS_LEAF - varchar(1)
280
				    '',        -- COST_ID - varchar(15)
281
				    '',        -- DVDM_ID - varchar(15)
282
				    N'Hoàn tất',       -- NOTES - nvarchar(500)
283
				    NULL       -- IS_HAS_CHILD - bit
284
				  )
285
			UPDATE TR_REQUEST_DOC SET AUTH_STATUS='A',PROCESS_ID='APPROVE',USER_DVMS=MAKER_ID,BRANCH_DVMS=BRANCH_CREATE WHERE REQ_ID=@l_REQ_ID
286

    
287
			EXEC dbo.TR_REQ_DOC_Ins_To_PO @p_TR_REQ_ID = @l_REQ_ID -- varchar(15)
288
			
289
		END
290
		END
291
		IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_PL_REQ_ID AND TRADE_TYPE='CDT'))
292
		BEGIN
293
		--insert master				
294
		
295
		EXEC SYS_CodeMasters_Gen 'TR_REQUEST_DOC', @l_REQ_ID out
296
		IF @l_REQ_ID='' OR @l_REQ_ID IS NULL GOTO ABORT
297

    
298
		
299
		exec [TR_CODE_GenKey] 'TR_REQUEST_DOC', '','PUR', @p_REQ_CODE out
300
		IF @p_REQ_CODE='' OR @p_REQ_CODE IS NULL GOTO ABORT
301

    
302

    
303
		INSERT INTO dbo.TR_REQUEST_DOC
304
		(
305
		    REQ_ID,	
306
			REQ_CODE,	
307
		    REQ_DT,
308
			REQ_REASON,
309
		    PL_REQ_ID,
310
		    NOTES,
311
		    RECORD_STATUS,
312
		    CREATE_DT,
313
			AUTH_STATUS,
314
			TOTAL_AMT,
315
			BRANCH_CREATE,
316
			DEP_CREATE,
317
			USER_REQUEST,MAKER_ID,PROCESS_ID
318
		)
319
		SELECT @l_REQ_ID,@p_REQ_CODE,GETDATE(),REQ_REASON, REQ_ID,'','1',GETDATE(),'E',TOTAL_AMT,BRANCH_CREATE,DEP_CREATE,MAKER_ID,MAKER_ID,'NEW' FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_PL_REQ_ID	
320
		IF @@Error <> 0 GOTO ABORT
321
		--Insert into TABLE PL_REQUEST_DOC_DT
322

    
323
		DECLARE ListGoods  CURSOR FOR
324
		SELECT REQDT_ID,GOODS_ID,[DESCRIPTION],QUANTITY,PRICE,TOTAL_AMT,HANGHOA_ID,DVDM_ID,CURRENCY,TAXES,EXCHANGE_RATE,SUP_ID,TRADE_TYPE,NAME FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_PL_REQ_ID AND TRADE_TYPE='CDT'
325
		OPEN ListGoods
326

    
327
		DECLARE @TRN_TYPE VARCHAR(20)
328
		SET @TRN_TYPE = (SELECT TRN_TYPE FROM dbo.CM_TRAN_TYPE WHERE NOTES='CDT')
329
		SET @MAKER_ID=(SELECT MAKER_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_PL_REQ_ID)
330
		FETCH NEXT FROM ListGoods INTO @PL_REQDT_ID,@GOODS_ID,@DESCRIPTION,@QUANTITY,@PRICE,@TOTAL_AMT,@HH_ID,@DVDM_ID,@CURRENCY,@TAXES,@EXCHANGE_RATE,@SUP_ID,@TRADE_TYPE,@REASON_CDT
331
		WHILE @@FETCH_STATUS = 0	
332
		BEGIN
333
			EXEC SYS_CodeMasters_Gen 'TR_REQUEST_DOC_DT', @l_REQDT_ID out
334
			IF @l_REQDT_ID='' OR @l_REQDT_ID IS NULL GOTO ABORT
335
			EXEC SYS_CodeMasters_Gen 'TR_REQUEST_DOC_PL_DT', @REQPL_DT_ID out
336
			IF @REQPL_DT_ID='' OR @REQPL_DT_ID IS NULL GOTO ABORT
337

    
338
			INSERT INTO dbo.TR_REQUEST_DOC_PL_DT
339
			(
340
			    REQPL_DT_ID,
341
			    REQ_DOC_ID,
342
			    PL_REQDT_ID,
343
			    GD_ID,
344
			    SUP_ID,
345
			    HH_ID,
346
			    TRAN_TYPE_ID,
347
			    MAKER_ID,
348
			    CREATE_DT,
349
			    AUTH_STATUS,
350
			    CHECKER_ID,
351
			    APPROVE_DT,
352
			    DES_GOOD,
353
			    QUANTITY_PL,
354
			    PRICE_PL,
355
			    CURRENCY,
356
			    EXCHANGE_RATE,
357
			    TAXES,
358
			    TOTAL_AMT_ETM,
359
			    REASON_CDT,
360
			    REQ_DT,
361
			    NOTES,
362
			    RECORD_STATUS
363
			)
364
			VALUES
365
			(   @REQPL_DT_ID,        -- REQPL_DT_ID - varchar(15)
366
			    @l_REQ_ID,        -- REQ_DOC_ID - varchar(15)
367
			    @PL_REQDT_ID,        -- PL_REQDT_ID - varchar(15)
368
			    @GOODS_ID,        -- GD_ID - varchar(15)
369
			    @SUP_ID,        -- SUP_ID - varchar(15)
370
			    @HH_ID,        -- HH_ID - varchar(15)
371
			    @TRADE_TYPE,        -- TRAN_TYPE_ID - varchar(15)
372
			    @MAKER_ID,        -- MAKER_ID - varchar(15)
373
			    GETDATE(), -- CREATE_DT - datetime
374
			    '',        -- AUTH_STATUS - varchar(50)
375
			    '',        -- CHECKER_ID - varchar(15)
376
			    NULL, -- APPROVE_DT - datetime
377
			    @DESCRIPTION,       -- DES_GOOD - nvarchar(500)
378
			    @QUANTITY,      -- QUANTITY_PL - decimal(18, 0)
379
			    @PRICE,      -- PRICE_PL - decimal(18, 2)
380
			    @CURRENCY,       -- CURRENCY - nvarchar(50)
381
			    @EXCHANGE_RATE,      -- EXCHANGE_RATE - decimal(18, 2)
382
			    @TAXES,      -- TAXES - decimal(18, 2)
383
			    @TOTAL_AMT,      -- TOTAL_AMT_ETM - decimal(18, 2)
384
			    @REASON_CDT,       -- REASON_CDT - nvarchar(500)
385
			    GETDATE(), -- REQ_DT - datetime
386
			    N'',       -- NOTES - nvarchar(500)
387
			    '1' -- RECORD_STATUS - varchar(1)
388
			    )
389
			INSERT INTO dbo.TR_REQUEST_DOC_DT
390
			(
391
			    REQDT_ID,
392
			    REQ_DOC_ID,
393
			    PL_REQDT_ID,
394
			    GD_ID,
395
			    DESCRIPTION,		
396
			    RECORD_STATUS,
397
			    MAKER_ID,
398
			    CREATE_DT,
399
			    AUTH_STATUS,
400
			    CHECKER_ID,
401
			    APPROVE_DT,
402
				QUANTITY,
403
				PRICE,
404
				TOTAL_AMT,
405
				PRICE_ETM,
406
				TOTAL_AMT_ETM,CURRENCY,HANGHOA_ID,DVDM_ID,TAXES,EXCHANGE_RATE,SUP_ID,TRAN_TYPE_ID,REQPL_DT_ID
407
			
408
			)	
409
			VALUES
410
			(   @l_REQDT_ID,        -- REQDT_ID - varchar(15)
411
			    @l_REQ_ID,        -- REQ_ID - varchar(15)
412
			    @PL_REQDT_ID,        -- PLAN_ID - varchar(15)
413
			    @GOODS_ID,        -- GOODS_ID - varchar(15
414
				      -- NAME - nvarchar(200)
415
			    @DESCRIPTION,       -- DESCRIPTION - nvarchar(500)
416
		
417
			    '1',        -- RECORD_STATUS - varchar(1)
418
			    '',        -- MAKER_ID - varchar(15)
419
			    GETDATE(), -- CREATE_DT - datetime
420
			    'U',        -- AUTH_STATUS - varchar(50)
421
			    '',        -- CHECKER_ID - varchar(15)
422
			    NULL,  -- APPROVE_DT - datetime
423
				@QUANTITY,
424
				@PRICE,
425
				@TOTAL_AMT,
426
				@PRICE,
427
				@TOTAL_AMT,
428
				@CURRENCY,@HH_ID,@DVDM_ID,@TAXES,@EXCHANGE_RATE,@SUP_ID,@TRN_TYPE,@REQPL_DT_ID
429
			)
430
			
431
			
432
			IF @@ERROR <> 0 GOTO ABORT1
433
		-- next Group_Id
434
			FETCH NEXT FROM ListGoods INTO @PL_REQDT_ID,@GOODS_ID,@DESCRIPTION,@QUANTITY,@PRICE,@TOTAL_AMT,@HH_ID,@DVDM_ID,@CURRENCY,@TAXES,@EXCHANGE_RATE,@SUP_ID,@TRADE_TYPE,@REASON_CDT
435
		END
436

    
437
		UPDATE dbo.TR_REQUEST_DOC SET TOTAL_AMT = (
438
			SELECT SUM(QUANTITY*PRICE) FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID = @l_REQ_ID
439
		) WHERE REQ_ID = @l_REQ_ID
440

    
441
		CLOSE ListGoods
442
		DEALLOCATE ListGoods
443
		IF @@Error <> 0 GOTO ABORT
444
		DECLARE lstCostCenter CURSOR FOR
445
		SELECT COST_ID,NOTES FROM dbo.PL_REQUEST_COSTCENTER WHERE REQ_ID=@p_PL_REQ_ID
446
		GROUP BY COST_ID,NOTES
447
		OPEN lstCostCenter
448
		FETCH NEXT FROM lstCostCenter INTO @COST_ID,@NOTES_COST
449
		WHILE @@FETCH_STATUS=0
450
		BEGIN
451
			EXEC SYS_CodeMasters_Gen 'TR_REQUEST_COSTCENTER', @l_REQ_COST_ID out
452
			IF @l_REQ_COST_ID='' OR @l_REQ_COST_ID IS NULL GOTO ABORT
453
				--INSERT INTO dbo.TR_REQUEST_COSTCENTER -- LUCTV 12-07-2021 KHI PHAT SINH PUR TU TTCT THÌ KHÔNG KÈM THEO DVCM
454
				--(
455
				--	REQ_COST_ID,
456
				--	COST_ID,
457
				--	REQ_ID,
458
				--	NOTES,
459
				--	AUTH_STATUS,
460
				--	MAKER_ID,
461
				--	CREATE_DT,
462
				--	CHECKER_ID,
463
				--	APPROVE_DT
464
				--)
465
				--VALUES
466
				--(   @l_REQ_COST_ID,        -- REQ_COST_ID - varchar(15)
467
				--	@COST_ID,        -- COST_ID - varchar(15)
468
				--	@l_REQ_ID,        -- REQ_ID - varchar(15)
469
				--	@NOTES_COST,       -- NOTES - nvarchar(500)
470
				--	'',        -- AUTH_STATUS - varchar(1)
471
				--	@MAKER_ID,        -- MAKER_ID - varchar(15)
472
				--	NULL, -- CREATE_DT - datetime
473
				--	'',        -- CHECKER_ID - varchar(15)
474
				--	NULL  -- APPROVE_DT - datetime
475
				--	)
476
				FETCH NEXT FROM lstCostCenter INTO @COST_ID,@NOTES_COST
477
		END 
478
		CLOSE lstCostCenter
479
		DEALLOCATE lstCostCenter
480
		INSERT INTO dbo.PL_REQUEST_PROCESS
481
		(
482
		    REQ_ID,
483
		    PROCESS_ID,
484
		    STATUS,
485
		    ROLE_USER,
486
		    BRANCH_ID,
487
		    CHECKER_ID,
488
		    APPROVE_DT,
489
		    PARENT_PROCESS_ID,
490
		    IS_LEAF,
491
		    COST_ID,
492
		    DVDM_ID,
493
		    NOTES,
494
		    IS_HAS_CHILD
495
		)
496
		VALUES
497
		(   @l_REQ_ID,        -- REQ_ID - varchar(15)
498
		    'NEW',        -- PROCESS_ID - varchar(10)
499
		    'C',        -- STATUS - varchar(5)
500
		    '',        -- ROLE_USER - varchar(50)
501
		    '',        -- BRANCH_ID - varchar(15)
502
		    '',        -- CHECKER_ID - varchar(15)
503
		    NULL,      -- APPROVE_DT - datetime
504
		    '',        -- PARENT_PROCESS_ID - varchar(10)
505
		    'N',        -- IS_LEAF - varchar(1)
506
		    '',        -- COST_ID - varchar(15)
507
		    '',        -- DVDM_ID - varchar(15)
508
		    N'Chờ gửi phê duyệt',       -- NOTES - nvarchar(500)
509
		    NULL       -- IS_HAS_CHILD - bit
510
		   )
511
		IF(EXISTS(SELECT * FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@l_REQ_ID AND TOTAL_AMT <=5000000 AND 
512
		NOT EXISTS (SELECT * FROM dbo.CM_BRANCH WHERE BRANCH_ID=BRANCH_CREATE AND BRANCH_TYPE='HS')))
513
		BEGIN
514
			
515
			UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='P' WHERE REQ_ID=@l_REQ_ID AND PROCESS_ID='NEW'
516
			INSERT INTO dbo.PL_REQUEST_PROCESS
517
				(
518
				    REQ_ID,
519
				    PROCESS_ID,
520
				    STATUS,
521
				    ROLE_USER,
522
				    BRANCH_ID,
523
				    CHECKER_ID,
524
				    APPROVE_DT,
525
				    PARENT_PROCESS_ID,
526
				    IS_LEAF,
527
				    COST_ID,
528
				    DVDM_ID,
529
				    NOTES,
530
				    IS_HAS_CHILD
531
				)
532
				VALUES
533
				(   @l_REQ_ID,        -- REQ_ID - varchar(15)
534
				    'APPROVE',        -- PROCESS_ID - varchar(10)
535
				    'C',        -- STATUS - varchar(5)
536
				    '',        -- ROLE_USER - varchar(50)
537
				    '',        -- BRANCH_ID - varchar(15)
538
				    '',        -- CHECKER_ID - varchar(15)
539
				    NULL, -- APPROVE_DT - datetime
540
				    'NEW',        -- PARENT_PROCESS_ID - varchar(10)
541
				    'N',        -- IS_LEAF - varchar(1)
542
				    '',        -- COST_ID - varchar(15)
543
				    '',        -- DVDM_ID - varchar(15)
544
				    N'Hoàn tất',       -- NOTES - nvarchar(500)
545
				    NULL       -- IS_HAS_CHILD - bit
546
				  )
547
			UPDATE TR_REQUEST_DOC SET AUTH_STATUS='A',PROCESS_ID='APPROVE',USER_DVMS=MAKER_ID,BRANCH_DVMS=BRANCH_CREATE WHERE REQ_ID=@l_REQ_ID
548
			EXEC dbo.TR_REQ_DOC_Ins_To_PO @p_TR_REQ_ID = @l_REQ_ID -- varchar(15)
549
			
550
		END
551
		END
552

    
553
COMMIT TRANSACTION
554
RETURN 1
555
ABORT:
556
BEGIN
557
		ROLLBACK TRANSACTION	
558
		RETURN 1
559
End
560
ABORT1:
561
BEGIN
562
		CLOSE ListGoods
563
		DEALLOCATE ListGoods
564
		ROLLBACK TRANSACTION	
565
		RETURN 1	
566
End
567

    
568

    
569

    
570

    
571

    
572

    
573

    
574

    
575

    
576