Project

General

Profile

PL_REQ_DOC_Ins_To_TR_REQ_DOC.txt

Luc Tran Van, 10/31/2022 11:30 AM

 
1

    
2
ALTER   PROCEDURE [dbo].[PL_REQ_DOC_Ins_To_TR_REQ_DOC]
3
@p_PL_REQ_ID	VARCHAR(15)
4
AS
5
	BEGIN TRANSACTION
6
		DECLARE 
7
		@l_REQ_ID VARCHAR(15),
8
		@p_REQ_CODE VARCHAR(20),		 
9
		@PL_REQDT_ID	varchar(15),	
10
		@GOODS_ID	varchar(15),
11
		@DESCRIPTION nvarchar(500),
12
		@QUANTITY DECIMAL(18,0),
13
		@PRICE DECIMAL(18,0),
14
		@TOTAL_AMT DECIMAL(18,0),
15
		@DVDM_ID VARCHAR(20),
16
		@CURRENCY VARCHAR(10),
17
		@TAXES DECIMAL(18,2),
18
		@EXCHANGE_RATE DECIMAL(18,2),
19
		@COST_ID VARCHAR(20),
20
		@MAKER_ID VARCHAR(20),
21
		@HH_ID VARCHAR(20),
22
		@SUP_ID VARCHAR(20),
23
		@l_REQDT_ID VARCHAR(15),
24
		@l_REQ_COST_ID VARCHAR(15),
25
		@NOTES_COST NVARCHAR(500),
26
		@TRADE_TYPE VARCHAR(15),
27
		@REASON_CDT NVARCHAR(MAX),
28
		@REQPL_DT_ID VARCHAR(20),
29
		@UNIT_NAME NVARCHAR(100)
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
		------------BAODNQ 28/10/2022 : LẤY THÊM UNIT_NAME TRONG PL_REQUEST_DOC_DT------
64
		DECLARE ListGoods  CURSOR FOR
65
		SELECT REQDT_ID,GOODS_ID,[DESCRIPTION],QUANTITY,PRICE,TOTAL_AMT,HANGHOA_ID,DVDM_ID,CURRENCY,TAXES,EXCHANGE_RATE,SUP_ID,TRADE_TYPE,NAME,UNIT_NAME FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_PL_REQ_ID AND TRADE_TYPE='VCCB'
66
		OPEN ListGoods
67
		SET @MAKER_ID=(SELECT MAKER_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_PL_REQ_ID)
68
		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,@UNIT_NAME
69
		WHILE @@FETCH_STATUS = 0	
70
		BEGIN
71
			EXEC SYS_CodeMasters_Gen 'TR_REQUEST_DOC_DT', @l_REQDT_ID out
72
			IF @l_REQDT_ID='' OR @l_REQDT_ID IS NULL GOTO ABORT	
73
			EXEC SYS_CodeMasters_Gen 'TR_REQUEST_DOC_PL_DT', @REQPL_DT_ID out
74
			IF @REQPL_DT_ID='' OR @REQPL_DT_ID IS NULL GOTO ABORT
75

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

    
128
			print 'haha'
129

    
130
			INSERT INTO dbo.TR_REQUEST_DOC_DT
131
			(
132
			    REQDT_ID,
133
			    REQ_DOC_ID,
134
			    PL_REQDT_ID,
135
			    GD_ID,
136
			    DESCRIPTION,		
137
			    RECORD_STATUS,
138
			    MAKER_ID,
139
			    CREATE_DT,
140
			    AUTH_STATUS,
141
			    CHECKER_ID,
142
			    APPROVE_DT,
143
				QUANTITY,
144
				PRICE,
145
				TOTAL_AMT,
146
				PRICE_ETM,
147
				TOTAL_AMT_ETM,CURRENCY,HANGHOA_ID,DVDM_ID,TAXES,EXCHANGE_RATE,SUP_ID,REQPL_DT_ID,
148
				---------BAODNQ 28/10/2022: KHI TỰ SINH PYCMS INSERT THÊM ĐƠN VỊ TÍNH THEO TỜ TRÌNH-----
149
				UNIT_NAME
150
			
151
			)	
152
			VALUES
