Project

General

Profile

2.4 PHAT SINH PYCMS TU TO TRINH CHU TRUONG.txt

Luc Tran Van, 08/11/2021 03:07 PM

 
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
		IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_PL_REQ_ID AND TRADE_TYPE='VCCB'))
30
		BEGIN
31
		--insert master				
32
	
33
		EXEC SYS_CodeMasters_Gen 'TR_REQUEST_DOC', @l_REQ_ID out
34
		IF @l_REQ_ID='' OR @l_REQ_ID IS NULL GOTO ABORT
35

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

    
40

    
41
		INSERT INTO dbo.TR_REQUEST_DOC
42
		(
43
		    REQ_ID,	
44
			REQ_CODE,	
45
		    REQ_DT,
46
			REQ_REASON,
47
		    PL_REQ_ID,
48
		    NOTES,
49
		    RECORD_STATUS,
50
		    CREATE_DT,
51
			AUTH_STATUS,
52
			TOTAL_AMT,
53
			BRANCH_CREATE,
54
			DEP_CREATE,
55
			USER_REQUEST,MAKER_ID,PROCESS_ID
56
		)
57
		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
58
			
59
		IF @@Error <> 0 GOTO ABORT
60
		--Insert into TABLE PL_REQUEST_DOC_DT
61

    
62
		DECLARE ListGoods  CURSOR FOR
63
		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'
64
		OPEN ListGoods
65
		SET @MAKER_ID=(SELECT MAKER_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_PL_REQ_ID)
66
		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
67
		WHILE @@FETCH_STATUS = 0	
68
		BEGIN
69
			EXEC SYS_CodeMasters_Gen 'TR_REQUEST_DOC_DT', @l_REQDT_ID out
70
			IF @l_REQDT_ID='' OR @l_REQDT_ID IS NULL GOTO ABORT	
71
			EXEC SYS_CodeMasters_Gen 'TR_REQUEST_DOC_PL_DT', @REQPL_DT_ID out
72
			IF @REQPL_DT_ID='' OR @REQPL_DT_ID IS NULL GOTO ABORT
73

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

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

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

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

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

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

    
301

    
302
		INSERT INTO dbo.TR_REQUEST_DOC
303
		(
304
		    REQ_ID,	
305
			REQ_CODE,	
306
		    REQ_DT,
307
			REQ_REASON,
308
		    PL_REQ_ID,
309
		    NOTES,
310
		    RECORD_STATUS,
311
		    CREATE_DT,
312
			AUTH_STATUS,
313
			TOTAL_AMT,
314
			BRANCH_CREATE,
315
			DEP_CREATE,
316
			USER_REQUEST,MAKER_ID,PROCESS_ID
317
		)
318
		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	
319
		IF @@Error <> 0 GOTO ABORT
320
		--Insert into TABLE PL_REQUEST_DOC_DT
321

    
322
		DECLARE ListGoods  CURSOR FOR
323
		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'
324
		OPEN ListGoods
325

    
326
		DECLARE @TRN_TYPE VARCHAR(20)
327
		SET @TRN_TYPE = (SELECT TRN_TYPE FROM dbo.CM_TRAN_TYPE WHERE NOTES='CDT')
328
		SET @MAKER_ID=(SELECT MAKER_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_PL_REQ_ID)
329
		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
330
		WHILE @@FETCH_STATUS = 0	
331
		BEGIN
332
			EXEC SYS_CodeMasters_Gen 'TR_REQUEST_DOC_DT', @l_REQDT_ID out
333
			IF @l_REQDT_ID='' OR @l_REQDT_ID IS NULL GOTO ABORT
334
			EXEC SYS_CodeMasters_Gen 'TR_REQUEST_DOC_PL_DT', @REQPL_DT_ID out
335
			IF @REQPL_DT_ID='' OR @REQPL_DT_ID IS NULL GOTO ABORT
336

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

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

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

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

    
566

    
567

    
568

    
569

    
570

    
571

    
572

    
573

    
574