153
			(   @l_REQDT_ID,        -- REQDT_ID - varchar(15)
154
			    @l_REQ_ID,        -- REQ_ID - varchar(15)
155
			    @PL_REQDT_ID,        -- PLAN_ID - varchar(15)
156
			    @GOODS_ID,        -- GOODS_ID - varchar(15
157
				      -- NAME - nvarchar(200)
158
			    @DESCRIPTION,       -- DESCRIPTION - nvarchar(500)
159
		
160
			    '1',        -- RECORD_STATUS - varchar(1)
161
			    '',        -- MAKER_ID - varchar(15)
162
			    GETDATE(), -- CREATE_DT - datetime
163
			    'U',        -- AUTH_STATUS - varchar(50)
164
			    '',        -- CHECKER_ID - varchar(15)
165
			    NULL,  -- APPROVE_DT - datetime
166
				@QUANTITY,
167
				@PRICE,
168
				@TOTAL_AMT,
169
				@PRICE,
170
				@TOTAL_AMT,
171
				@CURRENCY,@HH_ID,@DVDM_ID,@TAXES,@EXCHANGE_RATE,@SUP_ID,@REQPL_DT_ID,
172
				---------BAODNQ 28/10/2022: KHI TỰ SINH PYCMS INSERT THÊM ĐƠN VỊ TÍNH THEO TỜ TRÌNH-----
173
				@UNIT_NAME
174
			)
175
			
176
			
177
			IF @@ERROR <> 0 GOTO ABORT1
178
		-- next Group_Id
179
			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,@UNIT_NAME
180
		END
181

    
182
		UPDATE dbo.TR_REQUEST_DOC SET TOTAL_AMT = (
183
			SELECT SUM(QUANTITY*PRICE) FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID = @l_REQ_ID
184
		) WHERE REQ_ID = @l_REQ_ID
185

    
186
		CLOSE ListGoods
187
		DEALLOCATE ListGoods
188
		IF @@Error <> 0 GOTO ABORT
189
		--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
190
		--DECLARE lstCostCenter CURSOR FOR
191
		--SELECT COST_ID, NOTES FROM dbo.PL_REQUEST_COSTCENTER WHERE REQ_ID=@p_PL_REQ_ID
192
		--GROUP BY COST_ID,NOTES
193
		--OPEN lstCostCenter
194
		--FETCH NEXT FROM lstCostCenter INTO @COST_ID, @NOTES_COST
195
		--WHILE @@FETCH_STATUS=0
196
		--BEGIN
197
		--	EXEC SYS_CodeMasters_Gen 'TR_REQUEST_COSTCENTER', @l_REQ_COST_ID out
198
		--	IF @l_REQ_COST_ID='' OR @l_REQ_COST_ID IS NULL GOTO ABORT
199
		--		INSERT INTO dbo.TR_REQUEST_COSTCENTER
200
		--		(
201
		--			REQ_COST_ID,
202
		--			COST_ID,
203
		--			REQ_ID,
204
		--			NOTES,
205
		--			AUTH_STATUS,
206
		--			MAKER_ID,
207
		--			CREATE_DT,
208
		--			CHECKER_ID,
209
		--			APPROVE_DT
210
		--		)
211
		--		VALUES
212
		--		(   @l_REQ_COST_ID,        -- REQ_COST_ID - varchar(15)
213
		--			@COST_ID,        -- COST_ID - varchar(15)
214
		--			@l_REQ_ID,        -- REQ_ID - varchar(15)
215
		--			@NOTES_COST,       -- NOTES - nvarchar(500)
216
		--			'',        -- AUTH_STATUS - varchar(1)
217
		--			@MAKER_ID,        -- MAKER_ID - varchar(15)
218
		--			NULL, -- CREATE_DT - datetime
219
		--			'',        -- CHECKER_ID - varchar(15)
220
		--			NULL  -- APPROVE_DT - datetime
221
		--			)
222
		--		FETCH NEXT FROM lstCostCenter INTO @COST_ID,@NOTES_COST
223
		--END 
224
		--CLOSE lstCostCenter
225
		--DEALLOCATE lstCostCenter	
226
		INSERT INTO dbo.PL_REQUEST_PROCESS
227
		(
228
		    REQ_ID,
229
		    PROCESS_ID,
230
		    STATUS,
231
		    ROLE_USER,
232
		    BRANCH_ID,
233
		    CHECKER_ID,
234
		    APPROVE_DT,
235
		    PARENT_PROCESS_ID,
236
		    IS_LEAF,
237
		    COST_ID,
238
		    DVDM_ID,
239
		    NOTES,
240
		    IS_HAS_CHILD
241
		)
242
		VALUES
243
		(   @l_REQ_ID, -- REQ_ID - varchar(15)
244
		    'NEW',     -- PROCESS_ID - varchar(10)
245
		    'C',       -- STATUS - varchar(5)
246
		    '',        -- ROLE_USER - varchar(50)
247
		    '',        -- BRANCH_ID - varchar(15)
248
		    '',        -- CHECKER_ID - varchar(15)
249
		    NULL,      -- APPROVE_DT - datetime
250
		    '',        -- PARENT_PROCESS_ID - varchar(10)
251
		    'N',       -- IS_LEAF - varchar(1)
252
		    '',        -- COST_ID - varchar(15)
253
		    '',        -- DVDM_ID - varchar(15)
254
		    N'Chờ gửi phê duyệt',       -- NOTES - nvarchar(500)
255
		    NULL       -- IS_HAS_CHILD - bit
256
		   )
257
		IF(EXISTS(SELECT * FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@l_REQ_ID AND TOTAL_AMT <=10000000 AND NOT EXISTS (SELECT * FROM dbo.CM_BRANCH WHERE BRANCH_ID=BRANCH_CREATE AND BRANCH_TYPE='HS')))
258
		BEGIN
259
			
260
			UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='P',NOTES =N'Tự động phát sinh & duyệt hoàn tất' WHERE REQ_ID=@l_REQ_ID AND PROCESS_ID='NEW'
261
			INSERT INTO dbo.PL_REQUEST_PROCESS
262
				(
263
				    REQ_ID,
264
				    PROCESS_ID,
265
				    STATUS,
266
				    ROLE_USER,
267
				    BRANCH_ID,
268
				    CHECKER_ID,
269
				    APPROVE_DT,
270
				    PARENT_PROCESS_ID,
271
				    IS_LEAF,
272
				    COST_ID,
273
				    DVDM_ID,
274
				    NOTES,
275
				    IS_HAS_CHILD
276
				)
277
				VALUES
278
				(   @l_REQ_ID,        -- REQ_ID - varchar(15)
279
				    'APPROVE',        -- PROCESS_ID - varchar(10)
280
				    'C',        -- STATUS - varchar(5)
281
				    '',        -- ROLE_USER - varchar(50)
282
				    '',        -- BRANCH_ID - varchar(15)
283
				    '',        -- CHECKER_ID - varchar(15)
284
				    NULL, -- APPROVE_DT - datetime
285
				    'NEW',        -- PARENT_PROCESS_ID - varchar(10)
286
				    'N',        -- IS_LEAF - varchar(1)
287
				    '',        -- COST_ID - varchar(15)
288
				    '',        -- DVDM_ID - varchar(15)
289
				    N'Hoàn tất',       -- NOTES - nvarchar(500)
290
				    NULL       -- IS_HAS_CHILD - bit
291
				  )
292
			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
293

    
294
			EXEC dbo.TR_REQ_DOC_Ins_To_PO @p_TR_REQ_ID = @l_REQ_ID -- varchar(15)
295
			
296
		END
297
		END
298
		IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_PL_REQ_ID AND TRADE_TYPE='CDT'))
299
		BEGIN
300
		--insert master				
301
		
302
		EXEC SYS_CodeMasters_Gen 'TR_REQUEST_DOC', @l_REQ_ID out
303
		IF @l_REQ_ID='' OR @l_REQ_ID IS NULL GOTO ABORT
304

    
305
		
306
		exec [TR_CODE_GenKey] 'TR_REQUEST_DOC', '','PUR', @p_REQ_CODE out
307
		IF @p_REQ_CODE='' OR @p_REQ_CODE IS NULL GOTO ABORT
308

    
309

    
310
		INSERT INTO dbo.TR_REQUEST_DOC
311
		(
312
		    REQ_ID,	
313
			REQ_CODE,	
314
		    REQ_DT,
315
			REQ_REASON,
316
		    PL_REQ_ID,
317
		    NOTES,
318
		    RECORD_STATUS,
319
		    CREATE_DT,
320
			AUTH_STATUS,
321
			TOTAL_AMT,
322
			BRANCH_CREATE,
323
			DEP_CREATE,
324
			USER_REQUEST,MAKER_ID,PROCESS_ID
325
		)
326
		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	
327
		IF @@Error <> 0 GOTO ABORT
328
		--Insert into TABLE PL_REQUEST_DOC_DT
329

    
330
		DECLARE ListGoods  CURSOR FOR
331
		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'
332
		OPEN ListGoods
333

    
334
		DECLARE @TRN_TYPE VARCHAR(20)
335
		SET @TRN_TYPE = (SELECT TRN_TYPE FROM dbo.CM_TRAN_TYPE WHERE NOTES='CDT')
336
		SET @MAKER_ID=(SELECT MAKER_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_PL_REQ_ID)
337
		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
338
		WHILE @@FETCH_STATUS = 0	
339
		BEGIN
340
			EXEC SYS_CodeMasters_Gen 'TR_REQUEST_DOC_DT', @l_REQDT_ID out
341
			IF @l_REQDT_ID='' OR @l_REQDT_ID IS NULL GOTO ABORT
342
			EXEC SYS_CodeMasters_Gen 'TR_REQUEST_DOC_PL_DT', @REQPL_DT_ID out
343
			IF @REQPL_DT_ID='' OR @REQPL_DT_ID IS NULL GOTO ABORT
344

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

    
444
		UPDATE dbo.TR_REQUEST_DOC SET TOTAL_AMT = (
445
			SELECT SUM(QUANTITY*PRICE) FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID = @l_REQ_ID
446
		) WHERE REQ_ID = @l_REQ_ID
447

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

    
559
COMMIT TRANSACTION
560
RETURN 1
561
ABORT:
562
BEGIN
563
		ROLLBACK TRANSACTION	
564
		RETURN 1
565
End
566
ABORT1:
567
BEGIN
568
		CLOSE ListGoods
569
		DEALLOCATE ListGoods
570
		ROLLBACK TRANSACTION	
571
		RETURN 1	
572
End